GNU/Linux >> Linux Esercitazione >  >> Linux

kernel:disabilitare /dev/kmem e /dev/mem

C'è una presentazione di Scale 7x 2009 intitolata:Indebolimento del kernel Linux:iniezione di codice dannoso tramite /dev/mem che conteneva questi 2 proiettili.

Chi ne ha bisogno?

  • X Server (memoria video e registri di controllo)
  • DOSEmu

Da tutto ciò che ho trovato finora dalla ricerca sembrerebbe che questi 2 proiettili siano i primi per usi legittimi.

Riferimenti

  • Anthony Lineberry su /dev/mem Rootkits - LJ 8/2009 di Mick Bauer
  • Chi ha bisogno di /dev/kmem?

Vale la pena notare che anche se hai disabilitato /dev/mem e /dev/kmem quella memoria può ancora essere scaricata; dai un'occhiata a man proc per rivelare /proc/kcore; è la memoria fisica del sistema. Un ottimo toolkit forense rekall ha uno strumento che lo fa già; scarica la memoria (e /boot file) in modo che possano essere analizzati.

Di fatto, Ubuntu per impostazione predefinita disabilita /dev/kmem :

Non esiste un uso moderno di /dev/kmem più oltre agli aggressori che lo utilizzano per caricare i rootkit del kernel. CONFIG_DEVKMEM è impostato su "n". Mentre il /dev/kmem device node esiste ancora in Ubuntu 8.04 LTS fino a Ubuntu 9.04, in realtà non è collegato a nulla nel kernel.

Ubuntu non disabilita /dev/mem perché è necessario per le applicazioni.

Alcune applicazioni (Xorg) richiedono l'accesso diretto alla memoria fisica dallo spazio utente. Il file speciale /dev/mem esiste per fornire questo accesso. In passato, era possibile visualizzare e modificare la memoria del kernel da questo file se un utente malintenzionato disponeva dell'accesso root. Il CONFIG_STRICT_DEVMEM L'opzione del kernel è stata introdotta per bloccare l'accesso alla memoria non del dispositivo (originariamente chiamato CONFIG_NONPROMISC_DEVMEM ).

Come disabilitare /proc/kcore ?

Non abilitare CONFIG_PROC_KCORE durante la compilazione del kernel.

Come si disabilita /dev/mem ?

Bene, guardando oltre man mem ci fornisce alcuni dettagli su come è stato creato:

mknod -m 660 /dev/mem c 1 1
chown root:kmem /dev/mem

Dovresti essere in grado di eseguire solo rm -rf /dev/mem; puoi disabilitare durante la fase di compilazione del kernel non abilitando CONFIG_STRICT_DEVMEM .

Come disabilitare /dev/kmem ?

Assicurati che CONFIG_DEVKMEM non è abilitato alla compilazione del kernel.

Come prevenire gli attacchi di avvio a freddo?

E se potessi disabilitare /proc/kcore , /dev/mem , /dev/kmem e poi ha utilizzato una partizione di swap crittografata o non ha utilizzato affatto lo swap? Bene, la tua memoria potrebbe essere semplicemente congelata e accessibile in quel modo. Come prevenire questo attacco? Crittografi la tua RAM; come si crittografa la RAM? Non puoi. Vedi TRESOR per i dettagli.


Linux
  1. Come generare una password casuale in Linux usando /dev/random

  2. Quanto sono portatili /dev/stdin, /dev/stdout e /dev/stderr?

  3. Quando dovrei usare /dev/shm/ e quando dovrei usare /tmp/?

  4. Come posso modificare la quantità e la dimensione dei ramdisk di Linux (/dev/ram0 - /dev/ram15)?

  5. Linux:differenza tra /dev/console , /dev/tty e /dev/tty0

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

Come si scambia /dev/sda con /dev/sdb?

DD da /dev/zero a /dev/null... cosa succede realmente

È sbagliato collegare /dev/random a /dev/urandom su Linux?

echo o print /dev/stdin /dev/stdout /dev/stderr

Differenze tra /dev/sda e /dev/sda1