Emulator
Acerca de la tecnología de emulación de códigos
El método de emulación de códigos de detección de malware analiza el comportamiento de un archivo mediante la emulación de su ejecución en un ambiente virtual (emulado). En general, este enfoque es similar al de la detección de malware en un sandbox, pero la emulación y el sandbox completo difieren en detalles de diseño y aplicación. Veamos la diferencia.
Un sandbox completo, a diferencia de un emulador, es un método "pesado", ya que emula el ambiente completo y ejecuta una muestra analizada en una máquina virtual con aplicaciones instaladas y un sistema operativo (SO) real. Como resultado, este método requiere una alta capacidad de procesamiento y plantea limitaciones de compatibilidad para el sistema host. Por este motivo, un sandbox es más eficaz en soluciones centralizadas en las instalaciones y en la nube. No es idóneo para la detección de malware en hosts de usuarios y otras computadoras normales.
Un emulador imita solo la ejecución de la muestra en sí. Crea temporalmente objetos con los que interactúa la muestra: contraseñas que un malware podría robar, antivirus que intentarán detener la memoria, el registro del sistema, etc. Estos objetos no son partes reales del sistema operativo ni del software, sino imitaciones creadas por el emulador. Su control sobre el ambiente emulado permite que el emulador avance en el tiempo, sea testigo del comportamiento futuro de los archivos y evite que el malware tenga la capacidad de evadir por demora.
Un emulador determina las funciones de comportamiento esenciales de un archivo analizado mientras utiliza muchos menos recursos que un sandbox, y es idóneo para hosts de usuarios. Por lo general, la ejecución de archivos desconocidos se pospone hasta que se analizan con un emulador. El enfoque de la emulación no es nuevo, pero algunos emuladores son muy avanzados y su participación en la detección de malware es significativa. Los emuladores actuales cuentan con servicios de reputación basados en la nube y su eficacia es impulsada por el aprendizaje automático.
Emulador de Kaspersky
Nuestras soluciones incluyen un emulador como una línea de defensa en un enfoque de protección multicapa. Emula los archivos y los scripts binarios, y la importancia de estos últimos está aumentando con la creciente popularidad de los ataques que no utilizan archivos y se basan en scripts.
La emulación está optimizada para recursos informáticos limitados. Se necesita mucha menos RAM por objeto que en un sandbox y se analizan muchos objetos simultáneamente sin representar una carga significativa para el sistema. Debido a la aceleración de hardware, la emulación utiliza de forma segura el procesador para acelerar la exploración en unas 20 veces.
Nuestras soluciones comienzan el análisis de la emulación "a pedido", cuando un usuario solicita un análisis de disco o "durante el acceso", que implica que un objeto se analiza automáticamente antes de que se acceda a él o se ejecute. La emulación puede comenzar en paralelo con otros métodos de detección, como solicitudes de datos de reputación del proceso en la nube.
Los emuladores están implementados en las soluciones de endpoint de Kaspersky, las soluciones de nivel de puerta de enlace (p. ej., en los servidores proxy y de correo electrónico) y en la protección del ambiente de virtualización. En la infraestructura de Kaspersky, los emuladores potentes son parte del proceso de clasificación de objetos.
Tareas del emulador:
- Emular la ejecución de todos los archivos ejecutables (PE): *.exe, *.dll, *.sys y otros en el ambiente de Windows.
- Procesar los tipos de script JavaScript, VBScript y AutoIT, además de los scripts independientes (descargados como archivos).
- Analizar los scripts recibidos a través de enlaces web (en una página web, un correo electrónico, un mensaje) o integrados en archivos PDF y MS Office.
Actualizaciones
La tecnología de emulación se implementa con un núcleo de emulación y registros de detección, que analizan los datos proporcionados por el núcleo. Los registros se crean en Kaspersky y las soluciones descargan actualizaciones cada hora. Un registro de detección puede detectar muchas muestras de malware diferentes con contenido binario diferente, pero con un comportamiento similar.
Flujo de detección de malware
- El emulador recibe una solicitud para analizar un objeto (un archivo ejecutable o un script) desde otro componente de una solución de seguridad.
- El emulador ejecuta de forma segura las instrucciones del objeto una por una en un ambiente virtual, a partir del punto de entrada del objeto. Si una instrucción interactúa con el ambiente (el sistema operativo, el registro, otros archivos, la Web, la memoria, etc.), el emulador imitará la respuesta de estos objetos.
- El emulador recopila artefactos y los somete al analizador heurístico. El analizador otorga un veredicto basado en estos artefactos con el componente que solicitó el análisis.
- La emulación se detiene cuando hay suficientes artefactos para detectar un malware o cuando se agota el tiempo de espera.
Artefactos recopilados mediante el emulador
Para los archivos ejecutables (binarios):
- Registro de llamadas de API
- Todos los cambios en el sistema de archivos y el registro del sistema
- Volcados de memoria
Para los scripts:
- Argumentos y resultados de operaciones en cadena
- Llamadas de funciones incorporadas y de funciones proporcionadas por el ambiente
- Eventos
- Inserciones en el sistema de archivos y los scripts secundarios
Prevención de evasión
Los creadores de malware avanzados equipan a su malware con características para evitar la detección en una emulación. Nuestro emulador rastrea y contrarresta estas nuevas técnicas de evasión. Ejemplos:
Evasión A: antes de la ejecución, el malware se debe descomprimir. Esto requiere mucho tiempo de procesamiento y, por lo general, es suficiente para evadir la detección después de que se agota el tiempo de espera.
Medida contra evasión A: el emulador reconoce archivos comprimidos y ajusta la profundidad de la emulación según corresponda. La aceleración de hardware proporciona al emulador la potencia suficiente para saltarse la descompresión.
Evasión B: antes de ejecutar su carga maliciosa, el malware puede acceder a recursos web o parámetros de su ambiente (p. ej., el nombre de la computadora o el tamaño del disco) y comprobar si están disponibles y si son importantes. Si no obtienen una respuesta significativa, el malware no ejecutará su carga y evadirá la detección.
Medida contra evasión B: después de que el archivo analizado realice las solicitudes, el emulador imita la información sobre el ambiente y los recursos del sistema, y los vuelve tan significativos como sea posible. Por ejemplo, selecciona nombres de computadora de forma aleatoria, de modo que el malware no pueda utilizar nombres específicos de computadoras como una señal de ejecución en una emulación