광고 자리 모집 중 · 제휴 문의

게임 분야의 브라우저 내 브라우저(BitB) 피싱 공격: 가짜 스팀 OpenID 팝업, 역방향 프록시 중계 및 세션 탈취 방어

365Finds Editorial
Wiki 문서 11,430편 수록

내 AI에서 365 Wiki 사용하기

아래 프롬프트를 복사해 평소 사용하는 AI에 붙여넣고 바로 질문하세요.

전체 Skill 다운로드

먼저 프롬프트로 체험해 보세요. 365 Wiki를 자주 쓴다면 전체 365Wiki Skill을 설치해 매번 붙여넣는 수고를 줄일 수 있습니다. 평소 쓰는 AI가 없다면 Gemini나 Microsoft Copilot 웹 버전도 사용할 수 있습니다.

서론: 게임 피싱 공격의 진화와 BitB 공격 벡터

지난 10여 년간 스팀(Steam), 에픽게임즈(Epic Games), 디스코드(Discord) 등 PC 게이머를 노린 피싱 공격은 대체로 직관적으로 식별 가능한 방식에 의존해 왔습니다. 철자를 교묘히 바꾼 가짜 도메인(예: staemcommunitly.com), 암호화되지 않은 HTTP 연결, 조잡하게 모방된 웹 UI 등이 대표적이었습니다. 이에 보안 의식이 높은 게이머들은 한 가지 확고한 기본 수칙을 체득했습니다. 계정 정보를 입력하기 전, 브라우저 주소창의 정식 도메인과 녹색 SSL 자물쇠 표시를 반드시 확인하라는 원칙입니다.

그러나 게이밍 커뮤니티를 표적으로 삼는 사이버 범죄자들의 기술은 한층 치명적으로 진화했습니다. 브라우저 내 브라우저(Browser-in-the-Browser, 이하 BitB) 피싱 기법의 등장은 전통적인 육안 주소창 확인 방식을 완전히 무력화시켰습니다. BitB 공격에서 피해자는 외부의 수상한 사이트로 리다이렉트되지 않습니다. 대신 악성 웹사이트 자체가 문서 객체 모델(DOM) 내부에 운영체제(OS) 창을 픽셀 단위로 정밀하게 모사한 가짜 브라우저 창을 렌더링합니다.

이 모사 창은 https://steamcommunity.com이 선명하게 적힌 가짜 주소창, 완벽한 SSL 자물쇠 그래픽, OS 네이티브 창 제어 버튼(최소화, 최대화, 닫기)을 그대로 갖추고 있습니다. 여기에 실시간 중간 브라우저(Browser-in-the-Middle, 이하 BitM) 역방향 프록시(Reverse Proxy) 시스템이 결합되면서, 사용자가 입력한 아이디와 비밀번호, 스팀 가드 모바일 일회용 인증 코드(2FA)까지 실시간으로 가로채 단 몇 초 만에 계정 인증 세션을 탈취하고 보관함을 비워버립니다.

BitB 공격의 기술적 해부: DOM 윈도우 시뮬레이션과 역방향 프록시 중계

BitB 공격은 클라이언트 단의 정밀한 DOM 위장 기술과 서버 단의 실시간 역방향 프록시 릴레이가 결합되어 작동합니다.

[피해자의 브라우저 화면: 피싱 웹사이트 "cs2-tournament-bracket.com"]
  │
  ├─► [BitB 가짜 윈도우 컨테이너 (DOM [div] 노드)]
  │     ├── 위조된 창 타이틀바 및 OS 제어 버튼 (최소화 / 최대화 / 닫기)
  │     └── 위조된 정적 주소창: 표시 내용 "https://steamcommunity.com/openid/login"
  │
  └─► [내장 Iframe / 로그인 입력 폼 / WebSocket 실시간 중계]
        │
        ▼ (입력된 계정 ID, 비밀번호, 스팀 가드 2FA 코드를 실시간 탈취)
[공격자의 역방향 프록시 서버 (예: Evilginx 또는 Muraena)]
        │
        ▼ (탈취한 유효 인증 정보를 밸브 공식 서버로 즉시 전달)
[스팀 공식 인증 엔드포인트 (valve / steamcommunity.com)]
        │
        ▼ (밸브가 정식 인증 세션 쿠키 발급: steamLoginSecure, sessionid)
[공격자가 세션 쿠키 가로챔 -> 인벤토리 자동 탈취 및 API Key 장악]

클라이언트 위장: DOM 기반의 브라우저 창 완벽 복제

정상적인 스팀 OpenID 제3자 연동 과정에서는 웹사이트가 자바스크립트의 window.open() 함수를 호출하여 OS가 직접 관리하는 완전히 독립된 브라우저 자식 창을 생성합니다. 이 창의 주소창은 OS가 렌더링하므로 위조가 불가능합니다.

