
L'objectif est de trier les attaques bien connues et d'apprendre comment les équipes de sécurité répondent rapidement.
Pour ce laboratoire, l'objectif était d'analyser une autre vulnérabilité réelle bien connue, Log4Shell, l'une des vulnérabilités les plus exploitées ces dernières années en raison de la fréquence à laquelle la bibliothèque concernée était utilisée dans les logiciels d'entreprise.
Je suis allé sur la National Vulnerability Database et j'ai recherché le CVE :
https://nvd.nist.gov/vuln/search#/nvd/home?resultType=records
J'ai recherché CVE-2021-44228 et j'ai ouvert la page de résultats.
Après avoir lu la description, j'ai répondu à quelques questions de base pour comprendre ce qui est réellement en danger :
J'ai trouvé le score CVSS et la chaîne de vecteurs indiqués sur la page :
J'ai parcouru la chaîne de vecteurs morceau par morceau pour voir ce que chaque partie signifiait réellement :
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
C'est à peu près aussi grave qu'une chaîne de vecteurs peut l'être : aucun privilège requis, aucune interaction de l'utilisateur, accessible sur le réseau, et elle peut même affecter des éléments en dehors du composant vulnérable lui-même (Périmètre : modifié). Cette combinaison explique en partie pourquoi Log4Shell a été traitée comme une menace aussi urgente et généralisée lors de sa divulgation.
J'ai consulté la section Weakness Enumeration sur la page NVD de ce CVE.
La CWE répertoriée est CWE-917 : Neutralisation inappropriée des éléments spéciaux utilisés dans une instruction de langage d'expression. En termes simples, cela signifie que le logiciel prend une entrée et l'évalue dans le cadre d'une expression sans la vérifier correctement au préalable, ce qui a permis aux attaquants d'insérer des requêtes JNDI malveillantes dans des messages de journal normaux.
J'ai réfléchi à la manière dont je traiterais ce risque comme plus élevé ou plus faible dans deux scénarios différents.
Scénario 1 : Le logiciel vulnérable est en ligne et accessible. Risque plus élevé. Cette vulnérabilité permet à un attaquant d'accéder aux instructions EL (Expression Language) et de les modifier, ce qui affecte directement la confidentialité et l'intégrité.
Scénario 2 : Le logiciel vulnérable est installé sur une machine éteinte et inaccessible. Risque plus faible. Si le logiciel vulnérable est totalement inaccessible, la confidentialité et l'intégrité restent intactes, car l'attaquant n'a aucun moyen d'interagir avec lui.
Parmi les CVE que j'ai analysés jusqu'à présent, celui-ci s'est démarqué par le peu qu'il faut à un attaquant pour l'exploiter : aucun privilège, aucune interaction de l'utilisateur, seulement un accès réseau, associé au fait que la vulnérabilité pouvait affecter des systèmes au-delà du composant lui-même. C'est un bon exemple de la raison pour laquelle Log4Shell a provoqué une telle panique généralisée dans l'industrie lors de sa publication.