SOC Prime Bias: Critico

09 Apr 2026 18:14

Nuovo Whitepaper: Le Varianti di BPFDoor Si Nascondono in Bella Vista

Author Photo
SOC Prime Team linkedin icon Segui
Nuovo Whitepaper: Le Varianti di BPFDoor Si Nascondono in Bella Vista
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Sommario

Rapid7 Labs ha identificato sette nuove varianti BPFDoor che abusano dei Berkeley Packet Filters a livello del kernel per mantenere un accesso di backdoor furtivo in ambienti telecom. Le nuove famiglie, httpShell e icmpShell, utilizzano tunneling ICMP e HTTP stateless con formati di pacchetti “magici” e campi IP nascosti per stabilire un comando e controllo con un’impronta osservabile minima. Il rapporto spiega come gli impianti mirano a rimanere quasi invisibili attraverso mascheramento dei processi, pulizia dei file descriptor, timestomping e comunicazioni ICMP criptate.

Indagine

I ricercatori hanno analizzato quasi 300 campioni ed estratto nuovi tratti del bytecode BPF, nuovi marcatori di “magic byte” e nomi di processi specifici per varianti come hpasmlited e cmathreshd. La convalida in laboratorio in Docker ha riprodotto il tunneling PTY guidato da ICMP, lo scambio di payload criptato con RC4 e un comportamento di routing in cui un flag –1 restituisce il traffico all’indirizzo di origine del pacchetto. Il team ha anche scoperto infrastruttura di supporto, inclusi domini che si spacciano per servizi NTP-su-SSL utilizzati per mescolare traffico di staging e controllo.

Mitigazione

Dare priorità alla telemetria che espone abusi adiacenti al kernel: monitorare la creazione di socket AF_PACKET, rilevare l’aggancio di filtri BPF e cacciare anomalie di protocollo legate a queste varianti, inclusa la sequenza ICMP 1234 e un codice ICMP non valido 1. Segnalare demoni sospetti con percorsi eseguibili mancanti, nomi di servizi falsificati o caratteristiche di runtime incoerenti con i processi di sistema legittimi. Rapid7 consiglia di eseguire lo script di triage rapid7_bpfdoor_check.sh e aggiornare le regole YARA/Suricata con le nuove firme dei magic-byte documentate.

Risposta

Se vengono trovati indicatori, isolare il sistema, interrompere il processo sospetto dell’impianto e bloccare i domini e gli intervalli IP associati. Catturare artefatti di memoria e disco per conservare lo stato BPF e le prove di runtime, quindi utilizzare rapid7_bpfdoor_check.sh per identificare filtri BPF attivi e artefatti di mutex a zero byte correlati. Infine, aggiornare i rilevamenti con le firme pubblicate e continuare a monitorare la ricomparsa degli stessi marcatori di pacchetto, nomi di processo e comportamenti di aggancio del filtro.

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>Tecnica</b> – T1205.002 Segnalazione traffico: filtri socket<br/><b>Descrizione</b>: Socket AF_PACKET con filtri BPF per monitoraggio traffico”] class tech_socket_filters technique tech_masq_task_service[“<b>Tecnica</b> – T1036.004 Mascheramento servizio/task<br/><b>Descrizione</b>: Nomi daemon falsi”] class tech_masq_task_service technique tech_overwrite_args[“<b>Tecnica</b> – T1036.011 Sovrascrittura argomenti processo”] class tech_overwrite_args technique tech_rename_utils[“<b>Tecnica</b> – T1036.003 Rinomina utilità”] class tech_rename_utils technique tech_obfuscate_strings[“<b>Tecnica</b> – T1027 Offuscamento file”] class tech_obfuscate_strings technique tech_clear_history[“<b>Tecnica</b> – T1070.003 Cancellazione cronologia”] class tech_clear_history technique tech_wipe_timestamps[“<b>Tecnica</b> – T1070.004 Eliminazione file”] class tech_wipe_timestamps technique tech_unix_shell[“<b>Tecnica</b> – T1059.004 Shell Unix”] class tech_unix_shell technique tech_break_process[“<b>Tecnica</b> – T1036.009 Interruzione albero processi”] class tech_break_process technique tech_http_c2[“<b>Tecnica</b> – T1071.001 HTTP”] class tech_http_c2 technique tech_icmp_tunnel[“<b>Tecnica</b> – T1572 Tunnel ICMP”] class tech_icmp_tunnel technique tech_rc4_encryption[“<b>Tecnica</b> – T1573.001 Cifratura RC4”] class tech_rc4_encryption technique tech_data_obfuscation[“<b>Tecnica</b> – T1001 Offuscamento dati”] class tech_data_obfuscation technique tech_port_knocking[“<b>Tecnica</b> – T1205.001 Port knocking”] class tech_port_knocking technique tech_proxy[“<b>Tecnica</b> – T1090 Proxy”] class tech_proxy technique tech_create_process[“<b>Tecnica</b> – T1543 Creazione processo di sistema”] class tech_create_process technique tech_socket_filters –>|abilita| tech_masq_task_service tech_masq_task_service –>|supporta| tech_overwrite_args tech_overwrite_args –>|supporta| tech_rename_utils tech_rename_utils –>|migliora| tech_obfuscate_strings tech_obfuscate_strings –>|nasconde| tech_clear_history tech_clear_history –>|completa| tech_wipe_timestamps tech_wipe_timestamps –>|prepara| tech_unix_shell tech_unix_shell –>|rompe| tech_break_process tech_break_process –>|canale per| tech_http_c2 tech_break_process –>|canale per| tech_icmp_tunnel tech_icmp_tunnel –>|usa| tech_rc4_encryption tech_rc4_encryption –>|aggiunge| tech_data_obfuscation tech_port_knocking –>|attiva| tech_socket_filters tech_socket_filters –>|usato da| tech_proxy tech_proxy –>|inoltra| tech_http_c2 tech_proxy –>|inoltra| tech_icmp_tunnel tech_create_process –>|persistenza come| tech_masq_task_service

