세션 하이재킹 공격 경로와 세션 보안 방어 전략

세션 하이재킹의 네트워크·애플리케이션·클라이언트 측 공격 경로와 세션 ID, 쿠키, 인증 방어 대책을 정리한다.

2026-08-14 · 최초 발행 2025-05-27

인증을 통과한 뒤 노려지는 세션

세션 하이재킹은 정상 사용자가 인증을 마친 뒤 생성된 세션을 공격자가 가로채 권한을 행사하는 공격이다. 세션 ID나 쿠키를 확보하면 추가 인증 없이 해당 사용자로 위장해 시스템에 접근할 수 있으므로, 로그인 자체가 안전하더라도 세션 보호가 약하면 인증 체계 전체가 흔들릴 수 있다.

일반적인 흐름은 사용자 로그인으로 서버가 세션 ID를 발급하고, 이후 요청마다 그 값을 사용해 인증 상태를 유지하는 구조다. 공격자는 이 유지 단계에 개입해 세션 ID를 탈취한 뒤 정상 사용자의 요청처럼 서버에 전달한다.

탈취가 일어나는 경로

네트워크 통신을 가로채는 방식

네트워크 기반 세션 하이재킹은 전송 중인 트래픽에서 세션 정보를 얻는 방식이다. 암호화되지 않은 세션 ID를 감시하는 패킷 스니핑, 클라이언트와 서버 사이에 개입하는 중간자 공격, TCP 연결의 제어권을 가져오는 TCP 하이재킹이 여기에 속한다.

서버공격자사용자서버공격자사용자네트워크 트래픽 감시인증 요청인증 성공 및 세션 ID 발급세션 ID를 사용한 요청세션 ID 탈취탈취한 세션 ID로 요청요청 처리(정상 사용자로 인식)

웹 애플리케이션 취약점을 악용하는 방식

애플리케이션 기반 공격은 웹 서비스의 취약점을 세션 탈취에 이용한다. XSS(Cross-Site Scripting)는 삽입된 악성 스크립트로 쿠키나 세션 정보를 빼내는 공격이며, CSRF(Cross-Site Request Forgery)는 사용자가 의도하지 않은 요청을 유도하는 방식이다. 세션 고정 공격(Session Fixation)은 공격자가 특정 세션 ID를 고정한 후 사용자의 인증이 끝난 세션을 노린다.

1. 악성 스크립트 삽입2. 웹사이트 방문3. 악성 스크립트 실행4. 세션 정보 유출5. 탈취한 세션으로 접근공격자웹사이트사용자

사용자의 브라우저와 시스템을 겨냥하는 방식

클라이언트 측 세션 하이재킹은 사용자의 브라우저 또는 시스템에서 세션 정보를 직접 가져간다. 브라우저에 저장된 쿠키를 추출하는 쿠키 탈취, 멀웨어나 트로이 목마를 통한 세션 정보 수집, HTML5 웹 스토리지에 저장된 세션 정보를 노리는 로컬 스토리지 공격이 대표적이다.

이상 징후를 세션 활동에서 찾기

세션 탈취 여부는 하나의 신호만으로 판단하기보다 세션 활동의 변화와 로그를 함께 봐야 한다. 동일 세션에서 IP가 급격히 바뀌거나 지리적 위치가 달라지는 경우, 패킷 분석에서 비정상 패턴이 나타나는 경우, 인증 로그와 접근 로그에 이상 징후가 남는 경우를 확인 대상에 둔다.

YESNO세션 활동 모니터링비정상 패턴 탐지경고 발생정상 활동세션 종료 재인증 요구보안 알림

탐지 이후에는 해당 세션을 종료하고 재인증을 요구하는 대응이 필요하다. 동시에 보안 팀에 알림을 보내 세션 탈취가 다른 계정이나 시스템으로 이어졌는지 확인해야 한다.

세션을 보호하는 기본 통제

전송 구간은 HTTPS로 암호화해 세션 정보가 노출되는 위험을 낮춘다. 세션 ID는 복잡하게 생성하고, 세션 타임아웃을 설정하며, 인증 후에는 세션 ID를 재생성해야 한다.

