REPORTAGE  
New Security Magazine 161 – mars 2022

Log4Shell expose la vulnérabilité chez des millions d’utilisateurs

Un minuscule logiciel largement utilisé pour la journalisation d’événements est à l’origine d’une sérieuse faille informatique. L’utilitaire Log4j en question est actif sur des millions d’ordinateurs qui risquent désormais d’être utilisés à mauvais escient. Il est aussi utilisé dans notre secteur dans divers programmes logiciels.

Pour vous donner une idée de l’ampleur : l’U.S. Cybersecurity & Infrastructure Security Agency, soit le cyber-gendarme américain, a qualifié Log4Shell de l’une des plus graves vulnérabilités depuis son existence. C’est ce que confirme le score CVSS. CVSS signifie Common Vulnerability Scoring System et est une norme de l’industrie qui détermine de manière indépendante la gravité d’une vulnérabilité ou faille dans un logiciel. La faille de l’utilitaire Log4j a obtenu le score maximal de 10. Des centaines voire des millions d’essais ont déjà eu lieu pour abuser de la fuite.

Que fait l’utilitaire Log4j?

Il est étonnant qu’un minuscule logiciel puisse avoir des conséquences aussi dramatiques. En principe, l’utilitaire Log4j assure la journalisation d’événements comme des erreurs ou des opérations système de routine. Il transmet des messages de diagnostic aux administrateurs système et aux utilisateurs. Voici un exemple simple de ce que fait concrètement log4j: quiconque tape un lien web incorrect ou clique sur un lien erroné est dirigé vers la fameuse page d’erreur 404. Le serveur web gérant le domaine du lien web que vous essayez d’atteindre vous dit à sa manière que la page demandée est introuvable. Dans le même temps, cet événement est consigné par l’utilitaire Log4j pour les administrateurs système du serveur. Ceux-ci peuvent utiliser l’information pour corriger le lien web. L’utilitaire Log4j génère donc des messages de diagnostic similaires pour des milliers d’applications. Dans le jeu en ligne Minecraft, il est utilisé par le serveur pour consigner des activités comme la mémoire totale utilisée et les commandes tapées par l’utilisateur sur la console. En principe, tous les appareils qui consignent des données avec les versions log4J 2.0 à 2.17 via leur service cloud sont concernés. Il s’agit notamment des services d’Atlassian, d’Amazon, de Microsoft Azure, de Cisco, de Commvault, d’ESRI, d’Exact, de Fortinet, de JetBrains, de Nelson, de Nutanix, d’OpenMRS, d’Oracle, de Red Hat, de Splunk, de Soft et de VMware. Cette liste montre clairement l’étendue du problème. La journalisation est une des fonctions basiques de la plupart des logiciels, ce qui explique pourquoi Log4j est si répandu. Outre les jeux populaires, il est utilisé dans les services cloud comme Apple iCloud et Amazon Web Services et dans une large gamme de programmes. Et malheureusement aussi dans les dispositifs de sécurité comme les caméras, les centrales et les systèmes de contrôle d’accès.

Une telle ampleur signifie que les hackers ont le choix parmi un large éventail de cibles : les utilisateurs à domicile, les prestataires de services, les développeurs de code source et même les chercheurs en sécurité. Les grandes entreprises comme Amazon peuvent rapidement patcher leurs services web pour empêcher les pirates d’en profiter mais de nombreuses organisations mettront plus de temps à colmater leurs systèmes, et certaines ne savent même pas qu’elles doivent le faire.

Comment fonctionne Log4Shell?

La vulnérabilité Log4Shell fonctionne par l’exploitation abusive d’une fonction dans l’utilitaire Log4j qui permet aux utilisateurs de spécifier un code personnalisé pour formater un message de journal. Via cette fonction, Log4j peut consigner le nom de l’utilisateur associé à chaque tentative de connexion du serveur mais aussi le vrai nom de la personne si un serveur distinct possède un répertoire couplant les noms d’utilisateurs aux vrais noms. Pour ce faire, le serveur Log4j doit communiquer avec le serveur qui stocke les vrais noms. Malheureusement, ce type de code peut être utilisé à d’autres fins que le simple formatage de messages de journal. Log4j permet à des serveurs tiers d’entrer le code logiciel pouvant effectuer diverses actions sur l’ordinateur ciblé. Ce qui ouvre la porte à des activités malveillantes comme le vol d’informations sensibles, la prise de contrôle du système et la diffusion de contenu malveillant à d’autres utilisateurs qui communiquent avec le serveur compromis.

