Stratégies anti-hackers



Documents pareils
Couche application. La couche application est la plus élevée du modèle de référence.

Services Réseaux - Couche Application. TODARO Cédric

Présentation du modèle OSI(Open Systems Interconnection)

18 TCP Les protocoles de domaines d applications

II/ Le modèle OSI II.1/ Présentation du modèle OSI(Open Systems Interconnection)

Le rôle Serveur NPS et Protection d accès réseau

Introduction. Adresses

Mr. B. Benaissa. Centre universitaire Nâama LOGO

SQUID P r o x y L i b r e p o u r U n i x e t L i n u x

Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark. Etape 1 : Lancement des machines virtuelles VMWARE et de Wireshark

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

LINUX - Sécurité. Déroulé de l'action. - 3 jours - Contenu de formation

GENERALITES. COURS TCP/IP Niveau 1

Comment utiliser mon compte alumni?

TAGREROUT Seyf Allah TMRIM

Projet : PcAnywhere et Le contrôle à distance.

Réseaux. Moyens de sécurisation. Plan. Evolutions topologiques des réseaux locaux

Protection des protocoles

Présentation Internet

[ Sécurisation des canaux de communication

Installation d'un serveur DHCP sous Windows 2000 Serveur

Proxy et reverse proxy. Serveurs mandataires et relais inverses

Packet Tracer : configuration des listes de contrôle d'accès étendues, scénario 1

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

Firewall IDS Architecture. Assurer le contrôle des connexions au. Sécurité 1

SERVEUR DE MESSAGERIE

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt

Résolution des problèmes de connexion XDMCP aux hôtes UNIX et Linux

Hébergement WeboCube. Un système performant et sécurisé. Hébergement géré par une équipe de techniciens

ETI/Domo. Français. ETI-Domo Config FR

Sécurité des réseaux Les attaques

Microsoft Hosted Exchange 2010 DOCUMENT D EXPLOITATION

L3 informatique Réseaux : Configuration d une interface réseau

Les menaces informatiques

Assistance à distance sous Windows

Fonctionnement de Iptables. Exercices sécurité. Exercice 1

Les cahiers pratiques de Anonymat.org. SocksCap32. Edition du 20 Octobre 2000

Réseaux Locaux. Objectif du module. Plan du Cours #3. Réseaux Informatiques. Acquérir un... Réseaux Informatiques. Savoir.

FACILITER LES COMMUNICATIONS. Le gestionnaire de réseau VPN global de Saima Sistemas

Technique de défense dans un réseau

Tutoriel d'introduction à TOR. v 1.0

Restriction sur matériels d impression

Cisco Certified Network Associate

Les Réseaux Privés Virtuels (VPN) Définition d'un VPN

SERVEUR DE MESSAGERIE

JetClouding Installation

Configuration de l'accès distant

Les commandes relatives aux réseaux

USERGATE PROXY & FIREWALL. Protection exhaustive de réseau corporate, optimisation de trafic Internet, administration flexible

Installation de Windows 2003 Serveur

Tunnels et VPN. 22/01/2009 Formation Permanente Paris6 86

Installation de Windows 2000 Serveur

1 LE L S S ERV R EURS Si 5

LINUX REDHAT, SERVICES RÉSEAUX/INTERNET

Virtual Private Network WAFA GHARBI (RT4) CYRINE MAATOUG (RT4) BOCHRA DARGHOUTH (RT4) SALAH KHEMIRI (RT4) MARWA CHAIEB (RT3) WIEM BADREDDINE (RT3)

Réseau : Interconnexion de réseaux, routage et application de règles de filtrage.

Les messages d erreur d'applidis Client

But de cette présentation

LAB : Schéma. Compagnie C / /24 NETASQ

Un peu de vocabulaire

DIFF AVANCÉE. Samy.

Devoir Surveillé de Sécurité des Réseaux

Master d'informatique 1ère année. Réseaux et protocoles. Architecture : les bases

laissez le service en démarrage automatique. Carte de performance WMI Manuel Désactivé Vous pouvez désactiver ce service.

Linux. Sécuriser un réseau. 3 e édition. l Admin. Cahiers. Bernard Boutherin Benoit Delaunay. Collection dirigée par Nat Makarévitch

Protection exhaustive de réseau corporate, optimisation de trafic Internet, administration flexible

Introduction aux Technologies de l Internet

L annuaire et le Service DNS

Les clés d un réseau privé virtuel (VPN) fonctionnel

1. Présentation de WPA et 802.1X

L'AAA, késako? Bruno Bonfils, fr.org>, Novembre Sous ce terme d'apparence barbare est regroupé l'ensemble des concepts suivants :

Configuration d'un annuaire LDAP

Tunnels. Plan. Pourquoi? Comment? Qu est-ce? Quelles solutions? Tunnels applicatifs ESIL INFO 2005/2006. Sophie Nicoud

Rappels réseaux TCP/IP

RÉCAPITULATIF DES ENJEUX ET DE LA MISE EN PLACE POLITIQUE DE SÉCURITÉ DANS UN RÉSEAU

Installation d un serveur DHCP sous Gnu/Linux

WIFI sécurisé en entreprise (sur un Active Directory 2008)

TD n o 8 - Domain Name System (DNS)

Culture informatique. Cours n 9 : Les réseaux informatiques (suite)

Nmap (Network Mapper) Outil d exploration réseau et scanneur de ports/sécurité

Contrôle de la DreamBox à travers un canal SSH

CONFIGURATION IP. HESTIA FRANCE S.A.S 2, rue du Zécart TEMPLEUVE +33 (0) (0) Site internet:

Pare-feu VPN sans fil N Cisco RV120W

Guide de l'utilisateur

Cours de sécurité. Pare-feux ( Firewalls ) Gérard Florin -CNAM - - Laboratoire CEDRIC -

Catalogue & Programme des formations 2015

TP Wireshark. Première approche de Wireshark. 1 ) Lancer Wireshark (double clic sur l icône sur le bureau). La fenêtre

SÉCURISATION DES CONNEXIONS À DISTANCE SUR LES RÉSEAUX DE CONTRÔLE

SECURIDAY 2013 Cyber War

Charte d installation des réseaux sans-fils à l INSA de Lyon

FACULTE DES SCIENCES ET TECHNIQUES FES SAIS MASTER SYSTEMES INTELLIGENTS ET RESEAUX MST SIR 2014 TP WIFI. Encadré par PR.


SOLUTIONS DE SECURITE DU DOCUMENT DES SOLUTIONS EPROUVEES POUR UNE SECURITE SANS FAILLE DE VOTRE SYSTEME MULTIFONCTIONS SHARP DOCUMENT SOLUTIONS

Protocoles DHCP et DNS

OPTENET DCAgent Manuel d'utilisateur

Serveurs de noms Protocoles HTTP et FTP

L'écoute des conversations VoIP

Chapitre : Les Protocoles

Transcription:

Sous la direction de Ryan RUSSELL Stratégies anti-hackers 2 e édition Groupe Eyrolles, 2002 ISBN : 2-212-11138-X

Chapitre 10 Écoutes sur un réseau informatique Dans ce chapitre : Qu est-ce qu une écoute sur un réseau?............ 339 Cibles des écoutes............................... 340 Présentation des sniffers courants.................. 347 Techniques d écoute avancées..................... 360 API réseau des systèmes d'exploitation............. 362 Mesures de protection........................... 368 Techniques de détection.......................... 371 En résumé................................... 373 Repères........................................ 375 FAQ.......................................... 377

Un dictionnaire de langue anglaise indique que sniffing (écoute) est un terme polysémique. Le verbe to sniff possède en effet quatre acceptions : 1. Inhaler, renifler, prendre une brève inspiration d'air par le nez comme lorsqu'on hume quelque chose. 2. Se servir du sens olfactif, comme lors d'une dégustation ou d'une recherche. 3. Considérer quelque chose de manière méprisante ou dédaigneuse. 4. (familier) Fouiner, fureter, espionner. La dernière signification est celle qui caractérise le mieux l'activité des hackers qui nous intéresse ici. Qu'est-ce qu une écoute sur un réseau? L écoute ou sniffing permet à un attaquant de compromettre la sécurité d'un réseau d'une manière passive. Dans la terminologie propre à la sécurité des réseaux, un sniffer est un programme ou un outil qui surveille passivement un réseau informatique en vue d'y trouver des informations susceptibles d'intéresser un attaquant. Ces informations sont généralement relatives à l'authentification; ainsi, des noms d'utilisateur et des mots de passe permettront d'accéder à un système ou à une ressource. La plupart des rootkits contiennent des sniffers. Si l un de vos systèmes Unix est compromis, il est très vraisemblable qu'il exécute un sniffer. Fonctionnement Il existe deux grandes écoles de la technique d écoute : l'ancienne et la nouvelle. Auparavant, les ordinateurs étaient connectés via un média partagé. Ils étaient rattachés au même segment réseau et la totalité du trafic était visible par chacun. Les cartes réseau prenaient en charge le filtrage au niveau du matériel, de manière à ce que l'ordinateur relié ne voie que le trafic qui lui était destiné et non pas celui des autres. Il ne s'agissait pas en réalité d'une fonctionnalité de sécurité, car elle n'était conçue que dans le but d'éviter de surcharger la machine. Un logiciel de sniffing désactive ce filtre et met la carte dans un mode appelé «promiscuité». Il a été spécialement conçu pour traiter les saturations du trafic, soit à des fins d'analyse, soit dans le but de le capturer. De nos jours, de plus en plus d'ordinateurs sont reliés par des commutateurs. Au lieu d'envoyer le trafic à toutes les extrémités du réseau, ces commutateurs filtrent le trafic au niveau du hub, ce qui empêche de voir le trafic des autres, même en mode de promiscuité. En conséquence,

