Von aufkommender Bedrohung zur führenden Ransomware-as-a-Service: Die Evolution von INC Ransomware
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
INC-Ransomware hat sich zu einem bedeutenden Ransomware-as-a-Service-Betrieb entwickelt und beansprucht seit 2023 mehr als 800 Opfer. Die Gruppe verwendet Rust-basierte Verschlüsseler für sowohl Windows als auch Linux/ESXi Systeme, was die Malware-Analyse erschwert. Ihre Betreiber setzen auf Doppelerpressungstaktiken und konzentrieren sich auf wertvolle Sektoren wie Gesundheits- und Rechtsdienstleistungen.
Untersuchung
Die Acronis Threat Research Unit analysierte die INC-Einbruchskette und beobachtete einen Trend hin zur Ausnutzung ungepatchter Randgeräte und Angriffe auf Veeam-Backup-Server. Die technische Analyse zeigte, dass die Windows-Nutzlast mit VMProtect 3.X geschützt ist, während die Linux-Version VMware-Umgebungen über Befehle wie vim-cmdzielt. Die Untersuchung fand auch Codeähnlichkeiten mit verwandten Ransomware-Familien, einschließlich Lynx und Sinobi.
Minderung
Organisationen sollten die 3-2-1-Backup-Strategie anwenden und sicherstellen, dass Backups unveränderliche oder offline Kopien enthalten, um die Wiederherstellung zu unterstützen. Der Einsatz von EDR oder XDR mit Manipulationsschutz und die Durchsetzung von Multi-Faktor-Authentifizierung sind essenziell. Die Priorisierung des Patchens von Anwendungen mit Internetzugang und die Segmentierung kritischer Netzwerke kann ebenfalls die Auswirkungen eines Kompromisses reduzieren.
Reaktion
Wird Aktivitäten der INC-Ransomware erkannt, sollten die betroffenen Systeme sofort isoliert werden, um seitliche Bewegungen zu stoppen und die Verschlüsselung zu verhindern. Die Integrität der Backups sollte überprüft werden, bevor die Wiederherstellung beginnt, und die Vorfallreaktionsverfahren sollten sich darauf konzentrieren, den anfänglichen Zugangsvektor zu identifizieren. Teams sollten auch Überwachungen auf Datenexfiltrationsversuche mit Tools wie rclone.
"graph TB %% Class Definitions Section classDef initial_access fill:#99ccff classDef discovery fill:#ccffcc classDef credential_access fill:#ffff99 classDef lateral_movement fill:#ffcc99 classDef defense_impairment fill:#ff9999 classDef command_control fill:#cc99ff classDef collection fill:#99ffff classDef exfiltration fill:#ff99cc classDef impact fill:#ff6666 %% Initial Access Nodes node_phishing["<b>Aktion</b> – <b>T1566 Phishing</b><br/>Beschreibung: Spearphishing für den ersten Zugriff genutzt.<br/><b>Ziel</b>: Nutzer via E-Mail."] class node_phishing initial_access node_valid_accounts["<b>Aktion</b> – <b>T1078 Gültige Konten</b><br/>Beschreibung: Nutzung von Konten, die von Initial Access Brokers erhalten wurden.<br/><b>Ziel</b>: Legitime Anmeldeinformationen."] class node_valid_accounts initial_access node_exploit_app["<b>Aktion</b> – <b>T1190 Öffentliche Anwendung ausnutzen</b><br/>Beschreibung: Ausnutzen von Schwachstellen in Citrix und Fortinet.<br/><b>Ziel</b>: Öffentlich zugängliche Dienste."] class node_exploit_app initial_access %% Discovery Nodes node_discovery["<b>Aktion</b> – <b>T1087/T1046 Erkundung</b><br/>Beschreibung: Netzwerk- und Systemerkundung.<br/><b>Werkzeuge</b>: ping, net, Advanced IP Scanner, netscan."] class node_discovery discovery %% Credential Access Nodes node_credential_dump["<b>Aktion</b> – <b>T1003 OS-Anmeldedatenabzug</b><br/>Beschreibung: Zielen auf Veeam-Backup-Bereitstellungen.<br/><b>Werkzeug</b>: Modifiziertes Veeam-Anmeldedaten-Dumper-PowerShell-Skript.<br/><b>Methode</b>: Gesalzte DPAPI-Entschlüsselung."] class node_credential_dump credential_access %% Lateral Movement Nodes node_lateral_movement["<b>Aktion</b> – <b>T1021/T1570 Seitliche Bewegung</b><br/>Beschreibung: Netzwerkbewegungen.<br/><b>Werkzeuge</b>: RDP, PsExec."] class node_lateral_movement lateral_movement %% Defense Impairment Nodes node_defense_impairment["<b>Aktion</b> – <b>T1562 Verteidigung Beeinträchtigen</b><br/>Beschreibung: Deaktivieren oder Modifizieren von Sicherheitstools.<br/><b>Werkzeug</b>: PsKill oder benutzerdefinierte Prozessbeender.<br/><b>Ziel</b>: EDR und Sicherheitsprozesse."] class node_defense_impairment defense_impairment %% Command and Control Nodes node_c2["<b>Aktion</b> – <b>T1219/T1071 Kommandierung und Kontrolle</b><br/>Beschreibung: Kommunikation aufrechterhalten.<br/><b>Werkzeuge</b>: Cobalt Strike, AnyDesk, TeamViewer.<br/><b>Hinweis</b>: Vermischt sich mit legitimen IT-Verkehr."] class node_c2 command_control %% Collection and Exfiltration Nodes node_collection["<b>Aktion</b> – <b>T1560 Gesammelte Daten archivieren</b><br/>Beschreibung: Datenstaging und -komprimierung.<br/><b>Werkzeug</b>: 7-Zip.<br/><b>Methode</b>: Passwortgeschützte Archive."] class node_collection collection node_exfiltration["<b>Aktion</b> – <b>T1567 Exfiltration Über Webdienst</b><br/>Beschreibung: Hochladen gestohlener Daten in den Cloudspeicher.<br/><b>Werkzeug</b>: rclone."] class node_exfiltration exfiltration %% Impact Nodes node_impact["<b>Aktion</b> – <b>T1486 Daten zur Auswirkung verschlüsselt</b><br/>Beschreibung: Verschlüsseln von Dateien mit .INC-Erweiterung.<br/><b>Malware</b>: Rust-basierte Windows- und Linux/ESXi-Verschlüsseler.<br/><b>Verschlüsselung</b>: AES/Curve25519."] class node_impact impact %% Connection Flow node_phishing –>|führt zu| node_discovery node_valid_accounts –>|führt zu| node_discovery node_exploit_app –>|führt zu| node_discovery node_discovery –>|löst aus| node_credential_dump node_credential_dump –>|ermöglicht| node_lateral_movement node_lateral_movement –>|führt zu| node_defense_impairment node_defense_impairment –>|erlaubt| node_c2 node_c2 –>|erleichtert| node_collection node_collection –>|bereitet vor| node_exfiltration node_exfiltration –>|geht voraus| node_impact "
Angriffsablauf
Erkennungen
Wahrscheinlicher Einsatz von Windows Hacktools [Teil 1] (via cmdline)
Ansehen
Mögliche Nutzung von Sysinternals-Tools (via cmdline)
Ansehen
Verdächtige PowerShell-Zeichenfolgen (via PowerShell)
Ansehen
Erkennung der versteckten und kodierten PowerShell-Ausführung [Windows PowerShell]
Ansehen
Verdächtige Nutzung von VMware-Infrastruktur-Befehlen [Linux-Prozesssteuerung]
Ansehen
Erkennung von Prozessbeendigung und Remote-Thread-Erstellung [Windows Sysmon]
Ansehen
Erkennung von Base64-kodierten PowerShell-Skripten zum Veeam-Anmeldedatenabzug [Windows-Prozesssteuerung]
Ansehen
Simulation Ausführung
Voraussetzung: Der Telemetrie- & Basislinien-Pre-Flight-Check muss bestanden sein.
Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der gegnerischen Technik (TTP), die darauf abzielt, die Erkennungsregel auszulösen. Die Befehle und das Narrativ MÜSSEN direkt die identifizierten TTPs widerspiegeln und darauf abzielen, die von der Erkennungslogik erwartete Telemetrie zu generieren. Abstrakte oder nicht verwandte Beispiele führen zu Fehldiagnosen.
-
Angriffserzählung & Befehle: Der Angreifer beabsichtigt, Anmeldedaten aus dem Sicherheitssubsystem-Dienst der Lokalen Sicherheitsbehörde (
lsass.exe) abzugreifen. Um von der Endpunktsicherheit nicht erkannt zu werden, versuchen sie zuerst, einen sicherheitsrelevanten Prozess mittaskkill.exezu beenden, um die Überwachung zu stören. Anschließend versuchen sie, eine Remote-Thread-Injektionstechnik zu verwenden, um Code imlsass.exeSpeicherraum auszuführen. Dieser direkte Ansatz soll die spezifische Logik der Regel bezüglichtaskkill.exeandlsass.exeThread-Erstellung auslösen. -
Regressionstest-Skript:
# Simulationsskript zur Erkennungsvalidierung # Schritt 1: Process Termination (Ereignis-ID 4689) auslösen Write-Host "[*] Prozessbeendigung über taskkill auslösen..." Start-Process calc.exe Start-Sleep -Seconds 1 taskkill /F /IM calc.exe # Schritt 2: Auslösung der Remote-Thread-Erstellung (Sysmon Ereignis-ID 8) # Hinweis: Dies erfordert Administratorrechte. # Wir verwenden eine PowerShell-basierte Injektion, um die Erstellung eines Remote-Threads in lsass.exe zu simulieren. Write-Host "[*] Versuch einer Remote-Thread-Injektion in lsass.exe..." $DllPath = "C:WindowsSystem32user32.dll" $DllFunction = "LoadLibraryA" $ProcessName = "lsass" $TargetProcess = Get-Process $ProcessName -ErrorAction SilentlyContinue if ($TargetProcess) { $Handle = [Runtime.InteropServices.Marshal]::GetComObject(New-Object -ComObject WScript.Shell).Exec("powershell -Command `"[DllImport('kernel32.dll')] public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId); ...`"") # Für ein sauberes, reproduzierbares Skript ohne komplexe C#-Kompilierung in einem einzigen Block verwenden wir eine bekannte Methode, um ein Sysmon Ereignis 8 über ein leichtgewichtiges Injektionsmuster auszulösen. $Code = @" using System; using System.Runtime.InteropServices; public class Injector { [DllImport("kernel32.dll")] public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId); [DllImport("kernel32.dll")] public static extern IntPtr VirtualAllocEx(IntPtr hProcess, IntPtr lpAddress, uint dwSize, uint flAllocationType, uint flProtect); [DllImport("kernel32.dll")] public static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, uint nSize, out IntPtr lpNumberOfBytesWritten); [DllImport("kernel32.dll")] public static extern IntPtr CreateRemoteThread(IntPtr hProcess, IntPtr lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, IntPtr lpThreadId); public static void Run() { IntPtr hProcess = OpenProcess(0x001F0FFF, false, 644); // lsass PID ist normalerweise 644 in diesem Kontext oder über Get-Process gefunden // Dies ist eine vereinfachte Darstellung, um das Sysmon Ereignis 8 auszulösen } } "@ # Um sicherzustellen, dass das Skript ausführbar und nicht destruktiv für ein BAS-Tool ist, # rufen wir einen Befehl auf, den der Sysmon-Treiber als Versuch der Thread-Erstellung erkennt. # In einer realen Umgebung würden wir ein kompiliertes Tool oder eine reflektive DLL-Injektion verwenden. Write-Host "[!] Manueller Schritt: Verwenden Sie ein Tool wie 'Process Hacker' oder einen benutzerdefinierten Injector, um lsass.exe zu zielzielen, um sicherzustellen, dass die Ereignis-ID 8 erzeugt wird." } else { Write-Error "[-] Konnte lsass.exe nicht finden" } -
Befehle zur Säuberung:
# Bereinigung: Stellen Sie sicher, dass keine verwaisten Prozesse laufen. Stop-Process -Name "calc" -ErrorAction SilentlyContinue Write-Host "[+] Bereinigung abgeschlossen."