Selon le blog d’Ontinue, cette recherche dissèque « VoidLink », un framework C2 Linux capable de générer des implants pour environnements cloud et entreprise. L’analyse se concentre sur l’agent (implant) et met en évidence des artefacts suggestifs d’un développement via agent LLM (libellés « Phase X: », logs verbeux, documentation résiduelle), malgré des capacités techniques avancées.
VoidLink adopte une architecture modulaire avec registre de plugins et initialisation de composants clés (routeur de tâches, gestionnaire de furtivité, gestionnaire d’injection, détecteur de débogueur). Il réalise un profilage intelligent de l’environnement (clouds AWS/GCP/Azure/Alibaba/Tencent, conteneurs Docker/Podman/Kubernetes, posture sécu/EDR, version de noyau) afin d’activer des mécanismes adaptatifs de furtivité et de persistance. 🧠
Côté collecte, l’implant cible les identifiants multi‑cloud (variables d’environnement pour AWS/GCP, répertoires de configuration, APIs de métadonnées), et ratisse les magasins locaux (clés SSH, identifiants Git, historiques de shell, mots de passe/session navigateur). Il abuse des secrets Kubernetes via les jetons de service dans /var/run/secrets/kubernetes.io/serviceaccount/ et s’appuie sur une empreinte cloud (169.254.169.254, metadata.google.internal, metadata[.]tencentyun[.]com) pour adapter ses techniques. Noté: il ne requête pas l’endpoint IAM AWS des rôles d’instance.
Pour l’exploitation des conteneurs, VoidLink détecte l’exécution dans Docker/Podman/Kubernetes et charge des plugins dédiés (docker_escape_v3, k8s_privesc_v3) pour tenter l’évasion et l’élévation de privilèges en cluster. Un rootkit adaptatif renforce la furtivité: eBPF (≥5.5) via hide_ss.bpf.o, LKM (4.x–5.x) via vl_stealth.ko/stealth_netstat.ko, ou LD_PRELOAD (<4.0) pour du hooking en espace utilisateur. Les communications C2 imitent du trafic web (fausses requêtes JS, endpoints API, cookies), chiffrées en AES‑256‑GCM sur HTTPS, avec une architectonie proche des beacons Cobalt Strike. 🛰️
Les auteurs soulignent que les marqueurs de génération par IA (phases incohérentes, logs/documentation restés en production) coexistent avec une réelle maturité opérationnelle: collecte d’identifiants, mouvement latéral conteneur‑aware, furtivité noyau, et C2 opérationnel (IP codée en dur). L’article est une analyse de menace visant à documenter les capacités, artefacts et indicateurs associés.
• IOCs (Indicateurs de compromission)
- C2: 8.149.128[.]10
- Binaire: implant.bin
- SHA1: 9cdbc16912dcf188a0f0765ac21777b23b4b2bea
- SHA256: 05eac3663d47a29da0d32f67e10d161f831138e10958dcd88b9dc97038948f69
- Endpoints/host fingerprinting: 169.254.169.254 (AWS/Azure/Alibaba), metadata.google.internal (GCP), metadata[.]tencentyun[.]com (Tencent)
- Artefacts/plugins/fichiers: hide_ss.bpf.o, vl_stealth.ko, stealth_netstat.ko, docker_escape_v3, k8s_privesc_v3
• TTPs (techniques, tactiques et procédures)
- Profilage d’environnement multi‑cloud et détection conteneur/EDR/noyau
- Collecte d’identifiants via variables d’environnement, répertoires de config, APIs de métadonnées
- Exfiltration de clés SSH, identifiants Git, historiques shell, secrets K8s (jetons de service)
- Évasion conteneur et élévation de privilèges Kubernetes via plugins dédiés
- Rootkit adaptatif: eBPF/LKM/LD_PRELOAD selon version du noyau; masquage sélectif ports/processus/fichiers
- C2 chiffré (AES‑256‑GCM) sur HTTPS avec camouflage (fausses requêtes JS, endpoints API, cookies)
- Contre‑analyse: détecteur de débogueur, gestionnaire de furtivité; binaire à forte entropie (packé/chiffré)
- Indices de génération LLM: libellés « Phase X: », logs verbeux, documentation en production
Type d’article: analyse de menace publiée sur le blog d’Ontinue, visant à documenter un implant opérationnel et ses indicateurs.
🧠 TTPs et IOCs détectés
TTP
Profilage d’environnement multi-cloud et détection conteneur/EDR/noyau; Collecte d’identifiants via variables d’environnement, répertoires de config, APIs de métadonnées; Exfiltration de clés SSH, identifiants Git, historiques shell, secrets K8s (jetons de service); Évasion conteneur et élévation de privilèges Kubernetes via plugins dédiés; Rootkit adaptatif: eBPF/LKM/LD_PRELOAD selon version du noyau; masquage sélectif ports/processus/fichiers; C2 chiffré (AES-256-GCM) sur HTTPS avec camouflage (fausses requêtes JS, endpoints API, cookies); Contre-analyse: détecteur de débogueur, gestionnaire de furtivité; binaire à forte entropie (packé/chiffré); Indices de génération LLM: libellés « Phase X: », logs verbeux, documentation en production
IOC
C2: 8.149.128[.]10; Binaire: implant.bin; SHA1: 9cdbc16912dcf188a0f0765ac21777b23b4b2bea; SHA256: 05eac3663d47a29da0d32f67e10d161f831138e10958dcd88b9dc97038948f69; Endpoints/host fingerprinting: 169.254.169.254 (AWS/Azure/Alibaba), metadata.google.internal (GCP), metadata[.]tencentyun[.]com (Tencent); Artefacts/plugins/fichiers: hide_ss.bpf.o, vl_stealth.ko, stealth_netstat.ko, docker_escape_v3, k8s_privesc_v3
🔗 Source originale : https://www.ontinue.com/resource/voidlink-dissecting-an-ai-generated-c2-implant/