Vulnérabilité de sécurité : types et mesures correctives
11 février 2021
0 minutes de lectureLe coût moyen d’une violation de données en 2020 s’élevait à 3,86 millions de dollars, et le coût mondial de la cybercriminalité a atteint 6 000 milliards de dollars en 2021. 82 % des vulnérabilités connues se trouvent dans le code des applications, et 90 % des applications web sont vulnérables au piratage ; parmi elles, 68 % sont exposées au risque de violation de données sensibles.
Vulnérabilité, exploit et menace : quelles différences ?
Pour gérer efficacement les risques liés à la cybersécurité, il est important de comprendre la différence entre une vulnérabilité, un exploit et une menace.
Qu’est-ce qu’une vulnérabilité de sécurité ?
Une vulnérabilité de sécurité est une faille dans le code logiciel ou une mauvaise configuration système, comme Log4Shell, qui permet aux attaquants d’accéder directement et sans autorisation à un système ou à un réseau. Une fois à l’intérieur, l’attaquant peut tirer parti des autorisations et des privilèges pour compromettre les systèmes et les actifs.
Un scanner de vulnérabilités analyse votre environnement et le compare à une base de données de vulnérabilités ou à une liste de vulnérabilités connues, afin de vous aider à repérer les points faibles.
Qu’est-ce qu’une vulnérabilité logicielle ?
Une vulnérabilité logicielle est une faiblesse dans le code d’un programme qu’un attaquant peut exploiter. Les attaquants peuvent s’en servir pour accéder sans autorisation à un réseau, voler des données et compromettre des systèmes.
Qu’est-ce qu’un exploit en cybersécurité ?
Un exploit est un moyen pour les pirates d’exploiter une vulnérabilité afin de lancer une attaque. Il s’agit généralement d’un logiciel spécialement conçu ou d’une suite de commandes. Par exemple, des vers informatiques tels que CodeRed, Spida et Slammer ont exploité au fil des ans des vulnérabilités des serveurs Microsoft IIS (Internet Information Services) et MS-SQL.
Il existe également des kits d’exploitation (par exemple Rig, Magnitude et Fallout) qui peuvent être intégrés à des pages web compromises. Ces kits recherchent les vulnérabilités en continu. Dès qu’une faille est détectée, le kit tente immédiatement de déployer un exploit, par exemple en injectant un logiciel malveillant dans le système hôte.
Quelle est la différence entre un exploit et un piratage ?
Un exploit en cybersécurité consiste à manipuler des bogues ou des failles de code pour tirer parti d’un système, généralement afin d’extraire des données sensibles. Le piratage désigne l’accès non autorisé aux données.
Qu’est-ce qu’une cybermenace ?
Une menace est un événement réel ou hypothétique dans lequel un ou plusieurs exploits tirent parti d’une vulnérabilité pour lancer une attaque. Par exemple, l’exploit CodeRed visant une vulnérabilité de Microsoft IIS a été utilisé activement pour infecter plus de 300 000 cibles. Ces menaces ont entraîné d’importantes pertes financières dans le monde entier.

