Configuración de firmware
Escribir en el BIOS es una operación privilegiada, que solo puede realizar el superusuario. Muchos BIOS intentan evitar esto, por ejemplo, bloqueando el bit de escritura SPI y limitando la capacidad de SMM para interactuar con el BIOS. Desafortunadamente, hay tantas formas de modificar el BIOS que muchos (¿la mayoría?) Los fabricantes de firmware no bloquean adecuadamente la configuración, lo que permite que el superusuario la modifique. Se puede determinar si un sistema determinado tiene o no un BIOS vulnerable utilizando el marco CHIPSEC . Analiza el sistema en busca de errores de configuración comunes y los informa, junto con las implicaciones. Informará si todos los bits de bloqueo requeridos están configurados al inicio o no. En muchos casos, simplemente no lo son.
Esto no es necesariamente suficiente para proteger contra un atacante con acceso privilegiado. Un atacante lo suficientemente avanzado, incluso si no puede modificar el BIOS, aún puede modificar las ROM de opciones o incluso firmware del dispositivo de almacenamiento . Como mínimo, pueden dañar físicamente la computadora escribiendo repetidamente en un almacenamiento no volátil sensible a la escritura, como la NVRAM. Pero independientemente de otros riesgos restantes, el primer paso es bloquear el BIOS o, al menos, determinar si está bloqueado.
Además, las tareas privilegiadas tienen acceso a interfaces de bajo nivel en el sistema. Ha habido un aumento en investigación de seguridad de firmware últimamente, lo que ha demostrado que, incluso con todos los bloqueos correctamente configurados, la complejidad y la La dificultad en los sistemas de parches hace que los errores se generalicen. Esto puede manifestarse simplemente como formas de eludir la seguridad del firmware, o incluso formas de obtener aún más privilegios .
Arranque medido
Muchos sistemas modernos vienen con Intel BootGuard , una tecnología que permite que un conjunto de chips físicos verifique una BIOS firmada antes de iniciar. Si bien no es perfecto , intenta evitar que se ejecute un firmware sin firma, incluso si el firmware es capaz de ser modificado. Esto requiere un sistema moderno que haya sido premontado por un OEM. Si este no es el caso, se puede usar un TPM para verificar la integridad de la BIOS, alertándole si ha habido modificaciones.
BootGuard funciona firmando digitalmente el BIOS. La clave utilizada para la verificación se graba en el PCH en el momento del montaje por parte del OEM. Cuando el sistema arranca, la firma del BIOS es verificada por la clave pública. Un atacante no puede modificar esta clave pública ya que está escrita en fusibles OTP (programables una sola vez).
El TPM funciona un poco diferente. Un bit de código de solo lectura en la BIOS llamado CRTM envía una copia de la BIOS al TPM, que la contiene. Esto sucede luego con el resto de la configuración del sistema, como la configuración de inicio, las ROM opcionales y el MBR. Si todos estos hashes coinciden con el valor esperado, el TPM liberará un valor secreto que ha estado almacenando de manera segura. Este valor puede ser una clave de cifrado necesaria para finalizar el arranque, o puede ser un valor secreto que solo usted conoce, por lo que un atacante, incluso uno que puede modificar el contenido de la pantalla, no puede hacerse pasar por un TPM no sellado.
Resumen
No siempre es posible proteger por escrito su firmware, ya sea por amenazas de hardware o software. En general, si un atacante tiene un acceso local malintencionado (incluso si no es físico) a su máquina con altos privilegios, normalmente puede hacer lo que quiera. La mejor solución es evitar que obtengan altos privilegios en primer lugar. Si eso no es posible, entonces solo hay tres soluciones:
- Asegúrese de que su BIOS bloquee todos los bits requeridos, según lo determine CHIPSEC.
- Use un sistema con Intel BootGuard compatible y habilitado.
- Utilice un TPM para proporcionar un arranque medido. Esto no siempre es práctico.