세션 하이재킹이란 무엇이며 예방 방법

해커가 귀하의 등록 정보를 도용하지 않고 귀하를 대신하여 은행 송금 또는 온라인 구매를 할 수 있다는 사실을 알고 계셨습니까?

우리는 쿠키를 추적 및 성가신 온라인 광고와 연결하지만 검색어를 저장하여 사용자 이름과 비밀번호를 입력하지 않고 웹사이트를 방문할 수 있도록 합니다.

그러나 누군가가 쿠키를 가로채면 세션 하이재킹이라고 하는 치명적인 사이버 공격이 발생할 수 있습니다. 이로 인해 민감한 데이터가 공격자의 손에 넘어가 위험에 처할 수 있으며 어떤 일이 발생했는지 알기도 전에 많은 피해를 입힐 수 있습니다.

그것이 무엇이며 어떻게 예방할 수 있는지 알아 봅시다!

세션 하이재킹이란 무엇입니까?

세션 하이재킹에서 공격자는 웹 서버, 텔넷 세션 또는 기타 TCP 기반 연결과 같이 사용자와 호스트 사이에 설정된 세션을 가로채서 장악합니다. 소셜 네트워킹 웹사이트와 같은 웹사이트나 애플리케이션에 로그인하면 세션이 시작됩니다.

계정 내에서 프로필을 확인하거나 스레드에 참여하는 동안 계속되고 시스템에서 로그아웃하면 종료됩니다. 그러나 웹 서버는 귀하가 요청하는 모든 요청이 실제로 귀하로부터 온 것인지 어떻게 알 수 있습니까?

쿠키가 들어오는 곳입니다. 로그인한 후 자격 증명을 웹 서버에 제출합니다. 그것은 당신이 누구인지 확인하고 세션 기간 동안 당신에게 첨부될 쿠키를 사용하여 세션 ID를 제공합니다. 그렇기 때문에 다른 사람의 프로필을 방문할 때마다 애플리케이션에서 로그아웃하지 않고 페이지를 새로고침해도 온라인 상점에서 장바구니에 넣은 내용을 기억합니다.

그러나 공격자가 특수 세션 관리 기술을 사용하거나 쿠키를 훔치는 경우 세션을 하이재킹할 수 있습니다. 따라서 웹 서버를 속여 요청이 인증된 사용자로부터 온 것으로 믿게 할 수 있습니다.

세션 하이재킹 현상은 2000년대 초반에 유명해졌지만 여전히 해커들이 가장 많이 사용하는 방법 중 하나입니다.

최근의 예로는 올해 FBI의 지명 수배 목록에 포함된 Lapsus$ Group이 있습니다. InfoStealer Maleware 감염을 사용하여 세션을 하이재킹합니다.

  Google Keep - 이미지의 텍스트 읽기, 목록 설정, 메모용 휴지통

마찬가지로 GenesisStore는 손상된 쿠키 데이터를 판매하는 동일한 이름의 그룹이 운영하는 초대 전용 스토어이며 목록은 400,000개 이상의 봇을 초과합니다.

세션 캡처 유형

세션 하이재킹은 가해자의 요구에 따라 두 가지 주요 범주로 나눌 수 있습니다.

활성: 활성 공격에서 공격자는 세션을 인계하여 리소스에 대한 합법적인 클라이언트의 연결을 가져옵니다. 세션 사이트에 따라 해커는 온라인 구매, 암호 변경 또는 계정 복구를 수행할 수 있습니다. 활성 공격의 일반적인 예는 무차별 대입 공격, XSS 또는 DDoS입니다.

출처: OSWAP

수동적: 수동적 공격에서는 공격자가 세션을 인계하거나 변경하지 않습니다. 대신 장치와 서버 간의 데이터 트래픽을 조용히 모니터링하여 모든 민감한 정보를 수집합니다. 일반적으로 IP Spoofing 및 악성코드 주입은 수동적 주입 공격을 수행하는 데 사용됩니다.

출처: OSWAP

세션 하이재킹은 어떻게 작동합니까?

HTTP는 상태 비저장 프로토콜입니다. 즉, 서버에는 클라이언트 작업에 대한 메모리가 없습니다. 각각의 새로운 HTTP 요청은 새로운 작업 단위와 일치합니다. 간단히 말해서 서버는 클라이언트의 이전 요청을 기억하지 않고 클라이언트에 페이지를 제공합니다.