반면 BitB 공격에서는 OS 레벨의 새 창 프로세스가 전혀 생성되지 않습니다.

  1. 모달 컨테이너 생성: 피싱 웹페이지는 CSS 절대 위치 지정(position: fixed 등)을 사용하여 최상단 레이어에 div 요소를 띄우고, 데스크톱 창의 외형을 완벽히 모방한 테두리와 그림자 효과를 입힙니다.
  2. 브라우저 프레임 복제: 공격자는 벡터 SVG 아이콘과 CSS 스타일링을 통해 뒤로 가기, 새로고침, 보안 자물쇠, 그리고 https://steamcommunity.com이 적힌 주소창을 그립니다. 이 주소창은 실제 브라우저 기능을 수행하지 않는 단순한 HTML 텍스트 블록에 불과합니다.
  3. 환경 동적 적응: 최신 BitB 템플릿은 navigator.userAgent를 분석하여 피해자의 OS(Windows 10/11, macOS, Linux)와 브라우저 엔진을 판별합니다. 이에 맞춰 시스템 기본 글꼴과 창 버튼 모양을 동적으로 일치시키므로 시각적 위화감을 찾아내기 어렵습니다.

서버 단 가로채기: 역방향 프록시와 2FA 실시간 무력화

피해자가 가짜 창에 속아 스팀 아이디, 비밀번호, 스팀 가드 모바일 인증 코드를 입력하면 다음과 같은 공격이 수행됩니다.

전통적 육안 검증이 무력화되는 이유 및 기술적 탐지 기법

모사된 주소창은 화면상으로 정품 브라우저 창과 구별할 수 없으므로, 사용자는 구조적 검증과 브라우저의 동작 원리를 이용해 판별해야 합니다.

1. 뷰포트 경계 창 드래그 테스트 (가장 확실한 물리적 검증)

가장 간단하면서도 확실한 판별법은 로그인 팝업 창을 브라우저 화면 밖으로 드래그해 보는 것입니다.

2. 비밀번호 관리자 자동 완성 검증

Bitwarden, 1Password 또는 브라우저 내장 비밀번호 관리자는 화면에 표시된 텍스트가 아닌, 브라우저 엔진이 인식하는 실제 출처(window.location.origin)를 기준으로 동작합니다.

3. 개발자 도구 (DOM 계층 구조 검사)

키보드의 F12를 누르거나 모사된 주소창에서 마우스 우클릭 후 **검사(Inspect)**를 선택합니다.

비교 매트릭스: 정식 OpenID 팝업과 BitB 피싱 프레임 구조 차이

아키텍처 특성공식 스팀 OpenID 인증 팝업BitB 피싱 모사 창 컨테이너
창 생성 방식OS 레벨의 독립 자식 프로세스(window.open)부모 웹페이지 내부의 DOM 요소(div / iframe)
화면 이동 범위브라우저 창을 벗어나 듀얼 모니터 간 자유 이동부모 웹페이지의 표시 영역(뷰포트) 내부에 갇힘
주소창 보안OS 제어 보안 주소창, 공식 SSL 인증서 확인 가능CSS로 꾸며진 정적 텍스트 및 가짜 SVG 자물쇠
비밀번호 관리자공식 도메인을 인식하여 자동 완성 제공피싱 사이트 도메인으로 인식하여 자동 완성 차단
세션 유지 상태브라우저에 로그인된 경우 1클릭으로 즉시 연동항상 아이디, 비밀번호, 스팀 가드 재입력 요구
우클릭 검사 반응브라우저/OS 시스템 메뉴 표시, 소스 검사 불가웹 요소 검사기가 열리며 HTML 노드가 직접 지정됨

계정 유출 후 긴급 대응 및 세션 차단 프로토콜

BitB 피싱 창에 스팀 계정 정보나 스팀 가드 번호를 입력한 것으로 의심된다면, 즉각 다음 순서에 따라 비상 조치를 취해야 합니다.

  1. 모든 기기의 세션 즉시 만료:
    • 모바일 스팀 앱 또는 안전한 PC 클라이언트에서 스팀 가드 설정으로 이동합니다.
    • 다른 모든 기기 인증 해제를 실행합니다. 이를 통해 현재 발급된 모든 steamLoginSecure 쿠키가 서버에서 강제 만료되며, 해커의 프록시 연결이 즉시 차단됩니다.
  2. 스팀 Web API 키 감사 및 취소:
    • 공식 브라우저에서 https://steamcommunity.com/dev/apikey로 직접 이동합니다.
    • 본인이 개발 목적으로 직접 생성하지 않은 API 키가 등록되어 있다면, 즉시 나의 Steam Web API 키 취소를 누릅니다. 해커는 이 키를 이용해 거래 제안을 탈취합니다.
  3. 비밀번호 변경 및 보안 갱신:
    • 스팀 계정 비밀번호와 등록된 이메일 계정의 비밀번호를 안전한 다른 단말기에서 변경합니다.
  4. 거래 URL 재생성:
    • 스팀 거래 제안 설정 페이지에서 새로운 거래 URL을 생성하여 공격자의 스크래핑 봇을 무력화합니다.

현대 게이밍 환경의 위협에 대응하기 위해서는 웹 표준 인증 구조와 네트워크 동작 방식을 심층적으로 이해해야 합니다. 365Finds의 전문 보안 분석을 참고하면 게이머와 e스포츠 대회 주최자는 DOM 삽입 및 역방향 프록시와 같은 정교한 공격을 사전에 파악하여 자산과 계정을 보호할 수 있습니다. 브라우저 뷰포트 내부의 시각 정보를 맹신하지 않고 비밀번호 관리자의 도메인 바인딩 검증을 활용하는 것이 가장 안전한 방어 수단입니다.

참고 자료