728x90
반응형
SMALL

SW개발보안가이드중 구현단계에서의 점검항목은 크게 7가지 이다.  (입보시에코캡아)
  1. 입력데이터 검증 및 표현
  2. 보안기능
  3. 시간 및 상태
  4. 에러처리
      4-1. 오류메시지를 통한 정보노출
      4-2. 오류 상황 대응 부재
      4-3. 부적절한 예외 처리

  5. 코드오류

  6. 캡슐화
  7. API 오용

이 장에서는 "3.에러처리" 에 대한 점검항목을 설명한다.


4-1. 오류메시지를 통한 정보노출

구분 설명
원인/영향 오류메시지에 시스템정보와 같은 민감한 정보가 노출되어 공격에 활용할 수 있다.
취약) e.printStackTrace();  <-- 스택정보가 노출됨.
안전) logger.error("ERROR-01 : 파일 열기 에러");  <-- 별도 에러코드 정의
대응 ① 시스템오류 메시지 대신에 별도의 오류메시지를 정의하여 출력해준다.

 

4-2. 오류 상황 대응 부재

구분 설명
원인/영향 발생한 오류에 대해서 아무런 조치를 하지 않아 프로그램이 비정상적인 상태로 실행되는 겅우

취약) catch (Exception e) {
          // do nothing
       }
   
안전) catch (Exception e) {
          s.setMessage(e.getMessage());  <-- 원래 e.getMessag()는 시스템정보 노출
          return (makeLogin(s));
       }    
안전) catch (Exception e) {
         logger.error("ERROR-01 : 파일 열기 에러");  <-- 별도 에러코드 정의
       }    
대응 ① 발생오류별로 적절한 에러처리 루틴이 작성되어야 한다.
② 특별히 처리해야할 루틴이 없는 오류라 하더라도 
    logger.error("에러상황에 대한 간단한 메시지 또는 에러코드") 가 수행될수 있어야한다



4-3. 부적절한 예외 처리

구분 설명
원인/영향 모든 오류에 대해 하나의 방식으로 예외처리를 하는 경우 각각의 상황에 따라 적절한 예외처리를 
할수 가 없어서 부적절한 Resource 관리로 인해 시스템이 중지될 수 있다.
대응 ① 각각의 예외상항에 대해 적절한 예외처리 코드를 수행할수 있도록 한다

취약) catch (Exception e) {
          System.err.println("Exception : " + e.getMessge());
       }

안전) catch (MalformedURLExcepton e) {
       }
       catch (IOExcepton e) {
       }
       catch (ParseExcepton e) {
       }
       finally {
       }



 

728x90
반응형
LIST

+ Recent posts