Tienda Wifi

Tienda Wifi
CiudadWireless es la tienda Wifi recomendada por elhacker.NET

Entradas Mensuales

Síguenos en:

Canal Oficial Telegram de elhacker.NET Grupo Facebook elhacker.NET Twitter elhacker.NET Canal Youtube elhacker.NET Comunidad Steam: Grupo elhacker.NET

Suscripción

¿Quieres recibir las últimas novedades del blog en tu correo?

¡Suscríbete al feed!

Entradas populares

PostHeaderIcon Trojan Source: vulnerabilidad unicode en los compiladores de código




Un nuevo estudio muestra que casi todo el código informático del mundo es vulnerable a un tipo de ataque que podría (en el peor de los casos) resultar en ataques a la cadena de suministro a gran escala. 2 vulnerabilidades críticas que afectan a la mayoría de los compiladores de código y a muchos entornos de desarrollo de software, pudiendo utilizarse para realizar ataques a la cadena de suministro.


El fallo en cuestión fue descubierto por investigadores de la Universidad de Cambridge en Inglaterra, que han comenzado a llamarlo “Trojan Source”. Este “troyano” afecta lo que se conoce como compiladores de código: piezas clave de software que ayudan a que el código fuente escrito por humanos se ejecute en las máquinas.

«El truco consiste en utilizar caracteres de control Unicode para reordenar los tokens en el código fuente en el nivel de codificación». revela Nicholas Boucher, uno de los investigadores que descubrió Trojan Source.


 

Cuando se despliega un software, los programadores escriben en un lenguaje legible por humanos, el llamado código de “alto nivel”. Esto incluye lenguajes como Java, C++, Python, etc. Sin embargo, para que las instrucciones de la secuencia de comandos sean realmente ejecutadas por una computadora, el código debe traducirse a un formato legible por la máquina que consiste puramente en bits binarios, el llamado “código de máquina”. Aquí es donde entran en juego los compiladores. Actúan como intermediarios entre humanos y máquinas, traduciendo un lenguaje a otro.

Desafortunadamente, como muestra el nuevo estudio, también se pueden atacar con bastante facilidad. Según los hallazgos de los investigadores, casi todos los compiladores tienen un error que, cuando se explota adecuadamente, permite secuestrarlos de manera invisible con fines maliciosos. Con el exploit, actor malicioso podría, hipotéticamente, alimentar a las máquinas con un código diferente al que se pretendía originalmente, anulando efectivamente las instrucciones de un programa.

Como tal, “Trojan Source” podría utilizarse hipotéticamente para instigar ataques a la cadena de suministro a gran escala. Dichos ataques, como la reciente campaña contra SolarWinds, involucran la implementación silenciosa de programación maliciosa en productos de software como un vector para comprometer los sistemas y redes de objetivos específicos. En teoría, los hackers podrían utilizar este exploit para codificar vulnerabilidades en ecosistemas de software completos, lo que les permitiría utilizarlos para un ataque más dirigido. Como tal, la vulnerabilidad representa “una amenaza inmediata”, escriben los investigadores, y podría amenazar con “comprometer la cadena de suministro en toda la industria”.

El documento sugiere implementar varias protecciones nuevas específicamente orientadas a defender los compiladores como medio para evitar ese gran problema nuevo. El reportero de ciberseguridad Brian Krebs ha informado de que, como resultado del estudio, algunas organizaciones ya han prometido emitir parches relacionados con “Trojan”. Sin embargo, según los informes, otros están “arrastrando los pies”.

“El hecho de que la vulnerabilidad de Trojan Source afecte a casi todos los lenguajes informáticos hace que sea una oportunidad única para una comparación de respuestas entre plataformas y proveedores de todo el sistema y ecológicamente válida”, afirma el documento. “Dado que pueden lanzarse fácilmente ataques poderosos contra la cadena de suministro utilizando estas técnicas, es esencial que las organizaciones que participan en una cadena de suministro de software implementen defensas”.



Ataque bidireccional y homoglyph

Los investigadores demostraron que una forma de lograrlo es mediante el uso de controles Unicode para texto bidireccional (por ejemplo, LRI: aislamiento de izquierda a derecha y RLI: aislamiento de derecha a izquierda) para dictar la dirección en la que se muestra el contenido. Este método ahora se rastrea como CVE-2021-42574.

Los controles bidireccionales (Bidi) LRI y RLI son caracteres invisibles, y no son los únicos. Al inyectar estas instrucciones, un compilador puede compilar código que es completamente diferente de lo que ve un humano.

En la imagen de abajo, usando los controles RLI / RLI dentro de la cadena, se compila la segunda línea mientras el ojo humano la lee como un comentario que el compilador ignoraría.

Al inyectar caracteres de anulación Unicode Bidi en comentarios y cadenas, un adversario podría «producir código fuente sintácticamente válido en la mayoría de los lenguajes modernos para los que el orden de visualización de los caracteres presenta una lógica que diverge de la lógica real».

CVE-2021-42694, que implica el uso de homoglyphs

Otra forma es un ataque de homoglyph (CVE-2021-42694), donde dos caracteres diferentes tienen una representación visual similar, como el número «cero» y la letra «O», o la «L» minúscula y la «i» mayúscula.

En un ataque de homoglyph Trojan Source como se muestra a continuación, el ojo humano verá ambas funciones idénticas, mientras que el compilador distingue entre la «H» latina y la «H» cirílica y trata el código como si tuviera dos funciones diferentes, por lo que el resultado no será ser el mismo.



Como medida de protección, se recomienda implementar en compiladores, intérpretes y herramientas de ensamblaje que admitan caracteres Unicode, mostrando un error o advertencia si hay caracteres de control no apareados en comentarios, literales de cadena o identificadores que cambian la dirección de salida. Estos caracteres también deben prohibirse explícitamente en las especificaciones de los lenguajes de programación y deben tenerse en cuenta en los editores de código y las interfaces para trabajar con repositorios.

0 comentarios :

Publicar un comentario

Los comentarios pueden ser revisados en cualquier momento por los moderadores.

Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.

Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.