2023-10-07 12:10 Temps de lecture : 28 min

7 phases et étapes des tests d'intrusion expliquées

L'Origine et l'Évolution des Tests d'Intrusion

Dès 1967, une équipe de spécialistes en sécurité informatique de Rand Corporation, composée de Willis Ware, Rein Turn, Harold Petersen et Benard Peters, a mis en lumière la vulnérabilité des systèmes de communication entre ordinateurs. Leur rapport, publié après une conférence conjointe sur l'informatique, révélait que ces systèmes étaient facilement pénétrables.

Cette prise de conscience a donné naissance à la notion d'intrusion informatique et à la nécessité de la prévenir. C'est James P. Anderson qui a jeté les bases méthodologiques des tests d'intrusion, en définissant une approche progressive pour évaluer la sécurité des systèmes.

L'approche initiale était simple : les équipes de sécurité effectuaient une série d'actions, allant de l'identification des failles à la mise en œuvre de solutions correctives. Voici un résumé chronologique du développement des tests d'intrusion.

Il est important de noter que compromettre la sécurité d'une entité n'est pas une mince affaire, cela requiert expertise et temps. Cependant, les technologies actuelles facilitent la tâche des acteurs malveillants qui cherchent à exploiter les faiblesses d'une organisation. Les intrusions ciblent généralement les actifs exposés sur Internet (applications web, sites web, serveurs DNS, e-mails) afin de subtiliser des informations de valeur.

Les tests d'intrusion permettent à une entreprise de repérer et de renforcer ses points faibles avant qu'ils ne soient exploités par des personnes mal intentionnées. Les statistiques le confirment : un impressionnant 73% des intrusions réussies ont contourné les protections des applications web en exploitant leurs vulnérabilités.

Il est donc plus crucial que jamais pour les organisations de vérifier la sécurité de leurs applications, systèmes et réseaux. La réalisation de tests simulés est une approche efficace pour évaluer la solidité des systèmes de sécurité et des mesures de contrôle. Il s'agit d'une activité régulière et non d'une action ponctuelle. La fréquence des tests est ajustée en fonction de la structure de l'entreprise et des risques mis en évidence par les évaluations.

Fort heureusement, les tests d'intrusion ne sont pas excessivement complexes. En formant vos équipes informatiques aux compétences nécessaires, votre organisation pourra mettre en œuvre des pratiques de sécurité de manière cohérente, surtout lors de mises à jour importantes de l'infrastructure ou de l'intégration de nouveaux services et actifs numériques.

Tout commence par la compréhension du processus en lui-même.

Qu'est-ce qu'un Test d'Intrusion ?

Avant de nous pencher sur la méthodologie, il est essentiel de préciser ce qu'est un test d'intrusion et pourquoi il est important. Les tests d'intrusion, souvent appelés "pen tests", sont des cyberattaques planifiées et autorisées, menées dans un environnement sécurisé et contrôlé.

Intégrés aux audits de sécurité, ils visent à identifier les vulnérabilités au sein de l'environnement de l'organisation. L'approche est similaire à celle adoptée par un pirate informatique, mais avec une intention éthique. Voici quelques raisons fondamentales pour lesquelles votre entreprise devrait réaliser des tests d'intrusion :

  • Découvrir les failles cachées avant qu'elles ne soient exploitées par des attaquants.
  • Consolider les processus et les stratégies de sécurité.
  • Réduire les coûts de remédiation et le temps d'immobilisation.
  • Assurer la conformité avec les réglementations en matière de sécurité et de confidentialité.
  • Protéger la réputation de votre marque et la fidélité de vos clients.

Les tests d'intrusion permettent d'évaluer la santé de votre entreprise en termes de résistance aux attaques, et de mettre en évidence la facilité avec laquelle des pirates pourraient pénétrer vos systèmes. Les données recueillies peuvent également servir à prioriser les investissements en cybersécurité, à respecter les normes du secteur et à renforcer les stratégies de défense pour prémunir votre entreprise contre les menaces éventuelles. Cependant, tout cela repose sur des instruments de test automatisés, appelés outils de pénétration.

Que sont les outils de test de pénétration ?

