728x90
반응형
SMALL

이번 장에서는 SW개발보안가이드중 분석/설계단계에서 검증해야할 항목중 SR3. 에러처리와 SR4. 세션통제
에 관한 점검항목에 대해서 설명하고자 한다.


SR3. 에러처리

SR3-1. 예외처리

항목 설명
1) 명시적인 예외처리  - 명시적인 예외처리는 예외처리블록을 이용해서 대응
    (Exception처리)
2) 런타임 예외처리  - 런타임 예외의 경우에는 입력값의 범위를 체크하여 애플리케이션이
   정상적으로 동작할 수 있는 값만 사용되도록 보장해야 한다. 
3) 상세한 에러정보 노출 방지  - 에러가 발생한 경우 지정된 페이지를 통해 공지
 - 오류메시지에 중요 시스템 정보 노출 금지
 - 오류발생에 대한 로깅 처리
구현단계 오류메시지를 통한 정보노출
시스템 데이터 정보 노출 (캡슐화)

 

SR4. 세션통제

SR4-1. 세션통제

항목 설명
1) 세션간 데이터 공유 금지  - ① 컨트롤러 컴포넌트, ②싱글톤 객체로 생성되는 서비스 컴포넌트 에서는
       멤버 변수클래스 변수는 세션간에 공유되는 데이터가 되므로 생성하지
       않도록 한다.
           예) 잘못된 세션에 의한 정보노출 (캡술화)
                    - 싱글톤객체의 멤버에 대한 경쟁조건 방지하기 위한
                      동기화(SYN) 처리
2) 세션의 안전한 관리  - 모든 페이지에서 언제나 로그아웃이 가능하도록
 - 로그아웃을 요청하면 사용자에게 할당된 모든 세션을 제거하는 메소드 사용
   예) session.Invalidate() 메소드는 세션에 저장된 정보를 완전히 제거해줌.
 - 세션타임아웃 설정
 - 일정시간 사용하지 않은 세션은 자동 로그아웃
 - 세션ID가 포함된 쿠키에 대해서는 HttpOnly속성을 설정하여 XSS공격에 대비
 - 사용자가 패스워드 변경시 현재 활성화된 세션을 삭제하고 다시 할당한다.
3) 세션ID의 안전한 관리 <세션ID 생성>
 - 세션ID는 서버에서 생성해서 사용
 - 세션ID는 최소 128 비트의 길이로 생성되어야 하며, 난수알고리즘을 적용하여
   예측불가능한 값이 사용되어야 한다
<세션ID 사용>
 - URL rewrite 를 사용하는 경우 세션ID가 URL에 노출될수 있으므로 사용
   하지 않는다.
<세션ID 폐기>
 - 로그인 성공시 할당받은 세션ID는 파기하고 새로운 값으로 재할당하여 
   세션ID고정 공격에 대응
 - 일정시간 주기적으로 세션ID 재할당 한다.



728x90
반응형
LIST

+ Recent posts