그러나 우리가 웹을 탐색할 때 우리는 응용 프로그램이 클라이언트가 누구인지 이상적으로 알고 있음을 깨닫습니다(심지어 너무 잘!). 이 서버의 “메모리” 덕분에 “웹 사이트, 온라인 은행, 웹 메일 서비스 등의 현대적인 예약 영역을 만들 수 있습니다.

이를 위해 HTTP와 같은 상태 비저장 프로토콜을 만드는 부속물인 쿠키가 탄생했습니다.

상태 저장 세션

로그인하면 상태 저장 세션을 사용하는 웹 응용 프로그램은 세션 쿠키를 삭제합니다. 즉, 이 쿠키를 사용하여 클라이언트를 추적합니다. 쿠키 내부에는 클라이언트 인식을 허용하는 고유 코드가 저장됩니다. 예를 들면 다음과 같습니다.

세션 ID=ACF3D35F216AAEFC

위에서 언급한 고유한 세션 ID 또는 코드를 가진 사람은 누구나 서버에 대해 인증된 클라이언트가 됩니다. 아래 그림과 같이 공격자가 이 식별자를 얻을 수 있는 경우 합법적인 세션을 스니핑하거나 세션을 완전히 장악하여 피해자에 대해 처음에 유효성이 검사된 세션을 악용할 수 있습니다. 이 식별자는 일반적으로 URL, 모든 양식의 숨겨진 필드 또는 쿠키에 포함됩니다.

OSWAP

상태 비저장 세션

웹의 발전과 함께 세션 쿠키를 사용하지 않고 서버의 “메모리”를 관리하는 솔루션이 등장했습니다. 프론트엔드와 백엔드가 잘 분리되고 API를 통해서만 통신하는 웹 애플리케이션에서 최상의 솔루션은 프론트엔드가 백엔드에서 제공하는 API를 사용할 수 있도록 하는 서명된 토큰인 JWT(JSON 웹 토큰)일 수 있습니다.

  무선 고속 충전은 어떻게 작동합니까?

일반적으로 JWT는 탭이 닫힐 때까지 클라이언트가 활성 상태로 유지하는 메모리 영역인 브라우저의 sessionStorage에 저장됩니다. 결과적으로 새 탭을 열면 새 세션이 생성됩니다(쿠키에서 발생하는 것과 반대).

클라이언트의 식별 토큰을 도용하면 사용자의 세션을 도용하여 세션 하이재킹 공격을 수행할 수 있습니다. 하지만 그 토큰을 훔치는 방법은 무엇입니까?

현재 해커들이 가장 많이 사용하는 방법은 다음과 같습니다.

#1. 세션 사이드 재킹

이 방법은 안전하지 않은 네트워크를 사용하여 세션 ID를 찾습니다. 공격자는 스니핑(특수 소프트웨어)을 사용하며 일반적으로 보안이 취약한 것으로 알려진 SSL 인증서가 없는 공용 Wi-Fi 또는 웹사이트를 대상으로 합니다.

#2. 세션 고정

피해자는 공격자가 생성한 세션 ID를 사용합니다. 세션 ID를 “고정”하는 피싱 공격(악성 링크를 통해)으로 이를 수행할 수 있습니다.

#삼. 브루트 포스

가장 시간이 많이 걸리고 비효율적인 방법입니다. 이 공격 중에 해커는 쿠키를 훔치지 않습니다. 대신 세션 ID를 추측하기 위해 가능한 모든 조합을 시도합니다.

#4. XSS 또는 교차 사이트 스크립팅

해커는 웹 사이트 또는 애플리케이션의 취약점을 악용하여 악성 코드를 주입합니다. 사용자가 사이트를 방문하면 스크립트가 활성화되어 사용자의 쿠키를 훔쳐 공격자에게 보냅니다.

#5. 악성코드 주입

악성 소프트웨어는 장치에서 무단 작업을 수행하여 개인 정보를 훔칠 수 있습니다. 또한 종종 쿠키를 가로채서 공격자에게 정보를 보내는 데 사용됩니다.

#6. IP 스푸핑

사이버 범죄자는 패킷의 소스 IP 주소를 변경하여 사용자에게서 온 것처럼 보이게 합니다. 가짜 IP 때문에 웹 서버는 당신이라고 생각하고 세션은 하이재킹됩니다.

