RAPPORT DE STAGE DE FIN D ETUDES. Sujet



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

Sécurité des réseaux Les attaques

Les menaces informatiques

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

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

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

Introduction. Adresses

THEGREENBOW FIREWALL DISTRIBUE TGB::BOB! Pro. Spécifications techniques

Rappels réseaux TCP/IP

Module 8. Protection des postes de travail Windows 7

Firewall. Souvent les routeurs incluent une fonction firewall qui permet une première sécurité pour le réseau.

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

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

La collecte d informations

Protocoles DHCP et DNS

GENERALITES. COURS TCP/IP Niveau 1

Internets. Informatique de l Internet: le(s) Internet(s) Composantes de l internet R3LR RENATER

Annexe 5. Kaspersky Security For SharePoint Servers. Consulting Team

SERVEUR DE MESSAGERIE

Technique de défense dans un réseau

Outils d'analyse de la sécurité des réseaux. HADJALI Anis VESA Vlad

Fiche Technique. Cisco Security Agent

Protection des protocoles

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

KASPERSKY DDOS PROTECTION. Découvrez comment Kaspersky Lab défend les entreprises contre les attaques DDoS

Principes de DHCP. Le mécanisme de délivrance d'une adresse IP à un client DHCP s'effectue en 4 étapes : COMMUTATEUR 1. DHCP DISCOVER 2.

Windows Internet Name Service (WINS)

Sécurité des Réseaux et d internet. Yves Laloum

ISEC. Codes malveillants

Sécurité et Firewall

TP c Fonctions des listes de contrôle d'accès multiples (TP avancé)

Bibliographie. Gestion des risques

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

MAUREY SIMON PICARD FABIEN LP SARI

La haute disponibilité de la CHAINE DE

SECURIDAY 2013 Cyber War

Présenté par : Mlle A.DIB

TAGREROUT Seyf Allah TMRIM

Sécuriser son réseau. Sécuriser son réseau Philippe Weill (IPSL/LATMOS) Frédéric Bongat (SSI/GOUV/FR)

Sécurité des Postes Clients

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

Alexis Lechervy Université de Caen. M1 Informatique. Réseaux. Filtrage. Bureau S3-203

Chapitre 1 : Introduction aux bases de données

Notions de sécurités en informatique

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

A. Sécuriser les informations sensibles contre la disparition

Compromettre son réseau en l auditant?

Assistance à distance sous Windows

Figure 1a. Réseau intranet avec pare feu et NAT.

Configurer ma Livebox Pro pour utiliser un serveur VPN

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

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

Routeur Chiffrant Navista Version Et le protocole de chiffrement du Réseau Privé Virtuel Navista Tunneling System - NTS Version 3.1.

TD n o 8 - Domain Name System (DNS)

Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A. TP réseau firewall

DIGITAL NETWORK. Le Idle Host Scan

Projet : PcAnywhere et Le contrôle à distance.

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

NT Réseaux. IDS et IPS

Internet - Outils. Nicolas Delestre. À partir des cours Outils réseaux de Paul Tavernier et Nicolas Prunier

Faille dans Internet Explorer 7

Formation Iptables : Correction TP

Le service FTP. M.BOUABID, Page 1 sur 5

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

MISE EN PLACE DU FIREWALL SHOREWALL

Installation d un serveur DHCP sous Gnu/Linux

SERVEUR DE MESSAGERIE

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

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

Installation d'un serveur DHCP sous Windows 2000 Serveur

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

Glossaire. Acces Denied

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

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

Guide d utilisation. Table des matières. Mutualisé : guide utilisation FileZilla

Extrait de Plan de Continuation d'activité Octopuce

LANDPARK NETWORK IP LANDPARK NETWORK IP VOUS PERMET D'INVENTORIER FACILEMENT VOS POSTES EN RÉSEAU

