D�tection d'Intrusion sous Debian GNU/Linux

ArticleCategory:

SystemAdministration

AuthorImage:

[Photo of the Author]

TranslationInfo:

original in es Jos� Salvador Gonz�lez Rivera 

es to en Georges Tarbouriech 

en to fr Georges Tarbouriech 

AboutTheAuthor:

Jos� Salvador Gonz�lez Rivera est un membre actif du Groupe d'Utilisateurs de Linux de Puebla (Mexique). Il participe souvent � des manifestations pour la promotion du Logiciel Libre, et particuli�rement de Linux. Il vient d'obtenir une licence en Informatique et Syst�mes. Vous pouvez le joindre � jsgr(at)tec.com.mx ou � jsgr(at)linuxpuebla.org.

Abstract:

Aujourd'hui, une grande partie de l'information est stock�e num�riquement sur des supports �lectroniques et par cons�quent, elle devient plus facile d'acc�s par l'interm�diaire de r�seaux d'ordinateurs. Ces derniers nous permettent d'obtenir des donn�es distantes qu'elles soient financi�res, administratives, militaires, industrielles ou commerciales. Malheureusement, ces donn�es sont une cible facile pour des gens mal intentionn�s d�sirant se les procurer ou les d�truire, le mot "�thique" ne faisant pas partie de leur vocabulaire.

Contre l'absence de conscience, il n'y a pas grand chose � faire. Dans ce court article je ferai un tour d'horizon de la technique et des outils de d�tection d'intrusion sous Debian GNU/Linux. Je ne reproduirai pas le contenu des manuels puisque je me concentrerai sur ce qui se passe dans la r�alit�.

ArticleIllustration:

[debian]

ArticleBody:

Introduction

Lors du choix d'un syst�me d'exploitation Linux, de nombreuses distributions sont � prendre en consid�ration. Nombre d'entre elles sont bas�es sur RedHat, par exemple Conectiva (Br�sil), Hispa source (Espagne), Mandrake (France), SuSE (Allemagne), Caldera et beaucoup d'autres utilisant le syst�me de paquetages RPM. Il existe aussi Slackware qui essaie d'�tre plus proche de l'Unix traditionnel en n'utilisant que des archives .tgz. "Presque" toutes sont d�velopp�es par des soci�t�s commerciales, mais ce n'est pas le cas de Debian. Debian propose un gestionnaire de paquetages (DPKG) qui nous permet des mises � jour automatiques par Internet; il v�rifie �galement les d�pendances, rendant l'administration du syst�me plus facile tout en restant � jour pour ce qui concerne les correctifs de s�curit�.

Pourquoi Debian GNU/Linux ?

Debian dispose de caract�ristiques int�ressantes :

1) Il n'a aucun but commercial et ne subit pas la loi du march�.
2) Il poss�de un tr�s bon syst�me de suivi d'erreurs et les probl�mes sont r�solus en moins de 48 heures.
3) Depuis le d�but, sa priorit� consiste � d�velopper un syst�me d'exploitation complet et fiable.
4) Il est d�velopp� par des volontaires tout autour du monde.

Chaque nouvelle version offre un nouveau support mat�riel; pour l'instant, les architectures support�es sont les suivantes : Alpha, ARM, HP PA-RISC, Intel x86, Intel IA-64, Motorola 680x0, MIPS, MIPS (DEC), Power PC, IBM S/390, Sparc et ils sont en train de travailler sur les processeurs Sun UltraSparc et Hitachi SuperH. C'est le syst�me Linux fonctionnant sur le plus grand nombre de plates-formes.

Parmi les paquetages Debian existants, plusieurs outils de d�tection d'intrusion en temps r�el sont capables de d�couvrir un comportement hostile envers une connexion. Il en existe deux cat�gories : ceux qui surveillent les tentatives d'attaques sur un r�seau et ceux qui contr�lent l'activit� sur un h�te sp�cifique.

Outils d'h�tes

Nous utilisons PortSentry pour d�tecter les scans de ports, TripWire pour contr�ler les changements dans le syst�me et LogSentry pour l'analyse des "logs". Le premier et le dernier font partie de la suite TriSentry de Psionic Technologies.

D�tection de scans de ports

PortSentry surveille les ports de notre syst�me et il effectue une action (g�n�ralement un blocage) s'il d�tecte une tentative de connexion sur un port dont nous ne souhaitons pas qu'il soit �cout�.

