본문 바로가기
공부/KISA

제거되지 않고 남은 디버그 코드 - KISA 소프트웨어 개발 보안 가이드

by Skogkatt의 개인 블로그 2020. 7. 22.
반응형

https://www.kisa.or.kr/public/laws/laws3.jsp

 

기술안내서 가이드 < 관련법령·기술안내서 < 자료실 : 한국인터넷진흥원

기술안내서 가이드 한국인터넷진흥원 기술안내서 가이드 입니다. 게시판 목록 보기 기술안내서 가이드 표 대분류 소분류 기술안내서 가이드 대상 수준 인터넷 진흥 및 이용 활성화 인터넷 진흥

www.kisa.or.kr

구현 단계 시큐어코딩 가이드 - 캡슐화 - 제거되지 않고 남은 디버그 코드

가. 개요

  • 디버깅 목적으로 삽입된 코드는 개발이 완료되면 제거해야 한다. 디버그 코드는 설정 등의 민감한 정보를 담거나 시스템을 제어하게 허용하는 부분을 담고 있을 수 있다. 만일, 남겨진 채로 배포될 경우, 공격자가 식별 과정을 우회하거나 의도하지 않은 정보와 제어 정보가 노출될 수 있다.

나. 보안대책

  • 소프트웨어 배포 전, 반드시 디버그 코드를 확인 및 삭제한다.
  • 일반적으로 Java 개발자의 경우 웹 응용프로그램을 제작할 때 디버그 용도의 코드를 main()에 개발한 후 이를 삭제하지 않는 경우가 많다. 디버깅이 끝나면 main() 메소드를 삭제해야 한다.

다. 코드예제

JAVA
더보기

다음의 예제는 main() 메소드 내에 화면에 출력하는 디버깅 코드를 포함하고 있다. J2EE의 경우 main() 메소드 사용이 필요 없으며, 개발자들이 콘솔 응용프로그램으로 화면에 디버깅 코드를 사용하는 경우가 일반적이다.

이에 따라 J2EE와 같은 응용프로그램에서 main() 메소드는 삭제한다. J2EE의 main() 메소드의 경우 디버깅 코드인 경우가 일반적이다.

 

C#
더보기

디버그용 코드가 남아있는 C# 코드의 예제이다.

디버그용 코드를 삭제하여야 한다.

 

C
더보기

아래는 디버그용 코드가 남아있는 C 코드의 예제이다. 공격자가 출력되는 콜 스택을 통해서 프로그램 구조를 유추할 수 있다.

릴리즈 시에는 디버그용 코드를 삭제 하여야 한다.


참고자료

반응형

댓글