14/05/2024

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

La méthode consiste généralement à analyser l’infrastructure d’un réseau informatique pour simuler l’attaque d’un utilisateur mal intentionné ou d’un logiciel malveillant (appelé malware). Le consultant, appelé un pentester, analyse les risques potentiels liés à une mauvaise configuration du système d’information, d’un défaut de configuration, de programmation informatique ou encore de vulnérabilités liées à la solution testée.

Le test de pénétration entraîne alors l’évaluation de différents niveaux et différents équipements. La tâche varie d’un environnement à l’autre, dépendant fortement de la posture sécuritaire (ou non), mise en œuvre au niveau de l’infrastructure du site.

En se plaçant dans la peau d’un attaquant, on peut alors être amené à évaluer une ou plusieurs applications web. On peut également réaliser de l’ingénierie sociale ainsi que des attaques de clients pour récupérer l’accès à un réseau client interne. Il faut être clair, un test de pénétration (aussi abrégé en pentest) nécessite d’agir comme si nous étions un intrus. Il faut donc s’identifier, au choix à :

  • un employé malintentionné
  • un attaquant qui a déjà percé le périmètre de sécurité

REMARQUE : certaines firmes demandent même des tests de pénétration externes, dans lesquelles on simule  une attaque venant d’Internet. Mais, il s’agit de cas assez rares voire exceptionnels. D’autres cherchent à évaluer la sécurité des réseaux sans-fils au sein de leurs bureaux. On peut même être amené à auditer le contrôle physique d’accès à certains sites. Cela peut se résumer par les étapes suivantes :

Lors du test d’intrusion, le pentester adopte ainsi la position de l’attaquant potentiel (également appelé hacker). Le principal objectif étant de trouver les vulnérabilités exploitables, en vue de proposer un plan d’actions permettant d’améliorer la sécurité du système d’information et empêcher au maximum, les pirates informatiques de compromettre les infrastructures internes d’une entreprise.

On distingue ainsi trois cas de figures d’analyse pouvant varier selon les attentes du client ou de l’entreprise concernée:

  • le testeur est dans la peau d’un attaquant potentiel sans information préalable (blackbox test).
  • le testeur possède un nombre limité d’informations : un compte, une clé… (greybox test)
  • le testeur possède toutes les informations dont il a besoin (whitebox test)

REMARQUE: les tests d’intrusion appelés red team ont pour objectif de simuler une attaque du système d’information de la société sans limite de temps, ni de périmètre. Ceux-ci se déroulent sur une période de temps plus longue (2 à 3 mois contre 1 à 2 semaines pour le pentest classique).

Ainsi, le test de pénétration commence donc avec une phase dite de pré-engagement qui prévoie de discuter avec le futur client "attaqué", pour cerner l’objectif à atteindre par le pentest et définir la portée du programme (extensions, environnement, paramètres du test…etc). Lorsque le client et le testeur se sont mis d’accord sur la portée du test et des différents sujets inhérents à celui-ci, le véritable test peut alors commencer.

ATTENTION : durant la phase de pré-engagement, il est très important de déterminer les différents points ci-dessous :

  • périmètre (adresses IP, équipements…)
  • tranche horaire de tests
  • information de contact
  • vérification de l’autorisation d’accès
  • mode de paiement/rémunération

Durant la phase dite d’information-gathering, le testeur recherche de l’information publique à propos du client et identifie de potentielles méthodes de connexion à son système. Le processus de recherche d’informations est connu sous l’appellation Open Source INTelligence  (abrégé en OSINT).

RAPPEL : il est interdit (et puni par la loi) d’attaquer ou de pénétrer des équipements dont on n’a pas la charge. La loi du 5 janvier 1988 (dite Loi Godfrain) permet de lutter contre la fraude informatique (c’est-à-dire le piratage ou l’atteinte aux systèmes automatisés de données) en punissant ce type de fraude. Cela vise aussi bien les systèmes (pour leur accès et leur maintien) que les données elles-mêmes (lorsqu’elles sont supprimées ou altérées).

En effet, tout testeur ayant déjà pratiqué l’exercice du pentesting, sait qu’il est préférable d’obtenir un consentement préalable quel que soit le cas de figure. D'autant que pour réaliser un test de pénétration, il est nécessaire de communiquer avec le client ou l’utilisateur final pour déterminer le périmètre et le contexte des vérifications à effectuer. Sans accord préalable, l’article 323-1 et 421-1 du code pénal prévoit ce qui suit:

