Un montón de lugares:
El hardware moderno tiene una amplia gama de almacenes de datos persistentes, generalmente utilizados para firmware. Es demasiado costoso enviar un dispositivo complejo como una GPU o una tarjeta de red y colocar el firmware en una máscara ROM donde pueda no se actualice, entonces tiene una causa de falla masiva recuerda. Como tal, necesita dos cosas: una ubicación grabable para ese firmware y una manera de colocar el nuevo firmware en su lugar. Esto significa que el software del sistema operativo debe poder escribir en el lugar donde está almacenado el firmware en el hardware (generalmente EEPROM).
Un buen ejemplo de esto es el estado de las modernas utilidades de actualización de BIOS / UEFI. Puede tomar una imagen UEFI y un ejecutable ejecutándose en su sistema operativo (por ejemplo, Windows), hacer clic en un botón y sus actualizaciones UEFI. ¡Sencillo! Si realiza una ingeniería inversa de cómo funcionan (lo que he hecho varias veces), se trata principalmente de un controlador de modo kernel que se carga y toma los datos de la página de la imagen UEFI dada y habla directamente con el chip UEFI utilizando out
, enviando los comandos correctos para desbloquear el flash e iniciar el proceso de actualización.
Hay algunas protecciones, por supuesto. La mayoría de las imágenes de BIOS / UEFI no se cargarán a menos que estén firmadas por el proveedor. Por supuesto, un atacante lo suficientemente avanzado podría robarle la clave de firma al vendedor, pero eso va en las teorías de conspiración y los actores de amenaza divina, que simplemente no son realistas para pelear en casi cualquier escenario. Los motores de administración como IME están diseñados para tener ciertas protecciones que impiden el acceso a sus secciones de memoria incluso con el código ring0, pero las investigaciones han demostrado que existen muchos errores y muchas debilidades.
Entonces, todo está jodido, ¿verdad? Pues sí y no. Es posible colocar rootkits en hardware, pero también es increíblemente difícil. Cada computadora individual tiene tal variación en las versiones de hardware y firmware que es imposible construir un rootkit genérico para la mayoría de las cosas. No puedes obtener un BIOS de Asus genérico y transferirlo a cualquier placa; lo mataras Necesitará crear un rootkit para cada tipo de placa por separado, a veces hasta el rango de revisión correcto. También es un área de seguridad que involucra una gran cantidad de conocimiento de dominios cruzados, muy al fondo del hardware y los aspectos operativos de bajo nivel de las plataformas de computación modernas, junto con la seguridad sólida y el conocimiento criptográfico, por lo que no hay muchas personas capaces.
¿Es probable que te apunten? No.
¿Es probable que se infecte con un rootkit residente en BIOS / UEFI / SMM / GPU / NIC? No.
Las complejidades y variaciones involucradas son demasiado grandes para que el usuario promedio tenga que preocuparse realmente por ello. Incluso desde una perspectiva económica, estas cosas requieren una cantidad excesiva de habilidad, esfuerzo y dinero para construirlas, por lo que quemarlas en el malware del consumidor es una estupidez. Este tipo de amenazas son tan específicas que solo pertenecen realmente al modelo de amenaza del estado-nación.