Il a été remplacé à un moment donné par le « Linux Security
Knowledge Base ». Cette documentation est également disponible dans
Debian par l'intermédiaire du paquet lskb
. Il est à nouveau de
retour en tant que le Lasg.
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 persistante
(notez que l'incident est lié à Debian). C'est de manière basique une
attaque dans laquelle un utilisateur local cache profondément une
application setuid vulnérable en faisant un lien direct 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 (consultez le bogue nº 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.
Depuis Debian GNU/Linux 4.0, surnommée Etch.
L'empreinte dans Debian 3.0 et les versions précédentes n'était pas
aussi réduite 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.
C'est pratique si vous mettez en place un chroot de développement, par exemple.
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
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 d'indésirables, serveurs FTP illicites, pollution de DNS, etc.) plus que pour obtenir des données confidentielles du système compromis.
Vous pouvez créer (sur un autre système) un paquet bidon avec
equivs
.
Debian Security Advisories (DSA).
Depuis Etch.
Bien que les bibliothèques aient été supprimées du système de fichiers, aucun inœud ne sera nettoyé tant qu'un programme a encore un descripteur de fichier pointant dessus.
En fonction de la version de lsof, vous pourriez avoir besoin de remplacer $9 par $8.
Cela 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, consultez http://lists.debian.org/debian-glibc/2003/debian-glibc-200303/msg00276.html
.
Sauf si vous avez installé un métapaquet de noyau comme
linux-image-2.6-686
qui va toujours tirer la dernière révision
mineure de noyau pour une version de noyau et une architecture donnée.
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
.
Configurer une console série est en dehors du cadre de ce document, pour plus
d'informations, veuillez consulter le Serial HOWTO
et
le Remote
Serial Console HOWTO
.
Le fichier /etc/securetty
est un fichier de configuration qui
appartient au paquet login
.
Ou ttyvX pour GNU/FreeBSD et ttyE0 pour GNU/KNetBSD.
Ou comX pour GNU/Hurd, cuaaX pour GNU/FreeBSD et ttyXX pour GNU/KNetBSD.
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.
Recherchez les appels getty.
Cela inclut le gestionnaire de paquet dpkg
car les scripts
d'installation (pre et post) et de suppression (pre et post) sont en
/var/lib/dpkg/
et aussi Smartlist.
Cependant, cette dépendance n'est pas fixe. Veuillez consulter le bogue nº 112965
.
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.
Configurer HISTSIZE à une très grande valeur peut poser des problèmes avec certains interpréteur de commandes 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 sauvegarder les fichiers d'historique des utilisateurs (si vous avez besoin de tout l'historique de l'utilisateur pour une raison ou une autre).
Sans l'attribut append-only les utilisateurs seraient capables de vider le contenu du fichier des historiques avec > .bash_history.
Les ttys sont créées pour les connexions locales et à distance par SSH et TELNET.
Tel que défini dans /etc/adduser.conf
(USERGROUPS=yes). Vous
pouvez modifier ce comportement en configurant cette valeur à
« no », bien que ce ne soit pas recommandé.
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 chiffrée avant de
l'utiliser avec l'option -e.
Pour les anciennes versions de Debian, vous pourriez devoir utiliser :
$ apt-cache showpkg libwrap0 | egrep '^[[:space:]]' | sort -u | \ sed 's/,libwrap0$//;s/^[[:space:]]\+//'
Assurez-vous d'utiliser des majuscules sinon spawn ne fonctionnera pas.
Il y a un très bon article sur celui-ci écrit par Lance Spitzner
.
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 les bogues nº 194225
, nº 199519
, nº 206458
, nº 203759
, nº 204424
, nº 210762
, nº 211213
et la discussion
sur debian-devel
.
Si commune, en fait, qu'elles ont été la base de 20 % des failles de
sécurité signalés cette année, d'après les statistiques de la
base de données des failles de l'ICAT
.
Dans les versions précédentes, checksecurity était intégré dans cron et le
fichier était /etc/cron.daily/standard
.
Dans Debian, les paquets kernel-source-version
copient
les sources sous
/usr/src/kernel-source-version.tar.bz2
, remplacez
simplement version par la version des sources du noyau installé.
Pour reproduire cela (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 bruts.
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
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
.
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.
GDM n'ajoutera pas -nolisten tcp s'il trouve -query ou -indirect sur la ligne de commande car cela ne pourrait pas fonctionner.
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
.
Une liste des serveurs et démons prenant ces protocoles en charge dans Debian peut être récupérée avec :
$ apt-cache search pop3-server $ apt-cache search imap-server
Notez que selon la version de BIND, l'option -g risque de ne pas être disponible, en particulier si vous utilisez bind9 avec Sarge (version 9.2.4).
Cette configuration n'a pas encore été essayée pour les nouvelles versions de BIND.
Sauf si vous utilisez l'option instdir lors de l'appel à
dpkg
mais alors la prison chroot peut être un petit peu plus
complexe.
Elle essaie de les faire fonctionner avec le minimum de droits, y compris exécuter les démons avec leur propre utilisateur au lieu de les exécuter en tant que superutilisateur.
Disponible depuis le noyau 2.4 (qui était le noyau par défaut de
Debian 3.0). Les versions de noyau précédentes (2.2, disponibles dans
les versions encore plus anciennes de Debian) utilisaient
ipchains
. La principale différence entre ipchains
et iptables
est que ce dernier est basé sur une inspection
des paquets en fonction de l'état (stateful packet inspection) qui
fournit des configurations de filtrage plus sécurisées (et plus faciles à
construire). Les distributions Debian plus anciennes (qui ne sont plus prises
en charge) utilisant un noyau 2.0 ont besoin du correctif de noyau
correspondant.
À la différence des pare-feu 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
(consultez le module propriétaire (owner) dans la page de manuel
iptables(8)
).
Des traductions sont disponibles jusqu'en dix langues.
Le questionnaire de
compétence
complet est disponible au CVE.
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 certificat a probablement eu un impact sur les mises à jour de sécurité de Microsoft Windows.
Les versions plus anciennes, comme Debian 3.1 Sarge peuvent utiliser cette fonctionnalité en utilisant les versions rétroportées de cet outil de gestion de paquets.
Jusqu'à ce qu'un mécanisme automatique ne soit développé.
D'un point de vue technique, c'est une signature ASCII-armored détachée.
Ou ayant empoisonné le DNS, ou usurpant le serveur, ou ayant remplacé le fichier sur le miroir utilisé, etc.
« ziyi » est le nom de l'outil utilisé pour signer sur les
serveurs Debian, le nom vient du nom d'une actrice chinoise
.
Toutes les clefs de dépôt apt ne sont pas encore signées par une autre clef. Peut-être que la personne qui a mis en place le dépôt n'a pas d'autre clef, ou peut-être que ça ne lui plaît pas de signer une telle clef de rôle avec sa clef principale. Pour des renseignements au sujet de la mise en place d'une clef de dépôt, consultez Vérification de distribution pour les sources non Debian, Section 7.5.4.
Soit parce que vous utilisez la version stable Sarge ou une version plus ancienne, soit parce que vous ne voulez pas utiliser la dernière version d'apt, bien que nous apprécierions qu'elle soit testée
Certains d'entre eux sont fournis en installant le paquet
harden-remoteaudit
.
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 depuis le dépôt des
responsables :
deb http://people.debian.org/~zugschlus/clamav-data/ / deb-src http://people.debian.org/~zugschlus/clamav-data/ /
Un paquet nommé f-prot-installer
est en fait un programme
d'installation qui téléchargera le logiciel F-prot
pour
l'installer sur le système. F-prot lui-même n'est pas libre, mais
il est gratuit pour l'utilisation personnelle.
Pour plus d'exemples sur la façon de configurer gnupg
, consultez
/usr/share/doc/mutt/examples/gpg.rc
.
Plusieurs discussions à propos de ces inconvénients ont déjà eu lieu comme
http://lists.debian.org/debian-mentors/2004/10/msg00338.html
et http://lists.debian.org/debian-devel/2004/05/msg01156.html
.
Cela pourrait éventuellement être introduit en tant que
dh_adduser
dans debhelper. Consultez les bogues nº 81967
, nº 291177
et nº 118787
.
Vous pouvez même fournir une politique SELinux pour cela.
Vous pourriez aussi utiliser l'option --quiet (-q)
pour réduire la sortie d'apt-get
, ce qui évitera la génération
de message si aucun paquet n'est installé.
Remarquez que certains paquets pourraient ne pas utiliser
debconf
et les mises à jour seront bloquées car les paquets
attendront une réponse de l'administrateur pendant la configuration.
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 mis par Debian pour publier une nouvelle version stable de sa distribution.
Une façon aisée de faire cela est d'utiliser un CD autonome (Live CD), comme
Knoppix Std
contenant à
la fois les outils d'intégrité de fichier et la base de donnée du système.
28 fonctionnalités existent, y compris : 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 le noyau.
Vous n'avez pas besoin d'installer lcap
pour faire cela, mais
c'est plus facile que de configurer /proc/sys/kernel/cap-bound
soi-même.
Vous utiliserez généralement un pare-feu pont pour que le pare-feu lui-même ne soit pas détectable, consultez Configuration d'un pare-feu pont, Annexe D.
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.
En fait, c'est l'outil utilisé pour construire les CD pour le projet Gibraltar
(un pare-feu sur un CD
autonome basé sur la distribution Debian).
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 Polska
(Pologne), RU-CERT
(Russie), SI-CERT
(Slovénie) IRIS-CERT
(Espagne), SWITCH-CERT
(Suisse), TWCERT/CC
(Taïwan) et CERT/CC
(États-Unis).
Faites très attention si vous utilisez chroot
, car si le
programme utilise une faille de sécurité au niveau du noyau afin d'accroître
ses droits, il pourrait tout de même réussir à compromettre le système.
Par exemple, à partir de certaines données, Windows NT semblerait plus
sûr que Linux, ce qui est une assertion discutable. Après tout, les
distributions Linux fournissent habituellement beaucoup plus d'applications par
rapport à Windows NT de Microsoft. Ces problèmes de failles
comptabilisées sont mieux décrits dans Pourquoi des logiciels
libres ? Regardez les chiffres !
de David A. Wheeler.
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électionner des profils de sécurité ou en utilisant des assistants pour configurer des pare-feu personnels.
Notez que c'est de la « sécurité par l'obscurité » et ne vaudra probablement pas l'effort à long terme.
Prenez garde, car cela parcourt tout le système. Si vous avez beaucoup de disques et partitions, vous pourriez réduire sa portée.
La publication des
archives de la liste debian-private
a cependant été votée en
2005, ce qui pourrait rendre certains messages publiques à l'avenir.
Typiquement les paquets nécessaires seront installés par l'intermédiaire des dépendances.
Il est aussi disponible au téléchargement depuis http://www.cert.org/kb/acid/
,
http://acidlab.sourceforge.net
et http://www.andrew.cmu.edu/~rdanyliw/snort/
.
Depuis la version 9.2.1-5. C'est-à-dire depuis Debian Sarge.
Par exemple knockd. Sinon, il est possible d'ouvrir une autre console et forcer le système à confirmer que quelqu'un est présent de l'autre côté, et réinitialiser la chaîne de pare-feu en absence de confirmation. Le script de test suivant pourrait servir :
#!/bin/bash while true; do read -n 1 -p "Y a-t-il quelqu'un ? " -t 30 ayt if [ -z "$ayt" ] ; then break fi done # Réinitialiser la chaîne de pare-feu, l'utilisateur n'est pas disponible echo echo "Réinitialisation de la chaîne de pare-feu" iptables -F iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT exit 1
Bien sûr, toutes les portes dérobées devraient être désactivées avant de placer le système en production.
L'option debug permet d'envoyer la progression du module à la facilité authpriv.notice.
Vous pouvez créer un environnement bash très limité avc les définitions
Python suivante pour makejail, en créant simplement le répertoire
/var/chroots/users/truc
et un fichier bash.py
avec le
contenu suivant :
chroot="/var/chroots/users/truc" cleanJailFirst=1 testCommandsInsideJail=["bash ls"]
Exécuter ensuite makejail bash.py pour créer l'environnement de
l'utilisateur en /var/chroots/users/truc
. Pour tester
l'environnement, exécuter :
# chroot /var/chroots/users/truc/ ls bin dev etc lib proc sbin usr
.
Dans certains cas, les périphériques /dev/ptmx
et
/dev/pty*
et le sous-répertoire /dev/pts/
.
Exécuter MAKEDEV dans le répertoire /dev
de l'environnement
chrooté devrait suffire pour les créer s'ils n'existent pas. Avec les noyaux
(version 2.6) qui créent dynamiquement les fichiers de périphérique,
vous devrez créer les fichiers /dev/pts/
vous-même et leur
attribuer les droits nécessaires.
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().
Remarquez qu'il 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
modifier les fichiers /etc/passwd
ou /etc/shadow
.
Securing Debian Manual
Version: 3.13, Sun, 08 Apr 2012 02:48:09 +0000jfs@debian.org