IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
next up previous contents index index
suivant: Les solutions de défense monter: Les outils des Hackers précédent: Les outils des Hackers   Table des matières   Index

Sous-sections

Les différents types d'attaque

Cartographie 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 plus 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

SUID/SGID

S-bit positionné pour l'utilisateur

Les processus sous Linux s'exécutent avec l'identifiant de l'utilisateur (user-ID). Ceci leur donne accès aux ressources ( fichier etc ...) auxquelles l'utilisateur a accès. L'identifiant effectif est celui qui détermine les accès aux fichiers.
find / -user root -a \( -perm -4000 -o -perm -2000 \) -print

Le crackage 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... Cet article en anglais décrit le fonctionnement d'un logiciel de crackage par mot de passe, et fournit les noms de quelques logiciels les plus utilisés par les Hackers. http://www.xphys.tuwien.ac.at/ mike/security/network-security.php

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 (telnet, rlogin, ftp...), alors cette personne risque contre son gré de donner 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 :
  1. ATM Sniffer Network Analyzer : http://www.networkassociates.com décode plus de 250 protocoles.
  2. Shomiti Systems Century LAN Analyzer : http://www.shomiti.com supporte le standard Ethernet et fonctionne sous Windows 95/98 et NT.
  3. PacketView de Klos Technologies : ftp.klos.com/demo/pvdemo.zip ce sniffer est basé sur DOS, idéal pour les environnements Ethernet.
  4. Network Probe 8000 : http://www.netcommcorp.com fait une analyse d'environ 13 protocoles dont TCP/IP, Microsoft, NFS, Novell.
  5. LANWatch http://www.guesswork.com marche sous DOS, Windows 9x et NT.
  6. EtherPeek : http://www.aggroup.com pour Windows et plates-formes Macintosh.
  7. Ethload : sniffer qui permet de surveiller les sessions rlogin et telnet téléchargeable sur : http://www.computercraft.com/noprogs/ethld104.zip
  8. 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'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 :
  1. l'agresseur change l'adresse IP de son ordinateur pour faire croire qu'il est un client certifié par le serveur,
  2. 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,
  3. l'agresseur envoie une requête client au serveur en utilisant la route source,
  4. le serveur accepte la requête du client comme si elle provenait directement du client certifié et retourne une réponse au client,
  5. le client, utilisant la route source, doit 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 peuvent ê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 se faire passer ensuite pour ce dernier. Les entreprises utilisent souvent des PC et les protocoles 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'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 firewall 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.php 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 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 :
  1. essaie de trouver les mots de passe des comptes utilisateurs,
  2. essaie d'entrer dans chaque machine cible en se faisant passer pour un utilisateur de la machine ``attaquante'' (après avoir cracké 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 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 firewall 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 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.

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.

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 n'a pas encore reçu le ACK du client. C'est alors une connexion dite semi- ouverte. 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 pour qu'il 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 internet fait suivre les paquets sur une adresse de destination, le seul moyen de valider la source d'un paquet est 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 Nuke

Les Nukes sont des plantages du système d'exploitation dûs à des pirates qui connaissent votre adresse IP, et qui utilisent un bug du système. Les Nukes font généralement ``planter'' le système et il ne reste plus qu'à rebouter. Avec Linux, et sa particularité d'être en ``Open Source'', les failles du système se résolvent d'elles- mêmes, puisque ce sont les utilisateurs qui détectent et corrigent les failles. Le temps de latence entre la détection de la faille et sa réparation est donc plus court qu'avec les autres systèmes d'exploitation, ce qui réduit potentiellement les possibilités d'attaques. Il faudra donc réaliser une veille technologique du système Linux, et télécharger les patchs de correction et de mise à jour.

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 firewall 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 firewalls 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 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.

Attaque du Display

___________________________________________________________________
Comment protéger sa session X?
Dans le fichier .xsession (si vous en avez un dans la racine), mettre les lignes suivantes:
# Inhibe toute connexion
xhost -
Utiliser xauth pour modifier le fichier d'autorisation .Xauthority.
Exemple:
% xauth list
xauth: creating new authority file /home/user/.Xauthority
% xauth
Using authority file /home/user/.Xauthority
xauth> ?
Commands:
add exit extract help info list
merge nextract nlist nmerge quit remove
source ?
xauth> list
the-pilgrim:0 MIT-MAGIC-COOKIE-1 383242......
xauth> remove the-pilgrim:0
1 entries removed
xauth> list
xauth> quit
Le fichier .Xauthority doit avoir les droits rw- -- --
Une fois connecté, il ne faut pas laisser votre terminal sans surveillance. Quelqu'un peut changer les droits de vos comptes/fichiers, charger des images, etc.
next up previous contents index index
suivant: Les solutions de défense monter: Les outils des Hackers précédent: Les outils des Hackers   Table des matières   Index