Trojan Source: El nuevo ataque que afecta a los compiladores de la mayoría de los lenguajes de programación actuales

Especialistas británicos publicaron una nueva investigación detallando un ataque teórico que podría ser utilizado para inyectar código malicioso dentro de una aplicación legítima abusando de la sección de comentarios. Identificado como Trojan Source, este ataque se basa en el uso de caracteres de control bidireccional dentro de los comentarios del código fuente.

Los caracteres de control bidireccional, también conocidos como BiDi, son caracteres de control Unicode que se utilizan dentro de una línea de texto para señalar el cambio de un modo LTR (de izquierda a derecha) a RTL (de derecha a izquierda) o viceversa. Su uso práctico se limita a aplicaciones de software y resultan invisibles para el ojo humano, pues solo se emplean incrustando texto de una dirección de lectura diferente en grandes bloques de texto.

Los investigadores aseguran que la mayoría del software de compilación y edición de código no cuenta con un protocolo adecuado para administrar caracteres BiDi o determinar su presencia en algún fragmento de código fuente. Al parecer, un actor de amenazas podría insertar caracteres BiDi dentro un comentario de tal forma que un desarrollador no pueda detectarlos; al ser compilado, se moverá el texto del campo de comentarios al código ejecutable o bien a una sección comentada, creando la oportunidad de lanzar un ataque cibernético.

Este ataque parece ser funcional en lenguajes de programación como C, C++, C#, JavaScript, Rust, Go y Python, aunque estos podrían no ser los únicos lenguajes afectados. Ross Anderson, miembro del equipo de investigadores, menciona que algunos editores de código y servicios de hosting de código fuente también podrían verse afectados.

Además de este ataque, los investigadores también descubrieron que los compiladores de código fuente también eran vulnerables a un segundo problema, bautizado como homoglyph y en el que los caracteres latinos clásicos se reemplazan con caracteres parecidos de otros conjuntos de familias Unicode. Este segundo ataque podría usarse para crear dos funciones diferentes que se ven iguales a los ojos de un revisor de código, pero que en realidad son diferentes entre sí.

Los investigadores notificaron a las partes afectadas según marcan los lineamientos de la comunidad de la ciberseguridad, aunque solo los desarrolladores de Rust han emitido una actualización al respecto. Las fallas fueron identificadas como CVE-2021-42574 (ataque BiDi) y CVE-2021-42694 (ataque homoglyph).

Para conocer más sobre riesgos de seguridad informática, malware, vulnerabilidades y tecnologías de la información, no dude en ingresar al sitio web del Instituto Internacional de Seguridad Cibernética (IICS).