Crédit :Pixabay/CC0 Domaine public
Log4Shell, une vulnérabilité Internet qui affecte des millions d'ordinateurs, implique un logiciel obscur mais presque omniprésent, Log4j. Le logiciel est utilisé pour enregistrer toutes sortes d'activités qui se déroulent sous le capot dans une large gamme de systèmes informatiques.
Jen Easterly, directrice de la U.S. Cybersecurity &Infrastructure Security Agency, a qualifié Log4Shell de vulnérabilité la plus grave qu'elle ait vue dans sa carrière. Il y a déjà eu des centaines de milliers, voire des millions, de tentatives d'exploitation de cette vulnérabilité.
Alors, qu'est-ce que cette humble infrastructure Internet, comment les pirates peuvent-ils l'exploiter et quel genre de chaos pourrait s'ensuivre ?
Que fait Log4j ?
Log4j enregistre les événements (erreurs et opérations système de routine) et communique des messages de diagnostic à leur sujet aux administrateurs système et aux utilisateurs. Il s'agit d'un logiciel open source fourni par Apache Software Foundation.
Un exemple courant de Log4j au travail est lorsque vous tapez ou cliquez sur un mauvais lien Web et obtenez un message d'erreur 404. Le serveur Web exécutant le domaine du lien Web auquel vous avez essayé d'accéder vous indique qu'il n'existe pas de page Web de ce type. Il enregistre également cet événement dans un journal pour les administrateurs système du serveur à l'aide de Log4j.
Des messages de diagnostic similaires sont utilisés dans toutes les applications logicielles. Par exemple, dans le jeu en ligne Minecraft, Log4j est utilisé par le serveur pour consigner l'activité comme la mémoire totale utilisée et les commandes utilisateur saisies dans la console.
Comment fonctionne Log4Shell ?
Log4Shell fonctionne en abusant d'une fonctionnalité de Log4j qui permet aux utilisateurs de spécifier un code personnalisé pour formater un message de journal. Cette fonctionnalité permet à Log4j, par exemple, de consigner non seulement le nom d'utilisateur associé à chaque tentative de connexion au serveur, mais également le vrai nom de la personne, si un serveur séparé contient un répertoire reliant les noms d'utilisateur et les vrais noms. Pour ce faire, le serveur Log4j doit communiquer avec le serveur détenant les vrais noms.
Malheureusement, ce type de code peut être utilisé pour plus que le simple formatage des messages de journal. Log4j permet aux serveurs tiers de soumettre un code logiciel capable d'effectuer toutes sortes d'actions sur l'ordinateur ciblé. Cela ouvre la porte à des activités néfastes telles que le vol d'informations sensibles, la prise de contrôle du système ciblé et le transfert de contenu malveillant à d'autres utilisateurs communiquant avec le serveur concerné.
Il est relativement simple d'exploiter Log4Shell. J'ai pu reproduire le problème dans ma copie de Ghidra, un cadre de rétro-ingénierie pour les chercheurs en sécurité, en quelques minutes seulement. Il y a une barre très basse pour utiliser cet exploit, ce qui signifie qu'un plus grand nombre de personnes ayant des intentions malveillantes peuvent l'utiliser.
Log4j est partout
L'une des principales préoccupations concernant Log4Shell est la position de Log4j dans l'écosystème logiciel. La journalisation est une fonctionnalité fondamentale de la plupart des logiciels, ce qui rend Log4j très répandu. In addition to popular games like Minecraft, it's used in cloud services like Apple iCloud and Amazon Web Services, as well as a wide range of programs from software development tools to security tools.
This means hackers have a large menu of targets to choose from:home users, service providers, source code developers and even security researchers. So while big companies like Amazon can quickly patch their web services to prevent hackers from exploiting them, there are many more organizations that will take longer to patch their systems, and some that might not even know they need to.
The damage that can be done
Hackers are scanning through the internet to find vulnerable servers and setting up machines that can deliver malicious payloads. To carry out an attack, they query services (for example, web servers) and try to trigger a log message (for example, a 404 error). The query includes maliciously crafted text, which Log4j processes as instructions.
These instructions can create a reverse shell, which allows the attacking server to remotely control the targeted server, or they can make the target server part of a botnet. Botnets use multiple hijacked computers to carry out coordinated actions on behalf of the hackers.
A large number of hackers are already trying to abuse Log4Shell. These range from ransomware gangs locking down minecraft servers to hacker groups trying to mine bitcoin and hackers associated with China and North Korea trying to gain access to sensitive information from their geopolitical rivals. The Belgian ministry of defense reported that its computers were being attacked using Log4Shell.
Although the vulnerability first came to widespread attention on Dec. 10, 2021, people are still identifying new ways to cause harm through this mechanism.
Stopping the bleeding
It is hard to know whether Log4j is being used in any given software system because it is often bundled as part of other software. This requires system administrators to inventory their software to identify its presence. If some people don't even know they have a problem, it's that much harder to eradicate the vulnerability.
Another consequence of Log4j's diverse uses is there is no one-size-fits-all solution to patching it. Depending on how Log4j was incorporated in a given system, the fix will require different approaches. It could require a wholesale system update, as done for some Cisco routers, or updating to a new version of software, as done in Minecraft, or removing the vulnerable code manually for those who can't update the software.
Log4Shell is part of the software supply chain. Like physical objects people purchase, software travels through different organizations and software packages before it ends up in a final product. When something goes wrong, rather than going through a recall process, software is generally "patched," meaning fixed in place.
However, given that Log4j is present in various ways in software products, propagating a fix requires coordination from Log4j developers, developers of software that use Log4j, software distributors, system operators and users. Usually, this introduces a delay between the fix being available in Log4j code and people's computers actually closing the door on the vulnerability.
Some estimates for time-to-repair in software generally range from weeks to months. However, if past behavior is indicative of future performance, it is likely the Log4j vulnerability will crop up for years to come.
As a user, you are probably wondering what can you do about all this. Unfortunately, it is hard to know whether a software product you are using includes Log4j and whether it is using vulnerable versions of the software. However, you can help by heeding the common refrain from computer security experts:Make sure all of your software is up to date.