original in es Jos� Salvador Gonz�lez Rivera
es to en Georges Tarbouriech
en to fr Georges Tarbouriech
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.
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�.
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�.
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.
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.
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.
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
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
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.
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.
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.
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 :-)
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".
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.