SOC Prime Bias: Kritisch

09 Apr. 2026 18:14

Neues Whitepaper: BPFDoor-Varianten verstecken sich unauffällig

Author Photo
SOC Prime Team linkedin icon Folgen
Neues Whitepaper: BPFDoor-Varianten verstecken sich unauffällig
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

Rapid7 Labs identifizierte sieben neue BPFDoor-Varianten, die Kernel-Level-Berkeley-Paketfilter missbrauchen, um unauffälligen Hintertürzugang in Telekommunikationsumgebungen aufrechtzuerhalten. Die neuen Familien, httpShell und icmpShell, verwenden zustandslose ICMP- und HTTP-Tunnel mit „magischen“ Paketformaten und verborgenen IP-Feldern, um Kommando- und Kontroll-Schnittstellen mit minimaler sichtbarer Belastung aufzubauen. Der Bericht erklärt, wie die Implantate nahezu unsichtbar bleiben sollen, indem sie Prozess-Vermaskierung, Bereinigung von Dateideskriptoren, Timestomping und verschlüsselte ICMP-Kommunikationen nutzen.

Untersuchung

Forscher analysierten fast 300 Proben und extrahierten neue BPF-Bytecode-Merkmale, frische „Magic-Byte“-Markierungen und varianten-spezifische Prozessnamen wie hpasmlited und cmathreshd. Die Laborvalidierung in Docker reproduzierte ICMP-gesteuertes PTY-Tunneling, RC4-verschlüsselten Payload-Austausch und ein Routing-Verhalten, bei dem ein –1-Flag den Verkehr zurück zur Quelladresse des Pakets schickt. Das Team entdeckte auch unterstützende Infrastruktur, einschließlich Domains, die sich als NTP-over-SSL-Dienste tarnen, um Staging- und Kontrollverkehr zu verschleiern.

Minderung

Priorisieren Sie Telemetrie, die Kernel-nahe Missbräuche aufdeckt: Überwachen Sie AF_PACKET-Socket-Erstellung, erkennen Sie BPF-Filter-Installationen und jagen Sie nach Protokollanomalien, die mit diesen Varianten verbunden sind, einschließlich ICMP-Sequenz 1234 und einem ungültigen ICMP-Code 1. Alarmieren Sie bei verdächtigen Daemons mit fehlenden ausführbaren Pfaden, gefälschten Dienstnamen oder Laufzeitcharakteristiken, die mit legitimen Systemprozessen unvereinbar sind. Rapid7 empfiehlt, das rapid7_bpfdoor_check.sh-Überprüfungsskript auszuführen und YARA/Suricata-Erkennungen mit den neu dokumentierten Magic-Byte-Signaturen zu aktualisieren.

Reaktion

Wenn Indikatoren gefunden werden, isolieren Sie das System, stoppen Sie den verdächtigen Implantatprozess und blockieren Sie die zugehörigen Domains und IP-Bereiche. Erfassen Sie Speicher- und Festplattenartefakte, um den BPF-Zustand und Laufzeitbeweise zu sichern, und verwenden Sie dann rapid7_bpfdoor_check.sh, um aktive BPF-Filter und verbundene Null-Byte-Mutex-Artefakte zu identifizieren. Aktualisieren Sie abschließend die Erkennungen mit den veröffentlichten Signaturen und überwachen Sie weiterhin die Wiederholung derselben Paketmarkierungen, Prozessnamen und Filter-Installationsverhalten.