Le site web se trouve � http://www.psionic.com/products/portsentry.html et PortSentry est disponible pour Solaris, BSD, AIX, SCO, Digital Unix, HP-UX, et Linux.

Sur Debian il peut s'installer par la commande :

apt-get install portsentry

Diff�rents niveaux d'activit� peuvent �tre choisis : le mode classique, le mode "stealth" (furtif) et le mode avanc�. La configuration repose sur le fichier /usr/local/psionic/portsentry/portsentry.conf.

J'ai trouv� les options principales dans un article de Jos� Torres Luque dans ES Linux Magazine et ce sont les suivantes :

TCP_PORTS, vous d�finissez ici les ports � contr�ler soit en mode classique soit en mode stealth. L'auteur du programme propose trois listes de ports selon le degr� de r�activit� que vous souhaitez appliquer. Le nombre maximum de ports s'�l�ve � 64.

UDP_PORTS, comme le pr�c�dent mais pour les ports UDP.

ADVANCED_PORTS_TCP, ADVANCED_PORTS_UDP, indique le num�ro de port le plus �lev� � utiliser en mode avanc�. Chaque port au-dessous de celui-ci sera surveill� sauf ceux d�j� exclus. Le port le plus �lev� peut �tre d�fini jusqu'� 65535. Toutefois il est d�conseill� de d�passer 1024 afin d'�viter les fausses alertes.

ADVANCED_EXCLUDE_TCP, ADVANCED_EXCLUDE_UDP, propose une liste des ports � exclure. Les ports pr�sents dans cette section ne seront pas surveill�s en mode avanc�. Vous pouvez y inscrire les ports habituellement d�di�s aux clients distants et ceux n'offrant pas un v�ritable service. ident, par exemple.

IGNORE_FILE, nous y inscrivons le chemin du fichier dans lequel nous d�finissons les adresses IP � ignorer. L'interface locale, lo comprise, doivent �galement se trouver dans ce fichier. Vous pouvez aussi y ajouter les adresses IP locales.

KILL_ROUTE, nous pouvons ajouter ici la commande � ex�cuter pour bloquer l'h�te attaquant. Par exemple : iptables -I INPUT -s $TARGET$ -j DROP o� $TARGET$ correspond � l'h�te attaquant.

KILL_RUN_CMD, nous indiquons une commande � ex�cuter avant de bloquer l'acc�s de l'h�te attaquant.

SCAN_TRIGGER, d�termine le nombre de tentatives avant de d�clencher l'alarme.

PORT_BANNER, affiche un message sur les ports ouverts en mode connexion.

Une fois configur�, il doit �tre ex�cut� dans l'un des trois modes gr�ce aux options suivantes : pour TCP vous disposez de -tcp (mode de base), -stcp (mode stealth) et -atcp (mode avanc�); pour UDP ce peut �tre -udp, -sudp, -audp.

Analyse d'int�grit�

TripWire permet de v�rifier l'int�grit� des fichiers du syst�me; le site web se trouve � http://www.tripwire.org et il est libre pour Linux et commercial pour Windows NT, Solaris, AIX et HP-UX.

Sur Debian il peut �tre install� par la commande :

apt-get install tripwire

Pour stocker l'information deux cl�s sont n�cessaires : la premi�re, la cl� du site ("site key") est utilis�e pour chiffrer les r�gles et les fichiers de configuration, et la seconde, la cl� locale ("local key") sert � chiffrer l'information sur l'�tat des fichiers contr�l�s.

La configuration se fait simplement dans le fichier /etc/tripwrie/twpol.txt et une fois qu'elle a �t� adapt�e, vous pouvez l'installer en tapant :

twadmin -m P /etc/tripwire/twpol.txt

Pour cr�er la base de donn�es initiale contenant l'�tat actuel des fichiers, nous ex�cutons la commande :

tripwire -m i 2

Pour v�rifier l'int�grit� du syst�me de fichiers, nous tapons :

tripwire -m c

Le fichier de configuration peut �tre effac� afin d'emp�cher un intrus de savoir quels fichiers ont �t� modifi�s en tapant :

rm /etc/tripwire/twcfg.txt /etc/tripwire/twpol.txt

Pour les cr�er si besoin est, tapez :

twadmin -m p > /etc/tripwire/twpol1.txt twadmin -m f > /etc/tripwire/twcfg.txt

Analyse des logs

