Después de indagar y olisquear por ahí voy a describir lo que yo creo que pasó y causó tantos problemas en aeropuertos, hospitales, oficinas gubernamentales y otras organizaciones. También voy a reflexionar sobre cómo se puede hacer para que esto no vuelva a pasar.
Descripción de los hechos
Los equipos que tenían instalado el sistema operativo Windows y la plataforma Falcon, el 19 de julio recibieron una actualización automática desde la plataforma Cloud de Crowdstrike.
Según la web de CrowdStrike, Falcon es: “Falcon es la plataforma de CrowdStrike diseñada específicamente para detener las infracciones a través de un conjunto unificado de tecnologías entregadas desde la nube que previenen todo tipo de ataques, incluido el malware y mucho más. CrowdStrike Falcon responde a esos desafíos con una solución poderosa pero liviana que unifica el antivirus de próxima generación (NGAV), la detección y respuesta de endpoints (EDR) y la detección inteligente de amenazas cibernéticas, todo contenido en un dispositivo pequeño y único, un Sensor liviano."
Gráficamente se puede organizar de esta forma:
La actualización afectó sólo a sistemas que estaban conectados a internet, tenían instalados Windows y Falcon y aceptaron la actualización automática. Estás actualizaciones forman parte del proceder habitual de Crodstrike y se suelen producir varias veces al día.
Esta actualización provocó, por un fallo software, que Falcon Agent detectase que se estaba intentando acceder a una dirección de memoria que está reservada para el sistema operativo. Esto es una violación que se interpretó como un cyberataque y causó que el sistema se intentase reiniciar para evitar males mayores.
La actualización incluía un fichero llamado C-00000291*.SYS que tenía un contenido erróneo. Falcon Agent utilizaba dicho fichero durante el pre-arranque del sistema y esto provocaba que no se pudiese llegar al arranque. Entonces Windows mostraba la pantalla azul (BSoD – Blue Screen of Dead). Por muchas veces que se intentase rearrancar, el proceso se repetía y se volvía a obtener la pantalla azul, es decir no era posible arrancar.
La solución era ir al directorio de Windows donde esta el fichero y borrarlo, después de haber arrancado en modo seguro para evitar el uso del fichero C-00000291*.SYS y no caer en el bucle de BSoD. Normalmente el fichero se aloja en el directorio C:/windows/System32/drivers.
Reflexión
Me parece muy oportuno como Freddy Vega
explica lo ocurrido e indica que, aunque alguien escribió el contenido de ese fichero y alguien escribió las lineas de código que manejan ese contenido, no es un error de una persona es un error del proceso que Crowdstrike emplea para desplegar las actualizaciones. Alguien se equivocó y el proceso de despliegue establecido por la organización no le ayudó a que se diese cuenta de su error.
A su vez es un error de los procesos de despliegue de los clientes de Crowdstrike que confían en actualizaciones automáticas de un tercero que ellos mismos no han probado ni verificado.
Existen múltiples técnicas ideadas y puestas en marcha por los departamentos de T.I. del mundo entero para evitar que pasen estas cosas. Por ejemplo los despliegues blue-green, métodos de pruebas automatizadas y no automatizadas para verificar que todo está bien antes del despliegue, sistemas de automatización del despliegue (canales DevOps) con puntos de verificación múltiples tanto de calidad del software como de verificación de funcionalidad , etc.
A pesar de todos los mecanismos que una organización emplee para evitar estos problemas el error se puede producir, pero mediante diferentes técnicas muchas organizaciones han conseguido minimizar este riesgo.
La experiencia ha demostrado que emplear recursos en organizar los procesos de los departamentos TI para mejorar el servicio a los usuarios del software y los beneficios a la organización propietaria de ese software, FUNCIONA.
Creo que es importante que los ingenieros de software sean conscientes de esto y creen procesos robustos que eviten se produzcan esto apagones que tantos problemas causan. Además que sean capaces de buscar promotores de su buen hacer en las organizaciones.
El software no es intangible, sólo su interior para los no profesionales. Seguro que a nadie le gustaría comprar una casa nueva que aparentemente es muy confortable, pero que en cuanto se habitase todo se fuese abajo: cimientos, cableados, desagües, circuito de calefacción, etc. Pues eso es lo que desde fuera no se ve pero es fundamental.
Epìlogo
A continuación enumero los lugares en los que he leído la información que aquí he sintetizado. Puede que los detalles técnicos de la Plataforma Falcon no sean exactos pero la conclusión sería la misma.
Si alguien me puede proporcionar más detalles del fallo, estaré muy agradecida y disculpas por las imprecisiones.
Plataforma Crowdstrike Para ver pulse aquí
Technical details of the Windows BSOD disaster due to CrowdStrike por B Shyam Sundar Para ver pulse aquí
Blue Screens to Blackouts: The Story Behind the CrowdStrike Outage por Animesh Gaitonde Para ver pulse aquí
No hay comentarios:
Publicar un comentario