Définition:
Un test de pénétration (pentest) est une attaque simulée autorisée effectuée sur un système informatique pour évaluer sa sécurité. Les testeurs de pénétration utilisent les mêmes outils, techniques et processus que les attaquants pour trouver et démontrer les impacts commerciaux des faiblesses dans un système. Les tests de pénétration simulent généralement une variété d’attaques qui pourraient menacer une entreprise. Ils peuvent examiner si un système est suffisamment robuste pour résister aux attaques à partir de positions authentifiées et non authentifiées, ainsi qu’une gamme de rôles système. Avec la bonne portée, un pentest peut plonger dans n’importe quel aspect d’un système.

Quels sont les avantages des tests de pénétration?

Idéalement, les logiciels et les systèmes ont été conçus dès le début dans le but d’éliminer les défauts de sécurité dangereux. Un pentest donne un aperçu de la façon dont cet objectif a été atteint. Les pentests peuvent aider une organisation à:

- Trouvez des faiblesses dans les systèmes
- Déterminer la robustesse des contrôles
- Soutenez la conformité aux réglementations de confidentialité et de sécurité des données (par exemple, PCI DSS, HIPAA, RGPD)
- Fournir des exemples qualitatifs et quantitatifs de la posture de sécurité actuelle et des priorités budgétaires pour la gestion

Quel niveau d’accès est donné aux Pentesteurs?

Selon les objectifs d’un pentest, les testeurs reçoivent divers degrés d’informations sur ou l’accès au système cible. Dans certains cas, l’équipe de pentest adopte une approche au début et s’en tient à cela. D’autres fois, l’équipe de test évolue sa stratégie à mesure que sa conscience du système augmente pendant le pentest. Il y a trois niveaux d’accès au pentest.

- Boîte opaque. L'équipe ne sait rien de la structure interne du système cible. Il agit comme le ferait des pirates, sondant pour toute faiblesse exploitable externe.
- Boîte semi-opaque. L'équipe a une certaine connaissance d'un ou plusieurs ensembles de références. Il connaît également les structures de données internes de la cible, le code et les algorithmes. Les pentesteurs peuvent construire des cas de test basés sur des documents de conception détaillés, tels que les diagrammes architecturaux du système cible.
- Boîte transparente. Les pentesteurs ont accès aux systèmes et aux artefacts système, notamment le code source, les binaires, les conteneurs et parfois même les serveurs exécutant le système. Cette approche fournit le plus haut niveau d'assurance dans le plus petit temps.

Quelles sont les principales phases des pentests?

Les pentesteurs simulent les attaques par des adversaires motivés. Pour ce faire, ils suivent généralement un plan qui comprend les étapes suivantes:

- Reconnaissance. Rassemblez autant d'informations sur l'objectif que possible à partir de sources publiques et privées pour éclairer la stratégie d'attaque. Les sources incluent les recherches sur Internet, la récupération d'informations d'enregistrement de domaine, l'ingénierie sociale, la numérisation de réseau non intrusive et parfois même la plongée à la benne à ordures. Ces informations aident les pentesteurs à cartographier la surface d'attaque de la cible et les vulnérabilités possibles. La reconnaissance peut varier avec la portée et les objectifs du pentest; Cela peut être aussi simple que de passer un appel téléphonique pour parcourir les fonctionnalités d'un système.
- Balayage (Scanning). Les pentesteurs utilisent des outils pour examiner le site Web ou le système cible pour les faiblesses, y compris les services ouverts, les problèmes de sécurité des applications et les vulnérabilités open source. Les pentesteurs utilisent une variété d'outils en fonction de ce qu'ils trouvent pendant la reconnaissance et pendant le test.
- Gain de l'Accès. Les motivations de l'attaquant peuvent inclure le vol, la modification ou la suppression des données; déplacer des fonds; ou nuire simplement à la réputation d’une entreprise. Pour effectuer chaque cas de test, les pentesteurs déterminent les meilleurs outils et techniques pour accéder au système, que ce soit par une faiblesse telle que l'injection SQL ou par des logiciels malveillants, l'ingénierie sociale ou autre chose.
- Maintenir l'accès. Une fois que les Pentesteurs ont accédé à la cible, leur attaque simulée doit rester connectée assez longtemps pour atteindre leurs objectifs d'exfiltration de données, de la modification ou d'abus de fonctionnalités. Il s'agit de démontrer l'impact potentiel.

