세션 하이재킹이란? 세션 개인 정보를 보장하는 방법
게시 됨: 2021-07-13로그인과 로그아웃 사이에 많은 일이 발생할 수 있습니다.
공격자는 귀하의 계정에 무단으로 액세스하고 데이터를 악용할 수 있는 세션을 찾습니다. 보안 환경에서 로그인 세부 정보를 인증하고 세션 하이재킹 공격으로부터 자신을 보호해야 합니다.
당신이 사용할 수있는 웹 애플리케이션 방화벽 들어오는 트래픽의 이상을 감지하고 잠재적으로 악의적인 트래픽이 들어오는 것을 차단합니다. 그러나 강력한 보안 방어를 수정하려면 세션 하이재킹, 유형 및 공격자가 사용자 계정에 침투하는 데 사용할 수 있는 도구를 자세히 이해하는 것이 중요합니다.
세션 하이재킹이란?
쿠키 하이재킹이라고도 하는 세션 하이재킹 은 세션이 진행 중인 동안 세션 ID를 얻거나 생성하여 사용자 세션을 제어하는 프로세스입니다.
공격자는 XSS(교차 사이트 스크립팅), 무차별 대입, 리버스 엔지니어링 또는 기타 다양한 방법을 사용하여 세션 쿠키를 손에 넣고 사용자 계정에 대한 무단 액세스를 얻을 수 있습니다.
세션은 웹 애플리케이션과 같은 서비스에 로그인할 때 시작되고 로그아웃할 때 종료됩니다. HTTP(Hypertext Transfer Protocol)는 상태 비저장 프로토콜입니다. 즉, 이전 요청을 참조하지 않고 각 요청을 독립적으로 전달하므로 사용자가 웹 페이지를 볼 때마다 인증을 받아야 합니다. 사용자에게 매번 로그인하라는 메시지를 표시하지 않도록 서버는 인증 후 원활한 웹 경험을 제공하기 위해 세션 ID를 할당합니다.
공격자는 대상의 세션 ID를 훔치거나 세션 하이재킹 공격을 위해 사전 제작된 세션으로 연결하는 악성 링크를 클릭하도록 속입니다. 사용자가 서버에서 인증되면 위협 행위자는 세션을 가로채고 서버가 자신의 세션이 유효한 것으로 간주하도록 속일 수 있습니다.
공격자가 세션 쿠키를 표적으로 삼는 경우 이는 TCP(Transmission Control Protocol) 세션 하이재킹이 아니라 웹 애플리케이션 세션 하이재킹과 관련이 있습니다. TCP 는 패킷의 안정적인 전송을 보장하기 위해 IP 위에 사용되는 전송 프로토콜입니다. 웹 응용 프로그램은 공격자가 세션을 가로채기 위해 악용하는 인증 성공 후 세션 쿠키를 반환합니다. 사용자의 장치와 서버 간의 TCP 연결과 관련이 없습니다.
세션 하이재킹 방법
공격자는 일반적으로 세션 하이재킹을 수행하는 동안 몇 가지 방법을 선택할 수 있습니다. 그들은 개별적으로 또는 조합하여 사용자 계정을 탈취하고 악의적인 활동을 수행할 수 있습니다.
사이트 간 스크립팅
XSS(교차 사이트 스크립팅) 공격에서 악의적인 해커는 서버에 속한 신뢰할 수 있는 코드로 가장하는 코드를 실행하도록 대상의 컴퓨터를 속입니다. 이를 통해 공격자는 쿠키 복사본을 가져와 악의적인 작업을 수행할 수 있습니다. 일반적으로 웹 페이지에는 JavaScript가 포함되어 있습니다. 적절한 보호 장치 없이 응용 프로그램 보안 도구를 사용하여 스크립트를 실행하면 사용자의 민감한 정보가 노출됩니다.
서버가 세션 쿠키에 HTTPOnly 속성을 설정하지 않으면 스크립트가 공격자에게 쿠키를 노출할 수 있습니다.
악성코드 주입
약간 멀웨어 또는 트로이 목마는 사용자 모르게 브라우저 쿠키를 훔치고 악의적인 작업을 수행하도록 프로그래밍됩니다. 예를 들어, 사용자가 악성 웹사이트를 방문하거나 원치 않는 링크를 클릭하면 멀웨어가 네트워크 트래픽을 스캔하고 세션 쿠키를 수집하여 악의적인 행위자에게 보냅니다. 로컬 저장소에 액세스할 수 있는 공격자는 브라우저의 임시 로컬 저장소(쿠키 항아리)에서 세션 키를 훔치거나 서버나 사용자 컴퓨터의 파일 또는 메모리 내용을 얻을 수 있습니다.
무차별 대입
공격자는 무차별 대입 공격 을 수행하여 사용자의 세션 키를 추측할 수 있습니다. 애플리케이션이 순차적 또는 예측 가능한 세션 키를 사용하면 세션이 하이재킹에 취약해집니다. 이것은 과거에 선호되는 방법이었지만 최신 애플리케이션에서는 세션 ID가 길고 무작위로 생성되어 무차별 대입 공격에 대한 상당한 저항을 제공합니다.
세션 측 재킹
세션 측 재킹 에서 공격자는 패킷 스니핑을 활용하여 네트워크 트래픽을 읽고 세션 쿠키를 훔칩니다. 일반적으로 웹 사이트는 인증 페이지에서 SSL/TLS(Secure Sockets Layer/Transport Layer Security) 암호화를 사용합니다. 그러나 일부는 인증 후 사이트 전체에서 사용하지 않기 때문에 공격자가 서버와 웹 페이지 간에 교환되는 데이터를 가로챌 수 있습니다.
공격자가 세션 쿠키를 손에 넣으면 사용자 세션을 하이재킹하여 악의적인 작업을 수행할 수 있습니다. 예를 들어, 보안되지 않은 WiFi에 연결된 사용자를 표적으로 삼는 악의적인 행위자는 다른 노드와 액세스 포인트 간에 공유되는 데이터나 트래픽을 쉽게 읽을 수 있습니다.
세션 고정
공격자는 때때로 위장된 세션을 만들고 사용자를 속여서 취약한 서버에 인증하도록 할 수 있습니다. 예를 들어, 위협 행위자는 다음을 사용할 수 있습니다. 사회 공학 (피싱) 또는 알려진 세션 쿠키를 사용하여 조작된 세션으로 연결하는 링크를 클릭하도록 사용자를 설득하는 유사한 방법. 사용자가 인증되면 공격자는 알려진 세션 키를 사용하여 사용자의 세션을 하이재킹할 수 있습니다.
공격자는 또한 사용자를 속여 숨겨진 고정 세션 ID를 포함하는 사전 제작된 로그인 양식을 작성하도록 할 수 있습니다.
세션 하이재킹 공격 수준
세션 하이재킹 공격에는 두 가지 수준이 있습니다. 이러한 공격은 네트워크 계층에 대한 성공적인 공격이 응용 프로그램 수준에서 실제 사용자를 악용할 수 있는 공격자 정보를 제공하므로 상호 관련될 수 있습니다.
전송 계층 하이재킹
전송 계층 하이재킹은 공격자가 웹 서버와 사용자 간의 데이터 교환을 가로채서 둘 사이에 설정된 통신 채널을 금지하는 TCP 연결에서 발생합니다. 그런 다음 악의적인 행위자는 합법적인 것으로 위장한 악성 데이터 패킷을 클라이언트와 서버 모두에 전송하여 사용자 세션을 인수합니다.
전송 계층 하이재킹의 일반적인 방법은 공격자가 신뢰할 수 있는 것으로 가장한 위조된 IP 주소를 사용하여 네트워크의 컴퓨터와 통신하는 IP 스푸핑 입니다. 소스 라우팅 IP 패킷을 사용하여 두 노드 간의 활성 통신을 가로챕니다. IP 스푸핑은 TCP 세션 시작 시 일회성 인증을 부당하게 이용합니다.
애플리케이션 계층 하이재킹
애플리케이션 계층 하이재킹에서 공격자는 사용자가 애플리케이션에 인증한 후 사용자의 세션 ID를 훔칩니다. 중간자 공격 은 하이재커가 클라이언트와 서버 간의 통신 채널을 가로채는 애플리케이션 계층 세션 하이재킹의 일반적인 예입니다.
프록시 공격도 애플리케이션 계층 하이재킹에 해당합니다. 공격자는 이러한 공격 중에 통신을 가로채기 위해 미리 정의된 세션 ID가 있는 프록시 서버로 트래픽을 보냅니다.
세션 하이재킹의 3가지 유형
세션 하이재킹은 기존 세션에서 세션 쿠키를 추측하거나 가로채거나 사용자가 사전 제작된 세션에서 인증하도록 속이는 것을 포함합니다. 세션 하이재킹 공격에는 세 가지 유형이 있습니다.
1. 액티브
활성 세션 하이재킹 에서 공격자는 네트워크의 활성 연결을 인수합니다. 모든 장치를 음소거하고 클라이언트와 서버 간의 통신 채널을 인수할 수 있습니다. 그런 다음 서버와 사용자 장치 간의 제휴를 해제합니다.
공격자가 클라이언트와 서버 간의 통신을 방해할 수 있는 몇 가지 방법이 있습니다. 일반적으로 침입자는 대량의 트래픽을 보내 유효한 세션을 공격하고 서비스 거부(DoS) 공격을 일으킵니다.
2. 패시브
수동 세션 하이재킹 은 공격자가 클라이언트와 서버 간의 통신을 모니터링한다는 점을 제외하면 능동 세션과 유사합니다. 공격자는 세션에서 실제 사용자를 차단하지 않고 진행 중인 통신 교환을 감독합니다.
수동 공격의 주요 동기는 교환된 정보를 훔쳐 악의적인 목적으로 사용하는 것입니다.
3. 하이브리드
하이브리드 세션 하이재킹 공격 은 능동 공격과 수동 공격의 조합입니다. 하이브리드 공격에서 공격자는 문제를 찾을 때까지 네트워크 트래픽을 모니터링한 다음 세션을 장악하고 합법적인 사용자를 가장하기 시작합니다.
하이브리드 공격은 스푸핑에 의존하며 다음 유형으로 더 분류됩니다.