Un expert en sécurité, agissant de manière éthique, utilise des outils de test d'intrusion pour évaluer la robustesse d'une infrastructure informatique en simulant des cyberattaques. Ces outils permettent aux équipes de sécurité de rationaliser les tâches répétitives, d'élaborer des rapports plus rapidement et de réduire les coûts liés à l'utilisation de plusieurs scanners.

Il existe de nombreux types d'outils : open source, pour les applications web, pour les réseaux, pour les applications mobiles, pour le cloud, manuels, automatisés, et même des tests d'intrusion en tant que service. Quelle que soit leur variété, il est conseillé de rechercher des fonctionnalités essentielles telles que la production de rapports exploitables, l'intégration CI/CD, la prise en charge des mesures correctives et la certification des tests d'intrusion (seuls quelques-uns offrent des certifications accessibles au public).

Partant de ce constat, examinons le processus de test d'intrusion en détail.

Les Étapes des Tests d'Intrusion

Un test d'intrusion typique se déroule en plusieurs étapes. Bien que diverses sources puissent présenter le processus de manière légèrement différente, la structure générale reste la même. Il comprend la reconnaissance, l'analyse, l'évaluation des vulnérabilités, l'exploitation et la création de rapports.

Il est important de souligner que les meilleurs testeurs maîtrisent un large éventail d'outils, leur permettant d'utiliser l'outil approprié à chaque phase du test. Examinons de plus près chacune de ces étapes.

La Collecte d'Informations

Cette phase, souvent négligée, est pourtant essentielle. Elle permet de définir un terrain d'entente entre l'entreprise et l'expert en tests d'intrusion. À ce stade, la portée du travail est clairement définie, ainsi que les règles d'engagement, les délais et la logistique, le tout en fonction d'objectifs précis.

Pour qu'un test d'intrusion soit complet et utile, cette étape permet de déterminer les zones qui nécessitent des tests et les méthodes les plus adaptées. Il est donc crucial de ne pas la négliger, surtout pour un débutant.

Avant de procéder à un test sur un système, l'entreprise doit donner son accord au testeur. En effet, sans cet accord, les actions du testeur pourraient être considérées comme illégales. Les entreprises établissent des règles claires (dans un contrat) pour assurer un déroulement harmonieux de la collaboration avec les testeurs. L'accord doit également préciser les actifs critiques, les objectifs des tests et les mesures de précaution à prendre. De plus, cette étape influence toutes les actions qui suivront. Enfin, tous les plans sont alignés sur les résultats attendus du test.

Le Rassemblement de Reconnaissance/OSINT

Au cours de cette phase, les testeurs rassemblent toutes les informations accessibles sur le système. Ces informations sont utilisées pour la suite du test et sont guidées par les conclusions de la première phase. Les testeurs peuvent ainsi déterminer les données à collecter et les stratégies à mettre en œuvre. La reconnaissance peut être active (le testeur interagit directement avec les systèmes) ou passive (les informations sont issues de sources publiques). Pour un projet de grande envergure, l'utilisation des deux approches est recommandée.

La collecte active de données consiste à interagir avec les réseaux, les systèmes d'exploitation, les comptes utilisateurs, les noms de domaine, les serveurs de messagerie et les applications. La collecte passive, quant à elle, utilise des sources ouvertes : réseaux sociaux, informations fiscales, sites web et autres données publiques.

Voici quelques outils de renseignement open source (OSINT) qui, selon mon expérience et celle de mes collègues, sont à la fois utiles et faciles à utiliser pour collecter et relier des informations sur le web. En utilisant le framework OSINT, vous pouvez dresser une liste de contrôle exhaustive des points d'entrée et des vulnérabilités. Bien que cette étape soit fondamentale pour les tests d'intrusion internes et externes, elle n'est généralement pas applicable aux applications web, mobiles et aux tests d'API.

Le Balayage

L'étape suivante consiste à réaliser une analyse technique approfondie du système. À l'aide d'outils tels que les scanners de vulnérabilités automatisés et les mappeurs de réseau, vous pouvez évaluer la manière dont le système cible réagit à diverses intrusions, aux ports ouverts, au trafic réseau, etc.

Les composantes essentielles de cette étape sont l'analyse et l'inventaire des actifs. Des outils comme Nmap peuvent être utilisés pour identifier les services informatiques et les hôtes, envoyer des paquets et examiner les réponses. À la fin de cette phase, vous disposez d'un inventaire des actifs. Cela inclut les systèmes d'exploitation, les services actifs et les ports ouverts.

L'analyse des résultats vous fournit les bases nécessaires pour planifier une exploitation. Vous pouvez cartographier le paysage numérique du système et repérer les points d'attaque possibles. Des analyses statiques et dynamiques peuvent être réalisées pour mieux comprendre la manière dont le système répond à différentes conditions.

L'analyse statique consiste à examiner le code de vos applications avant leur exécution ; des outils sont disponibles pour analyser les bases de code de manière transparente. L'analyse dynamique consiste à examiner le code pendant l'exécution de l'application. Il est essentiel de s'assurer que les informations recueillies sont exactes et obtenues correctement, car le succès des phases ultérieures en dépend.

L'Évaluation/L'Obtention d'Accès

À ce stade, toutes les données collectées lors des phases précédentes permettent d'identifier les vulnérabilités et de déterminer si elles peuvent être exploitées. Bien que cette étape soit utile en soi, elle prend toute sa dimension lorsqu'elle est associée à d'autres processus de tests d'intrusion.

Pour évaluer les risques liés aux vulnérabilités découvertes, les testeurs consultent diverses ressources, notamment la base de données nationale des vulnérabilités (NVD), qui analyse les vulnérabilités logicielles publiées dans la liste des Common Vulnerabilities and Exposures (CVE).

Ensuite, il faut identifier les cibles et cartographier les vecteurs d'attaque. Les cibles incluent des actifs de grande valeur comme les données des employés, les informations sur les clients, les données des partenaires, fournisseurs, les ports, les applications et les protocoles. Des attaques d'applications web sont lancées.

Les plus courantes sont l'injection SQL, les scripts intersites et les portes dérobées. Le système est exploité par l'augmentation des privilèges, l'interception du trafic et le vol de données pour révéler l'ampleur des dégâts. En respectant le périmètre défini lors de la collecte d'informations, le testeur s'assure de travailler dans les limites spécifiées.

L'Exploitation

Également appelée phase de maintien de l'accès, cette étape permet au testeur de vérifier si les vulnérabilités peuvent être réellement exploitées. Cette phase comprend une véritable tentative d'intrusion et une tentative d'accès au système. À l'aide d'outils comme Metasploit, le testeur simule une attaque réelle.

À mesure que cette étape progresse, le testeur doit veiller à ne pas compromettre les ressources de l'organisation et à ce que les systèmes ne soient pas endommagés après les simulations.

Metasploit est souvent privilégié pour sa facilité d'exploitation des vulnérabilités. Cette étape évalue les conséquences d'une intrusion. Le testeur peut tenter de chiffrer ou d'exfiltrer des données, et simuler des attaques de type ransomware ou zero-day. La clé d'un test d'intrusion réussi est de trouver le juste équilibre entre le dépassement des limites et le maintien de l'intégrité du système.

Il est fortement recommandé de faire appel à des experts, car ils sont capables d'exploiter des vulnérabilités qui échappent à l'automatisation. À l'issue de cette phase, vous aurez essayé d'obtenir des privilèges de haut niveau sur les informations du système et du réseau en identifiant les données disponibles. L'expert en sécurité doit également expliquer les résultats des exploitations de cibles de grande valeur.

L'Analyse des Risques et Recommandations, L'Examen et la Rédaction de Rapports

Une fois la phase d'exploitation terminée, le testeur rédige un rapport détaillant ses conclusions. Ce rapport est utilisé pour corriger les vulnérabilités découvertes.

Un bon rapport de test d'intrusion doit être un recueil de vulnérabilités clairement documentées, présentées de manière à ce qu'une organisation puisse facilement corriger ses failles de sécurité. Il doit contenir un inventaire exhaustif de toutes les vulnérabilités identifiées, ainsi que leurs scores CVVS, un résumé des risques techniques, l'impact potentiel sur l'entreprise, une analyse détaillée des difficultés d'exploitation et des recommandations concrètes.