세션 하이재킹을 방지하는 방법은 무엇입니까?

세션 하이재킹의 가능성은 일반적으로 사용하는 웹사이트 또는 애플리케이션의 보안으로 귀결됩니다. 그러나 자신을 보호하기 위해 취할 수 있는 조치가 있습니다.

  • 무료 핫스팟은 사이버 범죄자에게 이상적이므로 공용 Wi-Fi를 피하십시오. 일반적으로 보안이 취약하며 해커가 쉽게 스푸핑할 수 있습니다. 데이터 트래픽이 지속적으로 손상되는 잠재적인 피해자가 항상 가득하다는 것은 말할 것도 없습니다.
  • SSL 인증서를 사용하지 않는 사이트는 트래픽을 암호화할 수 없으므로 취약합니다. URL 옆에 있는 작은 자물쇠를 찾아 사이트가 안전한지 확인하세요.
  Linux를 위한 4가지 최고의 팟캐스트 앱

  • 개인 정보를 도용할 수 있는 맬웨어 및 쥐로부터 장치를 탐지하고 보호하려면 맬웨어 방지 응용 프로그램을 설치하십시오.
  • 공식 앱 스토어 또는 웹사이트를 사용하여 앱을 다운로드하여 맬웨어를 다운로드하지 마십시오.
  • 익숙하지 않은 링크를 클릭하라는 메시지가 표시되면 클릭하지 마십시오. 이는 장치를 감염시키고 개인 정보를 도용할 수 있는 피싱 공격일 수 있습니다.

사용자는 세션 하이재킹 공격에 대해 거의 할 수 없습니다. 그러나 반대로 응용 프로그램은 다른 장치가 동일한 세션 식별자로 연결되었음을 알 수 있습니다. 이를 바탕으로 다음과 같은 완화 전략을 설계할 수 있습니다.

  • 등록된 매개변수의 변경 사항을 감지하기 위해 연결된 장치의 일부 기술 지문 또는 특성을 각 세션에 연결합니다. 이 정보는 완전히 암호화된 상태로 쿠키(상태 저장 세션의 경우) 또는 JWT(상태 비저장 세션의 경우)에 저장되어야 합니다.
  • 세션이 쿠키 기반인 경우 HTTPOnly 속성이 있는 쿠키를 삭제하여 XSS 공격 시 도달할 수 없도록 합니다.
  • 침입 탐지 시스템(IDS), 침입 방지 시스템(IPS) 또는 네트워킹 모니터링 솔루션을 구성합니다.
  • 일부 서비스는 사용자의 신원에 대해 2차 확인을 수행합니다. 예를 들어 웹 서버는 각 요청에 대해 사용자의 IP 주소가 해당 세션 동안 사용된 마지막 주소와 일치하는지 확인할 수 있습니다. 그러나 이것은 동일한 IP 주소를 공유하는 누군가의 공격을 막지 못하며 브라우징 세션 중에 IP 주소가 변경될 수 있는 사용자에게 좌절감을 줄 수 있습니다.
  • 또는 일부 서비스는 요청이 있을 때마다 쿠키 값을 변경합니다. 이것은 공격자가 활동할 수 있는 창을 크게 줄이고 공격이 발생했지만 다른 기술적 문제를 일으킬 수 있는지 쉽게 식별할 수 있도록 합니다.
  • 각 사용자 세션에 대해 서로 다른 다단계 인증(MFA) 솔루션을 사용합니다.
  • 최신 패치 및 보안 업데이트로 모든 시스템을 최신 상태로 유지하십시오.

자주하는 질문

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

세션 하이재킹은 사용자인 척하는 반면 스푸핑은 사용자를 교체하는 것입니다. 지난 몇 년 동안 일부 보안 분석가는 후자를 일종의 세션 하이재킹으로 특성화하기 시작했습니다.

마지막 말

최근 몇 년 동안 세션 하이재킹 공격의 빈도가 증가했습니다. 따라서 이러한 공격을 이해하고 예방 조치를 따르는 것이 점점 더 중요해졌습니다. 그러나 기술이 발전함에 따라 공격도 더욱 정교해지고 있습니다. 따라서 세션 하이재킹에 대한 적극적인 완화 전략을 만드는 것이 필수적입니다.

다크 웹에서 귀하의 데이터가 얼마나 가치가 있는지 알고 싶을 수도 있습니다.