본문 바로가기
about Security/SECURE CODING

[캡슐화] 시스템데이터 정보 노출 (5등급)

by saniii 2021. 8. 10.

 

0. 개요 

 

시스템, 관리자, DB정보 등 시스템의 내부 데이터가 공개되면, 공격자에게 또 다른 공격의 빌미를 제공하게 된다.

 

 

 

1. 보안 대책

 

- 예외 상황이 발생할 때 시스템의 내부 정보가 화면에 출력되지 않도록 개발한다.

- getMessage() 메서드의 사용을 제한한다.

   : Exception 발생 시 오류와 관련된 정보가 노출될 수 있기 때문.

 

 

 

2. 진단 방법

 

 - 시스템 정보 출력 코드가 존재하는지 확인한다.

 

 

 

3. 코드 예시

 

# 1  -  제거되지 않고 남은 디버그 코드 - 안전하지 않은 코드 예시(JAVA)

소프트웨어 개발보안 가이드 (2019.11) / 행정안전부 & 한국인터넷진흥원

예외 발생 시 getMessage()를 이용한 오류메시지를 통해 오류와 관련된 시스템 정보 등 민감한 정보가 유출될 수 있다.

* e.getMessage() : 자바에서 전달한 인스턴스의 메소드 중 getMessage를 호출하는 코드로 

                                 getMessage는 오류의 원인을 사람이 이해하기 쉬운 형태로 리턴한다.

                - 오류메세지의 자세함의 정도 : e.getMessage < e.toString < e.printStackTrace

 

가급적이면 공격의 빌미가 될 수 있는 오류와 관련된 상세한 정보는

사용자에게 노출되지 않도록 최소한의 정보만을 제공하자.

 

# 1  +  제거되지 않고 남은 디버그 코드 - 안전한 코드 예시(JAVA)

소프트웨어 개발보안 가이드 (2019.11) / 행정안전부 & 한국인터넷진흥원

* logger.error  // 에러가 났다는 최소한의 표시만 남기는 로그

 

 

 

 

 

#. 참고 블로그 

https://prokyhsigma.tistory.com/80?category=848515 

 

[구현보안] 캡슐화 03 - 시스템 데이터 정보 노출

가. 원인 - Exception 발생 시 시스템 / 관리자 / DB정보 등의 시스템 내부정보가 사용자에게 노출되는 경우 나. 영향 - 오류정보를 통해 시스템 / 관리자 / DB정보 등의 중요정보가 노출 - 노출된 정보

prokyhsigma.tistory.com

 

 

댓글