Zusammenfassung
Akamai Hunt hat eine neue Malware-Variante entdeckt, die sich hinter einem legitimen LLM-API-Endpunkt (Large Language Model) zu verstecken versucht.
Die Malware sendet eine Zeichenfolge, die anscheinend Base64-codiert ist, um eine Command-and-Control-Verbindung (C2) aufzubauen, anstatt ein gängiges Schema zu verwenden.
Die Ausnutzung dieser Schwachstelle kann dem Angreifer eine vollständige Kontrollübernahme und die Extraktion von Daten ermöglichen.
Dies ist ein weiteres Beispiel dafür, wie schnell Angreifer ihre Angriffsmethoden weiterentwickeln und wie wichtig es ist, dass Unternehmen sich auf solche modernen Bedrohungen vorbereiten.
Einführung
Die Bedrohungslandschaft entwickelt sich mit rasender Geschwindigkeit, und Angreifer passen sich schnell an die sich ändernden Bedingungen an. Große Sprachmodelle (LLMs) sind in Unternehmen zunehmend verbreitet sind. Ihr Kommunikationsmuster kann es Angreifern ermöglichen, schädlichen Traffic so zu tarnen, dass er harmlos wirkt.
Die Verteidiger beeilen sich, KI in Erkennungspipelines zu integrieren. Dabei verwenden sie LLMs, um Warnungen zu untersuchen und zusammenzufassen und Indikatoren zu korrelieren. Währenddessen experimentieren allerdings auch Malware-Entwickler mit KI. Wir konnten anhand von Malware wie LameHug und PromptLock bereits erste Beobachtungen machen, wie LLMs, die für die Textgenerierung entwickelt wurden, für böswillige Zwecke missbraucht werden können.
Wir haben auch ein Beispiel dafür gesehen, wie Angreifer die OpenAI-API für eine Command-and-Control-Infrastruktur (C2) in der SesameOp-Backdoor nutzen. Hier zeigt sich, welche ganz neuen Angriffsflächen in der KI-Welt entstehen.
Vor Kurzem entdeckte das Akamai Hunt-Team eine neue Malware, die einen neuen Ansatz für den LLM-Missbrauch verwendet. Dabei wird schädlicher Traffic in das Rauschen von LLM-API-Anfragen gemischt. In diesem Blogbeitrag schildert das Hunt-Team ein Beispiel für die aufkommende Bedrohung, die es im Rahmen der Bereitstellung von Services für Hunt-Kunden entdeckt hat.
Missbrauch des Endpunkts
Bei der Suche nach neuen LLM-Verwendungen Anwendungen für Malware stießen wir auf eine Datei, die unsere Aufmerksamkeit erregte. Sie war bereits auf VirusTotal als schädlich markiert worden und entsprach mehreren Yara-Regeln. Als wir mit der Untersuchung begannen, erwarteten wir ein weiteres Muster der Codeerstellung über LLM und der Ausführung im System des Opfers.
Die Malware versucht zunächst, über ein Socket eine Verbindung zur IP-Adresse 39.97.57[.]244 herzustellen. Wenn sie jedoch fehlschlägt, fällt sie auf ein interessantes HTTP C2 zurück: 1347790942-k1bok35vg3.ap-guangzhou.tencentscf[.]com/v1/chat/completions.
Nachdem wir die erste HTTP-Anfrage an die API beobachtet hatten, waren wir überrascht, dass sie nicht den erforderlichen Headern für diese Art von Anfrage folgte.
Der API-Endpunkt
Im Rahmen unserer Nachforschungen suchten wir auch nach Verwendungen von LLM-API-Endpunkten, insbesondere /v1/chat/completions.
Aus der Dokumentation von OpenAI erstellt dieser Endpunkt „eine Modellantwort für die gegebene Chat-Unterhaltung“ (Abbildung 1 und Abbildung 2).
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-5",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
{
"id": "chatcmpl-B9MBs8CjcvOU2jLn4n570S5qMJKcT",
"object": "chat.completion",
"created": 1741569952,
"model": "gpt-4.1-2025-04-14",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I assist you today?",
"refusal": null,
"annotations": []
},
...
Der /v1/chat/completions-Endpunkt wurde von OpenAI eingeführt und binnen kurzer Zeit von mehreren Anbietern und Gateways nachgeahmt, die OpenAI-kompatible APIs anbieten (zum Beispiel OpenRouter und Hugging Face).
Offizielle APIs anderer Anbieter verwenden jedoch möglicherweise unterschiedliche native Endpunkte oder unterscheiden sich, trotz eines ähnlichen Anfrageschemas, hinsichtlich Parametern, Authentifizierung und Streaming-Verhalten.
Anfrageschema
In der Regel müssen bei Verwendung dieser API die folgenden erforderlichen Parameter hinzugefügt werden:
Autorisierung: Ein Bearer-Token-Header in der Form „Authorization: Bearer YOUR_API_KEY“ ist erforderlich, um die Anfrage zu authentifizieren
Modell: Eine ID-Zeichenfolge, die ein chatfähiges Modell (zum Beispiel gpt-3.5-Turbo oder Lama-4-Maverick-17B-128E-Instruct-FP8) auswählt, an das der Endpunkt Ihre Anfrage weiterleitet
Nachrichten: Ein Array von Nachrichtenobjekten mit Rollenkennzeichnung (mit Rolle und Inhalt), das den Konversationsverlauf darstellt, die das Modell zum Generieren der nächsten Antwort verwendet
Wie oben erwähnt, haben wir bereits eine reale schädliche Nutzung dieses Endpunkts „in freier Wildbahn“ beobachtet: LameHug. Die Autoren der Malware nutzten denselben Endpunkt, um auf Hugging Face auf ein LLM-Modell zuzugreifen, spezifische Befehle anzufordern und auf dynamische Weise Code zu generieren, der beim Opfer ausgeführt wird (Abbildung 3).
Camouflage durch die Chat Completions
Als Erstes ist uns bei der Analyse dieser Binärdatei aufgefallen, dass sie keines der genannten Felder verwendet. Stattdessen sendet sie eine Zeichenfolge, die anscheinend Base64-codiert ist (Abbildung 4).
Theoretisch könnte hinter dieser API ein LLM stehen – der Angreifer könnte mit nutzerdefiniertem Code auf Serverseite eine Eingabeaufforderung erstellen. In diesem Fall wird der API-Endpunkt jedoch auch zur Tarnung verwendet.
Bei der Analyse der Daten unseres API-Sicherheitsprodukts konnten wir 151 eindeutige Endpunkte von unseren Kunden identifizieren. Jede Konversation von diesen Endpunkten wies einige Ähnlichkeiten mit dem Schema auf. Einige APIs verwenden zum Beispiel „query“ anstatt von „messages“, aber es gibt eine sehr klare Ähnlichkeit innerhalb der Sitzungen.
Dies zeigt uns, dass zwar jeder seinen eigenen /v1/chat/completions-Endpunkt entwickeln kann und es kein RFC (Request for Comments) bezüglich dieses Endpunkts gibt. Es gibt aber immer noch einen De-facto-Standard, den Entwickler verwenden.
Weitere Untersuchungen
Nach Entschlüsselung des Bodys und XOR-Verknüpfung mit 0xBB fanden wir die vermutlich erste zu Ausspähungszwecken im System des Opfers durchgeführte Anfrage.
Wir folgten dem Parsing-Prozess der Antwort und beobachteten, dass die Malware eine Antwort erwartet, die nicht mit dem ursprünglichen API-Schema übereinstimmt. Sie verarbeitet die empfangenen Daten, indem sie sie mit XOR und Base64 entschlüsselt, und folgt dann der in der Antwort bereitgestellten Anweisung (Abbildung 5).
Der C2-Server, 1347790942-k1bok35vg3.ap-guangzhou.tencentscf[.]com ist eine serverlose Cloud-Funktion (ähnlich AWS Lambda- oder Azure Functions) in Tencent Cloud, einem von Tencent betriebenen Cloud-Computing-Service. Durch die Verwendung von Cloud-Funktionen als C2-Server können Angreifer eine Autoskalierungs-Infrastruktur ausführen, die widerstandsfähig ist und sich nur schwer von gutartigem Traffic unterscheiden lässt.
Wir vermuten, dass die Angreifer diesen speziellen Endpunkt offengelegt haben, um für Verteidiger und Netzwerkadministratoren legitimer zu wirken. Schließlich ist die Nutzung dieses API-Endpunkts angesichts der Zunahme von KI-Agenten, Integrationen und Automatisierungstools immer verbreiteter.
Die Malware unterstützt mehrere Anweisungen, sodass sich diese Malware als Remote-Access-Trojaner (RAT) mit vollständiger Remote-Kontrolle über das System des Opfers kategorisieren lässt. Wir haben die Anweisungen analysiert, um sicherzustellen, dass alle mit demselben Endpunkt sprechen (siehe Anhang für unsere Analyse).
Abbildung 6 ist beispielsweise das Ergebnis der $HunterInfo-Anweisung. Sie sucht nach Konfigurationsdateien bestimmter Remote-Zugriffstools und extrahiert die Daten auf gleiche Weise zurück zu /v1/chat/completions, wie die erste Nachricht gesendet wird – mit XOR und Base64.
Die Malware enthält außerdem drei eingebettete Dateien, die per XOR mit 0x88 verknüpft und Base64-codiert sind.
Bei allen handelt es sich um .NET-Dateien mit dem Namen net_test.exe. Gemeinsam orchestrieren sie mithilfe von SOCKS5 oder HTTP im Netzwerk des Opfers ein kleines Proxy-Toolkit. Zwei der Dateien sind SOCKS5- und HTTP-Server, während die dritte ein Client ist, der Traffic empfangen und weiterleiten kann (Abbildung 7).
Zusätzliche Dateien
Wir haben ältere Varianten dieser Malware identifiziert (Hash ist im IOC-Abschnitt dieses Beitrags zu finden). Sie hatten ähnliche Anweisungen und wiesen die gleichen hartcodierten Pfade für verschiedene Remote-Zugriffstools auf ($HunterInfo), aber der C2-Server war anders.
Wir haben auch eine RAR-Datei auf VirusTotal gefunden, die einen Bezug zum C2-Server hat. Die RAR-Datei enthält eine .lnk-Datei (个人简历.lnk, übersetzt in „Résumé“ oder „CV“), die ftp -s““:_/_/_/_/_/_/_ ausführt. Die RAR-Datei enthält auch .doc-Dateien innerhalb der verschachtelten Verzeichnisse, deren Inhalt jedoch binärer Code ist (siehe Abbildung 8).
Die ‚_’-Datei erstellt die Dokumente in drei PE-Dateien und kopiert sie in C:\Users\Public\Update.
Schließlich ruft sie
!call start /min C:\Users\Public\Update\svchost.exe -InstallLsp auf
C:\Users\Public\Update\360.%TIME:~4,1% >nul (Abbildung 9).
Es gibt 10 verschiedene .doc-Dateien (0–9.doc), die abgesehen von einigen zufälligen Bytes ähnlich sind. %TIME:~4,1% berechnet die zweite Stelle der aktuellen Minute eines Formats %H:%M:%S.%f. Bei den .doc-Dateien fehlt der MZ-Header, wahrscheinlich um Signaturscans zu vermeiden. Basierend auf der aktuellen Zeit erstellt das Skript den Header zu der doc-Datei und kopiert ihn nach C:\Users\Public\Update\360.<minute>.
svchost.exe
Bei dieser Datei handelt es sich um „SangforPromote.exe“, eine von Sangfor Technologies verifizierte und signierte Datei. Wenn das Argument -InstallLsp und eine DLL angegeben werden, lädt die legitime Datei die DLL und setzt den Zeiger auf ihren Export. Dies geschieht mithilfe von LoadLibrary (Abbildung 10).
360 DLL
Die DLL mit dem Namen 360 weist Speicher mit Lese-, Schreib- und Ausführungsberechtigungen (RWX) zu, liest ‚sc‘ hinein und führt ihn dann aus.
sc
Bei der Analyse von sc löst der geladene Code Funktionen mithilfe von LoadLibrary und GetProcAddress auf. Er verfügt über zwei hartcodierte Ziele, an die er HTTP-Anfragen sendet, die mit den C2-Adressen der analysierten Malware übereinstimmen:
https://1347790942-k1bok35vg3.ap-guangzhou.tencentscf[.]com
39.97.57[.]244
Er entschlüsselt auch Daten mit Base64 und XOR wie bei den vorherigen Beispielen, wodurch eine Verbindung zwischen den Toolsets hergestellt wird. Wir glauben, dass durch diesen Ablauf die letzte RAT in das Dateisystem des Opfers heruntergeladen wird (Abbildung 11).
Schutz und Abwehr durch Akamai Hunt
Akamai Hunt-Kunden profitieren von einer Rund-um-die-Uhr-Überwachung für solche Artefakte, denn sie ermöglicht Schutz vor derartigen Angriffen (Abbildung 12).
Noch bevor überhaupt eine aktive Bedrohung erkannt wird, kann die adaptive Segmentierungsfunktion von Hunt (Adaptive Segmentation) Risiken für Unternehmen mindern und eindämmen. Durch die Analyse normaler Kommunikationsflüsse und Asset-Verhaltensweisen kann Adaptive Segmentation Richtlinien unterstützen, die unnötigen ausgehenden Zugriff auf KI-Endpunkte einschränken, Entwicklungs- und Produktionsumgebungen isolieren und potenzielle Pfade für laterale Netzwerkbewegungen minimieren.
Diese Funktion erweitert den Schutz von Hunt über die Erkennung hinaus, indem kontinuierliche Transparenz proaktiv in Resilienz gegenüber aufkommenden LLM-basierten Bedrohungen übersetzt wird.
Fazit
Mit der strategischen Entscheidung, Extraktion und C2 über den /v1/chat/completions-Endpunkt weiterzuleiten, machen Angreifer sich die Allgegenwärtigkeit und die schnelle Entwicklung von LLM-Services zunutze. Dieser Ansatz bietet einen hohen ROI, da er die vorhandene Cloud-Infrastruktur nutzt, um Kommunikationskanäle aufzubauen, die sich in den normalen Traffic des Unternehmens integrieren.
Die Gefahr resultiert aus der Art und Weise, wie diese Technik drei in modernen Umgebungen vorherrschende Trends zusammenführt. In ihrer Kombination eröffnen sie Angreifern stabile, getarnte C2-Pfaden, die bei oberflächlicher Untersuchung gutartig erscheinen:
Gängiger, oft nicht überprüfter ausgehendes HTTPS-Traffic an Cloud-APIs
Wachsende Toleranz gegenüber maschinengeneriertem Traffic (KI-Agenten, Apps, Integrationen)
Einfache Verfügbarkeit von Cloud-Hosting, das zuverlässige, langlebige Endpunkte zur Verfügung stellt, die Angreifer nutzen können
Tatsächlich lernen die Verteidiger in der täglichen Praxis, wie LLMs arbeiten und welche Bedrohungen sie mit sich bringen. Wenn der Traffic hinreichend legitim erscheint, ist die Wahrscheinlichkeit groß, dass er ohne angemessene Schutzmaßnahmen durchgelassen wird. Manchmal ist das offensichtlichste Versteck das beste.
Wenn sich schädliche Payloads in Traffic verstecken, der für legitime LLM-Services bestimmt ist, klinken sie sich in ein zunehmend verbreitetes Netzwerkmuster ein. Dadurch verringert sich die Wahrscheinlichkeit, dass ihre Kommunikationsaktivitäten gekennzeichnet oder untersucht werden. Wenn Unternehmen KI-Tools und -Automatisierung einführen, wird Traffic zu LLM-Endpunkten zur Normalität, und in diesem Rauschen suchen Angreifer ihre Chance.
IOCs
IOC |
Typ |
|---|---|
93cf0d545a872c393c053031570bc5eaebfa1aa6a0860fd0b08b679b8ce52fd2 - RAT |
Hash |
10c444262994c05930394388e6112ddd98b83118661868bccd83b1fa61160a62 - 1.rar |
Hash |
91c43e7ddd98af63d6b1b130e997b909100f3eaf71e30511858cca4348b509db - _ |
Hash |
9f119d05403b1e079893fb77f6b8b2a9682d1df7ced31a189e7490924ccfb170 - 个人简历.lnk |
Hash |
b7dcf661844e6f3e94eb140a79787be6dad77c09ab0b97cf41a62afd07219190 - Ältere Variante, Mai 2025 |
Hash |
2e395436e97eaad9a087825d22005b6afc55044abf458604a5118c2ac9bde42a - Ältere Variante, September 2025 |
Hash |
67ea3ea3c58a57dbbdac48d4ce3d546816f715eaf32bec33a64a63c91541e697 - net_test.exe (Client) |
Hash |
195c283703ee7df7c7ef17c85b0fdf88de22348bb0755daf5f0c3ed319c8d88a - net_test.exe (SOCKS5-Server) |
Hash |
e513d12abd03a4e07788dd85888d187cb6ca6e69a59f22f00853cae0a0b34712 - net_test.exe (HTTP-Server) |
Hash |
1347790942-k1bok35vg3.ap-guangzhou.tencentscf[.]com/v1/chat/completions |
URL |
39.97.57[.]244 |
IP |
C:\Users\Public\Update |
Verzeichnis |
Anhang
Anweisung |
Beschreibung |
|---|---|
$ActiveDos |
Gibt das aktuelle Verzeichnis zurück |
$AddUser |
Erstellt einen neuen lokalen Nutzer und fügt ihn der Administratorgruppe hinzu |
$ExecuteCommand |
Befehlsausführung |
$FileDelete |
Löscht eine Datei |
$FileDownLoad \ $BigFileDownLoad |
Lädt eine Datei vom Computer des Opfers herunter |
$FileExist |
Gibt die Information zurück, ob eine Datei vorhanden ist |
$FileUpload \ $BigFileUpload |
Schreibt eine Datei in das Dateisystem des Opfers |
$Get_LocalDisk |
Ruft die Laufwerke des Opfers ab |
$GetFile |
Ruft Dateidaten ab (Größe, Zeitstempel) |
$GetFolder |
Listet Ordner in einem bestimmten Verzeichnis auf |
$GetFolderAndFile |
Listet einen Ordner auf und ruft Dateien ab |
$GetProcess |
Listet Prozesse auf |
$GetThreadPermissionsInfo |
Ruft Thread-Informationen des Malware-Prozesses ab |
$HunterInfo |
Stiehlt Daten von 360 Secure Browser, SunLogin, ToDesk, NetSarang und Chrome |
$KillProcess |
Beendet einen Prozess mit der übergebenen PID |
$MessageBox |
Zeigt ein Meldungsfeld mit angegebener Zeichenfolge an |
$Netstat |
Führt netstat aus, um aktive Verbindungen anzuzeigen |
$OffLine |
Beendet Prozess |
$Online |
Sendet die ursprünglichen Daten des Opfers erneut (Abbildung 4) |
$PE64Loader |
Startet explorer.exe und injiziert einen Shellcode Loader in den Prozess |
$PEMemoryLoadOnSelf |
Lädt Code aus einem Puffer. Die Malware prüft auf mehrere empfangene Argumente wie zum Beispiel „JuicyPotato“ oder „PwDump“ und legt eine Umgebungsvariable mit diesem Namen fest, wodurch wir glauben, dass sie als „Modul“ oder Plugin verwendet werden kann. |
$Persistence |
Empfängt eine DLL vom C2:
Kann auch eine geplante Aufgabe erstellen. |
$ProgressSpawn |
Erstellt oder überprüft eine Payload unter C:\Users\Public und führt sie abhängig von den Argumenten über verschiedene Methoden aus, zum Beispiel ShellExecute, -InstallLsp oder speicherresidentes Laden |
$RegManage |
Scheint nicht implementiert zu sein |
$ScreenShot |
Erstellt einen Screenshot |
$ScreenSpy |
Ändert die TightVNC-Registrierungsschlüssel, um die Remotesteuerung zu aktivieren, wahrscheinlich unter der Annahme, dass das Opfer über TightVNC verfügt, oder für eine frühere/zukünftige Phase des Angriffs |
Tags