[Web] 불충분한 세션 만료 (SC)

불충분한 세션 만료

불충분한 세션 만료

 

취약점 개요

■ 위험도
- 상

■ 점검 목적
- 세션 타임아웃 기능을 구현하여 공격자가 만료되지 않은 세션 활용을 방지하기 ㅣ함

■ 보안 위협
- 세션 만료 기간을 정하지 않거나, 만료기한을 너무 길게 설정된 경우 악의적 사용자가 만료되지 않은 세션을 활용하여 불법적인 접근이 가능할 수 있음

 

 

 

점검 및 조치 방법

■ 점검 및 판단 기준
- 양호 : 세션 종료 시간이 설정되어 있는 경우
- 취약 : 세션 종료 시간이 설정되어 있지 않아 세션 재사용이 가능한 경우

■ 조치 방법
- 세션 종료 시간 설정 또는 자동 로그아웃 기능 구현(세션 종료 시간은 사이트의 특성에 따라 달라질 수 있으므로 사이트의 특성에 맞게 적정 시간 설정)

■ 점검 방법
Step 1) 인증 후 정상적으로 세션이 발행된 페이지의 리퀘스트를 취득하여 일정 시간(사이트에 따라 다름)이 지난 후에 재전송 시 정상 처리가 되는지 확인

세션 만료
[로그인 후 세션 발급]

 

세션 타임아웃
[일정 시간 경과 후 세션 유지 여부 확인]


■ 보안설정방법
Step 1) 세션 타임아웃 기능이 구현되어 있지 않을 경우 장시간 부재중인 사용자에 대한 보호 장치가 없는 것이며, 세션 타임아웃 구현 시 타임아웃 시간은 10분으로 설정할 것을 권고함

※ 애플리케이션 별 설정 방법

 

ASP

접속자 별로 세션을 생성하여 사용자 정보를 각각 저장할 수 있는 세션 오브젝트를 사용하여 타임아웃 기능을 구현함

다음과 같은 설정이 적용될 경우 사용자가 로그아웃할 경우 세션은 바로 삭제되며 로그아웃하지 않고 10분 동안 웹 서버로의 요청이 없을 경우 세션은 없어지게 됨

세션 타임아웃
세션 타임아웃


JSP

세션 타임아웃 기능을 구현하는 방법은 session.getLastAccessedTime() 함수를 이용하여 세션의 마지막 접근 시간으로부터 일정 시간 이내에 다시 세션에 접근하지 않은 경우 자동으로 세션을 종료하도록 함

세션의 타임아웃은 두 가지 방법으로 설정할 수 있음

Step 1) web.xml 파일에서 <session-config> 태그를 사용하여 타임아웃을 지정하는 방법. web.xml, Weblogic.xml 중 한 곳에서만 설정, 만약 두 곳을 설정하게 되면 우선순위가 web.xml 이 높음

 

web.xml : "분" 단위

세션 타임아웃


Weblogic.xml : "초" 단위

세션 타임아웃


Step 2)
세션 기본 객체가 제공하는 setMaxInactiveInterval() 메소드 사용

세션 타임아웃

 


■ 용어 설명 / 팁
※ 세션 오브젝트 : 페이지 접근을 허가하거나 금지할 때 또는, 사용자 별로 정보를 저장할 때 많이 사용하며 접속자의 브라우저에서 쿠키 기능을 지원해야 세션 오브젝트 사용이 가능함

댓글

Designed by JB FACTORY