Detección de secuestro de DLL

Nuestros expertos entrenaron un modelo de ML para detectar intentos de secuestro de DLL y lo integraron en el sistema Kaspersky SIEM.

Detección de secuestro de DLL

Para eludir la detección por parte de las soluciones de seguridad, los ciberdelincuentes emplean varias técnicas que enmascaran su actividad maliciosa. Uno de los métodos cada vez más visto en los últimos años en los ataques a sistemas Windows es el secuestro de DLL: la sustitución de las bibliotecas de enlaces dinámicos (DLL) por maliciosas. Y las herramientas de seguridad tradicionales a menudo no detectan el uso de esta técnica.

Para resolver este problema, nuestros colegas de Kaspersky AI Technology Research Center desarrollaron un modelo de aprendizaje automático que puede detectar el secuestro de DLL con alta exactitud. Este modelo ya se ha implementado en la última versión de nuestro sistema SIEM, Kaspersky Unified Monitoring and Analysis Platform. En esta publicación, explicamos los desafíos de detectar el secuestro de DLL y cómo nuestra tecnología los aborda.

Cómo funciona el secuestro de DLL y por qué es difícil de detectar

El inicio repentino de un archivo desconocido en un entorno de Windows inevitablemente llama la atención de las herramientas de seguridad, o simplemente se bloquea. Básicamente, el secuestro de DLL es un intento de hacer pasar un archivo malicioso como conocido y de confianza. Hay varias variaciones del secuestro de DLL: una es cuando los atacantes distribuyen una biblioteca maliciosa junto con software legítimo (transferencia de DLL) para que el software lo ejecute; otra es cuando reemplazan las DLL estándar que son llamadas por programas ya instalados en el ordenador; y también está la que consiste en manipular los mecanismos del sistema que determinan la ubicación de la biblioteca que un proceso carga y ejecuta.

Como resultado, el archivo DLL malicioso se inicia mediante un proceso legítimo dentro de su propio espacio de direcciones y con sus propios privilegios; por lo tanto, los sistemas de protección de endpoints habituales ven esta actividad como legítima. Es por eso que nuestros expertos decidieron contrarrestar esta amenaza con el uso de tecnologías de inteligencia artificial.

Detección de secuestro de DLL con ML

Los expertos del AI Technology Research Center entrenaron un modelo de ML para detectar el secuestro de DLL en función de la información indirecta sobre la biblioteca y el proceso que la llamó. Identificaron indicadores clave de un intento de manipular una biblioteca: si el archivo ejecutable y la biblioteca están ubicados en rutas estándar, si se ha cambiado el nombre del archivo, si el tamaño y la estructura de la biblioteca han cambiado, si su firma digital está intacta, etc. Inicialmente entrenaron el modelo con datos sobre la carga de bibliotecas de enlaces dinámicos, obtenidos tanto de sistemas internos de análisis automático como de telemetría anónima de Kaspersky Security Network (KSN) proporcionada voluntariamente por nuestros usuarios. Para el etiquetado, nuestros expertos utilizaron datos de nuestras bases de datos de reputación de archivos.

El primer modelo era bastante inexacto, por lo que antes de añadirlo a la solución, nuestros expertos realizaron múltiples iteraciones, perfeccionando tanto el etiquetado del conjunto de datos de entrenamiento como las características que indican el secuestro de DLL. Como resultado, el modelo ahora detecta esta técnica con alta exactitud. En Securelist, nuestros colegas publicaron un artículo detallado sobre cómo desarrollaron esta tecnología: desde la hipótesis inicial, pasando por las pruebas en Kaspersky Managed Detection and Response y finalmente hasta la aplicación práctica en nuestra plataforma SIEM.

Detección de secuestro de DLL en Kaspersky SIEM

En el sistema SIEM, el modelo analiza los metadatos de los archivos DLL cargados y los procesos que los llamaron desde la telemetría, marca los casos sospechosos y luego verifica su veredicto con los datos de la nube de KSN. Esto no solo mejora la exactitud de la detección de secuestro de DLL, sino que también reduce los falsos positivos. El modelo puede funcionar tanto en el subsistema de correlación como en el subsistema de recopilación de eventos.

En el primer caso, comprueba solo los eventos que ya activaron las reglas de correlación. Esto permite una evaluación de amenazas más precisa y una generación de alertas más rápida si es necesario. Como no se verifican todos los eventos, el volumen de consultas en la nube no afecta significativamente la velocidad de respuesta del modelo.

En el segundo caso, el modelo procesa todos los eventos de carga de la biblioteca que cumplen determinadas condiciones. Este método consume más recursos, pero resulta muy valioso para la búsqueda retrospectiva de amenazas.

En otra publicación del blog de Securelist, los colegas del Grupo de Investigación Antimalware describieron en detalle cómo el modelo de detección de secuestro de DLL ayuda a Kaspersky SIEM a detectar ataques dirigidos, con ejemplos reales de detección temprana de incidentes.

Más importante aún, la exactitud del modelo solo continuará mejorando a medida que se acumulen más datos sobre amenazas y procesos legítimos, y que los algoritmos de KSN evolucionen.

Consejos