Pentest : Le test ultime pour s’assurer de la sécurité de votre produit !
À l’occasion du Forum Incyber Europe qui avait lieu à Lille, on va parler cybersécurité et s’intéresser à un moyen de vérifier que votre produit est sécurisé : le pentest.
Commençons par expliquer le concept à ta grand-mère
Imagine que tu as une maison très précieuse et que tu veux t'assurer que personne ne peut y entrer sans autorisation. Tu engages un détective privé pour essayer de trouver toutes les failles possibles : portes mal fermées, fenêtres ouvertes, etc. Le détective te fait un rapport détaillé de toutes les failles qu'il a trouvées, et tu peux ensuite les réparer pour mieux protéger ta maison. Un pentest, c'est un peu comme ce détective privé, mais pour les applications informatiques.
Let’s dive in !
Pentest est le diminutif de Penetration Test, et c’est une évaluation de sécurité d’un système qu’il soit informatique ou organisationnel qui a pour objectif d’en trouver les failles. L’identification de ces failles permet alors de mettre en place des correctifs mais aussi des formations adaptées.
Un pentest peut porter sur des scopes différents allant d’une application web à tout le système d’information selon les besoins. Un pentest peut aussi être un peu plus concret avec une partie d’ingénierie sociale. L’objectif ici sera d’utiliser différentes techniques comme le phising ou même le test d’intrusion physique pour accéder à des données sensibles de l’entreprise.
Les différentes conditions de test
Un pentest peut se faire dans différentes conditions :
Black Box Testing
Lors d’un test en back box, le testeur n'a aucune connaissance préalable du système. Il va alors agir comme un attaquant externe qui doit comprendre le système et analyser comment il peut essayer de l’attaquer. Même si les pentesteurs agissent comme de réels attaquants, ils vont attaquer le système en faisant en sorte de ne pas supprimer ou altérer des données.
L’avantage de ce genre de test est le fait qu’il va simuler une attaque réelle, et va permettre de découvrir des vulnérabilités que tout le monde pouvait ignorer. Mais ce genre de pentest va être plus long et coûteux, car le testeur doit tout découvrir par lui-même.White Box Testing
À l’inverse dans un test en white box, le pentesteur a une connaissance complète du système, y compris le code source, l'architecture et les configurations.
Cela permet une évaluation approfondie et détaillée des vulnérabilités internes mais cela peut ne pas refléter les conditions réelles d'une attaque externe.
Grey Box Testing
Entre les deux, on retrouve les tests en Grey Box où le pentesteur a une connaissance partielle du système, généralement quelques indications sur l’architecture globale.
Le gros avantage de ce type de tests est que cela combine les avantages des tests en boîte noire et en boîte blanche, offrant une évaluation plus équilibrée. Mais pour être pertinent cela nécessite de trouver un équilibre entre les informations fournies et celles à découvrir.
Comment ça se déroule ?
Un pentest se déroule généralement en plusieurs étapes :
Préparation
Cette phase va servir à définir les objectifs du pentest en spécifiant quels systèmes on veut évaluer et les différents types de tests à réaliser. Elle aura aussi pour but de rassembler toutes les informations nécessaires sur le système, y compris les configurations, les documents et les accès.
Reconnaissance
Cette première phase du pentest permet de collecter des informations sur le système cible et de les analyser pour identifier les points d'entrée potentiels et les vulnérabilités.
Exploitation
Une fois les vulnérabilités identifiées, le pentesteur va utiliser des techniques d'attaques pour les exploiter. Durant cette phase, il va aussi documenter tout son processus d’attaque y compris les outils utilisés, les vulnérabilités découvertes et les résultats obtenus.
Rapport :
Enfin, il va préparer un rapport détaillé décrivant les vulnérabilités découvertes, leur criticité et les recommandations pour les corriger.
Correction :
La dernière étape et la plus importante du pentest c’est la mise en application des correctifs et la vérification par le pentesteur de leur bonne application.
Un pentest se matérialise par une attestation et une note. L’organisme va souvent donner une première note qui sera ensuite revue selon la bonne prise en compte des recommendations de correctif.
Et d’un point de vue Product ?
Même si c’est un sujet avant tout sous la responsabilité du CTO et/ou des équipes sécurité, les pentests sont importants pour les product manager pour deux raisons :
Les pentest sont maintenant demandés par un grand nombre de clients et notamment les “grands comptes” ou les entreprises qui manipulent des données sensibles. En tant que PM, il est donc important de l’avoir en tête si jamais votre stratégie produit pivote vers ce type de persona.
Un pentest cela a un impact sur votre roadmap donc autant le prendre en compte dès le début. Premièrement, cela va mobiliser une partie de vos développeurs pendant la phase de préparation pour identifier le scope du pentest, préparer les comptes de tests etc. Enfin, comme je le disais plus haut, le plus important dans un pentest c’est de prendre en compte les recommandations. Et comme personne n’est parfait du premier coup, autant directement prévoir dans votre roadmap quelques sprints/cycles pour les appliquer.
Si jamais vous êtes dans une petite équipe tech et qu’un pentest à un gros impact sur votre vélocité, essayez de le planifier dès le début dans une période qui correspond à une baisse de pression pour l’équipe tech (ex: souvent en été pour un SaaS). C’est important d’y penser dès le début car les pentest ont en général une durée de validité d’un an. Donc si ton entreprise ne réalise pas déjà de pentest, on est dans le timing parfait pour trouver un prestataire et en prévoir un cet été.