시큐어 코딩 가이드 · · 2 min read

4. 에러 처리

4.1. 오류 메시지 정보 노출

정의

응용프로그램이 실행환경, 사용자 등 관련 데이터 또는 시스템의 내부데이터 등 민감한 정보를 포함하는 오류 메시지를 생성하여 외부에 제공하는 경우, 공격자의 악성행위를 도울 수 있다.

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

안전한 코딩 기법

  • 오류 메시지는 정해진 사용자에게 유용한 최소한의 정보만 포함하도록 한다.
  • 소스코드에서 예외 상황은 내부적으로 처리한다.
  • 사용자에게 시스템 내부 정보 등 민감한 정보를 포함하는 오류를 출력하지 않도록 미리 정의된 메시지를 제공하도록 설정한다.

4.2. 오류상황 대응 부재

정의

오류가 발생할 수 있는 부분을 확인하였으나, 이러한 오류에 대하여 예외 처리를 하지 않을 경우, 공격자는 오류 상황을 악용하여 개발자가 의도하지 않은 방향으로 프로그램이 동작하도록 할 수 있다.

안전한 코딩 기법

  • 오류가 발생할 수 있는 부분에 대하여 제어문을 사용하여 적절하게 예외처리 한다.

4.3. 부적절한 예외 처리

정의

프로그램 수행 중 함수의 결과값에 대해 적절한 처리 또는 예외 상황에 대한 조건을 적절하게 검사하지 않을 경우, 예기치 않은 문제를 야기할 수 있다.

안전한 코딩 기법

  • 값을 반환하는 모든 함수의 결과값을 검사하여, 그 값이 의도했던 값인지 검사한다.
  • 예외 처리를 사용하는 경우에 광범위한 예외 처리 대신 구체적인 예외 처리를 수행한다.