os actores de amenazas podrían aprovechar una nueva clase de vulnerabilidades para inyectar malware visualmente engañoso de una manera que sea semánticamente permisible, pero altera la lógica definida por el código fuente, abriendo efectivamente la puerta a más riesgos propios y de la cadena de suministro.

Denominada » ataques de fuente troyana » , la técnica «explota sutilezas en estándares de codificación de texto como Unicode para producir código fuente cuyos tokens están codificados lógicamente en un orden diferente al que se muestran, lo que genera vulnerabilidades que no se pueden percibir directamente. por revisores de códigos humanos «, dijeron los investigadores de la Universidad de Cambridge Nicholas Boucher y Ross Anderson en un artículo recientemente publicado.

Las vulnerabilidades , rastreadas como CVE-2021-42574 y CVE-2021-42694, afectan a los compiladores de todos los lenguajes de programación populares como C, C ++, C #, JavaScript, Java, Rust, Go y Python.

Los compiladores son programas que traducen código fuente legible por humanos de alto nivel en sus representaciones de nivel inferior, como lenguaje ensamblador, código objeto o código de máquina que luego puede ser ejecutado por el sistema operativo.

En esencia, el problema se refiere al algoritmo bidireccional (o Bidi ) de Unicode, que permite la compatibilidad con idiomas de izquierda a derecha (p. Ej., Inglés) y de derecha a izquierda (p. Ej., Árabe), y también presenta lo que se llama anulaciones bidireccionales para permiten escribir palabras de izquierda a derecha dentro de una oración de derecha a izquierda, o viceversa, lo que obliga a que el texto de izquierda a derecha se trate como de derecha a izquierda.

Si bien se espera que la salida de un compilador implemente correctamente el código fuente que se le proporciona, las discrepancias creadas al insertar caracteres de anulación Unicode Bidi en comentarios y cadenas pueden habilitar un escenario que produzca un código fuente sintácticamente válido en el que el orden de visualización de los caracteres presenta una lógica que diverge. de la lógica real.

Dicho de otra manera, el ataque funciona apuntando a la codificación de archivos de código fuente para crear vulnerabilidades específicas, en lugar de introducir deliberadamente errores lógicos, a fin de reordenar visualmente los tokens en el código fuente que, aunque se procesan de una manera perfectamente aceptable, engaña al compilador para que lo procese. el código de una manera diferente y cambiando drásticamente el flujo del programa, por ejemplo, haciendo que un comentario aparezca como si fuera un código.

«En efecto, transformamos el programa A en el programa B», supusieron los investigadores. «Si el cambio en la lógica es lo suficientemente sutil como para pasar desapercibido en las pruebas posteriores, un adversario podría introducir vulnerabilidades específicas sin ser detectado».

Tales codificaciones adversas pueden tener un impacto serio en la cadena de suministro, advierten los investigadores, cuando las vulnerabilidades de software invisibles inyectadas en el software de código abierto se abren camino hacia abajo, afectando potencialmente a todos los usuarios del software. Peor aún, los ataques de Trojan Source pueden volverse más severos si un atacante usa homoglyphs para redefinir funciones preexistentes en un paquete ascendente e invocarlas desde un programa víctima.

«El hecho de que la vulnerabilidad de la fuente troyana afecte a casi todos los lenguajes informáticos lo convierte en una oportunidad única para una comparación de respuestas entre plataformas y proveedores de todo el sistema y ecológicamente válida», señalaron los investigadores. «Dado que pueden lanzarse fácilmente ataques poderosos a la cadena de suministro utilizando estas técnicas, es esencial que las organizaciones que participan en una cadena de suministro de software implementen defensas».

Fuente y redacción: thehackernews.com

Compartir