Proteger el proceso de arranque de Windows
Windows tiene muchas características para ayudarle a protegerse del malware y hace un trabajo increíblemente bueno. Excepto en aplicaciones que las empresas desarrollan y usan internamente, todas las aplicaciones de Microsoft Store deben cumplir una serie de requisitos para obtener la certificación e incluirse en Microsoft Store. Este proceso de certificación examina varios criterios, como la seguridad, y constituye un medio eficaz para impedir que malware entre en Microsoft Store. Incluso si una aplicación malintencionada pasa, Windows incluye una serie de características de seguridad que pueden mitigar el efecto. Por ejemplo, las aplicaciones de Microsoft Store están en espacios aislados y no tienen los privilegios necesarios para acceder a datos de usuario o cambiar la configuración del sistema.
Windows también tiene varios niveles de protección para aplicaciones de escritorio y datos. Antivirus de Windows Defender usa la detección en tiempo real con tecnología de nube para identificar y poner en cuarentena las aplicaciones que se sabe que son malintencionadas. SmartScreen de Windows Defender advierte a los usuarios antes de permitirles ejecutar una aplicación poco confiable, incluso si se reconoce como malware. Antes de que una aplicación pueda cambiar la configuración del sistema, el usuario tendría que conceder privilegios de administración de la aplicación mediante el Control de cuentas de usuario.
Estos componentes son solo algunas de las maneras en que Windows le protege frente al malware. Sin embargo, esas características de seguridad solo te protegen después de que se inicie Windows. El malware moderno, y los bootkits en concreto, son capaces de iniciarse antes de Windows, omitir completamente la seguridad del sistema operativo y permanecer ocultos.
La ejecución de Windows 10 o Windows 11 en un equipo con la compatibilidad con la interfaz de firmware extensible unificada (UEFI) garantiza que el arranque seguro protege el equipo contra malware desde el momento en que se enciende. Esta protección continúa hasta que el software antimalware toma el control. Si, por casualidad, el malware se las arregla para infectar su PC, no será capaz de permanecer oculto. El arranque de confianza puede comprobar la integridad del sistema en la infraestructura de forma que el malware no pueda enmascararse. Incluso para equipos sin UEFI, Windows ofrece seguridad de inicio mejorada en comparación con versiones anteriores de Windows.
Para empezar, echemos un vistazo más de cerca a los rootkits y su funcionamiento. A continuación, ilustraremos cómo Windows puede garantizar su protección.
La amenaza: rootkits
Los rootkits son un tipo sofisticado y peligroso de malware. Se ejecutan en modo kernel, con los mismos privilegios que el sistema operativo. Dado que los rootkits tienen los mismos derechos que el sistema operativo y comienzan antes, pueden ocultarse completamente a sí mismos y a otras aplicaciones. A menudo, los rootkits forman parte de un conjunto completo de software malintencionado que puede burlar los inicios de sesión locales, grabar las contraseñas y pulsaciones de teclas, transferir archivos privados y capturar datos criptográficos.
Diferentes tipos de rootkits se cargan durante distintas fases del proceso de inicio:
- Rootkits de firmware. Estos kits sobrescriben el firmware del sistema básico de entrada/salida del equipo u otro hardware para que el rootkit pueda iniciarse antes de Windows.
- Bootkits. Estos kits reemplazan al cargador de arranque del sistema operativo (la pequeña pieza de software que inicia el sistema operativo) para que el equipo cargue el bootkit antes del sistema operativo.
- Rootkits de kernel. Estos kits reemplazan una parte del kernel del sistema operativo para que el rootkit pueda iniciarse automáticamente cuando se cargue el sistema operativo.
- Rootkits de controlador. Estos kits se hacen pasar por uno de los controladores de confianza que Windows usa para comunicarse con el hardware del equipo.
Las contramedidas
Windows admite cuatro características para ayudar a evitar que los rootkits y bootkits se carguen durante el proceso de inicio:
- Arranque seguro. Los equipos con firmware UEFI y un módulo de plataforma segura (TPM) se pueden configurar para cargar solo cargadores de arranque de sistema operativo de confianza.
- Arranque de confianza. Windows comprueba la integridad de cada componente del proceso de inicio antes de cargarlo.
- Antimalware de inicio temprano (ELAM). ELAM prueba todos los controladores antes de que se carguen e impide que se carguen controladores no aprobados.
- Arranque medido. El firmware del equipo registra el proceso de arranque y Windows puede enviarlo a un servidor de confianza que pueda evaluar objetivamente el estado del equipo.
En la figura 1 se muestra el proceso de inicio de Windows.
Figura 1. El arranque seguro, arranque de confianza y arranque medido bloquean el malware en todas las fases:
El arranque seguro y arranque medido solo son posibles en equipos con UEFI 2.3.1 y un chip TPM. Afortunadamente, todos los equipos con Windows 10 y Windows 11 que cumplen los requisitos del Programa de compatibilidad de hardware de Windows tienen estos componentes y muchos equipos diseñados para versiones anteriores de Windows también los tienen.
En las secciones siguientes se describen el arranque seguro, arranque de confianza, ELAM y arranque medido.
Arranque seguro
Cuando se inicia un equipo, encuentra por primera vez el cargador de arranque del sistema operativo. Los equipos sin arranque seguro ejecutan cualquier cargador de arranque que esté en el disco duro del equipo. No hay manera de que el equipo indique si es un sistema operativo de confianza o un rootkit.
Cuando un equipo con UEFI inicia, primero comprueba que el firmware está firmado digitalmente, lo que reduce el riesgo de rootkits de firmware. Si el arranque seguro está habilitado, el firmware examina la firma digital del cargador de arranque para comprobar que no se ha modificado. Si el cargador de arranque está intacto, el firmware lo inicia solo si se cumple alguna de las siguientes condiciones:
- El cargador de arranque se firmó con un certificado de confianza. En el caso de los equipos certificados para Windows, el certificado de Microsoft es de confianza.
- El usuario ha aprobado manualmente la firma digital del cargador de arranque. Esta acción permite al usuario cargar sistemas operativos que no son de Microsoft.
Todos los equipos con Windows certificados basados en x86 deben cumplir varios requisitos relacionados con el arranque seguro:
- Deben tener el arranque seguro habilitado de manera predeterminada.
- Deben confiar en el certificado de Microsoft (y, por tanto, cualquier cargador de arranque que Microsoft haya firmado).
- Deben permitir al usuario configurar el arranque seguro para que confíe en otros cargadores de arranque.
- Deben permitir al usuario deshabilitar completamente el arranque seguro.
Estos requisitos le ayudan a protegerse de los rootkits, a la vez que le permiten ejecutar cualquier sistema operativo que desee. De hecho, tienes tres opciones para ejecutar sistemas operativos que no sean de Microsoft:
- Use un sistema operativo con un cargador de arranque certificado. Dado que todos los equipos certificados para Windows deben confiar en el certificado de Microsoft, Microsoft ofrece un servicio para analizar y firmar cualquier cargador de arranque que no sea de Microsoft, de modo que todos los equipos Certificados para Windows puedan confiar en él. De hecho, ya hay disponible un cargador de arranque de código abierto capaz de cargar Linux. Para comenzar el proceso de obtención de un certificado, vaya a https://partner.microsoft.com/dashboard.
- Configurar UEFI para que confíe en el cargador de arranque personalizado. Todos los equipos certificados para Windows le permiten confiar en un cargador de arranque no certificado agregando una firma a la base de datos UEFI, lo que le permite ejecutar cualquier sistema operativo, incluidos los sistemas operativos caseros.
- Desactivar el arranque seguro. Todos los equipos certificados para Windows te permiten desactivar el arranque seguro para que puedas ejecutar cualquier software. Sin embargo, esta acción no le ayuda a protegerse de bootkits.
Para evitar que el malware abuse de estas opciones, el usuario debe configurar manualmente el firmware de UEFI para que confíe en un cargador de arranque no certificado o desactivar el arranque seguro. El software no puede cambiar la configuración de arranque seguro.
El estado predeterminado de Arranque seguro tiene un amplio círculo de confianza, lo que puede dar lugar a que los clientes confíen en los componentes de arranque que tal vez no necesiten. Dado que el certificado de CA UEFI de terceros de Microsoft firma los cargadores de arranque para todas las distribuciones de Linux, confiar en la firma de CA UEFI de Terceros de Microsoft en la base de datos UEFI aumenta la superficie de ataque de los sistemas. Un cliente que solo tenía la intención de confiar y arrancar una única distribución de Linux confiará en todas las distribuciones, más que en su configuración deseada. Una vulnerabilidad en cualquiera de los cargadores de arranque expone el sistema y pone al cliente en riesgo de vulnerabilidad de seguridad para un cargador de arranque que nunca ha pensado usar, como se ve en las vulnerabilidades recientes, por ejemplo , con el cargador de arranque grub o elrootkit de nivel de firmware que afectan a los componentes de arranque. Los equipos de núcleo protegido requieren que arranque seguro esté habilitado y configurado para desconfiar de la firma de CA UEFI de Microsoft 3rd Party, de forma predeterminada, para proporcionar a los clientes la configuración más segura posible de sus equipos.
Para confiar en los sistemas operativos y arrancar, como Linux, y los componentes firmados por la firma UEFI, los equipos de núcleo protegido se pueden configurar en el menú del BIOS para agregar la firma en la base de datos UEFI siguiendo estos pasos:
- Abra el menú firmware, ya sea:
- Arranque el equipo y presione la tecla del fabricante para abrir los menús. Claves comunes usadas: Esc, Delete, F1, F2, F10, F11 o F12. En las tabletas, los botones comunes son Subir volumen o Bajar volumen. Durante el inicio, a menudo hay una pantalla que menciona la clave. Si no hay una, o si la pantalla pasa demasiado rápido para verla, compruebe el sitio del fabricante.
- O bien, si Windows ya está instalado, en la pantalla Inicio de sesión o en el menú Inicio, seleccione Power ( ) > mantenga presionada la tecla Mayús mientras selecciona Reiniciar. Seleccione Solución de problemas > opciones > avanzadas configuración de firmware ueFI.
- En el menú firmware, vaya a Arranque seguro de seguridad > y seleccione la opción para confiar en la "entidad de certificación de terceros".
- Guarde los cambios y salga.
Microsoft continúa colaborando con asociados del ecosistema de Linux e IHV para diseñar características con privilegios mínimos que le ayudarán a mantener la seguridad y a participar en la confianza solo para los publicadores y componentes en los que confía.
Al igual que la mayoría de los dispositivos móviles, los dispositivos basados en Arm, como el dispositivo Microsoft Surface RT, están diseñados para ejecutar solo Windows 8.1. Por lo tanto, el arranque seguro no se puede desactivar y no se puede cargar un sistema operativo diferente. Afortunadamente, hay un gran mercado de dispositivos de procesador arm diseñados para ejecutar otros sistemas operativos.
Arranque seguro
El arranque de confianza se hace cargo de dónde finaliza el arranque seguro. El cargador de arranque comprueba la firma digital del kernel de Windows antes de cargarlo. A su vez, el kernel de Windows comprueba todos los demás componentes del proceso de inicio de Windows, incluidos los controladores de arranque, los archivos de inicio y ELAM. Si un archivo se ha modificado, el cargador de arranque detecta el problema y se niega a cargar el componente dañado. A menudo, Windows puede reparar automáticamente el componente dañado, restaurando la integridad de Windows y permitiendo que el equipo se inicie con normalidad.
Inicio anticipado de antimalware
Dado que el arranque seguro ha protegido el cargador de arranque y el arranque de confianza ha protegido el kernel de Windows, la siguiente oportunidad de inicio de malware es la infección de un controlador de arranque que no es de Microsoft. Las aplicaciones antimalware tradicionales no se inician hasta que se han cargado los controladores de arranque, lo que da a un rootkit disfrazado de controlador la oportunidad de trabajar.
El antimalware de inicio temprano (ELAM) puede cargar un controlador antimalware de Microsoft o que no sea de Microsoft antes que todos los controladores y aplicaciones de arranque que no sean de Microsoft, continuando así la cadena de confianza establecida por Arranque seguro y Arranque de confianza. Dado que el sistema operativo aún no se ha iniciado y que Windows necesita arrancar lo antes posible, ELAM tiene una tarea sencilla: examinar todos los controladores de arranque y determinar si está en la lista de controladores de confianza. Si no es de confianza, Windows no lo carga.
Un controlador ELAM no es una solución antimalware completa; que se carga más adelante en el proceso de arranque. Windows Defender (incluido con Windows) admite ELAM, al igual que varias aplicaciones antimalware que no son de Microsoft.
Arranque medido
Si un equipo de la organización resulta infectado con un rootkit, debes saberlo. Las aplicaciones antimalware empresariales pueden notificar infecciones de malware al departamento de TI, pero eso no funciona con rootkits que ocultan su presencia. En otras palabras, no puede confiar en que el cliente le indique si está en buen estado.
Como resultado, los equipos infectados con rootkits parecen tener un estado bueno, incluso con antimalware en ejecución. Los equipos infectados se siguen conectando a la red de empresa, por lo que el rootkit obtiene acceso a una gran cantidad de datos confidenciales y se puede expandir en toda la red interna.
El arranque medido funciona con tpm y software que no es de Microsoft en Windows. Permite que un servidor de confianza de la red compruebe la integridad del proceso de inicio de Windows. El arranque medido usa el siguiente proceso:
- El firmware UEFI del equipo almacena en el TPM un hash del firmware, el cargador de arranque, los controladores de arranque y todo lo que se carga antes de la aplicación antimalware.
- Al final del proceso de inicio, Windows inicia el cliente de atestación remota que no es de Microsoft. El servidor de atestación de confianza envía al cliente una clave única.
- El TPM usa la clave única para firmar digitalmente el registro grabado por la UEFI.
- El cliente envía el registro al servidor, posiblemente con otra información de seguridad.
En función de la implementación y configuración, el servidor ahora puede determinar si el cliente está en buen estado. Puede conceder al cliente acceso a una red de cuarentena limitada o a la red completa.
En la Figura 2 se muestra el proceso de atestación remota y arranque medido.
Figura 2. El arranque medido demuestra el estado del equipo en un servidor remoto:
Windows incluye las interfaces de programación de aplicaciones para admitir el arranque medido. Sin embargo, para aprovecharlo, necesita herramientas que no sean de Microsoft para implementar un cliente de atestación remota y un servidor de atestación de confianza. Por ejemplo, consulte las siguientes herramientas de Microsoft Research:
El arranque medido usa la eficacia de UEFI, TPM y Windows para proporcionar una manera de evaluar con confianza la confiabilidad de un equipo cliente en toda la red.
Resumen
El arranque seguro, arranque de confianza y arranque medido crean una arquitectura que es fundamentalmente resistente a bootkits y rootkits. En Windows, estas características pueden eliminar el malware de nivel de kernel de la red. Con Windows, puede confiar en la integridad del sistema operativo.