RETOUR AUX ARTICLES
Sécurité et virus
Introduction
Le risque en terme de sécurité est généralement caractérisé par l'équation suivante :
Afin de pouvoir sécuriser un système, il est nécessaire d'identifier les menaces potentielles, et donc de connaître et de prévoir la façon de procéder de l'ennemi. Le but de ce dossier est ainsi de donner un aperçu des motivations éventuelles des pirates, de catégoriser ces derniers, et enfin de donner une idée de leur façon de procéder afin de mieux comprendre comment il est possible de limiter les risques d'intrusions.
Qu'est-ce qu'un hacker ?
Le terme de hacker est souvent utilisé pour désigner un pirate informatique. Les victimes de piratage sur des réseaux informatiques aiment à penser qu'ils ont été attaqués par des pirates chevronnées ayant soigneusement étudié leur système et ayant développé des outils spécifiquement pour créer une faille dans leur système.
Le terme hacker a eu plus d'une signification depuis son apparition à la fin des années 50. A l'origine ce nom désignait d'une façon méliorative les programmeurs émérites, puis il servit au cours des années 70 à décrire les révolutionnaires de l'informatique, qui pour la plupart sont devenus les fondateurs des plus grandes entreprises informatiques.
C'est au cours des années 80 que ce mot a été utilisé pour catégoriser les personnes impliquées dans le piratage de jeux vidéos, en désamorçant les protections de ces derniers, puis en en revendant des copies.
Aujourd'hui ce mot est souvent utilisé à tort pour désigner les personnes s'introduisant dans les systèmes informatiques
Les différents types de pirates
En réalité il existe de nombreux types d'"attaquants" catégorisés selon leur expérience et selon leurs motivations :
• Les white hat hackers, hacker au sens noble du terme, dont le but est d'aider à l'amélioration des systèmes et technologies informatiques, sont généralement à l'origine des principaux protocoles et outils informatiques que nous utilisons aujourd'hui. Le courrier électronique en est un exemple
• Les black hat hackers, plus couramment appelés pirates (ou appelés également crackers par extension du terme), c'est-à-dire des personnes s'introduisant dans les systèmes informatiques dans un but nuisible
• Les Script Kiddies (traduisez gamins du script, parfois également surnommés crashers, lamers ou encore packet monkeys, soit les singes des paquets réseau) sont de jeunes utilisateurs du réseau utilisant des programmes trouvés sur Internet, généralement de façon maladroite, pour vandaliser des systèmes informatiques afin de s'amuser.
• Les phreakers sont des pirates s'intéressant au réseau téléphonique commuté (RTC) afin de les utiliser gratuitement grâce à des circuits éléctroniques (qualifiées de box, comme la blue box, la violet box, ...) connectés à la ligne téléphonique dans le but d'en falsifier le fonctionnement.
• Les carders s'attaquent principalement aux systèmes de cartes bancaires pour en comprendre le fonctionnement et en exploiter les failles
• Les crackers ne sont pas des biscuits apéritifs au fromage mais des personnes dont le but est de créer des outils logiciels permettant d'attaquer des systèmes informatiques ou de casser les protections contre la copie des logiciels payants.
• Les hacktivistes (contraction de hackers et activistes que l'on peut traduire en cybermilitant ou cyberrésistant), sont des hackers dont la motivation est principalement idéologique. Ce terme a été largement porté par la presse, aimant à véhiculer l'idée d'une communauté parallèle (qualifiée généralement de underground, par analogie aux populations souterraines des films de science-fiction.
Dans la réalité ce type de distinction n'est bien évidemment pas aussi nette, dans la mesure où certains (white hat) hackers ont parfois été crackers (black hat hackers) auparavant et parfois inversement. Les habitués des listes de diffusion et des forums voient souvent des sujets à propos de la différence qu'il convient de faire entre pirate et hacker. Le terme de troll est généralement utilisé pour désigner les sujets délicats déclenchant un engouement dans les réponses.
Le but de l'agresseur
Les hackers ayant l'intention de s'introduire dans les systèmes informatiques recherchent dans un premier temps des failles, c'est-à-dire une vulnérabilité nuisible à 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.
La récupération d'informations sur le système
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 des 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 d'une machine à travers le réseau) 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 le 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 pourrait 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.
Le repérage des failles
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 :
• Nessus
• SAINT
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 :
• SecurityFocus / Vulnerabilities
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é.
L'intrusion
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é. 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, ...
Extension de privilèges
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 a augmenter ses privilèges en obtenant l'accès root (en français superutilisateur ou superadministrateur).
Dès qu'un accès root a été obtenu sur une machine, l'attaquant a la possibilité d'investiguer 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 traffic 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.
Compromission
Grâce aux étapes précédentes, le pirate a pû 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.
Nettoyage des traces
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éé 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.
Conclusion
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é dans la sécurité informatique.
|