- 블라인드 스푸핑 공격 은 세션을 방해하지 않고 피해자를 표적으로 삼는 공격자를 포함합니다. 그들은 서버와 사용자 간에 교환되는 데이터 패킷을 캡처하고 TCP 패킷 시퀀스를 해독하려고 합니다.
- 비 블라인드 스푸핑 공격 에는 서버와 사용자 간의 트래픽을 모니터링하여 TCP 시퀀스 범위를 예측하는 후속 계약을 예측하는 것이 포함됩니다. 공격자는 애플리케이션 수준에서 세션을 인수하고 도난당하거나 예측할 수 있는 세션 토큰을 사용하여 새 세션을 형성합니다.
세션 하이재킹 vs. 세션 스푸핑 vs. 세션 재생
세션 하이재킹과 세션 스푸핑의 주요 차이점은 공격 타이밍입니다.
세션 하이재킹 공격은 사용자가 애플리케이션에 자신을 인증하면 수행됩니다. 공격은 응용 프로그램에서 지연 또는 비정상 동작으로 이어질 수 있습니다. 공격자가 사용자가 로그인한 상태에서 데이터를 악용하기 때문입니다. 응용 프로그램이 자주 충돌하는 경우 세션 하이재킹 공격을 제안할 수 있습니다.
세션 스푸핑 에서 피해자는 공격을 인식하지 못합니다. 공격자는 훔쳤거나 위조된 세션 ID를 사용하고 인증을 수행하는 사용자에 의존하지 않고 진짜 사용자를 가장할 수 있습니다.
세션 재생은 약간 다릅니다.
세션 재생 에서 공격자는 이미 세션 쿠키(세션 하이재킹에서 수집)를 가지고 있으며 원하는 대로 사용할 수 있습니다. 그들은 피해자가 원래 한 단위에 대해 요청한 여러 수량의 항목을 구매하는 것과 같이 이전에 유효한 요청을 다시 제출하도록 속일 수 있습니다.
세션 하이재킹 도구
여러 도구는 공격자가 세션 하이재킹 공격을 수행하는 데 도움이 될 수 있습니다. 당신은 그들을 사용할 수 있습니다 침투 테스트 시스템과 응용 프로그램이 공격에 취약한지 확인하십시오.
다음은 공격을 수행하는 데 사용되는 인기 있는 세션 하이재킹 도구입니다.
* 이러한 도구는 세션 하이재킹에 대한 시스템을 테스트하고 강화하기 위한 윤리적 목적으로만 사용해야 합니다.
햄스터와 페렛
Hamster는 네트워크를 통과하는 세션 쿠키를 캡처하는 Ferret이 수집한 데이터를 조작하는 프록시 서버처럼 작동합니다.
다음은 에서 제시한 햄스터 사용의 예입니다. 칼리 도구:
root@kali:~# 햄스터
--- HAMPSTER 2.0 사이드 잭 도구 ---
프록시를 사용하도록 브라우저 설정 http://127.0.0.1:1234
디버그: set_ports_option(1234)
디버그: mg_open_listening_port(1234)
프록시: 127.0.0.1:1234에서 수신
시작 스레드
티사이트
T-Sight 는 처음에 Windows 플랫폼에서 실행하기 위한 네트워크 모니터링 도구로 개발되었습니다. 그러나 네트워크를 모니터링하는 동안 네트워크를 통한 모든 통신이 실시간으로 복사되어 정확한 데이터 전송 출력을 제공하므로 세션을 하이재킹할 수 있습니다. 이 때문에 T-Sight의 개발자인 Engrade는 이제 미리 결정된 IP 주소에만 소프트웨어 라이선스를 제공합니다.
절대적인 힘
Juggernaut 는 세션 하이재킹 공격을 수행하는 데 악의적으로 사용될 수 있는 네트워크 스니핑 도구입니다. LAN(Local Area Network) 의 모든 네트워크 트래픽을 감시하거나 특정 세션 토큰을 수신하도록 Juggernaut를 구성할 수 있습니다. 피해자가 로그인을 시도한 후 네트워크 트래픽을 기록하도록 설정할 수 있습니다.
Juggernaut는 모든 네트워크 트래픽을 거대한 로그 파일에 기록하는 일반 네트워크 스니퍼와 다릅니다. Juggernaut는 공격자가 모든 TCP 기반 연결을 감시하고 세션을 하이재킹할 수 있도록 하는 연결 데이터베이스를 유지 관리합니다. 세션 하이재킹 도구는 또한 패킷 어셈블리의 내장 기능을 제공합니다. 공격자는 이 기능을 사용하여 패킷을 조각화하여 침입 탐지 시스템과 방화벽을 회피합니다.
다음은 Linux 명령줄을 통해 실행할 때 Juggernaut의 사용 예입니다.
Juggernaut ?) 도움말 0) 프로그램 정보 1) 연결 데이터베이스 2) 연결 스파이 3) 연결 재설정 4) 자동 연결 재설정 데몬 5) 단순 연결 하이재킹 6) 대화형 연결 하이잭 7) 패킷 어셈블리 모듈 8) Souper sekret 옵션 번호 여덟 9) 물러나다
- 연결 데이터베이스 는 활성 연결을 보여줍니다.
- 연결 스파이를 사용하면 열린 통신 채널에서 네트워크 트래픽을 모니터링하고 로그를 저장할 수 있는 옵션을 제공합니다.
- 연결 재설정 은 RST 패킷을 소스로 보내 세션을 닫습니다.
- 자동 연결 재설정 데몬 을 사용하면 호스트가 세션 설정을 시도할 때마다 소스에 대한 호스트 기반 IP 주소 및 RST 패킷을 구성할 수 있습니다.
- 단순 연결 하이재킹 을 사용하면 대상에 단일 명령을 입력할 수 있습니다. 공격자는 이를 사용하여 탐지를 방지합니다.
- 대화형 연결 하이재킹 을 사용하면 전체 세션 하이재킹을 수행하고 대규모 ACK 스톰을 생성할 수 있습니다.
- 패킷 어셈블리 모듈 을 사용하면 자신의 패킷을 만들 수 있습니다.
- Souper sekret 옵션 번호 8 에는 기능이 없습니다.
- 아래로 내리면 프로그램을 종료할 수 있습니다.
이들은 공격자가 세션 하이재킹 공격을 수행하는 데 사용하는 도구 중 일부였습니다.
공격자가 사용자 세션을 악용하는 데 사용하는 Hunt, TTY-Watcher, IP-Watcher, 1164, Wireshark, SSHMITM, Hjksuite, C2MYAZZ와 같은 유사한 도구에 대해 네트워크 및 시스템을 강화해야 합니다.
세션 하이재킹을 방지하는 방법
세션 하이재킹은 업계에서 수년간 좋은 평판을 구축하고 충실한 서비스를 제공한 후 발생하는 재정적 손실 및 평판 손실을 포함하여 조직에 심각한 결과를 초래할 수 있습니다.
기업은 세션 하이재킹 공격의 대상이 되지 않도록 전략적 보안 조치를 설정해야 합니다. 이러한 조치에는 다음이 포함됩니다.
- 웹 페이지의 모든 데이터 전송 암호화
- 웹 페이지에서 HTTPS(Hypertext Transfer Protocol Secure) 인증 구현
- 정기적으로 브라우저 업데이트 및 패치
- DDoS 보호 소프트웨어 및 속임수 기술
- 모든 세션에서 조심스럽게 로그인 및 로그아웃
- 사내 세션 관리 시스템을 만드는 대신 웹 프레임워크 통합
- 로그인 시 생성된 세션 ID를 해커가 악용하지 못하도록 인증 후 세션 키 재생성
- 사용자의 평소 IP 주소나 애플리케이션 사용 경향을 확인하는 등 추가 확인을 포함하여 본인 확인을 강화합니다.
- 보안 무선 네트워크만 사용하고 공용 WiFi에서 작동하지 마십시오.
- VPN(가상 사설망) 소프트웨어를 사용하여 IP 주소를 마스킹하고 세션을 보호하세요.
사이트 전체 HTTPS를 사용하는 것은 틀림없이 가장 중요한 예방 메커니즘입니다. 성능 문제가 걱정된다면 웹사이트의 로그인 페이지와 기타 민감한 영역에서 SSL을 구현할 수 있습니다. 또 다른 중요한 예방 조치는 세션 쿠키에 저장된 세션 값을 암호화하는 것입니다.
세션 보호
세션 하이재킹은 번거로울 수 있습니다. 세션 하이재킹 공격으로부터 자신을 보호하고 계정과 데이터를 보호하기 위해 사전 예방적으로 적절한 방어 메커니즘을 설정하십시오.
해커가 조직의 방어선을 뚫기 위한 새로운 방법을 지속적으로 개발함에 따라 100% 보안을 보장하는 것은 더욱 까다로워질 수 있습니다.
공격자가 귀하의 계정 또는 데이터에 액세스할 수 있는 경우 사고 대응 및 사이버 사고를 관리하는 방법에 대해 자세히 알아보십시오.