메인 컨텐츠로 건너뛰기

세션 하이재킹은 무엇이고 어떻게 이루어집니까?

노트북 앞에서 일하는 여성

많은 사람은 매일 인터넷을 사용하면서 웹사이트 또는 포털에 로그인합니다. 웹사이트에 로그인할 때마다 세션이 생성됩니다. 세션은 두 시스템 사이의 통신이며, 사용자가 통신을 종료할 때까지 활성 상태로 유지됩니다. 인터넷을 통해 통신이 이루어지려면 세션을 시작해야 하지만, 그러면 세션 하이재킹 위험도 발생합니다. 세션 하이재킹과 그 방법 및 스스로를 보호하는 방법에 대해 자세히 알아보려면 계속 읽으십시오.

세션 하이재킹이란?

때로는 쿠키 하이재킹, 쿠키 사이드재킹, 또는 TCP 세션 하이재킹이라고도 하는 세션 하이재킹은 공격자가 인터넷 세션을 장악할 때 일어납니다. 세션 하이재킹은 온라인 쇼핑을 하거나, 청구서를 결제하거나, 은행 잔액을 확인할 때 발생할 수 있습니다. 세션 하이재킹 공격자는 일반적으로 브라우저 또는 웹 애플리케이션을 공격하며, 인터넷 브라우징 세션을 제어하여 사용자의 개인 정보와 비밀번호에 액세스하는 것이 목표입니다.

세션 하이재킹 공격자는 자신이 사용자라고 생각하도록 웹사이트를 속입니다. 이런 공격은 공격자가 합법적인 사용자로 가장하여 보호되는 계정(및 계정에 포함된 데이터)에 무단으로 액세스하기 위해 이용할 수 있기 때문에 애플리케이션 보안과 관련된 심각한 결과를 초래할 수 있습니다.

세션이란?

사용자가 HTTP 연결을 통해 웹사이트 또는 애플리케이션에 액세스할 때마다 서비스는 사용자를 (예를 들어 사용자 이름과 비밀번호를 통해) 인증한 후 통신을 허용하고 액세스 권한을 부여합니다. 하지만 HTTP 연결 자체는 '무상태'입니다. 즉, 사용자가 수행하는 작업이 각각 독립적이라고 인식됩니다. 따라서 HTTP만 사용하면 사용자가 수행하는 작업과 확인하는 각 페이지마다 다시 인증을 받아야 할 것입니다.

세션은 이 문제를 해결합니다. 세션은 웹사이트 또는 애플리케이션을 호스트하는 서버에서 사용자가 로그인한 후에 생성되고, 그런 다음 초기 인증을 위한 참조로 사용됩니다. 사용자는 세션이 서버에서 열려 있는 동안 계속 인증을 유지할 수 있고, 서비스에서 로그아웃하여 세션을 종료할 수 있습니다. 일부 서비스는 설정된 비활성 기간이 지난 후 세션을 종료합니다.

여러 서비스는 임시 세션 쿠키, URL, 또는 웹사이트의 숨은 필드에 저장되는 숫자와 문자의 문자열인 세션 ID를 발급하여 이런 세션을 만듭니다. 경우에 따라 이런 세션 ID는 암호화되지만, 항상 그렇지는 않습니다. 종종 세션 ID에는 사용자의 IP 주소 같은 예측 가능한 정보가 사용됩니다.

세션 하이재킹은 어떻게 이루어지나요?

세션 하이재킹이 이루어질 수 있는 가상의 예를 들어보겠습니다.

1단계: 인터넷 사용자가 계정에 정상적으로 로그인합니다. 

온라인 은행 또는 신용 카드 계정이나 온라인 스토어, 애플리케이션 또는 포털에 로그인할 수 있습니다. 애플리케이션 또는 웹사이트가 임시 세션 쿠키를 사용자의 브라우저에 설치합니다. 이 쿠키에는 사이트에서 세션 중에 사용자를 인증 및 로그인된 상태로 유지하고 사용자의 활동을 추적하기 위해 사용할 수 있는 정보가 포함됩니다. 세션 쿠키는 사용자가 로그아웃할 (또는 설정된 비활성 기간 후에 자동으로 로그아웃될) 때까지 브라우저에 남아 있습니다.

