Etude des attaques
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 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, ó 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
ATM Sniffer Network Analyzer http://www.networkassociates.com Décode plus de 250 protocoles
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 gs/ethld104.zip
Sniffer qui permet de surveiller les 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)
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 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'ó 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
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
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 virus, mais également les chevaux de Troie
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 ó 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
Une trappe est un point d'entrée dans un système informatique qui passe au- dessus 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
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
Etude bibliographique des parades au DoS et DDoS
TFN (Tribal Flood Network)
C'est le premier outil d'attaque de type Déni de Service qui ai obtenue une large visibilité Il utilise une architecture à deux couches Un client qui contrôle des agents/démons Ces agents réalisent l'attaque distribuée sur la victime/cible et avec le type d'attaque désiré par le client Les agents TFN fonctionnent comme des services réseaux cachés sur les machines piratées, capables de recevoir les commandes du client noyées parmi le flux courant des communications du réseau Les adresses du client et des agents sont falsifiées dans tous les communications et les attaques
- Protocole de la communication entre Client/Agent : ICMP
- L’attaque sur les protocoles : IP / TCP / UDP / ICMP
Le TFN client est exécuté à travers la commande ligne pour envoyer des commandes aux TFN Agents Un client communique avec les agents en utilisant des paquets ICMP echo-reply avec 16 bits binaires de valeur intégrée dans le champs ID et quelques arguments ont été intégrées dans la partie de donnée du paquet Les valeurs binaires, qui sont définable
TFN2K
C'est la version évoluée de TFN, au début sur une architecture à deux couches (trois couches désormais), mais avec l'ajout de chiffrement BlowFish de ces communications entre le client et ses agents, qui le rend plus dur à détecter
L'architecture du TFN2K est ressemble à celle du TFN
- Communication entre master et agent sont TCP, UDP, ICMP ou aléatoire entre les trois
- Méthode d'attaque sont TCP/SYN, UDP, ICMP/PING ou broadcast PING (smurf) paquet flood
- L'en-tête du paquet entre master et agent est aléatoire sauf ICMP
- TFN2K est silence, cad il ne fait pas de ACK de la commande il reỗois Le client renvoie chaque commande 20 fois pour s'assurer que le deamon recevra au moins une fois
- Toutes les commandes sont chiffrées en utilisant l'algorithme CAST-256 (RFC 2612) Le clé est définie au moment de compilation et utilisé comme mot de passe pout lancer tfn2k client
- Toutes les données chiffrées sont Base 64 encoded avant de l'envoie
Trin00
Trin00 s'appuie lui sur une architecture à trois couches avec un client/intrus, qui envoie des commandes (y compris les cibles à attaquer) à des servers masters/handlers qui se chargent chacun dans sous réseau d'agents/démons
Cette couche intermédiaire rend plus difficile à identifier l'origine de l'attaque
Cependant, Trin00 réussi moins bien à dissimuler ses communications au sein du trafic réseau Il ne cherche pas l'origine de l'attaque et la victime peut détecter les agents Trin00 n'utilise qu'une seule forme d'attaque DoS (UDP), contrairement à TFN
- L’attaquant communique avec les masters par le protocole TCP sur la destination porte 27665
- Les masters communiquent avec les deamons par le protocole UDP sur la destination porte 27444
- Un deamon réponds aux masters par le protocole UDP sur la destination porte 31335
- Les deamons attaquent ô flood ằ la victime en utilisant le protocole UDP avec une destination porte aléatoire
Quand un trinoo deamon est lancé, il annonce son présence par envoyer un paquet UDP qui contient la chaợne ô *HELLO* ằ aux trinoo masters avec les adresses IP déjà programmés Quand à lui, il va recevoir des paquets UDP rộpondu qui contient une chaợne ô PONG ằ
Toutes les communications aux masters sur la porte 27665/UDP ont besoin un mot de passe qui est été stocké dans la librairie du deamon sous forme chiffrée
Toutes les communications avec les deamons sur la porte 27444/UDP ont besoin que le paquet UDP contient la chaợne ô l44 ằ (ici, c’est la minuscule du L)
Stacheldraht
Stacheldraht est un mélange de TFN et Trin00, dissimulant l'origine des communications et utilisant une variété des attaques de TFN et se basant sur une architecture à trois couches de Trin00 Il utilise de meilleurs techniques que ô ses parents ằ
Il n'est pas évident de se prémunir contre ces attaques par déni de service, car la mise en place du réseau offensif par l'attaquant repose sur le fait que beaucoup de machines sont peu ou pas sécurisée et présentent des failles Ces failles sont tellement nombreuses et d'autre part il existe tellement de machines vulnérables sur Internet qu'il devient impossible d'empêcher de telles attaques
Ainsi, si un outil de DDoS est détecté sur un système, cela signifie sûrement que il a été installé sur de nombreux autres systèmes sans être décelé D'autre part, la présence de cet outil signifie également que le système a été intégralement compromis, qu'il présente sûrement des backdoors et qu'on y a peut-être installé un rootkit (type Adore) Il est donc urgent et nécessaire de retirer complètement cette machine du réseau et de l'inspecter pour éventuellement la réinstaller
Pour détecter un tel outil, on pourra chercher des noms évocateurs parmi les
Victime processus système s'il n'y a pas de rootkit installé et si l'attaquant à laissé un nom par défaut Ces noms peuvent être regroupés dans la liste suivante (non exhaustive):
Trinoo maợtre: master Broadcast: ns
TFN client: tfn Démon: td
Stacheldraht Handler: mserv Agent: td
Shaft Handler: shaftmaster Agent: shaftnode mstream Handler: master Agent: server
Trinity Agent: /usr/lib/idle.so
Portshell: /var/spool/uucp/uucico Alt Portshell: /var/spool/uucp/fsflush
Il peut ờtre ộgalement fort utile de connaợtre les outils (au nombre de 4, principalement) utilisés par les hackers Des analyses sont disponibles pour 3 d'entres eux :
- http://staff.washington.edu/dittrich/misc/trinoo.analysis
- http://staff.washington.edu/dittrich/misc/tfn.analysis
- http://staff.washington.edu/dittrich/misc/stacheldraht.analysis
Il existe également un compte-rendu de congrès scientifique sur le sujet qui apporte beaucoup d'idées pour se défendre et récupérer après de tels incidents : http://www.cert.org/reports/dsit_workshop.pdf
Le Pushback : une contre-mesure en développement
Face aux menaces grandissantes provoquées par ce type d'attaques, les scientifiques se penchent de plus en plus sur des techniques capables de les contrer; une des plus récentes est la technique du Pushback Nous ne rentrerons pas dans les détails ici, tous les papiers étant disponibles sur le site ACC and Pushback
Très brièvement, cette technique a pour but d'identifier les attaques de DoS et surtout de DDoS grâce à des heuristiques, de les contrer en remontant à leur source, enfin de maintenir et de protéger le bon trafic qui souffre également la plupart du temps des congestions engendrées par de telles attaques
Cette méthode utilise un contrôle de congestion basé sur des agrégats, un agrégat étant défini comme un sous-ensemble du trafic présentant une propriété identifiable
- Paquets IP dont les checksums sont incorrects
Le but est d'identifier les agrégats responsables de la congestion et de les éliminer pour rétablir un trafic normal Une fois la signature (c'est-à-dire la propriété identifiante, le trait caractéristique de l'attaque) établie, le flux est comparée en temps réel dans le routeur le plus proche de la cible du DDoS Ce routeur commence à rejeter (drop) les paquets correspondants à la signature et envoie également un message d'alerte aux routeurs en amont sur les brins d'ó lui parvient le trafic incriminé Ce message d'alerte contient entre autres choses la signature qui va permettre à ces routeurs d'éliminer à leur tour les paquets correspondants à l'attaque Et ces routeurs vont également envoyer des messages d'alerte aux routeurs situés en amont
Cette technique récursive a pour avantage de pouvoir remonter jusqu'aux sources de l'attaque; elle permet également de décongestionner le coeur même du réseau, ce qui était impossible avec les techniques centrées sur la protection pure de la cible Enfin, même si une partie du trafic légitime est tout de même perdue, les résultats finaux sont plutôt positifs.
Etude des HoneyPot
Honeypot est un système des ressources informatiques dont valeur est calculée sur l'utilisation malicieuse ou illicite de ces ressources
C'est une définition générale qui couvre tous les manifestations différences des honeypots On va discuter dans cet article les exemples différences de honeypot et leurs valeurs à la sécurité Leurs valeurs sont basées sur les interactions entre eux et les attaquants (y compris le virus, les spams) En principe, un honeypot a une ressource dont il n'y a pas d'activités autorisées Donc, il n'a pas de valeur de production Théoriquement, un honeypot n'a pas normalement de trafic parce qu'il n'a pas d'activité légitime Cela veut dire que, chaque interaction avec un honeypot signifie un malicieux ou une mauvaise activité Une connexion quelconque qui essaie via un honeypot est considéré comme probe, attaque ou compromise Grâce à sa simplicité, il a énormément des avantages et des inconvénients
Honeypots est une conception très simple qui leur donne des puissantes
- Petite ensemble de données mais haut valeur: Honeypot collecte un petit nombre de l'informations Au lieu de logging un Go par jour, il peut log environ un Mo de donnée par jour Au lieu de générer 10 milles alertes par jour, il ne peut générer que 10 Mais il faut souligner que le honeypot ne capture que des mauvaises activités Chaque interaction avec un honeypot signifie un inautorisé ou une activité dangereuse Alors, l'honeypot réduit le bruit par collecter une petite donnée, mais l'information est très valable, qui ne concerne qu'à l'attaquant Cela signifie qu'il est plus facile (et moins chère) à analyser les données collectées pour dériver la valeur à partir de ces données
- Nouveaux outils et tactiques: Honeypot est élaboré pour capturer tous les choses qui le sont envoyés Y compris les outils et les tactiques que l'on ne voit pas encore à l'avant
- Ressource minimale: Un honeypot a besoin une ressource minimale pour capturer les mauvaise activités Un ancien Pentium ordinateur avec 128Mo de mémoire peut facilement contrôler la classe B du réseau
- Chiffrement ou IPv6: Différence à presque tous les technologies de sécurité (comme IDS système), l'honeypot travail bien dans l'environnement Ipv6 ou avec des données chiffrées N'importe quelles données (instruction ou command) qu'un attaquant l'envoie, il détectera, capturera et l'analysera
- Simplicité: En fin, l'honeypot est simple, il n'y a pas d'algorithme à développer et il est facile à configurer
Comme tous les technologies, l'honeypot a aussi des faibles Parce qu'il ne remplace aucune technologie courante, mais il travail avec les technologies existantes
- Vue limité: l'honeypot ne peut détecter et capturer qu'aux activités interactives directement avec lui L'honeypot ne capturera pas des attaques contre les autres systèmes
- Risque: Toutes les technologies de la sécurité ont des risques Le pare-feu a risque d'être pénétré, le chiffrement a risque d'être démoli Le IDS a le risque de se tromper L'honeypot a aussi des risques Il a un risque d'être pris la relève par un attaquant et d'être utilisé à faire du mal aux autres systèmes Les risques sont variés selon chaque type d'honeypot
Il y a deux catégories d'honeypot: low-interaction et high-interaction honeypots
Ces deux catégories nous donneront des connaissances sur quel type d'honeypot qu’avec qui on a une interaction, sa faiblesse et sa force L'interaction définie le niveau d'activité que un honeypot permet au attaquant Low-interaction honeypot a un nombre d'interaction limité, ils travaillent normalement par simuler des services et des systèmes d'exploitation Les activités des attaquants sont limitées au niveau de la simulation par l'honeypot Par exemple, Une service simulée FTP entendu sur le porte 21 peut simuler l'ouverture d'une session FTP ou il est également supporter quelques autres commands FTP L'avantage d'un low- interaction est la simplicité L'honeypot a tendance à déployer et maintenir facilement avec un risque minimal Normalement, il a besoin d'installer des logiciels, de sélectionner des services ou de système d'exploitation que l'on veut simuler et surveiller L'approche de 'plus and play' fait facile à le déployer pour presque tous les organisations En plus, les services simulés atténuent les risques par s'occuper toutes les activités des attaquants, l'attaquant n'accès jamais au système d'exploitation principal pour lui faire du mal L'inconvénient principal de low-interaction honeypot est que les informations qu'il a loggé sont limitées, et normalement sur les activités connues Donc, il est plus facile pour un attaquant pour détecter un low-interaction honeypot qu'à un high-interaction Bien qu'un low- interaction honeypot soit bien configuré, un attaquant qualifié peut détecter sa présence Les exemples d'honeypot sont: Spector, Honeyd et KFSensor
High-interaction honeypot est différent Il est des solutions complexes parce qu'il a besoin les réelles applications et le système d'exploitation réel Aucun n’est simulé, on donne aux attaquants des choses réels Si on veut un Linux honeypot qui lance le serveur FTP, on construit un Linux système réel qui lance un serveur FTP Il y a deux majeurs avantages de cette solution Premier, on peut capturer extensivement des informations En donnant aux attaquants un système réel à communiquer avec, on peut apprendre tous ses comportements Deuxième avantage est qu’un haute-interaction honeypot ne fait pas d'attention sur comment un attaquant se comportera Au lieu de cela, il propose un ouvert environnement qui capture tous les activités Cela permet la solution high-interaction à apprendre tous les comportements que nous ne espérons pas Cependant, cela augmente aussi des risques car l'attaquant peut utiliser ce système réel à attaquer le non- honeypot système En générale, un high-interaction honeypot peut faire ce qu'un low-interaction honeypot fait et en plus Mais, il est plus complexe à déployer et maintenir Les exemples sont: Symatec Decoy Server, Honeynet
Pour mieux comprendre comment fonctionnent les deux types ci-dessus, on va commencer par le low-interaction honeypot Honeyd
Honeyd est un low-interaction honeypot développé par Niels Provos Honeyd est Open Source et conỗu pour le systốme Unix Honeyd travaille pour surveiller les espaces IP qui n'est pas encore utilisé N'importe quand qu'il trouve une connexion qui essaie au IP inutilisé, il accepte cette connexion et commence à communiquer avec l'attaquant en imitant comme victime Par défaut, Honeyd détecte et log n'importe quelle connexion vers les ports TCP et UDP En plus, on peut configurer les services simulés pour contrôler les ports spécifiques comme un FTP serveur simulé contrôle le port 21 Quand un attaquant connecte à la service simulée, honeyd non seulement détecte et log les activités, mais il capture aussi les interactions de l'attaquant avec la service simulée Dans le cas de FTP serveur, on peut potentiellement capturer le compte que l'attaquant a utilisé, les commandes Dans quelque cas, on peut savoir ce qu'il cherche et sa identité
Tous cela dépend du niveau de la simulation par l'honeypot La plupart des services fonctionnent par la mờme faỗon Il espốre un type de comportement spộcifique et puis, il est programmộ pour rộagir par la faỗon prộdộterminộe La limitation est si l'attaquant fait quelque choses que la simulation n'espère pas, elle ne sait pas comment faire, comment répondre dans ce cas là La plupart de low- interaction honeypots, y compris Honeyd, génère simplement un message d'erreur
Quelque honeypots, comme Honeyd, peuvent non seulement simuler des services, mais simuler des systèmes d'exploitation actuels D'autre part, Honeyd peut apparaợtre comme Cisco routeur, WinXP webserver ou Linux DNS serveur Il y a certains avantages quand on simule des systèmes d'exploitation différents
D'abord, l'honeypot peut être mieux mélangé dans le réseau existant s'il a la même apparence et comportement du produit système En suite, on peut choisir les attaquants spécifiques en proposant les systèmes et services ce qui sont ses objectifs ou en proposant ceux qui que l'on veut étudier Il y a deux éléments reliés au système d'exploitation simulé Le premier concerne au service simulé Quand un attaquant connecte au service simulé, ce service a un comportement et s'apparaợt comme sous systốme d'exploitation spộcifique Par exemple, si on a un service simulộ d'un webserver et on veut notre honeypot apparaợt comme Window2000 serveur, on peut simuler son comportement à la faỗon d'un IIS webserver Pour Linux, on peut le simuler à la faỗon d'un Apache webserver La plupart des honeypots simulent le système d'exploitation selon cette manière
Quelque honeypots sophistiqués les simulent profondément (comme honeyd) Ils simulent non seulement au niveau service mais aussi au niveau du pile IP Si quelqu'un utilise la mộthode ô active fingerprinting ằ pour dộterminer le type de système d'exploitation de notre honeypot, la plupart des honeypots répondent avec la pile IP dont le système d'exploitation ó ils sont installés Honeyd fonctionne de faỗon diffộrente, honeyd dupe la rộponse non seulement sur les services mais la pile IP du système d'exploitation Le niveau de simulation et de sophistication dépense de technologie d'honeypot que l'on a utilisé
Honeynet est un example de high-interaction honeypot Honeynet n'est pas un produit, il n'est pas de solution logiciel que l'on installe sur un ordinateur Au lieu de cela, honeynet est une architecture, un entité du réseau des ordinateurs construits pour être attaqué L'idée est de proposer une architecture qui crée un réseau contrơlé à au niveau ó tous les activités sont contrơlées et capturées qui lancent des applications réels L'attaquant trouve, attaque, et entre dans les systèmes proposés Quand ils fonts cela, ils ne prennent pas de conscience d'être dans Honeynet Tous ses activités, de la session SSH encrypté vers email et téléchargement des fichiers, sont capturées sans aucune connaissance Cela s'est fait par insérer des modules dans le noyau du système victime qui capture tous les actions des attaquants En même temps, l'honeynet contrôle les activités des attaquants Il le fait en utilisant parcerelle Honeywall Cette parcerelle permet le trafic entré vers le système victime, mais contrôler le trafic sortie en utilisant la technologie de prédiction des instructions Cela donnera aux attaquants une flexibilité dans l'interaction avec le système victime, mais les interdire de faire mal au non-honeynet système L'exemple du déploiement de honeynet est dans la figure suivante:
Maintenant, on a compris deux catégories générales d'honeypot On peut mettre au point sur ses valeurs On sait déjà qu'il y a deux catégories générales, honeypot peut être utilisé pour la recherche ou bien comme un produit Quand il est utilisé pour le but productif, il protège l'organisation Y compris la prédiction, la détection, ou aider l'organisation à répondre à une attaque D'autre part, pour le but de la recherche, il est utilisé pour collectionner des informations Ces informations ont des valeurs différentes selon les organisations L'une a envie d'étudier la tendance dans les activités des attaquants tendit que l'autre intéresse sur la prédiction ou alerter par avance En générale, low-interaction honeypot est utilisé souvent pour le but productif tendit que high-interaction est utilisé souvent pour la recherche Mais, les deux buts peuvent être changer l'un pour l'autre
Honetpot aide à prộvenir par certaines faỗons Premiốrement, il contre les attaques automatiques comme vers ou auto-rooter Ces attaques basent sur les outils qui scannent les entitộs du rộseau de faỗon alộatoire pour chercher les vulnérabilités du système Si une des vulnérabilités est trouvée, les outils automatiques attaqueront le système et obtenir le droit d'accès au système
Deuxièmes, l'honeypot peut aider à contrer ces attaques par retarder le scan, même si l'arrêter En appelant honetpot adhésif, il gène tous les adresses IP pas encore utilisộs Quand un ô probed ằ comme scan activitộ, les honetpots auront une action réciproque avec et faire les retarder Ils les font en utilisant une variété de cuses, comme Window taille zéro Honetpots peuvent protéger votre organisation des attaquants humains La conception est la déception et la dissuasion L'idée est de refuser un attaquant Faire dépenser ses temps à communiquer avec les honetpots Pendant ce temps là, votre organisation détecte les activités de l'attaquant et a assez de temps à répondre ou arrêter cet attaquant Si l'attaquant sait que votre organisation utilise l'honeypot, mais il ne sait pas quels systèmes sont les honeypots et quels systèmes sont les machines légitimes Il a des risques d'être dans le système d'honeypot et il décide donc de ne pas attaquer votre organisation L'honeypot dissuade l'attaquant Un exemple est Deception Toolkit, un low-interaction honetpot.
Intégration des HoneyPot dans une architecture globale de
Comme dans la troisième partie, on a distingué entre deux types de honeypot: l'un est low-interaction honeypot et l'autre high-interaction honeypot Chacun a des caractéristiques propres Pour les intégrer dans une structure globale de protection, il faut donc faire attention sur les différences entre deux types Alors, dans cette partie, on va voir comment intégrer (installer les logiciels nécessaires) honeypot: Honeyd pour low-interaction honeypot
Honeyd est une type de honeypot qui permet de déployer les machines virtuelles sur un réseau (en utilisant les adresses IP laissées libres) et ainsi permet de détecter les actions frauduleuses sur le réseau Le but est aussi bien de détecter des attaques connues que de découvrir les nouvelles attaques en observant les comportements des attaquants
Honeyd fonctionne sous Unix, Solaris et BSD dérivés Il est aussi porté sous Windows par Roger A Grimes (roger@banneretcs.com) C'est un daemon qui crée des hosts virtuels sur le réseau utilisant les adresses IP non attribué sur le réseau Grâce à des templates, les hosts peut être configuré pour qu'ils paraissent fonctionner sous certains systèmes d'exploitation Plus précisément, Honeyd doit être utilisé en collaboration avec soit l'outil Arpd soit proxy arp Arpd permet de gérer les adresses IP non distribuées et il redirige les attaques vers Honeyd
Quand à lui, honeyd gère les échanges de données avec les attaquants pour simuler les services, requête ICMP Sans arpd ou proxy arp, honeyd ne peut pas travailler
Les librairies nécessaires pour compiler honeyd: libpcap, libdnet, et libevent
Supposez que les packages nécessaires sont téléchargés:
Et ils sont mis dans le même répertoire
# tar xzf libevent-1.7.tar.gz
# tar xzf libpcap-0.8.1.tar.gz
# tar xzf libdnet-1.7.tar.gz
# tar xzf honeyd-0.8.tar.gz
- Pour installer tous les packages ci-dessus, il est besoins beaucoup de librairies différentes Si votre système ne les a pas, vous devez les installer d’abord : Byson, aycc, python…
- Dans le cas de honeyd, s’il n’y pas de python dans votre système, vous pouvez utiliser le paramètre –without-python dans la ligne /configure pour ne pas utiliser python comme un compileur des commandes par défaut
- Si vous avez encore des difficultés concernant à l’installation ou à l’utilisation honeyd, vous pouvez télécharger la version pré compilée de
Dans cette partie, je ne concentre pas sur comment utiliser les commandes pour élaborer un fichier de configuration
Si vous voulez savoir en détail, veuillez accéder au lien : http://www.citi.umich.edu/u/provos/honeyd/honeyd-man.pdf
Je ne concentre que sur les architectures du réseau simulées par Honeyd Le fichier de configuration va être inclus dans la commande pour honeyd comme un paramètre suivie l’option –f.
Par exemple : /honeyd –f honeyd.conf
Honeyd va lire le contenu de fichier configuration et puis générer tous les composants nécessaires selon les commandes corresponde à chaque ligne
- Nmap.fingerprints : Stocker tous les personnalités corresponde aux noms définis Les personnalités peut être utilisées dans le fichier configuration pour modifier le comportement d’un pile TCP simulé
- Nmap.assoc : Compris les styles empreints pour xprobe
- Xprobe2.conf : Déterminer comment honeyd faire une réaction aux utiles ICMP empreintes
Configurer un réseau virtuel simple
Supposons que l’on veut créer deux machines Windows sur un réseau virtuel avec les adresses IP sont : 192.168.160.3 et 192.168.160.4 Le nom de fichier de configuration est honey.conf.simple
Son contenu est : create Windows #Créer un template set Windows personality ô Microsoft Windows XP
#Choix le système d’exploitation et ses empreintes dans la base de données add Windows tcp port 80 ô sh scripts/web.sh ằ #Comportement du port 80
(serveur de web simulé) add Windows tcp port 139 open add Windows tcp port 137 open add Windows udp port 137 open add Windows udp port 135 open set Windows default tcp action reset set Windows default udp action reset bind 192.168.160.3 Windows #Créer 1 ère machine windows bind 192.168.160.4 Windows #Créer 2 ème machine windows
Le but de template est de créer une configuration globale pour toutes les machines ayant le même comportement Au lieu de configurer 10 machines Windows XP, on ne crée qu’une seule template pour tous En utilisant la commande bind, on relie facilement 10 adresses IP vers cette template pour obtenir 10 machines
Dans la configuration ci-dessus, on ajoute 4 ports ouvertes : deux pour le protocole tcp et deux pour celui de udp Et on met l’action par défaut pour les protocoles est ô reset ằ
La figure suivante illustre le réseau virtuel simple
Configurer un réseau virtuel avec un routeur
Le but de cette configuration est de créer un réseau ayant sous d’autre sous réseau Les deux sont reliés par un routeur Dans cette configuration, on va ajouter deux machines Windows avec les adresses IP : 192.168.161.11 et 192.168.161.12 derrière le routeur ayant l’adresse IP 192.168.160.100
192.168.160.1/24 create Windows #Créer un template set Windows personality ô Microsoft Windows XP
#Choix le système d’exploitation et ses empreintes dans la base de données add Windows tcp port 80 ô sh scripts/web.sh ằ #Comportement du port 80
(serveur de web simulé) add Windows tcp port 139 open add Windows tcp port 137 open add Windows udp port 137 open add Windows udp port 135 open set Windows default tcp action reset set Windows default udp action reset bind 192.168.160.3 Windows #Créer 1 ère machine windows bind 192.168.160.4 Windows #Créer 2 ème machine windows create Router #Créer un routeur CISCO set Router Personality ô Cisco IOS 11.3 –
#Choisir le type de routeur set Router default tcp action reset set Router default tcp action reset set Router UID 32767 GID 32767 add Router tcp port 23 ô perl scripts/router- telnet.pl ằ
#Comportement du routeur bind 192.168.160.100 Router #L’adresse du routeur route entry 192.168.160.100 network
#Réseau accéder par routeur route 192.168.160.100 link 192.168.161.0/16 #Réseau accéder par routeur bind 192.168.161.11 Windows #Créer 3 ère machine windows
Bind 192.168.161.12 Windows #Créer 4 ère machine windows
La figure suivante illustre le réseau virtuel avec routeur
Le fichier de configuration est honeyd.conf.router
Configurer un réseau virtuel relié aux machines réelles
Dans cette architecture, j’utilise celle précédente et ajoute une machine réelle ayant l’adresse IP 192.168.160.2/24 en ajoutant une seule ligne dans le fichier de configuration : bind 192.168.160.2 to ethernet Dans notre cas, l’ethernet est vmnet1 car j’utilise vmware
Le fichier de configuration est honeyd.conf.reel
Configurer un réseau virtuel complexe
Dans cette configuration, je vais utiliser les empreints différents pour créer les machines Windows ainsi que machines Linux Il y a un routeur dans le réseau et une machine réelle Windows Cette configuration va être utilisée pour tester Le nom du fichier configuration est honeyd.conf.compl create Windows #Créer un template set Windows personality ô Microsoft Windows XP
#Empreints add Windows tcp port 80 ô sh scripts/web.sh ằ #Comportement du port 80
(serveur de web simulé) add Windows tcp port 139 open add Windows tcp port 137 open add Windows udp port 137 open add Windows udp port 135 open set Windows default tcp action reset set Windows default udp action reset bind 192.168.160.3 Windows #Créer 1 ère machine windows bind 192.168.160.4 Windows #Créer 2 ème machine windows create Windows #Créer un template set Windows personality ô Microsoft Windows XP
#Empreints add Windows tcp port 139 open add Windows tcp port 137 open add Windows udp port 137 open add Windows udp port 135 open set Windows default tcp action reset set Windows default udp action reset bind 192.168.160.5 Windows #Créer 1 ère machine Linux ème create Router #Créer un routeur CISCO set Router Personality ô Cisco IOS 11.3 –
#Choisir le type de routeur set Router default tcp action reset set Router default tcp action reset set Router UID 32767 GID 32767 add Router tcp port 23 ô perl scripts/router- telnet.pl ằ
#Comportement du routeur bind 192.168.160.100 Router #L’adresse du routeur route entry 192.168.160.100 network
#Réseau accéder par routeur route 192.168.160.100 link 192.168.161.0/16 #Réseau accéder par routeur bind 192.168.161.11 Windows #Créer 3 ère machine windows bind 192.168.161.12 Windows #Créer 4 ère machine windows
Outils aide à créer fichier de configuration honeyd
C’est un petit outil qui permet de créer facilement un fichier de configuration dans