본문 바로가기
about Security/SECURE CODING

[캡슐화] 제거되지 않고 남은 디버그 코드 (3등급)

by saniii 2021. 8. 7.
0. 개요 

 

디버깅 목적으로 삽입된 코드는 개발이 완료되면 제거해야 한다.즉, 설정 등의 민감한 정보나 시스템을 제어하도록 허용하는 부분을 담고 있는 디버그 코드가 남겨진 채로 배포될 경우,

공격자가 식별 과정을 우회하거나 의도하지 않은 정보나 제어 정보가 노출될 수 있다.

 

 

 

1. 보안 대책

 

- 소프트웨어 배포 전, 반드시 디버그 코드를 확인 및 삭제한다.: 특히  JAVA개발 경우 디버그용도의 코드를 main()에 작성한 후 삭제하지 않는 경우가 많다.   잘 삭제하도록 하자.

 

 

 

2. 진단 방법

 

 - 개발 중 사용한 테스트 목적의 디버그 코드가 존재하는지 확인

 

 

 

3. 코드 예시

 

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

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

 

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

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

 

 

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

 

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

  >> 참고 자료

 

JAVA 보안 개발 가이드 -

JAVA 보안 개발 가이드 1절. 입력 데이터 검증 및 표현 1. 크로스 사이트 스크립트 공격 취약점(XSS) 가. 정의 외부에서 입력되는 검증되지 않은 입력이 동적 웹페이지의 생성에 사용될 경우, 전송된

wiki.wikisecurity.net

 

 

 

4. 해당 취약점 CASE

 

- J2EE 환경에서 존재하는 디버깅용 main() 함수가 존재할 경우

 

 

 

 

 

댓글