2단계: 범죄자가 인터넷 사용자의 유효한 세션에 액세스합니다. 

사이버 범죄자는 다양한 방법을 사용하여 세션을 가로챕니다. 종종 세션 하이재킹에는 사용자의 세션 쿠키를 훔치고 쿠키 안에서 세션 ID를 찾고 해당 정보를 사용하여 세션을 장악하는 행위가 포함됩니다. 세션 ID를 세션 키라고도 합니다. 범죄자가 세션 ID를 획득하면 아무도 모르게 세션을 장악할 수 있습니다.

3단계: 세션 하이재커가 세션을 훔친 대가를 얻습니다.

인터넷 사용자가 온라인 여정을 계속하면 하이재커는 지속되는 세션을 이용하여 여러 악의적인 행위를 할 수 있습니다. 여기에는 사용자의 은행 계좌에서 돈을 훔치거나, 물품을 구매하거나, 개인 데이터를 획득하여 신분을 도용하거나, 중요한 데이터를 암호화한 후 돌려주는 대가로 배상금을 요구하는 행위가 포함될 수 있습니다.

세션 하이재킹 공격은 일반적으로 활성 통신 세션 수가 많은 빠른 네트워크를 대상으로 감행됩니다. 그러면 공격자는 이용할 세션을 많이 얻게 되며, 서버에 활성 세션 수가 많아서 눈에 띌 가능성이 낮아지기 때문에 보호 수단도 얻게 됩니다.

세션 하이재킹의 유형

크로스사이트 스크립팅
크로스사이트 스크립팅 공격을 이용하는 사이버 범죄자는 웹 서버 또는 애플리케이션의 보안 취약점을 악용합니다. 크로스사이트 스크립팅 공격자는 스크립트를 웹 페이지에 삽입합니다. 그러면 웹 브라우저가 사용자의 세션 키를 공격자에게 공개하여 공격자가 세션을 장악할 수 있게 됩니다.

세션 사이드 재킹(세션 스니핑이라고도 함)
이 공격 유형에서는 범죄자가 사용자의 네트워크 트래픽에 액세스해야 합니다. 범죄자는 사용자가 안전하지 않은 Wi-Fi를 사용할 때, 또는 중간자 공격을 감행하는 방법으로 액세스 권한을 얻을 수 있습니다. 세션 사이드 재킹에서는 공격자가 '패킷 스니핑'을 이용해 인터넷 사용자의 네트워크 트래픽을 모니터링하여 세션을 찾습니다. 그러면 공격자는 세션 쿠키를 획득하여 세션을 장악하기 위해 사용할 수 있습니다.

세션 고정 
세션 고정 공격에서는 범죄자가 세션 ID를 만들고 사용자가 이 ID를 사용해 세션을 시작하도록 속입니다. 공격자는 액세스하려는 웹사이트의 로그인 양식으로 연결되는 링크를 사용자에게 이메일로 보내서 이와 같이 할 수 있습니다. 사용자는 허위 세션 ID로 로그인하여 공격자가 문에 발을 들여놓을 수 있게 합니다.

Man-in-the-browser 공격
중간자(man-in-the-middle) 공격과 유사하지만, 공격자가 먼저 피해자의 컴퓨터에 트로이목마를 감염시켜야 합니다. 피해자가 속아서 악성 코드를 시스템에 설치하고 나면 악성 코드는 피해자가 대상 사이트에 방문할 때까지 기다립니다. Man-in-the-browser 악성 코드는 보이지 않는 사이에 트랜잭션 정보를 수정하고 사용자가 알지 못하는 사이에 트랜잭션을 더 만들 수도 있습니다. 요청이 피해자의 컴퓨터에서 시작되기 때문에 웹 서비스가 요청이 허위임을 알기는 매우 힘듭니다.

