Nouveau Livre Blanc : Les Variants de BPFDoor se Cachent à la Vue de Tous
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Rapid7 Labs a identifié sept nouvelles variantes de BPFDoor qui exploitent des filtres de paquets Berkeley au niveau du noyau pour maintenir un accès furtif de portes dérobées dans les environnements télécom. Les nouvelles familles, httpShell et icmpShell, utilisent un tunneling ICMP et HTTP sans état avec des formats de paquets « magiques » et des champs IP dissimulés pour établir un commandement et contrôle avec un minimum de traces visibles. Le rapport explique comment les implants visent à rester presque invisibles grâce au masquage de processus, au nettoyage des descripteurs de fichiers, au timestomping, et aux communications ICMP chiffrées.
Enquête
Les chercheurs ont analysé près de 300 échantillons et extrait de nouveaux traits de code byte BPF, de nouveaux marqueurs de « bytes magiques » et des noms de processus spécifiques aux variantes tels que hpasmlited et cmathreshd. La validation en laboratoire dans Docker a reproduit le tunneling PTY dirigé par ICMP, l’échange de charges utiles chiffrées par RC4, et un comportement de routage où un indicateur -1 renvoie le trafic à l’adresse source du paquet. L’équipe a également découvert une infrastructure de soutien, y compris des domaines se faisant passer pour des services NTP-sur-SSL utilisés pour mélanger le trafic de staging et de contrôle.
Atténuation
Prioriser la télémetrie qui expose les abus proches du noyau : surveiller la création de sockets AF_PACKET, détecter l’attachement de filtres BPF, et chasser les anomalies de protocole liées à ces variantes, y compris la séquence ICMP 1234 et un code ICMP invalide 1. Avertir sur les démons suspects avec des chemins exécutables manquants, des noms de service usurpés, ou des caractéristiques d’exécution incompatibles avec les processus système légitimes. Rapid7 recommande d’exécuter le script de triage rapid7_bpfdoor_check.sh et de mettre à jour les détections YARA/Suricata avec les signatures de bytes magiques nouvellement documentées.
Réponse
Si des indicateurs sont trouvés, isoler le système, arrêter le processus d’implant suspecté, et bloquer les domaines associés et les plages IP. Capturer les artefacts mémoire et disque pour préserver l’état BPF et les preuves d’exécution, puis utiliser rapid7_bpfdoor_check.sh pour identifier les filtres BPF actifs et les artefacts mutex de zéro byte associés. Enfin, actualiser les détections avec les signatures publiées et continuer à surveiller la réapparition des mêmes marqueurs de paquets, noms de processus et comportements d’attachement de filtre.
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>Technique</b> – T1205.002 Signalisation réseau : filtres socket<br/><b>Description</b>: Sockets AF_PACKET avec filtres BPF pour surveiller le trafic »] class tech_socket_filters technique tech_masq_task_service[« <b>Technique</b> – T1036.004 Masquage service/tâche<br/><b>Description</b>: Noms de démons falsifiés »] class tech_masq_task_service technique tech_overwrite_args[« <b>Technique</b> – T1036.011 Écrasement des arguments de processus »] class tech_overwrite_args technique tech_rename_utils[« <b>Technique</b> – T1036.003 Renommage d’utilitaires »] class tech_rename_utils technique tech_obfuscate_strings[« <b>Technique</b> – T1027 Fichiers obfusqués »] class tech_obfuscate_strings technique tech_clear_history[« <b>Technique</b> – T1070.003 Effacement de l’historique »] class tech_clear_history technique tech_wipe_timestamps[« <b>Technique</b> – T1070.004 Suppression de fichiers »] class tech_wipe_timestamps technique tech_unix_shell[« <b>Technique</b> – T1059.004 Shell Unix »] class tech_unix_shell technique tech_break_process[« <b>Technique</b> – T1036.009 Rupture de l’arbre de processus »] class tech_break_process technique tech_http_c2[« <b>Technique</b> – T1071.001 HTTP »] class tech_http_c2 technique tech_icmp_tunnel[« <b>Technique</b> – T1572 Tunnel ICMP »] class tech_icmp_tunnel technique tech_rc4_encryption[« <b>Technique</b> – T1573.001 Chiffrement RC4 »] class tech_rc4_encryption technique tech_data_obfuscation[« <b>Technique</b> – T1001 Obfuscation des données »] class tech_data_obfuscation technique tech_port_knocking[« <b>Technique</b> – T1205.001 Port knocking »] class tech_port_knocking technique tech_proxy[« <b>Technique</b> – T1090 Proxy »] class tech_proxy technique tech_create_process[« <b>Technique</b> – T1543 Création de processus système »] class tech_create_process technique tech_socket_filters –>|active| tech_masq_task_service tech_masq_task_service –>|supporte| tech_overwrite_args tech_overwrite_args –>|supporte| tech_rename_utils tech_rename_utils –>|améliore| tech_obfuscate_strings tech_obfuscate_strings –>|cache| tech_clear_history tech_clear_history –>|termine| tech_wipe_timestamps tech_wipe_timestamps –>|prépare| tech_unix_shell tech_unix_shell –>|brise| tech_break_process tech_break_process –>|canal pour| tech_http_c2 tech_break_process –>|canal pour| tech_icmp_tunnel tech_icmp_tunnel –>|utilise| tech_rc4_encryption tech_rc4_encryption –>|ajoute| tech_data_obfuscation tech_port_knocking –>|active| tech_socket_filters tech_socket_filters –>|utilisé par| tech_proxy tech_proxy –>|redirige| tech_http_c2 tech_proxy –>|redirige| tech_icmp_tunnel tech_create_process –>|persistance comme| tech_masq_task_service
Flux du Attaque
Détections
Un service DNS dynamique potentiel a été contacté (via dns)
Voir
IOCs (HashSha256) à détecter : Nouveau livre blanc : Les variantes furtives de BPFDoor sont une aiguille qui ressemble à du foin
Voir
Détection des variantes de BPFDoor via des anomalies de processus [Création de processus Linux]
Voir
Détection du paquet magique de BPFDoor et des anomalies ICMP [Pare-feu]
Voir
Exécution de la simulation
Condition préalable : La vérification pré-vol de la télémétrie et de la ligne de base doit être passée.
Narration de l’Attaque & Commandes
- Créer un script Bash malveillant dans le chemin rarement surveillé
/var/run/user/0. - Rendre le script exécutable et ensuite supprimer le fichier tout en le gardant ouvert, entraînant un inode supprimé que le noyau enregistre comme partie de la ligne de commande lorsque le processus continue à s’exécuter.
- Exécuter le descripteur de fichier en suspens, provoquant l’exécution du processus à partir d’un inode supprimé et générant exactement la télémétrie que la règle Sigma recherche.
- Vérifier que la ligne de commande du processus dans les journaux d’audit contient la chaîne « inode supprimé », satisfaisant
sélection3. - Éviter les chaînes de costume masquées exclues (
hpasmlited,cmathreshd) pour garantir que la règle se déclenche.
Script de Test de Régression
#!/usr/bin/env bash
# -------------------------------------------------
# Test d'exécution BPFDoor‑style à partir d'un inode supprimé
# -------------------------------------------------
# 1. Préparer une charge utile malveillante (inoffensive)
PAYLOAD="/var/run/user/0/malicious.sh"
echo -e "#!/usr/bin/env bashnsleep 60" > "$PAYLOAD"
chmod +x "$PAYLOAD"
# 2. Ouvrir le descripteur de fichier (garder le fichier ouvert)
exec 3<"$PAYLOAD"
# 3. Supprimer le fichier du système de fichiers – l'inode reste ouvert via FD 3
rm -f "$PAYLOAD"
# 4. Exécuter le script via son descripteur de fichier en suspens.
# Le lien symbolique /proc/self/fd/3 pointe vers l'inode maintenant supprimé.
bash /proc/self/fd/3 &
# 5. Donner un moment au processus pour démarrer et être enregistré
sleep 5
# 6. Nettoyage : fermer le descripteur de fichier
exec 3<&-
echo "Simulation terminée – vérifier les alertes dans SIEM."
Commandes de Nettoyage
#!/usr/bin/env bash
# -------------------------------------------------
# Nettoyage après la simulation BPFDoor
# -------------------------------------------------
# Terminer tous les processus sleep restants démarrés par le script
pkill -f "sleep 60"
# S'assurer qu'il n'y a pas de fichiers restants dans le répertoire cible
rm -f /var/run/user/0/malicious.sh
echo "Nettoyage terminé."
Fin du Rapport