Detrás de la red

Trojan Source, la realidad de una amenaza

Trojan Source qué es
Recreación de un 'hacker'. | Shutterstock
Tiempo de lectura: 5 min

Esta semana el anuncio del descubrimiento de una vulnerabilidad ha inquietado tanto que ha saltado a medios de todo el mundo. Creo que es conveniente puntualizar y explicar, para que sea entendible por cualquiera, en qué consiste todo esto, y aportar algo de sentido común y conocimiento, de forma que veamos la dimensión real de las cosas. Voy a intentarlo con lo que se ha denominado Trojan Source, explicando qué es y qué hace. Ya les aviso, no se trata de un troyano, ni de un “error”.

Publicidad

Cuando creamos un programa, una app, o una web utilizamos lo que llamamos lenguaje o código. No es más que un conjunto de instrucciones que tienen un formato y significado específico. Un conjunto de órdenes para llevar a cabo acciones. Pero las personas utilizamos diferentes idiomas, alfabetos y signos. Incluso la forma de escribir y leer, en cuanto a la dirección en la que lo hacemos, es diferente. Por ejemplo, de izquierda a derecha en el caso de alfabetos e idiomas latinos, o de derecha izquierda en el caso de árabes, hebreos, etc. 

Todo esto está contemplado en la programación, de forma que podemos usar diferentes signos, y formas de leer, en un mismo código, sin alterar el funcionamiento. Dos investigadores de la Universidad de Cambridge, Nicholas Boucher y Ross Anderson, publicaron el 1 de noviembre de 2021 una prueba de concepto del aprovechamiento de un error en la forma en la que se resuelve este problema.

Trojan Source y Unicode

Unicode es el estándar que permite la escritura, edición y visualización de texto independientemente del idioma y el conjunto de caracteres en el que ha sido generado. Esto es, permite el uso de los sets de caracteres de 154 idiomas, manejando más de 143.000 signos. Algunos de ellos son en apariencia muy similares, pero totalmente diferentes, lo que llamamos homoglyphs.

La vulnerabilidad señala que el uso del algoritmo que reordena los caracteres de izquierda a derecha, o de derecha, llamado algoritmo Bidi, junto con una serie de caracteres para habilitar su funcionamiento, podría alterar el código y las instrucciones de esos programas, de forma que funcionaran de manera diferente, y ejecutan sus acciones de otras maneras. En definitiva, una forma de enmascarar u ocultar lo que en realidad va a hacer el programa a simple vista.

Trojan Source: ¿Es una novedad?

La cuestión a puntualizar es que, a pesar del impacto mediático del anuncio, la explotación de estas posibles vulnerabilidades no es nueva. Esta misma en concreto la llevamos viendo desde 2017. Un riesgo se evalúa por su repercusión, pero también por la posibilidad real de que se produzca. Si bien Trojan Source, o la introducción de esos códigos malvados, afecta prácticamente a cualquier lenguaje de programación que se utilice, por lo que tiene una repercusión global, las posibilidades reales de llevarlo a cabo no son tan altas. Sería como anunciar que circular por cualquier carretera del mundo tiene riesgos, pero no significa que uno tenga un accidente, o cualquiera pueda provocarlo. Se tienen que dar algunas cosas más.

Publicidad

Debido a los cambios que han afectado a las formas de trabajar el desarrollo de programas o apps, es cada vez más extendido la utilización de equipos diversos para su construcción. Cada uno se ocupa de una “pieza” del engranaje que dará como resultado el total del programa.

Por eso se introducen controles de calidad, revisiones del código y medidas de seguridad para que no se produzcan esas alteraciones perversas. Piensen en una aplicación bancaria que es elaborada por un montón de personas. Quizás algunas de ellas, por error o con malas intenciones, quisiera introducir instrucciones que permitieran el acceso a los datos solo a una persona para beneficiarse de lo mismo. 

Control del código

Así visto uno pensaría que, en proyectos de desarrollo común, más aún en los cooperativos sin ánimo de lucro, quizás el control del código volcado es más débil y mucho más susceptible a que sus resultados finales sean vulnerados. Pero tampoco es cierto.

Por ejemplo, es el caso de la comunidad de WordPress, uno de los gestores de contenidos más populares, utiliza añadidos de terceros en el mismo, los llamados plugin. El problema es que siendo desarrollados por terceros es muy complicado controlar si estos tienen código malicioso, han sido vulnerados o sufren de estas vulnerabilidades. Pero solo unos días después, WordPress ha revisado sus repositorios, los sitios donde se guardan todos estos plugin disponibles, aportando a la detección de la aplicación de técnicas como Trojan Source un método para su detección.

El riesgo, por tanto, se mitiga con medidas como las que he descrito. Por tanto, a pesar de que exista una vulnerabilidad, el utilizarla -explotarla decimos los técnicos-, no es tan sencillo, y su posible impacto baja muchos enteros.

En fin, no les quiero aburrir con tanto término técnico. Lo que quiero decir es que hay temas muy complejos, donde usamos “palabros raros”, que requieren menos sensacionalismo y más intención pedagógica e informativa para todos los públicos. Yo creo que hacerlo así acercará el mundo de la tecnología a los neófitos, y quizás abra una pequeña vía de interés por estos temas. ¿Quién sabe si de un@ o un futuro programador?

Publicidad