340 Stratégies anti-hackers les pirates doivent attaquer le dispositif commutateur/routeur afin de rediriger les flux de trafic (ce que nous décrirons plus loin) ou se contenter de surveiller le trafic destiné à l'hôte qu'ils ont compromis. Lorsque du trafic réseau entre dans une machine, il est tout d'abord pris en charge par le pilote Ethernet. Celui-ci transmet ensuite les paquets à la pile de protocoles TCP/IP (Transmission Control Protocol/Internet Protocol), laquelle les envoie aux applications. Le logiciel d écoute se connecte directement au pilote Ethernet et fait une copie du trafic qu il reçoit. Unix propose un ensemble d'interfaces ouvertes pour réaliser cette opération, alors que les systèmes Windows offrent très peu d'outils en la matière. C'est pourquoi on trouve généralement des sniffers dans les rootkits Unix et rarement dans les rootkits Windows. Les cibles des écoutes Un réseau regorge d'informations propres à éveiller l'intérêt d'un observateur. Les plus évidentes sont celles relatives à l'authentification (les noms d'utilisateur et les mots de passe) dont l interception peut ensuite permettre d'accéder à des ressources. Beaucoup d'autres informations peuvent également être exploitées, comme les e-mails ou les messageries instantanées. Tout ce qui passe sur un réseau est exposé à l'espionnage. Les informations d'authentification Les sections suivantes illustrent par des exemples les différents types de trafics susceptibles d'attirer un attaquant qui surveille un réseau. Ces exemples, classés par protocole ou par service, ne prétendent pas couvrir le sujet de façon exhaustive. Dans l'exemple de la section suivante, le texte en gras correspond aux informations envoyées par un programme client et le texte normal à celles envoyées par le serveur. Dans presque tous les cas, nous ne nous intéressons qu'au trafic généré par le client, car il s agit de celui qui renferme les informations d'authentification. Des sniffers plus sophistiqués peuvent également examiner le trafic du serveur afin de filtrer les tentatives d'authentification qui ont échoué. Vous trouverez ci-après un bref aperçu des types d'informations d'authentification pouvant être récupérées via leurs protocoles respectifs. Ces exemples ont été simplifiés ; de plus, la version actuelle de certains de ces protocoles est nantie de mécanismes d'authentification plus sophistiqués qui réduisent les risques encourus. Dans le cas des protocoles Internet courant, il existe une RFC (Request For Comments) qui explique les détails des spécifications. telnet (port 23) Telnet est le service qu'un attaquant qui tente d'obtenir des informations sur les utilisateurs va surveiller en priorité. Aujourd'hui, telnet est de moins en moins utilisé en raison de son manque de sécurité ; l'intérêt que les hackers lui portent décroît donc également. Telnet ne

Écoutes sur un réseau informatique CHAPITRE 10 341 fournit aucune sécurité au niveau de la session : il envoie le nom d'utilisateur et le mot de passe en clair sur le réseau, comme le montrent les lignes suivantes : [~] % telnet localhost Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Red Hat Linux release 6.1 (Cartman) Kernel 2.2.12-20 on an i686 login: olivier Password: bonjour [18:10:03][redhat61] [~] % FTP (port 21) Le service FTP (File Transfer Protocol), qui sert à transmettre des fichiers via un réseau, envoie également les informations d'authentification en clair. À la différence de telnet, FTP autorise également les accès anonymes aux fichiers ; dans ce cas, l'utilisateur anonyme prend le nom «anonymous» ou «ftp» et choisit un mot de passe quelconque. Les informations du protocole FTP sont normalement dissimulées par une interface cliente conviviale ; le trafic d'authentification sous-jacent apparaît toutefois tel quel sur le réseau : [~] % telnet localhost 21 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 localhost FTP server (Version wu-2.5.0(1) Tue Sep 21 16:48:12 EDT 1999) ready. USER olivier 331 Password required for olivier. PASS bonjour 230 User olivier logged in. POP (port 110) Le service POP (Post Office Protocol) est exécuté par un serveur auquel se connectent des programmes de messagerie client afin de permettre à un utilisateur de relever son courrier électronique. Les serveurs POP sont en général situés sur les réseaux des fournisseurs d'accès à Internet. Le trafic POP est rarement chiffré ; les informations d'authentification sont généra-

342 Stratégies anti-hackers lement envoyées en clair. Le nom de l'utilisateur et son mot de passe sont fournis au serveur distant par les commandes USER et PASS. Voici un exemple de ce protocole : [~] % telnet localhost 110 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. +OK POP3 localhost v7.59 server ready USER olivier +OK User name accepted, password please PASS bonjour +OK Mailbox open, 24 messages Signalons qu'il existe des extensions au protocole POP qui permettent de chiffrer les informations d'authentification ainsi que les sessions. IMAP (port 143) Le service IMAP (Internet Message Access Protocol) est un protocole qui offre les mêmes fonctionnalités que le service POP. Tout comme dans ce dernier, les informations d'authentification transitent le plus souvent en clair sur le réseau. L'authentification IMAP est accomplie par l'envoi d'une chaîne de caractères composée d'un jeton choisi par l'utilisateur, de la commande LOGIN, du nom de l'utilisateur et de son mot de passe : [~] % telnet localhost imap Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. * OK localhost IMAP4rev1 v12.250 server ready A001 LOGIN olivier bonjour A001 OK LOGIN completed Il existe des extensions au protocole IMAP qui permettent de chiffrer les informations d'authentification ainsi que les sessions. NNTP (port 119) Le protocole NNTP (Network News Transport Protocol) gère la lecture et l'écriture des messages sur les forums Usenet. L'authentification NNTP s'effectue de différentes façons. Sur les anciens systèmes, elle reposait principalement sur l'adresse réseau du client, restreignant l'accès aux serveurs de news à une plage d'adresses donnée. Puis des extensions à NNTP ont été créées pour permettre d'autres techniques d'authentification, comme celle qui est fondée

Écoutes sur un réseau informatique CHAPITRE 10 343 sur un mécanisme défi-réponse avec chiffrement d aléa. L'authentification réalisée en texte clair peut facilement être capturée sur un réseau, comme le montre l'exemple suivant : [~] % telnet localhost 119 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 200 Welcome to My News Server (Typhoon v1.2.3) AUTHINFO USER olivier 381 More Authentication Required AUTHINFO PASS bonjour 281 Authentication Accepted rexec (port 512) Le service rexec, appelé rexecd sur presque tous les systèmes d'exploitation Unix, est un service ancien utilisé pour exécuter des commandes à distance. Le service effectue l'authentification en envoyant au serveur, en clair, le nom de l'utilisateur et son mot de passe. Il reçoit de la part du client un tampon composé des données suivantes : Un numéro de port Ascii qui indique le numéro de port auquel le serveur peut se connecter pour envoyer des messages d'erreurs standards. C'est un port sur l'hôte client qui est en attente de cette connexion. La valeur 0 indique que la connexion n'est pas demandée. Cette chaîne se termine par un caractère null. Une chaîne de 16 caractères au plus terminée par un null contenant le nom de l'utilisateur. Une chaîne de 16 caractères au plus terminée par un null contenant le mot de passe. Une chaîne de caractères terminée par un null contenant la commande à exécuter sur l'hôte distant. Voici un exemple de requête d'authentification : 0\0olivier\0bonjour\0touch /tmp/hello\0 Si l'authentification est réussie, le serveur retourne un caractère null ; sinon, il renvoie la valeur 1 accompagnée d'un message d'erreur. rlogin (port 513) Le protocole rlogin fournit en gros les fonctionnalités du protocole telnet combinées au mécanisme d'authentification du protocole rexec. Il gère des chemins de confiance, recensés dans un fichier appelé.rhosts et situé dans le répertoire home de l'utilisateur. Ce fichier contient la liste des utilisateurs autorisés à se connecter au compte spécifié sans mot de passe et les hôtes

344 Stratégies anti-hackers sur lesquels ils résident. Le mécanisme d'authentification repose sur la confiance : on part du principe que l'utilisateur est bien celui que le client rlogin distant déclare être. Ce mécanisme d'authentification, qui ne fonctionne que sur les systèmes Unix, n'est plus tellement utilisé sur les réseaux de nos jours en raison de ses nombreuses failles. En l'absence de chemins de confiance, le protocole transmet en clair le nom de l'utilisateur et son mot de passe, selon un mode similaire à celui du protocole rexec et qui comporte : Le numéro de port Ascii auquel le serveur peut se connecter pour envoyer des messages d'erreurs standards. C'est un port sur l'hôte client qui est en attente de cette connexion. La valeur 0 indique que la connexion n'est pas demandée. Cette chaîne se termine par un caractère null. Une chaîne de 16 caractères au plus terminée par un null contenant le nom de l'utilisateur client. Une chaîne de 16 caractères au plus terminée par un null contenant le nom de l'utilisateur serveur. Une chaîne de caractères terminée par un null contenant le type de terminal et sa vitesse. Le serveur retourne alors un octet contenant la valeur 0 pour indiquer qu'il a reçu ces informations. Si l'authentification via le mécanisme de confiance automatique échoue, le programme de connexion prend la main et effectue la connexion comme si l'utilisateur s'était connecté avec le service telnet. X11 (port 6000+) Le système X11 Window utilise un «cookie magique» pour autoriser les clients à se connecter à un serveur. Un cookie de 128 bits généré aléatoirement est envoyé par tout client X11 qui se connecte à un serveur X Window. En interceptant ce cookie, un attaquant pourra se connecter à ce même serveur X Window. Ce cookie est habituellement stocké dans un fichier nommé.xauthority, lequel est situé dans le répertoire home de l'utilisateur. Ce cookie est passé au serveur X Window par le programme xdm au moment de la connexion. Les descripteurs de fichiers NFS Le système de fichiers NFS (Network File System), créé par Sun Microsystems, fait appel à ce que l on appelle un descripteur de fichier NFS pour accorder l'accès à un fichier ou à un répertoire donné d'un serveur de fichiers. En surveillant les descripteurs de fichiers NFS sur le réseau, un intrus peut réussir à accéder aux ressources correspondantes. Le protocole NFS a malheureusement recours à ONC-RPC (Open Network Computing-Remote Procedure Call), ce qui rend le mécanisme plus compliqué qu'une simple authentification en clair, sans pour autant garantir une sécurité absolue. Cette complexité nous empêche en outre d'illustrer ce type de trafic par un exemple. Voici le processus qui permet à un client NFS légitime d'accéder aux fichiers d'un serveur :

Écoutes sur un réseau informatique CHAPITRE 10 345 L'utilisateur émet une requête de montage en vue de monter un système de fichiers distant. Le système d'exploitation local contacte un service RPC de l'hôte distant appelé rpc.mountd et lui transmet le nom du système de fichiers auquel il désire accéder. Le programme mountd contrôle la validité de l'accès pour déterminer si la requête provient d'un port privilégié de l'hôte client et si ce dernier a la permission d'accéder à l'hôte cible. Le programme mountd répond au client en lui fournissant un descripteur de fichier NFS qui donne accès à la racine du système de fichiers auquel l'utilisateur veut accéder. Le programme client contacte ensuite le démon NFS (nfsd) sur l'hôte cible, lui envoie le descripteur de fichier et accède ainsi à la ressource. L'authentification sous Windows NT Le système d'exploitation Windows NT prend en charge plusieurs types d'authentification, chacun augmentant graduellement sa sécurité. Comme nous le verrons dans la suite de ce chapitre, la mise en œuvre des mécanismes d'authentification les moins sécurisés créé l un des principaux points faibles de Windows NT. Il existe trois types d'authentification : Plaintext Les mots de passe sont transmis en clair sur le réseau. LM (Lan Manager) Utilise un mécanisme faible défi/réponse dans lequel le serveur envoie un défi au client, qui l'utilise pour chiffrer la valeur de hachage de son mot de passe, qu'il renvoie ensuite au serveur. Le serveur fait de même et compare le résultat pour authentifier l'utilisateur. Le mécanisme de transformation de la valeur de hachage est extrêmement faible ; la valeur de hachage initiale peut être interceptée assez facilement depuis le réseau et craquée. Sous Windows NT 4, malgré la présence d'un procédé d'authentification plus performant (NTLM), la valeur de hachage LM était toujours envoyée sur le réseau avec la valeur de hachage NTLM, ce qui abaissait le niveau de la sécurité à celui du mécanisme LM. NTLM (NT Lan Manager) et NTLMv2 (NT Lan Manager v2) NTLM et NTLMv2 fournissent un mécanisme défi/réponse plus robuste qui rend les requêtes d'authentification interceptées beaucoup plus difficiles à craquer. NTLMv2 a été commercialisé avec le Service Pack 4 de Windows NT 4.0. Il est conseillé de l'employer chaque fois que possible, mais il convient de vérifier la compatibilité des clients avec ce protocole. Vous serez peut-être obligé d'installer des logiciels supplémentaires sur les clients pour assurer cette compatibilité. Le développement de ces mécanismes suit un processus itératif, au cours duquel on remédie aux vulnérabilités découvertes dans l'implémentation précédente (heureusement, les failles sont de moins en moins importantes au fil des améliorations).

346 Stratégies anti-hackers Il existe des sniffers spécialisés qui capturent exclusivement les informations d'authentification de Windows NT. Le programme L0phtCrack en est un bon exemple (celui-ci ne craque que les mots de passe Windows NT). La documentation qui accompagne L0phtCrack explique en détail la procédure de création des valeurs de hachage des mots de passe de Windows NT. L0phtCrack peut être téléchargé à l'adresse suivante : http://stake.com/research/ lc3. Les autres trafics réseau Les ports que nous venons de passer en revue sont les plus écoutés, car ils véhiculent en clair les informations d'authentification, mais ils ne sont pas les seuls à attirer les attaquants. Comme nous allons le voir, d'autres ports sont également dignes d'intérêt. SMTP (port 25) Le protocole SMTP (Simple Mail Transfer Protocol) sert à transférer du courrier électronique sur Internet ou au sein des messageries internes de nombreuses entreprises. Le courrier électronique est une cible éminemment tentante pour les hackers. Un attaquant peut, par exemple, surveiller l'administrateur du réseau pour savoir s'il a été découvert. Dans le contexte de guerre économique permanente qui est le nôtre, surveiller le réseau à la recherche d'informations sur telle ou telle société (fusions, acquisitions, partenariats, etc.) peut tenter certains. Ces renseignements peuvent généralement être glanés dans le courrier électronique qui transite par le réseau. Le sniffer dsniff, présenté plus loin dans ce chapitre, comprend un programme conçu pour intercepter les messages électroniques envoyés sur le réseau. mailsnarf affiche les messages e-mail interceptés dans les trafics SMTP et POP au format mbox de Berkeley ; il est donc adapté à la navigation hors-ligne avec votre lecteur de courrier électronique préféré (mail(1), pine(1), etc.). (Extrait de la FAQ de dsniff) HTTP (port 80) Le protocole HTTP (HyperText Transfer Protocol) est utilisé pour transmettre du trafic Web. Ce trafic, habituellement destiné au port 80, est généralement surveillé à des fins statistiques plutôt que pour son contenu. Les informations d'authentification et les numéros de cartes de crédit qu'il véhicule sont en général chiffrés à l'aide de SSL (Secure Sockets Layer). Il existe des produits du commerce à la disposition des entreprises qui souhaitent surveiller les activités sur le Web de leurs employés. Le sniffer dsniff inclut également un programme dédié à l interception des requêtes d'url sur le réseau :

Écoutes sur un réseau informatique CHAPITRE 10 347 urlsnarf affiche les URL demandées et capturées dans le trafic HTTP au format CLF (Common Log Format), utilisé par la plupart des navigateurs Web, ce qui permet d'entreprendre des traitements hors ligne à l'aide de votre outil d'analyse préféré des logs Web (analog, wwwstat, etc.). Extrait de la FAQ de dsniff. Sniffers les plus courants Les outils d analyse de protocole sont nombreux ; nous vous proposons d'en présenter quelques-uns. Nous ne prétendons pas à l'exhaustivité, aussi ne mentionnerons-nous que quelques exemples. Nous allons étudier des sniffers destinés au diagnostic et d'autres conçus pour l interception des informations d'authentification. Vous trouverez des listes de sniffers sur divers sites consacrés à la sécurité, notamment sur le site de securityfocus (www.securityfocus.com). Ethereal Ethereal est l'un des analyseurs de protocoles les plus récents, puisqu il n'est apparu que vers 1998. Toutefois, de par sa nature open source, Ethereal est devenu l'un des analyseurs de protocoles les plus répandus. Soutenu par une importante communauté de développeurs, il décode plus de protocoles que de nombreux outils commerciaux équivalents. Il est de loin le meilleur analyseur de protocoles pour des systèmes Unix. Bien qu'il s'exécute aussi sur Windows, son interface graphique surprend les habitués de l utilisation de Windows. En réalité, celle-ci a été écrite au moyen de Gtk, d'où son apparence de type Unix. La figure 10.1 montre la fenêtre d interception d'ethereal. Une fonctionnalité particulièrement intéressante de ce programme est la décomposition des paquets en temps réel (live decodes). La plupart des analyseurs de protocoles ne peuvent afficher les données interceptées tant que l interception n'a pas été arrêtée. L'utilité de cette fonctionnalité peut paraître douteuse lorsque l'on sait que le trafic réseau peut atteindre des débits atteignant 10 000 paquets par seconde, une vitesse que les humains sont incapables de suivre. Toutefois, la plupart des utilisateurs d'un sniffer créent des filtres qui rejettent la plus grande part du trafic. Une fois interceptés, les paquets sont conservés dans un tampon et affichés dans une interface composée de trois panneaux (voir la figure 10.2). Il s'agit du format d'affichage adopté à l'origine par Sniffer Network Analyzer, qui est ensuite devenu celui de tous les autres produits. La fenêtre supérieure affiche un résumé ligne par ligne de chaque paquet. La seconde fenêtre présente la décomposition en couches de protocoles du paquet mis en surbrillance dans la fenêtre de résumé. La troisième fenêtre correspond à la sortie hexadécimale du même paquet. Un clic sur l un des champs de la fenêtre présentant les détails des couches de protocoles

348 Stratégies anti-hackers Figure 10.1 La fenêtre permettant de spécifier le trafic à analyser. entraîne la mise en surbrillance des caractères correspondants dans la fenêtre qui affiche la sortie hexadécimale. Sniffer Pro, de Network Associates Sniffer Pro est une marque déposée de Network Associates. Les logiciels de sniffing qu'utilisent les hackers d'aujourd'hui tirent peut-être leur nom de ce produit, car il était disponible bien avant l'apparition des programmes d interception de mots de passe. Sniffer Pro est doté d'une interface de capture et de visualisation du trafic réseau conviviale. Le grand avantage des produits du commerce est qu'ils prennent en charge un grand nombre de protocoles réseau et qu'ils affichent les données du protocole décodées très lisiblement. Sniffer Pro fonctionne selon deux modes : il intercepte le trafic réseau, puis il le décode et l'affiche. La figure 10.3 montre Sniffer Pro en mode interception ; les statistiques réseau et les données sont affichées dans des fenêtres. Une fois capturées, les données sont décodées puis affichées de manière lisible. Sur la figure 10.4, Sniffer Pro a décodé la requête HTTP et on peut voir que deux variables significatives, alias et pw, ont été passées. Elles représentent en l'occurrence le nom de l'utilisateur et son mot de passe. Moniteur réseau (Netmon) Windows NT Server est livré avec un logiciel de surveillance du réseau appelé Moniteur réseau, ou, en abrégé, Netmon (Network Monitor). Cette version de Netmon n intercepte que

Écoutes sur un réseau informatique CHAPITRE 10 349 Figure 10.2 La fenêtre affichant la décomposition en couches de protocoles. EtherPeek le trafic entrant ou sortant du serveur sur lequel il est installé. Il existe des versions de Netmon pour Windows 2000 et Windows XP qui comportent la même restriction. Une version, cependant, intercepte tout le trafic ; celle-ci est fournie avec SMS (Systems Management Server). Netmon a un avantage sur les autres analyseurs de réseau du marché : il est capable de décoder certains trafics réseau propriétaires de Microsoft dont les spécifications ne sont pas publiques, tels que les différents services MS-RPC qui communiquent par le biais de canaux nommés sur des réseaux Windows NT. Même si Netmon ne décode pas tous les services MS-RPC, il en décode une bonne partie, qui, sans lui, resterait inintelligibles. Le mode opératoire du Moniteur réseau est très similaire à celui de Sniffer Pro, puisqu'il propose un mode d interception (figure 10.5) et un mode de visualisation (figure 10.6) qui offrent les mêmes fonctionnalités. EtherPeek est l un des plus anciens analyseurs de protocoles. Outil de WildPackets (dont l'ancien nom est A.G. Group), il peut être exécuté aussi bien sur des systèmes Macintosh que Windows (sa première version a été écrite il y a dix ans pour Macintosh). EtherPeek comporte

