Next: Modèles de sécurité usuels.
Up: Contre-mesures.
Previous: Eliminer les risques potentiels:
Table des matières
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: Modèles de sécurité usuels.
Up: Contre-mesures.
Previous: Eliminer les risques potentiels:
Table des matières
1-01-2006