Einführung in die COM-Nutzung durch Windows-Bedrohungen
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Diese Forschung untersucht, wie Malware das Windows-Komponentenobjektmodell (COM) missbraucht, um bösartige Aktionen wie laterale Bewegung, Persistenz und Verteidigungsevasion zu unterstützen. Es wird erklärt, wie COM es ermöglicht, dass verschiedene Programmiersprachen mit Windows-Diensten interagieren, und wie Bedrohungsakteure Funktionalität hinter indirekten Vtable-Aufrufen durch COM-Schnittstellen verbergen. Der Artikel enthält technische Fallstudien zu Malware-Familien wie Qakbot, Gh0stRAT, Attor und WarmCookie, um diese Methoden in der Praxis zu demonstrieren.
Untersuchung
Die Untersuchung konzentriert sich darauf, stark COM-lastige Binärdateien zu reverse-engineeren, um undurchsichtige GUIDs und Vtable-Offsets in bedeutungsvolle Windows-Klassen und Methodenaufrufe zu übersetzen. Forscher verwendeten Tools wie OleView.NET und ComView, um Registrierungsregistrierungen und Schnittstellendefinitionen zu inspizieren. Die Fallstudien zeigten, dass die Analyse der COM-Aktivierungs-APIs den tatsächlichen Zweck und das Verhalten einer Malware-Probe aufdecken kann.
Minderung
Der Artikel konzentriert sich mehr auf Analyse und Erkennung als auf spezifische Härtungsmaßnahmen. Dennoch wird vorgeschlagen, ungewöhnliches COM-Aktivierungsverhalten zu überwachen und Registrierungs-Einträge, die mit CLSIDs und IIDs verbunden sind, zu überprüfen, um die Sichtbarkeit zu verbessern. Ein starkes Verständnis für durch COM exponierte Dienste wie BITS und Task Scheduler ist ebenfalls wichtig für ein effektives Monitoring und Bedrohungsjagd.
Reaktion
Wenn verdächtige COM-Aktivität identifiziert wird, sollten die Responder den Prozess analysieren, der die COM-Aktivierung initiiert, und feststellen, welcher CLSID und welche IID aufgerufen werden. Es ist auch wichtig, den übergeordneten Prozess zu verfolgen und nach zugehörigen geplanten Aufgaben oder BITS-Jobs zu suchen. Dynamische Instrumentierung und COM-fokussierte Protokollierungstools können helfen, die vollständige Kette bösartiger API-Aktivität zu rekonstruieren.
Angriffsfluss
Erkennungen
Möglicher UAC-Bypass über COM-Objekte (über cmdline)
Ansehen
Mögliche Inline-VB-Skriptausführung (über Prozessgenerierung)
Ansehen
Mögliche laterale Bewegung über DCOM [Excel/Visio/Word/Access/PowerPoint.Application] (über cmdline)
Ansehen
Mögliche geplante Aufgabe über COM-Objekt (über cmdline)
Ansehen
Erkennung der COM-Objekterstellung mit PowerShell und WMI für Automatisierung und Aufgabenplanung [Windows Powershell]
Ansehen
Erkennung der COM- und DCOM-Sicherheitsinitialisierung [Windows-Prozesserstellung]
Ansehen
Simulationsausführung
Voraussetzung: Der Telemetrie- & Basislinien-Vorflugtest muss bestanden sein.
Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der gegnerischen Technik (TTP), die darauf ausgelegt ist, die Erkennungsregel auszulösen. Die Befehle und Erzählungen 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 Fehldiagnosen.
-
Angriffserzählung & Befehle: Der Angreifer beabsichtigt, laterale Bewegungen oder Manipulationen von Remote-Diensten durchzuführen. Um einfache signaturbasierte Erkennungen, die nach gängigen Tool-Mustern suchen, zu umgehen, verwenden sie ein spezialisiertes Dienstprogramm (hier simuliert als
example.exe) und geben spezifische Argumente an, die die Sicherheitsinitialisierung von COM/DCOM auslösen. Durch das Übergeben vonCoCreateInstanceExandCoInitializeSecurityals Befehlszeilenargumente versucht der Angreifer, den Sicherheitskontext für eine out-of-process COM-Schnittstelle zu konfigurieren, um die Remote-Interaktion zu erleichtern. -
Regressionstest-Skript:
# HINWEIS: Dieses Skript geht davon aus, dass 'example.exe' gemäß der Regel-Logik im System32 vorhanden ist. # Da es sich um einen Platzhalter handelt, werden wir eine Dummy-Datei erstellen, um die ausführbare Datei für den Test zu simulieren. $targetPath = "C:WindowsSystem32example.exe" # Erstellen einer Dummy-Ausführungsdatei, falls sie nicht für Simulationszwecke vorhanden ist if (-not (Test-Path $targetPath)) { Write-Host "Erstellen der Dummy-Ausführungsdatei für die Simulation..." New-Item -Path $targetPath -ItemType File -Force } # Simulieren der Ausführung der verdächtigen Befehlszeile # Dieser Befehl ist darauf ausgelegt, die CommandLine-Auswahl der Erkennungsregel auszulösen Start-Process -FilePath $targetPath -ArgumentList "--action CoCreateInstanceEx --setup CoInitializeSecurity" -Wait -
Aufräumbefehle:
# Entfernen der für die Simulation erstellten Dummy-Ausführungsdatei Remove-Item -Path "C:WindowsSystem32example.exe" -Force