¿Por qué CrowdStrike provocó la pantalla azul de Windows?

David William Plummer, un ex ingeniero de software de Microsoft que desarrolló el Administrador de tareas de Windows, publicó un video que describe cómo la actualización de CrowdStrike podría haber provocado que Windows se detuviera.

Describió CrowdStrike Falcon como un antimalware para servidores Windows, que “detecta proactivamente nuevos ataques” y analiza el comportamiento de las aplicaciones. Para hacer esto, CrowdStrike debe ejecutarse como un controlador de dispositivo del kernel.

Los controladores de dispositivos del kernel suelen proporcionar una forma de abstraer el hardware, como las tarjetas gráficas, de las aplicaciones. Cuando se ejecutan, generalmente tienen acceso completo a la computadora y al sistema operativo y, en la terminología del sistema operativo, se dice que se ejecutan en “Ring Zero”. Esto es diferente al código de la aplicación, que los usuarios ejecutan en el espacio de usuario del sistema operativo conocido como “Ring One”.

La diferencia, como señala Plummer, es que cuando una aplicación de usuario falla, nada más en la computadora debería verse afectado. Sin embargo, un fallo en el código que se ejecuta en Ring Zero se considera tan grave que el sistema operativo se detiene inmediatamente, lo que en Windows provoca la llamada pantalla azul de la muerte.

“Aunque no hay ningún dispositivo de hardware con el que realmente esté hablando, al escribir el código como un controlador de dispositivo, CrowdStrike vive en el kernel Ring Zero y tiene acceso completo y sin restricciones a las estructuras de datos del sistema y a los servicios que CrowdStrike cree que necesita. hacer su trabajo”, dijo Plummer.

Controladores de dispositivos certificados

Plummer señaló que Microsoft, y probablemente también CrowdStrike, son conscientes de lo que está en juego cuando el software ejecuta código en modo kernel, y agregó: “Es por eso que Microsoft ofrece el WHQL [Windows Hardware Quality Labs] Certificación.”

Según Plummer, la certificación implica que los proveedores de software de controladores de dispositivos prueben su código en varias plataformas y configuraciones de sistema. Luego, el código es firmado digitalmente por Microsoft, que certifica que es compatible con el sistema operativo Windows. Plummer dijo que el proceso de certificación significa que los usuarios de Windows pueden estar razonablemente seguros de que el software del controlador es sólido y confiable.

La certificación es demasiado lenta para garantizar que la protección antimalware como CrowdStrike se publique como actualizaciones de software cada vez que hay una nueva amenaza. Plummer cree que es más probable que CrowdStrike publique con frecuencia un archivo de definición procesado por su controlador del kernel de Windows. Esto evita el proceso de certificación del controlador de dispositivo WHQL y significa que los usuarios tienen acceso a la protección más reciente.

“Quizás ya se pueda ver el problema”, añadió. “Especulemos por un momento que el archivo de definición dinámica de CrowdStrike no es simplemente una definición de malware sino un programa completo escrito en pseudocódigo que luego el controlador puede ejecutar”.

Dijo que esto permitiría al controlador del dispositivo de CrowdStrike ejecutar el archivo de definición como código que se ejecuta dentro del kernel de Windows en Ring Zero, aunque la actualización en sí nunca haya sido firmada. “Código p ejecutivo [pseudocode] en el núcleo es, en el mejor de los casos, arriesgado y, en el peor, causa problemas”, afirmó Plummer.

Al observar los volcados de memoria publicados en X (anteriormente Twitter), Plummer dijo que una “referencia de puntero nulo” provocó que el controlador del dispositivo CrowdStrike cargara un archivo vacío que contenía ceros, en lugar del pseudocódigo real.

“No sabemos cómo ni por qué sucedió esto, pero lo que sabemos es que el controlador CrowdStrike que maneja y procesa estas actualizaciones no es muy resistente y parece tener una verificación de errores y una validación de parámetros inadecuadas”, agregó.

Estos son necesarios para garantizar que los valores de datos requeridos por el software sean válidos y buenos. Si no es así, el error no debería causar que todo el sistema colapse, dijo Plummer.

Si bien a menudo es posible reiniciar Windows desde el último “buen estado” conocido, lo que puede eliminar los controladores de kernel maliciosos que impiden que el sistema operativo se inicie, Plummer dijo que la situación empeoró por el hecho de que CrowdStrike está marcado como un sistema de arranque. inicie el controlador, lo que significa que es necesario para que Windows se inicie correctamente.

Si bien es demasiado pronto para entender cómo garantizar que esto nunca vuelva a suceder, está claro que existen serias limitaciones en la certificación WHQL de Microsoft que permitió a CrowdStrike instalar una actualización antimalware que tuvo un impacto tan devastador en toda la comunidad de Windows.

Exit mobile version