350 Stratégies anti-hackers Figure 10.3 Sniffer Pro en mode capture. TCPDump une fonctionnalité d'affichage et de décodage en temps réel, et bien d'autres caractéristiques intéressantes (vous pouvez télécharger une version de démonstration à www.wildpackets.com). Actuellement, ce produit se distingue notamment dans sa version AeroPeek qui permet d écouter des réseaux sans-fil IEEE 802.11b. TCPDump est, de loin, l'outil de diagnostic et d'analyse réseau sous Unix le plus populaire. Il surveille et décode toutes les données d'en-tête IP, TCP, UDP (User Datagram Protocol) et ICMP (Internet Control Message Protocol), ainsi que certaines données de la couche Application (la plupart des protocoles d'infrastructure réseau). Il n'est pas conçu comme un outil d'attaque et n'est pas destiné à assister les attaquants qui souhaitent surveiller un réseau. Il

Écoutes sur un réseau informatique CHAPITRE 10 351 Figure 10.4 Sniffer Pro affiche les données capturées. fournit néanmoins une base solide au développement d'un sniffer. Son code source étant gratuit, il est très instructif de le consulter. TCPDump peut être téléchargé à l'adresse suivante : www.tcpdump.org. TCPDump a subi de nombreuses modifications ces dernières années et prend maintenant en charge beaucoup de protocoles. dsniff Dsniff comprend un ensemble d'outils dédiés au sniffing écrits par Dug Song. Vous pouvez vous le procurer sur le site Web de son auteur (www.monkey.org/~dugsong/dsniff) ainsi que sur de nombreux sites miroirs. Dsniff est surtout connu pour ses capacités d interception des paquets d'authentification (noms d'utilisateur et mots de passe). La version actuelle décode les informations d'authentification des protocoles suivants : AOL Instant Messenger, Citrix Winframe, CVS (Concurrent Versions System), FTP (File Transfer Protocol), HTTP, ICQ, IMAP, IRC (Internet Relay

352 Stratégies anti-hackers Figure 10.5 Le Moniteur réseau en mode interception. Chat), LDAP (Lightweight Directory Access Protocol), les requêtes de montage RPC, Napster, NNTP, Oracle Database SQL*Net, OSPF (Open Shortest Path First), PC Anywhere, POP, PostgreSQL, RIP (Routing Information Protocol), rlogin (Remote Login), les paquets SMB, RPC yppasswd, Sniffer Pro de Network Associates (remote), SNMP (Simple Network Management Protocol), Socks, telnet, X11. Avec les réseaux commutés et les protocoles chiffrés actuels, l espionnage de mots de passe ne fonctionne pas toujours aussi bien qu'on pourrait le souhaiter. Dsniff contient plusieurs utilitaires de redirection et d'attaques de type MITM (Man-In-The-Middle) qui permettent de rediriger le flux du trafic et de déchiffrer des sessions. Le premier utilitaire s'appelle arpspoof (appelé à l origine arpredirect). ARP (Address Resolution Protocol) est utilisé par des hôtes pour déterminer l'adresse MAC (Media Access Control) du routeur local. En usurpant des paquets ARP, vous pouvez convaincre les ordinateurs du voisinage que vous êtes le routeur. Votre machine doit alors transmettre les paquets reçus vers le routeur légitime, mais le sniffer de mot de passe dsniff a ainsi la possibilité de traiter les paquets. Cela fonctionne non seulement sur des réseaux commutés, mais aussi sur des réseaux

Écoutes sur un réseau informatique CHAPITRE 10 353 Figure 10.6 Le Moniteur réseau en mode visualisation. modem-câble. Cet outil n'est pas complètement à toute épreuve : vous luttez avec le routeur lorsque vous essayez de persuader les autres ordinateurs de votre adresse MAC locale. Le résultat est que le trafic reçu sur votre machine est parfois intermittent. Cette technique est facilement détectée par les systèmes de détection d intrusion réseau. Même Sniffer Pro (dont il a été question plus haut) comporte un mode de diagnostic expert qui signale la présence «d adresses IP dupliquées» (à savoir que plusieurs ordinateurs prétendent avoir l adresse IP du routeur). L utilitaire dnsspoof propose une autre méthode de redirection du trafic. Dans ce cas, ce sont les réponses du serveur DNS (Domain Name System) local qui sont usurpées. Lorsque vous allez sur un site Web tel que http://www.exemple.com, votre ordinateur envoie une requête à votre serveur DNS local pour lui demander l adresse IP de ce site. Cette requête demande

354 Stratégies anti-hackers Un exemple d'utilisation de DSNIFF La sortie suivante a été générée avec dsniff par Dug Song, qui a intercepté avec succès mon mot de passe lors de la conférence consacrée à la sécurité CanSecWest 2001. Il se trouve en effet qu'outlook consulte automatiquement les serveurs POP3, même lorsqu'on se contente de l'ouvrir pour lire les informations de contact du carnet d'adresse. J'ai rapidement changé mon mot de passe, juste à temps, car la suite de la sortie de dsniff montre la tentative d'une autre personne qui essaie d'ouvrir une session avec ce mot de passe ; il s'agit certainement d'un autre utilisateur de dsniff. ----------------- 03/28/01 18:43:24 tcp 192.168.1.201.1035 -> 216.136.173.10.110 (pop) USER robert_david_graham PASS Cerveza2 ----------------- 03/29/01 02:07:41 tcp 192.168.1.243.1837 -> 216.136.173.10.110 (pop) USER robert_david_graham PASS Cerveza2 ----------------- 03/29/01 02:07:08 tcp 192.168.1.243.1836 -> 64.58.76.98.80 (http) POST /config/login?84gteu3f1fmvt HTTP/1.0 Host: login.yahoo.com Content-type: application/x-www-form-urlencoded Content-length: 147.tries=1&.src=ym&.last=&promo=&.intl=us&.bypass=&.partner=&.u=86 3imictc5nnu&.v=0&hasMsgr=0&.chkP=Y&.done=&login=robert _david_graham&passwd=cerveza2 ----------------- 03/29/01 02:06:48 tcp 192.168.1.243.1835 -> 64.58.76.98.80 (http) POST /config/login?15aeb5g14endr HTTP/1.0 Host: login.yahoo.com Content-type: application/x-www-form-urlencoded Content-length: 146.tries=&.src=ym&.last=&promo=&.intl=us&.bypass=&.partner=&.u=863 imictc5nnu&.v=0&hasmsgr=0&.chkp=y&.done=&login=robert _david_graham&passwd=cerveza2 ----------------- 03/31/01 17:07:38 tcp 192.168.1.243.1307 -> 216.136.173.10.110 (pop) USER robert_david_graham PASS Cerveza2 habituellement un certain délai pour être résolue ; dnsspoof en profite pour envoyer sa réponse plus rapidement. La victime prend la première réponse et ignore la seconde. La réponse usurpée contient une adresse IP différente de la réponse légitime ; il s agit généralement de l adresse IP de la machine de l attaquant. L attaquant utilise alors certainement l un des autres utilitaires d attaque de type MITM de dsniff.

Écoutes sur un réseau informatique CHAPITRE 10 355 Le nom MITM (man-in-the-middle) vient de la cryptologie et décrit une situation dans laquelle une personne intercepte des communications, les modifient et les transmet. Les utilitaires de dsniff pour ces attaques sont webmitm pour le trafic HTTP (y compris SSL) et sshmitm pour SSH. SSH et SSL sont des protocoles chiffrés généralement considérés comme sécurisés et non susceptibles d être analysés. Les utilitaires MITM procèdent en présentant leurs propres clés de chiffrement aux clients SSL/SSH, ce qui leur permet de déchiffrer le trafic, d intercepter des mots de passe et de rechiffrer ceux-ci avec les clés du serveur initial. En théorie, il est possible de se protéger contre ce type d attaque en contrôlant la validité du certificat du serveur, mais dans les faits, personne ne procède à cette vérification. Dsniff intercepte non seulement les mots de passe, mais aussi tout le trafic qui circule en texte clair sur le réseau. L utilitaire mailsnarf intercepte les e-mails tout comme Carnivore du FBI, sauf qu il réassemble ceux-ci au format mbox, lequel peut être lu par la plupart des lecteurs de messagerie électronique. L utilitaire msgsnarf intercepte les messages envoyés par ICQ, IRC, Yahoo! Messenger et IM d AOL. L utilitaire filesnarf enregistre toutes les URL circulant sur le réseau. L utilitaire webspy envoie quant à lui ces URL à un navigateur Web Netscape en temps réel, ce qui permet de voir ce qu affiche le navigateur de la victime. L utilitaire macof envoie un flot d adresses MAC. Il s agit là d une autre méthode d attaque des commutateurs Ethernet. La plupart des commutateurs ont des tables de taille limitée qui ne peuvent pas contenir plus de 4000 adresses MAC. Ce nombre est largement suffisant pour les réseaux habituels (il faut relier plus de 4000 machines au commutateur pour outrepasser la capacité de sa table). Lorsque le commutateur est saturé, il se met à répéter tous les paquets sur chacun des ports, ce qui permet d analyser le trafic de tout le monde. L utilitaire tcpkill met fin aux connexions TCP. Il peut servir à des attaques en déni de service. Vous pouvez, par exemple, configurer cet outil de manière à ce qu il ferme toutes les connexions ouvertes par votre voisin. Tcpkill peut aussi être intégré à des outils comme des IDS afin qu ils tuent toutes les connexions ouvertes par des intrus. L utilitaire tcpnice est semblable à tcpkill ; cependant, au lieu de fermer les connexions TCP, il les ralentit. Vous pouvez par exemple envoyer des faux messages ICMP Source Quenches (qui signalent un débit trop élevé à l émetteur) à partir des modems-câbles de vos voisins pour disposer d un pourcentage de bande passante plus élevé pour vos téléchargements. Ettercap Ettercap est un logiciel semblable à celui proposé par dsniff. Il propose plusieurs des fonctionnalités de ce dernier : les attaques de type MITM contre SSL et SSH ainsi que l interception des mots de passe. Ettercap offre même des fonctionnalités supplémentaires pour les attaques de l homme du milieu réalisées contre des connexions TCP standards. C est ainsi qu il permet d insérer des commandes dans le flux du trafic. Ettercap a été écrit par Alberto Ornaghi et Marco Valleri. On peut se le procurer à l adresse suivante : http://ettercap.sourceforge.net.

356 Stratégies anti-hackers Esniff.c Sniffit Esniff.c est certainement un des premiers sniffers ayant vu le jour dans le milieu hacker. Écrit par un pirate nommé rokstar, il ne fonctionnait initialement que sur SunOS, le système d'exploitation (désormais obsolète) des machines Sun Microsystems. Esniff gère les protocoles telnet, FTP et rlogin. Il offre les fonctionnalités de base et ne prend pas en charge autant de protocoles que des sniffers plus récents tels que dsniff et sniffit. Vous pouvez vous procurer ce sniffer, initialement publié dans la revue Phrack, à l'adresse suivante : http://www.phrack.org/ show.php?p=45&a=5. Sniffit n'est pas non plus de la première jeunesse. Il est compatible avec de nombreux systèmes d'exploitation, dont Linux, Solaris, SunOS, Irix et FreeBSD. Bien qu'il n'ait pas été mis à jour depuis un certain temps, il semble relativement stable (même si la dernière version était qualifiée de bêta). Brecht Claerhout, l'auteur de sniffit, en propose deux versions sur son site Web : la 0.3.5 (sortie en avril 1997) et la bêta, 0.3.7. (sortie en juillet 1998). La compilation et la mise en œuvre de la version bêta 0.3.7 ne nous a jamais posé aucun problème ; si vous en rencontrez, vous pourrez toujours utiliser la version précédente. Le site Web de Brecht Claerhout se trouve à l'adresse suivante : http://reptile.rug.ac.be/~coder/sniffit/sniffit.html. Une des raisons pour lesquelles nous employons sniffit est qu'il est facile de le configurer pour qu'il journalise certains trafics prédéterminés, comme FTP et telnet. Ce type de filtre n'est pas rare : on le retrouve sur d'autres sniffers, tels que Sniffer Pro et Netmon, pour ne citer qu'eux. Mais avez-vous déjà vu un de ces sniffers discrètement installés sur un système compromis? Sniffit a une taille réduite et est simple à configurer quand il s agit d intercepter (et de journaliser) le trafic de certains protocoles contenant des informations en clair, comme les noms d'utilisateurs et les mots de passe. L'exemple suivant illustre ses capacités : [Tue Mar 28 09:46:01 2000] - Sniffit session started. [Tue Mar 28 10:27:02 2000] - 10.40.1.6.1332-10.44.50.40.21: USER [hansen] [Tue Mar 28 10:27:02 2000] - 10.40.1.6.1332-10.44.50.40.21: PASS [worksux] [Tue Mar 28 10:39:42 2000] - 10.40.1.99.1651-10.216.82.5.23: login [trebor] [Tue Mar 28 10:39:47 2000] - 10.40.1.99.1651-10.216.82.5.23: password [goaway] [Tue Mar 28 11:08:10 2000] - 10.40.2.133.1123-10.60.56.5.23: login [jaaf] [Tue Mar 28 11:08:17 2000] - 10.40.2.133.1123-10.60.56.5.23: password [5g5g5g5] [Tue Mar 28 12:45:21 2000] - 10.8.16.2.2419-10.157.14.198.21: USER [afms] [Tue Mar 28 12:45:21 2000] - 10.8.16.2.2419-10.157.14.198.21: PASS [smfasmfa] [Tue Mar 28 14:38:53 2000] - 10.40.1.183.1132-10.22.16.51.23: login [hohman] [Tue Mar 28 14:38:58 2000] - 10.40.1.183.1132-10.22.16.51.23: password [98rabt] [Tue Mar 28 16:47:14 2000] - 10.40.2.133.1069-10.60.56.5.23: login [whitt] [Tue Mar 28 16:47:16 2000] - 10.40.2.133.1067-10.60.56.5.23: password [9gillion] [Tue Mar 28 17:13:56 2000] - 10.40.1.237.1177-10.60.56.5.23: login [douglas]

Écoutes sur un réseau informatique CHAPITRE 10 357 [Tue Mar 28 17:13:59 2000] - 10.40.1.237.1177-10.60.56.5.23: password [11satrn5] [Tue Mar 28 17:49:43 2000] - 10.40.1.216.1947-10.22.16.52.23: login [demrly] [Tue Mar 28 17:49:46 2000] - 10.40.1.216.1947-10.22.16.52.23: password [9sefi9] [Tue Mar 28 17:53:08 2000] - 10.40.1.216.1948-10.22.16.52.23: login [demrly] [Tue Mar 28 17:53:11 2000] - 10.40.1.216.1948-10.22.16.52.23: password [jesa78] [Tue Mar 28 19:32:30 2000] - 10.40.1.6.1039-10.178.110.226.21: USER [custr2] [Tue Mar 28 19:32:30 2000] - 10.40.1.6.1039-10.178.110.226.21: PASS [Alpo2p35] [Tue Mar 28 20:04:03 2000] - Sniffit session ended. Comme vous pouvez le constater, en dix heures, nous avons réussi à récupérer les noms d'utilisateurs et les mots de passe correspondant à neuf utilisateurs de trois sites FTP et de cinq emplacements telnet. L'utilisateur demrly semble avoir fourni un mot de passe incorrect quand il a tenté de se connecter à l'adresse 10.22.16.52 pour la première fois, mais nous conservons quand même ce mot de passe, car il peut être valide à un autre endroit. Carnivore Carnivore a été conçu par le FBI pour réaliser des écoutes sur Internet. Sa conception a tenu compte des exigences particulières de la législation américaine. Il est ainsi possible que certains juges n autorisent que l enregistrement des adresses des expéditeurs et des destinataires (les champs From et To) tandis que d autres permettent l interception de la totalité des e-mails. Le programme de configuration de Carnivore présente un résumé de ses fonctionnalités (voir figure 10.7). Les fonctionnalités de Carnivore sont les suivantes : Filter sets Les paramètres sont sauvegardés dans des fichiers de configuration, ce qui permet à l utilisateur de modifier rapidement les critères de la surveillance en sélectionnant un autre jeu de filtres (filter set). Network adapters Un système est susceptible de comporter plusieurs cartes réseaux, mais une seule peut être sélectionnée pour l écoute. Archive file size Il est possible de définir une quantité limite de données interceptées ; par défaut, le programme remplit la totalité de l espace disque. Total memory usage Il est possible que le trafic parvienne en rafales dont la vitesse dépasse les capacités d écriture sur le disque. Dans ce cas, la mémoire est utilisée pour mettre en tampon les données entrantes. Fixed IP address On peut filtrer tout le trafic d une plage d adresses IP expéditrice ou de destination. Par exemple, la cible peut avoir une adresse IP fixe de 1.2.3.4 attribuée à son modem - câble. Le FBI se procurera alors une autorisation judiciaire lui permettant d écouter la totalité du trafic de la cible.

358 Stratégies anti-hackers Figure 10.7 Le programme de configuration de Carnivore. Protocols to capture En général, une décision judiciaire ne permet la surveillance que des trafics déterminés, par exemple SMTP sur TCP. En mode Pen, seuls les en-têtes sont interceptées. Data text strings Il s agit d une fonctionnalité d Echelon qui recherche certains motsclés dans le trafic. Une décision judiciaire doit spécifier avec exactitude ce qui est à surveiller : une adresse IP ou un compte e-mail. Des recherches de mot-clés de si grande envergure sont illégales aux États-Unis. Le FBI a au départ refusé de reconnaître que Carnivore était doté d une telle fonctionnalité. Ports Il est possible de spécifier une liste de ports TCP et UDP. Par exemple, si le FBI dispose d une décision judiciaire l autorisant à intercepter des e-mails, il peut spécifier les ports 25, 110 et 143. SMTP e-mail addresses Un scénario type est celui dans lequel Carnivore est employé pour surveiller le serveur de la messagerie d un FAI et rejette tous les e-mails à l exception de ceux des suspects. Une session e-mail est enregistrée dès lors qu apparaît l adresse e-mail d un suspect, puis tous les paquets composant l e-mail sont ensuite interceptés. Dynamic IP addresses Lorsque les utilisateurs se connectent à Internet par ligne commutée, leurs ouvertures de session sont prises en charge par le protocole RADIUS qui leur attribue une adresse IP. En principe, le FBI demande au FAI de reconfigurer leurs serveurs RADIUS de manière à toujours attribuer la même adresse IP au suspect, puis il surveille la totalité du trafic destiné à cette adresse ou en provenance de celle-ci. (Remar-

Écoutes sur un réseau informatique CHAPITRE 10 359 quez que si vous vous connectez sur ligne commutée et que vous pensez que le FBI s intéresse à vous, vérifiez que votre adresse IP change à chaque connexion.) Parfois cela n est pas possible. Dans ce cas, Carnivore peut être configuré de manière à surveiller le protocole RADIUS et à découvrir dynamiquement la nouvelle adresse IP attribuée au suspect. La surveillance commence dès l attribution de l adresse IP et cesse lorsque celle-ci n est plus attribuée. Le FBI a développé Carnivore en raison des insuffisances d utilitaires tels que dsniff par rapport aux exigences d ordre juridique. Lorsqu un e-mail est envoyé sur le réseau, celui-ci est divisé en plusieurs paquets. Un utilitaire tel que mailsnarf (décrit plus haut) réassemble l email pour lui restituer sa forme d origine. Ce mécanisme n est pas souhaitable, car la défense du suspect aura tôt fait d insister sur la fragilité des pièces à conviction ainsi rassemblées : n est-il pas possible qu un paquet ait été inséré dans le trafic de manière à changer le texte du message? est-ce que le paquet inséré dans le message pourrait provenir de l e-mail d une autre personne? En interceptant les paquets à l état brut plutôt qu en les réassemblant, Carnivore préserve les numéros de séquence, les ports et les indications d heure d origine. Tout paquet manquant ou supplémentaire apparaît aussitôt, ce qui permet au FBI de soutenir l authenticité de la pièce à conviction ainsi constituée. Un autre problème auquel a été confronté le FBI tient à la minimisation des données écoutées. Lorsque le FBI écoute une ligne téléphonique, il lui faut affecter un agent pour l écouter. Si une autre personne que le suspect se sert du téléphone (l épouse ou les enfants, par exemple), obligation lui est faite d interrompre les enregistrements. De la même manière, Carnivore a été conçu de façon à éviter l interception de ce qui n appartient pas au suspect. Un exemple type est celui de l utilisation de Carnivore pour surveiller les activités d un utilisateur se connectant à Internet par une ligne commutée. Carnivore contient un module surveillant le trafic RADIUS, lequel est un protocole utilisé par de nombreux FAI pour authentifier les utilisateurs et leur attribuer une adresse IP dynamique. Ce module permet à Carnivore de ne surveiller que l utilisateur cible sans intercepter d autres trafics. INFO Vous trouverez une FAQ consacrée à Carnivore à l adresse suivante : www.robertgraham.com/pubs/carnivore-faq.html. Autres ressources Il existe plusieurs pages Web fournissant une liste plus exhaustive des programmes d écoute disponibles. En voici deux : une liste des programmes de surveillance réseau proposée par Underground Security Systemes Research : www.ussrback.com/sniffers.htm ; une bonne présentation, très détaillée, des analyseurs de paquets écrite par Robert Graham : www.robertgraham.com/pubs/sniffing-faq.html.

360 Stratégies anti-hackers Techniques d écoute avancées Au fur et à mesure que la technologie progresse, les attaquants conçoivent de nouvelles méthodes d écoute du trafic réseau. Les sections qui suivent présentent quelques-unes des méthodes employées par les attaquants pour tirer parti des avancées de la technologie. Attaques de type MITM Comme nous le verrons plus tard, la défense la plus efficace contre l écoute est le recours à des protocoles chiffrés, tels que SSL et SSH. Il n en demeure pas moins que les logiciels dsniff et Ettercap contiennent des techniques permettant de déjouer le chiffrement des communications. La principale technique est celle appelée attaque man-in-the-middle (homme du milieu). Un bon exemple en est donné dans le film Bons baisers de Russie. Dans ce film, James Bond doit rencontrer un autre agent dans une gare ferroviaire. L agent ennemi du SPECTRE commence par contacter l agent en se faisant passer pour James Bond. Il obtient ainsi la phrase à prononcer pour s identifier. Ensuite, l agent ennemi usurpe l identité de l agent que doit rencontrer James Bond. La même technique peut être mise en oeuvre pour les protocoles chiffrés. Un attaquant met en place un serveur qui répond aux requêtes des clients. Le serveur peut par exemple prendre en charge les requêtes destinées à http://www.amazon.com. Un utilisateur qui contacte cet ordinateur peut croire alors à tort qu il a établi une session chiffrée avec le site Amazon. Au même moment, l attaquant établit une connexion avec le véritable site et se fait passer auprès de lui pour l utilisateur. Autrement dit, l attaquant joue deux rôles à la fois, ce qui implique qu il déchiffre les données entrantes envoyées par l utilisateur et qu il chiffre à nouveau celles-ci pour les transmettre au véritable site. En théorie, les protocoles de chiffrement comportent des mécanismes de protection contre de telles attaques. Un serveur prétendant être Amazon doit en fait prouver qu il l est véritablement. Dans la pratique, la plupart des utilisateurs ignorent cette nécessité. C est pourquoi les attaques de type MITM se sont avérées efficaces lorsqu elles ont été employées dans ce domaine. Craquage des mots de passe Des outils comme dsniff et Ettercap peuvent non seulement intercepter des mots de passe en texte clair, mais aussi des mots de passe chiffrés. En théorie, l interception de mots de passe chiffrés est inutile. Cependant, de nombreuses personnes choisissent des mots de passe faibles comme des mots du dictionnaire. Un attaquant n a alors besoin que de quelques secondes pour réaliser une attaque avec un dictionnaire de 100 000 mots, au cours de laquelle il comparera la forme chiffrée de chaque mot du dictionnaire à celle du mot de passe recherché. Dès qu une correspondance est trouvée, le mot de passe est découvert.

Écoutes sur un réseau informatique CHAPITRE 10 361 Il existe des programmes de craquage de mots de passe employant cette méthode. C est pourquoi, il suffit que dsniff et Ettercap génèrent les mots de passe à craquer dans un format que ces outils peuvent lire. Attaques des commutateurs La mode des commutateurs a commencé voici quelques années. Nombre de possesseurs de réseaux commutés étaient persuadés qu'aucun attaquant ne pouvait écouter leurs informations. Nous allons pourtant passer ci-après en revue les méthodes d écoute mises au point pour les réseaux commutés! Usurpation ARP Quand on projette de surveiller le trafic d'un réseau commuté, on s'attaque à un sérieux problème : le commutateur limite le trafic qui transite au-delà votre segment de réseau. Les commutateurs possèdent une liste interne des adresses MAC des hôtes affectés à chaque port. Le trafic est envoyé à un port seulement si l'hôte destinataire est signalé comme étant présent sur ce port. Dans de nombreux systèmes d'exploitation, il est cependant possible de modifier le cache ARP (Address Resolution Protocol). Cette opération permet d associer votre adresse MAC à l'adresse IP de la passerelle par défaut. Grâce à cette manipulation, tout le trafic en provenance de l'hôte cible vous est transmis. Assurez-vous toutefois d'avoir ajouté manuellement une entrée dans la table ARP pour la véritable passerelle par défaut (afin que le trafic soit envoyé vers le véritable hôte de destination) et d'avoir activé l'ip forwarding. Il a été démontré que de nombreux réseaux de modems câbles sont également vulnérables à ce type d'attaque dans la mesure où ils sont avant tout des réseaux Ethernet avec des modems câbles jouant le rôle de ponts. En résumé, il n'existe aucune solution contre cette attaque ; les nouvelles générations de réseaux de modems câbles recourront à d'autres mécanismes pour connecter les utilisateurs au réseau. Le sniffer dsniff de Dug Song inclut un programme appelé arpspoof (autrefois arpredirect) qui utilise cette technique. arpspoof redirige les paquets d un hôte cible (ou de tous les hôtes) situé sur le LAN et destinés à un autre hôte du LAN en manipulant les réponses ARP. Il s agit là d une technique de sniffing très efficace dans un environnement commuté. Saturation MAC (FAQ de dsniff) Pour bien jouer son rôle, un commutateur doit conserver une table des adresses MAC (Ethernet) des hôtes qui apparaissent sur chaque port. Lorsqu'un grand nombre d adresses

362 Stratégies anti-hackers apparaît sur un seul port au point de remplir la table d'adresses, le commutateur n enregistre plus le port auquel l adresse MAC de la victime est connectée. Il s agit là de la même situation que lorsqu un nouvel ordinateur est relié pour la première fois à un commutateur et que celuici doit apprendre l emplacement auquel se situe cette adresse. Jusqu à ce qu il apprenne le port sur lequel est situé le nouvel ordinateur, le commutateur doit envoyer des copies des trames destinées à la nouvelle adresse MAC sur tous ses ports ; cette technique est appelée inondation ou flooding. Le sniffer dsniff inclut un programme appelé macof, qui rend possible l attaque par inondation d'un commutateur auquel il envoie un flot d'adresses MAC générées de manière aléatoire. macof inonde le réseau local d adresses MAC aléatoirement générées (conduisant certains commutateurs à se comporter comme de simples répéteurs, ce qui facilite l écoute). Le programme consiste en un simple portage vers le C du programme macof d origine écrit en Perl (avec le module Net::RawIP) par Ian Vitek <ian.vitek@infosec.se>. (FAQ de dsniff) Manipulation du routage Si vous désirez vous assurer que tout le trafic d'un réseau va transiter par votre hôte, vous pouvez modifier la table de routage de l'hôte que vous voulez surveiller. Cette manipulation peut être, par exemple, réalisée par l envoi d un message de routage RIP (Routing Information Protocol) erroné annonçant que votre ordinateur est la passerelle par défaut. Si vous réussissez, tout le trafic sera routé à travers votre hôte. Vérifiez que vous avez activé l'ip forwarding et que votre passerelle par défaut est bien la véritable passerelle du réseau. Tout le trafic sortant de l'hôte transitera alors à la fois à travers votre hôte et par la véritable passerelle du réseau. Vous ne recevrez probablement pas le trafic de retour, sauf si vous avez la possibilité de modifier la table de routage de la passerelle par défaut de façon qu'elle reroute tout le trafic de retour vers vous. API réseau de certains systèmes d exploitation Linux Les systèmes d'exploitation ne fournissent pas tous des interfaces de programmation, ou API, avec leur couche de liaison réseau. Nous allons examiner plusieurs systèmes d exploitation afin de montrer leur interfaçage avec cette couche. Linux propose une interface avec la couche de liaison réseau via son interface socket. Cette interface est l'une des plus simples, tous systèmes d'exploitation confondus. Le programme cidessous illustre cette simplicité. Il ouvre l'interface spécifiée, initialise le mode promiscuité et

Écoutes sur un réseau informatique CHAPITRE 10 363 commence à lire les paquets Ethernet provenant du réseau. Quand un paquet est lu, les adresses MAC source et destinataire sont affichées en plus du type de paquet. #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <linux/if_arp.h> #include <linux/if_ether.h> #include <linux/sockios.h> #include <net/ethernet.h> int open_interface(char *name) { struct sockaddr addr; struct ifreq ifr; int sockfd; /* ouvre une socket et la lie à l'interface spécifiée */ sockfd = socket(af_inet, SOCK_PACKET, htons(eth_p_all)); if (sockfd < 0) return -1; memset(&addr, 0, sizeof(addr)); addr.sa_family = AF_INET; strncpy(addr.sa_data, name, sizeof(addr.sa_data)); if (bind(sockfd, &addr, sizeof(addr))!= 0) { close(sockfd); return -1; } /* on s'assure que l'interface est Ethernet. Sinon, on quitte */ memset(&ifr, 0, sizeof(ifr)); strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)); if (ioctl(sockfd, SIOCGIFHWADDR, &ifr) < 0) { close(sockfd); return -1; }

364 Stratégies anti-hackers if (ifr.ifr_hwaddr.sa_family!= ARPHRD_ETHER) { close(sockfd); return -1; } /* on initialise le mode promiscuté à présent */ memset(&ifr, 0, sizeof(ifr)); strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)); if (ioctl(sockfd, SIOCGIFFLAGS, &ifr) < 0) { close(sockfd); return -1; } ifr.ifr_flags = IFF_PROMISC; if (ioctl(sockfd, SIOCSIFFLAGS, &ifr) < 0) { close(sockfd); return -1; } } return sockfd; /* on lit les paquets Ethernet et on affiche les adresses source et destination */ int read_loop(sockfd) { struct sockaddr_in from; char buf[1792], *ptr; int size, fromlen, c; struct ether_header *hdr; while (1) { /* lit le prochain paquet disponible */ size = recvfrom(sockfd, buf, sizeof(buf), 0, &from, &fromlen); if (size < 0) return -1; if (size < sizeof(struct ether_header)) continue;

Écoutes sur un réseau informatique CHAPITRE 10 365 } } hdr = (struct ether_header *)buf; /* affiche l'en-tête Ethernet */ for (c = 0; c < ETH_ALEN; c++) printf("%s%02x",c == 0? "" : ":",hdr->ether_shost[c]); printf(" > "); for (c = 0; c < ETH_ALEN; c++) printf("%s%02x",c == 0? "" : ":",hdr->ether_dhost[c]); printf(" type: %i\n", hdr->ether_type); int main(int argc, char **argv) { int sockfd; char *name = argv[1]; if (!argv[1]) { fprintf(stderr, "Please specify an interface name\n"); return -1; } if ((sockfd = open_interface(name)) < 0) { fprintf(stderr, "Unable to open interface\n"); return -1; } BSD } if (read_loop(sockfd) < 0) { fprintf(stderr, "Error reading packet\n"); return -1; } return 0; Les systèmes d'exploitation BSD, comme OpenBSD, FreeBSD, NetBSD et BSDI, fournissent tous une interface avec la couche de liaison via un pilote du noyau appelé BPF (Berkeley