LogCheck fait partie de LogSentry et permet une analyse efficace des logs puisqu'il les classifie et �tablit des rapports sur l'activit� et les erreurs qui r�clament une lecture. Il propose quatre niveaux d'analyse diff�rents : ignorer, activit� inhabituelle, violation de s�curit� et attaque.

Le site web est � http://www.psionic.com/products/logsentry.html. LogSentry est disponible pour Solaris, BSD, HP-UX et Linux.

Sur Debian il peut �tre install� par la commande :

apt-get install logcheck

Ceci installe le programme logtail dans /usr/local/bin pour maintenir une liste des analyses d�j� effectu�es. Les fichiers suivants sont �galement install�s :

Logcheck.sh,
Un script contenant la configuration de base.

Logcheck.hacking,
Contient les r�gles d�finissant les niveaux d'activit�.

Logcheck.ignore,
Contient les expressions � ignorer.

Logcheck.violations,
Contient les expressions pouvant �tre consid�r�es comme des violations de s�curit�.

Logcheck.violations.ignore,
Les expressions pr�sentes dans ce fichier sont destin�es � �tre ignor�es.

Vous pouvez utiliser cron pour lancer logcheck toutes les heures : 0 * * * * /bin/sh /usr/local/etc/logcheck.sh

Outils r�seau

Nous utilisons Snort pour d�tecter les tentatives d'attaque r�seau. Le site web se trouve � http://www.snort.org et snort est disponible pour BSD, Solaris, AIX, Irix, Windows, MacOS X et Linux.
Sur Debian il peut �tre install� par la commande :

apt-get install snort

Il fonctionne en trois modes : sniffer, packet logger et d�tecteur d'intrusion

Il utilise les param�tres suivants :

-l r�pertoire
indique le r�pertoire o� stocker les fichiers.

-h IP
d�finit l'adresse IP du r�seau que nous voulons surveiller.

-b
capture les paquets sous forme binaire.

-r fichier
examine un fichier binaire.

Les modes Sniffer et Packet Logger de snort

En mode sniffer, il lit tous les paquets circulant � travers le r�seau et les affiche sur la console alors qu'en mode packet logger il envoie les donn�es dans un fichier.

Snort -v

Montre IP et en-t�tes.

Snort -dv

Montre �galement les donn�es qui circulent.

Snort -dev

Propose une information plus d�taill�e.

Mode de D�tection d'Intrusion de snort

Dans ce mode, snort nous informe sur les scans de ports, les attaques DoS (D�ni de Service), les exploitations de vuln�rabilit�s (exploits), etc. Il s'appuie sur des r�gles se trouvant dans /usr/local/share/snort, que vous pouvez t�l�charger sur le site, et le serveur les remet � jour toutes les heures.

Sa configuration est tr�s simple puisqu'elle consiste � modifier le fichier snort.conf, dans lequel nous indiquons les caract�ristiques de notre r�seau et les r�pertoires de travail. Modifiez seulement l'IP :

var HOME_NET IP

Pour ex�cuter snort, tapez :

snort -c snort.conf

Les fichiers de "logs" sont enregistr�s dans /var/log/snort et nous pouvons y voir les adresses IP des attaquants. Ceci n'est bien s�r qu'un tr�s bref r�sum� des possibilit�s de snort et je recommande une lecture plus approfondie sur le sujet. La plupart des organisations, des magazines, des groupes de s�curit� consid�rent cet excellent outil comme le meilleur syst�me de d�tection d'intrusion pour Unix ou Windows et n'h�sitent pas � le recommander. Il existe un support commercial propos� par des soci�t�s comme Silicon Defense et Source Fire et des interfaces graphique commencent � appara�tre pour offrir une pr�sentation des r�sultats plus esth�tique.

Parfois des situations d'urgence se pr�sentent r�clamant une analyse plus d�taill�e puisque certains probl�mes ont pu ne pas �tre pris en compte et doivent �tre r�solus imm�diatement.

Ces probl�mes sont habituellement caus�s par des gens mal intentionn�s ou des intrus essayant d'acc�der � nos serveurs pour diff�rentes raisons, qu'il s'agisse de voler ou d'alt�rer nos donn�es ou d'attaquer d'autres machines � partir de la notre, soit en installant un sniffer ou un rootkit qui sont des ensembles logiciel permettant d'obtenir un maximum de privil�ges sur un syst�me.

Autres outils utiles

