En 1967, des experts en sécurité informatique de la Rand Corporation, Willis Ware, Rein Turn, Harold Petersen et Benard Peters, ont rédigé un rapport à l’issue d’une conférence conjointe sur l’informatique, dans lequel ils déclaraient que les supports de communication entre les ordinateurs étaient facilement perçables.

C’est ainsi qu’a été inventée la toute première méthode de pénétration permettant d’enfreindre la sécurité informatique. James P. Anderson a alors mis au point une approche étape par étape qui a constitué la base des tests de pénétration.

La structure était simple : les équipes de sécurité passaient par plusieurs étapes, de la détection d’une vulnérabilité à la mise au point de moyens pour la contrer. Voici un bref historique des tests de pénétration.

Exploiter la sécurité d’une entreprise n’est pas chose aisée et nécessite des compétences et du temps. Mais avec la technologie actuelle, il est facile pour de mauvais acteurs de trouver les points vulnérables de votre organisation. Les pénétrations ciblent les actifs d’une entreprise visibles sur l’internet (par exemple, une application web, le site web, les serveurs de noms de domaine (DNS) et les courriels) afin d’y accéder et d’en extraire des données précieuses.

Grâce aux tests de pénétration, votre entreprise peut identifier et renforcer la surface d’attaque possible avant l’exploitation. Les recherches le confirment : 73 % des intrusions réussies ont eu lieu en pénétrant dans des applications web à partir de leurs vulnérabilités.

Plus que jamais, les entreprises doivent valider la sécurité de leurs applications, systèmes et réseaux. Le lancement de tests simulés est un moyen efficace de ratifier la solidité de la sécurité d’un système et les mesures de contrôle. Il ne s’agit pas d’une activité ponctuelle, mais d’une activité régulière. La fréquence des tests est fonction de la structure organisationnelle de votre entreprise et des risques révélés par les évaluations.

Heureusement, les tests de pénétration ne sont pas compliqués. En dotant vos équipes informatiques des compétences nécessaires, votre organisation peut mettre en œuvre la sécurité de manière cohérente, en particulier lors de mises à jour importantes de l’infrastructure ou de l’introduction de nouveaux services et actifs numériques.

Pour cela, il faut d’abord comprendre en quoi consiste ce processus.

Qu’est-ce qu’un test de pénétration ?

YouTube video

Avant de plonger dans le comment, il est préférable de répondre au quoi et au pourquoi. Les tests de pénétration (souvent abrégés en “pen tests”) sont une cyber-attaque officiellement acceptée qui cible les entreprises dans un environnement sécurisé et contrôlé.

Intégrés aux audits de sécurité, les tests d’intrusion s’efforcent de découvrir les vulnérabilités dans un environnement géré par l’organisation. D’un point de vue tactique, les tests adoptent une approche similaire à celle d’un pirate informatique. Voici quelques-unes des principales raisons pour lesquelles votre entreprise a besoin de tests d’intrusion :

  • Découvrir les vulnérabilités cachées avant les attaquants.
  • Renforcer les processus et les stratégies de sécurité.
  • Diminuer les coûts de remédiation et réduire le temps d’attente.
  • Respecter la conformité réglementaire en matière de sécurité et de confidentialité.
  • Préserver 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 (résilience aux attaques) et démontrent la facilité avec laquelle les pirates pénètrent dans vos systèmes. En outre, les informations recueillies peuvent être utiles pour hiérarchiser les investissements en matière de cybersécurité, suivre les normes du secteur et améliorer les stratégies défensives afin de protéger votre entreprise contre les menaces probables. Mais tout cela est possible grâce à des outils de test automatisés appelés outils de pénétration.

Qu’est-ce qu’un outil de test de pénétration ?

YouTube video

Un hacker éthique utilise des outils de test d’intrusion pour évaluer la résilience de l’infrastructure informatique en simulant des attaques mondiales. En utilisant ces outils, les équipes de sécurité peuvent éliminer le travail de test répétitif, générer des rapports de test plus rapidement et réduire le coût de plusieurs scanners.

Comme vous l’aurez deviné, il existe de nombreux types d’outils : open source, application web, réseau, application mobile, cloud, manuel, automatisé et test de pénétration en tant que service. Même s’ils sont nombreux, il est préférable de rechercher des caractéristiques clés telles que des rapports exploitables, l’intégration CI/CD, la prise en charge de la remédiation et des certificats de tests d’intrusion (seuls quelques-uns proposent des certificats de tests d’intrusion accessibles au public).

Sur cette base, décomposons le processus de test d’intrusion.

Étapes du test de pénétration

Un test de pénétration classique comporte plusieurs étapes. Bien que différentes ressources fournissent le processus en différentes étapes, la structure générale ne change pas. Le processus comprend la reconnaissance, l’analyse, l’évaluation des vulnérabilités, l’exploitation et la rédaction d’un rapport.

