Cet article a pour but d'expliquer la méthodologie généralement retenue par les pirates
pour s'introduire dans un système informatique. Il ne vise pas à expliquer comment compromettre
un système mais à comprendre la façon dont il peut l'être afin de mieux pouvoir
s'en prémunir. En effet, la meilleure façon de protéger son système est de procéder
de la même manière que les pirates afin de cartographier les vulnérabilités du système.
Ainsi cet article ne donne aucune précision sur la manière dont les failles
sont exploitées, mais explique comment faire en sorte de les déceler et de les corriger.
Les hackers ayant l'intention de s'introduire dans les systèmes informatiques recherchent dans un premier temps
des failles, c'est-à-dire des vulnérabilités nuisibles à la sécurité
du système, dans les protocoles, les systèmes d'exploitations,
les applications ou même le personnel d'une organisation ! Les termes de vulnérabilité, de brèche ou en langage plus familier
de trou de sécurité (en anglais security hole) sont également utilisés pour désigner les failles de sécurité.
Pour pouvoir mettre en oeuvre un exploit (il s'agit du terme technique signifiant exploiter une vulnérabilité),
la première étape du hacker consiste à récupérer le maximum d'informations
sur l'architecture du réseau et sur les systèmes d'exploitations et applications fonctionnant sur celui-ci. La plupart des attaques
sont l'oeuvre de script kiddies essayant bêtement des exploits trouvés sur Internet, sans aucune connaissance
du système, ni des risques liés à leur acte.
Une fois que le hacker a établi une cartographie du système, il est en mesure de mettre en application des
exploits relatifs aux versions des applications qu'il a recensées. Un premier accès à une machine lui permettra d'étendre
son action afin de récupérer d'autres informations, et éventuellement d'étendre ses privilèges sur la machine.
Lorsqu'un accès administrateur (le terme anglais root est généralement utilisé) est obtenu, on parle alors de compromission de la machine
(ou plus exactement en anglais root compromise), car les fichiers systèmes sont susceptibles d'avoir été modifiés. Le hacker possède alors
le plus haut niveau de droit sur la machine.
La dernière étape du hacker consiste à effacer ses traces, afin d'éviter tout soupçon de la part
de l'administrateur du réseau compromis et de telle manière à pouvoir garder le plus longtemps possible le contrôle des machines compromises.
L'obtention d'informations sur l'adressage du réseau visé, généralement qualifiée de prise d'empreinte,
est un préalable à toute attaque. Elle consiste à rassembler le maximum d'informations concernant les
infrastructures de communication du réseau cible :
- Adressage IP
- Noms de domaine
- Protocoles de réseau
- Services activés
- Architecture des serveurs
- ...
En connaissant l'adresse IP publique d'une des machines de votre réseau ou bien tout simplement le nom de domaine de votre organisation,
un hacker est potentiellement capable de connaître l'adressage
du réseau tout entier, c'est-à-dire la plage d'adresses IP appartenant à l'organisation visée et son découpage
en sous-réseaux. Pour cela il suffit de consulter les bases publiques d'attribution des adresses IP et des noms de domaine :
- http://www.iana.net
- http://www.ripe.net pour l'Europe
- http://www.arin.net pour les Etats-Unis
Lorsque la topologie du réseau est connue par le hacker, il peut le scanner (le terme balayer est également utilisé),
c'est-à-dire déterminer à l'aide d'un outil logiciel (appelé scanner ou scanneur en français)
quelles sont les adresses IP actives sur le réseau, les ports ouverts correspondant à des services accessibles, et
le système d'exploitation utilisé par ces serveurs. L'outil le plus connu pour scanner un réseau est Nmap,
reconnu par de nombreux administrateurs réseaux comme un outil indispensable à la sécurisation d'un réseau.
Cet outil agit en envoyant des paquets TCP à un ensemble de machines sur un réseau (déterminé par une adresse réseau et
un masque), puis il analyse les réponses. Selon l'allure des paquets TCP reçus, il lui est possible de déterminer le système d'exploitation
distant pour chaque machine scannée.
Il existe un autre type de scanneur, appelé mappeur passif (le plus connu étant Siphon), permettant de connaître la topologie réseau du brin physique
sur lequel le mappeur analyse les paquets. Contrairement aux scanners précédents, cet outil n'envoie pas de paquets sur le réseau et est donc
totalement indétectable par les systèmes de détection d'intrusion.
Enfin certains outils permettent de capturer les connexions X (un serveur X est un serveur gérant l'affichage des machines de type UNIX.
Ce système
a pour caractéristique de pouvoir utiliser l'affichage des stations présentes
sur le réseau, afin d'étudier ce qui est affiché sur les écrans et éventuellement d'intercepter les saisies sur les claviers des machines vulnérables.
Lorsque le "scan" du réseau est terminé, il suffit au hacker d'examiner le fichier journal (log)
des outils utilisés pour connaître les adresses IP des machines connectées au réseau et les ports ouverts sur celles-ci.
Les numéros de port ouverts sur les machines peuvent lui donner des informations sur le type de service ouvert et donc l'inviter
à interroger le service afin d'obtenir des informations supplémentaires sur la version du serveur.
Ainsi pour connaître la version d'un serveur HTTP, il suffit de se connecter au serveur Web en Telnet sur le port 80 :
telnet www.commentcamarche.net 80
puis de demander la page d'accueil :
GET / HTTP/1.0
Le serveur répond alors les premières lignes suivantes :
HTTP/1.1 200 OK
Date: Thu, 21 Mar 2002 18:22:57 GMT
Server: Apache/1.3.20 (Unix) Debian/GNU
Le système d'exploitation, le serveur et sa version sont alors connus.
Le Social Engineering (que l'on peut traduire par ingénierie sociale) consiste à exploiter
l'erreur humaine, c'est-à-dire d'utiliser la naïveté et la gentillesse exagérée des utilisateurs du réseau, pour obtenir
des informations sur ce dernier. Ce procédé consiste à entrer en contact avec un utilisateur du réseau, en se faisant
passer en général pour quelqu'un d'autre, afin d'obtenir des renseignements sur le système d'information
ou éventuellement pour obtenir directement un mot de passe. De la même façon une faille de sécurité
peut être créée dans le système distant en envoyant un cheval de Troie à certains utilisateurs
du réseau. Il suffit qu'un des utilisateurs exécute la pièce jointe pour qu'un accès au réseau
interne soit donné à l'agresseur extérieur.
C'est la raison pour laquelle la politique de sécurité
doit être globale et intégrer les facteurs humains (par exemple la sensibilisation des utilisateurs aux problèmes de sécurité) car le
niveau de sécurité d'un système est caractérisé par le niveau de son maillon le plus faible.
Après avoir établi l'inventaire du parc logiciel et éventuellement matériel, il reste au hacker
à déterminer si des failles existent.
Il existe ainsi des scanneurs de vulnérabilité permettant aux administrateurs de soumettre leur réseau
à des tests d'intrusion afin de constater si certaines applications possèdent des failles de sécurité.
Les deux principaux scanneurs de failles sont :
Il est également conseillé aux administrateurs de réseaux de consulter régulièrement
les sites tenant à jour une base de données des vulnérabilités :
Ainsi, certains organismes (notamment les CERT) sont chargés de capitaliser les vulnérabilités et de fédérer
les informations concernant les problèmes de sécurité.
Lorsque le pirate a dressé une cartographie des ressources et des machines présentes
sur le réseau, il est en mesure de préparer son intrusion.
Pour pouvoir s'introduire dans le réseau, le pirate a besoin d'accéder
à des comptes valides sur les machines qu'il a recensées. Pour ce faire, plusieurs méthodes
sont utilisées par les pirates :
- Le social engineering, c'est-à-dire en contactant directement certains utilisateurs du réseau (par mail ou par téléphone) afin de leur soutirer des informations
concernant leur identifiant de connexion et leur mot de passe. Ceci est généralement fait en se faisant passer pour l'administrateur réseau.
- La consultation de l'annuaire ou bien des services de messagerie ou de partage de fichiers, permettant de trouver des noms d'utilisateurs valides
- L'exploitation des vulnérabilités des commandes R* de Berkeley.
- le brute force cracking, consistant à essayer de façon automatique différents mots de passe sur une liste de compte (par exemple l'identifiant, éventuellement
suivi d'un chiffre, ou bien le mot de passe password, ou passwd, ...
Lorsque le pirate a obtenu un ou plusieurs accès sur le réseau en se logeant sur un ou plusieurs comptes peu protégés,
celui-ci va chercher à augmenter ses privilèges en obtenant l'accès root (en français superutilisateur ou
superadministrateur), on parle ainsi d'extension de privilèges.
Dès qu'un accès root a été obtenu sur une machine, l'attaquant a la possibilité d'examiner le réseau à la recherche d'informations supplémentaires.
Il lui est ainsi possible d'installer un sniffeur (en anglais sniffer), c'est-à-dire un logiciel capable d'écouter
(le terme reniffler, ou en anglais sniffing, est également employé)
le trafic réseau en provenance ou à destination des machines situées sur le même brin. Grâce à
cette technique, le pirate peut espérer récupérer les couples identifiants/mots de passe lui permettant d'accéder à des comptes possédant des privilèges étendus
sur d'autres machines du réseau (par exemple l'accès au compte d'un administrateur) afin d'être à même de contrôler une plus grande partie du réseau.
Les serveurs NIS présents sur un réseau sont également des cibles de choix pour les pirates car ils regorgent d'informations
sur le réseau et ses utilisateurs.
Grâce aux étapes précédentes, le pirate a pu dresser une cartographie
complète du réseau, des machines s'y trouvant, de leurs failles et possède un
accès root sur au moins l'une d'entre-elles. Il lui est alors possible d'étendre
encore son action en exploitant les relations d'approbation existant entre les différentes machines.
Cette technique d'usurpation d'identité, appelée spoofing, permet
au hacker (dans le sens pirate du terme) de pénétrer des réseaux privilégiés
auxquels la machine compromise a accès.
Lorsqu'un pirate a réussi à infiltrer un réseau d'entreprise et à
compromettre une machine, il peut arriver qu'il souhaite pouvoir revenir. Pour ce faire celui-ci
va installer une application afin de créer artificiellement une faille de sécurité,
on parle alors de porte dérobée (en anglais backdoor).
Lorsque l'intrus a obtenu un niveau de maîtrise suffisant sur le réseau, il lui
reste à effacer les traces de son passage en supprimant les fichiers qu'il a créés
et en nettoyant les fichiers de logs des machines dans lesquelles il s'est introduit, c'est-à-dire
en supprimant les lignes d'activité concernant ses actions.
Si vous êtes responsable d'un réseau connecté à internet, il vous
revient d'en assurer sa sécurité, et par conséquent de tester les failles de celui-ci.
C'est la raison pour laquelle, un administrateur réseau se doit d'être au courant des
vulnérabilités des logiciels qu'il utilise et de se "mettre dans la peau d'un pirate"
afin d'essayer de s'introduire dans son propre système. Lorsque les compétences au sein
de l'entreprise ne sont pas suffisantes pour mener à bien cette opération, il convient
de faire réaliser un audit par une société spécialisée dans la sécurité
informatique.
Article écrit par Jean-François PILLOU, inspiré
d'un article de GomoR.
|