LE PENTEST, PARLONS-EN !

29 Janvier 2020
introduction_au_pentest
Avec une hausse de la cybercriminalité prévue en 2020, les entreprises redoutent de plus en plus les risques de cyberattaques. Afin de vérifier la solidité de leurs différents moyens de protection, certaines sociétés ont mis en place des tests d'intrusion.

En 2019, dans le “Cost of a Data Breach Report” IBM a estimé qu’une fuite de données coûte en moyenne à un entreprise 3.92 millions de dollars US.
https://newsroom.ibm.com/2019-07-23-IBM-Study-Shows-Data-Breach-Costs-on-the-Rise-Financial-Impact-Felt-for-Years

L’article souligne également que pour les entreprises qui ont mis en place des équipes et procédures pour la réponse à incidents et qui testent ces procédures, une fuite de données coûte, en moyenne, $1.23 millions en moins. 

Alors comment vérifier que les mesures de sécurité en place au sein de votre entreprise sont efficaces ? Comment s’assurer que la nouvelle application mobile que vous souhaitez déployer ne va pas laisser fuiter des données confidentielles ou encore que votre équipe SOC est capable de détecter une attaque en temps réel ?

Une solution existe : le test d'intrusion. Cet article, le premier d’une série, va expliquer les bases d’un tel test et comment en tirer le plus de valeur ajoutée.

 

Le pentest c'est :

Un pentest (raccourci de “penetration test” en anglais), aussi appelé "test d'intrusion" ou "hacking éthique" en Français, est une méthode d'évaluation de la sécurité d'un système d'information en se mettant dans la peau d'un acteur malveillant. Souvent, les pentesteurs (les personnes qui effectuent le pentest) utilisent une approche en plusieurs étapes, basée sur des scénarios d’attaques multi-vectoriels alliant dans un premier temps l’identification des vulnérabilités puis leur exploitation.

Un pentest peut viser un site web (web app), une application lourde, une application mobile, un réseau informatique complet, les bureaux physiques d'une entreprise, des terminaux de paiement sur les autoroutes, etc. Des cibles très nombreuses et diversifiées.

Les objectifs d'un pentest peuvent également être variés : tester les réactions et processus des équipes de sécurité internes en cas d’une attaque, valider le niveau de sécurité d’une nouvelle application, valider une exigence réglementaire (PCI DSS ou HIPAA par exemple), identifier les lacunes du système de défense en place, tester la sécurité des nouveaux locaux du siège social …

Pour être efficace, un pentest doit permettre d’identifier les risques réels pour que votre organisation subisse une cyber attaque ET les impacts que cette attaque peut avoir sur les aspects clés de l’entreprise et le business.

Dans le cadre de cet article nous allons nous concentrer plus spécifiquement sur les pentests des applications web, mobiles et infrastructures. 

 

Le pentest, ce n'est pas :

Une rapide parenthèse sur la terminologie : 

Il faut éviter de confondre un pentest et un audit de sécurité. Les audits de sécurité ont, souvent, un périmètre plus large et peuvent être organisationnels ou techniques. En général, lorsqu’on ne teste pas l’exploitabilité des vulnérabilités trouvées, on ne peut pas parler de pentest.

De même, les scans de vulnérabilités ne sont qu’une composante des pentests. Ces scans énumèrent les failles trouvées à un instant T sans pour autant les analyser ni s’assurer qu’elles sont exploitables (et donc parfois générer des faux positifs).

Le pentest n’est pas non plus une solution magique pour la protection du Système Informatique de l’entreprise. C’est plutôt une composante, certes importante, du cycle continu d’amélioration de la sécurité du SI qui vise à confirmer l’efficacité ou à identifier les points faibles des stratégies et méthodes mises en place.

 

illustration_cycle_pentest

 

Par exemple, dépenser du budget sécurité dans un pentest pour que le rapport final indique que “votre réseau a été pénétré à cause des logiciels et équipements non mis à jour” car vous n’avez pas de politique de gestion de patchs n’est pas très judicieux. 

