Comment fonctionne Log4Shell ?
Mais tout d'abord, il est important de comprendre le problème. Le fonctionnement est le suivant : si un attaquant peut obtenir une chaîne d'attaque spécifique enregistrée par log4j, cette chaîne déclenchera une connexion de log4j à un hôte contrôlé par l'attaquant, et téléchargera un morceau de code fourni par l'attaquant et l'exécutera. Quels sont donc les éléments enregistrés ? Beaucoup de choses, en fait ! Il peut s'agir d'un nom d'utilisateur, d'un en-tête de courrier électronique, d'un cookie de site web, bref, de tout ce qui peut être enregistré en cours de route. Et pour compliquer les choses, certains éléments sont parfois enregistrés à une date ultérieure, ou seulement après un certain nombre d'événements. Par exemple, certains mécanismes de journalisation peuvent n'enregistrer un échec de connexion qu'après dix tentatives ou plus. Il est donc difficile de tester tous les vecteurs d'injection possibles. Il est tout à fait possible que tous vos serveurs exposés à l'extérieur ne soient pas vulnérables, mais qu'un serveur d'application interne le soit. Le fait est qu'un attaquant peut diffuser les chaînes de caractères en espérant qu'il trouvera des composants vulnérables à un moment donné. À l'heure où nous écrivons ces lignes, les produits vulnérables comprennent de nombreuses solutions courantes : Jira, Confluence, Splunk, Elastic, VMWare Center, et bien d'autres. Certains sont même des produits de sécurité !
Heureusement, le NCSC néerlandais suit les logiciels vulnérables connus. Il fournit également des IOC et des mesures d'atténuation. Au lieu de les fournir ici, nous allons rediriger tout le monde vers leur dépôt.