Quels sont les types de pentests?

Une approche complète du pentest est essentielle pour une gestion optimale des risques. Cela implique de tester tous les domaines de votre environnement.

 - Applications Web. Les testeurs examinent l'efficacité des contrôles de sécurité et recherchent des vulnérabilités cachées, des modèles d'attaque et de toute autre lacune de sécurité potentielle qui peut conduire à un compromis d'une application Web.
 - Application mobile. En utilisant des tests manuels automatisés et étendus, les testeurs recherchent des vulnérabilités dans les binaires d'applications fonctionnant sur l'appareil mobile et la fonctionnalité côté serveur correspondant. Les vulnérabilités côté serveur comprennent la gestion des sessions, les problèmes cryptographiques, les problèmes d'authentification et d'autorisation et d'autres vulnérabilités de service Web courantes.
 - Réseaux. Ce test identifie commun aux vulnérabilités de sécurité critiques dans un réseau et des systèmes externes. Les experts utilisent une liste de contrôle qui comprend des cas de test pour les protocoles de transport cryptés, les problèmes de portée des certificats SSL, l'utilisation des services administratifs, etc.
 - Nuage. Un environnement cloud est considérablement différent des environnements traditionnels sur site. En règle générale, les responsabilités de sécurité sont partagées entre l'organisation en utilisant l'environnement et le fournisseur de services cloud. Pour cette raison, le pentest cloud nécessite un ensemble de compétences et d'expérience spécialisées pour examiner les différents aspects du cloud, tels que les configurations, les API, diverses bases de données, le cryptage, le stockage et la SEC.
 - Conteneurs. Les conteneurs obtenus de Docker ont souvent des vulnérabilités qui peuvent être exploitées à grande échelle. La mauvaise configuration est également un risque courant associé aux conteneurs et à leur environnement. Ces deux risques peuvent être découverts avec des pentests experts.
 - Dispositifs intégrés (IoT). Les appareils intégrés / Internet des objets (IoT) tels que les dispositifs médicaux, les automobiles, les appareils électroménagers à domicile, les équipements de plate-forme pétrolière et les montres ont des exigences de test de logiciels uniques en raison de leurs cycles de vie plus longs, de leurs emplacements distants, des contraintes de puissance, des exigences réglementaires, et plus encore . Les experts effectuent une analyse de communication approfondie ainsi qu'une analyse client / serveur pour identifier les défauts qui comptent le plus dans le cas d'utilisation pertinent.
 - Appareils mobiles. Les pentesteurs utilisent une analyse automatisée et manuelle pour trouver des vulnérabilités dans les binaires d'applications fonctionnant sur l'appareil mobile et la fonctionnalité côté serveur correspondant. Les vulnérabilités dans les binaires d'applications peuvent inclure des problèmes d'authentification et d'autorisation, des problèmes de confiance côté client, des contrôles de sécurité mal configurés et des problèmes de cadre de développement multiplateforme. Les vulnérabilités côté serveur peuvent inclure la gestion de session, les problèmes cryptographiques, les problèmes d'authentification et d'autorisation et d'autres vulnérabilités de service Web courantes.
 - Apis. Les techniques de test automatisées et manuelles sont utilisées pour couvrir la liste Top 10 Top 10. Certains des risques de sécurité et des vulnérabilités recherchent incluent l'autorisation du niveau d'objet brisé, l'authentification des utilisateurs, l'exposition excessive des données, le manque de ressources / limitation des taux, etc.
 - Pipeline CI / CD. Les pratiques DevSecops modernes intègrent des outils de numérisation de code automatisés et intelligents dans le pipeline CI / CD. En plus des outils statiques qui trouvent des vulnérabilités connues, les outils automatisés de pentest peuvent être intégrés dans le pipeline CI / CD pour imiter ce qu'un pirate peut faire pour compromettre la sécurité d'une application. Les pentests CI / CD automatisés peuvent découvrir des vulnérabilités cachées et des modèles d'attaque qui ne sont pas détectés avec une analyse de code statique.

