Scanner de vulnérabilités : insuffisants pour évaluer sa sécurité, faut-il passer au pentest ?

NancyLe 11 mai 2023

Avec le pentest, le scanner de vulnérabilités est considéré comme un outil incontournable dans le cadre de la stratégie de cybersécurité. Les scans de vulnérabilités et les pentests sont couramment pratiqués dans divers types d’organisations. Quelle différence de bénéfices peut-on tirer en réalisant l'un au détriment de l'autre? Quelle est la formule la plus adaptée? Eléments de réponse.

Qu’est-ce qu’un scanner de vulnérabilités ?

Les scanners de vulnérabilité effectuent une analyse automatisée des faiblesses exploitables au sein des applications, des terminaux et de l'infrastructure informatique d'une organisation.

Objectif : identifier les failles de sécurité potentielles dans un réseau donné à l’aide d’outils automatiques, les corriger éventuellement, évitant ainsi qu’elles soient exploitées par un attaquant. La réalisation de ces analyses de vulnérabilité est une exigence courante de la conformité réglementaire et peut contribuer à minimiser le risque d’attaques informatiques au sein d'une organisation. Par conséquent, elle devrait être un élément essentiel du programme de gestion des menaces d'une organisation. Mais est-ce la plus efficace, surtout lorsqu’on la compare aux pentests ? Rien n’est moins sûr…

Qu’est-ce qu’un test d’intrusion ?