Il serait plus pertinent, avant, d’investir dans :

  • L'éducation des utilisateurs via des e-formations, des workshops, des campagnes de test (phishing par exemple).
  • Une analyse des risques et un inventaire de vos actifs.
  • Une solution antivirus à jour et bien déployée.
  • Une solution de protection mail (avec filtres anti-spam et anti-malware) et une configuration sécurisée des passerelles.
  • Une solution de sauvegarde (hors ligne si possible)
  • Une licence pour un scanneur de vulnérabilités et du temps pour lancer des scans, identifier les problèmes les plus critiques (et les raisons de leur présence) puis les corriger. Le refaire de façon régulière.
  • Une politique efficace, et suivie, de gestion des mises à jour. Penser à y inclure les équipements réseau, les périphériques (imprimantes par exemple) et les terminaux mobiles.
  • Des outils de centralisation, protection, corrélation et analyse de logs.
    Ces outils pourront également aider, lors du pentest, à mieux entraîner vos équipes de sécurité à la détection et réaction en cas d’attaques réelles.

Ce n’est qu’une fois que tous ces points sont traités qu’il est pertinent de faire intervenir des experts offensifs.

Et pour terminer ce chapitre, si un “pentest” est fait en 2 jours-hommes, ce n’est probablement pas un pentest. Si un prestataire vous vend ce service, c’est sûrement un simple scan de vulnérabilités packagé dans un joli rapport. 

 

Bien cibler le pentest : 

La première question à se poser est “Pourquoi faisons-nous ce pentest ?”.

Parfois, en fonction de la réponse la cible peut être plus ou moins évidente :

  • Dans le cadre du déploiement d’une nouvelle application web ou mobile :
    • Pentester l’application et l’infrastructure back-end pour s’assurer que les données sensibles sont bien sécurisées est logique.
  • Pour passer une certification :
    • En général, si une certification exige des pentests, le périmètre est imposé (pour PCIDSS par exemple, c’est l’ensemble du CDE - Cardholder Data Environment).
  • Suite à un changement majeur dans l’infrastructure (déploiement d’un réseau WIFI par exemple)
    • Ce changement expose-t-il le réseau interne à de nouveaux dangers ?

Parfois la raison du pentest est plus large :

  • Tester les procédures de réponse à incidents ou la préparation des équipes de sécurité
  • Identifier les failles dans les mesures de sécurité en place

 

Dans ces cas-là, bien que cela puisse être un exercice intéressant, pentester tous vos actifs exposés sur internet n’est peut-être pas la meilleure approche.

Pour augmenter la valeur ajoutée d’un pentest, il faut plutôt penser en terme d’actifs et processus critiques au sein de votre organisation et en faire des “trophées”. Ainsi, quand l'objectif des pentesteurs est d’accéder à une base de données clients confidentielle ou perturber une activité critique, l’impact peut être beaucoup plus facilement traduit en termes business et présenté aux décideurs.

Cette approche permet également d’éviter le pédantisme technique où des failles techniques très intéressantes techniquement sont identifiées mais dont l’exploitation lors d’une attaque réelle reste complexe et peu pratique.

Par ailleurs, même dans le cadre d’un pentest plus large (tous les actifs exposés sur internet), il ne faut pas oublier de remettre les failles identifiées dans leur contexte. Si un serveur web de test est compromis, mais qu’il est totalement isolé dans une DMZ (DeMilitarized Zone, zone tampon entre le réseau local et internet par exemple) et qu’aucune propagation n’est possible, l’impact pour l’entreprise et le business est finalement très faible.

Une autre façon d’augmenter la valeur ajoutée du pentest est d’en profiter pour améliorer votre monitoring. Ce n’est pas tous les jours que les équipes défensives sont prévenues d’une attaque : récupérez le maximum de traces sur les cibles du pentest, mettez en place les protections et alertes pertinentes pour identifier les futures attaques semblables puis étendez ces leçons sur d’autres cibles potentielles. 

Pour terminer, si le scope du pentest est trop petit, vous risquez de passer à côté des failles importantes sur une autre partie de votre SI, d’où l’intérêt de cibler vos actifs critiques. 

Cependant, si le scope du pentest est trop large, d’autres problèmes vont se poser :

  • Le coût du pentest risque d’augmenter, aussi bien lors de la préparation que lors de l'exécution. 
  • La quantité d’informations remontées va également augmenter, ce qui peut parfois noyer les informations importantes.

 

Définir les conditions et préparer le pentest :

Une fois que les objectifs du pentest sont bien définis et les cibles identifiées, il est temps de définir les conditions pour son déroulement.

Le timing : 

