Granjeros de Nebraska

Granjeros de Nebraska

La tecnología es un sirviente útil, pero un amo peligroso Christian Lous Lange

Existe una novela muy interesante titulada Blackout, escrita por Marc Elsberg. En ella se narran, de forma bastante realista, las consecuencias de un ciberataque a nivel global que desemboca en el colapso de la sociedad moderna. Algo que, como en otros relatos apocalípticos de estilo similar, nos parece impensable y propio de la ciencia ficción ¿Verdad? 

Antes de continuar con este apasionante post, te pido que hagas una pausa y desde detrás de tu iPhone 15 procedas con un breve ejercicio de imaginación. ¿Crees que nuestra milenaria civilización está preparado para sobrevivir un solo día sin la tecnología que hemos creado en las últimas décadas? ¿Crees que acaso podría resistir durante tan solo unas horas, o nuestro mundo sucumbiría como USA al fentanilo?

Lo siento por este arrebato de catastrofismo apocalíptico. Tales especulaciones vienen a propósito de un par de “perturbaciones” tecnológicas que han ocurrido estos últimos meses y que han gozado de cierta relevancia. Estos sucesos nos ponen contra la pared como sociedad y nos llevan a reflexionar profundamente. En primer lugar, sobre la solidez de los cimientos tecnológicos sobre los que hemos construido el mundo en el que vivimos hoy. En segundo lugar, desde nuestra perspectiva como ingenieros, sobre la calidad, la seguridad y la fiabilidad de la tecnología que desarrollamos diariamente.

El primero de estos eventos, quizá con menos impacto mediático, es el hack de XZ Utils. Como la historia tiene su miga, os dejo un video de Midudev donde os cuenta en profundidad de que va la movida. Os lo resumo brevemente. Resulta que hace unos meses, un tal Jia Tan, que así se hacía llamar el tipo, intentó hackear nuestro amado Sistema Operativo Linux tratando de colar un backdoor en una de sus distribuciones. Para los menos familiarizados con estas frikadas de hackers, un backdoor es un método de acceso que sortea las barreras de autorización y autenticación de un equipo y que normalmente  se inserta “escondido” en un programa informático. Esto permitiría ingresar, de manera casi indetectable, al sistema que lo ejecute. El problema gordo radica en que al estar incluido en una distribución oficial de Linux (en este caso Debian), permitiría al hacker hacer maldades en cualquier PC del planeta que tuviese instalada esta distribución.

- Bueno Bro, ¿No será para tanto?
Como ya deberíais saber, Linux es el SO donde se ejecutan o deberían ejecutarse todas las cosas importantes en el mundo. Por tanto, millones de dispositivos en todo el planeta podrían haber sido infectados, dejándolos a merced de las ocurrencias del Sr Tan.
- ¿Qué dices, bro? ¡De locos! ¿Cómo ha pasado eso si Linux es la cabra? ¡Mi puto Padre, bro!
Bueno, como ya os comenté en un post anterior, los programas desarrollados para el Sistema Operativo Linux son Open Source. Es decir, son creados y mantenidos por la comunidad de desarrolladores. El caso es que uno o varios “espabilaos” (tampoco es que Jia Tan sea una identidad muy fiable) quisieron aprovecharse de la buena fe y los problemas de salud mental del desarrollador principal de XZ Utils para colar un regalito. Sí, colega, es de recibo reconocerlo. El Open Source tiene estas cosas. Es gratis, libre y abierto, pero como un enajenado tenga un poco más puntería que Thomas Matthew Crooks y sea capaz de evadir las pruebas y controles de los aprobadores oficiales de Linux, puede causar más estragos que Ortega Cano al volante después de un par de gin-tonics. Y es que, hay que tener cuidado en manos de quien se dejan los proyectos. Un día estás cediendo tu repositorio oficial de GitHub a un random y al día siguiente dejas a tus hijos al cuidado de José Bretón. 

Por suerte, como toda historia Woke de Disney, esta también tiene un final feliz. Como esta release del SO se encontraba en una fase beta, un desarrollador llamado Andres Freund, casi de casualidad, detectó el hack mientras hacía unos test de rendimiento. Ya de paso, alertó a la comunidad para que bloqueara y revisara el lanzamiento oficial de esa distribución.

Por otro lado, tenemos el reciente bug en Crowdstrike, que ha provocado que millones de sistemas Windows fundieran a azul. El arrogante y soberbio Te lo dije de cualquier usuario Linux o Mac. En este caso no se trata de un hackeo, sino de un error de código del programa para el Sistema Operativo de las actualizaciones infinitas. Para que veáis que incluso en compañías multimillonarias hay un equipo de SW con prisa por irse de fin de semana. El caso es que Crowdstrike, al ser un ampliamente distribuido y utilizado en Windows, provocó millones de afectados around the world. Ya sabéis, funcionarios que alargaron su hora del café empalmando con el aperitivo, Aena con una escusa perfecta para justificar su enésimo retraso, los Call Center de Yoigo y Vodafone que por primera vez en su historia no le jodieron la siesta a nadie y la RENFE… bueno, las pantallas de notificaciones de esa gente llevan con pantallazo azul desde el primer afeitado de Jordi Hurtado. Pues eso.
THIS IS THE JUNGLE NIGGI!
Por cierto, que un equipo de ingeniería use “Güindos” como su SO de despliegue predilecto debería ser una red flag para salir de ahí a la velocidad que salió Puigdemont de España.

Ahora en serio. Estos hechos, como usuarios y desarrolladores, nos plantean un debate trascendental al que normalmente rehusamos enfrentarnos. Y es que, como seres humanos, es doloroso asumir lo inevitablemente supeditada que se encuentra nuestra terrenal existencia al artificial, inanimado y frio mundo digital que hemos erigido en las últimas décadas. Un mundo del que ya no solo formamos parte, sino en el que, como cyborgs, nos hemos mimetizado. Una realidad en la que, a menudo, se contraponen de forma paradójica el progreso tecnológico y nuestra supervivencia biológica.

Generalmente, apenas somos conscientes de que, en ocasiones, las bases de nuestra sociedad dependen de sistemas y fragmentos de código que plantean la rigidez de un palillo dental. Desde nuestra apasionante vida cotidiana, apenas reparamos en la vulnerabilidad y fragilidad de los soportes de nuestra sociedad. De forma totalmente empirista damos por hecho que todo seguirá funcionando mañana y salvo catastrofistas e hipocondriacos, no pasa por nuestra mente que en un instante todo pueda fundirse a negro. No tenemos por qué ir al tópico del apocalipsis nuclear o a los evidentes desastres a gran escala que provocarían un hackeo masivo o un apagón digital. En sistemas cotidianos de los que dependemos día a día existe un peligro inherente que nos afecta de igual manera. Por poner un ejemplo, ¿qué pasaría si fallasen los sistemas que controlan las condiciones de un tanque de leche con miles de litros que alimentan a cientos de familias? ¿Qué ocurriría si fallasen los sistemas de extinción y la alarma de incendios de un edificio de 50 plantas? ¿Y si fallase el sistema de advertencia de configuración inapropiada para el despegue (TOWS) en un McDonnell Douglas MD-82?

Indudablemente, suponemos que los desarrolladores que han implementado el código han puesto todo su foco y profesionalidad. Los diseñadores del hardware, todo su talento y expertise. Que los equipos de calidad se han encargado de testear con rigor y criticidad el sistema en su totalidad. Suponemos que la dirección de la empresa no ha presionado a sus empleados para sacar a producción una versión del sistema de forma apresurada y así evitar pérdidas económicas. Que ese sistema está mantenido por un equipo de soporte. Y, por supuesto, suponemos que alguien que nace con un profundo amor por esta bendita profesión, debe entregar el 100% de su esfuerzo y dedicación de manera totalmente altruista a mantener un programa o librería cuyo funcionamiento es esencial para millones de ordenadores en todo el mundo. ¿Verdad?

No seamos ingenuos, no es la primera vez que ocurren hechos similares a estos y no será la última. El riesgo cero no existe. Aun así, las empresas poseen la inevitable responsabilidad de desarrollar e implementan soluciones y sistemas que cumplan unos estándares de calidad y seguridad mínimos. No solo en aquellos que en último término podrían provocar un colapso de infraestructuras básicas en nuestra sociedad. También en aquellos que en el día a día desembocan en sucesos como perdidas y filtrados de información que vulneran nuestros derechos y privacidad. 

Sin restar responsabilidad a los profesionales, que debemos poner énfasis en la necesidad de equipos altamente cualificados que verifiquen la calidad, fiabilidad y seguridad los sistemas que desarrollamos. En un mundo totalmente digitalizado, crear software fiable y de calidad, no solo es una necesidad, sino que es parte del compromiso que adquirimos con la sociedad cuando decidimos transitar por esta sagrada profesión. 

Además, no podemos olvidar que como usuarios no estamos exentos de responsabilidad. El usuario se debe exigir rigurosidad, transparencia, seguridad, privacidad y ser crítico con la tecnología que a día de hoy sustenta nuestras vidas.

En fin, debe ser tranquilizador saber que, posiblemente, toda la tecnología moderna dependa de un fragmento de código mantenido por un chaval de 16 años que vive en una granja de Nebraska.

Escribiendo desde un sótano en la Deep Web, atentamente math.