[ Sécurisation des canaux de communication

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

Les messages d erreur d'applidis Client

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

Sécurité Informatique : Metasploit

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

Indicateur et tableau de bord

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

DHCP et NAT. Cyril Rabat Master 2 ASR - Info Architecture des réseaux d entreprise

Guide de l'utilisateur

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

JetClouding Installation

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

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

acpro SEN TR firewall IPTABLES

Version Wraptor Laboratories. Installation de SpamWars 4.0 Édition Entreprise

Fiche de l'awt La sécurité informatique

VoIP Sniffing IHSEN BEN SALAH (GL 3) MAHMOUD MAHDI (GL 3) MARIEM JBELI (RT 2) SAFA GALLAH (RT 3) SALAH KHEMIRI (RT 3) YOUSSEF BEN DHIAF (GL 3)

Installation de Windows 2003 Serveur

Tutoriel d'introduction à TOR. v 1.0

«Obad.a» : le malware Android le plus perfectionné à ce jour

Transcription:

Institut de la Francophonie pour l Informatique Ecole Nationale Supérieure des Télécommunications RAPPORT DE STAGE DE FIN D ETUDES Sujet - Etude et analyse des attaques et des signatures d'attaques - Etude bibliographique des parades au DoS et DDoS - Etude des HoneyPots - Intégration des HoneyPots dans une architecture globale de protection Etudiant : DOAN DUY Thieu Hoa, IFI Responsables : Ahmed SERHROUCHNI Paris, jenvier - juillet 2004

Sujet Etude et analyse des attaques et des signatures d'attaques Etude bibliographique des parades au DoS et DDoS Etude des HoneyPot Intégration des HoneyPot dans une architecture globale de protection 2

Table de matière Introduction... 5 Remerciements... 6 Partie 1 : Etude des attaques... 7 Déterminer des vulnérabilités...7 Le craquage par mot de passe...7 Le sniffing des mots de passe et des paquets...7 L'IP spoofing...9 Les scanners...10 Les chevaux de Troie...10 Les vers...11 Les trappes...11 Les bombes logiques...11 Le TCP-SYN flooding...12 Le Flood...13 Le Spamming...13 Les virus...13 L'ingénierie social...14 Partie 2 : Etude bibliographique des parades au DoS et DDoS... 15 DoS...15 Les attaques directes...15 Les attaques indirectes par rebond...16 Les attaques indirectes par réponse...16 Quelques parades de type DoS...17 Ping de la mort...17 TearDrop...18 DDoS...21 Mode opératoire...22 Les outils...22 1. TFN (Tribal Flood Network)...23 2. TFN2K...24 3. Trin00...24 4. Stacheldraht...26 Mesures de protection...26 Partie 3 : Etude des HoneyPot... 29 Définition...29 Avantages...29 Inconvénients...30 Les types d'honeypot...30 Honeyd: Low-interaction honeypot....31 Honeynet: High-interaction honeypot...32 3

Valeurs de Honeypot...33 Partie 4 : Intégration des HoneyPot dans une architecture globale de protection... 35 Installer Honeyd...35 Configuration Honeyd...37 Configurer un réseau virtuel simple...37 Configurer un réseau virtuel avec un routeur...38 Configurer un réseau virtuel relié aux machines réelles...39 Configurer un réseau virtuel complexe...40 Outils aide à créer fichier de configuration honeyd...41 Lancer Honeyd et analyser les données capturées...42 Lancer...43 Analyser les données capturées...43 Annexes... 51 Références... 55 4

Introduction Ce document est un rapport du stage que j ai effectué du 1 er janvier 2004 au 30 juin 2004 dans le cadre de la scolarité 2003/2004 au Département Informatique et Réseau, ce stage est placé sous la direction de Monsieur le Professeur Ahmed Serhrouschni L objectif du projet était de : - Etude et analyse des attaques et des signatures d attaques - Etude bibliographique des parades au DoS et DDoS - Etude des HoneyPot - Intégration des HoneyPot dans une architecture globale de protection Ce stage s inscrit dans le cadre de mon stage de fin d étude pour valider mon diplôme de DEA à l Institut de la Francophonie pour l Informatique au Vietnam. Ce document présentera 4 parties principales correspondantes à l objectif du projet. 5

Remerciements Je tien tout d abord à remercier Monsieur le Professeur Ahmed Serhrouchni pour m avoir accueilli dans son projet et avoir encadré mon stage. Je remercie tout particulièrement Adil Andalousie pour tous ses conseils sur la signature électronique ainsi que le certificat électronique et le temps qu il m a consacré. Merci également à toutes les personnes dans mon bureau qui m a donné un environnement de travail très agréable. 6

Partie 1 : Etude des attaques Déterminer des vulnérabilités Cette opération consiste à déterminer le système d'exploitation, les services ouverts ainsi que leur version afin de pouvoir déterminer les éventuelles failles et les exploiter. Un des outils les populaire et les plus puissant est «nmap»'. Il permet entre autres le half-scan (sans établir de connexion) nmap -ss IP_du_serveur ou encore, le fingerprinting (détection d'os) nmap -ss -O IP_du_serveur Il y a des autres outils qui nous aident à déterminer les vulnérabilités dans un système. Par exemple, sous Windows, l outils SuperScan est connu et souvent utilisé par l attaquant. Dans la dernière partie, je l utilise pour collectionner les informations sur les machines virtuelles. Après avoir obtenu les informations nécessaires sur les OS ou services ouvertes, l attaquant va chercher les vulnérabilités et les méthodes d attaque correspondantes Le craquage par mot de passe La manière la plus classique par laquelle un hacker va essayer d'obtenir un mot de passe est l'attaque avec un dictionnaire. Dans ce genre d'attaque, le hacker utilise un dictionnaire de mots et de noms propres, et il les essaie un à un pour vérifier si le mot de passe est valide. Ces attaques se font avec des programmes qui peuvent deviner des milliers de mots de passe à la seconde, même quand ceux-ci sont ``hachés''. Ce procédé est d'autant plus facile qu'il lui permet de tester des variations sur les mots : mots écrits à l'envers, majuscules et minuscules, ajout de chiffres à la fin du mot. Le sniffing des mots de passe et des paquets Si un hacker ne peut pas deviner un mot de passe, il a d'autres outils pour l'obtenir. Une façon qui est devenue assez populaire est le sniffing. La plupart des réseaux utilisent la technologie de broadcast (comme Ethernet). En pratique, tous les ordinateurs sauf le destinataire du message vont s'apercevoir que le message 7

ne leur est pas destiné et vont donc l'ignorer. Mais par contre, beaucoup d'ordinateurs peuvent être programmés pour regarder chaque message qui traverse le réseau (mode promiscuité). Il existe des programmes qui utilisent ce procédé et qui capturent tous les messages qui circulent sur le réseau en repérant les mots de passe. Si quelqu'un se connecte à un ordinateur à travers un réseau en utilisant les protocoles insécurités (telnet, rlogin, ftp...), alors cette personne risque de perdre son mot de passe. C'est pourquoi il existe une menace sérieuse pour les personnes qui se connectent sur des ordinateurs distants, où les mots de passe apparaissent en clair dans la trame. Les programmes de sniffing les plus connus sont Esniff et TCPDump. Mais un sniffer peut tout aussi bien être bénéfique à l'administrateur réseau, puisqu'il permettrait de déceler avant les Hackers les failles de sécurité de son réseau. Ethereal v0.8.12 sous Linux permet de journaliser les événements définis par l'administrateur. Il est en outre compatible avec les journaux de LOG des routeurs Cisco (Cisco Secure IDS iplog files). Ethereal est téléchargeable à l'adresse suivante : http://www.ethereal.com/ Voici ci-dessous une liste d'autres sniffers disponibles dans le commerce Nom Adresse Description ATM Sniffer Network http://www.networkassociates.com Décode plus de 250 protocoles Analyzer Shomiti Systems Century LAN Analyzer http://www.shomiti.com Supporte le standard Ethernet et fonctionne sous Windows 95/98 et NT PacketView de Klos Technologies ftp.klos.com/demo/pvdemo.zip Ce sniffer est basé sur DOS, idéal pour les environnements Ethernet Network Probe 8000 http://www.netcommcorp.com Fait une analyse d'environ 13 protocoles dont TCP/IP, Microsoft, NFS, Novell LANWatch http://www.guesswork.com Marche sous DOS, Windows 9x et NT EtherPeek http://www.aggroup.com Pour Windows et plates-formes Macintosh Ethload http://www.computercraft.com/nopro Sniffer qui permet de surveiller les gs/ethld104.zip sessions rlogin et telnet Linux sniffer Sniffer de mots de passe uniquement, en langage C La meilleure défense contre l'attaque de sniffers est l'utilisation d'un protocole de chiffrement comme SSL (Secure Socket Layer). 8

L'IP spoofing L'adresse IP d'un ordinateur est l'adresse qui est utilisée pour reconnaître un ordinateur sur internet. Un des principaux problèmes est qu'en utilisant le routage source d'ip, l'ordinateur du hacker peut se faire passer pour un ordinateur connu. Le routage source d'ip est une option qui peut être utilisée pour spécifier une route directe à une destination et renvoyer le chemin de retour à l'expéditeur. La route peut inclure l'utilisation d'autres routeurs ou de serveurs qui n'auraient normalement pas été utilisés pour faire suivre les paquets à la destination finale. Voici un exemple qui montre comment ceci peut être utilisé de façon à ce que l'ordinateur de l'intrus apparaisse comme étant l'ordinateur certifié par le serveur : L'agresseur change l'adresse IP de son ordinateur pour faire croire qu'il est un client certifié par le serveur, Il va ensuite construire une route source jusqu'au serveur qui spécifiera le chemin de retour direct que les paquets IP devront prendre pour aller au serveur et qu'ils devront prendre pour retourner à l'ordinateur de l'agresseur en utilisant le client certifié comme dernière étape dans la route vers le serveur, L agresseur envoie une requête client au serveur en utilisant la route source, Le serveur accepte la requête du client comme si elle provenait directement du client certifié et retourne une réponse au client, Le client, utilisant la route source, faire suivre le paquet à l'ordinateur de l'agresseur. Beaucoup de machines Unix acceptent les paquets de route source et les redirigent comme la route source l'indique. Beaucoup de routeurs acceptent également les paquets de route source bien que certains d'entre eux puissent être configurés pour bloquer ces paquets. Le routeur, pour des raisons de sécurité, ne devra pas accepter le routage source. Une autre manière encore plus simple pour spoofer un client est d'attendre que le système client ait éteint sa machine et de se faire passer ensuite pour ce dernier. Les entreprises utilisent souvent des PC et le protocole TCP/IP et NFS pour se connecter à des serveurs Unix et obtenir un accès aux répertoires et aux fichiers du serveur. Comme NFS utilise uniquement les adresses IP pour authentifier les clients, un intrus pourrait configurer un PC avec le même nom et la même adresse IP qu'un autre ordinateur, et alors essayer de lancer des connexions au serveur Unix comme s'il était le vrai client. Ceci est très simple à réaliser et ressemblerait à une attaque de l'intérieur. Le routeur devra 9

donc refuser les connexions d'une machine ayant la même adresse IP qu'une machine interne, mais se trouvant à l'extérieur du réseau local. Les e-mails sont particulièrement sujets au spoofing car ils sont faciles à réaliser. Les courriers électroniques sans l'ajout d'une signature électronique ne peuvent pas être d'origine fiable. Il est facile par Telnet de se connecter directement au port SMTP du système (port 25). Le serveur recevant ces commandes fait confiance à cette personne si elle s'identifie. D'où le fait que le courrier électronique peut lui aussi être spoofé facilement en entrant une adresse d'expéditeur différente de l'adresse réelle. On peut donc sans aucun privilège falsifier ou spoofer le courrier électronique. D'autres services comme le DNS peuvent aussi être spoofés mais avec toutefois plus de difficultés que le courrier électronique. Ces services représentent une crainte qui mérite d'être considérée quand on les utilise. Le routeur pare-feu devra tenir régulièrement à jour ses fichiers LOG afin de contrôler toute tentative de piratage. De plus, ces fichiers LOG devront être sécurisés pour éviter toute modification malveillante. Les scanners Un scanner est un programme qui permet de savoir quels ports sont ouverts sur une machine donnée. Les Hackers utilisent les scanners pour savoir comment ils vont procéder pour attaquer une machine. Leur utilisation n'est heureusement pas seulement malsaine, car les scanners peuvent aussi permettre de prévenir une attaque. Le plus connu des scanners réseau est WS_Ping ProPack, que l'on peut trouver sur http://www.ipswitch.com/french/wsping.html Les fichiers LOG générés par les scanners ne doivent pas être modifiables par un pirate. Les chevaux de Troie Un cheval de Troie est un programme qui se cache lui-même dans un autre programme apparemment au-dessus de tout soupçon. Quand la victime (l'utilisateur normal) lance ce programme, elle lance par là même le cheval de Troie caché. Actuellement, les chevaux de Troie les plus utilisés sont : Back Orifice 2000, Backdoor, Netbus, Subseven, Socket de Troie. La méthode la plus efficace pour se protéger de ces programmes néfastes est d'utiliser un bon antivirus comme Norton 2000 ou Network Associates. Des programmes spécifiques permettent également de scruter toute tentative de connexion sur les ports scrutés. Lockdown 2000 est le plus connu d'entre eux : une fois une tentative de connexion détectée, il fait un traceroute sur l'ip qui a tenté la connexion. La version 4 possède en bibliothèque 488 signatures de ``Troyans''. La machine Linux devra être équipée d'un antivirus permettant de repérer non seulement les 10

virus, mais également les chevaux de Troie. Les vers Un ver est un programme capable de se propager et de s'auto-reproduire sans l'utilisation d'un programme quelconque ni d'une action par une personne. Sur chaque ordinateur où il agit, le ver crée une nouvelle liste de machines distantes cibles. En parallèle, le ver : - essaie de trouver les mots de passe des comptes utilisateurs, - essaie d'entrer dans chaque machine cible en se faisant passer pour un utilisateur de la machine «attaquante»' (après avoir craqué le mot de passe utilisateur), et en utilisant un ancien bug dans le protocole finger, qui permet de savoir quels sont les usagers connectés sur une machine distante ou sur quelle machine est connecté un utilisateur donné. Les attaques de vers sont toutefois très rares parce que les serveurs sur l Internet sont de plus en plus performants (Windows NT Server ou Apache), mais c'est toujours une méthode utilisée par les hackers quand un nouveau bug est découvert dans un système d'exploitation. Les vers permettent aux agresseurs d'attaquer un maximum de sites en peu de temps. Le routeur pare-feu ne doit pas s'attarder à filtrer les vers: c'est la qualité du système d'exploitation qui doit permettre d'enrayer toute attaque de vers. Les trappes Une trappe est un point d'entrée dans un système informatique qui passe audessus des mesures de sécurité normales. C'est généralement un programme caché ou un composant électronique rendant le système de protection inefficace. De plus, la trappe est souvent activée par un événement ou une action normale (exemple : trappe dans les premières versions de Internet Explorer 5). Pareillement au type d'attaque précédent, les trappes sont des programmes qui ne peuvent pas être détectés au niveau IP, mais au niveau application (signature). C'est donc le rôle de l'antivirus et du système d'exploitation de détruire les trappes. Les bombes logiques Ce sont des dispositifs programmés dont le déclenchement s'effectue à un moment déterminé en exploitant la date du système, le lancement d'une commande, ou n'importe quel appel au système. Les bombes logiques doivent être repérées au niveau applicatif, par un antivirus performant. 11

Le TCP-SYN flooding Quand un client essaie d'établir une connexion TCP sur un serveur, le client et le serveur échangent une séquence de messages. Cette connexion technique s'applique à toutes les connexions TCP/IP (Telnet, web, e-mails...). Le système client commence par envoyer un message SYN (pour synchronisation) au serveur. Le serveur renvoie alors un accusé de réception du SYN : SYN-ACK au client. Le client finit alors par établir la connexion en répondant par un ACK. La connexion (au niveau 4 du modèle OSI) entre le client et le serveur est donc ouverte et le service d'échange de données peut s'exécuter. La faille vient du fait qu'au moment où le serveur a renvoyé un accusé de réception du SYN (SYN- ACK), le serveur mais n'a pas encore reçu le ACK du client. C'est alors une connexion dite semiouverte. Le serveur construit dans sa mémoire système une structure de données décrivant toutes les connexions courantes. Cette structure de données est de taille finie, ce qui veut dire qu'il peut se créer un dépassement de capacité (overflow) en créant intentionnellement trop de connexions partiellement ouvertes. Le fait de créer ces semi-connexions sans se faire repérer est facilement réalisable avec l'ip spoofing. L'ordinateur de l'agresseur envoie des messages SYN au serveur victime; ceux-ci paraissent provenir d'un ordinateur bien défini mais font référence à un système client qui n'est pas capable de répondre au message SYN-ACK. Ce qui veut dire que le message ACK final ne sera jamais envoyé au serveur victime. Ces semi-connexions dans la structure de données du serveur victime vont éventuellement créer un débordement dans cette structure et le serveur sera incapable d'accepter d'autres connexions tant que la table ne sera pas vidée. Normalement, il y a un système de time-out associé à chaque connexion ouverte, donc les semi-connexions devraient expirer et le serveur victime récupérer de la place libre dans sa mémoire pour d'autres connexions. Toutefois, le système agresseur peut simplement continuer à envoyer des paquets dont l'ip est spoofée plus vite que le serveur victime puisse expirer les semi-connexions. Dans la plupart des cas, la victime d'une telle attaque aura des difficultés à accepter toute nouvelle connexion. Dans ces cas, l'attaque n'affectera pas les connexions déjà existantes ou la capacité à créer des connexions de l'intérieur vers l'extérieur. Par contre, dans certains cas, le serveur aura épuisé toutes ses ressources mémoires, et pourra ``planter'' et donc être rendu inopérant. La localisation de l'attaque est très souvent obscure parce que les adresses IP des paquets SYN envoyés sont rarement plausibles. Quand le paquet arrive au serveur victime, il n'y a aucun moyen de déterminer sa véritable source. Comme l Internet fait suivre les paquets sur une adresse de destination, le seul moyen de valider la source d'un paquet est 12

d'utiliser le filtrage. Avec la technologie actuelle du protocole IP, il est impossible d'éliminer tous les paquets spoofés. Mais il existe quelques solutions pour réduire le nombre de paquets spoofés et sortant du réseau. Le routeur devra limiter les entrées à l'interface externe, en n'accordant pas le droit d'entrée à un paquet qui a une adresse source du réseau interne. Il peut aussi être bon de filtrer les paquets sortants qui ont une adresse source différente du réseau interne afin de prévenir une attaque d'ip spoofing provenant du réseau interne. La combinaison de ces deux types de filtrage doit empêcher les agresseurs extérieurs d'envoyer des paquets prétendant provenir du réseau interne. Cela doit également empêcher les paquets provenant du réseau interne de prétendre venir de l'extérieur du réseau. L'IP spoofing et le SYN-flooding sont actuellement les deux principaux problèmes de la sécurité sur Internet. Le Flood Le Flood consiste à envoyer très rapidement de gros paquets d'informations à la machine routeur (à condition d'avoir un PING très court, comme c'est le cas pour un RLE), ce qui risque de faire ``planter'' la machine (``Ping Of Death'' : message ICMP de 64 ko qui faisait planter Windows). Une solution consiste à avoir une bonne gestion de la fenêtre d'anticipation TCP, et d'envoyer autant que faire se peut des messages ICMP de réduction de fenêtre. Le Spamming Le Spamming consiste à envoyer plusieurs milliers de messages identiques à une boîte aux lettres pour la faire saturer. En effet, les mails ne sont pas directs, ainsi lorsque le courrier sera relevé, celui-ci mettra beaucoup trop de temps et la boîte aux lettres sera alors inutilisable. Le routeur pare-feu pourra cependant détecter les tentatives de Spamming, en sniffant les paquets IP arrivants, et en remarquant une trop grande fréquence dans la réception d'un même message (taille du paquet, adresses source et destination identiques). Les virus Les constructeurs de pare-feu tendent maintenant à fournir avec leurs produits une solution antivirus complète, qui permet de filtrer les attaques logicielles comme les chevaux de Troie, les vers, les trappes et les bombes logiques. Les éléments actifs du réseau sont désormais de véritables remparts contre une pléthore d'attaques, qu'elles soient au niveau réseau ou au niveau applicatif. Cela rend la tâche des administrateurs réseau plus simple, car toutes les fonctions de sécurité sont fédérées sur un seul et même équipement, plus robuste et 13

entièrement administrable. Les éléments composant le réseau ne sont pas les seuls remparts aux attaques. Le système d'exploitation garantit un niveau de sécurité supplémentaire vis-à-vis des attaques de type virus, nuke ou trappes. C'est pourquoi nous nous intéressons maintenant à l'aspect sécurité de Linux. L'ingénierie social L'ingénierie sociale n'est pas vraiment une attaque informatique. C'est plutôt une méthode pour obtenir des informations sur un système ou des mots de passe. C'est une approche psychologique en utilisant des acteurs humaines disposants des informations pertinentes sur le système cible à attaquer. Pour obtenir le but, il y a 5 méthodes: - Internet: Se faire passer pour un acteur de l'entreprise (un utilisateur ou un administrateur) - Contact: Permet de cibler la personne et obtenir des informations dans son contexte (rendez-vous pour un motif quelconque) ou hors de son contexte (au restaurant d'entreprise ou en face au bureau). - Téléphone: Préparer d'une identité, d'un rôle ou d'un but exprimé. Utilise des canaux indirects (par exemple la téléphoniste ou un département quelconque) - Fax: Copier l'en-tête d'un fournisseur ou d'un client pour obtenir une information - Lettre: Même approche pour le fax mais au lieu de copier l'en-tête, on utilise une adresse fictive. Contre mesure - Formation des acteurs à tous les niveaux - Délimiter exactement le périmètre des informations confidentielles, sensibles, internes et publiques. - Tenter de placer les indicateurs pour assurer l'identité des personnes désirant des informations sensibles - Les documents ou communications qui ne sont pas clairement identifiés, doivent être transmises à un acteur responsable pour leur traitement. - Clause de confidentialité dans les contrats. 14

Partie 2 : Etude bibliographique des parades au DoS et DDoS DoS Les techniques d'attaque : Les attaquants utilisent plusieurs techniques d'attaques. Ces attaques peuvent être regroupées en trois familles différentes : - Les attaques directes. - Les attaques indirectes par rebond. - Les attaques indirectes par réponses. Nous allons voir en détail ces trois familles. Les attaques directes C'est la plus simple des attaques. Le hacker attaque directement sa victime à partir de son ordinateur. La plupart des "script kiddies" utilise cette technique. En effet, les programmes de hack qu'ils utilisent ne sont que faiblement paramétrable, et un grand nombre de ces logiciels envoient directement les paquets à la victime. Si vous vous faites attaqués de la sorte, il y a de grandes chances pour que vous puissiez remonter à l'origine de l'attaque, identifiant par la même occasion l'identité de l'attaquant. Depuis quelques ans, on n utilise jamais cette technique car il n est pas efficace quand on utilise une machine normale pour attaquer un serveur très performant. 15

Les attaques indirectes par rebond Cette attaque est très prisée des hackers. En effet, le rebond a deux avantages : - Masquer l'identité (l'adresse IP) du hacker. - Eventuellement, utiliser les ressources de l'ordinateur intermédiaire car il est plus puissant (CPU, bande passante...) pour attaquer. Le principe en lui même, est simple: Les paquets d'attaque sont envoyés à l'ordinateur intermédiaire, qui répercute l'attaque vers la victime. D'où le terme de rebond. L'attaque FTP Bounce fait partie de cette famille d'attaque. Si vous êtes victime de ce genre d'attaque, il n'est pas facile de remonter à la source. Au plus simple, vous remontrez à l'ordinateur intermédiaire. Les attaques indirectes par réponse Cette attaque est un dérivé de l'attaque par rebond. Elle offre les mêmes avantages, du point de vue du hacker. Mais au lieu d'envoyer une attaque à l'ordinateur intermédiaire pour qu'il la répercute, l'attaquant va lui envoyer une requête. Et c'est cette réponse à la requête qui va être envoyée à l'ordinateur victime. 16

