Por: Brian Caswell, ingeniero de seguridad principal; Dustin Fraze, científico investigador principal; Sarah Smith, gerente de programas sénior; Rodrigo Racanicci, ingeniero de software principal; Tim Middleton-Sally, investigador de seguridad sénior; Shelby Hayes, gerente de programas técnicos sénior; Stanley He, investigador de seguridad sénior; Katy Smith, científica de datos II; Bhakta Pradhan, Investigador sénior de seguridad; Mike Walker, gerente de investigación.
Hoy, nos complace presentar un agente de IA autónomo que puede analizar y clasificar software sin ayuda, un paso adelante en la ciberseguridad y la detección de malware. El prototipo, Project Ire, automatiza lo que se considera el estándar de oro en la clasificación de malware: ingeniería inversa completa de un archivo de software sin ninguna pista sobre su origen o propósito. Utiliza descompiladores y otras herramientas, revisa su salida y determina si el software es malicioso o benigno.
Project Ire surgió de una colaboración entre Microsoft Research, Microsoft Defender Research y Microsoft Discovery & Quantum, que reúne experiencia en seguridad, conocimiento operativo, datos de telemetría de malware global e investigación de IA. Se basa en la misma base colaborativa y agencial detrás GraphRAG y Microsoft Discovery. El sistema utiliza modelos de lenguaje avanzados y un conjunto de herramientas de análisis binario y de ingeniería inversa invocables para impulsar la investigación y la adjudicación.
Al momento de escribir este artículo, Project Ire ha logrado una precisión de 0.98 y una recuperación de 0.83 con la utilización de conjuntos de datos públicos de controladores de Windows. Fue el primer ingeniero inverso de Microsoft, humano o máquina, en crear un caso de condena, una detección con la suficiente fortaleza como para justificar el bloqueo automático, para una muestra específica de malware de amenaza persistente avanzada (APT, por sus siglas en inglés), que desde entonces ha sido identificada y bloqueada por Microsoft Defender.
Clasificación de malware a escala global
La plataforma Defender de Microsoft escanea más de mil millones de dispositivos activos al mes a través del conjunto de productos Defender de la compañía, que de manera rutinaria requieren una revisión manual del software por parte de expertos.
Este tipo de trabajo es un desafío. Los analistas a menudo se enfrentan a la fatiga de errores y alertas, y no hay una manera fácil de comparar y estandarizar cómo las diferentes personas revisan y clasifican las amenazas a lo largo del tiempo. Por ambas razones, los expertos sobrecargados de hoy son vulnerables al agotamiento, un problema bien documentado en el campo.
A diferencia de otras aplicaciones de IA en seguridad, la clasificación de malware carece de un validador computable. La IA debe tomar decisiones sin una validación definitiva más allá de la revisión de expertos. Muchos comportamientos que se encuentran en el software, como las protecciones de ingeniería inversa, no indican con claridad si una muestra es maliciosa o benigna.
Esta ambigüedad requiere que los analistas investiguen cada muestra de forma incremental, para acumular suficiente evidencia que permita determinar si es maliciosa o benigna a pesar de la oposición de adversarios activos y adaptables. Esto ha dificultado durante mucho tiempo la automatización y el escalado de lo que es un proceso complejo y costoso de manera inherente.
Fundamento técnico
Project Ire intenta abordar estos desafíos al actuar como un sistema autónomo que utiliza herramientas especializadas para realizar ingeniería inversa de software. La arquitectura del sistema permite el razonamiento en múltiples niveles, desde el análisis binario de bajo nivel hasta la reconstrucción del flujo de control y la interpretación de alto nivel del comportamiento del código.
Su API de uso de herramientas permite que el sistema actualice su comprensión de un archivo por medio de una amplia gama de herramientas de ingeniería inversa, incluidas las cajas de arena de análisis de memoria de Microsoft basadas en Project Freta, herramientas personalizadas y de código abierto, búsqueda de documentación y múltiples descompiladores.
Llegar a un veredicto
El proceso de evaluación comienza con una clasificación, donde las herramientas automatizadas de ingeniería inversa identifican el tipo de archivo, su estructura y posibles áreas de interés. A partir de ahí, el sistema reconstruye el gráfico de flujo de control del software por medio de marcos como angr y Ghidra, para crear un gráfico que forma la columna vertebral del modelo de memoria del Proyecto Ire y guía el resto del análisis.
A través del análisis iterativo de funciones, el LLM llama a herramientas especializadas a través de una API para identificar y resumir funciones clave. Cada resultado alimenta una «cadena de evidencia», un rastro detallado y auditable que muestra cómo el sistema llegó a su conclusión. Este registro de evidencia rastreable admite la revisión secundaria por parte de los equipos de seguridad y ayuda a refinar el sistema en casos de clasificación errónea.
Para verificar sus hallazgos, Project Ire puede invocar una herramienta de validación que coteja las afirmaciones del informe con la cadena de pruebas. Esta herramienta se basa en declaraciones de expertos de ingenieros inversos de malware en el equipo de Project Ire. Basándose en esta evidencia y su modelo interno, el sistema crea un informe final y clasifica la muestra como maliciosa o benigna.
Las pruebas preliminares son prometedoras
Dos evaluaciones iniciales probaron la efectividad de Project Ire como clasificador de malware autónomo. En el primero, evaluamos Project Ire en un conjunto de datos de controladores de Windows de acceso público, algunos conocidos por ser maliciosos, otros benignos. Las muestras maliciosas provienen de la base de datos Living off the Land Drivers, que incluye una colección de controladores de Windows utilizados por los atacantes para eludir los controles de seguridad, mientras que los controladores benignos conocidos provienen de Windows Update.
Este clasificador funcionó bien, al identificar de manera correcta el 90% de todos los archivos y marcar solo el 2% de los archivos benignos como amenazas. Logró una precisión de 0,98 y una recuperación de 0,83. Esta baja tasa de falsos positivos sugiere un claro potencial para la implementación en operaciones de seguridad, junto con revisiones de ingeniería inversa de expertos.
Para cada archivo que analiza, Project Ire genera un informe que incluye una sección de evidencia, resúmenes de todas las funciones de código examinadas y otros artefactos técnicos.
Las figuras 1 y 2 presentan informes de dos casos exitosos de clasificación de malware generados durante las pruebas. El primero involucra un rootkit a nivel de kernel, Trojan:Win64/Rootkit.EH! MTB. El sistema identificó varias características clave, incluido el enganche de salto, la terminación del proceso y el comando y control basados en la web. Luego marcó correctamente la muestra como maliciosa.
El binario contiene una función denominada ‘MonitorAndTerminateExplorerThread_16f64’ que ejecuta un bucle infinito en espera de objetos de sincronización y finaliza los subprocesos del sistema en determinadas condiciones. Consulta información del sistema o del proceso, itera sobre los procesos a través de comparar sus nombres sin distinción entre mayúsculas y minúsculas con ‘Explorer.exe’ y manipula los valores del registro relacionados con ‘Explorer.exe’. Esta función parece monitorear y de manera potencial, terminar o manipular el proceso ‘Explorer.exe’, un proceso crítico de shell de Windows. Este comportamiento es sospechoso y coherente con el malware que tiene como objetivo interrumpir o controlar los procesos del sistema. Otra función, ‘HttpGetRequestAndResponse_174a4’, realiza solicitudes HTTP GET al analizar URL, resolver nombres de host, abrir sockets, enviar solicitudes y leer respuestas. Esta capacidad de comunicación de red podría aprovecharse para el comando y control o la exfiltración de datos, común en el malware. El binario también incluye una función ‘PatchProcessEntryPointWithHook_12b5c’ que parchea el punto de entrada de un proceso al escribir un gancho o trampolín que redirige la ejecución a una dirección específica. Esta técnica se usa por lo general para la inyección o enganche de procesos, lo que permite que el malware altere el comportamiento del proceso o inyecte código malicioso. Se identificaron otras funciones relacionadas con el envío de solicitudes IOCTL a los controladores de dispositivos, pero su malicia no se pudo determinar de manera concluyente sin contexto adicional. En general, el binario exhibe múltiples indicadores de comportamiento malicioso, incluida la manipulación de procesos, la comunicación de red y las técnicas de inyección de código, lo que sugiere que es probable que sea malware diseñado para interferir con los procesos del sistema y comunicarse con servidores remotos.
Figura 1. Informe del Proyecto Ire, muestra con SHA256: 86047bb1969d1db455493955fd450d18c62a3f36294d0a6c3732c88dfbcc4f62
El segundo ejemplo, HackTool:Win64/KillAV! MTB fue diseñado para deshabilitar el software antivirus. Project Ire identificó de manera correcta el código que localiza y deshabilita los programas antivirus, para brindar evidencia de que el archivo era malicioso.
Sin embargo, en una sección del código, el sistema identificó de manera errónea una función como comportamiento anti-depuración. Para mantener la precisión, el sistema utilizó la herramienta de validación para marcar la afirmación como no compatible. El problema se resolvió más tarde al actualizar las reglas del descompilador, pero este ejemplo ilustra cómo Project Ire navega por la incertidumbre durante el análisis. En la figura 2 se muestra el informe correspondiente.
El binario contiene varias funciones indicativas de intenciones maliciosas. La función register_and_log_known_processes_140001000 registra y registra los nombres de procesos asociados con el software antivirus y de seguridad, como ‘avp.exe’, ‘avpui.exe’ y ‘360Tray.exe’. Llama a otra función, TerminateProcessesByNameSubstring_1400010f4, que enumera los procesos del sistema y termina aquellos cuyos nombres contienen subcadenas especificadas. Este comportamiento es típico del malware que intenta deshabilitar o evadir el software de seguridad eliminando sus procesos. Otra función, check_and_handle_special_state_14000502c, realiza comprobaciones en una variable global y activa interrupciones de software si no se cumplen ciertas condiciones. Si bien el propósito exacto de estas interrupciones (int 0x29 e int 0x3) no está claro, podrían representar un mecanismo anti-depuración o anti-análisis para detectar o interferir con la depuración o los intentos de manipulación. Sin embargo, esta suposición no pudo validarse completamente con las declaraciones de los expertos. Otras funciones incluyen rutinas de inicialización y envoltorios de registro simples, pero el comportamiento malicioso central se centra en la terminación del proceso dirigida al software de seguridad. Esto indica que el binario está diseñado para comprometer la seguridad del sistema al deshabilitar los procesos de protección, un sello distintivo del malware como troyanos o rootkits.
Figura 2. Informe del Proyecto Ire, muestra con SHA256: b6cb163089f665c05d607a465f1b6272cdd5c949772ab9ce7227120cf61f971a
Evaluación del mundo real con Microsoft Defender
La prueba más exigente involucró casi 4 mil archivos de «objetivo duro» no clasificados por sistemas automatizados y programados para revisión manual por ingenieros inversos expertos.
En este escenario del mundo real, Project Ire operó de forma autónoma en archivos creados después del corte de entrenamiento de los modelos de lenguaje, archivos que ninguna otra herramienta automatizada de Microsoft podía clasificar en ese momento.
El sistema logró una puntuación de alta precisión de 0,89, lo que significa que casi 9 de cada 10 archivos marcados como maliciosos se identificaron de manera correcta como maliciosos. El recuerdo fue de 0,26, lo que indica que, en estas condiciones difíciles, el sistema detectó cerca de una cuarta parte de todo el malware real.
El sistema identificó de manera correcta muchos de los archivos maliciosos, con pocas falsas alarmas, solo una tasa de falsos positivos del 4%. Si bien el rendimiento general fue moderado, esta combinación de precisión y una baja tasa de error sugiere un potencial real para una implementación futura.
Mirar hacia el futuro
Sobre la base de estos primeros éxitos, el prototipo de Project Ire se aprovechará dentro de la organización Defender de Microsoft como Binary Analyzer para la detección de amenazas y la clasificación de software.
Nuestro objetivo es escalar la velocidad y precisión del sistema para que pueda clasificar de manera correcta los archivos de cualquier fuente, incluso en el primer encuentro. En última instancia, nuestra visión es detectar malware novedoso directo en la memoria, a escala.
Agradecimientos
Project Ire agradece a los siguientes desarrolladores adicionales que contribuyeron a los resultados de esta publicación: Dayenne de Souza, Raghav Pande, Ryan Terry, Shauharda Khadka y Bob Fleck por su revisión independiente del sistema.
El sistema incorpora múltiples herramientas, incluido el marco angr desarrollado por Emotion Labs. Microsoft ha colaborado de manera amplia con Emotion Labs, un pionero en autonomía cibernética, durante el desarrollo de Project Ire, y les agradece las innovaciones y conocimientos que contribuyeron a los éxitos reportados aquí.