En somme, lorsque l’on prévoit d’effectuer un test d’intrusion, il est raisonnable de prévenir les équipes informatiques de l’entreprise visée. Par ailleurs, il vaut mieux que le testeur appartienne à la société ciblée. Cela permet de simplifier l’imbroglio juridique que pose la réalisation d’un pentest.

Durant cette même phase le pentester peut être amené à utiliser des outils tels que les scanners de ports, afin d’avoir une idée des équipements fonctionnant, auxquels il a à faire (aussi bien sur le réseau Internet que celui en interne). Nous aurons l’occasion de revenir sur ce genre d’outil un peu plus loin.

Dans la phase threat-modeling, le testeur se base sur les informations récoltées précédemment pour déterminer la valeur de chaque cible découverte et d’en identifier les impacts éventuels afin de trouver une brèche d’accès au système cible. Cette phase d’évaluation permet au testeur de développer un plan d’action et de découvrir les méthodes d’attaque. Ici, on peut devoir utiliser des manipulations d’ingénierie sociale pour réaliser une stratégie d’attaque efficace et pénétrer le système d’informations ciblé.

Avant que le testeur ne puisse attaquer le système cible, il lui incombe d’effectuer une analyse des vulnérabilités. Il s’agit de la phase vulnerability analysis durant laquelle, le testeur tente de découvrir les vulnérabilités des systèmes à attaquer afin d’en tirer avantage durant la phase d’exploitation. A ce stade, le pentester commence à découvrir les vulnérabilités afin de déterminer ce que sera sa stratégie d’exploits qui pourront l’amener au succès de son entreprise. C’est durant cette phase que le testeur peut utiliser des scanners de vulnérabilités, se basant sur des bases de données et des tests avérés pour créer la meilleure liste de vulnérabilités présentes sur le système analysé.

ATTENTION : les scanners de vulnérabilités sont des outils très puissants, mais ils ne remplaceront jamais la pensée et l’imagination humaine. Il est donc conseillé de toujours vérifier les résultats en les confrontant à des analyses manuelles et des tests sur ses propres équipements. On reviendra ultérieurement sur ces scanners de vulnérabilités.

Durant la phase d’exploitation, le testeur exécute les exploits à l’encontre des vulnérabilités précédemment découvertes, en utilisant dans certains cas, un outil tel que Metasploit, permettant de tenter des accès au système client. Le succès de cette phase entraîne automatiquement l’accès à la phase de post-exploitation où le résultat des exploits accomplis s’accompagne d’informations additionnelles pour récupérer les données critiques, les accès aux autres systèmes juxtaposés…etc.

C’est à ce stade, qu’il faut interpréter ce que signifie concrètement l’utilisation de ces vulnérabilités pour le site visé. On va chercher à catégoriser les risques encourus pour chacun des exploits réalisés à l’encontre des vulnérabilités découvertes : lorsque l’on pénètre un système non mis à jour, mais qui ne fait partie d’aucun domaine ou d’aucun réseau critique et ne contenant aucune information d’intérêt pour un attaquant, les risques de vulnérabilités sont moindres que si l’on était capable de réaliser un exploit sur un contrôleur de domaine ou un système de développement du client.

IMPORTANT : durant la phase post-exploitation, il faut récolter les informations à propos des systèmes attaqués, chercher les fichiers d’intérêts vitaux, tenter d’élever les privilèges lorsque c’est nécessaire… On peut d’ailleurs aller plus loin en cherchant à pénétrer des machines non prévues dans le périmètre de l’attaque, afin de mettre en lumière la faiblesse de la posture sécuritaire du client.

Finalement, durant la phase de reporting, le testeur résume l’ensemble des éléments découverts, à la fois pour les exécutants et pour les techniciens. C’est à ce stade que l’on communique les découvertes au client de façon claire et explicite. Il faut notamment l’éclairer sur les procédures qu’il réalise correctement et sur celles qu’il doit améliorer pour rendre sa sécurité plus efficiente et surtout comment corriger les failles potentielles découvertes.

author avatar
Philippe PIERRE
A exercé de nombreuses années en tant qu'administrateur de base de données et comme administrateur Système Unix/Linux. Il a enseigné les réseaux au CNAM (Paris). Aujourd'hui, employé en tant qu'ingénieur infrastructure, au sein d'un laboratoire pharmaceutique et administrant un cluster de calculs HPC, il connaît parfaitement les environnements GNU/Linux dans le cadre d'une entreprise et des systèmes de haute disponibilité. Il aime partager son expérience.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail