티스토리 뷰
가. 원인
- 실행환경 / 사용자 등과 관련된 민감정보를 포함한 오류 메시지를 생성 및 외부에 출력 시
- Exception 발생 시 Exception 정보를 출력 시
나. 영향
- 공격자는 오류 메시지를 통해 공격에 활용될 수 있는 상세 오류 정보를 확인
- 공격자가 프로그램 내부구조를 쉽게 파악
다. 보안대책
- printStackTrace() 메서드를 사용하지 않도록 로직구현
- 오류 메시지를 유용한 최소한의 정보만 포함하여 사용
- Exception 발생 시 내부적으로 처리하고, 민감정보를 포함한 오류는 출력하지 않도록 미리 정의한 메시지를 제공
라. 안전한 코드
1. 최소정보 로깅
try { rd = new BufferedReader( new FileReader( new File( fileName ) ) ); } catch ( IOException e ) { // e.printStackTrace() <= 취약코드 logger.error( "ERR-01: file open error" ); } finally { try { if( rd != null ) { rd.close(); } } catch ( Exception e ) { // e.printStackTrace() <= 취약코드 logger.error( "ERR-02: file close error" ); } }
|
마. 진단방법
<오류메시지 확인>
1. 오류 메시지를 출력하는지 확인
2. 오류메시지에 시스템 환경 / 유저정보 / 데이터 등의 민감정보가 포함되어 있는지 확인
바. 정/오탐 케이스
<정탐 케이스>
1. 오류메시지를 통해 환경, 사용자, 관련 데이터 등의 내부정보가 유출될 경우 ( e.printStackTrace() )
<오탐 케이스>
1. Exception의 관련 데이터 등의 내부정보를 로그로 기록할 경우
사. 기타
- 4-1 오류메시지를 통한 정보 노출
=> printStackTrace( ) 를 통해 콘솔에 민감정보가 노출되는 것
- 6-3 시스템 데이터 정보 노출
=> Exception 메시지를 사용자에게 전달하여 민감정보가 노출되는 것
'Web Analytics > SW 보안약점 진단원' 카테고리의 다른 글
[구현보안] 에러처리 03 - 부적절한 예외 처리 (0) | 2019.10.07 |
---|---|
[구현보안] 에러처리 02 - 오류 상황 대응 부재 (0) | 2019.10.07 |
[구현보안] 시간 및 상태 02 - 종료되지 않은 반복문 또는 재귀함수 (0) | 2019.10.06 |
[구현보안] 시간 및 상태 01 - 경쟁조건: 검사시점과 사용시점(TOC-TOU) (0) | 2019.10.06 |
[구현보안] 보안기능 16 - 반복된 인증시도 제한 기능 부재 (0) | 2019.10.06 |
- Total
- Today
- Yesterday