본문 바로가기
about Security/SECURE CODING

[에러처리] 오류 메세지를 통한 정보 노출 (5등급)

by saniii 2021. 8. 10.

 

0. 개요 

 

예외 발생 시 예외 이름이나 스택 트레이스를 출력하는 경우, 프로그램 내부구조를 쉽게 파악할 수 있기 때문에

응용프로그램이 실행환경, 사용자 등 관련 데이터에 대한

민감한 정보를 포함하는 오류 메시지를 생성하여 외부에 제공하는 경우, 공격자의 악성 행위를 도울 수 있다.

 

 

 

1. 보안 대책

 

- 오류 메시지는 정해진 사용자에게 유용한 최소한의 정보만 포함하도록 한다.

 

- 소스코드에서 예외 상황은 내부적으로 처리하고 민감한 정보를 포함하는 오류를 사용자에게 출력하지 않도록

  미리 정의된 메시지를 제공하도록 설정한다.

 

- printStackTrace() 메서드를 사용하지 않도록 로직 구현

 

 

 

2. 진단 방법

 

 - 오류 메시지를 출력하는지 확인

 

 - 오류메시지에 시스템 환경 / 유저 정보 / 데이터 등의 민감한 정보가 포함되어 있는지 확인

 

 

 

3. 코드 예시

 

# 1  -  오류 메세지를 통한 정보 노출 - 안전하지 않은 코드 예시(JAVA)

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

오류메시지에 예외 이름이나 오류추적 정보를 출력하여 프로그램 내부 정보가 유출된다.

 

>> 예외 이름이나 오류추적 정보를 출력하지 않도록 하자.

 

# 1  +  오류 메세지를 통한 정보 노출 - 안전한 코드 예시(JAVA)

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

* e.printStackTrace() : 리턴값이 없으며 이 메소드를 호출하면 메소드가 내부적으로 예외 결과를 화면에 출력한다. 

                                           e.printStackTrace()는 가장 자세한 예외 정보를 제공한다.

 

 

 

4. 해당 취약점 CASE

 

- 오류메시지를 통해 환경, 사용자, 관련 데이터 등의 내부정보가 유출될 경우 (ex: printStackTrace(), ... )

 

 

 

#. 참고 블로그 

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

 

[구현보안] 에러처리 01 - 오류 메시지를 통한 정보 노출

가. 원인 - 실행환경 / 사용자 등과 관련된 민감정보를 포함한 오류 메시지를 생성 및 외부에 출력 시 - Exception 발생 시 Exception 정보를 출력 시 나. 영향 - 공격자는 오류 메시지를 통해 공격에 활

prokyhsigma.tistory.com

 

 

 

댓글