예측 가능 세션 토큰 ID
여러 웹 서버는 맞춤 알고리즘이나 미리 정의된 패턴을 사용하여 세션 ID를 생성합니다. 세션 토큰이 예측하기 쉬울수록 보안이 더 취약합니다. 공격자가 ID를 몇 개 수집하고 패턴을 분석할 수 있으면 유효한 세션 ID를 예측할 수도 있습니다. (이 방법은 무차별 대입 공격과 유사합니다.)

온라인 뱅킹 사이트에 로그인하고 있는 여성

세션 하이재킹은 세션 스푸핑과 어떻게 다를까요?

세션 하이재킹과 세션 스푸핑은 유사점이 있지만, 같은 유형의 공격은 아닙니다. 둘의 가장 큰 차이점은 세션 하이재킹이 합법적인 사용자가 웹 세션에 이미 로그인되어 있을 때 일어난다는 것입니다. 반대로, 세션 스푸핑은 공격자가 사용자로 가장하여 새 웹 세션을 시작할 때 일어납니다(사용자가 해당 시점에 로그인되어 있지 않아도 됨을 의미합니다).

이런 차이로 인해 합법적인 사용자들은 두 가지 공격을 서로 다르게 경험합니다. 공격자가 세션 하이재킹을 사용하여 세션을 가로채면 웹사이트 또는 애플리케이션이 비정상적으로 동작하거나 심지어는 다운될 수도 있습니다. 하지만 세션 스푸핑 공격 도중에는 사용자가 활성 로그인 상태가 아니기 때문에 다음 번 세션에는 중단을 겪지 않습니다.

세션 하이재킹 공격의 영향

세션 하이재킹 방지 조치를 취하지 않을 경우 여러 관련 위험이 따릅니다. 이런 위험의 예를 들면 다음과 같습니다.

신분 도용 

공격자는 계정에 저장된 민감한 개인 정보에 무단으로 액세스하여 해킹한 웹사이트 또는 애플리케이션 밖에서도 피해자의 신분을 도용할 수도 있습니다.

금융 절도

공격자는 세션 하이재킹을 통해 사용자 대신 금융 거래를 이행할 수 있습니다. 여기에는 은행 계좌에서 자금을 이체하거나 저장된 결제 정보를 사용하여 구매하는 것이 포함될 수 있습니다.

악성 코드 감염

해커가 사용자의 세션 ID를 훔칠 수 있으면 사용자의 컴퓨터에 악성 코드를 감염시킬 수도 있습니다. 그러면 표적의 컴퓨터를 장악하고 데이터를 훔칠 수 있습니다.

서비스 거부(DoS) 공격

사용자 세션을 장악하는 해커는 연결되어 있는 웹사이트 또는 서버를 대상으로 DoS 공격을 시작하여 서비스를 중단시키거나 사이트를 다운시킬 수 있습니다.


SSO를 통한 추가 시스템 액세스

SSO는 ‘Single sign-on’의 약자입니다. SSO를 사용하는 경우 공격자는 추가 시스템에 무단으로 액세스하여 세션 하이재킹 공격의 잠재적인 위험을 더욱 확산시킬 수 있습니다. 현재 직원들이 SSO를 사용하는 경우가 많기 때문에 이러한 위험은 조직에 특히 중요합니다. 이 내용은 궁극적으로 더 강력한 인증 프로토콜과 덜 예측하기 쉬운 세션 쿠키를 사용하기 때문에 보호 수준이 높은 시스템(금융 또는 고객 정보가 보관된 시스템 등)도 전체 시스템에서 가장 약한 연결 고리의 보호 수준까지만 보호될 수 있음을 의미합니다.

세션 하이재킹 공격 예시

줌 바밍
코로나19 팬데믹 기간에는 전 세계가 Zoom 같은 비디오 회의 앱을 사용했습니다. 이런 앱은 세션 하이재커들에게 인기가 높은 표적이 되어 '줌 바밍'이라는 별명까지 생겼습니다. 세션 하이재커들이 비공개 비디오 세션에 들어와서 큰 소리로 욕설이나 혐오 표현을 사용하거나 음란 이미지를 공유했던 사례에 대한 뉴스가 보도되기도 했습니다. 이에 대응해 Zoom은 더 강력한 개인 정보 보호 조치를 도입하여 위험을 최소화했습니다.