Là encore, les meilleurs testeurs se familiarisent avec de nombreux outils afin d’utiliser le bon outil à chaque phase de test. Chaque étape du processus peut être perçue comme suit.

Collecte d’informations

Information-Gathering

Souvent négligée, cette phase aide votre organisation à établir un terrain d’entente avec le testeur de stylos. À ce stade, vous définissez l’étendue des travaux, les règles d’engagement, les délais et une logistique précise avec des buts et des objectifs clairs.

Pour réaliser un test complet et utile, cette étape vous aide à comprendre les domaines qui doivent être testés et les meilleures méthodes. Comme il s’agit d’une étape initiale, il est important de ne pas la négliger.

Avant de tester un système, une organisation doit donner son accord au testeur. Dans le cas contraire, ses actions peuvent être considérées comme illégales. Les organisations établissent des règles claires (dans un contrat) pour assurer un déroulement fluide des opérations lorsqu’elles engagent des testeurs. L’accord doit également décrire les actifs critiques, les objectifs des tests et les précautions à prendre. En outre, cette étape influence toutes les actions ultérieures. À la fin, tous les plans sont alignés sur les résultats attendus des tests.

Reconnaissance/recueil de données OSINT

Au cours de cette phase, les testeurs recueillent toutes les informations disponibles sur le système. Les données acquises sont liées aux tests à venir et orientées par les résultats de la première étape. De cette manière, les testeurs peuvent déterminer avec précision les données à collecter et les stratégies à mettre en œuvre. Si vous optez pour une reconnaissance active, le testeur s’engage directement dans les systèmes. Si vous optez pour une reconnaissance passive, des informations accessibles au public sont obtenues. Pour une reconnaissance approfondie, utilisez les deux techniques.

L’acquisition active de données implique de travailler avec des réseaux, des systèmes d’exploitation, des comptes d’utilisateurs, des noms de domaine, des serveurs de messagerie et des applications. La collecte passive de données concerne le renseignement de source ouverte ; on peut utiliser les médias sociaux, les informations fiscales, les sites web et d’autres données publiques.

Voici quelques outils de renseignement de source ouverte (OSINT ) que mes collègues et moi-même avons trouvés utiles et faciles à utiliser lors de la collecte et de la mise en relation d’informations sur le web. En utilisant le cadre OSINT, vous pouvez créer une liste de contrôle détaillée des points d’entrée et des vulnérabilités. Cette étape est essentielle pour les tests d’intrusion internes et externes, mais elle n’est pas réalisée pour les applications web, les applications mobiles et les tests d’API.

Analyse

image-1

L’étape suivante consiste en un examen technique approfondi du système. Grâce à des outils d’analyse tels que des scanners de vulnérabilité automatisés et des cartographes de réseau, vous pouvez comprendre comment le système cible réagit à diverses intrusions, aux ports ouverts, au trafic réseau, etc.

Les principaux éléments de cette étape sont le balayage et l’analyse des actifs. Vous pouvez utiliser des outils comme Nmap pour découvrir les services informatiques et les hôtes, envoyer des paquets et analyser les réponses. À la fin de cette étape, vous disposez d’informations sur les ressources. Celles-ci comprennent les systèmes d’exploitation, les services en cours d’exécution et les ports ouverts.

En analysant les résultats, vous disposez des bases nécessaires pour mettre au point un exploit. Vous pouvez cartographier le paysage numérique du système et localiser les points d’attaque possibles. Vous pouvez effectuer une analyse statique et dynamique afin de bien comprendre la réaction du système à différentes conditions.

L’analyse statique inspecte le code de vos applications alors qu’elles ne sont pas encore exécutées ; vous pouvez utiliser des outils pour analyser les bases de code de manière transparente. Pour l’analyse dynamique, vous inspectez le code lorsque l’application est en cours d’exécution. N’oubliez pas que les informations recueillies ici doivent être précises et obtenues correctement, car le succès des phases suivantes en dépend.

Évaluation/gain d’accès

À ce stade, toutes les données recueillies au cours des étapes 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, elle est extrêmement puissante lorsqu’elle est combinée à d’autres processus de test de pénétration.

Pour évaluer les risques associés aux vulnérabilités découvertes, les testeurs se tournent vers plusieurs ressources, dont la National Vulnerability Database (NVD), qui analyse les vulnérabilités des logiciels publiées dans les Common Vulnerabilities and Exposures (CVE).

