L’exploit Log4j, appelé Log4Shell ou CVE-2021-44228 par certains, a fait l’actualité ces dernières semaines. C’est mauvais! Il y en a partout! Mais qu’est-ce que c’est, vraiment ? Comment s’est-il retrouvé sur des millions de serveurs ? Et comment se protéger des conséquences de cette faille de sécurité ?
Ce ne sont pas des données, c’est du code !
Au cœur du problème avec Log4j se trouve une confusion entre des données simples et des commandes exécutables. Les codeurs malveillants exploitent ce genre de confusion pratiquement depuis toujours.
À l’époque des virus informatiques basés sur DOS, les programmes sur disque étaient simplement copiés directement dans la mémoire et lancés. Les premiers virus se sont ajoutés sous la forme d’un bloc de données à la fin du programme hôte. En modifiant un ou deux octets au début du programme, ils ont obligé DOS à exécuter le code du virus avant de lancer le programme. Et le virus s’est ajouté à plus de programmes au cours de sa brève exécution.
Les programmes Windows, appelés programmes exécutables portables (PE), sont beaucoup plus sophistiqués. Divers blocs d’informations se chargent dans la zone de mémoire appropriée, et ces blocs sont marqués comme du code ou des données. Malgré cela, des malfaiteurs ont géré des attaques qui ont forcé l’exécution de ce qui était censé être des données. Les versions modernes de Windows utilisent Data Execution Prevention (DEP) et Address Space Layout Randomization (ASLR) pour déjouer de telles attaques.
Java et Open Source
Log4j est écrit en Java, ce qui signifie qu’il n’a pas intrinsèquement de protections comme DEP et ASLR. D’un autre côté, c’est un package open source. Cela signifie que n’importe qui (enfin, n’importe qui ayant des compétences en codage) peut lire le code source, repérer les bogues et contribuer à l’amélioration du package.
La théorie est que le code open source est plus sûr car il a été examiné par de nombreux yeux et parce qu’il n’y a aucune possibilité qu’une porte dérobée ou une autre fonctionnalité indésirable se cache dans le code. Lorsque la bibliothèque impliquée est très sensible, impliquant peut-être un cryptage, elle fait vraiment l’objet d’un examen minutieux. Mais apparemment, ce simple module d’écriture de journaux n’a pas reçu suffisamment d’attention.
Pourquoi est-ce partout ?
Lorsqu’il y a une faille de sécurité dans un système d’exploitation ou un navigateur populaire, cela affecte généralement uniquement les utilisateurs de ce système d’exploitation ou de ce navigateur. L’éditeur élabore une nouvelle version qui corrige le trou, lance une mise à jour et tout va bien.
Log4j est différent. Ce n’est pas un système d’exploitation, ni un navigateur, ni même un programme. C’est plutôt ce que les codeurs appellent une bibliothèque, un package ou un module de code. Il sert un seul objectif : tenir un journal de ce qui se passe sur un serveur.
Les personnes qui écrivent du code veulent se concentrer sur ce qui rend leur programme unique. Ils ne veulent pas réinventer la roue. Ainsi, ils s’appuient sur des bibliothèques infinies de code existant, telles que Log4j. Le module Log4j vient d’Apache, qui est le logiciel de serveur Web le plus utilisé. Et c’est pourquoi on le trouve sur des millions de serveurs.
Qui est la victime ici ?
Voici un point important. Les attaques utilisant la vulnérabilité dans Log4j sont ne pas vous est destiné. Un pirate qui l’oblige à enregistrer une ligne de texte qui devient une commande vise à installer des logiciels malveillants sur le serveur. Microsoft rapporte que des pirates parrainés par l’État l’utilisent, susceptibles de pousser les ransomwares. Apple, Cloudflare, Twitter, Valve et d’autres grandes entreprises ont été touchés.
Vous avez peut-être vu (ou parcouru) une vidéo YouTube dans laquelle un chercheur en sécurité a démontré la prise de contrôle d’un serveur Minecraft en n’utilisant rien de plus qu’un chat en jeu. Cela ne signifie pas que cela a affecté les joueurs impliqués dans le chat. Cela signifie que le chercheur a forcé le serveur pour exécuter du code arbitraire.
Recommandé par nos rédacteurs
Mais ne vous détendez pas tout de suite. Un pirate qui peut exécuter du code arbitraire sur le serveur affecté dispose d’options illimitées. Bien sûr, une attaque de ransomware contre le propriétaire du serveur pourrait être très lucrative, tout comme la cooptation du serveur pour faire du minage de bitcoins. Mais il est également possible que le pirate informatique subvertisse le serveur, l’amenant à infliger des logiciels malveillants aux visiteurs des sites Web hébergés sur ce serveur.
Que puis-je faire?
L’exploit Log4j n’est qu’une des nombreuses failles de sécurité exploitées par de mauvais acteurs. Le catalogue de vulnérabilités exploitées du CISA en répertorie 20 découvertes rien qu’en décembre. En y regardant de plus près, vous verrez que certains sont déjà corrigés, mais d’autres ont un correctif qui n’est pas dû avant six mois ou plus. Bien sûr, peu auront l’impact de l’exploit Log4j.
Quant à la protection contre Log4j côté serveur, c’est ridiculement simple. Il existe un paramètre qui contrôle si le système de journalisation peut interpréter les données en tant que code. Éteindre cet interrupteur fait le travail. Naturellement, Apache a publié une mise à jour du module de code, mais certains chercheurs signalent que le seul changement significatif dans la mise à jour est que ce commutateur est désactivé par défaut.
Comme indiqué, Log4j est un code conçu pour les serveurs, et l’attaque d’exploit affecte les serveurs. Néanmoins, vous pouvez être indirectement affecté si un pirate informatique l’utilise pour arrêter un serveur important pour vous, ou essaie d’utiliser le serveur pour des téléchargements intempestifs ou d’autres attaques de logiciels malveillants.
Il n’y a rien vous pouvez faire pour éviter l’impact d’un retrait de serveur, mais vous pouvez protégez-vous contre ces attaques secondaires en installant un puissant utilitaire antivirus et en le mettant à jour. Faites votre part en restant attentif aux fraudes par hameçonnage, en utilisant un gestionnaire de mots de passe et en exécutant votre trafic Internet via un réseau privé virtuel ou VPN. Garder vos propres données, appareils et connexions sécurisés signifie qu’il est peu probable que vous soyez affecté par les retombées d’une attaque d’exploitation Log4j.
Vous aimez ce que vous lisez ?
S’inscrire pour Veille de sécurité newsletter pour nos meilleures histoires de confidentialité et de sécurité livrées directement dans votre boîte de réception.
Cette newsletter peut contenir de la publicité, des offres ou des liens d’affiliation. L’inscription à une newsletter indique votre consentement à nos conditions d’utilisation et à notre politique de confidentialité. Vous pouvez vous désinscrire des newsletters à tout moment.