도난당한 쿠키는 가장 민감한 데이터를 범죄자에게 노출시킬 수 있는 흔하고 위험한 세션 하이재킹(Session Hijacking) 공격의 핵심 요소입니다. 세션 하이재킹은 사용자의 돈 지출 내역부터 비밀번호까지 수집하여 많은 피해를 입힐 수 있습니다. 지피지기면 백전백승! 이 글에서는 세션 하이재킹은 무엇이며 어떻게 작동하는지 배우고 세션 하이재킹 방지 방법도 알아보겠습니다.
세션 하이재킹 정의
세션 하이재킹(Session Hijacking)이란 시스템에 접근할 적법한 사용자의 아이디와 패스워드를 모를 경우 공격 대상이 이미 시스템에 접속되어 세션이 연결되어 있는 상태를 가로채기 하는 공격으로, 공격자가 공격 대상의 아이디와 패스워드를 몰라도 시스템에 접근하여 자원이나 데이터를 사용할 수 있는 공격을 의미합니다. 공격자는 사용자의 인터넷 세션을 장악하여 신용카드 잔액 확인, 청구서 결제, 온라인 쇼핑 등 사용자의 웹 활동을 제어합니다. 세션 하이재커는 일반적으로 브라우저 또는 웹 애플리케이션 세션을 표적으로 삼습니다. 세션을 노리는 수법 외에도 다양한 하이재킹 수법을 알고싶다면 블로그 글을 확인해 보세요.
세션 하이재킹 원리
세션은 디바이스와 웹 서버 간의 일련의 상호 작용입니다. 세션은 웹사이트나 웹 애플리케이션(은행을 예로 들어보지요)에 로그인하면 시작됩니다. 세션은 잔액을 확인하거나 결제하는 동안 계속 진행되며 로그아웃하는 순간 종료됩니다. 웹 서버는 매 순간 웹페이지에 들어오는 요청이 실제로 사용자로부터 온 것인지 어떻게 알 수 있을까요?
바로 쿠키 가 그 역할을 합니다. 사용자는 로그인하면서 자격 증명을 웹 서버로 전송합니다. 웹 서버는 사용자가 누구인지 확인하고 세션 내내 사용자에게 부착되는 쿠키를 사용하여 해당 사용자에게 세션 ID를 부여합니다. 이것이 바로 다른 사람의 프로필을 방문할 때마다 Facebook에서 로그아웃되지 않는 이유이며, 페이지를 새로 고쳐도 장바구니에 넣은 내용을 Amazon에서 기억하는 이유입니다.
그러나 누군가가 잘못된 세션 관리 관행을 이용하거나 쿠키를 도용하면 이 세션을 가로챌 수 있습니다. 그러면 범죄자는 웹 서버를 속여 권한이 있는 사용자로부터 요청이 들어온 것으로 착각하게 만들 수 있습니다. 이를 세션 하이재킹(가로채기)라고 하는데요, 이 수법을 통해 범죄자는 로그인 정보를 훔치지 않고도 사용자를 대신해 은행 송금이나 온라인 구매와 같은 작업을 수행할 수 있습니다.
세션 하이재킹의 유형
세션 하이재킹은 가해자가 원하는 목적에 따라 크게 두 가지 유형으로 나눌 수 있습니다.
능동형
액티브 공격에서는 범인이 사용자의 세션을 장악하고 디바이스가 웹 서버와 통신하지 못하도록 차단하여 사용자를 차단합니다. 범죄자는 사용자로 위장하여 사용자만이 할 수 있는 작업을 수행할 수 있습니다. 세션이 진행되는 웹사이트에 따라 해커는 사용자처럼 온라인 구매를 하거나 비밀번호를 변경하거나 계정을 복구할 수 있습니다.
수동형
패시브 공격에서는 세션에서 쫓겨나지 않습니다. 대신, 범죄자는 사용자의 기기와 서버 간의 데이터 트래픽을 조용히 관찰하여 사용자의 민감한 정보를 수집합니다. 이렇게 하면 범죄자는 의심을 사지 않고 비밀번호, 신용카드 정보 및 기타 정보를 알아낼 수 있습니다.
세션 하이재킹 발생 경로
세션 하이재킹 공격을 수행하는 방법에는 여러 가지가 있습니다. 대부분의 세션 하이재킹 수법은 웹 서버의 취약점을 이용하지만, 일부 수법은 사용자 측의 허술한 보안을 악용하기도 합니다. 많은 경우, 세션 하이재킹 공격은 유효한 세션 토큰을 훔치거나 예측하여 세션 토큰을 손상시켜 웹 서버에 대한 무단 액세스를 얻습니다.
세션 사이드 재킹
이 방법은 안전하지 않은 네트워크를 이용하여 사용자의 세션 ID를 알아냅니다. 공격자는 스니핑 소프트웨어를 사용하며 일반적으로 보안이 취약한 것으로 알려진 공용 Wi-Fi 또는 SSL 인증서 가 없는 웹사이트를 표적으로 삼습니다.
세션 고정
세션 고정을 통해 공격자는 자신이 만든 세션 ID를 사용하도록 유도합니다. 공격자는 피싱 수법을 사용하여 세션 ID를 특정 웹사이트로 '고정’하는 악성 링크를 클릭하도록 유도합니다. 그런 다음 사용자로 접속하여 세션을 탈취할 수 있습니다.
무차별 암호 대입
가장 시간이 많이 걸리고 비효율적인 방법은 세션 ID를 무차별 대입하는 것입니다. 브루트 포스 이라고도 불리는 이 공격이 진행되는 동안 해커는 실제로 쿠키를 훔치지 않습니다. 대신, 해커는 가능한 모든 조합을 시도하여 세션 ID를 추측하고 세션을 탈취합니다.
크로스 사이트 스크립팅
크로스 사이트 스크립팅(XSS 공격)에서 해커는 합법적인 웹사이트나 애플리케이션의 취약점을 악용하여 악성 코드를 삽입합니다. 사용자가 웹사이트를 방문하면 스크립트가 활성화되어 사용자의 쿠키를 훔쳐 공격자에게 전송합니다.
멀웨어
악성 소프트웨어는 장치에서 승인되지 않은 작업을 수행하는 것부터 개인 데이터를 훔치는 것까지 모든 작업을 수행할 수 있습니다. 멀웨어는 쿠키 하이재킹을 수행하여 공격자에게 정보를 전송하는 데에도 사용될 수 있습니다.
IP 스푸핑
IP 스푸핑 에서는 범죄자가 패킷의 원래 IP를 변경하여 사용자가 보낸 것처럼 보이게 합니다. 웹사이트에 연결할 때 3자 TCP 핸드셰이크를 수행해야 합니다. 해커가 스푸핑된 IP로 중간에 끼어들면 웹 서버는 처음부터 사용자로 착각합니다. 이때부터 해커는 TCP 세션 하이재킹을 수행할 수 있습니다.
세션 하이재킹을 방지하는 방법
세션 하이재킹의 성공 여부는 일반적으로 사용 중인 웹사이트나 애플리케이션의 보안에 따라 결정됩니다. 하지만 스스로를 보호하기 위해 취할 수 있는 조치가 있습니다.
- 공용 Wi-Fi 를 피하세요. 무료 Wi-Fi 핫스팟은 사이버 범죄자에게 이상적입니다. 일반적으로 보안이 취약하고 해커가 쉽게 모방할 수 있습니다. 데이터 트래픽이 노출되는 잠재적인 피해자가 항상 존재한다는 것은 말할 것도 없습니다.
- 안전하지 않은 웹사이트는 자제하세요. SSL 인증서를 사용하지 않는 웹사이트는 사용자와 웹사이트 간의 트래픽을 암호화하지 못하기 때문에 보안에 취약합니다. URL 옆에 작은 자물쇠가 있는지 확인하여 웹사이트가 안전한지 확인하세요. 자물쇠가 있다면 안전한 웹사이트입니다.
- 멀웨어 방지 앱을 다운로드하세요. 이 앱은 무단 작업을 수행하고 정보를 도용할 수 있는 악성 소프트웨어로부터 디바이스를 탐지하고 보호합니다. 바이러스 및 위협 방지Pro 기능 소프트웨어를 사용할 것을 강력히 권장합니다. 멀웨어가 포함된 파일을 식별하고, 악성 웹사이트 방문을 차단하며, 트래커와 침입성 광고를 즉시 차단합니다.
- 소프트웨어를 신중하게 다운로드하세요. 합법적인 것으로 확인된 앱만 다운로드하세요. 의도치 않게 디바이스에 멀웨어가 다운로드되는 것을 방지하는 좋은 방법은 공식 스토어에서만 앱을 구매하는 것입니다.
- 알 수 없는 링크는 열지 마세요. 낯선 링크를 클릭하라는 메시지가 표시되면 클릭하지 마세요. 기기를 감염시키고 정보를 도용할 수 있는 감염된 웹사이트를 방문하도록 유도하는 피싱 수법일 수 있습니다.
- VPN 을 사용하세요. 가상 사설망(VPN)은 네트워크에서 세션 하이재킹 공격을 방지하는 또 다른 방법입니다. VPN은 원래 IP 주소를 마스킹하고 사용자와 웹사이트 사이에 암호화된 터널을 생성하여 보안을 유지합니다. 이렇게 하면 공격자가 네트워크에 침입할 수 없습니다. 한국에 서버를 둔 한국 VPN 을 사용할 것을 권장합니다. NordVPN은 한국을 포함하여 전 세계 118여개 국가에 서버를 보유하고 있으며 크롬 VPN 과 같은 브라우저 확장 프로그램 버전도 제공하고 있어 사용이 편리합니다.
클릭 한 번으로 온라인 보안을 시작해 보세요.
세계 최고의 VPN으로 보안을 유지하세요