Il y a un jeu de diapositives de Scale 7x 2009 intitulé :Undermining the Linux Kernel:Malicious Code Injection via /dev/mem qui contient ces 2 puces.
Qui a besoin de ça ?
- Serveur X (mémoire vidéo et registres de contrôle)
- DOSEmu
D'après tout ce que j'ai trouvé dans la recherche jusqu'à présent, il semblerait que ces 2 balles soient les premières pour les utilisations légitimes.
Références
- Anthony Lineberry sur les rootkits /dev/mem - LJ 8/2009 par Mick Bauer
- Qui a besoin de /dev/kmem ?
Il convient de noter que même si vous avez désactivé /dev/mem
et /dev/kmem
cette mémoire peut toujours être vidée ; jetez un oeil à man proc
révéler /proc/kcore
; c'est la mémoire physique du système. Une très bonne boîte à outils médico-légale rekall a un outil qui le fait déjà; il vide la mémoire (et /boot
fichiers) afin qu'ils puissent être analysés.
En fait, Ubuntu désactive par défaut /dev/kmem
:
Il n'y a pas d'utilisation moderne de
/dev/kmem
plus au-delà des attaquants qui l'utilisent pour charger les rootkits du noyau.CONFIG_DEVKMEM
est réglé sur "n". Alors que le/dev/kmem
périphérique existe toujours dans Ubuntu 8.04 LTS à Ubuntu 9.04, il n'est en fait attaché à rien dans le noyau.
Ubuntu ne désactive pas /dev/mem
car il est nécessaire aux applications.
Certaines applications (Xorg) ont besoin d'un accès direct à la mémoire physique depuis l'espace utilisateur. Le fichier spécial
/dev/mem
existe pour fournir cet accès. Dans le passé, il était possible d'afficher et de modifier la mémoire du noyau à partir de ce fichier si un attaquant disposait d'un accès root. LeCONFIG_STRICT_DEVMEM
l'option du noyau a été introduite pour bloquer l'accès à la mémoire non périphérique (initialement nomméCONFIG_NONPROMISC_DEVMEM
).
Comment désactiver /proc/kcore
?
Ne pas activer CONFIG_PROC_KCORE
lors de la construction du noyau.
Comment désactiver /dev/mem
?
Eh bien, en regardant par-dessus man mem
nous donne quelques détails sur la façon dont il a été créé :
mknod -m 660 /dev/mem c 1 1
chown root:kmem /dev/mem
Vous devriez pouvoir juste rm -rf /dev/mem
; vous pouvez désactiver pendant la phase de construction du noyau en n'activant pas CONFIG_STRICT_DEVMEM
.
Comment désactiver /dev/kmem
?
Assurez-vous que CONFIG_DEVKMEM
n'est pas activé lors de la construction du noyau.
Comment empêcher les attaques par démarrage à froid ?
Et si je pouvais désactiver /proc/kcore
, /dev/mem
, /dev/kmem
puis utilisé une partition d'échange cryptée ou n'a pas du tout utilisé d'échange ? Eh bien, votre mémoire pourrait simplement être gelée et accessible de cette façon. Comment empêcher cette attaque ? Vous cryptez votre RAM; comment chiffrez-vous votre RAM? Vous ne pouvez pas. Voir TRESOR pour plus de détails.