next up previous contents Next:  Modèles de sécurité usuels. Up: Contre-mesures. Previous:  Eliminer les risques potentiels:   Table des matières  

47.3.8  Rendre la vie difficile aux pirates.

De nombreuses actions peuvent être engagées, qui ne relève pas de la sécurité à strictement parler mais, qui gêneront considérablement un pirate pour le décourager d'entreprendre une attaque classique courante, et ce, même si votre système est vulnérable. Une tentative de piratage est toujours conçue pour un système configuré d'une certaine manière. En éloignant la configuration de votre système d'une configuration standard, vous allongez le temps de vie de votre système.

Partitions en lecture seule:
il est permis de monter la partition /usr (et les répertoires de haut niveau critiques comme /bin) en lecture-seule puisque par définition, il s'agit de données statiques. Naturellement, toute personne qui a les droits de root pourra les remonter en lecture-écriture, mais un script d'attaque générique sera impuissant. Certains disques SCSI peuvent être configurés pour être montés en lecture-seule car ils utilisent des micro-interrupteurs DIP ou DIP switches (Dual In-line Pin Switch). [NdT: Il s'agt de micro-interrupteurs (ou micro-commutateurs) permettant de paramétrer la configuration d'un appareil: carte mère, carte d'extension (vidéo, modem, imprimante, etc), disques, etc. Ces dispositifs ne sont pratiquement plus utilisés de nos jours car la configuration des périphériques se fait par voie logicielle.] La partition /usr peut être construite comme une partition ISO9660 (système de fichiers CD-ROM) qui, par définition, est en lecture-seule. Vous pouvez d'ailleurs monter vos CD-ROMs comme une partition /usr. L'accès sera ralenti, mais la partition sera absolument inmodifiable. Finalement, il vous est possible de modifier le code noyau pour faire échouer les tentatives de montage en écriture de /usr.

Attributs en lecture seule:
LINUX possède des attributs spéciaux de fichiers pour rendre un fichier non-modifiable quels que soient les droits usuels. Ces attributs sont contrôlés par les commandes lsattr et chattr. Vous pouvez aussi créer un fichier de journalisation en mode ajout-seul (append-only) avec chatter +a /var/log/messages /var/log/syslog ou rendre les fichiers immuables à l'aide de chatter +i /bin/login. Il s'agit là de deux bonnes idées à suivre. La commande:

chattr -R +i /bin /boot /lib /sbin /usr


est encore meilleure. Naturellement, un utilisateur qui s'emparerait des privilèges de superutilisateur pourra restaurer le système à sa guise.

Contrôle périodique du système:
il est utile d'écrire vos propres scripts crond pour vérifier les fichiers qui sont modifiés sur votre système. Les scripts devraient contrôler les nouveaux programmes setuid, les droits et les modifications ayant eu lieu dans les fichiers binaires. Par ailleurs, n'hésitez pas à réattribuer des droits qui vous paraissent mieux adaptés. Gardez à l'esprit que les programmes cron peuvent être modifiés par quiconque pirate votre système. La simple commande:

find / -mtime 2 -o -ctime 2


recherche tous les fichiers qui ont été modifiés durant les deux derniers jours.

Paquets non-standards:
lorsque vous notez beaucoup d'alertes de sécurité pour un paquet donné, passez à un paquet concurrent. Il y a des alternatives à bind, wu-ftpd, sendmail (toutes ont été vues au chapitre 31). Il en est de même pour chaque service, pratiquement. Passez complétement à FreeBSD, OpenBSD ou NetBSD réduit aussi les risques.

Messages non-standards:
de nombreux services fournissent des messages d'information qui donnent la version de votre logiciel. Par exemple, les serveurs de courriel ont des réponses, par défaut, à HELO qu'ils utilisent pour eux-mêmes. Les connexions et les bannières FTP affichent souvent le type de système d'exploitation d'un serveur. N'hésitez pas à modifier ces messages pour qu'ils en disent le moins possible car un attaquant tire toujours des conclusions de ces données. Commencez par modifier /etc/motd.

Noyaux minimalistes:
il est aisé de compiler votre noyau sans support de modules, avec un jeu d'options minimales. Par le passé, le chargement de modules contenant des portes dérobées a été identifié comme une source de vulnérabilités. Des noyaux légers sont toujours plus sûrs.

Architectures non-Intel:
les pirates doivent apprendre le langage assembleur pour exploiter les nombreuses vulnérabilités. L'assembleur le plus commun est celui des processeurs Intel 80?86. L'usage de processeurs non-Intel en déroutera plus d'un.

Projet OpenWall:
Ce projet consiste à fournir un correctif du noyau qui rend la pile d'un processus non-exécutable (ceci diminue considérablement les tentatives de dépassement de tampon) et qui effectue d'autres traitements intéressants sur le répertoire /tmp et les processus d'E/S.


next up previous contents Next:  Modèles de sécurité usuels. Up: Contre-mesures. Previous:  Eliminer les risques potentiels:   Table des matières  
1-01-2006