CrowdStrike
Blue Screen of Death
Actualización
(2024.07.22) - Parece que el software Falcon Sensor de CrowdStrike, ha generado un panic en el kernel de Linux, según Red Hat informa en este enlace.
Con esto es válido decir, que es muy baja la probabilidad que haya sido a una vulnerabilidad explotada en Azure o en los sistemas locales que se conectan a la nube.
Hay que aplaudir a Microsoft ya que, si bien fue muy grave el problema, Tanto Azure como Windows están con una buena reputación, gracias a la comprobación de que los sistemas Linux tuvieron problemas serios con la ejecución de Falcon Sensor.
Esto va en sentido opuesto a lo que dijeron desde CrowdStrike en las primeras horas, sobre que los sistemas Linux y Mac OS, no se vieron afectados.
De todos modos, como he explicado debajo, es normal ver alguna BSOD en Windows, de hecho, es por eso por lo que es famoso el error de pantalla azul.
Por lo tanto, lo novedoso hubiese sido que los sistemas Linux cayeran, mientras que Windows no lo hiciera, aunque esto sería extraño, no sería imposible. Digo esto, porque una excepción no manejada en un controlador de acceso a funciones del kernel, muy probablemente haga caer al sistema.
Viejos Tiempos
He pasado algunas décadas instalando Windows, tan atrás en el tiempo como Windows 3.11, Windows 95, Windows NT, Windows Me, Windows XP…
En todos ellos la pantalla azul de muerte era normal en aquellas épocas cuando el hardware de consumo se deterioraba por el uso y el paso del tiempo, como también por la baja calidad de los componentes, como capacitores electrolíticos, diodos, reguladores de voltaje, que generaban fallos en la electrónica que eran detectados por el kernel de Windows.
Cuando estos errores de hardware producen errores irrecuperables en él kernel, se mostraba el famoso error de pantalla azul de la muerte. Sin embargo, esa no era la única fuente de errores que generaban la pantalla azul.
También solía ocurrir cuando los HDD tenían sectores defectuosos donde no se podía escribir con normalidad, el sector no estaba marcado como defectuoso y el sistema intentaba utilizar ese sector para leer o escribir información.
Durante la configuración del hardware luego de la instalación de Windows, solía ocurrir que se mostraba la pantalla azul cuando se instalaban drivers que no eran compatibles completamente con los componentes del motherboard.
Como bien saben, el colapso global ocurrió debido a un software que corre en sistemas Windows, para la defensa y monitoreo de ciberataques.
Hay muchas razones que pueden generar una pantalla azul de la muerte, que ocurre por errores graves en un software, el kernel de Windows debe detener completamente el sistema para evitar la corrupción y pérdida de datos.
Por poner un ejemplo simple y asociado con C, C++;
Durante la ejecución de un programa cualquiera bajo Windows, el código que generaba un programador era un código inseguro, ya que el programador era quien debía gestionar la memoria del sistema, se hacía generalmente con punteros y aritmética de punteros, (un puntero es una zona de memoria que apunta hacia otra posición en la memoria donde se almacena un dato que es útil de alguna manera para un programa), era necesario reservar memoria, liberar memoria, pero sobre todo, asegurar que un puntero no accediera a una zona de memoria que no había sido reservada por el programador.
Si ese puntero accedía a una zona por arriba o por debajo del rango reservado, era muy posible que el kernel de Windows generará una pantalla azul de la muerte.
Nuevos Tiempos
Hoy en día, están los lenguajes interpretados como PHP, .NET, Java, Ruby, Python..., en todos ellos existe una VM que compila el código del programador a un lenguaje intermedio que entiende la VM, luego esa VM accede a la API de bajo nivel de Windows.
En estos lenguajes interpretados en muy raras ocasiones el programador debería encargarse de la administración de la memoria, esto es así porque todas las VM de estos lenguajes tiene un GC (Garbage Collection), que es un recolector de basura, o mejor dicho de objetos sin referencias, el GC entonces se encarga de liberar la memoria y lo hace eliminando objetos que usan memoria, cuando no se encuentran referencias hacia este objeto.
Además, estos lenguajes tienen un estilo de acceso a la memoria diferente al modelo de punteros de C, C++, haciendo que sea muy poco probable que un error de pantalla azul ocurra.
Otra historia diferente es el lenguaje Rush de Mozilla, que es en términos generales seguro en memoria, se compila a código binario como C, C++, y es también igual de eficiente que estos dos lenguajes.
En la actualidad hay mecanismos de hardware y software para garantizar la seguridad de la memoria hasta cierto punto, esto es así, porque la industria ha evolucionado y aprendido de los errores del pasado, para mejorar la estabilidad del sistema, por una sencilla razón, un programa no debería hacer caer al sistema operativo.
Sin embargo, es lo que ocurrió, un software pensado para proteger al sistema de ciberataques hizo caer al sistema que protegía.
Desde mi perspectiva, han pasado más de 3 décadas que el problema sigue ahí, el mundo y los sistemas se volvieron muy complejos, pero a vuelo de pájaro, el problema de Windows sigue estando debajo del capó.
Es tan así, que es conocido que hubo incidencias en la bolsa luego del evento, hay personas en el mercado que saben mucho sobre esto y entienden que el sistema operativo no debería caer debido a un fallo de un programa.
Esto no es tan simple, hay matices aquí, sobre todo en esta era donde todo está conectado a la nube, quiero decir, puede que nunca nos enteremos lo que realmente pasó.
¿Falló Windows? ¿Falló Falcon Sensor?
¿Qué tal si en realidad, no falló ni el software ni falló Windows?
Puede que haya sido un ataque utilizando alguna vulnerabilidad no conocida de Windows o del software de defensa cibernética.
Esa pantalla de azul que observaron en las redes sociales podría generarse una vez que se logra una escalada de privilegios en conjunto con una RCE (Remote Code Execution) en el sistema.
Digo esto porque no hay que olvidar el ataque a la cadena de suministro de SolarWinds; donde agentes hostiles afectaron la cadena de suministro y crearon una puerta trasera en un software de la empresa.
Otra vulnerabilidad particularmente grave pero mucho más reciente es la Cisco, de 10 puntos de gravedad, tiene los 10, (10/10). Es la CVE-2024-20419, una vulnerabilidad relacionada con el cambio de contraseña de CSSM (Cisco Smart Software Manager).
No puedo evitar pensar, que, si bien podría ser cierto el origen del fallo de la pantalla azul, también, hay otras muchas formas de que esto ocurra.
Una vez que todos ven esa pantalla azul, yo recomendaría decir que fue un error del software, jamás diría que fue un fallo en la nube, o una vulnerabilidad explotada.
Obviamente, es mucho más conveniente decir que fue un fallo del software con Windows, que decir que, Azure se vio afectado por la explotación de una vulnerabilidad y eso afectó a nodos aislados enlazados con los servicios públicos afectados.
Hay que recordar que, en los asuntos de seguridad nacional, la nube brinda servicios, que en la nube hay datos e historias clínicas de las personas, secretos de estado, en términos generales, está todo lo que se quiere salvaguardar de las amenazas locales del borde.
Sin embargo, también creo, que si hubiese sido a causa de un ataque cibernético de un grupo o de un estado-nación, tal vez, solo tal vez, ya se hubiese adjudicado el hecho, y la empresa quedaría expuesta por haber mentido.
Con esto, si todo es así, me parece igualmente grave que Windows siga con su problema, que, aunque es un problema de diseño de varias décadas, en la era de Windows 11, parece que sigue estando en su núcleo.
De todos modos, es una época muy inestable, con problemas geopolíticos serios, dos focos de guerra cinética, las guerras económicas y las guerras tecnológicas entre superpotencias, y por si crees que no es suficiente, la Inteligencia Artificial en medio, como la corona en defensa y ataque, en el ámbito civil, militar, gubernamental.
En este escenario, pensar que falló Windows o un software que corría sobre él, es una decisión que debe tomar cada persona.
Habrá que esperar para ver como evoluciona todo esto con el tiempo, de momento es conocido por todos la información que han dejado caer.
Bytes Friends - © 2010-2024