Là aussi, il n'est pas aisé de remonter à la source... Quelques parades de type DoS Ping de la mort Un ping a normalement une longueur maximale de 65535 ((2 16 ) - 1) octets, incluant une entête de 20 octets. Un ping of death c'est un ping qui a une longueur de données supérieure à la taille maximale. Lors de sont envoi, le ping of death est fragmenté en paquets plus petits. L'ordinateur victime qui reçoit ces paquets doit alors les reconstruirent. Certains systèmes ne gèrent pas cette fragmentation, et se bloquent, ou crashent complètement. En principe, pour déborder une machine on ne peut que l'envoyer des paquets avec la taille supérieure à 64 Koctets. La commande suivante va nous montrer comment les créer: ping -f -s 65550 xxx.xxx.xxx.xxx où xxx.xxx.xxx.xxx est l'adresse de la victime. L'idée est de les fragmenter en des paquets dont la taille est inférieure à 64 Koctets grâce à la technique de fragment des paquets. 17

Le problème se passe quand la machine cible essaie de défragmenter les paquets reçus. Le paquet final ayant la taille supérieure à 64 Koctets va bloquer la victime. Supposons que l'on a deux fragments suivants: Fragment 1 Fragment 2 MF=1 Offset=0 MF=0 Offset=65000 Taille=65000 Taille=1000 Donnée Donnée Quand on les rassemble, la taille du nouveau fragment est 65000 + 1000 = 66000 Cette valeur est supérieure à 64Ko, on ne peut pas la mettre dans un registre à taille 16bits. Si on le fait, cela causera un problème. Prouver On va voir ce problème dans le système d'exploitation Minix version 2.0.2. Le code suivant est extrait dans le fichier ip_read.c de la fonction merge_frags() second_datasize=second_offset+second_datasize-(first_offset+first_datasize); cut_second= bf_cut(second, second_hdr_size + first_offset+first_datasizesecond_offset, second_datasize);... first_datasize += second_datasize; first_hdr->ih_length= htons(first_hdr_size + first_datasize); second_datasize = 65000 + 1000 (0 + 65000) = 1000 first_datasize = 65000 + 1000 = 66000 first_hdr->ih_length = htons(first_hdr_size + 66000); => Erreur Le variable first_hdr->ih_length est défini comme un variable à 16 bits correspond à une valeur 65535 bits. TearDrop Teardrop est une attaque (principalement contre les machines sous Microsoft 18

Windows NT) qui repose sur des fragments superposés. On va voir le code suivant (extrait dans la fonction ip_glue() du fichier ip_fragment.c du noyau 2.0.23 de la ligne 361): /* Copy the data portions of all fragments into the new buffer. */ fp = qp->fragments; while(fp!= NULL) { if (count+fp->len > skb->len) { // (i) NETDEBUG(printk("Invalid fragment list: Fragment over size.\n")); ip_free(qp); frag_kfree_skb(skb,free_write); ip_statistics.ipreasmfails++; return NULL; } memcpy((ptr + fp->offset), fp->ptr, fp->len); // (ii) count += fp->len; fp = fp->next; } Qu'est ce qu'il se passe si la taille d'un fragment est inférieur à 0 (fp->len < 0). Quand on loue une partie de mémoire avec un nombre négatif, cela devient un très grand nombre positif. Cela dépense de la mémoire de la victime, l'ordinateur peut être soit bloqué soit redémarré. Prouver Les figures suivant montrent comment on peut créer un fragment ayant la taille négative (fp->len < 0) Fragment 1 Fragment 2 MF=1 Offset=0 MF=0 Offset=500 Taille=1000 Taille=400 Donnée Donnée Supposons que l'on reçoit 2 fragments ci-dessus et on est en train de traiter le fragment 2. Le variable 'end' est déjà calculé dans la ligne 474 par l'instruction: end = offset + ntohs(iph->tot_len) ihl; = 500 + 400 ihl 19

= 900 - ihl Selon les codes à partir de ligne 508 dans le fichier ip_frament.c (Linux-2.0.23) if (prev!= NULL && offset < prev->end) { i = prev->end - offset; offset += i; /* ptr into datagram */ ptr += i; /* ptr into fragment data */ } On a i = 1000 500 = 500 offset = 500 + 500 = 1000 On passe end et nouvel offset dans la fonction ip_frag_create. On voie maintenant la partie principale dans cette fonction (dans le fichier ip_fragment.c à partir de la ligne 93 (fonction ip_frag_create) Linux 2.0.23) /* Fill in the structure. */ fp->offset = offset; fp->end = end; fp->len = end offset; Donc, fp->len = 900 ihl 1000 = 100 ihl < 0 De la version 2.1.89 à 2.2.3 du noyau, on a changé le code pour contre cette vulnérabilité. Mais le problème est encore continué. Voir le code suivant (extrait dans la fonction ip_glue() du fichier ip_fragment.c du noyau 2.2.3 de la ligne 357): fp = qp->fragments; count = qp->ihlen; while(fp) { if ((fp->len < 0) ((count + fp->len) > skb->len)) goto out_invalid; memcpy((ptr + fp->offset), fp->ptr, fp->len); if (count == qp->ihlen) { skb->dst = dst_clone(fp->skb->dst); skb->dev = fp->skb->dev; } count += fp->len; fp = fp->next; } Le problème dans ce code est si on a un fragment dans la liste des fragments qp- >fragments ayant la taille 0 et il est le premier fragment dans la liste. Pour la 20

première fois de la boucle, count est nécessaire égal à qp->ihlen, la fonction dst_clone(..) est donc lancée. Mais si fp->len = 0, count += fp->len ne change pas. A la prochaine boucle, le variable count est encore égal à qp->len. La fonction dst_clone() augmente un usage de count à un élément dans le routing cache. Notre fragment de taille 0 causera cet élément dans le cache devenir être abandonné. Le noyau ne peut pas le libéré. Parce que le noyau pense qu'il est encore utilisé. D'autre part, l'appel à louer une nouvelle entrée dans le routing cache ne teste pas si le hashtable qui contient la cache soit en état saturé. Si cela se passe, le noyau va faire une collection des déchets. Si le nombre des entrées dans le cache, après la collection, est encore supérieur au seuil alors la fonction dst_alloc() sera échouée. Donc, si on génère un nombre assez grand des entrées abandonnées dans le routing cache (4096 dans le noyau 2.2.3) dans notre mauvaise liste des fragments, alors tous les appels à la fonction dst_alloc() sera échoués. Les étapes suivantes vont nous montrer comment créer tel liste: - Envoyer un fragment à offset 0 avec la taille X (taille du fragment) et le flag IP_MF est vrai (More Fragment). Cela crée une liste. - Envoyer un fragment à offset 0 avec la taille d'entête IP est égale à la taille totale IP et le flag IP_MF est vrai. Ce fragment va être traité comme il est venu avant celui du premier car il a un offset égal à l'offset du fragment existant. Jusqu'à maintenant, il n'y a pas d'overlap car sa valeur 'end' est égale à l'offset du prochain fragment. - Envoyer 3ème fragment à offset X avec IP_MF est faux. Cela signifie que l'on termine ici. => On obtient 3 fragments avec les tailles: 0, X, End-X DDoS Le "Distributed denial-of-service" ou déni de service distribué est un type d'attaque très évolué visant à faire planter ou à rendre muette une machine en la submergeant de trafic inutile (voir fiche DoS). Plusieurs machines à la fois sont à l'origine de cette attaque (c'est une attaque distribuée) qui vise à anéantir des serveurs, des sous réseaux, etc. D'autre part, elle reste très difficile à contrer ou à éviter. C'est pour cela que cette attaque représente une menace que beaucoup craignent. 21