기록공간

5-3-2장. 세션 통제 - B 본문

자격증공부/정보처리기사_필기

5-3-2장. 세션 통제 - B

입코딩 2020. 9. 22. 22:24
반응형

세션은 서버와 클라이언트의 연결을 의미하고, 세션 통제는 세션의 연결과 연결로 인해 발생하는 정보를 관리하는 것을 의미한다.

 

  • 세션 통제는 소프트웨어 개발 과정 중 요구사항 분석 및 설계 단계에서 진단해야하는 보안 점검 내용이다.

불충분한 세션 관리

일정한 규칙이 존재하는 세션 ID가 발급되거나 타임아웃이 너무길게 설정되어 있는 경우에 발생할 수 있는 보안 약점이다. 

 

  • 세션 관리가 충분하지 않으면 침입자는 세션 하이재킹과 같은 공격을 통해 획득한 세션 ID로 인가되지 않은 시스템의 기능을 이용하거나 중요한 정보에 접근할 수 있다.

잘못된 세션에 의한 정보 노출

잘못된 세션에 의한 정보 노출은 다중 스레드 환경에서 멤버 변수에 정보를 저장할 때 발생하는 보안 약점이다.

 

  • 싱글톤 패턴에서 발생하는 레이스컨디션으로 인해 동기화 오류가 발생하거나 멤버 변수의 정보가 노출될 수 있다.

  • 멤버 변수보다 지역 변수를 활용하여 변수의 범위를 제한함으로써 방지할 수 있다.

세션 설계시 고려 사항

  • 시스템의 모든 페이지에서 로그아웃이 가능하도록 UI를 구성한다.

  • 로그아웃 요청 시 할당된 세션이 완전히 제거되도록 한다.

  • 세션 타임아웃은 중요도가 높으면 2~5분, 낮으면 15~30분으로 설정한다.

  • 중복 로그인을 허용하지 않은 경우 클라이언트 중복 접근에 대한 세션 관리 정책을 수립한다.

  • 패스워드 변경 시 활성화된 세션을 삭제하고 재할당한다.

세션ID의 관리 방법

  • 세션ID는 안전한 서버에서 최소 128비트 길이로 생성한다.

  • 세션ID의 예측이 불가능하도록 안전한 난수 알고리즘을 적용한다.

  • 세션 ID가 노출되지 않도록 URL Rewrite 기능을 사용하지 않는 방향으로 설계한다.

  • 로그인 시 로그인 전의 세션ID를 삭제하고 재할당한다.

  • 장기간 접속하고 있는 세션ID는 주기적으로 재할당되도록 설계한다.

 

반응형
Comments