La vulnérabilité Log4Shell (CVE-2021-44228) est décrite par de nombreux chercheurs et experts en cybersécurité comme étant la vulnérabilité zero-day la plus critique de tous les temps. Il affecte un utilitaire Java largement utilisé sous le nom de Log4j, qui existe depuis 2001 pour la journalisation et la communication d’événements, tels que les opérations système de routine et les erreurs logicielles. Ici, nous vous montrons comment protéger votre système Linux contre cela.
Comment fonctionne la vulnérabilité Log4Shell ?
À un niveau fondamental, la vulnérabilité est causée par une mauvaise validation des entrées. Cela se produit lorsque le logiciel ne valide pas correctement les données qu’il reçoit, ce qui entraîne d’éventuelles vulnérabilités, car une entrée mal validée peut être utilisée pour que le programme effectue des actions qu’il n’est pas censé faire.
Log4Shell tire spécifiquement parti des requêtes que Log4j envoie aux serveurs, en utilisant LDAP et JNDI. En tirant parti de ces requêtes, un attaquant peut exécuter du code sur n’importe quel système vulnérable, ce qui peut amener un acteur malveillant à prendre le contrôle total du système et à avoir la possibilité d’installer un rançongiciel ou de voler des données.
Qu’est-ce que Log4Shell affecte ?
Étant donné que Java est un langage de programmation extrêmement populaire, de nombreux logiciels écrits en Java qui utilisent Log4j pour leur fonctionnalité de journalisation sont affectés par cette vulnérabilité. Parmi les logiciels les plus connus et les plus couramment utilisés touchés par cette vulnérabilité figurent Apache et le jeu vidéo appelé Minecraft.
Comment savoir quels logiciels sont concernés ?
Log4Shell, comme toute autre vulnérabilité de cybersécurité, est atténuée en corrigeant le logiciel concerné. Cependant, le cas de Log4Shell est un peu plus unique, car il affecte un si large éventail de logiciels, et il peut être difficile de garder une liste de ce qui est affecté et de ce qui ne l’est pas.
Heureusement, le Centre national de cybersécurité des Pays-Bas a publié une liste complète sur GitHubqui comprend des noms de logiciels développés par différentes organisations, qui indiquent s’ils sont vulnérables à Log4Shell.
Comment analyser votre serveur Apache pour la vulnérabilité
Étant donné que cette vulnérabilité a considérablement affecté les communautés de la cybersécurité et des logiciels, il n’est pas surprenant qu’il existe des outils permettant aux administrateurs d’analyser leurs serveurs à la recherche de la vulnérabilité.
Un tel scanner est Log4j-RCE-Scannerqui vous permet de rechercher une vulnérabilité d’exécution de commande à distance sur Apache Log4j à plusieurs adresses.
Installation de Log4j-RCE-Scanner
Avant de commencer, nous devons installer ses dépendances, httpx
et curl
.
Curl peut être facilement installé sur les systèmes basés sur Ubuntu et Debian en utilisant le apt
commande:
sudo apt install curl

La même chose peut être faite sur Arch Linux en utilisant le pacman
commande:
sudo pacman -Sy curl
Et sur les installations CentOS et Fedora utilisant le yum
commande:
sudo yum install curl
L’installation de httpx peut être effectuée avec les commandes suivantes :
git clone https://github.com/projectdiscovery/httpx cd httpx/cmd/httpx && go build . sudo mv httpx /usr/local/bin/

Après avoir installé toutes les dépendances nécessaires, clonez le référentiel Log4J-RCE-Scanner :
git clone https://github.com/adilsoybali/Log4j-RCE-Scanner

Accédez au répertoire nouvellement créé :
cd Log4j-RCE-Scanner/
Enfin, ajoutez les autorisations exécutables nécessaires pour le script Bash :
chmod +x log4j-rce-scanner.sh

Utilisation de Log4j-RCE-Scanner
Après avoir installé le scanner, vous pouvez enfin passer à la partie amusante de son utilisation.
Lisez la section d’aide du script en tapant :
bash log4j-rce-scanner.sh -h

Maintenant, vous pouvez analyser votre serveur Apache pour la vulnérabilité Log4shell.
bash log4j-rce-scanner.sh -d [domain] -b [Burp collaborator]
Vous pouvez spécifier votre domaine et Burp Collaborator en utilisant le -d
et -b
drapeaux. Si votre domaine est vulnérable, les rappels DNS avec le nom de domaine vulnérable sont envoyés au Collaborateur Burp.
Alternativement, le -l
flag peut également être utilisé pour spécifier une liste de domaines.

Installation et utilisation d’un scanner basé sur Python
Si vous préférez utiliser un script Python à la place, vous pouvez utiliser le scanner log4développé par la Cybersecurity and Infrastructure Security Agency des États-Unis.
Pour l’installer :
git clone https://github.com/cisagov/log4j-scanner/
Accéder au répertoire :
cd log4j-scanner/log4-scanner/
Vous pouvez installer les dépendances requises à l’aide de Python pip3
commande:
pip3 install -r requirements.txt

Vous pouvez afficher “l’aide” fournie par le script à l’aide de la -h
drapeau:
python3 log4j-scan.py -h

L’analyse d’une seule URL est simple et peut être effectuée à l’aide du -u
drapeau:
python3 log4j-scan.py -u example.com

Vous pouvez également analyser une liste d’URL en utilisant le -l
drapeau:
python3 log4j-scan.py -l list.txt

Comment patcher Apache
Pour lutter contre cette vulnérabilité, il est extrêmement important de maintenir à jour votre configuration Apache.
La vérification de la version d’Apache peut être effectuée de plusieurs manières : en vérifiant depuis votre panneau d’administration, tel que CPanel ou WebHost Manager. Vous pouvez également vérifier la version en exécutant le httpd
commande avec le -v
drapeau:
httpd -v
Apache peut être mis à jour vers la version la plus récente et la plus sécurisée à l’aide du apt
commande sur les systèmes Debian et Ubuntu :
sudo apt update && sudo apt upgrade apache2
Le même résultat est également obtenu en utilisant le yum
commande sur CentOS :
sudo yum install httpd
Questions fréquemment posées
1. Quelles versions de Log4j sont affectées par la vulnérabilité ?
Les versions inférieures à 2.1.7.1 sont vulnérables à l’exploit. La version 2.15.0 a corrigé les éléments les plus facilement exploitables, la version 2.17.1 corrigeant une vulnérabilité d’exécution de code à distance difficile à exploiter.
2. Ai-je besoin de l’utilitaire Burp Collaborator pour recevoir des rappels DNS avec des noms de domaine vulnérables ?
Selon le développeur du scanner basé sur Bash, Burp Collaborator est utilisé avec le script lui-même pour recevoir les rappels DNS avec des noms de domaine vulnérables. Alternativement, une adresse Interact.sh peut être utilisée.
3. Ai-je besoin d’autres dépendances pour utiliser le scanner basé sur Bash ?
Pour une utilisation de base, il vous suffit d’installer httpx et Curl sur votre système en tant que dépendances. Cependant, pour déverrouiller certaines fonctionnalités, vous aurez également besoin Sous-outil de recherche, Chercheur d’actifset Amasser étre installé.