Slack
2019년에 한 버그 바운티 플랫폼의 연구원은 공격자가 사용자를 대상으로 허위 세션 리디렉션을 강제로 실행하여 사용자의 세션 쿠키를 훔치기 위해 이용할 수 있는 취약점을 Slack에서 발견했습니다. 이 취약점을 이용하면 공격자가 Slack 안에서 공유되는 모든 데이터에 액세스할 수 있으며, 그러면 여러 조직에 중대한 결과가 초래될 수 있습니다. Slack은 빠르게 대응하여 연구원이 취약점에 대해 알린 후 24시간 이내에 취약점을 패치로 해결했습니다.

GitLab

2017년에는 한 보안 연구원이 사용자의 세션 토큰을 URL에서 바로 사용할 수 있는 취약점을 GitLab에서 발견했습니다. 조사 결과, GitLab이 만료되지 않은 영구적 세션 토큰도 사용(공격자가 세션 토큰을 하나 획득하면 만료될 걱정 없이 토큰을 사용할 수 있음을 의미)한 것으로 드러났습니다. 이 취약점과 영구적 토큰의 문제가 함께 발생하자 사용자가 무차별 대입 공격을 이용한 세션 하이재킹을 통해 여러 심각한 공격에 노출될 수 있는 중대한 위험이 제기되었습니다. GitLab는 이런 토큰을 사용하고 저장하는 방법을 변경하여 취약점을 해결했습니다.

세션 하이재킹을 방지하는 방법

다음 세션 하이재킹 방지 팁을 따라하여 온라인 보안을 강화하십시오.

공용 Wi-Fi 사용하지 않기
뱅킹, 온라인 쇼핑 또는 이메일 또는 소셜 미디어 계정 로그인 같은 중요한 트랜잭션을 공용 Wi-Fi에서 수행하지 마십시오. 근처에 패킷 스니핑을 이용하여 세션 쿠키와 그 외 다른 정보를 해킹하려고 하는 사이버 범죄자가 있을 수 있습니다.

VPN 사용
공용 Wi-Fi를 사용해야 하는 경우, 가상 사설망(VPN)을 사용하여 안전을 극대화하고 세션 하이재커가 세션에 들어오지 못하게 하십시오. VPN은 IP 주소를 마스킹하고 사용자의 모든 온라인 활동이 통과하는 비공개 터널을 만들어 온라인 활동을 비공개로 유지합니다. VPN은 사용자가 송수신하는 데이터를 암호화합니다.

피싱과 그 외 다른 온라인 사기 경계
합법적인 발신자가 보냈음을 확실히 하는 경우에만 이메일에 있는 링크를 클릭하십시오. 세션 하이재커는 클릭할 링크가 있는 이메일을 보낼 수 있습니다. 이 링크를 클릭하면 악성 코드가 장치에 설치되거나 공격자가 준비한 세션 ID를 사용하여 사이트에 로그인하는 로그인 페이지로 이동할 수 있습니다.

사이트 보안에 주의
평판이 좋은 은행, 이메일 제공업체, 온라인 소매업체 및 소셜 미디어 사이트에는 세션 하이재킹을 방지하는 안전장치가 있습니다. URL이 HTTPS로 시작하는 웹사이트를 찾아보십시오. S는 ‘보안’(secure)을 의미합니다. 의심스러운 온라인 샵이나 그 외 보안이 강력하지 않을 수 있는 제공업체를 사용하면 세션 하이재킹 공격에 취약할 수 있습니다.

안티 바이러스 소프트웨어 사용 
쉽게 바이러스를 탐지하고 모든 종류의 악성 코드(공격자가 세션 하이재킹에 사용하는 악성 코드 포함)를 차단할 수 있는 평판이 좋은 안티 바이러스 소프트웨어를 설치하십시오. 사용하는 모든 장치에서 자동 업데이트를 설정하여 시스템을 최신 상태로 유지하십시오.

연관 제품:

세션 하이재킹은 무엇이고 어떻게 이루어집니까?

Kaspersky 로고

관련 문서