Accueil : Centre de ressources : Veille technologique :

2 mars 2003 | Imprimer cette page

Citadelle de sable

par Christophe Roux

Il existe de nombreux articles sur la sécurité sur Internet.
Pourtant, souvent, chacun s’exerce à décrire des théories et des concepts complexes alors que les besoins des internautes sont souvent très simples et bien définis.
Alors, où trouver l’information ?
J’ai un peu cherché pour résoudre mon propre problème et je présente ici un résumé et un survol des techniques que l’on peut employer pour le résoudre.

Quel est mon problème :
Je dispose d’une liaison ADSL avec IP fixe pour héberger chez moi mon site Web. Mon système d’exploitation sur mes quatre machines en réseau local est GNU/Linux Debian Woody.
Jusqu’ici tout va bien. Mais il y a un mois, un malicieux gentil (parce qu’il n’a rien cassé) a réussi a changer l’adresse IP de ma machine routeur logiciel.
J’ai passé un certain nombre d’heure à chercher sur internet, un moyen de sécuriser mon réseau local. Je vous fait part d’une synthèse de mes recherches pour sécuriser mon routeur.

1) services
Sur chaque machine, il y a une correspondance entre des numéros de ports et des services authorisés (les ports peuvent être inhibés ou activés par le firewall) ; les services sont souvent configurés par un demon inetd.
Sur un routeur, pratiquement tous les services peuvent etre retirés du fichier de configuration /etc/inetd.conf :
ftp, telnet, ident, smtp, pop3 ...
Pour cela il suffit, dans ce fichier, de placer un # au début de chaque ligne décrivant un service.

2) portmap
Surtout évitez d’utiliser les services définis par portmapper (rpc, nfs ...).
Pour cela, retirez des fichiers d’initialisation du systèmes, ce qui ressemble à
*port*
*nfs*
*rpc*
*map*

3) bits suid
Le bit suid configure les fichiers selon un droit d’accès particulier :
il autorise le changement d’utilisateur pour obtenir des privilèges qui l’autorise à effectuer des opérations réservées.
ex : mount est une commande réservée à l’utilisateur root ; avec le bit suid positionné, on peut le déclencher depuis un utilisateur quelconque par exemple pour monter un lecteur de disquette.
Ce principe de bit suid peut autoriser un pirate à exécuter du code avec les droits de l’utilisateur root lui permettant de prendre le controle de la machine.
Il faut donc limiter le nombre de programme qui utilisent le bit suid :
si votre routeur ne fait que router, la commande mount peut n’etre accessible qu’à root.
Pour les programmes restant avec bit suid, il est judicieux de surveiller leur signature md5, comme décrit dans le paragraphe 5.

4) usr, bin, sbin, boot et lib
Ces répertoires ( /usr , /bin , /sbin , /boot , /lib ) sont très rarement modifié sur un routeur ; de plus, ils contiennent la plupart des exécutables.
C’est pourquoi une simple précaution consiste à placer ces répertoires en lecture seule.

5) signatures
Le principe des signatures bien connu avec tripwire est très bien décrit dans l’article "Securing Linux" de http://online.securityfocus.com. Il consiste à prendre une signature numérique des fichiers sensibles, à les stocker sur disquette en lecture seule ; avec une fréquence choisie, on comparera la signature stockée avec une nouvelle signature générer pour voir si le fichier est altéré.

6) Patcher le noyau avec openwall
Le projet OpenWall (www.openwall.com) fournit des patch qui permettent de rendre non exécutable la pile et ainsi d’éviter les "buffer overflow" (décrits dans l’article sur la sécurité de "http://www.africacomputing.org").
A l’heure actuelle, pour le noyau 2.4.20 encore instable sous Debian, le pacth est encore en test.

7) Firewall
Il existe plusieurs type de firewall. Linux en fournit par défault, du type filtre de paquet ; en version 2.2 il s’agit d’ipchains et en 2.4 c’est iptables.
Je recommande le livre "Linux FireWalls" de Robert L. Ziegler pour sa clareté.

8) autres voies non explorées
Bastille-Linux est un outil qui permet de renforcer la sécurité d’un système Linux.
chroot est un mécanisme de boites poupées gigognes pour emprisonner des processus sensibles.
Toute nouvelle solution est la bienvenue sur mon mail (ch_roux@club-internet.fr) car je pense que je resterai toujours en phase d’apprentissage sur la sécurité linux.

Enfin je tiens à expliquer le titre de cet article "Citadelle de sable" :
Les logiciels évoluent très vite et une solution bonne aujourd’hui peut s’avérer simpliste le lendemain ; ainsi, la sécurité logicielle s’appuie sur des bases mouvantes et construire un système sécurisé s’apparente à construire un chateau de sable que la marée peut emporter. Pour cette raison, restez toujours vigilant ; consultez les sites de sécurité et communiquez le plus possible sur la sécurité (c’est la raison qui me fait rédiger cet article).