366 Stratégies anti-hackers Packet Filter). Le BPF possède quelques fonctionnalités remarquables qui le rendent extrêmement performant dans le traitement et le filtrage des paquets. Le pilote BPF dispose d un mécanisme de filtrage intégré au noyau. Celui-ci est composé d'une machine virtuelle qui permet, au moyen d'opérations très simples sur les octets, d'examiner chaque paquet via un petit programme chargé dans le noyau par l'utilisateur. Lorsqu'un paquet arrive, le petit programme traite ce paquet et détermine s'il doit être transmis à l'application utilisateur. Les expressions sont compilées en un bytecode simple dans le mode utilisateur, puis chargées dans le pilote via un appel à ioctl. libpcap Libpcap n'est pas vraiment une interface du système d'exploitation, mais plutôt une bibliothèque portable multi-plate-forme qui simplifie grandement l'accès à la couche de liaison réseau sur beaucoup de systèmes d'exploitation. Libpcap est une bibliothèque développée à l'origine par LBL (Lawrence Berkeley National Laboratories). Son but est d'abstraire l'interface de la couche de liaison sur différents systèmes d'exploitation et de créer une API standardisée simple. Cela permet la création d un code portable utilisant une interface de programmation unique. Le résultat est que l écriture de sniffers est grandement simplifiée, puisqu'il n est plus nécessaire de consacrer des efforts à l implémentation du programme sur plusieurs systèmes d exploitation. La version de LBL a été nettement améliorée depuis sa dernière publication officielle. Elle dispose d'une licence open source (la licence BSD) et peut donc être aussi employée dans des produits du commerce, modifiée sans restriction ou redistribuée. La version originale de la bibliothèque LBL peut être téléchargée à l'adresse suivante ftp:// ftp.ee.lbl.gov/libpcap.tar.z. Les gens de tcpdump.org, qui ont participé au développement de TCPDump, ont également adopté libpcap. Les dernières versions de libpcap peuvent être téléchargées à l'adresse suivante : www.tcpdump.org. Si nous comparons un sniffer écrit pour le système d'exploitation Linux, pour lequel nous avons utilisé l'interface système native, à un sniffer écrit sous Linux à l'aide de libpcap, nous constatons que le second est beaucoup plus simple, comme l'illustre le programme cidessous : #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <net/ethernet.h> #include <pcap/pcap.h> pcap_t *open_interface(char *name) {

