Liyun LI
Si il n'y avait aucune menace dirigée contre un réseau informatique, si on est persuadé que nos données arrivent à destination sans être corrompues ni interceptées par quiconque, alors la sécurité informatique n'a pas lieu d'être.
Les attaques, tels que les DDOS (Distributed Denial Of Service), ou le piratage des systèmes informatiques continuent d'augmenter.
L'importance des données et son intégrité amènent donc les informaticiens à réfléchir aux solutions pour palier à ce problème.
a sécurité informatique peut être globalement séparée en 2 parties :
la sécurité active et la sécurité active.
La sécurité active consiste à la mise des dispositifs qui vont pouvoir agir sur les flux d'entrées et de sorties.
La mise en place d'un pare-feux, par exemple permet de rejeter certains types de paquets définis par l'administrateur et d'accepter d'autres types de paquets.
a sécurité passive ne va pas agir sur les flux. Elle se contente d'analyser les paquets de reconnaître certains paquets aux comportements suspects et d'alerter l'administrateur.
Le système de détection d'intrusion ou IDS (Internet Detection System) est une technique de la sécurité passive. C'est de cette technique que nous allons analyser en détail.
Pour illustrer ces notions de sécurité : on peut voir le pare-feux comme un videur devant un casino qui peut décider d'autoriser ou non en regardant sa tête (ou en-tête dans le cas d'un pare-feux du type packet filtering) l'entrée d'une personne, tandis que la détection d'intrusion serait plutôt une caméra cachée qui peut être placée à l'entrée ou à l'intérieur du casino.
Si la caméra cachée filme la personne qui entre et en procédant à une analyse reconnaît cette personne, elle va alerter la direction la présence d'un intrus potentiellement dangereux pour le casino.
Dans cette histoire, le videur peut être faillible et ne voit pas tout car il y a toujours des malins qui grâce à de divers techniques tels l'attaque à fragmentation IP, usurpation ou vol d'identité ( adresse IP ) et ainsi tromper le videur.
La caméra cachée apporte donc un rôle complémentaire au rôle jouée par le videur.
La détection d'intrusion est un processus de découverte et d'analyse de comportements hostiles dirigés contre un réseau
Le but de la détection d'intrusion est d'apporter une aide complémentaire aux pare-feux et à l'administrateur à se prémunir contre les attaques et intrusions en tout genre.
Telle est le but de la détection d'intrusions
Il existe principalement 2 types d'IDS les NIDS et HIDS
Les Network IDS ou détections d'intrusions réseaux
s'occupent de surveiller le trafic sur le réseau en confrontant les paquets détectés à un ensemble de signatures ou de règles . Si les règles sont violées ou si une signature s'applique, le NIDS enregistre l'événement comme une attaque .
On s'intéressera à Snort, NIDS évolué qui fonctionne sous Linux
Son principal atout est qu'il dispose d'une bibliothèque de signature gigantesque et elle est fréquentée mise à jour (cf www.snort.org)
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80 (msg:"WEB-ATTACKS chown command attempt"; flags:A+; content:"/usr/sbin/chown";nocase; sid:1338; rev:1; classtype:web-application-attack;)
Si Snort voit un segment TCP
provenant du réseau $EXTERNAL_NET (on afffecte à cette variable une adresse IP) initiant une connexion de n'importe quel port à destination du serveur Web dont l'IP est défini dans $HTTP_SERVER
sur le port 80 avec un le drapeau ack positionné à 1 et contenant comme données « /usr/sbin/chown », alors une alerte est envoyé contenant vers l'administrateur (WEB-ATTACKS chown command attempt"; flags:A+; content:"/usr/sbin/chown";nocase; sid:1338; rev:1; classtype:web-application-attack;) vers l'administrateur.
Les systèmes orientés poste ont pour rôle de déterminer si un ordinateur donné est en train d'être attaqué ou si celui-ci a déjà été attaqué, résultant en une compromission de la sécurité et de l'intégrité du système . La surveillance après attaque se fait généralement par analyse des fichiers présents sur la machine .
Les principaux produits sur le marché considérés comme des HIDS sont Tripwire ( logiciel comparant les sommes de contrôle - checksums - des fichiers sensibles avec les valeurs calculées pour un état "sain" )
Le fichier de configuration contient la liste des fichiers et répertoires dont on veut tester l'intégrité. La base de référence est générée à la première utilisation du produit (mode initialisation). Il est possible d'appliquer des tests d'intégrité spécifiques à chaque entrée du fichier de configuration. Le mode vérification peut être lancé par un programme automatique.
Pendant l'exploitation, le logiciel utilise des filtres et compare les résultats avec la base de référence. Et si jamais, le checksum est différent de la base alors une alerte est envoyé vers l'administrateur
Après l'installation, l'idée est de créer une base d'intégrité des fichiers
Et de lancer cron journalièrement pour voir si des fichiers ont été altérés ou non
Ces 2 types d'IDS ont tous les deux des défauts et des qualités, c'est pourquoi il est raisonnable de combiner les 2.
Ce sont des faux serveurs, appelés aussi pot de miel, dans lesquels on laisse un minimum de protection afin de récolter le maximum d'information sur la technique des hackers.
Le site http://project.honeynet.org/ est bien explicite
Le client envoie un premier segment numéroté x le serveur lui répond en acquittant du segment reçu et est numéroté x+1.
A son tour le serveur envoie un segment portant le drapeau y que le client acquitte avec un numéro y+1
Il y a bien l'établissement de 2 canaux de communications donc il y a une connexion full duplex
D'un point de vue de la sécurité, elle n'est pas sûre puisqu'on peut deviner les numéros des séquences des segment TCP. C'est sur cette idée qu'est basée la « fameuse attaque Mitnick » alias « Vol d'une session TCP ». (cd doc explication en détail de l'attaque Mitnick en .pdf)
Schématiquement:
On considère un client qui communique avec un serveur. Le but du pirate est de syn-flooder le client en y récupérant les numéros de séquence puis de le mettre hors service
Ensuite le pirate se connecte au serveur avec les numéros de séquence prédits
Puis une fois le serveur compromis, le pirate peut y installer des backdoors.
Là les IDS peuvent être utiles puisqu'ils vont détecter les syn-floods via les NIDS et une non-intégrité du système des fichiers via les HIDS
Son but est d'initier énormément de connexions avec l'envoi d'un drapeau SYN et lorsque le serveur lui renvoie un SYN/ACK, le client n'aquitte pas le SYN du serveur de tel sorte que le serveur en conservant les connexions pendantes se trouve saturé.
Ainsi le serveur ne peut plus répondre aux autres demandes ! Dans les noyaux 2.4.* de Linux, on peut fixer un temps de latence qui permet d'éviter le syn-flood.
L'idée est d'accepter les p premiers paquets qui arrivent mais s'ils arrivent en trop en même temps
Limit est un module de Netfilter qui est utilisé pour limiter la vitesse de concordance. Par défaut iptables est configuré avec 3 concordances par heure, avec une réserve de 5.
L'option -m limit --lim nb_paquet/s permet de fixer le nombre de concordance par unité de temps.
Une documentation bien détaillée de Iptables peut-être à trouvée sur http://netfilter.samba.org
Avec iptables (sur un noyau 2.4.* ) ajouter la règle suivante
Iptables 'A FORWARD 'p tcp 'syn 'm limit -limit 1/s 'j ACCEPT
# On accepte une concordance de 1 segment TCP par seconde avec le drapeau syn de positionné, et ave une réserve de 5 segments.
Nb : on parle de segment lorsque que c'est encapsulé par le protocole TCP (niveau 4) et de paquets lorsque c'est encapsulé par le protocole IP (niveau 3)
C'est l'un des points forts du firewall iptables qui a trouvé une manière astucieuse de contrer le syn-flooding
Il faut également également spécifier des paramètres des fichiers dans le répertoire /proc/sys/net/ipv4/.
usr/src/linux/Documentation/networking/ip-sysctl.txt, nous donne tous les détails le site de linuxdoc nous en donne aussi quelques explications (en français J)
http://www.linux-france.org/prj/inetdoc/i/net/guides/Advanced-routing-Howto
On peut spécifier le temps maximum que le système attendra le paquet SYN/ACK (a) , le nombre maximum de SYN en attente (b) et aussi le nombre maximum de paquets SYN en attente dans la file.(c)
(a) $ cat /proc/sys/net/ipv4/timeout_synack // 100 (l'unité est
en s)
(b) $ cat /proc/sys/net/ipv4/timeout_synrecv // 10
(c) $ cat /proc/sys/net/ipv4/tcp_max_syn_backlog // 200
Le conseil du jour : Si vous firewall est en train de subir une tempête de syn-flood, sans hésiter baisser le temps dans la file d'attente
Par exemple, dans le /proc/sys/net/ipv4/ip_forward, il faut mettre un « 1 » pour pouvoir activer le routage des paquets
Pour contrer ces attaques, on doit pouvoir aussi mettre en 'uvre des moyens anti scan furtifs
Iptables 'A FORWARD 'p tcp 'tcp-flags SYN,ACK, FIN, RST RST ' m limit -limit 1/s 'j ACCEPT
Explications :
Sur segments TCP que le firewall reçoit, il va examiner les drapeaux SYN,ACK, FIN, RST et si seulement RST est présent alors ce segment est accepté à raison d'une concordance de 1/s
L'idée est d'envoyer un paquet icmp d'une longueur supérieur à 65 535 octets, comme ces paquets ne peuvent pas passer tels quels ,ils sont alors fractionnés. Quand la cible reçoit ces paquets et les réassemble, le système voit son tampon débordé et peut amener un plantage de la machine
Contrer le ping de la mort
Les noyaux à partir de 2.0.24 sont toutes imunisés contre cette attaque. Les nouvelles versions de Windows aussi : (
Il faut utiliser systématiquement si possible la commande md5sum qui vérifie que le programme téléchargé correspond bien au programme présenté sur la page web (à moins que le serveur web ait été aussi compromis), en comparant la valeur du md5sum
Pour les connexions à distance utilisez ssh (Secure Shell) qui permet de crypter les communications à la place des rhost, rsh, rlogin qui eux en crypte pas les données envoyées dans le canal de communication.
Sur des Unix, n'autorisez qu'un seul groupe a pouvoir exécuter la commande « su » (cf le groupe wheel sous OpenBSD) on crée ainsi une petite barrière supplémentaire
Se tenir au courant des patchs et les appliquer
Malgré les performances des IDS, ceux ci peuvent cependant être outrpassés par la fragmentation IP (option 'f de nmap), signalons au passage que la dernière version de Snort pallie à ce problème. Un petit coup d'oeil sur le firewalking ou comment contourner les firewalls :)
Par ailleurs, les IDS n'ont encore que peu d'années d'expérience cependant les technologies des IDS évoluent très vite (cf la liste de quelques spécimens )
La sécurité absolu n'existe malheureusement pas. Mais certaines précautions peut faire diminuer drastiquement le risque d'avoir un système compromis. Ces mesures doivent être d'autant plus strictes quand les données ont un caractère sensible.
L'attaque Mitnick en détail (cf le lien)
· Portsentry
· Hostsentry
· ISS RealSecure ( performant mais coûte cher !)
This document was generated using the LaTeX2HTML translator Version 2K.1beta (1.48)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore,
Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html -no_subdir -split 0 -show_section_numbers /tmp/lyx_tmpdir10966UfXEWL/lyx_tmpbuf109668sl94j/IDS.tex
The translation was initiated by Debian User on 2002-02-09