Applications. Le testeur de pénétration utilise des outils automatisés et des tests manuels pour rechercher les vulnérabilités dans les applications et les bases de données connectées. Il peut s'agir d'examiner les fichiers binaires de l'application ou les processus d'autorisation, le chiffrement, le potentiel de SQLi et d'autres méthodes d'attaque similaires.
Réseaux. Le réseau doit faire l'objet de tests de pénétration rigoureux en tant que périmètre de sécurité de l'entreprise (du moins en théorie). Le processus implique généralement une analyse systématique des contrôles d'accès administratifs, du protocole de sécurité SSL, des protocoles de transport chiffrés, des certificats, de la segmentation du réseau, etc.
Cloud. Avec le cloud, le testeur de pénétration vérifie les configurations système, les interfaces de programmation d'applications (API) et le stockage. Le testeur peut également rechercher des instances cloud qui ont été configurées sans la mise en place des règles standard. C'est plus courant qu'on ne le pense. Un développeur bien intentionné, mais mal informé, peut déployer une application et une base de données sur une plateforme cloud sans appliquer de mesures de sécurité ni même informer quiconque de l'existence de l'instance cloud.
Processus de développement logiciel. Le flux de travail DevOps et le pipeline d'intégration continue/déploiement continu (CI/CD) sont des étapes où les développeurs introduisent involontairement des bugs et des erreurs de code, rendant l'application vulnérable. En effectuant des tests de pénétration automatisés sur les DevOps et le pipeline CI/CD, le testeur peut détecter des failles cachées qui ne peuvent pas être détectées avec l'analyse de code statique. Le testeur de pénétration tente également d'accéder au flux de travail de développement et d'insérer du code malveillant dans la base de code. Il fera de même avec les conteneurs comme Docker.
Appareils. Les ressources matérielles peuvent être vulnérables aux violations tout autant qu'un réseau ou une application. Un testeur de pénétration tente d'infiltrer l'appareil en utilisant les vulnérabilités présentes dans ses fichiers binaires d'application, dans son micrologiciel et dans son logiciel du système d'exploitation. Les testeurs de pénétration trouvent souvent des faiblesses dans les appareils dépourvus de correctifs de sécurité.
API. Un testeur de pénétration utilise une combinaison de processus de test d'API manuels et automatisés pour déterminer si une API présente l'une des 10 principales vulnérabilités de sécurité d'API selon l'Open Worldwide Application Security Project (OWASP). Par exemple, cela comprend l'autorisation brisée au niveau de la propriété de l'objet (BOLA). Dans le même temps, il vérifie qu'une API ne présente pas de limitation de débit ou de problème d'authentification des utilisateurs.