¿Es posible reconocer un código que ni el hombre ni la máquina pueden ver?
En enero de 2025, los investigadores de Juniper Threat Labs descubrieron una nueva técnica de ofuscación de JavaScript que se emplea activamente en ataques de phishing. Los atacantes utilizan caracteres Unicode invisibles para ocultar código malicioso, haciéndolo prácticamente indetectable tanto para los analistas como para los sistemas de protección automatizados.
El método se basa en la sustitución de los valores binarios de los caracteres ASCII por caracteres Unicode invisibles de Hangul (U+FFA0 y U+3164). Esto permite incrustar código malicioso en scripts legítimos sin llamar la atención. Además, el código oculto se almacena como una propiedad de un objeto JavaScript y su descifrado se realiza mediante JavaScript Proxy, que restaura el código original cuando es invocado.
Los investigadores señalaron que los ataques tenían un alto grado de personalización: se utilizaba información confidencial sobre las víctimas y se implementaban técnicas de antidepuración, incluida la verificación del retardo en la ejecución del código y la salida automática si se detectaba un depurador. También se empleó un envoltorio recursivo de enlaces a través de Postmark para ocultar la URL final de phishing.
Esta técnica de ofuscación fue revelada por primera vez por el desarrollador de JavaScript Martin Kleppe en octubre de 2024. En menos de tres meses, los ciberdelincuentes comenzaron a utilizarla activamente, lo que resalta la rapidez con la que se adaptan las nuevas técnicas en ataques reales.
Juniper Threat Labs vincula los ataques detectados con la herramienta de phishing Tycoon 2FA, que anteriormente se utilizó para comprometer cuentas con autenticación de dos factores. Esto sugiere una alta probabilidad de que el nuevo método se propague entre un grupo más amplio de atacantes.
La técnica de ofuscación que emplea caracteres Unicode invisibles dificulta la detección de amenazas, ya que la mayoría de los analizadores de código no reconocen estos caracteres como parte del código fuente. Dado lo fácil que es implementar este método y su alta efectividad para eludir los mecanismos de detección, es previsible que continúe extendiéndose entre los ciberdelincuentes.