Avec l’augmentation du risque cyber, il devient de plus en plus évident de réaliser un pentest (test d’intrusion) pour rassurer clients, partenaires et investisseurs.
De plus, pour les entreprises engagées dans un processus de certification ou une démarche ISO 27001, SOC2, HDS, PCI-DSS, etc., un pentest est un impératif. Et pour les autres, une condition sine qua non pour satisfaire les demandes de rapport de pentest de leurs clients et prospects.
L’objectif de cet article est d’expliciter – de la façon la plus exhaustive possible – le principe des pentests, les objectifs, la méthodologie, les types de tests, les différentes approches (boite noire, grise ou blanche), etc.
En quoi consiste un pentest (test d’intrusion) ?
Définition et objectifs d’un pentest
Un pentest consiste en une évaluation offensive de la sécurité d’un système d’information (applications web et mobile, infrastructures, réseaux, objets connectés, etc.) ou du facteur humain (via ingénierie sociale), et ce avec un double objectif.
D’un côté, les tests d’intrusion permettent d’identifier les vecteurs d’attaque, les vulnérabilités et les défauts de contrôle ou de configuration pouvant compromettre la confidentialité, l’intégrité et la disponibilité des informations et des données.
De l’autre, ils s’inscrivent dans une logique de renforcement de la sécurité d’un système cible via une proposition de correctifs et de recommandations concrètes pour refermer des brèches ou réduire l’impact de l’exploitation des failles et faiblesses identifiées.
Pour ce faire, un pentest est réalisé par un expert en sécurité offensive appelé « pentester ». Souvent plusieurs sur un même projet, en fonction du scope du pentest et des cibles, les pentesters font appel à leurs compétences, leur expertise et leur imagination pour identifier les faiblesses spécifiques, les vulnérabilités et les effets de bords d’une vulnérabilité technique, logique ou humaine.
En outre, la méthodologie d’un pentest repose sur des normes, guides et standards de sécurité tels que l’OWASP (Open Web Application Security Project) ou PTES (Penetration Testing Execution Standard) qui impliquent une analyse active, dynamique et statique d’un système cible. En effet, les pentesters s’appuient sur une diversité de techniques manuelles et d’outils automatisés afin de détecter toute vulnérabilité potentielle.
Enfin, lors d’un pentest sur tous types de cibles, on considère généralement 3 approches : des tests en boite noire, grise ou blanche. Ces approches ou « conditions de tests » correspondent à différents niveaux d’informations fournis aux pentesters pour réaliser un audit sur une cible spécifique.
Pentests et scanners de vulnérabilités : quelles différences et spécificités ?
Les pentests et les tests de vulnérabilités se distinguent par leurs objectifs respectifs. Les tests de vulnérabilités reposent sur l’utilisation de scanners automatiques, ce qui permet une identification rapide des failles courantes. En revanche, un pentest est intrinsèquement plus complet et ancré dans la réalité des cyberattaques.
En effet, un pentest inclut la recherche de failles logiques, telles que les problèmes de droits (qui représentent la majeure partie des vulnérabilités exploitées par des attaquants) et qui ne sont pas détectables par des outils automatiques. De plus, une phase d’exploitation manuelle des vulnérabilités est réalisée, offrant aux pentesters la possibilité de mesurer les impacts concrets d’une faille dans l’environnement testé et d’identifier d’éventuels effets de bords.
Cependant, il est important de noter qu’un scanner de vulnérabilités présente l’avantage du coût et de la facilité de déploiement.
Pour plus d’informations sur les différences et spécificités (avantages et inconvénients) entre pentests et scanners de vulnérabilités, nous vous renvoyons vers notre article : qu’apporte un pentest vs un scanner de vulnérabilités ?
Pentest et bug bounty : quelle approche choisir pour vos tests sécurité ?
Un pentest permet de mettre à l’épreuve la sécurité de tout système informatique en externalisant les tests à une entreprise spécialisée en sécurité offensive. Les plateformes de bug bounty répondent au même objectif. En revanche, les tests sont réalisés par des bug hunters indépendants qui s’inscrivent sur une plateforme en ligne.
Malgré leurs spécificités, ces 2 approches, souvent opposées, coexistent et sont, dans la pratique, assez complémentaires car elles répondent à des niveaux de maturité différents.
Durée et coût des tests de sécurité, méthodologie, gestion des vulnérabilités, conseil avant-vente, suivi post audit de sécurité, [etc.] nous avons listé tous les critères à prendre à compte dans votre réflexion pour choisir ou allier bug bounty et/ou pentest pour réaliser vos tests de sécurité, dans cet article : Pentest ou bug bounty, quelle approche choisir pour vos tests de sécurité ?
Quels sont les différents types de pentest ?
Pentest d’application web
Un pentest d’application web consiste à rechercher les vulnérabilités applicatives ainsi que les failles liées à la configuration des infrastructures hébergeant les services (serveurs, environnements cloud).
Sur les serveurs ou environnements cloud, il est question notamment de services ouverts et mal sécurisés, de logiciels non à jour, d’erreurs de configuration ou d’éléments de sécurité qui peuvent être contournés.
Côté applicatif, il s’agit, dans la majeure partie des cas, des vulnérabilités répertoriées par l’OWASP (dont les failles du top 10 : contrôles d’accès défaillants, injections, défaut de chiffrement, etc.), des failles logiques (souvent des problèmes de droits : IDOR et autres), ainsi que celles relatives aux technologies utilisées par les développeurs.
Ci-dessous des exemples de failles découvertes couramment lors de pentests d’applications web :
- Contrôles d’accès défaillants
- Défaillances cryptographiques
- Failles d’injections (XSS, SQL, SSTI, etc.)
- Conception non sécurisée
- Mauvaise configuration de sécurité
- Composants vulnérables et obsolètes
- Problèmes d’identification et d’authentification
- Manque d’intégrité des données et du logiciel
- Manque de logging et de monitoring
- Vulnérabilités SSRF (Server-Side Request Forgery) – Falsification de requête côté serveur
Par ailleurs, tous types de plateformes et de technologies peuvent être testées.
Pour plus d’informations sur les tests d’intrusion web, vous pouvez consulter notre article dédié. Vous y trouverez des informations plus détaillées sur le périmètre des tests ainsi que des use cases de tests d’intrusion en boite noire, grise et blanche sur diverses cibles : Test d’intrusion web : objectifs, méthodologie, tests en boite noire, grise et blanche.
Et si vous souhaitez en savoir plus sur les vulnérabilités et attaques courantes des applications web, nous vous renvoyons vers notre article : Comment renforcer la sécurité de vos applications web pour contrer les attaques les plus courantes ?
Pentest d’application mobile
Un pentest d’application mobile comprend une analyse statique et une analyse dynamique de l’application, en complément des tests effectués sur les serveurs et, éventuellement des APIs.
D’un côté, l’analyse statique consiste à extraire des éléments (meta-informations et code source par exemple) pour effectuer des tentatives de reverse engineering. De l’autre, l’analyse dynamique implique de rechercher des vulnérabilités sur l’application pendant utilisation (runtime).
En général, en cas de mauvaise configuration ou de défaut d’implémentation, il est possible de contourner des contrôles ou d’extraire des données.
Ci-dessous des exemples de failles découvertes couramment lors de pentests d’applications mobiles :
- Utilisation inappropriée des identifiants
- Sécurité insuffisante de la Supply Chain
- Authentification et autorisations non sécurisées
- Validation insuffisante des entrées/sorties
- Communications non sécurisées
- Contrôles inadéquats de la confidentialité
- Manque de protections binaires
- Mauvaise configuration de sécurité
- Stockage non sécurisé des données
- Défaillances cryptographiques
Pour plus d’informations sur les tests d’intrusion mobile, vous pouvez consulter notre article dédié. Nous y détaillons les principes, objectifs ainsi que la méthodologie et les éléments testés lors de tests d’intrusion d’application mobile : Test d’intrusion d’application mobile : objectifs, méthodologie et périmètre des tests.
Et pour en savoir plus sur les vulnérabilités et attaques courantes des applications mobiles, nous vous renvoyons vers notre article : Comment renforcer la sécurité de vos applications mobiles pour contrer les attaques les plus courantes ?
Pentest d’API
Un pentest d’API peut être réalisé indépendamment ou intégré dans le scope d’un test d’intrusion d’application web ou mobile, avec des vulnérabilités spécifiques à ce type d’interface.
Ci-dessous des exemples de failles découvertes couramment lors de tests d’intrusion d’APIs :
- Mauvaise gestion des Autorisations au niveau d’un objet
- Mauvaise gestion de l’Authentification des utilisateurs
- Exposition excessive des données
- Manque de Rate Limiting
- Mauvaise gestion des Autorisations d’accès aux fonctions
- Défaut de contrôle d’accès au niveau des rôles utilisateurs
- Mass Assignment
- Problèmes de configuration
- Failles d’injections
- Manque de logging et de monitoring
Pour plus d’informations sur les tests d’intrusion d’API, vous pouvez consulter notre article dédié. Vous y trouverez des informations plus détaillées sur le périmètre des tests ainsi que des use cases de pentest en boite noire, grise et blanche sur diverses cibles : Pentest API : objectifs, méthodologie, tests en boite noire, grise et blanche.
Et si vous souhaitez en savoir plus sur les vulnérabilités et attaques courantes des APIs, nous vous renvoyons vers contre article : Comment renforcer la sécurité de vos APIs pour contrer les attaques les plus courantes ?
Pentest de systèmes IoT et d’objets connectés
Un pentest IoT permet de rechercher des vulnérabilités sur l’ensemble des couches de l’écosystème IoT : hardware, firmware, protocoles de communication, serveurs, applications web et applications mobiles.
Ci-dessous des exemples de tests réalisés lors de tests d’intrusion IoT.
Sur le hardware :
- Reverse engineering des éléments extraits du device
- Dumps de mémoire
- Analyse cryptographique
Sur le firmware :
- Détection de ports de communication ouverts et mal protégés
- Buffer overflow
- Cassage de mots de passe
- Reverse engineering
- Analyse cryptographique
- Modifications de firmware
- Debugging
- Détection d’interfaces de configuration ou de backdoors
Sur les protocoles de communication :
- Capture et analyse de signaux radio (sniffing) multi-protocoles
- Analyse cryptographique
- Écoute passive des échanges
- Interception et corruption des échanges
- Dénis de service
Sur les applications web, mobiles et les APIs, nous vous renvoyons vers les sections précédentes.
Pentest de réseau interne
Un pentest de réseau interne consiste à évaluer la sécurité d’un réseau interne dans la position d’un attaquant parvenant à s’introduire dans celui-ci. Les tests couvrent notamment les serveurs, équipements réseaux, postes de travail, WI-FI, l’Active Directory, etc.
Ci-dessous des exemples de failles découvertes couramment lors de tests d’intrusion interne :
- Mauvaises configurations réseau
- Défaut de segmentation réseau
- Défaut de chiffrement des données et des communications
- Mauvaise gestion des droits et des accès
- Défaut de logging et monitoring
Pour plus d’informations sur les tests d’intrusion interne, vous pouvez consulter notre article dédié. Nous y détaillons les principes et objectifs ainsi que des use cases de tests d’intrusion en boite noire et grise d’un réseau interne : Test d’intrusion interne : objectifs, méthodologie, tests en boite noire et grise.
Et pour en savoir plus sur les vulnérabilités et attaques courantes de l’infrastructure réseau, nous vous renvoyons vers contre article : Comment renforcer la sécurité de votre infrastructure réseau pour contrer les attaques les plus courantes ?
Pentest d’ingénierie sociale
Un pentest d’ingénierie sociale consiste à évaluer les réflexes et comportements de vos collaborateurs face aux attaques de phishing, vishing, smishing ainsi que les risques d’intrusions physiques.
Par ailleurs, un pentest d’ingénierie sociale peut être réalisé indépendamment ou intégré dans le périmètre d’un pentest technique.
Pour plus d’informations sur les différentes techniques et stratégies permettant de définir une campagne d’ingénierie sociale, vous pouvez consulter notre livre blanc.
Et pour en savoir plus sur le phishing, vous pouvez consulter notre article dédié : Phishing : principes, scénarios d’attaques et bonnes pratiques sécurité.
Approches et conditions techniques d’un pentest : boite noire, grise ou blanche
Un test d’intrusion sur tout type de cible peut être réalisé via 3 approches distinctes, correspondant à 3 niveaux d’informations à la disposition du pentester lors des tests : boite noire, boite grise ou boite blanche. Par ailleurs, précisons qu’un pentest peut coupler 2 voire 3 approches pour un résultat plus « efficient » en fonction des objectifs fixés.
Pentest en boite noire
Lors de tests en boite noire, le pentester se met dans la position d’un attaquant externe et cible la surface d’attaque exposée. Ce dernier n’a donc aucune information sur le système cible.
Pentest en boite grise
Lors de tests en boite grise, le pentester dispose d’un niveau « intermédiaire » d’informations sur le système cible. Il peut s’agir par exemple de comptes utilisateurs avec différents niveaux de droits et/ou de la documentation technique.
Pentest en boite blanche
En boite blanche, le pentester réalise les tests en disposant d’un niveau « maximal » d’informations sur le système cible, notamment le code source, un accès administrateur à l’infrastructure et de la documentation technique interne.
Pour plus de détails sur ces 3 approches, vous pouvez consulter notre article : Test d’intrusion en boite noire, boite grise ou boite blanche ? 3 options pour un audit de sécurité
Méthodologie et déroulement d’un pentest
Un test d’intrusion vise à tester méthodiquement la sécurité d’un système, en utilisant toutes les techniques et stratégies des attaquants. Ce type d’audit s’appuie donc sur plusieurs normes et standard sécurité dont l’OWASP. Généralement, un pentest repose sur une méthodologie en quatre phases, qui constituent un processus itératif : reconnaissance, cartographie du système cible (mapping), découverte et exploitation des vulnérabilités.
Mais avant d’expliciter ces 4 phases, faisons un petit tour en arrière avec l’étape première : définir le scope d’un pentest.
Définition du scope d’un pentest
Un pentest est une opération sur mesure. En fonction de vos objectifs : faire un premier test pour évaluer le niveau de sécurité d’une cible spécifique, réaliser des tests exhaustifs sur une application web pour obtenir un certificat, intégrer les risques d’ingénierie sociale dans votre démarche sécurité, etc., il s’agira de définir le périmètre cible des tests.
Il est donc possible de définir précisément (ou non) un périmètre. Par exemple, un pentest black box consistera à cibler les éléments du SI découverts par les pentesters lors de la phase de reconnaissance. Un pentest web en boite blanche pourra cibler l’ensemble des fonctionnalités, ou uniquement certaines fonctionnalités spécifiques.
Pour plus de détails sur cette étape importante, nous vous invitons à consulter notre livre blanc. Il fournit de précieuses informations permettant de définir une stratégie de pentest adaptée à vos objectifs, enjeux et contraintes.
Reconnaissance et identification de la surface d’attaque
La phase de reconnaissance consiste à rechercher des informations open-source sur la cible des tests. Toutes les informations potentiellement utiles pour un attaquant sont récoltées, par exemple : adresses IP, noms de domaines et sous-domaines, types et versions de technologies utilisées, composants tiers, informations techniques partagées sur des forums ou des réseaux sociaux, fuite de données, etc.
Cartographie du système cible
La phase de mapping vise à répertorier l’ensemble des fonctionnalités de la cible. Elle permet aux pentesters d’avoir une meilleure visibilité sur les éléments les plus critiques et les plus exposés. Par ailleurs, cette étape est particulièrement essentielle lorsque le périmètre des tests est large.
Découverte des vulnérabilités
La phase de découverte est une phase d’attaque. Ici, les pentesters recherchent des vulnérabilités via des tests manuels complémentés par des outils automatisés. L’objectif est de découvrir le maximum de failles sur la cible, puis de les exploiter pour éventuellement en découvrir d’autres.
Exploitation des vulnérabilités
Cette phase « essence même des tests d’intrusion » consiste à tester les exploitations possibles des vulnérabilités identifiées. Elle permet aux pentesters de tirer profit de certaines failles pour en découvrir de nouvelles. Ici, l’objectif est d’évaluer l’impact concret des vulnérabilités et donc leur niveau de criticité.
Rapport de pentest
Le livrable remis à la suite d’un test d’intrusion est un rapport complet qui présente toutes les vulnérabilités identifiées (classifiées par niveau de criticité : faible, moyenne, importante, critique), les exploitations possibles ainsi que des recommandations de correction. De plus, un débriefing de présentation des résultats, par le(s) pentester(s) en charge de l’audit, est réalisé afin d’échanger sur les failles et les mesures correctives à implémenter.
Par ailleurs, il est possible de réaliser une phase de contre-audit afin de vérifier la bonne implémentation des corrections et l’absence d’effets de bords.
En complément du rapport de pentest, une synthèse managériale peut être délivré à la suite d’un test d’intrusion. Ce document permet de présenter les résultats d’un pentest à des profils « non-technique ». Cela permet d’attester de votre démarche sécurité auprès de vos partenaires, votre comité de direction ou dans le cadre d’échanges avec des prospects ou de réponse à des appels offres.
Quels sont les outils utilisés lors d’un pentest ?
Burp Suite, un outil dédié au pentest d’applications web
Burp Suite est un outil développé par l’entreprise PortSwigger dédié au pentest d’applications web. Ses fonctionnalités principales sont un proxy web (offrant aux utilisateurs la possibilité de manipuler les requêtes et les réponses) et un scanner de vulnérabilités.
Le fonctionnement global de Burp est pensé de façon modulaire. Certains de ses modules sont installés par défaut sur le logiciel. D’autres modules complémentaires nommés extensions sont disponibles au téléchargement via l’extender (le « catalogue » de Burp). En plus de sa modularité, son ergonomie et sa communauté active (qui développe de nouvelles extensions et créée de la documentation détaillée sur les modules), font de Burp Suite est un outil de référence dans sa catégorie.
Pour plus d’informations sur Burp Suite, nous vous renvoyons vers notre article dédié : Introduction à Burp, l’outil dédié à la sécurité des plateformes web
Exegol, un environnement dédié à la sécurité offensive
Exegol est un environnement d’exploitation destiné à la recherche en cybersécurité et au pentest. Il s’agit d’un projet basé sur Debian et Docker. Il est préconfiguré et comprend un large éventail d’outils nécessaires aux experts en cybersécurité pour mener des tests d’intrusion et des recherches en sécurité informatique.
Exegol est conçu pour être facile à utiliser et à déployer, offrant un environnement prêt à l’emploi pour les tests de sécurité et l’analyse de vulnérabilités. Il est souvent utilisé par les professionnels pour simuler des attaques dans un environnement contrôlé afin de découvrir des failles de sécurité dans les systèmes et les réseaux.
Pour plus d’informations sur Exegol, nous vous renvoyons vers notre article dédié : Découverte d’Exegol, un environnement dédié à la sécurité offensive
Sqlmap, l’outil pour identifier et exploiter des injections SQL
Sqlmap est un outil open-source qui automatise la détection et l’exploitation des vulnérabilités d’injection SQL.
Il offre de nombreuses fonctionnalités, incluant la possibilité de se connecter à des bases de données diverses telles que MySQL, PostgreSQL, Oracle et Microsoft SQL Server.
Sqlmap permet d’extraire des données, d’exécuter des commandes et d’effectuer des attaques pour contourner certaines protections, ce qui en fait un outil incontournable lors de pentest d’applications web.
Pour plus d’informations sur Sqlmap, nous nous vous renvoyons vers notre article dédié : Sqlmap, l’outil pour identifier et exploiter des injections SQL.
Pentest web | Pentest interne |
---|---|
Burp Suite, l’outil incontournable dédié au pentest web Nuclei, le scanner de vulnérabilités adaptable SQLmap, pour détecter et exploiter les injections SQL XSSHunter, l’outil pour identifier les vulnérabilités XSS Gobuster, pour énumérer les répertoires et les fichiers John the Ripper et Hashcat, les outils de cassage de hashs | Nmap, le scanner pour détecter les ports ouverts et identifier les services Nessus, pour scanner les vulnérabilités courantes des réseaux Metasploit, le framework permettant la recherche, l’analyse et l’exploitation de vulnérabilités Hydra, pour réaliser des attaques brute force Wireshark, l’outil de capture et d’analyse de paquets Ettercap, pour se positionner en Man in the Middle et intercepter le trafic sur un segment réseau |
Pourquoi faire un pentest ?
Identifier et corriger les failles de sécurité
Un pentest consiste à explorer de façon rigoureuse une cible spécifique afin de répertorier les vulnérabilités les plus critiques. En effet, un pentest repose sur une méthodologie éprouvée renforcée par les tests manuels des pentesters permettant d’exploiter les vulnérabilités techniques et logiques identifiées, d’évaluer leur impact et faire des recommandations de correction.
Prouver que mes systèmes sont sécurisés
Réaliser un pentest permet de lever des barrières lors d’un processus de vente. De la même manière, mettre en place des pentests récurrents peut s’avérer nécessaire lorsque les clients demandent régulièrement des preuves de sécurité. Aussi, l’obtention d’un sceau ou d’un certificat de pentest peut faciliter la conversion de prospects, ou renforcer la confiance de vos clients envers votre entreprise.
Obtenir ou renouveler une certification ISO 27001, SOC2, etc.
Un pentest est souvent une étape indispensable dans le processus de certification (ISO27001, SOC2, PCI-DSS, etc.). En effet, réaliser un test d’intrusion permet de vérifier l’efficacité des processus et des protections en place, avec des résultats qui guident les actions correctives et aident à maintenir une posture de sécurité solide, assurant ainsi la conformité aux normes.
Sensibiliser mes équipes aux risques cyber
Un pentest permet de sensibiliser les équipes via une mise en situation réelle. C’est la méthode la plus efficace pour démontrer l’importance des politiques de sécurité. En effet, suite à des tests techniques, les développeurs et les administrateurs systèmes vont travailler sur l’implémentation de mesures correctives.
Cela leur confère des connaissances précieuses sur les impacts potentiels d’une faille, et leur permet de monter en compétences sur le sujet sécurité. De la même manière, suite à un pentest d’ingénierie sociale, toute personne piégée par un e-mail de phishing verra son niveau de vigilance augmenter.
Réaliser un pentest avec Vaadata, entreprise spécialisée en sécurité offensive certifiée CREST et ISO 27001/ISO 27701
Vaadata est une société spécialisée en sécurité offensive, qui accompagne tous types d’organisations avec des audits de sécurité de leurs systèmes.
Notre métier est le pentest (test d’intrusion) en boite noire, grise ou blanche. Nous couvrons un large périmètre technique : applications web et APIs, applications mobiles, infrastructures externes, réseaux internes, Active Directory, IoT, ingénierie sociale.
Par ailleurs, Vaadata est une entreprise certifiée CREST qui est un label anglo-saxon délivré par un organisme indépendant à but non-lucratif dont la mission est de structurer la démarche qualité des entreprises proposant des prestations techniques de cybersécurité.
Nous avons obtenu cette certification suite à une évaluation rigoureuse de nos processus, de notre méthodologie et des profils de nos pentesters.
Par ailleurs, toutes les missions qui nous sont confiées sont réalisées par notre équipe interne, située à Lyon. Nos pentesters possèdent des certifications qui démontrent notre compréhension approfondie de tous types vulnérabilités et nos compétences pour les exploiter de manière efficace :
- BSCP (Burp Suite Certified Practitioner)
- OSWE (Offensive Security Web Expert)
- OSCP (Offensive Security Certified Professional)
- CEH (Certified Ethical Hacker)
- AWS Certified Solutions Architect – Associate ; AWS Certified Security – Specialty
- GCP Google Cloud Certified : Professional Cloud Security Engineer
- CISSP (Certified Information Systems Security Professional)
Contactez-nous pour échanger sur vos enjeux et besoins.
Auteur : Amin TRAORÉ – CMO @Vaadata