Como veterano de 20 años en la industria de la tecnología, he visto una cantidad considerable de accidentes técnicos.

Cuando escuché que CrowdStrike estaba vinculado a la reciente caída de Windows, inmediatamente pensé en mi experiencia desarrollando controladores de Windows para BlackBerry hace 15 años. En ese momento, traté con innumerables pantallas azules y bloqueos, así que tengo una buena sensación de lo que salió mal.

El problema del viernes pasado es complejo y puede que necesite ser aclarado incluso para aquellos que están familiarizados con el desarrollo de software, pero no con controladores de Windows o espacio de núcleo.

El propósito de este artículo es simplificar la situación, incluso para aquellos sin antecedentes técnicos o incluso para los abuelos.

Supongamos que la máquina de Windows es tu casa

Espacio de usuario

Para entender mejor, supongamos que tu computadora con Windows es tu casa. Imagina las habitaciones de tu casa, es decir, la cocina, la sala de estar y el dormitorio. Estos son los lugares donde realizas actividades diarias, cocinas, miras televisión y te relajas. Estas son áreas visibles y accesibles que interactúan directamente con la funcionalidad de la casa.

Llamamos a esta parte de tu hogar espacio de usuario. Este también es el espacio de la computadora con el que ves e interactúas. Hay cosas que se muestran en la pantalla y que señalas con el ratón. Esto también se llama el espacio de usuario de Windows.

Espacio de núcleo

Tu casa también tiene un mundo oculto. Los sistemas detrás de escena incluyen la infraestructura, la plomería, la electricidad y la calefacción. No ves estos sistemas mientras realizas tus actividades diarias, pero son esenciales para garantizar que todo funcione correctamente. Ellos manejan funciones críticas como el suministro de agua y electricidad, así como el mantenimiento de la operación de la vivienda.

Esta es la infraestructura interna de tu casa. En la computadora, esta área se llama espacio de núcleo.

CrowdStrike es tu nuevo termostato inteligente

Considera agregar nuevas funcionalidades a tu hogar, como la instalación de un termostato inteligente. Esta última adición no era parte de la casa original, pero para funcionar correctamente, necesita conectarse y colaborar con el sistema de calefacción y refrigeración existente (infraestructura interna).

Monitorea la temperatura de la casa y trabaja eficazmente en colaboración con la infraestructura existente. Como el usuario, el propietario o el constructor original de la casa no construyeron este componente (termostato), se le llama aplicación de terceros.

De manera similar, CrowdStrike construyó una aplicación llamada Falcon que se ejecuta en máquinas Windows y monitorea la seguridad. Para hacerlo correctamente, necesita conectarse al espacio de núcleo/infrastuctura interna de la computadora.

Dado que Falcon no fue creado por Microsoft o el usuario, se le llama aplicación de terceros.

Proceso de autenticación

Cuando empresas como Google construyen un termostato para el hogar (NEST), deben demostrar que el producto se integra con el sistema de calefacción y refrigeración del cliente antes de venderlo.

Ahora, supongamos que compras el termostato Nest, lo llevas a casa y lo instalas en el sistema de calefacción y refrigeración. El Nest ahora comienza a monitorear la temperatura de tu hogar y a comunicar cuándo debe cambiar a los sistemas de calefacción y refrigeración.

De manera similar, puedes comprar Falcon en CrowdStrike e instalarlo en tu computadora. Esto te permite monitorear la seguridad de la computadora y hacer cosas para proteger la computadora en la infraestructura interna que reside en el espacio de núcleo de la computadora.

Las aplicaciones en máquinas Windows que acceden al espacio de núcleo deben ser certificadas por Windows antes de ejecutarse en la máquina. Si no están certificadas, no pueden ejecutarse. Sin embargo, a veces se descubren grandes riesgos de seguridad que requieren actualizaciones de Falcon.

Las empresas pueden dividir las aplicaciones en dos partes. Una que funciona en el espacio de núcleo y otra que solo funciona en el espacio de usuario. Las partes del espacio de núcleo requieren certificación, pero las partes del espacio de usuario no.

Por lo tanto, si hay un nuevo ataque, se puede enviar rápidamente información al espacio de usuario y se puede instruir a la parte del espacio de núcleo de la aplicación para que lo revise. Luego, se puede usar esa información en el espacio de núcleo para protegerse del ataque. Además, como no era necesario actualizar el espacio de núcleo, no era necesario certificarlo.