Le test d'intrusion, ou pentest en anglais, est un audit ayant pour but de vérifier la sécurité d'une ressource (plage d'adresses IP, site ou application web, mobile, réseau interne...) du point de vue d'un attaquant. Il s'agit de vérifier concrètement l'efficacité des mesures de protection mises en place.

En savoir plus : https://www.algosecure.fr/audit/audit-pentest

Pentest VS Scanner de vulnérabilités

Tentons un face à face entre le pentest et le scanner de vulnérabilités, l’idée étant de bien comprendre les différences entre les deux approches.

Avantages et inconvénients des scanners de vulnérabilités

D’emblée, signalons que ce type de test est conduit de manière automatisée par un outil, justement appelé scanner.

L’objectif est d’identifier les failles de sécurité pour, en fin de test, générer un rapport listant les vulnérabilités ainsi que leur niveau de sévérité… La logique voudrait que vous priorisiez les vulnérabilités critiques en premier. Seul bémol, comme il est automatisé, un scan de vulnérabilités va recenser l’ensemble des failles, ce qui peut déboucher sur des rapports composés de nombreuses pages et malheureusement souvent pas très pertinents. Le scan de vulnérabilité peut générer des faux-positifs, c’est-à-dire, des failles inexistantes.

Un temps non négligeable est nécessaire de la part des équipes techniques afin de lire et vérifier les vulnérabilités remontées par le scanner. Notamment sur la note attribuée aux vulnérabilités trouvées. Le tweet suivant montre un résultat du scanner Nessus par rapport à la configuration SSL/TLS :

Exemple d'une vulnérabilité remontée par le scanner Nessus

Il montre un niveau de criticité de l’ensemble des trois vulnérabilités haut voir critique, mais ne prend pas en compte la faisabilité technique qui baisse drastiquement le niveau de criticité de ces vulnérabilités. C’est sur ces éléments que les analystes vont passer le plus de temps pour qualifier chacun des défauts.

Autre différence, un scan de vulnérabilités se contente de tester les failles qu’il a dans sa base de données. De plus, il n’est pas en mesure de chaîner plusieurs éléments vulnérables de criticité mineure ou modérée pour amener à découvrir une faille ayant un impact plus important.

Le schéma ci-dessous présente les résultats de deux vulnérabilités découvertes sur un serveur Windows. Ce serveur Windows expose un serveur FTP qui stocke des fichiers et une application web:

Un scanner de vulnérabilités ne peut pas combiner plusieurs failles pour les exploiter

Le premier scan a permis de remonter que le serveur FTP autorise les connexions anonymes c'est-à-dire un accès au serveur FTP sans avoir d’identifiant de connexion. Ensuite, le second scan en mode authentifié sur l’application web permet de découvrir une injection de commande, c'est-à-dire de l'exécution de commande système arbitraire sur ce serveur. La seconde partie de l’article explore le même exemple mais dans le contexte d’un test d’intrusion.

Le scan de vulnérabilité est une solution qui se veut surfacique et permet de prendre connaissance du niveau de sécurité des éléments qui composent le périmètre. Il permettra de détecter les vulnérabilités qui sont connues du grand public.

Les tests d’intrusion face au scan de vulnérabilités

Première différence avec le scan de vulnérabilités : le test d’intrusion comprend une partie automatisé mineure, il est mené par un expert en sécurité informatique nommé « pentester ». L’objectif est d’exploiter les failles comme le ferait un attaquant dans la nature en essayant de se mettre en conditions réelles.

La première section des tests sera automatisée, mais cela ne concerne que la phase de reconnaissance dans le but de chercher le type de technologies utilisées, les versions et les tests de bases. Une fois cette phase réalisée, un travail manuel et minutieux est mené pour comprendre le fonctionnement normal de l’application.

Une manière simple et efficace connue des pentesters consiste à trouver un moyen de contourner le fonctionnement classique d’une application. On pourrait éventuellement s’aider des vulnérabilités remontées par les scans réalisés en amont. Ces dernières peuvent bien entendu être combinées pour accéder à de nouvelle failles dont l’exploitabilité pourrait être plus complexe.

Il faut également prendre en compte la notion de faille logique qui n’est pas une faille de sécurité technique directement. Elle consiste à détourner le comportement d’une action que réalise une application. Par exemple, avec une application de e-commerce qui autorise l’utilisation de coupon de réduction ; une faille logique serait de pouvoir utiliser n’importe quelle valeur pour appliquer une réduction et ainsi obtenir un tarif réduit sur chacun des achats réalisés.

En reprenant l’exemple du scan de vulnérabilités précédent, nous avions un serveur FTP accessible en anonyme. Parmi les différents fichiers présents, des identifiants de connexion sont stockés en clair sont accessibles et permettent de se connecter à l’application web. A partir de l’accès à l’application grâce aux identifiants, l’injection de commande arbitraire est possible et permet d'exécuter des commandes sur le système d’exploitation et ce en tant qu’un compte de service, compte ayant des privilèges d’administrateur local sur le serveur Windows.

Exemple d'un processus d'élévation de privilèges par un attaquant

Ce serveur fait partie d’un Active Directory et un compte utilisateur appartenant au groupe “administrateurs du domaine” est actuellement connecté sur celui-ci. Il est donc possible de prendre le contrôle de ce compte administrateur de domaine en s’injectant dans le processus utilisé par ce dernier, ou en dupliquant le contexte de sécurité lié à ce processus de l’utilisateur administrateur de domaine. Un attaquant est donc en mesure d’élever ses privilèges au rang d’administrateur du domaine en partant d’un contexte de pentest en boîte noire, qui nous le rappelons est l’accès FTP disponible en connexion anonyme.

Une autre différence avec le scan de vulnérabilité est que le pentest prend plus de temps qu’un simple scan, et le coût en sera plus conséquent. Cependant, les résultats apportés par ce test d’intrusion seront plus concrets et auront été testés. Le rapport délivré à l’issu du pentest sera accompagné de recommandations plus spécifiques aux éléments qui ont été audités et prendra en compte le contexte du test d’intrusion afin d’évaluer plus justement les criticités des vulnérabilités.

Chez Algosecure, le test d’intrusion est mené par 2 pentesters afin de maximiser son efficience. Le grand avantage du pentest par rapport au scan de vulnérabilités est qu’il aboutit à une exploitation des failles trouvées. Cela permet, entre autres, de déterminer leur impact réel. En outre, les approches menées par les pentesteurs sont réalistes, car elles miment les pratiques actuelles et/ou les scenarii des attaquants malveillants dans des conditions réelles.

Contrairement au scan de vulnérabilités, un pentest est mené dans tous les cas par des spécialistes en cybersécurité, capables d’analyser le contexte spécifique de l’organisation. Cela permet de fixer des priorités à tester en ciblant les éléments les plus importants pour le client.

Conclusion

En résumé, le scan de vulnérabilité est utile dans le cadre d’une première approche pour valider la sécurité de son périmètre externe/interne ou dans le cas où le périmètre est important. Il permet de faire une vérification surfacique en continu du niveau de sécurité.

Le pentest permet d’avoir des résultats plus concrets avec des vulnérabilités qui auront été testées et vérifiées avec des scénarii similaires à des attaques.

En conclusion, le scan de vulnérabilités est une première approche et une bonne pratique mais non suffisante pour éprouver la sécurité du périmètre donné.

Scan de vulnérabilité Pentest
Test Continu Ponctuel
Remontées Nombreuses vulnérabilités avec de faux-positifs à vérifier Vulnérabilités avérées
Remédiations proposées - Oui
Prise en compte d’un contexte réel - Oui
Détection des vulnérabilités Vérifié avec une base de données Vérifié avec une base de données + expérience pentester + nouvelles vulnérabilités
Sévérité combinée des vulnérabilités Aucune, prise en compte unitaire Détection des vulnérabilités associées pouvant mener à des failles plus importantes
Détection des failles logiques Non Oui

Vous avez activé l'option "Do Not Track" dans votre navigateur, nous respectons ce choix et ne suivons pas votre visite.