Facile à détourner

L’ampleur de la vulnérabilité n’est pas le seul problème. Il est relativement facile d’exploiter la faille, et ce seuil très bas poussent les criminels à sauter dans le train en marche. Les hackers parcourent internet à la recherche de serveurs vulnérables. Pour lancer une attaque, ils essaient de générer un message de journal (comme une mention d’erreur 404). La requête contient un texte malveillant que l’utilitaire Log4j traite comme une instruction. Ces instructions peuvent alors générer un ‘reverse shell’ permettant au serveur attaqué de piloter le serveur cible à distance, ou faire en sorte que le serveur cible fasse partie d’un botnet. Les botnets utilisent plusieurs ordinateurs piratés pour effectuer à leur tour des actions coordonnées au nom des pirates.

De nombreux hackers ont déjà tenté d’abuser de la vulnérabilité Log4Shell. Cela va des bandes de ransomware qui mettent les serveurs à plat aux groupes de hackers qui essaient d’exploiter le bitcoin jusqu’aux hackers en Russie, Chine et Corée du nord qui tentent d’accéder à de l’information sensible de rivaux géopolitiques. Le ministère belge de la Défense a signalé que ses ordinateurs avaient été attaqués par Log4Shell.

Quelle action entreprendre?

En tant qu’installateur, il n’est pas facile de savoir si l’utilitaire Log4j est utilisé dans un système logiciel car c’est souvent un élément d’un autre logiciel. Effectuer soi-même des recherches n’est donc pas évident. Cette tâche incombe principalement aux producteurs qui doivent inventorier leurs logiciels pour définir la présence. Mais c’est là que le bât blesse car la position occupée par l’utilitaire Log4j dans la chaîne logicielle est vaste. Le logiciel peut être mis en oeuvre par diverses organisations et apparaître dans plusieurs progiciels avant d’aboutir dans le produit final. En d’autres termes : il se peut qu’un service cloud indique ne pas utiliser l’utilitaire Log4j et avoir des produits sûrs mais que le logiciel de la caméra de sécurité qui fonctionne via ce cloud soit affecté. Comme l’utilitaire Log4j est présent de plusieurs manières dans les produits logiciels, la diffusion d’un patch exige la coordination du développeur de l’utilitaire Log4j, des producteurs de logiciels utilisant Log4j, des distributeurs de logiciels, des administrateurs système et des utilisateurs. Par ailleurs, en raison de la diversité des applications de Log4j, il n’existe pas de solution de colmatage prête à l’emploi. La solution nécessite une approche spécifique selon la manière dont Log4j est intégré dans un système particulier. Une mise à jour complète du système peut s’avérer utile, comme c’est le cas pour certains routeurs Cisco. Dans d’autres cas, la mise à jour vers une nouvelle version du logiciel suffit, ou la suppression manuelle du code vulnérable peut être la solution. Inutile de dire qu’il faut un certain temps avant que la solution soit déployée chez tous les utilisateurs. On avance quelques semaines à plusieurs mois pour rendre tous les logiciels à nouveau sûrs. Cependant, le comportement par le passé est une indication pour le futur et l’émergence de la faille Log4j durant plusieurs années est une réalité.

Il revient en principe aux développeurs de produits et de logiciels de vous informer de la vulnérabilité de vos systèmes. Des communications ont eu lieu ces dernières semaines de notamment Mobotix, Hikvision, Dahua et Bosch Security Systems à propos de leurs systèmes, ainsi que des grossistes comme CDVI et Aras. Pour les installateurs, il est conseillé de contacter les producteurs et/ou les vendeurs de vos marques pour vérifier si les systèmes que vous avez placés peuvent être vulnérables et connaître les mesures à entreprendre pour sécuriser l’ensemble. Mais gardez à l’esprit que des vulnérabilités sont découvertes chaque jour et qu’une surveillance étroite dans les semaines et les mois à venir n’est certainement pas une mauvaise idée.