Sin embargo, y aquí está lo grande. Deben tener cuidado. Actualizar la información del espacio de usuario y confundir accidentalmente la aplicación en el espacio de núcleo puede hacer que las cosas se descontrolen. Por lo tanto, si están haciendo esto, deben probarlo adecuadamente.

¿Sabes a dónde voy? …..

¿Cómo es que todo salió mal?

Con el nuevo termostato inteligente Nest, puedes establecer la temperatura desde tu teléfono y controlar directamente el sistema de calefacción y refrigeración de tu hogar desde el panel de la pared y el panel de tu smartphone.

Ahora, supongamos que Google lanza una actualización de software para Nest. Esta actualización mejora la aplicación móvil que usas para establecer la temperatura, pero no incluye cambios en la parte del termostato que controla directamente el sistema de calefacción y refrigeración. Recuerda que deben certificar el lado de la infraestructura, por lo que no quieren hacer cambios frecuentes o actualizaciones más rápidas. Es posible que solo la aplicación móvil necesite ser construida de manera que requiera cambios, pero el lado de la infraestructura debería funcionar.

Aquí es donde las cosas no funcionan. La aplicación actualizada introduce nuevas funciones o configuraciones que deberían funcionar en el termostato. Sin embargo, el sistema de control central del termostato que gestiona la calefacción y refrigeración no manejó los cambios como se esperaba. Los desarrolladores de software olvidaron probar este cambio en la infraestructura existente y no se dieron cuenta de que también se necesitaban cambios para que funcionara correctamente.

Por lo tanto, al establecer la temperatura con la nueva aplicación, los datos actualizados se envían al sistema de control del termostato. Sin embargo, como el sistema central no se actualizó, no pudo interpretar o procesar correctamente estos nuevos datos. Esta discrepancia hace que el termostato envíe señales incorrectas al sistema de calefacción y refrigeración. Como resultado, la calefacción puede encenderse cuando ya está caliente o el sistema de refrigeración puede no encenderse cuando se calienta, lo que resulta incómodo en la casa.

En este caso, la única forma de arreglar el sistema sería quitarlo de la pared, conectar la pantalla a una computadora, actualizar el software y luego volver a conectarlo a la pared.

Falcon es algo así como un termostato inteligente en el contexto de una máquina Windows. Hay un componente o "controlador" que opera en el espacio de núcleo (como el sistema de control central del termostato) y otro componente en el espacio de usuario (como la aplicación móvil que usas). Si CrowdStrike actualiza solo el componente del espacio de usuario sin actualizar el controlador del espacio de núcleo, el sistema puede experimentar problemas.

Cuando el controlador del espacio de núcleo de Falcon extrae datos del componente del espacio de usuario actualizado, la incompatibilidad puede causar fallos graves y provocar una pantalla azul de la muerte (BSOD). Arreglar esto implica reiniciar manualmente la computadora en modo seguro (como arreglar manualmente el termostato) y eliminar el controlador problemático para reiniciar la computadora con éxito.

Esto es exactamente lo que sucedió el viernes 19 de julio. La actualización de la aplicación Falcon de CrowdStrike causó un fallo grave en el espacio de núcleo, lo que resultó en pantallas azules en todas las máquinas Windows donde estaba instalada.

¡Imagina romper el control de temperatura de todas las casas que usan Nest! Al igual que el Nest, Falcon no rompió la temperatura de todas las casas. Falcon solo rompió las computadoras con Windows que estaban en funcionamiento, no fue una caída de Windows, sino una caída de CrowdStrike. Falcon también se ejecutaba en máquinas Mac y Linux, pero esta parte del código funcionaba de manera diferente y no se vio afectada.

En resumen, actualizar la aplicación del termostato inteligente sin actualizar el sistema de control central puede llevar a problemas en el control de temperatura de la casa. Una actualización incompleta del controlador del espacio de núcleo puede causar problemas graves en las máquinas Windows.

Este ejemplo ilustra por qué es esencial mantener todas las partes del sistema, ya sea un termostato o una computadora, para asegurar un funcionamiento fluido.

¿Necesitas más detalles?

Si deseas investigar este problema más a fondo, te recomiendo encarecidamente este video.

Deseo lo mejor para el equipo de TI que está trabajando para resolver este problema y para los desarrolladores de Crowdstrike que cometieron errores. Todos somos humanos y todos cometemos errores. Ojalá no solo CrowdStrike, sino también muchos otros aprendan algunas lecciones valiosas de este desafortunado incidente.

Usuarios a los que les gustó