GNU/Linux >> Tutoriales Linux >  >> Linux

kernel:deshabilitar /dev/kmem y /dev/mem

Hay una presentación de diapositivas de Scale 7x 2009 titulada:Socavando el kernel de Linux:Inyección de código malicioso a través de /dev/mem que contenía estas 2 viñetas.

¿Quién necesita esto?

  • Servidor X (memoria de video y registros de control)
  • DOSEmu

De todo lo que he encontrado en la búsqueda hasta ahora, parece que estas 2 viñetas son las favoritas para usos legítimos.

Referencias

  • Anthony Lineberry en /dev/mem Rootkits - LJ 8/2009 por Mick Bauer
  • ¿Quién necesita /dev/kmem?

Vale la pena señalar que incluso si deshabilitó /dev/mem y /dev/kmem esa memoria aún se puede volcar; echa un vistazo a man proc revelar /proc/kcore; es la memoria física del sistema. Un muy buen kit de herramientas forenses rekall tiene una herramienta que ya hace esto; vuelca la memoria (y /boot archivos) para que puedan ser analizados.

De hecho, Ubuntu deshabilita por defecto /dev/kmem :

No hay un uso moderno de /dev/kmem más allá de que los atacantes lo usen para cargar rootkits del kernel. CONFIG_DEVKMEM se establece en "n". Mientras que el /dev/kmem el nodo del dispositivo todavía existe en Ubuntu 8.04 LTS hasta Ubuntu 9.04, en realidad no está conectado a nada en el kernel.

Ubuntu no deshabilita /dev/mem porque lo necesitan las aplicaciones.

Algunas aplicaciones (Xorg) necesitan acceso directo a la memoria física desde el espacio del usuario. El archivo especial /dev/mem existe para proporcionar este acceso. En el pasado, era posible ver y cambiar la memoria del kernel desde este archivo si un atacante tenía acceso de root. El CONFIG_STRICT_DEVMEM Se introdujo la opción kernel para bloquear el acceso a la memoria que no sea del dispositivo (originalmente llamado CONFIG_NONPROMISC_DEVMEM ).

Cómo deshabilitar /proc/kcore ?

No habilitar CONFIG_PROC_KCORE al construir el kernel.

¿Cómo deshabilitas /dev/mem? ?

Bueno, revisando man mem nos da algunos detalles sobre cómo se crea:

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

Debería poder simplemente rm -rf /dev/mem; puede deshabilitar durante la fase de compilación del kernel al no habilitar CONFIG_STRICT_DEVMEM .

Cómo deshabilitar /dev/kmem ?

Asegúrese de que CONFIG_DEVKMEM no está habilitado en la compilación del kernel.

¿Cómo prevenir los ataques de arranque en frío?

¿Y si pudiera deshabilitar /proc/kcore? , /dev/mem , /dev/kmem y luego usó una partición de intercambio encriptada o no usó intercambio en absoluto? Bueno, tu memoria podría congelarse y acceder de esa manera. ¿Cómo se previene este ataque? Encriptas tu RAM; ¿Cómo encriptas tu RAM? no puedes Ver TRESOR para más detalles.


Linux
  1. Cómo generar una contraseña aleatoria en Linux usando /dev/random

  2. Linux:¿Diferencia entre /dev/console, /dev/tty y /dev/tty0?

  3. ¿Qué son los archivos /dev/zero y /dev/null en Linux?

  4. ¿Cómo codificar en base64 /dev/random o /dev/urandom?

  5. ¿Cuándo debo usar /dev/shm/ y cuándo debo usar /tmp/?

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

¿Cómo puedo cambiar la cantidad y el tamaño de los ramdisks de Linux (/dev/ram0 - /dev/ram15)?

Cómo usa Linux /dev/tty y /dev/tty0

hacer eco o imprimir /dev/stdin /dev/stdout /dev/stderr

¿Por qué se requieren < o > para usar /dev/tcp?

Diferencias entre /dev/sda y /dev/sda1