쿠키에는 Secure, HttpOnly, SameSite 속성을 적용한다. Secure 플래그는 HTTPS 연결에서만 쿠키가 전송되도록 하고, HttpOnly 플래그는 JavaScript를 통한 쿠키 접근을 막는다. SameSite 속성은 교차 사이트 요청에서 쿠키 전송을 제한한다.

세션 탈취 이후에도 추가 검증이 가능하도록 다중 인증(MFA)을 두고, 브라우저와 디바이스 정보를 활용한 클라이언트 지문(Fingerprinting)으로 세션을 검증할 수 있다.

환경별로 달라지는 침해 시나리오

공공 Wi-Fi에서는 공격자가 Wireshark와 같은 패킷 분석 도구로 암호화되지 않은 세션 정보를 탈취할 수 있다. 사용자가 비보안 웹사이트에 로그인한 뒤 세션 쿠키가 가로채지면, 공격자는 해당 계정에 접근해 개인정보를 탈취할 수 있다. 공공 Wi-Fi에서는 VPN을 활용하고 HTTPS 웹사이트만 이용하며, 중요 작업은 신뢰할 수 있는 네트워크에서 수행해야 한다.

온라인 뱅킹 환경에서는 XSS 취약점에 삽입된 악성 스크립트가 세션 쿠키를 공격자에게 전송할 수 있다. 공격자는 이를 이용해 금융 거래를 실행할 수 있으므로, 콘텐츠 보안 정책(CSP), 입력값 검증과 출력 인코딩, 트랜잭션 승인을 위한 OTP가 필요하다.

기업 내부망도 예외가 아니다. ARP 스푸핑을 통한 중간자 공격으로 직원의 인트라넷 세션이 탈취되면 내부 문서 접근과 기밀 정보 유출로 이어질 수 있다. 네트워크 세그먼테이션, ARP 스푸핑 탐지 시스템, 정기적인 보안 교육이 대응 수단이 된다.

토큰과 상태 검증을 함께 다루기

토큰 기반 인증(Token-based Authentication)에서는 JWT(JSON Web Tokens)를 활용할 수 있다. 서버 측 세션 저장소가 필요하지 않고 토큰 자체에 권한 정보를 포함할 수 있다.

OAuth 및 OpenID Connect는 중앙화된 인증 시스템과 권한 위임 프로토콜을 제공하며, 토큰 수명 제한을 적용한다. 이와 함께 클라이언트 IP 검증, 브라우저 핑거프린팅, 행동 기반 인증(Behavioral Authentication) 같은 상태 검증 기술을 조합할 수 있다.

유효무효사용자인증 서비스JWT 발급사용자 브라우저 저장리소스 서버토큰 검증접근 허용접근 거부

개발과 운영에서 확인할 항목

세션 관리에서는 강력한 무작위 세션 ID를 생성하고, 아이들 타임아웃과 절대 타임아웃을 설정한다. 인증 성공 뒤 세션 ID를 재생성하며 로그아웃 시에는 세션을 완전히 파기한다.

쿠키는 Secure, HttpOnly, SameSite 속성을 적용하고 도메인과 경로를 제한한다. 전체 사이트에 HTTPS를 적용하고 HSTS(HTTP Strict Transport Security), X-XSS-Protection, X-Frame-Options 등의 보안 헤더도 설정한다.

입력은 모두 검증하고 XSS 방어를 위한 출력 인코딩을 적용한다. SQL 인젝션 방어에는 파라미터화 쿼리를 사용한다. 로그인과 세션 활동을 기록하면서 비정상 접근 패턴을 모니터링하고, 자동화된 침입 탐지 시스템을 운영해야 한다.

세션 보안은 인증 후 요청까지 보호하는 통제다. 네트워크 통신, 애플리케이션 취약점, 클라이언트 환경을 함께 고려하고 세션 관리·쿠키 보안·다중 인증·지속적 모니터링을 겹겹이 적용해야 한다.

세션 하이재킹웹 보안쿠키 보안인증 보안네트워크 보안