Écoutes sur un réseau informatique CHAPITRE 10 367 pcap_t *pd; char ebuf[pcap_errbuf_size]; /* on utilise un appel pcap pour ouvrir l'interface en mode promiscuité */ pd = pcap_open_live(name, 1600, 1, 100, ebuf); if (!pd) return NULL; } return pd; int read_loop(pcap_t *pd) { const unsigned char *ptr; int size, c; struct pcap_pkthdr h; struct ether_header *hdr; while (1) { /* lit le paquet suivant disponible en utilisant libpcap */ ptr = pcap_next(pd, &h); if (h.caplen < sizeof(struct ether_header)) continue; hdr = (struct ether_header *)ptr; /* affiche l'en-tête Ethernet */ for (c = 0; c < ETH_ALEN; c++) printf("%s%02x",c == 0? "" : ":",hdr->ether_shost[c]); } } printf(" > "); for (c = 0; c < ETH_ALEN; c++) printf("%s%02x",c == 0? "" : ":",hdr->ether_dhost[c]); printf(" type: %i\n", hdr->ether_type); int main(int argc, char **argv)

368 Stratégies anti-hackers { pcap_t *pd; char *name = argv[1]; if (!argv[1]) { fprintf(stderr, "Please specify an interface name\n"); return -1; } pd = open_interface(name); if (!pd) { fprintf(stderr, "Unable to open interface\n"); return -1; } if (read_loop(pd) < 0) { fprintf(stderr, "Error reading packet\n"); return -1; } } return 0; Windows Les systèmes d'exploitation Windows ne fournissent aucune fonctionnalité permettant d'accéder au réseau au niveau de la couche de liaison de données. Il faut se procurer et installer un pilote de paquets externe. Jusqu'à récemment, on ne trouvait pas un pilote de ce type qui ne soit accompagné d une licence. Un pilote compatible BPF a été écrit récemment ; il prend même en charge le mécanisme de filtrage BPF intégré au noyau. Un portage de la bibliothèque libpcap est également disponible ; combinée au pilote, elle procure une interface aussi simple d emploi que celle d'unix. Le pilote, le portage de libpcap et des versions Windows de TCPDump sont disponibles à l'adresse suivante : http://netgroup-serv.polito.it/windump. Mesures de protection Si vous considérez que rien ne pourra empêcher l écoute de votre réseau, sachez qu'il existe des moyens de protection. Nous allons les étudier dans cette section.

