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.