Vulnérabilité Critique dans Apache Log4j activement exploitée [Mise à jour le 23/12/2021]
Date de publication :
CVE-2021-44228[Score CVSS v3.1: 10]
La vulnérabilité permet à un attaquant distant, à partir d’un serveur LDAP, d'appeler la brique JNDI de log4j d’un serveur Apache à travers un serveur exposé afin d'exécuter du code malveillant. Cela est dû à un manque de contrôle des commandes reçues par l’API JNDI permettant d’effectuer des connexions LDAP vers des annuaires.
Une preuve de concept de l’exploitation de la vulnérabilité a été publiée sur Internet.
Le CERT-FR a publié une alerte mise à jour le 22/12/2021 : https://www.cert.ssi.gouv.fr/alerte/CERTFR-2021-ALE-022/
Le Centre National pour la Cybersécurité des Pays-Bas a mis à disposition un répertoire GitHub avec la liste des logiciels impactés, les IOCs, les mesures de détection et les mesures de remédiation : GitHub - NCSC-NL/log4shell: Operational information regarding the vulnerability in the Log4j logging library.
Le CISA a publié un scanner basé sur des outils issus de la communauté open-source : https://github.com/cisagov/log4j-scanner
Informations
La faille est activement exploitée :
Un correctif existe :
Une mesure de contournement existe :
-
Exécution de code arbitraire à distance
Exploitation
Des indicateurs de compromission sont disponibles aux liens suivants :
https://gist.github.com/gnremy/c546c7911d5f876f263309d7161a7217
https://github.com/Neo23x0/log4shell-detector
https://threatfox.abuse.ch/browse/tag/log4j/
https://gist.github.com/superducktoes/9b742f7b44c71b4a0d19790228ce85d8
Des règles permettant de détecter une compromission sont disponibles aux liens suivants :
Log4j RCE CVE-2021-44228 Exploitation Detection · GitHub
https://blog.fox-it.com/2021/12/12/log4shell-reconnaissance-and-post-exploitation-network-detection/
https://www.cert.ssi.gouv.fr/uploads/ANSSI_Detection_log4j_NP_TLP_WHITE_v1.0.6.pdf
Pour identifier une compromission sur un serveur linux :
https://github.com/intezer/log4jscan/
Pour identifier l'utilisation d'une ressource java qui va rechercher une ressource extérieure ( cela pourrait être utiliser dans les logs proxy sortant pour identifier des connexions suspectes) :
https://developers.whatismybrowser.com/useragents/explore/software_name/java-runtime-environment/5
Systèmes ou composants affectés
Cette vulnérabilité concerne toutes les versions Apache Log4j égale ou antérieure à la 2.15.0.
La vulnérabilité n’est pas exploitable si la machine possède une version de JDK dans une version supérieure à 6u211, 7u201, 8u191 et 11.0.1 car "com.sun.jndi.ldap.object.trustURLCodebase" est appliqué à "false" par défaut, empêchant JNDI d'exécuter du code arbitraire provenant d’une source distante inconnue.
Des liens recensent toutes les applications qui intègrent log4j :
https://gist.github.com/SwitHak/b66db3a06c2955a9cb71a8718970c592
https://github.com/NCSC-NL/log4shell/tree/main/software
https://github.com/zer010bs/Log4jAttackSurface
Voici une liste des produits utilisant la librairie :
Apache Solr, vous pouvez consulter la liste des produits concernés sur son site Internet ;
https://lnkd.in/dyxV5PUJ
• Apache Struts, vous pouvez consulter la liste des produits concernés sur son site Internet
;https://lnkd.in/djFdaXiM
• Atlassian, vous pouvez consulter la liste des produits concernés sur son site Internet ;
https://lnkd.in/dmwWTR6f
• BMC, vous pouvez consulter la liste des produits concernés sur son site Internet ;
https://lnkd.in/dD3gc-bb
• Cisco, vous pouvez consulter la liste des produits concernés sur son site Internet ;
https://lnkd.in/dvr_Tyif
• Citrix, vous pouvez consulter la liste des produits concernés sur son site Internet ;
https://lnkd.in/dNem_TUj
• Debian, vous pouvez consulter la liste des produits concernés sur son site Web ;
https://lnkd.in/drE4NaN3
• Docker, vous pouvez consulter la liste des produits concernés sur son site Internet ;
https://lnkd.in/dk6PKqNS
• F-Secure, vous pouvez consulter la liste des produits concernés sur son site Internet ;
https://lnkd.in/dU-qh9F7
• Fortinet, vous pouvez consulter la liste des produits concernés sur son site Internet ;
https://lnkd.in/dEY8uA_F
• RedHat, vous pouvez consulter la liste des produits concernés sur son site Web ;
https://lnkd.in/d8W8Fc2J
• Solarwinds, vous pouvez consulter la liste des produits concernés sur son site Internet ;
https://lnkd.in/deSzqsBq
• VMware, vous pouvez consulter la liste des produits concernés sur son site Web.
https://lnkd.in/dvM7Fvjp
Contournement provisoire
Voir la section contournement provisoire de l'alerte de l'ANSSI : https://www.cert.ssi.gouv.fr/alerte/CERTFR-2021-ALE-022/
Solutions ou recommandations
- Mettre à jour Apache Log4J à minima vers la version 2.16.0 pour java 8 ou la version 2.12.2 pour java 7 et idéalement la version 2.17.0 pour java 8 ou la version 2.12.3 (à venir) pour java 7
- Pour les versions supérieures à 2.10.0 :
- Dans les paramètres systèmes de Log4j, passer le paramètre "log4j2.formatMsgNoLookups" à “true” soit lors du lancement de la VM avec le paramètre "-Dlog4j2.formatMsgNoLookups=true" ou dans l'environnement de variable avec les commandes suivantes :
(Possibilité d'utilisé TEKU_OPTS à la place de JAVA_OPTS)
JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true" teku --network mainnet
Ou avec -Xmx :
JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true -Xmx4g" teku
Pour Systemd:
Environment='JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true"'
Pour Systemd avec -XmX:
Environment='JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true" "-Xmx4g'
- Pour les versions antérieures à la 2.10.0 :
- En retirant la class "JndiLookup" des classes d'Apache Log4j (example: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class)
- https://issues.apache.org/jira/browse/LOG4J2-2109