SOC Prime Bias: High

17 Sep 2026 08:20 UTC

악성 Twitch 확장 기능, 30,000명의 사용자로부터 OAuth 토큰을 탈취하다

Author Photo
SOC Prime Team linkedin icon 팔로우
악성 Twitch 확장 기능, 30,000명의 사용자로부터 OAuth 토큰을 탈취하다
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

악성 브라우저 확장 프로그램인 Twitch Enhanced Viewer | JeetBot 은 Chrome과 Firefox 사용자를 대상으로 Twitch OAuth 세션 토큰을 탈취합니다. 이 확장 프로그램은 네트워크 요청을 공격자가 제어하는 프록시 서버를 통해 라우팅하고 피해자의 인증 토큰을 명문 쿼리 매개 변수로 추가합니다. 이는 조작자가 Twitch 계정을 탈취하고 채팅, 귓속말, 계정 설정에 잠재적으로 접근할 수 있도록 합니다.

조사

Socket 연구원들은 주요 브라우저 마켓플레이스에서 이 확장 프로그램을 식별하고 JavaScript 소스 코드를 조사했습니다. 분석 결과, 콘텐츠 스크립트가 인증 헤더를 캡처하며, 백그라운드 워커는 이를 공격자가 제어하는 프록시 인프라로 전달합니다. 연구원들은 또한 러시아 스트리머 채널의 하드코딩된 허용 리스트가 토큰 유출에서 제외된 것을 발견했으며, 이는 특정 타겟팅 패턴이나 운영 선호를 시사합니다.

완화

사용자는 즉시 Twitch Enhanced Viewer | JeetBot 확장 프로그램을 제거하고 모든 활성 Twitch 세션을 종료하여 잠재적으로 도난당한 토큰을 무효화해야 합니다. 보안 팀은 식별된 악성 인프라를 차단하고 승인되지 않은 브라우저 확장 프로그램을 모니터링해야 합니다. 개발자는 또한 인증된 트래픽을 제3자 프록시를 통해 라우팅하기 전에 자격 증명을 제거하는 것을 피해야 합니다.

응답

악성 확장 프로그램이 감지되면 관리자들은 확장 프로그램 ID를 포함하는 모든 엔드포인트를 식별하고 영향을 받은 사용자 세션을 격리해야 합니다. 손상된 Twitch 계정과 연관된 OAuth 토큰은 즉각적으로 철회되어야 합니다. 조직은 또한 승인되지 않은 고위험 제3자 애드온 설치를 방지하기 위해 엄격한 브라우저 확장 프로그램 정책을 시행해야 합니다.

공격 흐름

우리는 이 부분을 계속 업데이트 중입니다.

탐지

의심스러운 명령 및 비정상적인 최상위 도메인(TLD) DNS 요청에 의한 제어 (dns를 통해)

SOC Prime 팀
2026년 9월 16일

제3자 서비스/도구를 통한 데이터 침투/유출/명령 및 제어 가능성 (프록시를 통해)

SOC Prime 팀
2026년 9월 16일

제3자 서비스/도구를 통한 데이터 침투/유출/명령 및 제어 가능성 (dns를 통해)

SOC Prime 팀
2026년 9월 16일

IOC (HashSha256) 탐지 대상: 악성 Twitch 브라우저 확장 프로그램이 30,000명의 사용자의 OAuth 토큰을 러시아 봇 서비스에 노출

SOC Prime AI 규칙
2026년 9월 16일

IOC (SourceIP) 탐지 대상: 악성 Twitch 브라우저 확장 프로그램이 30,000명의 사용자의 OAuth 토큰을 러시아 봇 서비스에 노출

SOC Prime AI 규칙
2026년 9월 16일

IOC (DestinationIP) 탐지 대상: 악성 Twitch 브라우저 확장 프로그램이 30,000명의 사용자의 OAuth 토큰을 러시아 봇 서비스에 노출

SOC Prime AI 규칙
2026년 9월 16일

악성 Twitch 브라우저 확장 프로그램이 OAuth 토큰을 노출 [웹서버]

SOC Prime AI 규칙
2026년 9월 16일

시뮬레이션 실행

  • 공격 내러티브 및 명령: 공격자는 피해자의 컴퓨터에 악성 브라우저 확장 프로그램을 성공적으로 설치했습니다. 이 확장 프로그램의 주요 목표는 Twitch 세션을 탈취하여 프리미엄 기능이나 사용자 데이터에 접근하는 것입니다. 이를 위해 확장 프로그램은 브라우저의 로컬 저장소에서 사용자의 OAuth 토큰을 긁어옵니다. 이 토큰을 유출하거나 프록시를 통해 검증하기 위해 확장 프로그램은 GET 요청을 usher.ttvnw.net으로 구성하고 &auth= 매개 변수를 사용하여 도난당한 토큰을 추가합니다. 이 시뮬레이션은 필요한 EventID (5678) 및 악성 URL과 함께 모의 이벤트 로그를 트리거하여 탐지 규칙의 조건 (selection_url 및 selection_browser_events)이 충족되도록 합니다.

  • 회귀 테스트 스크립트:

    import requests
    import json
    import datetime
    
    # 시뮬레이션 매개 변수
    target_url = "https://usher.ttvnw.net/api/get_playlist?user_id=12345&auth=STOLEN_OAUTH_TOKEN_XYZ_789"
    mock_event_id = 5678
    
    print(f"[*] 시뮬레이션 시작: 악성 Twitch 확장 프로그램 유출")
    print(f"[*] 목표 URL: {target_url}")
    print(f"[*] 모의 이벤트 ID: {mock_event_id}")
    
    # 실제 시나리오에서, 프록시 로그는 네트워크 트래픽에 의해 생성됩니다.
    # 이 테스트를 위해 시뮬레이션 로그 항목이 SIEM에 나타나도록:
    simulation_log = {
        "timestamp": datetime.datetime.utcnow().isoformat(),
        "url": target_url,
        "EventID": mock_event_id,
        "category": "proxy",
        "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
        "action": "allowed"
    }
    
    print(f"[+] SIEM 수집을 위한 시뮬레이션된 로그 항목 생성 중...")
    print(json.dumps(simulation_log, indent=4))
    
    # 네트워크 수준의 원격 측정이 생성되도록 실제 요청 수행
    try:
        response = requests.get(target_url)
        print(f"[+] 요청 전송 완료. 상태 코드: {response.status_code}")
    except Exception as e:
        print(f"[-] 요청 실패 (URL이 유효하지 않으면 예상됨): {e}")
    
    print("[*] 시뮬레이션 완료.")
  • 정리 명령어:

    # 이 시뮬레이션 동안 시스템에 영구적인 변경 사항이 없습니다.
    # 브라우저 기록을 수동으로 수정했다면 브라우저 캐시/역사를 지우세요.
    echo "[*] 정리 완료. 호스트에 남아 있는 유물 없음."