
세션 하이재킹(Session Hijacking)이란 공격자가 사용자의 세션을 가로채어 인증된 사용자로 가장하는 공격 기법을 의미합니다. 이는 웹 애플리케이션, 네트워크 프로토콜, 시스템 수준에서 발생할 수 있으며, 탐지하지 못하면 심각한 보안 사고로 이어질 수 있습니다. 본 글에서는 세션 하이재킹을 탐지하는 주요 방법을 깊이 있게 설명합니다.
비동기화 상태 탐지 (Desynchronization Detection)
세션 하이재킹 공격이 발생하면 공격자가 정상적인 사용자와 서버 간의 통신을 가로채거나 조작하여 세션이 비동기화될 수 있습니다. 즉, 서버는 특정 사용자가 특정 위치에서 연결을 유지한다고 인식하지만, 실제로는 공격자가 세션을 조작하여 제어하는 경우가 발생합니다.
탐지 방법
-
세션 ID 검증
-
사용자의 요청에서 전달된 세션 ID와 서버에 저장된 세션 ID를 비교합니다.
-
한 개의 세션 ID가 서로 다른 IP 주소에서 동시에 사용되는 경우 이를 비정상적인 활동으로 간주해야 합니다.
-
보안 로그에서 특정 세션 ID가 여러 장치에서 동시에 인증된 이력이 있는지 추적합니다.
-
-
클라이언트 요청 타임스탬프 분석
-
사용자의 일반적인 활동 패턴(예: 로그인 빈도, 사용 시간, 지역 등)을 기준으로 비정상적인 시간대에 요청이 발생하는지를 분석합니다.
-
갑작스러운 시간 차이(예: 사용자가 1분 전 한국에서 로그인했는데, 1분 후 미국에서 요청을 보내는 경우)가 발생하면 경고를 생성해야 합니다.
-
-
이전 요청과의 응답 지연 비교
-
동일한 세션에서 요청 간 응답 시간이 급격히 증가하거나, 갑작스러운 네트워크 지연이 발생하는지를 확인합니다.
-
공격자가 중간에서 데이터를 가로채거나 조작하면 서버 응답 속도가 불규칙해질 수 있습니다.
-
ACK STORM 탐지 (ACK Storm Detection)
TCP 기반의 세션 하이재킹에서 가장 일반적인 형태 중 하나는 공격자가 TCP 패킷을 가로채거나 변조하는 것입니다. 이 과정에서 서버와 클라이언트 간 통신이 비정상적으로 이루어지며, ACK 패킷이 폭증하는 ‘ACK Storm’ 현상이 발생할 수 있습니다.
탐지 방법
-
네트워크 트래픽 모니터링
-
동일한 TCP 세션에서 과도한 ACK 패킷이 생성되는지를 분석합니다.
-
정상적인 트래픽에서는 클라이언트가 요청을 보내고 서버가 응답하는 형태이지만, 공격이 발생하면 ACK 패킷이 주기적으로 비정상적으로 증가할 수 있습니다.
-
-
비정상적인 ACK 패킷 패턴 감지
-
정상적인 세션에서는 일정한 패턴으로 ACK 패킷이 오갑니다.
-
하지만 세션이 하이재킹되면 동일한 세션에서 비정상적으로 많은 ACK 패킷이 감지되며, 클라이언트와 서버 간의 패킷 흐름이 불규칙해질 수 있습니다.
-
IDS/IPS(침입 탐지 및 방지 시스템)를 이용하여 이상 패턴을 자동 감지하도록 설정할 수 있습니다.
-
-
패킷 손실률 증가 감지
-
과도한 ACK 패킷으로 인해 네트워크 과부하가 발생하면서 패킷 손실률이 급격히 증가할 수 있습니다.
-
정상적인 환경에서는 일정한 패킷 손실률을 유지하지만, 세션 하이재킹 시 특정 세션에서 패킷 손실이 급격히 증가할 가능성이 있습니다.
-
패킷의 유실 및 재전송 증가 탐지 (Packet Loss & Retransmission Increase Detection)
세션 하이재킹이 발생하면 공격자가 정상적인 사용자와 서버 간의 통신을 방해하거나, 가로채는 과정에서 패킷 유실이 증가할 수 있습니다. 또한 공격자는 세션을 탈취한 후 클라이언트의 연결을 차단하여 재전송 패킷이 급격히 증가하는 현상을 초래할 수 있습니다.
탐지 방법
-
TCP 재전송률 확인
-
특정 세션에서 TCP 재전송 패킷이 급증하는 경우 의심해야 합니다.
-
공격자는 정상적인 사용자와 서버 간의 통신을 차단하거나 변조할 수 있으며, 이에 따라 사용자는 데이터를 재전송하려는 시도를 하게 됩니다.
-
-
패킷 유실률 모니터링
-
네트워크의 평균적인 패킷 손실률을 기준으로 특정 세션에서 급격한 증가가 있는지 분석합니다.
-
세션이 하이재킹되면 불필요한 패킷이 손실되거나 변경되며, 정상적인 데이터 전송이 어려워질 수 있습니다.
-
-
유사한 출처에서 오는 중복 요청 분석
-
동일한 세션 ID를 사용하는 다중 요청이 발생하는지를 탐색합니다.
-
공격자가 동일한 세션을 재사용하려 할 경우, 서버 로그에서 여러 개의 유사한 요청이 감지될 가능성이 큽니다.
-
예상치 못한 접속의 리셋 탐지 (Unexpected Connection Reset Detection)
공격자가 세션을 가로채기 위해 기존 사용자의 연결을 강제로 종료시키는 경우, 서버와 클라이언트 간의 연결이 예상치 못하게 끊어지는 현상이 발생할 수 있습니다. 이는 TCP RST
패킷(연결 재설정 패킷)이 비정상적으로 증가하는 형태로 나타납니다.
탐지 방법
-
이상한 TCP RST 패킷 감지
-
정상적인 사용자의 네트워크 환경에서는 RST 패킷이 자주 발생하지 않습니다.
-
그러나 공격자가 세션을 차단하려 할 경우, RST 패킷이 다수 발생하며 정상적인 통신이 불가능해집니다.
-
-
클라이언트의 접속 이력 분석
-
정상적인 사용자의 접속 패턴과 비교하여 갑작스럽게 세션이 종료된 경우 이를 의심해야 합니다.
-
예를 들어, 사용자가 로그인한 지 몇 초 만에 세션이 종료되고, 다른 IP에서 동일한 세션이 사용되려는 시도를 감지하면 위험 신호로 간주할 수 있습니다.
-
-
동일 세션 내에서 다른 IP에서의 재연결 여부 확인
-
특정 사용자의 세션이 종료된 후 짧은 시간 내에 새로운 IP에서 동일한 세션으로 접속하려는 시도가 있는지 분석합니다.
-
이는 공격자가 기존 사용자의 세션을 탈취한 후 빠르게 재연결을 시도하는 신호일 수 있습니다.
-
결론
세션 하이재킹은 사용자 계정 탈취, 데이터 유출, 서비스 악용 등의 심각한 보안 위협을 초래할 수 있습니다. 따라서 비동기화 상태 탐지, ACK STORM 감지, 패킷 유실 및 재전송 증가 모니터링, 예상치 못한 세션 리셋 탐지 등의 방법을 활용하여 이를 신속하게 탐지하고 대응하는 것이 중요합니다. 기업 및 개인 사용자는 네트워크 트래픽 모니터링 도구를 활용하고, 이상 징후를 실시간으로 분석하여 세션 하이재킹 공격을 방어하는 데 집중해야 합니다.
CTR(Block Cipher Counter) 모드란?
2 thoughts on “세션 하이재킹(Session Hijacking) 탐지 방법”