GENERALITE
Le test d'intrusion est une méthode d'évaluation de la sécurité d'un système ou
d'un réseau informatique.
La méthode consiste généralement à simuler une attaque d'un utilisateur mal
intentionné, voire d'un logiciel malveillant. On analyse alors les risques potentiels dus
à une mauvaise configuration d'un système, d'un défaut de programmation ou encore
d'une vulnérabilité liée à la solution testée. Lors d'un test d'intrusion, nous nous
retrouvons dans la position de l'attaquant potentiel. Le principal but de cette manœuvre
est de trouver des vulnérabilités exploitables en vue de proposer un plan d'actions
permettant d'améliorer la sécurité d'un système.
La différence avec un simple audit de sécurité est la motivation pour la
personne à aller jusqu'à exploiter les failles, montrant ainsi la vulnérabilité.
L'exploitation n'a bien sûr pas pour but de détruire ou endommager le système, mais
elle permettra de situer le degré du risque lui étant associé.
L'analyse peut se réaliser selon trois cas :
1. Le testeur se met dans la peau d'un attaquant potentiel, et ne possède
aucune information ;
2. Le testeur possède un nombre limité d'informations
3. Le testeur possède les informations dont il a besoin.
OBJECTIFS, AVANTAGES ET LIMITES DES TESTS
D’INTRUSION
Les principes de réalisation des tests d’intrusion présentent, par rapport à d’autres méthodes
d’analyse de la sécurité, des avantages, mais aussi des limites. Il convient donc de bien
mesurer ces insuffisances, et de les mettre en perspective avec les objectifs que l’on veut
atteindre.
- Objectifs pouvant être satisfaits par des tests d’intrusion
o Mettre à l’épreuve la sécurité d’un environnement et qualifier sa
résistance à un certain niveau d’attaque
Les tests d’intrusion peuvent en effet être comparés à certaines méthodes de qualifications du
monde industriel (résistance de coffre fort, endurance de moteurs d’avions) où l’on vérifie que
le m mécanisme testé résiste pendant un certain temps à des attaques ou des agressions d’un
niveau défini. Dans le cas des tests d’intrusion, le résultat se réduit à savoir si l’environnement
testé a résisté& aux attaques pendant le laps de temps imparti (en général quelques jours). Si
tel est le cas, alors on peut supposer que la plupart des attaquants n’iront pas aussi loin.
Cette approche a l’avantage de permettre de tirer des enseignements d’un test qui échoue,
c'est-à-dire pour lesquels aucune intrusion n’a pu être réalisée dans le laps de temps imparti.
On peut donc supposer que la sécurité existante est adaptée au niveau de risque accepté. Il
convient de définir très précisément, avant le test, la durée du test et ce qui sera considéré
comme une intrusion afin de pouvoir tirer précisément des enseignements en matière de
résistance à l’intrusion.
Sensibiliser les acteurs (management, informaticiens, utilisateurs) au
sein de l’entreprise
Les tests d’intrusions sont particulièrement efficaces pour sensibiliser les acteurs. En effet, par
rapport à des méthodes d’analyse de la sécurité comme l’audit, le test d’intrusion, s’il
« réussit », permet de disposer d’arguments de poids pour inciter les acteurs à prendre
conscience des risques. Il peut même être envisagé de récolter des preuves pour convaincre
les plus récalcitrants. Les tests d’intrusions permettent également d’illustrer les problèmes de
sécurité issus des interactions complexes et non prévues, interactions qui sont parfois
difficiles à appréhender lors d’audits de sécurité se focalisant sur des points de contrôle
« atomiques »
Toutefois il faut considérer le risque que les tests d’intrusion n’aboutissent pas à des résultats
concluants. Dans ce cas là, le pouvoir de sensibilisation des acteurs devient inexistant. Au
contraire certains peuvent croire, à la robustesse du système.
Test de vulnérabilités
Un test de vulnérabilité est un test d’identification de failles connues. Le résultat du test de
vulnérabilités est un tableau synthétique, avec pour chaque faille, la liste des machines ou
équipements qui semblent vulnérables. Un test d’intrusion commence par une phase de
recherche de vulnérabilités. Celle-ci ne donne généralement pas lieu à la délivrance d’un
tableau des vulnérabilités, car elle sert d’entrée pour les phases suivantes du test d’intrusion.
Lors d’un test d’intrusion, l’équipe de test va tenter de mettre en œuvre les vulnérabilités
trouvées, utiliser les interdépendances entre ces vulnérabilités, et essayer d’aller plus loin. Ce
n’est pas le cas lors d’un test de vulnérabilités. Le test de vulnérabilités est réalisable de
manière automatique, et proposé en mode ASP par certains fournisseurs. Il est court et peu
couteux. , donc peut être réalisé avec une fréquence plus importante que les tests d’intrusion.
Enfin, le test d’intrusion réalisé par une équipe permettra de détecter des vulnérabilités qu’un
test de vulnérabilité ne verra pas.
- Objectifs ne pouvant être satisfaits par des tests d’intrusion
o Avoir l’assurance qu’un environnement informatique est
sécurisé
Un test d’intrusion ne peut constituer la preuve de la sécurité d’un
environnement. Si aucune vulnérabilité significative n’est mise en évidence lors des
tests, il est impossible de conclure que l’environnement testé est sécurisé. En effet, on
ne peut exclure que les testeurs n’aient pas identifié certaines vulnérabilités existantes,
par manque de connaissance ou de moyens, ou parce que ces vulnérabilités parce que
ces vulnérabilités ne peuvent pas être mises en évidence directement dans les
conditions des tests d’intrusion. On ne peut pas non plus exclure que, dans le futur, des
vulnérabilités apparaissent au sein des briques logicielles constituant l’environnement
ou que son paramétrage de sécurité soit modifié.
Pour obtenir un niveau d’assurance suffisant sur la sécurité d’un environnement
informatique, il est plus légitime de réaliser un audit de sécurité, qui prend notamment
en compte les aspects procéduraux et organisationnels, en plus des questions
techniques.
o Identifier exhaustivement les vulnérabilités de sécurité
d’un environnement
Comme les autres méthodes, un test d’intrusion ne permet pas d’être certain que
toutes les vulnérabilités existantes au sein d’un environnement seront identifiées. Une
fois une vulnérabilité identifiée sur un système et utilisée pour en prendre le contrôle,
une personne réalisant un test d’intrusion aura tendance à s’occuper d’un autre
système, sans tenter d’identifier d’autres vulnérabilités sur le système dont elle vient
de prendre le contrôle. Or il est à fait possible que plusieurs vulnérabilités de sécurité
existent sur ce système. Par ailleurs, un test d’intrusion ne permet en général pas de
détecter d’éventuelles vulnérabilités dans les couches de protection au delà de la
première couche présentant un niveau de sécurité suffisant.
Il faut également noter que des tests d’intrusion ne permettent pas d’identifier
directement les faiblesses de sécurité d’ordre organisationnel et procédural, et se
limitent aux faiblesses techniques.
ACTEURS D’UN TEST D’INTRUSION
On peut considérer qu’il y a deux grandes catégories d’acteurs :
- Les acteurs internes : l’entreprise souhaitant effectuer ce test
- Les acteurs externes : le prestataire de service proposant cette prestation,
les fournisseurs d’accès, les hébergeurs. Ce prestataire pourrait être
interne à l’entreprise s’il dispose des compétences et d’une indépendance
suffisante
Méthodologie des tests d'intrusion
Sysdream utilise plusieurs méthodologies reconnues mondialement pour mener à bien
ses tests d'intrusion.
• OSSTMM
L’OSSTMM (Open Source Security Testing Methodology Manual) est une
méthodologie Open Source globale dédiée aux tests techniques.
• OWASP Testing Guide
L’OWASP (The Open Web Application Security Project) est un organisme
mondialement reconnus pour ses projets de sécurité Web. Le « Testing Guide » est un
projet Open Source ayant pour but de créer une méthodologie de test concentré sur les
applications Web et constamment mis à jour par des professionnels de la sécurité.
• LPT (Licencied Penetration Tester)
Méthodologie propriétaire associée à la certification ECSA / LPT de Eccouncil.
Chaque test d'intrusion est déclinable selon les modes suivants :
• Boite noire (ou test en aveugle)
Ce mode a pour objectif de vérifier le niveau de sécurité réel d’un Système
d’Information en se simulant la démarche d’un éventuel attaquant n’ayant aucune
information ni accès sur le système cible.
• Boite grise
Ce mode a pour objectif de vérifier le niveau de sécurité réel d’un Système
d’Information en se simulant la démarche d’un éventuel attaquant ayant un accès
utilisateur légitime avec les droits associés. Ce mode permet généralement de simuler
les actions possibles pour un collaborateur malveillant.
PROCEDURE DE TEST D’INTRUSION
Un test d’intrusion permet d’évaluer le niveau de l’entreprise face à
des attaques réalistes, qui prendront en compte, en sus de la technique, l’humain qui
compose l’entreprise.
Procédure et suivi des tests :
Initialisation : La réunion d’initialisation permet de donner une vision claire de la
procédure des opérations et de poser les limites du périmètre de test. Lorsque l’on
parle de périmètre, les méthodes d’attaque vous seront aussi soumises, par exemple, le
fait d’avoir le droit (ou non) d’utiliser les techniques d’ingénierie sociale sur vos
employés, et si oui, par quels vecteurs. De même, lors de cette réunion, des contacts
sont clairement définis pour les deux parties, qui serviront tout au long des tests
d’intrusion afin de garder un contact permanent, que nous appelons « fil rouge ».
Découverte du périmètre : Une fois la phase de découverte du périmètre suffisamment
avancée, les résultats seront présentés au contact de la société cliente.
La validation de cette phase a plusieurs buts :
1. S’assurer de l’exhaustivité de la découverte du périmètre.
2. Définir la sensibilité et la criticité des différents éléments, qui varieront
grandement en fonction de votre activité.
3. Si les attaques d’ingénierie sociale sont autorisées, établir avec vous un
échantillon représentatif des cibles potentielles.
Phase d’élaboration des scénarios et de la procédure des attaques : Au cours de cette
étape, un compte rendu journalier vous sera fait, afin que vous puissiez garder une
vision claire de l’avancée des tests en temps réel.
Avancée dans le réseau local : Cette étape, qui suit directement l’attaque du périmètre
externe, permet d’évaluer, de manière non exhaustive, le niveau de sécurité du réseau
local, et la facilité avec laquelle un pirate pourrait progresser dans ce dernier. Étant
donné que nos équipes travaillent « en aveugle », vous pourrez orienter les recherches
dans le réseau local en fonction des points vitaux de l’entreprise.
Rédaction des rapports : Nos rapports de tests, outre la procédure des tests,
contiennent, pour chaque faiblesse ou vulnérabilité découverte, un correctif adapté à
votre situation. Ce document, même s’il est destiné essentiellement à un personnel
technique, contient un certain nombre de résumés présentant les résultats des tests
d’intrusion en faisant abstraction de la technique.
CODIR : Il s’agit d’une présentation des résultats des tests. Ce document, destiné à
votre direction, vise à expliquer les résultats des tests à un personnel non technique, en
l’abordant d’un point de vue « gestion de risque ». Il est élaboré de manière
collaborative avec le commanditaire du test, afin de s’adapter à la situation et à la
mentalité de l’entreprise. Il permet notamment à la DSI de justifier des budgets auprès
de sa direction, en s’appuyant sur le plan d’action présenté au travers de ce document.
Quelques outils pour les test d’intrusion
Metasploit
Metasploit est une plate-forme Open Source de tests d'intrusion embarquant des
fonctionnalités d'automatisation d'exploitation de failles et de création d'exploits. Outil
de prédilection pour nombre d'experts en sécurité, il intègre une base d'exploits (plus
de 700 aujourd'hui). Depuis août 2011, l'outil est désormais disponible dans sa
quatrième version. Le framework est développé en Ruby depuis la version 3, sortie en
2006.
John The Ripper
Conçu par Alexander Peslyak alias Solar, John The Ripper est un logiciel Open Source
est un spécialiste de la casse de mots de passe. Disponible sur plus de dix systèmes
d'exploitation, John The Ripper supporte en natif de multiples protocoles de
chiffrement dont Kerberos AFS, Blowfish, MD5 ou LM hashes / LanMan. John The
Ripper ou certaines de ses extensions permettent aussi d'évaluer la robustesse des mots
de passe de diverses applications, dont Lotus Domino, Office, Oracle, Microsoft SQL
Server et MySQL.
Aircrack-ng
Distribué sous licence GNU GPL, Aircrack-ng englobe plusieurs outils d'audit et de
monitoring de réseaux sans fil. Il permet à la fois la capture et l'injection de paquets IP,
le cassage de clef WEP et WPA (PSK), ainsi que le décryptage des fichiers WEP et
WPA capturés. Le module d'injection Airplay offre la possibilité de réaliser des
attaques par injection (de authentification, fake authentification, interactive packet
replay, ARP-request reinjection et prédiction CRC). En raison de ses fonctionnalités,
Airacrack est souvent utilisé lors des tests d'intrusion.
Nessus
Nessus, comme Nmap, intervient pour la prise d'empreintes ou la cartographie.
Cescanner de vulnérabilités, distribué via une licence propriétaire, permet d'auditer une
cible précise ou un réseau dans son ensemble afin d'identifier des failles qui pourront
dans un second temps être corrigées. Nessus peut être exploité dans le cadre d'audit de
conformité. Il intègre de multiples plugins pour des besoins spécifiques, comme
l'analyse de pare-feu ou d'antivirus.