De plus, les rapports doivent documenter toutes les phases, les modèles de test, les techniques utilisées et les actifs ciblés. Si possible, le testeur doit donner son avis sur la question de savoir si le test répond aux exigences du cadre applicable. En résumé, le rapport doit être à la fois une explication générale et un guide technique.

Après la rédaction et la présentation des rapports, il est essentiel de nettoyer le système. Cela consiste à rétablir le système dans son état d'origine, en annulant toutes les modifications apportées pendant le test. Les activités de nettoyage comprennent le retrait de tous les fichiers exécutables, temporaires et scripts des systèmes compromis, la suppression des comptes d'utilisateurs créés pour se connecter au système compromis et la suppression des rootkits présents dans l'environnement.

En dernier lieu, la remédiation est à la charge de l'organisation. En s'appuyant sur les rapports et les résultats des tests d'intrusion, l'organisation cible les vulnérabilités, analyse leur impact potentiel, éclaire la prise de décision pour la suite et influe sur les stratégies de correction.

Étant donné que cette étape est marquée par l'amélioration des erreurs passées, la correction de toutes les vulnérabilités exploitables doit être effectuée dans un délai raisonnable. Il est possible que cette phase se prolonge afin de réaliser des tests supplémentaires sur les mises à jour ou de mettre en œuvre des tests différents.

Application Pratique des Pen Tests : Un Guide Étape par Étape

Pour illustrer le processus, nous allons utiliser le framework Metasploit. Vous pouvez créer votre propre flux de travail personnalisé, mais voici un exemple typique pour vous aider à démarrer. Commencez par installer le framework.

Si vous utilisez Linux ou macOS, utilisez la commande suivante :

curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && \
  chmod 755 msfinstall && \
  ./msfinstall

Si vous êtes sous Windows, utilisez le dernier programme d'installation de Windows. Vous pouvez aussi utiliser la commande Shell suivante :

[CmdletBinding()]
Param(
    $DownloadURL = "https://windows.metasploit.com/metasploitframework-latest.msi",
    $DownloadLocation = "$env:APPDATA/Metasploit",
    $InstallLocation = "C:\Tools",
    $LogLocation = "$DownloadLocation/install.log"
)

If(! (Test-Path $DownloadLocation) ){
    New-Item -Path $DownloadLocation -ItemType Directory
}

If(! (Test-Path $InstallLocation) ){
    New-Item -Path $InstallLocation -ItemType Directory
}

$Installer = "$DownloadLocation/metasploit.msi"

Invoke-WebRequest -UseBasicParsing -Uri $DownloadURL -OutFile $Installer

& $Installer /q /log $LogLocation INSTALLLOCATION="$InstallLocation"

Et ensuite…

Créer un projet – Il s'agit de votre espace de travail et de stockage de données. Puisque chaque sous-réseau de votre entreprise peut avoir des exigences spécifiques, il est préférable d'organiser votre travail pour gagner en efficacité. Par exemple, si vous effectuez un test d'intrusion pour les services informatiques et des ressources humaines, il est judicieux de produire des rapports distincts.

Source des images – MétaSploit

Obtenir les données cibles – C'est ici que vous ajoutez des données à votre projet, soit par une analyse de découverte, soit en important des données existantes. Scannez les cibles pour identifier les ports ouverts et les services d'un réseau. Utilisez l'option de numérisation et saisissez les adresses IP sur lesquelles vous souhaitez travailler, chacune sur une ligne distincte. Vous pouvez également utiliser l'option d'importation pour importer des données depuis un fichier local.

Source des images – MétaSploit

Afficher/Gérer les données de l'hôte – Vous pouvez examiner les données au niveau de l'hôte ou du projet. Vous pouvez passer d'une IP à l'autre pour avoir une vue unique de chaque hôte.

Source des images – MétaSploit

Rechercher les vulnérabilités – Lancez une analyse des vulnérabilités en utilisant les options Nexpose. Cette étape exploite les bases de données de vulnérabilités pour trouver des correspondances.

Exploiter les vulnérabilités – Vous pouvez exploiter les vulnérabilités à l'aide de l'outil assistant de validation. Vous pouvez également utiliser Nexpose.