Le bon moment pour faire un pentest peut varier en fonction de l’organisation du projet. Il serait par exemple judicieux pour une entreprise de e-commerce d’éviter la période de fin d’année où les équipes informatiques fonctionnent à pleine charge ou pour un éditeur de logiciels de réaliser un pentest avant la mise en production d’une application. 

Bien anticiper ces jalons permet également de laisser du temps aux équipes techniques pour corriger les failles remontées.

Dans tous les cas, il faudra valider les dates du pentest avec les responsables business impactés et le management pour s’assurer de leur support.

Les acteurs internes impliqués : 

En plus des responsables business mentionnés ci-dessus, il peut être pertinent d’impliquer les équipes d’administration/sécurité IT ou de développement. Elles peuvent apporter des détails supplémentaires et mieux guider les échanges avec les pentesteurs. 

Il faut également penser à identifier les contacts d’urgence (business & technique) et s’assurer qu’ils ont les pouvoirs de décision et d’action nécessaires pour arbitrer sur les questions remontées ou gérer un imprévu durant le pentest.

Les acteurs externes impactés : 

Il ne faut pas oublier de valider la possibilité légale et technique de réaliser des pentests avec vos partenaires externes ou prestataires s’ils sont impactés.

Par exemple, si vous voulez pentester votre site web vitrine mais que ce dernier est hébergé par un prestataire externe, il faut penser à obtenir son accord et vérifier les éventuels scénarios d’attaque interdits. 

Un exemple pour AWS : des pentests classiques sur les couches applicatives sont autorisés par défaut mais des tests type déni de service distribué (DDoS) sont interdits. (https://aws.amazon.com/fr/security/penetration-testing/)

Les environnements techniques :

Il ne faut pas oublier que malgré les précautions prises par les pentesteurs pour limiter l’impact des tests d’intrusion (sauf cas spécifiques où l’objectif est de tester la résilience de la cible), des effets de bord inattendus peuvent survenir. 

Pour limiter l’impact de ces effets de bord, il existe plusieurs solutions. La première et celle que l’on recommande le plus à nos clients : réaliser les pentests sur des environnements de test ou de pré-production.

Les pentesteurs pourront ainsi exploiter des scénarios d’attaques plus agressifs et utiliser des outils automatisés qui augmentent considérablement la portée et la qualité des tests. Il faut cependant s’assurer que les environnements de tests sont le plus proche possible de la production. 

L’autre recommandation est de réaliser (et tester) des sauvegardes des cibles, même sur un environnement de test. Ainsi, le retour aux conditions initiales sera plus simple à la fin du pentest. 

Par contre, il peut être contre-productif d’essayer de cacher la poussière sous le tapis (ou comme le disent nos collègues anglais “Don’t put the lipstick on a pig”) en améliorant la sécurité des cibles spécialement pour le pentest, le but étant d’être le plus proche des conditions réelles de fonctionnement. 

Il existe cependant quelques vérifications simples qui vont vous permettre de marquer facilement des bons points : 

  • Mettez à jour les actifs.
  • Supprimez les actifs oubliés ou inutilisés.
  • Vérifiez la complexité des mots de passe et changez ceux par défaut.
  • Limitez les accès aux interfaces d’administration.

 

La suite :

Nous venons de voir dans cet article ce qu’est un pentest, quand il est opportun d’en faire un, comment bien le cibler pour augmenter sa valeur ajoutée et comment se préparer aux échanges avec le prestataire de services qui va l’exécuter. 

Dans un prochain article je présenterai les différents types de pentests avec leurs avantages et inconvénients, les 7 grandes étapes d’un pentest selon la méthodologie PTES ainsi que les attentes à avoir vis à vis des livrables finaux.

 

photo_pavel_chvets_consultant_ausy

A propos de l'auteur, Pavel Chvets

 

Après plusieurs expériences dans des secteurs critiques et exigeants tels que la production industrielle et le bancaire, dont une partie réalisée à l'étranger, j’emploie aujourd’hui mes compétences hétéroclites et complémentaires en sécurité informatique, gestion de projets et gouvernance pour relever les défis de la cybersécurité au sein d’AUSY mais également développer cette offre auprès de nos clients.

 

 

 

 

Aussi n’hésitez pas à visiter notre page web dédiée à la cybersécurité

Parlons ensemble de vos projets. 

contactez-nous