JADEPUFFER verwendet Agentic Ransomware für automatisierte Datenbankerpressung
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
JADEPUFFER stellt das erste öffentlich dokumentierte Beispiel für agentische Ransomware dar, eine Erpressungskampagne, die von einem Large Language Model von Anfang bis Ende betrieben wird. Der Akteur nutzt Schwachstellen in öffentlich zugänglichen Langflow-Instanzen aus, um anfänglichen Zugriff zu erhalten und führt dann unabhängig Aufklärungsarbeiten, laterale Bewegungen und Datenbankzerstörungen durch. Die Operation zeichnet sich durch ihre selbstnarrativen Nutzlasten und die Fähigkeit aus, Entscheidungen in Echtzeit anzupassen.
Untersuchung
Das Sysdig Threat Research Team beobachtete, wie JADEPUFFER die Schwachstelle CVE-2025-3248 ausnutzt, um beliebigen Python-Code auf einem Langflow-Host auszuführen. Ihre Untersuchung verfolgte den Agenten, als er von der Sammlung von Cloud-Zugangsdaten und der Aufzählung von MinIO-Buckets bis hin zur Kompromittierung eines Produktions-MySQL- und Nacos-Servers überging. Die Forschung zeigte ebenfalls, wie der Agent betriebliche Ausfälle diagnostizierte, einschließlich Probleme bei der bcrypt-Implementierung und Fremdschlüsselbeschränkungen, innerhalb von Sekunden.
Abschwächung
Wichtige Verteidigungsschritte umfassen das Patchen von Langflow zur Behebung von CVE-2025-3248 und die Härtung von Nacos durch den Austausch der standardmäßigen JWT-Signierschlüssel. Organisationen sollten vermeiden, Schnittstellen zur Codeausführung oder administrative Datenbankzugänge direkt dem Internet auszusetzen. Strikte Egress-Kontrollen und eine sorgfältige Abgrenzung der Cloud-Zugangsdaten von webbasierten Prozessen werden ebenfalls streng empfohlen.
Reaktion
Wenn Aktivitäten von JADEPUFFER erkannt werden, sollten die Betroffenen Langflow- und Nacos-Systeme sofort isoliert werden. Datenbankkonfigurationen sollten validiert, und Hosts auf unautorisierte Crontab-Einträge oder neu erstellte administrative Benutzer überprüft werden. Teams sollten auch den Netzwerkverkehr überwachen, um Verbindungen zu der identifizierten Kontroll- und Exfiltrationsinfrastruktur zu erkennen, und Cloud-Umgebungen auf kompromittierte Provider-API-Schlüssel überprüfen.
Angriffsablauf
Erkennungen
Mögliche Verwendung von Crontab für direkte Ausführung (via cmdline)
Ansehen
Verdächtige Datei oder Verzeichnis im Linux /tmp-Ordner (via file_event)
Ansehen
JADEPUFFER Ransomware-Datenbank-Erpressungserkennung [Windows-Prozesserstellung]
Ansehen
Langflow Nicht authentifizierte RCE- und Cron-Persistenzerkennung [Linux-Prozesserstellung]
Ansehen
Simulation Ausführung
Voraussetzung: Der Telemetrie- & Baseline-Preflight-Check muss bestanden sein.
Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der Gegnertechnik (TTP), die darauf ausgelegt ist, die Erkennungsregel auszulösen. Die Befehle und Erzählung MÜSSEN die identifizierten TTPs direkt widerspiegeln und darauf abzielen, genau die Telemetrie zu erzeugen, die von der Erkennungslogik erwartet wird. Abstrakte oder nicht verwandte Beispiele führen zu einer Fehldiagnose.
-
Angriffserzählung & Befehle: Der Angreifer hat anfänglichen Zugriff auf einen Windows-basierten Anwendungsserver erlangt. Sie beabsichtigen, automatisierte Datenbankerpressungen (JADEPUFFER) durchzuführen. Zuerst nutzen sie ein Python-Skript mit fest codierten Root-Zugangsdaten, um eine Verbindung zur
NacosDatenbank herzustellen, um Konfigurationsdaten zu exfiltrieren. Zweitens führen sie eine Reihe von SQL-Befehlen aus, um sensible Tabellenspalten mit derAES_ENCRYPT-Funktion zu verschlüsseln. Dies imitiert die „agentische“ Natur der Ransomware, die die Sichtbarkeit von Daten automatisiert zerstört, um Zahlungen zu fordern. -
Regressionstest-Skript:
import pymysql # Simulation des unautorisierten Zugriffs von JADEPUFFER (T1548/T1136.002 Kontext) # Ziel: Nacos-Konfigurationsdatenbank try: connection = pymysql.connect( host="localhost", port=3306, user="root", password="password123", # Simuliertes gestohlenes Kennwort database="nacos" ) print("[+] Erfolgreich mit Nacos als root verbunden.") with connection.cursor() as cursor: # Simulation der JADEPUFFER-Verschlüsselung (T1053.003 Kontext) # Diese spezifische Syntax ist darauf ausgelegt, die Erkennungsregel auszulösen print("[*] Ausführen von AES_ENCRYPT zur Simulation der Erpressung...") sql_extort = "UPDATE configs SET content = AES_ENCRYPT('sensitive_data', 'secret_key') WHERE id = 1;" cursor.execute(sql_extort) connection.commit() print("[+] Erpressungs-Telemetrie generiert.") connection.close() except Exception as e: print(f"[-] Simulation fehlgeschlagen: {e}") -
Aufräumbefehle:
-- Stellen Sie die 'content'-Spalte für die Testumgebung wieder in einen nicht-verschlüsselten Zustand zurück UPDATE configs SET content = 'original_unencrypted_data' WHERE id = 1; -- Sicherstellen, dass die simulierte Root-Verbindung terminiert ist