Activité post-exploitation – Collectez les données de l'exploit via l'onglet session ; cliquez sur « collecter ».

Source des images – MétaSploit

Nettoyage – Une fois la collecte des données terminée, utilisez l'option « nettoyer » pour mettre fin à la session et nettoyer le système.

Générer des rapports – À la fin du test d'intrusion, Metasploit vous fournit plusieurs rapports qui peuvent servir de point de départ pour la consolidation des données et la compilation des résultats.

Un guide de démarrage rapide et détaillé sur les tests d'intrusion est disponible sur Guide de démarrage rapide de Metasploit.

Outils de Test de Pénétration Courants

Parmi les outils couramment utilisés, on trouve Sn1per, Metasploit et Commix.

#1. Sn1per

Sn1per est un outil d'évaluation de vulnérabilités qui permet de vérifier l'impact d'attaques côté client dans des situations de piratage. Il peut être utilisé pour simuler des attaques à distance et utilisateur dans un environnement contrôlé. Sn1per compte 6 000 étoiles sur GitHub, ce qui démontre l'intérêt qu'il suscite. Il automatise l'utilisation d'outils open source et commerciaux pour répertorier les vulnérabilités, ce qui permet de gagner un temps précieux.

#2. Métasploit

Métasploit est un framework de test d'intrusion majeur, développé grâce à la contribution de la communauté open source. Il compte 31 200 étoiles sur GitHub, ce qui témoigne de son importance dans le domaine de la sécurité logicielle. Metasploit est le fruit d'une collaboration de passionnés de sécurité, dont l'objectif est de corriger les vulnérabilités et de sensibiliser à la sécurité.

#3. Commix

Commix est un outil puissant permettant d'exploiter les vulnérabilités d'injection de commandes du système d'exploitation. Bien qu'il soit spécialisé dans ce type de vulnérabilité, Commix est facile à utiliser, gratuit, open source, compatible multiplateforme, portable et modulable. Il a reçu 4 000 étoiles sur GitHub. Il est gratuit et open source.

Conclusion

La compréhension des différentes étapes d'un test d'intrusion est essentielle pour permettre aux entreprises de renforcer la résilience de leurs produits numériques face à la multiplication des cyberattaques. Étant donné que les cybercriminels trouvent constamment de nouvelles façons de contourner les solutions de sécurité traditionnelles, la simulation d'attaques réelles par le biais de tests d'intrusion constitue une approche efficace pour naviguer dans le paysage en constante évolution des menaces informatiques.

En adaptant le test d'intrusion aux besoins spécifiques de votre organisation, vous pouvez garantir l'efficacité de vos politiques de sécurité. En étudiant chaque phase d'un test d'intrusion, vous optimiserez votre retour sur investissement en matière de cybersécurité.

Pour mener un test d'intrusion réussi, il est important d'agir avec intelligence. Commencez par rassembler des informations sur le test, puis continuez avec la phase de reconnaissance. Un bon point de départ pour la reconnaissance est de définir les objectifs de portée sur le système à tester.

Ensuite, analysez le système pour acquérir une connaissance approfondie et identifier les vulnérabilités. Passez à l'attaque en veillant à ne pas endommager le système. Puis, produisez des rapports détaillés qui serviront de guide pour les actions correctives. N'oubliez pas de nettoyer et de restaurer le système à son état initial.

Lorsqu'ils sont mis en œuvre correctement, les tests d'intrusion renforcent la sécurité de votre organisation en identifiant et en corrigeant les vulnérabilités. À l'heure où de nombreuses entreprises migrent vers le cloud et adoptent de nouvelles technologies, les tests d'intrusion sont devenus indispensables dans le domaine de la sécurité de l'information. En effet, 75% des entreprises utilisent des tests d'intrusion pour évaluer leur niveau de sécurité ou pour des raisons de conformité. Si vous prêtez une attention particulière à chaque étape du test et que vous les traitez de manière indépendante, vous constaterez systématiquement la valeur des tests d'intrusion.

Enfin, n'hésitez pas à consulter des outils de test d'intrusion en ligne (Pentest) pour évaluer la sécurité de vos applications.

Auteur
France

Rédacteur tech, guides pratiques et astuces numériques.