Ensuite, vous identifiez les cibles et cartographiez les vecteurs d’attaque. Les cibles comprennent les actifs de grande valeur tels que les données des employés, les informations sur les clients, les partenaires/chaînes d’approvisionnement, les fournisseurs, les ports, les applications et les protocoles. Les attaques contre les 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’escalade des privilèges, l’interception du trafic et le vol de données pour révéler les effets des dommages. En suivant le champ d’application défini lors des étapes de collecte d’informations, le testeur s’efforce de travailler avec les contraintes spécifiées.

Exploitation

Également appelée phase de maintien de l’accès, le testeur vérifie si les vulnérabilités peuvent être utilisées. Cette phase implique une violation réelle et un essai d’accès au système. En utilisant des outils comme Metasploit, le testeur simule une attaque réelle.

Au fur et à mesure que cette étape progresse, le testeur est tenu responsable des ressources d’une organisation – il doit s’assurer que les systèmes ne sont pas compromis après les simulations.

Metasploit est préféré pour la fluidité de ses opérations d’exploitation des vulnérabilités. Cette étape permet d’évaluer les effets d’une violation. Le testeur peut essayer de crypter ou d’exfiltrer des données et de simuler des ransomwares et des attaques de type “zero-day”. La clé d’un test d’intrusion réussi est de trouver un équilibre entre le dépassement des limites et le maintien de l’intégrité d’un système.

Il est préférable de travailler avec des experts ; ils exploitent les vulnérabilités qui échappent à l’automatisation. À la fin de cette phase, vous avez essayé d’obtenir des privilèges de haut niveau dans le système et des informations sur le réseau en identifiant les données disponibles. Le hacker éthique doit également expliquer les résultats de l’exploitation des cibles de grande valeur.

Analyse des risques et recommandations, examen, rapports

Risk-Analysis-and-Recommendation-Review-Reporting

Après la phase d’exploitation, le testeur produit un rapport documentant les résultats. Ce rapport doit être utilisé pour corriger les vulnérabilités découvertes.

Un bon rapport de test d’intrusion est un référentiel de vulnérabilités bien documentées dont le contenu aide l’organisation à remédier aux risques de sécurité. Mais le meilleur rapport sera complet sur toutes les vulnérabilités découvertes et leurs scores CVVS, des résumés des risques techniques, l’impact possible sur l’entreprise, une couverture détaillée de la difficulté d’exploitation, et des conseils tactiques.

En outre, 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 aura un avis sur la question de savoir si le test répond aux besoins du cadre applicable. En conclusion, il est préférable que le rapport soit accompagné d’une explication générale et d’un guide technique.

Après la rédaction et la présentation des rapports, il est essentiel de nettoyer le système. Il s’agit de remettre le système dans l’état où il était avant que le test ne rétablisse les modifications par défaut. Les activités de nettoyage consistent à retirer tous les exécutables, les fichiers temporaires et les scripts des systèmes compromis, à éliminer les comptes d’utilisateurs créés pour se connecter au système compromis et à supprimer les rootkits dans l’environnement.

Remédiation

Dernière étape, la remédiation est du ressort de l’organisation. Guidée par les rapports et les résultats des tests de pénétration, l’organisation cible les vulnérabilités, analyse les impacts potentiels, informe la prise de décision pour aller de l’avant et influence les stratégies de rectification.

Étant donné que cette étape consiste à améliorer les erreurs passées, la correction de toutes les vulnérabilités exploitables doit se faire dans un délai raisonnable. Parfois, cette phase peut se prolonger pendant un certain temps afin de répéter les tests sur les mises à jour effectuées ou de mettre en œuvre différents tests.

Application pratique des Pen Tests : Un guide étape par étape

Pour cet exemple, nous avons choisi d’utiliser le framework Metasploit. Vous pouvez créer votre propre flux de travail ; en voici un typique pour vous aider à démarrer. Commencez par installer le framework.

Si vous êtes sous Linux/macOS, utilisez la commande :

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

Si vous êtes sous Windows, utilisez le dernier programme d’installation de Windows. Ou utilisez la commande Shell :

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

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