D�tection de sniffer

Un sniffer est un outil qui passe notre interface r�seau en mode "promiscuous" dans le but d'�couter le trafic du r�seau. La commande ifconfig nous fournit la totalit� des informations concernant l'interface r�seau :

eth0 Link encap:Ethernet HWaddr 00:50:BF:1C:41:59
inet addr:10.45.202.145 Bcast:255.255.255.255 Mask:255.255.128.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7180 errors:0 dropped:0 overruns:0 frame:0
TX packets:4774 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:8122437 (7.7 MiB) TX bytes:294607 (287.7 KiB)
Interrupt:10 Base address:0xc000

Toutefois, si la commande ifconfig a �t� remplac�e ou si le sniffer fonctionne � partir d'une autre machine, vous devez v�rifier les connexions externes, par exemple, en envoyant un courrier � un compte "bidon" ou en essayant de d�tecter les logs du sniffer.

Il existe un outil nomm� neped, con�u par un groupe Espagnol, qui nous informe sur les interfaces de notre r�seau fonctionnant en mode "promiscuous". Il ne fait pas partie de Debian mais peut �tre t�l�charg� depuis ftp://apostols.org/AposTools/snapshots/neped/neped.c
Note : ce serveur semble ne plus r�pondre depuis quelques semaines.

Ex�cuter ce programme donnera une r�ponse du genre :

neped eth0
----------------------------------------------------------
> My HW Addr: 00:80:F6:C2:0E:2A
> My IP Addr: 192.168.0.1
> My NETMASK: 255.255.255.0
> My BROADCAST: 192.168.1.255
----------------------------------------------------------
Scanning ....
* Host 192.168.0.2, 00:C2:0F:64:08:FF **** Promiscuous mode detected !!!
End.

Lorsque nous envoyons un paquet IP de 191.168.0.1 � 192.168.0.2 nous devons conna�tre l'adresse MAC. Ceci s'accomplit en envoyant un paquet "broadcast" au r�seau r�clamant l'adresse MAC de l'IP sp�cifi�e : toutes les machines recoivent la demande mais seul l'h�te concern� r�pond.

Dans ce cas, neped pose la question � toutes les adresses IP du r�seau, toutefois, il n'envoie pas un "broadcast" mais � la place utilise une adresse IP inexistante. Seuls les h�tes ayant leur interface en mode "promiscuous" r�pondront puisque les autres sont incapables de voir ces paquets.

J'ai d�couvert ce programme dans un article sur Internet concernant la d�tection d'espion. Il proposait un exemple similaire. Si vous connaissez l'URL de cet article, n'h�sitez pas � m'envoyer un courrier �lectronique, parce que je l'ai perdu :-)

D�tection de rootkits

Les rootkits "offrent" un moyen d'obtenir des privil�ges sup�rieurs � ceux d'un utilisateur normal. G�n�ralement, ils remplacent les fichiers binaires de notre machine par des versions susceptibles de leur fournir un acc�s ult�rieur au syst�me. C'est pourquoi nous devons v�rifier si nous poss�dons toujours les originaux en utilisant chkrootkit. Il peut �tre install� comme suit :

apt-get install chkrootkit

Le site est � www.chkrootkit.org et il contr�le les fichiers suivants :

aliens, asp, bindshell, lkm, rexedcs, sniffer, wted, z2, amd, basename, biff, chfn, chsh, cron, date, du, dirname, echo, egrep, env, find, fingerd, gpm, grep, hdparm, su, ifconfig, inetd, inetdconf, identd, killall, ldsopreload, login, ls, lsof, mail, mingetty, netstat, named, passwd, pidof, pop2, pop3, ps, pstree, rpcinfo, rlogind, rshd, slogin, sendmail, sshd, syslogd, tar, tcpd, top, telnetd, timed, traceroute, w, write

Pour l'utiliser, tapez :

chkrootkit

Il v�rifie les fichiers, recherche les sniffers et les rootkits connus. D'autres outils permettent de v�rifier une �ventuelle alt�ration des "logs" (chkwtmp and chklastlog) et ifpromisc nous indique si notre interface r�seau est en mode "promiscuous".

R�f�rences

Lire les pages de manuel de ces programmes est fortement recommand�. Je vous propose quelques r�f�rences que j'ai utilis�es. N'h�sitez pas � m'envoyer vos suggestions et vos commentaires � mon adresse de courrier �lectronique.