Énumération des répertoires par erreurs. CVSS3.1 et remédiation
Considérons ce scénario. Si je navigue vers https://www.example.com/existentdirectory
l'application Web, cette erreur indique que la liste des répertoires est refusée.
Si je navigue vers https://www.example.com/nonexistentdirectory
l'application Web, cette erreur s'affiche "Le répertoire de fichiers est introuvable".
Pour moi, cela représenterait une chance pour l'attaquant d'énumérer les répertoires et d'obtenir des informations sur la cible.
J'attribuerais le vecteur CVSS3.1 suivant:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Mais qu'en est-il de la partie correction? Est-ce vraiment nécessaire? Serait-il contre-productif d'utiliser une erreur générique pour les deux réponses?
Réponses
Il est difficile de déterminer un score CVSS correct car l'arborescence interne n'est pas exactement ce que nous pouvons appeler un «secret».
Il faut donc discuter de l'impact sur la confidentialité.
Obtenir des informations sur la cible facilite les attaques ultérieures, mais ce n'est pas une attaque.
Cette différence est parfois matérialisée par le concept de "non-conformité" qui est différent de "vulnérabilité".
La correction pour cet exemple spécifique consiste souvent à capturer et à consigner chaque erreur (vous êtes donc averti en cas d'erreur 500 et d'autres erreurs importantes) et d'afficher un message d'erreur générique avec un code 200 OK au navigateur.
De cette façon, vous pouvez également vous débarrasser de nombreux scanners Web