반응형
정의
세션 고정(Session Fixation)은 웹 응용 프로그램 보안에서 발생할 수 있는 취약점 중 하나입니다. 이 취약점은 공격자가 사용자의 세션 식별자(session identifier)를 제어하여 인증된 세션에 접근할 수 있는 상황을 의미합니다.
취약점 발생 지점 리스트
- 세션을 발행하는 페이지
- 세션이 있어야만(인가를 받아야지만) 들어갈수 있는 페이지
취약점 검증 방법
- 발급된 세션이 로그아웃후 다시 로그인 해도 똑같은 경우
- 로그인하기 전의 세션과 로그인한 후의 세션이 똑같은 경우
- 세션을 재발급 안하는 경우(응답에서 set cookie)가 존재하지 않는 경우.
공격법
공격 시나리오
- 공격자는 로그인해서 세션 식별자를 생성합니다.
- 사용자에게 이 세션 식별자를 강제로 전달합니다.
- 사용자가 웹 응용 프로그램에 로그인하고 세션을 시작합니다.
- 이미 세션이 똑같으므로, 공격자는 새로고침을 해서 인증된 세션에 접근할 수 있게 됩니다.
공격 시나리오 발생 과정
세부 과정 설명
- 공격자가 웹 응용 프로그램에 인증 요청을 보냅니다.
- 웹 응용 프로그램은 인증을 위해 세션 식별자를 생성합니다.
- 세션 식별자는 사용자에게 전달되어 세션을 시작하는 데 사용됩니다.
- 공격자는 사용자에게 이전에 생성한 세션 식별자를 강제로 전달합니다.
- 사용자가 세션을 시작할 때, 공격자가 전달한 악의적인 세션 식별자를 사용합니다.
- 웹 응용 프로그램은 인증 확인을 수행하고, 악의적인 세션 식별자를 유효한 것으로 간주합니다.
- 공격자는 악의적인 세션 식별자를 사용하여 인증된 세션에 접근할 수 있게 됩니다.
대응방법
- 세션 식별자의 무작위성: 세션 식별자는 무작위로 생성되어야 하며, 예측하기 어렵도록 해야 합니다.
- 세션 식별자의 변경: 사용자가 인증되거나 권한을 얻을 때마다 세션 식별자를 변경해야 합니다.
- 안전한 세션 관리: 세션 식별자는 안전하게 저장되어야 합니다. 쿠키를 사용하는 경우에는 쿠키 보안 속성인 'Secure'와 'HttpOnly'를 설정하여 안전한 전송과 클라이언트 측 스크립트에 대한 보호를 제공해야 합니다.
- 세션 모니터링 및 로깅: 시스템에 대한 세션 활동을 모니터링하고 로깅하여 의심스러운 활동을 탐지하고 대응할 수 있도록 해야 합니다.
반응형
'old > Cyber Security' 카테고리의 다른 글
사이버 보안: 세션 예측이란? (0) | 2023.09.15 |
---|---|
사이버 보안: 불충분한 세션 만료란? (0) | 2023.09.14 |
사이버 보안: 취약한 패스워드 복구란? (0) | 2023.09.12 |
사이버 보안: 불충분한 인증이란? (0) | 2023.09.11 |
사이버 보안: 약한 문자열 강도란? (0) | 2023.09.10 |