Écoutes sur un réseau informatique CHAPITRE 10 369 Chiffrement des communications Heureusement pour la sécurité des réseaux, le chiffrement (dès lors qu il est convenablement déployé) est la solution miracle qui annihile totalement l'efficacité des sniffers! Le chiffrement des données réduit en effet à néant, en supposant que l'algorithme de chiffrement soit valable, toute tentative de surveillance passive de votre réseau. De nombreux protocoles de réseau ont à présent des équivalents fondés sur un chiffre robuste comme IPSec. Malheureusement, IPSec est rarement utilisé sur Internet en dehors des entreprises individuelles. SSH (Secure Shell) Secure Shell est un substitut sécurisé par chiffrement des commandes standard telnet, rlogin, rsh et rcp. Il se compose d un client et d un serveur qui chiffrent les sessions au moyen d'un système cryptologique à clés publiques. Secure Shell offre aussi la possibilité de réaliser la transmission des communications des ports arbitraires sur une connexion chiffrée, ce qui est très pratique pour la transmission du trafic de X11 Window et des autres connexions. SSH est plébiscité en tant que mécanisme d'accès interactif et sécurisé à un système distant. Il a été à l origine conçu et développé par un Finlandais, Tatu Ylonen. Ce produit est aujourd'hui commercialisé et, même si la version d'origine est toujours disponible gratuitement, sa licence est devenue plus restrictive. Des spécifications publiques ont vu le jour ; elles ont eu pour effet de favoriser le développement de nombreux logiciels client et serveur compatibles avec SSH qui, eux, ne sont pas soumis à ces restrictions relatives à l'usage commercial. La version initiale de SSH, écrite par Tatu Ylonen, est disponible à l'adresse suivante : ftp:// ftp.cs.hut.fi/pub/ssh/. La version payante de SSH est en vente sur le site de SSH Communications Security, à l'adresse suivante : www.ssh.com. SSH Communications Security délivre gratuitement son produit aux universités. Une version totalement gratuite compatible SSH, OpenSSH, développée dans le cadre du projet de système d'exploitation OpenBSD (voir la figure 10.8), peut être téléchargée à l'adresse suivante : www.openssh.com. Saluons ici le travail remarquable que l'équipe chargée d'openbsd et d'openssh accomplit quasiment gratuitement. La figure 10.8 existe aussi sous la forme d'un T-shirt, dont la vente permet de couvrir les frais du projet. Nous vous conseillons d'acheter leurs T-shirts, leurs posters et leurs CD-Rom à l'adresse suivante : www.openbsd.org/orders.html. SSL (Secure Sockets Layer) SSL fournit des services d authentification et de chiffrement. Par rapport au risque d écoute sur le réseau, SSL est vulnérable à une attaque de type MITM (comme il a été montré dans la section consacrée à dsniff). Un attaquant peut installer un proxy transparent entre vous et le serveur Web. Ce proxy peut être configuré de manière à déchiffrer la connexion SSL, à l inter-

370 Stratégies anti-hackers Figure 10.8 Le projet OpenSSH. cepter et à la rechiffrer. Lorsque cela se produit, l utilisateur voit s afficher une boîte de dialogue semblable à celle de la figure 10.9. Le problème est que la plupart des utilisateurs ignorent ces avertissements et continuent leurs opérations. Figure 10.9 Alerte de non conformité du certificat SSL. PGP et S/MIME PGP et S/MIME sont des standards pour le chiffrement des e-mails. S ils sont correctement utilisés, ils empêcheront des sniffers tels que dsniff et Carnivore d interpréter les e-mails interceptés.