FV8: Una Nueva Herramienta para Detectar JavaScript Malicioso
FV8 mejora la detección de técnicas evasivas en JavaScript a través de análisis dinámico.
― 7 minilectura
Tabla de contenidos
- El Problema con las Técnicas de Evasión
- FV8: Una Nueva Solución
- Cómo Funciona FV8
- Los Resultados: Lo Que Encontró FV8
- La Importancia del Análisis Dinámico
- El Papel de la Ofuscación
- Verificación Manual de Hallazgos
- Perspectivas sobre Extensiones Maliciosas
- El Ecosistema NPM
- Agrupando Técnicas de Evasión
- Conclusión
- Fuente original
- Enlaces de referencia
El Código Malicioso puede esconderse a plena vista, lo que hace difícil que las herramientas de seguridad lo encuentren y lo detengan. Esto es especialmente cierto para JavaScript, un lenguaje de programación comúnmente usado en sitios web. Los atacantes suelen usar trucos para evitar ser detectados, permitiendo que el código dañino se ejecute sin ser notado. Estas Técnicas de evasión hacen que sea complicado para las herramientas de análisis estático y dinámico detectar acciones maliciosas.
El Problema con las Técnicas de Evasión
Las técnicas de evasión son métodos que permiten que el código dañino se escape del radar. Pueden hacer que parezca que no está ocurriendo nada malo, lo cual es especialmente efectivo en JavaScript. Este lenguaje a menudo permite la inyección dinámica de código, lo que significa que se puede insertar código durante el tiempo de ejecución. Esta naturaleza dinámica facilita a los atacantes ejecutar sus planes ocultos.
Las herramientas que dependen de análisis estático y dinámico a menudo pasan por alto este tipo de evasión. El análisis estático revisa el código sin ejecutarlo, mientras que el Análisis Dinámico evalúa el código mientras se ejecuta. Ambos métodos pueden fallar contra el código evasivo, lo que es una preocupación creciente en ciberseguridad.
FV8: Una Nueva Solución
Para combatir este problema, se ha desarrollado una versión modificada del motor JavaScript V8 llamada FV8. Este motor ha sido diseñado para buscar activamente técnicas de evasión dentro del código JavaScript. Al forzar la ejecución de rutas de código específicas, FV8 puede exponer acciones evasivas que normalmente pasarían desapercibidas por otras herramientas.
FV8 funciona haciendo cumplir la ejecución de código en partes vitales del entorno JavaScript, específicamente apuntando a APIs que pueden inyectar código dinámicamente. Esto mejora las posibilidades de detectar código malicioso escondido dentro de archivos JavaScript. La herramienta se ha integrado tanto en el entorno Node.js como en el navegador Chromium, lo que amplía su usabilidad y efectividad.
Cómo Funciona FV8
FV8 opera tomando control de la ejecución del código de manera selectiva. Se enfoca en condiciones específicas que podrían indicar técnicas de evasión, ejecutando las rutas de código relevantes para aumentar la visibilidad. Este método mejora la cobertura del código, permitiendo analizar más partes del código.
La integración de FV8 en el entorno Node.js le permite examinar paquetes de npm, mientras que su presencia en el navegador Chromium le permite inspeccionar extensiones de navegador. La herramienta ha sido probada contra una gran cantidad de estos paquetes y extensiones, revelando numerosos casos de acciones evasivas.
Los Resultados: Lo Que Encontró FV8
En pruebas extensivas, FV8 detectó una variedad de técnicas evasivas. Identificó 28 categorías únicas de evasión, incluyendo cinco métodos no reportados previamente. En una muestra de datos maliciosos confirmados, la herramienta marcó 1,443 paquetes de npm como conteniendo técnicas evasivas e identificó 164 extensiones maliciosas. Esto subraya la efectividad de FV8 para revelar comportamientos evasivos.
Además de identificar técnicas evasivas, FV8 también descubrió una cantidad significativa de código inyectado. En pruebas que involucraron más de 39,000 extensiones de navegador, reveló un número asombroso de scripts inyectados, mostrando qué tan profundamente puede estar incrustado el código malicioso.
La Importancia del Análisis Dinámico
El análisis dinámico es crucial para entender el comportamiento de JavaScript en tiempo real. Muchas herramientas existentes no logran manejar la naturaleza recursiva de la ejecución del código, donde FV8 se destaca. Al examinar el código mientras se ejecuta y forzar las rutas de ejecución, FV8 puede identificar amenazas ocultas que de otro modo pasarían desapercibidas.
Muchas técnicas de evasión comunes, como la ofuscación o las comprobaciones de tiempo, pueden engañar fácilmente a los métodos de detección tradicionales. La capacidad de FV8 para exponer estas técnicas lo convierte en un recurso valioso en la lucha contra el JavaScript malicioso.
El Papel de la Ofuscación
La ofuscación es una técnica común usada por los atacantes para ocultar código malicioso. Complica la lectura y comprensión del código, dificultando los esfuerzos de detección. FV8 ha demostrado un sólido desempeño en el manejo de varias técnicas de ofuscación.
Aunque no puede abordar todos los tipos de ofuscación, FV8 cubre una cantidad sustancial de ellas. Esta efectividad refuerza aún más la posición de la herramienta como un recurso esencial para los analistas de ciberseguridad.
Verificación Manual de Hallazgos
A pesar de la naturaleza automatizada de FV8, la verificación humana sigue siendo un componente crítico. Después de que FV8 marca problemas potenciales, los expertos en seguridad revisan manualmente los elementos señalados para confirmar su naturaleza maliciosa. Este proceso manual combina la detección automatizada con el análisis experto, aumentando la precisión general.
La etapa de verificación es esencial para asegurar que los hallazgos de la herramienta sean válidos. Los expertos evalúan las extensiones y paquetes marcados para determinar si realmente exhiben comportamiento malicioso.
Perspectivas sobre Extensiones Maliciosas
Un análisis de las extensiones marcadas reveló que un número significativo empleaba técnicas evasivas. Entre ellas, se usaron una variedad de métodos para ocultar acciones maliciosas de manera efectiva. Las tácticas comunes incluían verificar la interacción del usuario y las condiciones del entorno para evitar ser detectados.
Los hallazgos mostraron que muchas de estas extensiones maliciosas lograron eludir las medidas de seguridad existentes. Al emplear tácticas evasivas, pudieron llevar a cabo sus acciones dañinas sin levantar sospechas.
El Ecosistema NPM
El ecosistema de npm es otra área donde las técnicas evasivas son prevalentes. Con millones de paquetes disponibles, los atacantes pueden encontrar oportunidades para insertar código malicioso. La integración de FV8 en este entorno permite realizar exámenes exhaustivos de estos paquetes, mejorando las posibilidades de identificar amenazas.
La herramienta marcó con éxito numerosos paquetes maliciosos de npm, mostrando su efectividad dentro de este vasto paisaje. Esta capacidad de revelar amenazas ocultas en tiempo real es invaluable, especialmente a medida que el ecosistema de npm sigue creciendo.
Agrupando Técnicas de Evasión
Para mejorar la precisión de la detección, FV8 emplea un algoritmo de agrupación para analizar el comportamiento de las extensiones marcadas. Este proceso agrupa acciones evasivas similares, ayudando a identificar patrones que pueden indicar intención maliciosa.
Al agrupar técnicas de evasión, los equipos de seguridad pueden obtener información sobre cómo operan los atacantes. Esta comprensión puede informar futuras medidas de seguridad, ayudando a desarrollar defensas más robustas contra amenazas en evolución.
Conclusión
El desarrollo de FV8 representa un avance significativo en la lucha contra el JavaScript malicioso. Al ofrecer un enfoque innovador para el análisis dinámico, aumenta las posibilidades de detectar técnicas evasivas tanto en paquetes de npm como en extensiones de navegador.
Los conocimientos obtenidos de los hallazgos de FV8 subrayan la importancia de medidas de seguridad proactivas. A medida que los atacantes continúan refinando sus tácticas de evasión, herramientas como FV8 jugarán un papel vital en el fortalecimiento de las defensas contra el código malicioso.
En el paisaje en constante cambio de la seguridad web, mantenerse un paso adelante de las amenazas potenciales es esencial. Las capacidades de FV8 destacan la necesidad de continuar con la investigación y el desarrollo en el campo, asegurando que las medidas de seguridad se mantengan al día con las tácticas usadas por los actores maliciosos.
Título: FV8: A Forced Execution JavaScript Engine for Detecting Evasive Techniques
Resumen: Evasion techniques allow malicious code to never be observed. This impacts significantly the detection capabilities of tools that rely on either dynamic or static analysis, as they never get to process the malicious code. The dynamic nature of JavaScript, where code is often injected dynamically, makes evasions particularly effective. Yet, we lack tools that can detect evasive techniques in a challenging environment such as JavaScript. In this paper, we present FV8, a modified V8 JavaScript engine designed to identify evasion techniques in JavaScript code. FV8 selectively enforces code execution on APIs that conditionally inject dynamic code, thus enhancing code coverage and consequently improving visibility into malicious code. We integrate our tool in both the Node.js engine and the Chromium browser, compelling code execution in npm packages and Chrome browser extensions. Our tool increases code coverage by 11% compared to default V8 and detects 28 unique evasion categories, including five previously unreported techniques. In data confirmed as malicious from both ecosystems, our tool identifies 1,443 (14.6%) npm packages and 164 (82%) extensions containing at least one type of evasion. In previously unexamined extensions (39,592), our tool discovered 16,471 injected third-party scripts, and a total of 8,732,120 lines of code executed due to our forced execution instrumentation. Furthermore, it tagged a total of 423 extensions as both evasive and malicious and we manually verify 110 extensions (26%) to actually be malicious, impacting two million users. Our tool is open-source and serves both as an in-browser and standalone dynamic analysis tool, capable of detecting evasive code, bypassing obfuscation in certain cases, offering improved access to malicious code, and supporting recursive analysis of dynamic code injections
Autores: Nikolaos Pantelaios, Alexandros Kapravelos
Última actualización: 2024-05-21 00:00:00
Idioma: English
Fuente URL: https://arxiv.org/abs/2405.13175
Fuente PDF: https://arxiv.org/pdf/2405.13175
Licencia: https://creativecommons.org/licenses/by/4.0/
Cambios: Este resumen se ha elaborado con la ayuda de AI y puede contener imprecisiones. Para obtener información precisa, consulte los documentos originales enlazados aquí.
Gracias a arxiv por el uso de su interoperabilidad de acceso abierto.