Un grupo de investigadores ha descubierto una vulnerabilidad que podría ser fatal para todo internet sino se comienza a tomar cartas en el asunto en forma de actualizaciones, parches y mejoras de seguridad.
Prácticamente todos los compiladores son vulnerables a un ataque en el que un pirata puede introducir vulnerabilidades específicas en cualquier software sin ser detectado, advierte una nueva investigación publicada este martes.
La revelación de la vulnerabilidad se ha coordinado con múltiples organizaciones para advertir a tiempo de este fallo mientras muchas de estas compañías están publicando actualizaciones para subsanar la falla de seguridad.
Investigadores de la Universidad de Cambridge descubrieron un fallo que afecta a la mayoría de los compiladores de código informático y a muchos entornos de desarrollo de software.
La falla se presenta en un componente del estándar de codificación de texto digital Unicode, que permite a los ordenadores intercambiar información con independencia del idioma utilizado.
En la actualidad, Unicode define más de 143.000 caracteres en 154 idiomas diferentes (además de muchos conjuntos de caracteres que no son de escritura, como los emojis).
En concreto, el punto débil tiene que ver con el algoritmo bidireccional o Bidi de Unicode, que gestiona la visualización de textos que incluyen escrituras mixtas con diferentes órdenes de visualización, como el árabe -que se lee de derecha a izquierda- y el inglés (de izquierda a derecha).
Pero los sistemas informáticos necesitan una forma determinista de resolver los conflictos de direccionalidad en el texto. Para ello se creó el Bidi override, que permite hacer que el texto de izquierda a derecha se lea de derecha a izquierda, y viceversa.
Las anulaciones de Bidi permiten que incluso los caracteres de un solo guion se muestren en un orden diferente al de su codificación lógica. Como señalan los investigadores, este hecho ha sido explotado anteriormente para disfrazar las extensiones de los archivos de programas maliciosos difundidos por correo electrónico.
El problema es el siguiente: la mayoría de los lenguajes de programación permiten poner estas anulaciones de Bidi en comentarios y cadenas. Esto es malo porque la mayoría de los lenguajes de programación permiten comentarios dentro de los cuales todo el texto - incluyendo los caracteres de control - es ignorado por los compiladores e intérpretes.
Lo que se traduce en que se pueden utilizar en un código fuente que parece inocuo para un revisor humano y convertirlo en una pesadilla.
Y esto es una mala noticia para proyectos como Linux y Webkit, que aceptan contribuciones de personas al azar, las someten a una revisión manual y luego las incorporan a código crítico. Esta vulnerabilidad es, por lo que dicen los expertos, muy grave.
El documento de investigación, que bautizó la vulnerabilidad como Trojan Source, señala que, aunque tanto los comentarios como las cadenas tienen una semántica específica de la sintaxis que indica su inicio y su fin, estos límites no son respetados por las anulaciones de Bidi.