본문 바로가기

웹 해킹/기타 웹 취약점

[주통기 웹 취약점] 세션관련 취약점 3가지 | 세션 예측, 불충분한 세션 만료, 세션 고정

 

세 가지 취약점은 세션의 보안 조치가 취약하게 설정되어 발생하며, 공격자는 개인정보 탈취, 사용자 ID 도용, 사용자 ID를 활용한 2차 공격(DoS 등)을 할 수 있다.


세션 예측

:  각기 다른 IP주소, 사용자명, 시간적 차이로 세션 ID를 발급 받았을 때 일정한 패턴(연속된 숫자 할당 등)이 발견되는 취약점

 

 

 

공격자는 세션ID를 추측해서 불법적인 접근 시도가 가능하다. 본인의 세션을 여러 번 생성하여 확인하는 것만으로 보안 취약점을 확인할 수 있다.

 

[보안 방법]

- 단순 조합보다는 상용 웹 서버나 웹 애플리케이션 플랫폼에서 제공하는 세션 ID를 사용하고, 가능하다면 맞춤형 세션 관리 체계를 권고

 

- 세션 ID는 로그인 시마다 추측할 수 없는 새로운 세션 ID로 발급하여야 함

 


 

불충분한 세션 만료

: 세션 종료 시간이 설정되어 있지 않거나 불필요하게 긴 경우 발생할 수 있는 취약점

 

 

 

웹 사이트에 로그인 후  일정 시간 움직임이 없으면 자동으로 로그아웃되어 세선 정보가 만료되도록 설정해야 한다. 만약 세선이 만료되지 않거나 만료 시간을 너무 길게 설정하면, 공격자는 이를 이용하여 불법적인 접근을 하거나 개인정보 탈취와 같은 악의적인 행위를 시도할 수 있다.

 

 

[보안 방법]

- 세션 타임아웃 구현 시 타임아웃 시간은 10분으로 설정할 것을 권고함

 


 

세션 고정

: 사용자 로그인 시 항상 일정하게 고정된 세션 ID 값이 발행되거나 예측 가능한 패턴으로 발행되는 취약점

 

 

 

로그인 시 아이디에 동일한 세션 아이디가 발급되는 경우, 해당 값으로 공격자가 세션 ID를 도용하여 비인가자의 접근 혹은 권한 우회를 시도할 수 있다.

 

[보안 방법]

- 로그인할 때마다 예측 불가능한 새로운 세션 ID를 발급받도록 해야 하고 기존 세션 ID는 파기해야 함