Manuel de sécurisation de Debian
Notes de bas de page

1

Il a été remplacé à un moment donné par le « Linux Security Knowledge Base ». Cette documentation est également disponible dans Debian via le paquet lksb. Il est à nouveau de retour en tant que le Lasg.

2

Un très bon exemple de ce type d'attaque utilisant /tmp est détaillé dans Le programme mystérieusement exploitable de façon persistente (concours) et L'explication du programme mystérieusement exploitable de façon persistente (Notez que l'incident est lié à Debian). C'est de manière basique une attaque dans laquel un utilisateur local cache profondément une application setuid vulnérable en faisant un lien dur sur celle-ci, évitant de manière efficace toute mise à jour (ou suppression) du binaire lui-même réalisé par l'administrateur du système. Dpkg a été récemment corrigé pour empêcher cela (voir 225692), mais d'autres binaires setuid (non contrôlés par le gestionnaire de paquets) sont risqués si les partitions ne sont pas mises en place correctement.

3

L'empreinte dans Debian 3.0 et les versions précédentes n'était pas aussi réduire car certains services inetd étaient activés par défaut. Les installations standard de Debian 2.2 installaient également le serveur NFS ainsi que le serveur telnet

4

Cela est désirable si vous mettez en placer un chroot de développement, par exemple

5

Par exemple, dans Debian Woody, elle est d'environ 400 à 500 Mo, essayez ceci :

       $ size=0
       $ for i in `grep -A 1 -B 1 "^Section: base" /var/lib/dpkg/available |
       grep -A 2 "^Priority: required" |grep "^Installed-Size" |cut -d : -f 2
       `; do size=$(($size+$i)); done
       $ echo $size
       47762

6

Beaucoup d'intrusions ne sont faites que pour avoir accès aux ressources pour effectuer des activités illégales (attaques de déni de service, envoi de spams, serveurs FTP illicites, pollution de DNS, etc.) plus que pour obtenir des données confidentielles du système compromis.

7

Vous pouvez créer (sur un autre système) un paquet bidon avec equivs

8

Debian Security Advisories (DSA)

9

Bien que les bibliothèques aient été supprimées du système de fichiers, aucun i-node ne sera nettoyé tant qu'un programme a encore un descripteur de fichier pointant dessus

10

Ceci s'est produit, par exemple, dans la mise à jour de la libc6 2.2.x à la 2.3.x à cause de problèmes d'authentification NSS, voir http://lists.debian.org/debian-glibc/2003/debian-glibc-200303/msg00276.html.

11

Sauf si vous avez installé un métapaquet de noyau comme kernel-image-2.4-686 qui va toujours tirer la dernière révision mineure de noyau pour une version de noyau et une architecture donnée

12

Un exemple d'un tel script appelé testnet est disponible dans l'article Remotely rebooting Debian GNU/Linux machines. Un script de test de connectivité réseau plus élaboré est disponible dans l'article Testing network connectivity.

13

Configurer une console série est en dehors du cadre de ce document, pour plus d'informations, veuillez lire le Serial HOWTO et le Remote Serial Console HOWTO.

14

Le fichier /etc/securetty est un fichier de configuration qui appartient au paquet login.

15

Ou ttyvX pour GNU/FreeBSD et ttyE0 pour GNU/KNetBSD.

16

Ou comX pour GNU/Hurd, cuaaX pour GNU/FreeBSD et ttyXX pour GNU/KNetBSD.

17

La configuration par défaut dans Woody inclut 12 consoles locales tty et vc, ainsi que le périphérique console, mais ne permet pas les connexions distantes. Dans Sarge, la configuration par défaut fournit 64 consoles pour les consoles tty et vc. Vous pouvez les supprimer en toute sécurité si vous n'en utilisez pas tant.

18

Recherchez les appels getty.

19

Cela inclut le gestionnaire de paquet dpkg car les scripts d'installation (pre et pos) et de suppression (pre et post) sont à /var/lib/dpkg/ et aussi Smartlit

20

Cependant, cette dépendance n'est pas fixe. Veuillez lire le Bogue 112965.

21

Libpam-chroot n'a pas encore été testé en profondeur, il fonctionne pour login, mais il est possible qu'il ne soit pas facile de mettre en place l'environnement pour d'autres programmes

22

Configurer HISTSIZE à une très grande valeur peut poser des problèmes sous certains shells car l'historique est gardé en mémoire pour la session de chaque utilisateur. Il peut être plus prudent de positionner cela à une valeur assez élevée et de sauvergarder les fichiers d'historiques des utilisateurs (si vous avez besoin de tout l'historique de l'utilisateur pour une raison ou une autre)

23

Sans l'attribut ajout-uniquement les utilisateurs seraient capables de vider le contenu du fichier des historiques avec > .bash_history.

24

Les ttys sont créées pour les connexions locales et à distance par ssh et telnet

25

Chpasswd ne sait pas gérer la génération de mots de passe MD5, il faut donc lui donner le mot de passe sous sa forme cryptée avant de l'utiliser avec l'option -e.

26

assurez-vous d'utiliser des majuscules car spawn ne fonctionnera pas

27

il y a un très bon article sur celui-ci écrit par Lance Spitzner

28

Notez que ce correctif entre en conflit avec des correctifs déjà inclus dans le paquet de source du noyau Debian. Vous devrez utiliser le noyau d'origine (sans correctifs Debian). Vous pouvez faire cela en suivant les étapes suivantes :

     # apt-get install kernel-source-2.4.22 kernel-patch-debian-2.4.22
     # tar xjf /usr/src/kernel-source-2.4.22.tar.bz2
     # cd kernel-source-2.4.22
     # /usr/src/kernel-patches/all/2.4.22/unpatch/debian

Pour plus d'informations, consultez #194225, #199519, #206458, #203759, #204424, #210762, #211213 et la discussion sur debian-devel

29

Si commune, en fait, qu'elles ont été la base de 20 % des failles de sécurité rapportés cette année, comme déterminé par les statistiques de la base de données des failles de l'ICAT

30

Dans les versions précédentes, checksecurity était intégré dans cron et le fichier était /etc/cron.daily/standard

31

Dans Debian, les paquets kernel-source-version copient les sources sous /usr/src/kernel-source-version.tar.bz2, remplacez simplement version par la version de noyau des sources ques vous avez installés

32

Pour reproduire ceci (exemple fourni par Felix von Leitner sur la liste de diffusion bugtraq) :

        hôte a (eth0 connecté sur l'eth0 de l'hôte b):
          ifconfig eth0 10.0.0.1
          ifconfig eth1 23.0.0.1
          tcpserver -RHl localhost 23.0.0.1 8000 echo fnord
     
        hôte b:
          ifconfig eth0 10.0.0.2
          route add 23.0.0.1 gw 10.0.0.1
          telnet 23.0.0.1 8000

Cela semble, cependant, ne pas fonctionner avec les services liés à 127.0.0.1, vous pourriez devoir écrire des tests utilisant des sockets raw.

33

Le fait que ce comportement puisse être changé par le routage a été décrit par Matthew G. Marsh dans l'enfilade sur bugtraq :

     eth0 = 1.1.1.1/24
     eth1 = 2.2.2.2/24
     
     ip rule add from 1.1.1.1/32 dev lo table 1 prio 15000
     ip rule add from 2.2.2.2/32 dev lo table 2 prio 16000
     
     ip route add default dev eth0 table 1
     ip route add default dev eth1 table 2

34

Il existe des correctifs disponibles pour ce comportement comme décrit dans l'enfilade sur bugtraq à http://www.linuxvirtualserver.org/~julian/#hidden et http://www.fefe.de/linux-eth-forwarding.diff.

35

Un attaquant peut avoir beaucoup de problèmes à transférer un accès après une configuration de l'adresse IP s'il n'est pas le domaine de broadcast (même réseau) que l'hôte attaqué. Si l'attaque passe par un routeur, il peut être assez difficile pour les réponses de retourner quelque part.

36

gdm n'ajoutera pas -nolisten tcp s'il trouve -query ou -indirect sur la ligne de commande car cela ne pourrait pas fonctionner.

37

Pour récupérer la liste des démons de courrier disponibles dans Debian, essayez :

     $ apt-cache search mail-transport-agent

La liste n'inclura pas qmail, qui est distribué seulement comme code source dans le paquet qmail-src.

38

Une liste des serveurs/démons supportant ces protocoles dans Debian peut être récupérée avec :

     $ apt-cache search pop3-server
     $ apt-cache search imap-server

39

Notez que selon votre version de bind, il se peut que vous n'ayez pas l'option -g, en particulier si vous utilisez Woody et que vous installez bind9 (9.2.1-2.woody).

40

sauf si vous utilisez l'option instdir lors de l'appel à dpkg mais alors la prison chroot peut être un petit peu plus complexe

41

Elle essaie de les faire fonctionner avec le minimum de privilèges, ce qui inclut de faire tourner les démons avec leurs propres utilisateurs au lieu de les exécuter sous root.

42

À la différence des pare-feux personnels d'autres systèmes d'exploitation, Debian GNU/Linux ne fournit pas (encore) d'interface de génération de pare-feu qui puisse créer des règles les limitant par processus ou par utilisateur. Cependant, le code iptables peut être configuré pour faire cela (voir le module propriétaire (owner) dans la page de manuel iptables(8))

43

Des traductions sont disponibles dans jusqu'à dix langues

44

Le questionnaire de compétence complet est disponible au CVE

45

Certains systèmes d'exploitation ont déjà été touchés par des problèmes de mises à jour automatiques comme la faille de mises à jour de logiciels de Mac OS X.

FIXME: la faille d'Internet Explorer sur la gestion des chaînes de certicat a probablement un impact sur les mises à jour de sécurité de Microsoft Windows.

46

Certains d'entre eux sont fournis en installant le paquet harden-remoteaudit.

47

Cependant, la base de données des impreintes de Queso est plutôt ancienne

48

Si vous utilisez ce dernier paquet et que vous utilisez une Debian officielle, la base de données ne sera pas mise à jour avec les mises à jour de sécurité. Vous devrez soit utiliser clamav-getfiles du paquet clamav-freshclam pour générer de nouveaux clamav-data ou mettre à jour à partir de l'emplacement des responsables :

       deb http://people.debian.org/~zugschlus/clamav-data/ /
       deb-src http://people.debian.org/~zugschlus/clamav-data/ /

49

Pour plus d'exemples sur la façon de configurer gnupg, consultez /usr/share/doc/mutt/examples/gpg.rc.

50

Vous pouvez aussi vouloir utiliser l'option --quiet (-q) pour réduire la sortie de apt-get, ce qui empêchera la génération de toute sortie si aucun paquet n'est installé.

51

Notez que certains paquets peuvent ne pas utiliser debconf et les mises à jour seront bloquées car les paquets demanderont des entrées de la part de l'utilisateur pendant la configuration.

52

C'est un problème courant car beaucoup d'utilisateurs veulent conserver un système stable tout en mettant à jour certains paquets avec unstable pour obtenir les dernières fonctionnalités. Ce besoin provient de l'évolution plus rapide de certains projets que le temps entre les distributions stable de Debian.

53

Une façon aisée de faire cela est d'utiliser un cédérom autonome (Live CD), comme Knoppix Std qui incluerait à la fois les outils d'intégrité de fichier et la base de donnée pour votre système.

54

Il existe 28 fonctionnalités incluant : CAP_BSET, CAP_CHOWN, CAP_FOWNER, CAP_FSETID, CAP_FS_MASK, CAP_FULL_SET, CAP_INIT_EFF_SET, CAP_INIT_INH_SET, CAP_IPC_LOCK, CAP_IPC_OWNER, CAP_KILL, CAP_LEASE, CAP_LINUX_IMMUTABLE, CAP_MKNOD, CAP_NET_ADMIN, CAP_NET_BIND_SERVICE, CAP_NET_RAW, CAP_SETGID, CAP_SETPCAP, CAP_SETUID, CAP_SYS_ADMIN, CAP_SYS_BOOT, CAP_SYS_CHROOT, CAP_SYS_MODULE, CAP_SYS_NICE, CAP_SYS_PACCT, CAP_SYS_PTRACE, CAP_SYS_RAWIO, CAP_SYS_RESOURCE, CAP_SYS_TIME et CAP_SYS_TTY_CONFIG. Elles peuvent être toutes désactivées pour renforcer votre noyau.

55

Vous n'avez pas besoin d'installer lcap pour faire cela, mais c'est plus facile que de configurer /proc/sys/kernel/cap-bound à la main.

56

Vous utiliserez généralement un pare-feu pont pour que le pare-feu lui-même ne soit pas détectable, voir Configuration d'un pare-feu pont, Annexe D

57

Si vous êtes aventureux, vous pouvez vous connecter au système et sauver les informations sur tous les processus en fonctionnement (vous en aurez beaucoup dans /proc/nnn/). Il est possible d'avoir l'intégralité du code exécutable depuis la mémoire, même si l'attaquant a supprimé les fichiers exécutables du disque. Puis tirez sur le cordon d'alimentation.

58

En fait, c'est l'outil utilisé pour construire les CD-ROM pour le projet Gibraltar (un pare-feu sur un CD-ROM autonome basé sur la distribution Debian).

59

Voici une liste de quelques CERT, pour la liste complète, consultez le FIRST Member Team information (FIRST est le Forum of Incident Response and Security Teams) : AusCERT (Australie), UNAM-CERT (Mexique) CERT-Funet (Finlande), DFN-CERT (Allemagne), RUS-CERT (Allemagne), + CERT-IT (Italie), JPCERT/CC (Japon), UNINETT CERT (Norvège), HR-CERT (Croatie) CERT Polskay (Pologne), RU-CERT (Russie), SI-CERT (Slovénie) IRIS-CERT (Espagne), SWITCH-CERT (Suisse), TWCERT/CC (Taiwan), et CERT/CC (États-Unis).

60

Par exemple, basé sur les données de Securityfocus, il pourrait sembler que Windows NT est plus sûr que Linux, ce qui est une assertion discutable. Après tout, les distributions Linux fournissent habituellement beaucoup plus d'applications en comparison de Windows NT de Microsoft. Ces problèmes de failles comptabilisées sont mieux décrits dans Why Open Source Software / Free Software (OSS/FS)? Look at the Numbers! par David A. Wheeler

61

Sans diminuer le fait que d'autres distributions, comme Red Hat ou Mandrake, prennent aussi en compte la sécurité dans leurs installations standard en demandant à l'utilisateur de sélectionne des profils de sécurité ou en utilisant des assistants pour aider la configuration de pare-feux personnels.

62

Notez que ceci est de la « sécurité par l'obscurité » et ne vaudra probablement pas l'effort à long terme.

63

Si vous utilisez un noyau implémentant le contrôle d'accès obligatoire (« Mandatory Access Control » ou MAC) (RSBAC/SElinux), vous pouvez éviter de changer cette configuration en autorisant simplement l'utilisateur sshd à exécuter l'appel système chroot().

64

Notez qu'ils n'y a pas de fichiers SETUID. Cela rend plus difficile pour les utilisateurs distants de s'échapper de l'environnement de chroot. Cependant, il empêche également les utilisateurs de changer leurs mots de passe, car le programme passwd ne peut pas modificer les fichiers /etc/passwd ou /etc/shadow.


Manuel de sécurisation de Debian

Version: 3.4, Sun, 06 Nov 2005 22:34:04 +0100

Javier Fernández-Sanguino Peña jfs@debian.org
Auteurs, Section 1.1

version française par Frédéric Bothamy (traducteur actuel)
Pierre Machard et Arnaud Assad (anciens traducteurs)
et les membres de la liste debian-l10n-french@lists.debian.org