Published: Feb. 12, 2022, 4:40 p.m.
Emmanuel et Arnaud reviennent sur la fameuse faille #log4shell qui a fait travailler beaucoup d\u2019\xe9quipes Java en d\xe9cembre et janvier.
Enregistr\xe9 le 11 f\xe9vrier 2022
T\xe9l\xe9chargement de l\u2019\xe9pisode LesCastCodeurs-Episode\u2013272.mp3
Interview Quelle est cette vuln\xe9rabilit\xe9 et pourquoi est-elle si dangereuse ?
CVE\u20132021\u201344228
Report\xe9e chez Apache le 24 Novembre, Enregistr\xe9e en CVE le 26 Nov Probablement connue depuis au moins Mars 2021: https://github.com/nice0e3/log4j_POC
- fix 2.15.0 le 10 d\xe9cembre
- Apache Log4j2 JNDI features do not protect against attacker controlled LDAP and other JNDI related endpoints.
- Severity CVSS de 10 sur 10
- Back to basics: C\u2019est quoi JNDI?
- the JNDI features used in configurations, log messages, and parameters do not protect against attacker-controlled LDAP and other JNDI related endpoints
- l\u2019attaquant trouve une donn\xe9e utilisateur qui est logg\xe9e
- et injecte
{JNDI:ldap
pointant vers un ldap malicieux qui retour du code java s\xe9rialis\xe9 - log4j deserialise et execute ce que l\u2019on veut
- que log4j2-core pas api
- d\xe9tail de Lunasec log4j zero day
CVE\u20132021\u201345046
- 2.16.0 (change des fonctionalit\xe9s) le 13 d\xe9cembre
- Apache Log4j2 Thread Context Lookup Pattern vulnerable to remote code execution in certain non-default configurations
- When the logging configuration uses a non-default Pattern Layout with a Context Lookup
- attackers with control over Thread Context Map (MDC / Mapped Diagnostic Context) input data can craft malicious input data using a JNDI Lookup pattern
- donc on peut injected une chaine JNDI encore
- mais on doit savoir comment de la date utilisateur on peut pousser dans une Thread Context Map r\xe9f\xe9renc\xe9e par la config
- on alors l\u2019attaquant a acc\xe8s \xe0 la config et c\u2019est game over
- Initialement on parlait de denial of services
- via une reference infinie probablement
- c\u2019est une chemin qui n\u2019\xe9tait pas prot\xe9g\xe9 des interpolations de messages et donc de l\u2019acc\xe8s JNDI
CVE\u20132021\u201345105
- fix dans 2.17.0 le 18 d\xe9cembre
- recursion non control\xe9e dans un lookup auto r\xe9f\xe9rentiel
- When the logging configuration uses a non-default Pattern Layout with a Context Lookup (for example, $${ctx:loginId}
- Besoin de l\u2019attaquant control de Thread Context Map (peut etre une donn\xe9e inject\xe9e par un framework d\u2019une entr\xe9e utilisateur
- changer la config log4j locale?
CVE\u20132021\u201344832
- 2.17.1 le 27 d\xe9cembre
- Apache Log4j2 vulnerable to RCE via JDBC Appender when attacker controls configuration
- malicious configuration using a JDBC Appender with a data source referencing a JNDI URI which can execute remote code.
- attaquant accede et modifie la config
- pas simple
- sauf si la plateforme permet la reconfiguration par un utilisateur???
- log
Google package analysis
- montre 8% de packages sur central affect\xe9s par log4j 2
- niveau de d\xe9pendance transitive monte jusqu\u2019\xe0 9
- du coup il y a neuf vendeurs qui doivent corriger leurs d\xe9pendances
Toujours plus de 40% de t\xe9l\xe9chargement sur Maven central des versions impact\xe9es
Log4j1 n\u2019est pas en reste:
- JMSAppender
- JMS dit JNDI et paf on recommence
- JDBCAppender
- log4j1 n\u2019est plus maintenue ah merde!
Reload4j de ceki
Des exploitations ?
Peu au final Car chaque usage de log4j est unique Entr\xe9e quoi est logg\xe9 etc Donc trop dur pour les script kiddies
Mais dans les megasploits et autres toolkits d\u2019attaque
VMware vSphere et Hoirizon Ubiquity Solarwind etc
Quel process suivre
-
verifier la v\xe9racit\xe9 de la CVE et comprendre ses vecteurs d\u2019attaque
-
identifier ses d\xe9pendances et donc ses soft impact\xe9
-
identifier les \xe9l\xe9ments fournis par l\u2019utilisateur qui sont logg\xe9s
-
d\xe9finir le risque par software et par service
-
appliquer le patch de s\xe9curit\xe9 et reconstruire le package
-
d\xe9ployer ou livrer chez les clients
-
r\xe9p\xe9ter pour les semaines \xe0 venir
-
shading? :)
Impact de l\u2019industrie dans le futur
La chine a tap\xe9 sur les doigts Alibaba qui n\u2019a pas donn\xe9 cette faille d\u2019abord au gouvernement chinois
The Gift of It\u2019s Your Problem Now
- Discussion sur le paiement et l\u2019open source
- Pour un individuel l\u2019open source est un cadeau, et donner de l\u2019argent n\u2019am\xe9liore pas le cadeau
- Injecter de la compensation financi\xe8re dans un cadeau casse le cadeau et ne change pas la motivation (ou la casse)
- Pour une soci\xe9t\xe9, l\u2019open source est un moyen de r\xe9cup\xe9rer du feedback et du marketing, donc c\u2019est une transaction et pas un cadeau
- Un autre article similaire burden open source maintainer
colors faker
Reflection on log4shell par diabolical developer
- marathon pas un sprint, on fatigue apr\xe8s 5 ou 6 jours a fond, donc faites des rotations
- comm sur le r\xe9seau, que regarder : Adding encryption, Auth/Auth, I sanitize data that goes over the wire, I sanitize input that could execute, DOS protection \u2013 backoff strategies and more.
- supply chain s\xe9curisation and component governance
- OSS funding (hum?)
Nous contacter
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Faire un crowdcast ou une crowdquestion
Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/