Seul un faible pourcentage des vulnérabilités connues sera exploité, autrement dit, utilisé pour pirater un système. Les vulnérabilités présentant le risque le plus élevé sont celles qui ont le plus de chances d’être exploitées. Elles doivent donc être traitées en priorité, comme l’illustre le schéma :
Types de vulnérabilités de sécurité
Les vulnérabilités de sécurité peuvent exister à toutes les couches, notamment au niveau de l’infrastructure, du réseau et des applications. Cette section porte sur les failles de sécurité des applications et des sites web.
Deux listes importantes recensent les faiblesses qui exposent les applications web et les sites web aux risques de cybersécurité. La première est tenue par l’
Open Web Application Security Project (OWASP), une communauté mondiale ouverte. Parmi les quelque 60 faiblesses de sécurité des applications décrites par l’OWASP, le Top 10 des vulnérabilités OWASP recense celles qui sont le plus souvent exploitées.
La deuxième liste est la CWE (Common Weakness Enumeration), une « liste de types de faiblesses logicielles et matérielles courantes, élaborée par la communauté et ayant des conséquences en matière de sécurité ». La CWE, tout comme le célèbre dictionnaire normalisé Common Vulnerabilities and
Exposures (CVE), est gérée par MITRE Corporation, une organisation à but non lucratif qui exploite des centres de recherche et développement financés par le gouvernement fédéral. La CWE-25 est une liste actualisée chaque année des 25 faiblesses logicielles les plus dangereuses.
La MITRE CWE-25 recense trois grandes catégories de faiblesses de sécurité des applications et des sites web :
1. Défenses perméables
Cette première catégorie de faiblesses comprend les failles qui peuvent permettre aux utilisateurs de contourner ou d’usurper les processus d’authentification et d’autorisation. L’authentification vérifie l’identité d’une personne qui tente d’accéder à un système, tandis que l’autorisation désigne l’ensemble des droits d’accès et d’utilisation attribués à l’utilisateur.
Voici quelques exemples de failles liées à des défenses perméables :
Chiffrement faible des mots de passe
Identifiants insuffisamment protégés
Absence d’authentification ou authentification à un seul facteur
Héritage non sécurisé des autorisations
Sessions qui n’expirent pas dans un délai raisonnable
Si des entités non autorisées accèdent à des ressources sensibles et en abusent, toutes ces vulnérabilités liées à des défenses perméables peuvent gravement compromettre la posture de sécurité de l’organisation.
Les exploits qui tirent parti des vulnérabilités liées à des défenses perméables peuvent notamment prendre les formes suivantes :
Attaques par bourrage d’identifiants
Détournement d’identifiants de session
Vol d’identifiants de connexion
Attaques de l’homme du milieu (MITM) (en substance, de l’espionnage électronique)
2. Gestion risquée des ressources
De nombreuses vulnérabilités sont liées à la gestion risquée de ressources telles que la mémoire, les fonctions et les frameworks open source. Lors de la conception et du développement d’applications web et de sites web, il est essentiel d’analyser les vulnérabilités de tous les composants tiers intégrés à l’architecture, comme les bibliothèques et les fonctions.
Les failles de cette catégorie comprennent :
Écriture ou lecture hors limites (débordement de tampon) : l’application peut être amenée à écrire ou à lire des données après la fin ou avant le début du tampon mémoire prévu.
Traversée de chemin : permet aux attaquants de créer des chemins d’accès pour consulter des fichiers situés en dehors des répertoires autorisés.
Les attaques par débordement de tampon illustrent parfaitement la façon dont les failles de gestion risquée des ressources exposent les applications web et les sites web aux risques de cybersécurité. Elles exploitent des contrôles insuffisants des tampons mémoire pour modifier le flux d’exécution et ainsi prendre le contrôle de l’application, endommager des fichiers ou exfiltrer des informations sensibles.
3. Interactions non sécurisées entre les composants
Les architectures applicatives hautement distribuées d’aujourd’hui envoient et reçoivent des données entre divers services, threads et processus. À l’exécution, les applications web et les sites web doivent appliquer une approche de confiance zéro, selon laquelle toute entrée est considérée comme suspecte tant qu’il n’a pas été activement vérifié qu’elle provient d’une source fiable et répond à l’objectif prévu.
Les faiblesses qui exposent une application web ou un site web à des interactions non sécurisées et risquées comprennent :
Cross-site scripting, ou XSS : neutralisation incorrecte des entrées contrôlées par l’utilisateur lors de la génération d’une page web. La chaîne d’événements qui aboutit à l’insertion d’un script malveillant dans une page web générée commence par l’arrivée de données non fiables dans une application web, généralement via une requête web.
Cross-site request forgery (CSRF) : vérification inadéquate du fait qu’une requête apparemment légitime et authentique a bien été envoyée intentionnellement. Ces attaques sont souvent lancées par des techniques d’ingénierie sociale, comme de faux e-mails qui incitent un utilisateur à cliquer sur un lien ou à envoyer une requête falsifiée à un site ou un serveur auquel il s’est déjà authentifié.
En général, les applications web et les sites web qui n’appliquent pas de contrôles de sécurité fondés sur la confiance zéro sont vulnérables aux attaques par porte dérobée, aux attaques par script, aux vers, aux chevaux de Troie et à d’autres exploits qui déploient du code malveillant pour semer le chaos dans l’infrastructure, les données et les systèmes.
Quelle est la vulnérabilité la plus courante ?
Les listes OWASP Top 10 et CWE-25 désignent toutes deux les failles par injection comme les vulnérabilités les plus courantes. Si l’injection de code peut prendre de nombreuses formes (SQL, NoSQL, OS, LDAP), elle consiste toujours à envoyer des données malveillantes à un interpréteur via une commande ou une requête. L’interpréteur est alors amené à effectuer des actions non autorisées, telles que l’exécution de commandes ou l’accès à des données.
Comment détecter et corriger les vulnérabilités de sécurité
Les vulnérabilités de sécurité sont détectées et corrigées dans le cadre de programmes formels de gestion des vulnérabilités. La gestion des vulnérabilités repose sur des bonnes pratiques et des procédures transversales permettant d’identifier, de hiérarchiser et de corriger les vulnérabilités rapidement et à grande échelle.
L’évaluation des vulnérabilités de sécurité est un élément important du programme de gestion des vulnérabilités. Elle vise à évaluer l’efficacité des processus et des procédures de gestion des vulnérabilités de l’organisation au moyen de tests d’intrusion et d’autres tests automatisés d’évaluation des vulnérabilités.

La gestion et l’évaluation des vulnérabilités de sécurité doivent faire partie intégrante d’un cycle de développement logiciel sécurisé (Secure SDLC), qui teste le code, les bibliothèques, les images de conteneurs et les autres composants à la recherche de faiblesses et de vulnérabilités à toutes les étapes du cycle de vie du produit.
Outils de correction des vulnérabilités de sécurité tout au long du SDLC
Les outils automatisés qui aident les équipes DevSecOps à mettre en œuvre un Secure SDLC comprennent :
Outils d’analyse de la composition logicielle (SCA) : ils détectent et surveillent tous les composants, signalent les problèmes et aident à les corriger.
Outils d’analyse statique de la sécurité des applications (SAST) : ils réalisent des évaluations des vulnérabilités en boîte blanche sur du code non compilé.
Outils d’analyse dynamique de la sécurité des applications (DAST) : ils réalisent des évaluations des vulnérabilités en boîte noire sur du code exécutable.
Scanners de vulnérabilités open source : ils détectent les vulnérabilités dans les bibliothèques de code pour accélérer la réponse et la correction, tout en garantissant la conformité aux exigences des licences open source.
De nombreux outils de gestion des vulnérabilités s’appuient sur une base de données de vulnérabilités connues pour effectuer des analyses et des évaluations. La base de données des vulnérabilités Snyk Intel, par exemple, s’appuie sur des sources publiques et propriétaires de vulnérabilités et de renseignement sur les menaces, qu’elle enrichit pour proposer le scanner de vulnérabilités open source le plus complet et le plus efficace du secteur.
Lancez-vous dans les compétitions Capture The Flag
Apprenez à résoudre des défis Capture The Flag en regardant à la demande notre atelier virtuel d’initiation.



