Un equipo de cientÃficos de la Universidad de Cambridge descubrió una vulnerabilidad que amenaza a prácticamente cualquier ‘software’, asà lo advierten en un artÃculo publicado este domingo en el que muestran los resultados de su análisis. Paralelamente, los divulgaron en el repositorio Github.
Prácticamente todos los compiladores (programas que ‘traducen’ el código legible para los humanos en un formato comprensible para la computadora) son vulnerables a un ataque en el que se pueden introducir vulnerabilidades especÃficas en cualquier software sin ser detectado.
La debilidad involucra el estándar de codificación de texto digital Unicode y, más especÃficamente, su algoritmo Bidi, que maneja la visualización del texto con diferentes órdenes de escritura, como el árabe (que se lee de derecha a izquierda) y el inglés o el español (en la dirección inversa).
“En algunos escenarios, el orden predeterminado establecido por el algoritmo Bidi puede no ser suficiente; para estos casos, se prevén los caracteres de control de anulación“, indican los cientÃficos. Señalan que estos caracteres, que son invisibles, pueden insertarse muchas veces, permitiendo “reordenar las cadenas de manera casi arbitraria”.
“Esto da a un adversario un control detallado, por lo que puede manipular el orden de visualización del texto [convirtiéndolo] en un anagrama de su orden lógicamente codificado”, advierten los analistas.
Como resultado, el código manipulado puede verse normal para los humanos y, al mismo tiempo, ejecutarse de manera no esperada por los compiladores. Además, no se detectarÃa durante la revisión de la sintaxis de la programación en la mayorÃa de los idiomas.
“Nuestra idea clave es que podemos reordenar los caracteres del código fuente de manera que el orden de visualización resultante también represente un código fuente sintácticamente válido“, indican los expertos.
“La primera vulnerabilidad que afecta a casi todo”
De momento, la vulnerabilidad —denominada por los descubridores Trojan Source— ha sido confirmada en las programaciones asociadas con los lenguajes C#, C++, C, Go, Java, JavaScriipt, Python y Rust.
Dado que los caracteres de anulación de Bidi persisten a través de las funciones de copiar y pegar en la mayorÃa de los navegadores, editores y sistemas operativos modernos, es posible una proliferación incontrolada del ‘exploit’, dijo Ross Anderson, uno de los autores del estudio, al portal Krebs On Security.
“Cualquier desarrollador que copie código de una fuente que no sea de confianza en una base de código protegida puede introducir inadvertidamente una vulnerabilidad invisible”, resaltó el experto.
“Esas son malas noticias para proyectos como Linux y Webkit que aceptan contribuciones de personas al azar, las someten a revisión manual y luego las incorporan al código crÃtico. Esta vulnerabilidad es, hasta donde yo sé, la primera que afecta a casi todo”, señaló Anderson.