GNU/Linux >> Tutoriels Linux >  >> Linux

noyau :désactiver /dev/kmem et /dev/mem

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. Le CONFIG_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.


Linux
  1. Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

  2. Quand utiliser /dev/random contre /dev/urandom ?

  3. Que sont les fichiers /dev/zero et /dev/null sous Linux

  4. Comment encoder en base64 /dev/random ou /dev/urandom ?

  5. Linux :Différence entre /dev/console , /dev/tty et /dev/tty0

tty (/dev/tty ) vs pts (/dev/pts) sous Linux

DD de /dev/zero à /dev/null...ce qui se passe réellement

Comment Linux utilise /dev/tty et /dev/tty0

Est-ce une erreur de lier /dev/random à /dev/urandom sous Linux ?

echo ou print /dev/stdin /dev/stdout /dev/stderr

Pourquoi < ou > sont-ils nécessaires pour utiliser /dev/tcp