If( ! (Test-Path $InstallLocation) ){ New-Item -Path $InstallLocation -ItemType Directory
    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..

Démarrez un projet – Il s’agit de votre espace de stockage de données et de votre espace de travail. Comme vous pouvez avoir des exigences différentes pour les divers sous-réseaux de votre organisation, l’organisation de votre travail améliorera votre efficacité. Par exemple, si vous effectuez un test d’intrusion pour les équipes informatiques et les ressources humaines, vous voudrez générer des résultats distincts.

create new project
Source de l’image – MetaSploit

Obtenir des données sur les cibles – Ici, vous ajoutez des données à votre projet par le biais d’un scan de découverte ou de l’importation de données existantes. Scannez les cibles pour énumérer les ports ouverts afin de visualiser les services d’un réseau. Utilisez l’option scan. Saisissez ensuite les adresses IP sur lesquelles vous souhaitez travailler, chacune sur une seule ligne. Vous pouvez également utiliser l’option d‘importation pour importer des données à partir d’un fichier local.

get target data
Source de l’image – MetaSploit

Afficher/gérer les données de l’hôte – Vous pouvez consulter les données au niveau de l’hôte ou du projet. Vous pouvez passer d’une IP à l’autre pour obtenir une vue unique de l’hôte.

image-45
Source de l’image – MetaSploit

Recherche de vulnérabilités – Lancez une recherche de vulnérabilités à l’aide des options Nexpose. Cette étape s’appuie sur les bases de données de vulnérabilités pour établir une correspondance si une vulnérabilité est trouvée.

Exploiter les vulnérabilités – Vous pouvez exploiter les vulnérabilités à l’aide d’un assistant de validation transparent. Vous pouvez également utiliser Nexpose.

Activité post-exploitation – Collectez les données de l’exploitation via l’onglet session ; cliquez sur“collecter“.

image-46
Source de l’image – MetaSploit

Nettoyer – Une fois la collecte de 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 un certain nombre de rapports qui constituent un point de départ pour la consolidation des données et la compilation des résultats.

Vous trouverez un guide de démarrage rapide détaillé sur les tests d’intrusion dans le Guide de démarrage rapide de Metasploit.

Outils courants pour les tests d’intrusion

Les outils les plus courants sont Sn1per, Metasploit et Commix.

#1. Sn1per

Sn1per est un outil d’investigation des vulnérabilités qui valide l’impact des attaques côté client dans les instances de hack. Vous pouvez l’utiliser pour simuler des attaques à distance et au niveau de l’utilisateur dans un environnement contrôlé. Sn1per a 6k étoiles GitHub. Il sert également d’organe de presse pour l’outil. Avec Sn1per, vous pouvez gagner du temps en automatisant les outils open-source et commerciaux pour énumérer les vulnérabilités.

#2. Metasploit

Metasploit est un gigantesque framework de pen test développé grâce à l’unité des connaissances partagées entre les communautés open-source. Il compte 31,2 millions d’étoiles sur GitHub, ce qui témoigne d’un grand intérêt pour le monde du logiciel. Metasploit est soutenu par une collaboration de passionnés de sécurité dont l’objectif est d’éliminer les vulnérabilités et d’améliorer la sensibilisation à la sécurité.

#3. Commix

Commix est un excellent outil d’exploitation de l’injection de commandes dans les systèmes d’exploitation. Bien que Commix soit spécialisé dans les vulnérabilités d’injection de commandes, il est facile à utiliser, gratuit et open-source, compatible multiplateforme, portable et modulaire. Il a obtenu 4k étoiles GitHub. Il est gratuit et open source.

Le mot de la fin

Il est essentiel pour les entreprises de décomposer les étapes des tests de pénétration afin d’améliorer la résilience de leurs produits numériques face à l’augmentation des cyberattaques. Les cybercriminels contournant les solutions de sécurité traditionnelles, la simulation d’attaques réelles par le biais de tests de pénétration est un moyen efficace de naviguer dans le paysage en constante évolution des cybermenaces.

En adaptant le test d’intrusion aux besoins spécifiques de votre organisation, vous pouvez garantir l’efficacité des politiques de sécurité. En passant par toutes les étapes du test d’intrusion, vous vous assurez d’obtenir le meilleur retour sur investissement en matière de cybersécurité.

Pour réussir un test d’intrusion, faites preuve d’intelligence. Commencez par acquérir des informations sur le test. Développez ces informations jusqu’au niveau de la reconnaissance. Un bon point de départ pour votre reconnaissance est de définir les objectifs de portée à cibler sur le système à vérifier.

Ensuite, scannez le système afin d’en avoir une connaissance approfondie et d’identifier les vulnérabilités. Passez au lancement d’une attaque en veillant à ne pas endommager le système. Ensuite, générez des rapports utiles qui guident les actions correctives. N’oubliez pas de nettoyer et de restaurer le système dans son état d’origine.

Lorsqu’ils sont utilisés correctement, les tests de pénétration améliorent la posture de sécurité de votre organisation en identifiant et en corrigeant les vulnérabilités. Alors que de nombreuses organisations migrent vers le cloud et adoptent de nouvelles technologies, les tests de pénétration deviennent essentiels dans le domaine de la sécurité de l’information. En fait, 75 % des entreprises utilisent des tests d’intrusion pour examiner leur position en matière de sécurité. Ou pour des raisons de conformité. Si vous pouvez accorder toute l’attention nécessaire et traiter chaque étape du test de manière indépendante, vous trouverez toujours un intérêt à effectuer des tests de pénétration.

Ensuite, consultez les outils gratuits de test de pénétration en ligne (Pentest) pour tester la sécurité des applications.