graph TB classDef technique fill:#ffcc99 classDef action fill:#99ccff classDef tool fill:#cccccc classDef process fill:#c2f0c2 classDef malware fill:#f4c2c2 tech_socket_filters[„<b>Technik</b> – T1205.002 Traffic-Signalisierung: Socket-Filter<br/><b>Beschreibung</b>: AF_PACKET-Sockets mit BPF-Filtern zur Traffic-Überwachung“] class tech_socket_filters technique tech_masq_task_service[„<b>Technik</b> – T1036.004 Dienst-/Task-Maskierung<br/><b>Beschreibung</b>: Täuscht legitime Daemon-Namen vor“] class tech_masq_task_service technique tech_overwrite_args[„<b>Technik</b> – T1036.011 Prozessargumente überschreiben<br/><b>Beschreibung</b>: Manipuliert Argumentstrings“] class tech_overwrite_args technique tech_rename_utils[„<b>Technik</b> – T1036.003 Umbenennen legitimer Tools<br/><b>Beschreibung</b>: Tarnung durch Umbenennung“] class tech_rename_utils technique tech_obfuscate_strings[„<b>Technik</b> – T1027 Verschleierte Dateien<br/><b>Beschreibung</b>: Stack-basierte String-Obfuskation“] class tech_obfuscate_strings technique tech_clear_history[„<b>Technik</b> – T1070.003 Befehlsverlauf löschen“] class tech_clear_history technique tech_wipe_timestamps[„<b>Technik</b> – T1070.004 Datei-Spuren löschen“] class tech_wipe_timestamps technique tech_unix_shell[„<b>Technik</b> – T1059.004 Unix Shell“] class tech_unix_shell technique tech_break_process[„<b>Technik</b> – T1036.009 Prozessbaum brechen“] class tech_break_process technique tech_http_c2[„<b>Technik</b> – T1071.001 HTTP-Kommunikation“] class tech_http_c2 technique tech_icmp_tunnel[„<b>Technik</b> – T1572 ICMP-Tunneling“] class tech_icmp_tunnel technique tech_rc4_encryption[„<b>Technik</b> – T1573.001 Verschlüsselung“] class tech_rc4_encryption technique tech_data_obfuscation[„<b>Technik</b> – T1001 Daten-Obfuskation“] class tech_data_obfuscation technique tech_port_knocking[„<b>Technik</b> – T1205.001 Port-Knocking“] class tech_port_knocking technique tech_proxy[„<b>Technik</b> – T1090 Proxy“] class tech_proxy technique tech_create_process[„<b>Technik</b> – T1543 Systemprozess erstellen“] class tech_create_process technique tech_socket_filters –>|aktiviert| tech_masq_task_service tech_masq_task_service –>|unterstützt| tech_overwrite_args tech_overwrite_args –>|unterstützt| tech_rename_utils tech_rename_utils –>|verstärkt| tech_obfuscate_strings tech_obfuscate_strings –>|versteckt| tech_clear_history tech_clear_history –>|abschließt| tech_wipe_timestamps tech_wipe_timestamps –>|bereitet vor| tech_unix_shell tech_unix_shell –>|bricht| tech_break_process tech_break_process –>|Kanal für| tech_http_c2 tech_break_process –>|Kanal für| tech_icmp_tunnel tech_icmp_tunnel –>|nutzt| tech_rc4_encryption tech_rc4_encryption –>|fügt hinzu| tech_data_obfuscation tech_port_knocking –>|aktiviert| tech_socket_filters tech_socket_filters –>|genutzt von| tech_proxy tech_proxy –>|leitet weiter| tech_http_c2 tech_proxy –>|leitet weiter| tech_icmp_tunnel tech_create_process –>|Persistenz als| tech_masq_task_service

Angriffsablauf

Simulation Ausführung

Voraussetzung: Die Telemetrie- & Basisflugprüfung muss bestanden sein.

Angriffserzählung & Befehle

  1. Einen bösartigen Bash-Skript erstellen im selten überwachten Pfad /var/run/user/0.
  2. Das Skript ausführbar machen und dann die Datei löschen während sie geöffnet bleibt, was zu einem gelöschten Inode führt, den der Kernel als Teil der Kommandozeile protokolliert, wenn der Prozess weiterläuft.
  3. Den offenen Dateizeiger ausführen, was dazu führt, dass der Prozess aus einem gelöschten Inode heraus läuft und genau die Telemetrie erzeugt, nach der die Sigma-Regel sucht.
  4. Bestätigen dass die Prozess-Kommandozeile in Audit-Protokollen die Zeichenfolge „gelöschter Inode“ enthält, was Auswahl3.
  5. Vermeiden die ausgeschlossenen Tarnteilzeichenketten (hpasmlited, cmathreshd), um sicherzustellen, dass die Regel ausgelöst wird.

Regressionstest-Skript

#!/usr/bin/env bash
# -------------------------------------------------
# BPFDoor-ähnlicher Test zur Ausführung aus dem gelöschten Inode
# -------------------------------------------------

# 1. Ein bösartiges (harmloses) Payload vorbereiten
PAYLOAD="/var/run/user/0/malicious.sh"
echo -e "#!/usr/bin/env bashnsleep 60" > "$PAYLOAD"
chmod +x "$PAYLOAD"

# 2. Den Dateizeiger öffnen (Datei geöffnet halten)
exec 3<"$PAYLOAD"

# 3. Die Datei aus dem Dateisystem löschen – Inode bleibt über FD 3 geöffnet
rm -f "$PAYLOAD"

# 4. Das Skript über seinen offenen Dateizaiger ausführen.
#    Der /proc/self/fd/3-Symlink zeigt auf den nun gelöschten Inode.
bash /proc/self/fd/3 &

# 5. Dem Prozess einen Moment geben, um zu starten und protokolliert zu werden
sleep 5

# 6. Aufräumen: den Dateizeiger schließen
exec 3<&-
echo "Simulation abgeschlossen – SIEM auf Warnungen prüfen."

Bereinigungskommandos

#!/usr/bin/env bash
# -------------------------------------------------
# Bereinigung nach BPFDoor-Simulation
# -------------------------------------------------

# Alle verbleibenden Sleep-Prozesse beenden, die vom Skript gestartet wurden
pkill -f "sleep 60"

# Sicherstellen, dass keine verbleibenden Dateien im Zielverzeichnis vorhanden sind
rm -f /var/run/user/0/malicious.sh

echo "Bereinigung abgeschlossen."

Ende des Berichts