De canarios, cisnes negros y desastres informáticos. ¿Qué pasó realmente el día del apagón de Windows?
Una actualización automática de un archivo de configuración de un componente de la plataforma CrowdStrike derribó 8,5 millones de dispositivos con Windows. ¿Qué pasaría con un ataque coordinado y realmente destructivo?
Los entretelones de una catástrofe que fue masiva, pero que no condujo al Apocalipsis digital; todo puede fallar, es cierto, pero la explicación que dieron los responsables es cualquier cosa menos suficiente
Ariel Torres
Hace hoy una semana y un día el mundo industrializado se desayunaba (literalmente) con decenas de miles de sistemas informáticos en estado de coma. Los primeros en notarlo, por el huso horario en el que se encuentran, fueron los empleados japoneses, especialmente en los aeropuertos. La onda expansiva se movió con la línea del terminador y fue colgando todas las máquinas con Windows 10 y 11 que habían sido puestas en línea antes de las 2,27 de la madrugada de la Argentina (0527 UTC). No iba a ser un viernes tranquilo. Cinco mil vuelos en el nivel mundial serían cancelados y Microsoft calcula que 8,5 millones de dispositivos quedaron fuera de combate por lo que hoy califica como el peor apagón informático de la historia. De mínima, medio millón de personas quedaron varadas en tránsito.
La noticia es más o menos conocida: una compañía de seguridad informática que hasta ahora había tenido una trayectoria rutilante, CrowdStrike, instaló en las máquinas de sus clientes una actualización para Windows que, dicho sin tecnicismos, rompió todo. Con un poco más de tecnicismos, los controladores de un componente de la plataforma de CrowdStrike, llamado Falcon Sensor, tuvo acceso a un área de memoria que no existía. Eso en computación es blasfemia pura, y Windows, en condiciones normales, se habría simplemente reiniciado sin cargar estos controladores fallados, y no habría pasado nada. Pero resulta que Falcon Sensor pertenece a una exclusiva familia de programas que tiene privilegios lo bastante altos para hacer dos cosas: que sea muy difícil que un programa malicioso le pase por encima y que el sistema operativo nunca arranque sin él.
Aeropuerto de Haneda en Japón; por su huso horario, este país fue el primero en advertir que algo muy malo estaba pasando con Windows
Así que Windows, simplemente, se colgó, con la nefasta pantalla azul de la muerte, conocida como BSOD, por Blue Screen Of Death. Esta pantalla (que ahora ha llegado también a Linux, para reemplazar lo que hasta ahora llamábamos kernel panics) es importante, porque informa sobre las causas del problema que causó el error fatal (un error fatal es uno que el núcleo del sistema operativo no sabe cómo manejar y que por lo tanto le deja una sola salida, parar todo) y es también un poco frustrante, porque no podés hacer nada. Salvo, claro, reiniciar. El problema era que al reiniciar, las máquinas volvían a colgarse, por los privilegios de Falcon Sensor, y en ese perseguirse su propia cola quedaron enganchadas durante una hora y media las máquinas que se iban poniendo en línea y recibiendo la actualización fallada.
Microsoft sugirió en un momento que la solución era reiniciar las máquinas al menos 15 veces, algo que se tomó con demasiada ligereza y que por lo tanto parecía un chiste. Pero había una lógica detrás: al intentar el reinicio, la esperanza de la compañía era que entre un arranque y el siguiente CrowdStrike hubiera corregido el error y enviado una actualización que sacara a las máquinas del círculo vicioso (cosa que de todos modos no habría funcionado, porque el archivo fallado debía ser cambiado a mano o por medio de un script; pero esto se supo después).
Concentrado de desastre
Las fallas ocurren. Las fallas catastróficas también ocurren. Es humano. Somos humanos. Y la concentración (Windows es un claro ejemplo de concentración) es un pecado que esta industria viene cometiendo desde que nació. En 1974 (cinco años después del nacimiento de Intel, y el año anterior a la fundación de Microsoft) el gobierno estadounidense obligó a AT&T a dividirse para desarmar el monopolio al que había llegado; nacieron así las “Baby Bells”. IBM y Microsoft estuvieron a punto de pasar por idéntica escisión. Google, Facebook, Intel, Apple y Amazon, entre otros gigantes, han sido multadas o están en la mira de la justicia por abuso de posición dominante. Esto de abuso de posición dominante, dicho sea de paso, es una tautología. Si los humanos fuéramos perfectos, la codicia no existiera y el poder no nos resultara en absoluto atractivo, entonces una organización monopólica no abusaría de su posición dominante. Pero entre eso y creer en los Reyes Magos no hay ninguna diferencia. Así que monopolio implica abuso de posición dominante, salvo alguna rarísima excepción de la que no tengo noticia.
El nuevo nombre y logo de Facebook, cuando los estrenaron, en octubre de 2021
La concentración es un problema, pero algunos problemas son más grandes que otros. Lo de Microsoft, Google y Facebook es sumamente riesgoso. No porque nos moleste que esas compañías ganen mucho dinero. Esa lectura es tan maliciosa como desviada (por desviada me refiero a que le falta neuronas). La razón es que cuando Windows falla, falla el mundo. Quedó probado el viernes 19 de este mes. Aunque Microsoft no haya causado el problema, el problema afectó un mercado que se ocupó de colonizar por completo. (A propósito, algunas distros de Linux fueron afectadas por una turbulencia causada asimismo por CrowdStrike, en abril, mayo y junio.)
Si Google falla, muchísima gente deja de poder trabajar; desde Maps hasta el Calendario, por no mencionar el correo electrónico y la parte del león publicitaria de la web, el coloso de Mountain View tiene en sus manos cosas demasiado importantes; también es cierto es que Google ha sufrido muchas menos caídas que los demás, en gran medida por algo que explicaré más abajo y que tiene que ver con ser más prudentes a la hora de instalar actualizaciones. Y esto cuenta también para Android, ya que estamos. Recordarán, sin embargo, la actualización de su sistema operativo móvil que causó un desastre con los datos almacenados en los teléfonos.
Facebook, solo con WhatsApp, ya nos dio un par de buenos sustos (en 2019 y en 2021) y causó pérdidas cuantiosas. Por supuesto, puede argumentarse que esas pérdidas las sufrieron personas que no pagan nada por el popular mensajero de Facebook. Esto es falso por dos motivos. Meta (o sea Facebook) monetiza nuestros datos, de modo que no pagamos con pesos o dólares, pero pagamos. Segundo, no hay opciones a WhatsApp, y esa es una de las trampas de la concentración. Gratis o no, de todos modos, si falla WhatsApp, todos perdemos tiempo y dinero.
La concentración es, al parecer, una tendencia por el momento inevitable. Pero en el incidente de hace una semana hubo dos agravantes. Primero, que la tecnología nos ha permitido dar un salto tan grande al futuro que no hay plan B. Por eso, torpemente, con una lentitud a la que nos habíamos desacostumbrado, las aerolíneas y otras industrias tuvieron que volver al papel y al cartón escrito con marcador. A todo esto, el gobierno estadounidense abrió una investigación para ver por qué Delta Airlines había tardado tanto en volver a estar completamente operacional.
El miércoles, Twitter cambió el emoji de la pistolita de agua por un arma de fuego real
Segundo, cuando las actualizaciones son tan sensibles, lo que se usa en esta industria son canarios; Google, Microsoft, Intel y en general la generación mas veterana de la informática opera de esta forma. No son canarios reales, claro; eso queda para X. O sea Twitter (que, dicho sea de paso, el miércoles cambió el emoji de la pistolita de agua por un arma real; #miedo). Los canarios se usaban en las minas para advertir a los trabajadores de la presencia de gases venenosos. En informática, una actualización muy sensible se distribuye primero de forma controlada (los canarios) y, si todo sale bien, se inicia la instalación masiva.
Para cuando leas esto, todavía habrá sistemas afectados, gente que no puede trabajar o viajar o ambas cosas, y todo por un archivo roto. ¿Lo peor? Al cierre de esta edición CrowdStrike comunicó que la culpa del desastre la tenía un bug (un error) en el software que se usa para validar las actualizaciones. No solo la explicación sabe a poco, porque equivale a decir que la falla la causó una falla, sino que, además, ¿quién valida al validador? ¿Y quién valida al validador que valida al validador?
Lo que nos lleva a ver qué pasó exactamente esa noche fatal.
¿Pero qué pasó exactamente?
Dejando de lado algunas cuestiones muy ásperas (que, sin embargo, pueden leer en esta excelente nota de The Register), CrowdStrike usa unos archivos llamados Channel Files para mantener actualizado uno de sus componentes (el dichoso Falcon Sensor) sin necesidad de meterse con el código fuente del controlador (o driver) de ese componente. La función de Falcon Sensor es fiscalizar los sistemas (normalmente end points) y detectar actividad non sancta.
Uno de esos archivos usados para configurar y actualizar Falcon Sensor, llamado Channel File 291, se usa específicamente para vigilar las pipes. Pipes se llaman, en informática, a las vías que emplean los programas para hablar entre ellos. Es un poco más complejo que esto, porque en realidad 291 solo se ocupa de las pipes con nombre. En todo caso, una de las técnicas más nuevas de los delincuentes es usar las pipes con nombre para que sus programas maliciosos se comuniquen con los centros de comando y control (el software que usa el pirata para manejar su programa malicioso de forma remota). La actualización de 291 intentaba configurar el Falcon Sensor para que detectara este nuevo tipo de actividad ilícita.
Por desgracia, había un error en el Channel File 291 lanzado a las 4.09 UTC (la 1,09 de la madrugada hora Argentina) y el driver intentó acceder a un espacio de memoria que no existía, con las consecuencias explicadas más arriba. O sea, Windows se colgaba al intentar arrancar con un controlador que causaba un error fatal (esto es, acceder a memoria inexistente), pero a la vez era incapaz de sacárselo de encima (por razones de seguridad). Círculo vicioso, se llama. En algo menos de una hora y media derribó 8,5 millones de computadoras con Windows.
Pantalla azul de la muerte en el aeropuerto de Madrid-Barajas el viernes 19 del actual
Microsoft no puede ser culpada por lo que pasó. Hace décadas que actualiza millones de Windows al menos una vez al mes sin causar estos terremotos. A lo sumo, se lo puede acusar de no tener ni la menor empatía; el comunicado que sacaron durante el incidente dedicaba el primer párrafo a deshacerse de toda responsabilidad, sin una palabra para las cientos de miles de personas afectadas por el cataclismo. Por eso, el Congreso de Estados Unidos ha citado a declarar al CEO de CrowdStrike, George Kurtz, y no a Satya Nadella. Lógico: ahora ya no necesitan ataques chinos, rusos o norcoreanos para sufrir un incidente gravísimo.
La muy mala noticia es que CrowdStrike le echa la culpa a un bug. Vaya. Nos quedamos más tranquilos. Si es un bug, entonces no es un cisne negro. Bugs hay por todos lados todo el tiempo.
¿La buena noticia? El mundo no se despeñó el viernes 19 de este mes en el Apocalipsis digital. Ya analicé en otro lado las razones de esto, pero una cosa es segura, aparte de la mirada optimista. Si con una actualización menor de un proveedor de seguridad tuvimos medio millón de pasajeros varados (para empezar) y más de ocho millones de dispositivos afectados, ¿qué pasaría con un ataque minuciosamente coordinado y realmente destructivo?
http://indecquetrabajaiii.blogspot.com.ar/. INDECQUETRABAJA
No hay comentarios.:
Publicar un comentario
Nota: sólo los miembros de este blog pueden publicar comentarios.