Flusso di Attacco

Esecuzione della Simulazione

Pre-requisito: Il controllo preliminare di Telemetria e Baseline deve essere superato.

Narrativa & Comandi dell’Attacco

  1. Crea uno script Bash malevolo nel percorso raramente monitorato /var/run/user/0.
  2. Rendi lo script eseguibile e poi elimina il file tenendolo aperto, risultando in un inode eliminato che il kernel registra come parte della riga di comando quando il processo continua a funzionare.
  3. Esegui il descrittore di file pendente, causando l’esecuzione del processo da un inode eliminato e generando esattamente la telemetria per cui la regola Sigma è stata progettata.
  4. Verifica che la riga di comando del processo nei registri di audit contenga la stringa “inode eliminato”, soddisfacendo selezione3.
  5. Evita le stringhe di mascheramento escluse (hpasmlited, cmathreshd) per garantire che la regola si attivi.

Script di Test di Regressione

#!/usr/bin/env bash
# -------------------------------------------------
# Test di esecuzione da inode eliminato in stile BPFDoor
# -------------------------------------------------

# 1. Prepara un payload malevolo (innocuo)
PAYLOAD="/var/run/user/0/malicious.sh"
echo -e "#!/usr/bin/env bashnsleep 60" > "$PAYLOAD"
chmod +x "$PAYLOAD"

# 2. Apri il descrittore di file (mantieni il file aperto)
exec 3<"$PAYLOAD"

# 3. Elimina il file dal filesystem – inode rimane aperto tramite FD 3
rm -f "$PAYLOAD"

# 4. Esegui lo script tramite il suo descrittore di file pendente.
#    Il symlink /proc/self/fd/3 punta all'inodice ora eliminato.
bash /proc/self/fd/3 &

# 5. Dai al processo un momento per avviarsi ed essere registrato
sleep 5

# 6. Pulisci: chiudi il descrittore di file
exec 3<&-
echo "Simulazione completata – verifica avvisi nel SIEM."

Comandi di Pulizia

#!/usr/bin/env bash
# -------------------------------------------------
# Pulizia dopo la simulazione BPFDoor
# -------------------------------------------------

# Termina eventuali processi sleep residui avviati dallo script
pkill -f "sleep 60"

# Assicurati che non ci siano file rimasti nella directory target
rm -f /var/run/user/0/malicious.sh

echo "Pulizia completata."

Fine del Rapporto