Quels sont les types d’outils de pentest ?

Il n'y a pas d'outil unique pour le pentest. Au lieu de cela, différentes cibles nécessitent différents ensembles d'outils pour la numérisation de port, la numérisation des applications, les effractions Wi-Fi ou la pénétration directe du réseau. D'une manière générale, les types d'outils de pentest s'insèrent dans cinq catégories.   
   
- Outils de reconnaissance pour découvrir des hôtes réseau et des ports ouverts      
- Scanners de vulnérabilité pour découvrir les problèmes de services dans le réseau, les applications Web et les API      
- Des outils de proxy tels que des proxys Web spécialisés ou des proxys génériques d'homme dans le milieu      
- Outils d'exploitation pour obtenir des fondements du système ou l'accès aux actifs      
- Outils après l'exploitation pour interagir avec les systèmes, maintenir et élargir l'accès et atteindre les objectifs d'attaque

En quoi le test d’intrusion diffère-t-il des tests automatisés ?

Bien que le test d’intrusion soit principalement un effort manuel, les testeurs d’intrusion utilisent des outils de numérisation et de test automatisés. Mais ils vont également au-delà des outils et utilisent leur connaissance des dernières techniques d’attaque pour fournir des tests plus approfondis qu’une évaluation de la vulnérabilité (c’est-à-dire des tests automatisés).

Pentest manuel

Les tests d’intrusion manuels révèlent les vulnérabilités et les faiblesses qui ne figurent pas dans les listes populaires (par exemple, le Top 10 de l’OWASP) et testent la logique métier que les tests automatisés peuvent ignorer (par exemple, la validation des données, les contrôles d’intégrité). Un pentest manuel peut également aider à identifier les faux positifs signalés par des tests automatisés. Parce que les pentesteurs sont des experts qui pensent comme des adversaires, ils peuvent analyser les données pour cibler leurs attaques et tester les systèmes et les sites Web d’une manière que les solutions de test automatisées suivant une routine scriptée ne peuvent pas.

Tests automatisés

Les tests automatisés génèrent des résultats plus rapidement et nécessitent moins de professionnels spécialisés qu’un processus de pentest entièrement manuel. Les outils de test automatisés suivent automatiquement les résultats et peuvent parfois les exporter vers une plateforme de reporting centralisée. De plus, les résultats des tests de stylet manuels peuvent varier d’un test à l’autre, alors que l’exécution répétée de tests automatisés sur le même système produira les mêmes résultats.

Quels sont les avantages et les inconvénients du pentesting ?

Avec la fréquence et la gravité des failles de sécurité qui augmentent d’année en année, les entreprises n’ont jamais eu autant besoin de visibilité sur la manière dont elles peuvent résister aux attaques. Des réglementations telles que PCI DSS et HIPAA imposent des tests d’intrusion périodiques pour rester à jour avec leurs exigences. Avec ces pressions à l’esprit, voici quelques avantages et inconvénients pour ce type de technique de découverte de défauts.

Avantages du pentest

 - Trouve des lacunes dans les pratiques d'assurance de la sécurité en amont, telles que les outils automatisés, les normes de configuration et de codage, l'analyse de l'architecture et d'autres activités d'évaluation des vulnérabilités plus légères
 - Localise les failles logicielles et les vulnérabilités de sécurité connues et inconnues, y compris les petites qui, en elles-mêmes, ne soulèveront pas beaucoup d'inquiétudes mais pourraient causer des dommages matériels dans le cadre d'un modèle d'attaque complexe
 - Peut attaquer n'importe quel système, imitant le comportement de la plupart des pirates malveillants, simulant aussi près que possible un adversaire du monde réel

Inconvénients du pentest

 - Est laborieux et coûteux
 - N'empêche pas complètement les bogues et les défauts de se frayer un chemin dans la production