Engineering

Cómo crear un entorno de prueba de análisis de malware con Elastic Security

Como analistas de seguridad del equipo de InfoSec de Elastic, habitualmente vemos a los usuarios recurrir a nuestro equipo y preguntar: “¿Es seguro abrir este archivo?”. O que un usuario reportó un correo electrónico de phishing con un adjunto que no abrió, pero observamos a partir de los logs que otros 10 usuarios también recibieron ese correo electrónico y no lo reportaron, por lo que no se activaron alertas en sus sistemas. Un ataque que vemos de forma habitual son los correos electrónicos de phishing que contienen adjuntos sin código malicioso, por lo que no se activa ninguna alerta, pero intentan aplicar ingeniería social en los usuarios para robar su contraseña.

En estas situaciones, el equipo de seguridad debe averiguar rápidamente qué ocurrió en uno de sus sistemas al ejecutar un archivo para determinar si se hubiera detectado o detenido. De lo contrario, deben comprender con rapidez qué acciones se realizaron en el host. En estos casos, el equipo de seguridad debe tener un entorno de prueba de máquina virtual (VM) bien instrumentado que pueda usar para ejecutar de forma segura el archivo en cuestión y observar lo que sucede. El equipo de InfoSec de Elastic siempre supera los límites con los productos de Elastic como parte de nuestro esfuerzo Cliente cero, por lo que decidimos crear un entorno de prueba con los productos de Elastic.

En este blog, demostraremos cómo el equipo de InfoSec de Elastic usa Fleet y Elastic Security como entorno de prueba para malware totalmente instrumentado. No solo Elastic se adapta de manera natural para la instrumentación y recopilación de datos de un entorno de prueba, sino que también es fácil de compilar y se puede crear en minutos.

¿Qué es el análisis dinámico de malware?

El análisis dinámico de malware consta en ejecutar y observar una pieza de software sospechosa en una VM aislada. El objetivo del análisis dinámico es conocer lo siguiente:

  • Qué procesos ejecuta el malware
  • Qué cambios hace en un host
  • Qué conexiones de red establece
  • Qué archivos descarga para la segunda o tercera etapa del ataque

Después de observar el malware, puedes tomar la información que obtuviste para crear detecciones y defensas nuevas, o buscar otra actividad maliciosa en tu red.

¿Por qué Elastic?

Si alguna vez creaste un entorno de prueba para observar y analizar malware, sabes que configurar tu entorno de prueba puede ser un proceso largo que involucra la instalación y configuración de docenas de distintas piezas de software. Esto puede incluir la instalación y configuración de un conjunto de softwares como Wireshark, Regshot y ProcMon para avanzar manualmente por la ejecución del malware y observar y documentar las acciones.

Existen sistemas de entornos de prueba para análisis dinámico de malware avanzados como Cuckoo Sandbox que tienen muchas características y capacidades como la automatización, pero suelen requerir mucho más tiempo para instalarlos y configurarlos, y quizá no sean necesarios para todos los equipos de InfoSec. Muchas de las muestras de malware de phishing que vimos recientemente son intentos de ingeniería social que requieren la interacción de los usuarios para robarles las credenciales. En estos casos es posible que los sistemas automatizados no recopilen todos los indicadores de compromiso.

Algunas muestras de malware buscarán la existencia de muchas de estas herramientas y dejarán de ejecutarse, lo que dificulta su análisis. Otros malware incluso buscarán de forma activa estas herramientas y terminarán los procesos o sobrescribirán los logs dentro del entorno de prueba. Debido a esto, el análisis dinámico de malware puede llevar mucho tiempo cuando trabajas en un incidente activo que requiere atención inmediata.

Elastic Endpoint Security es un agente único que recopila información sobre las acciones que ocurren en el sistema y visualiza rápidamente el árbol de procesos para análisis. Esto permite una investigación rápida y fácil de lo que sucedió exactamente y te proporciona los indicadores que necesitas para mejorar tus detecciones y protecciones. La vista Analyzer (Analizador) en Elastic Security te muestra el árbol de procesos completo, donde verás todos los procesos secundarios y sus indicadores asociados creados por el proceso de malware inicial.

La vista Analyzer (Analizador) te permite visualizar rápidamente un árbol de procesos y ver las acciones que realizó un proceso

Creación del entorno de prueba

Existen varios motivos diferentes para usar un entorno de prueba de análisis de malware. Para este caso de uso, nuestro objetivo es tener un entorno virtual similar a uno empresarial estándar, pero que también esté exhaustivamente instrumentado para poder observar cada acción que inicie el malware.

Cuando crees el entorno de prueba, quizá te convenga crear dos imágenes para cada compilación: una ‘imagen reforzada’ compilada con las mismas protecciones que tienes en tu empresa y otra ‘imagen vulnerable’ con la mayoría de las protecciones desactivadas. La ventaja de tener dos imágenes es que la reforzada te mostrará lo que sucedería en tu entorno si alguien ejecutara el archivo, mientras que la imagen vulnerable te mostrará la ejecución completa del malware. En una empresa lo suficientemente grande, casi siempre hay sistemas con protecciones desactivadas, por lo que recomendamos ambos métodos.

Creación de sistemas de prueba

El primer paso es crear las VM usadas para ejecutar los archivos. Se puede usar cualquier software de virtualización para compilar las imágenes. No abarcaremos la configuración de tu software de virtualización, pero es importante aislar los sistemas de tu host y red empresarial lo más posible cuando ejecutas el malware. En esta situación, compilaré una VM con Windows 10 y una imagen con MacOS. Si tienes una compilación estándar de Linux para tu empresa, podrías compilar una de esas también.

Después de crear las VM, recomendamos instalar todos los softwares de uso habitual que tienes en tu dominio, como MS Office, Adobe Reader o Python. El entorno de prueba debe incluir todo lo que los usuarios usarían para ejecutar un archivo. En las VM con Windows, recomendamos activar el logging ScriptBlock de PowerShell. El logging ScriptBlock guardará el texto completo de cualquier script de PowerShell ejecutado en tus logs de eventos de Windows que pueden recopilarse con el Agente de Elastic. Cuando configures tu VM ‘vulnerable’, necesitarás cambiar varias configuraciones para desactivar todas las protecciones integradas del SO. Algunos malware avanzados de Windows comprobarán si el host es parte de un dominio antes de descargar la segunda etapa, por lo que te convendrá configurar tu VM para agregarla a un dominio falso con un nombre similar al de tu empresa.

Si además quieres recopilar los datos de Sysmon del host Windows, también puedes hacerlo. El agente Elastic Endpoint recopila en gran medida la misma información que Sysmon, por lo que es preferible personalizar la configuración de Sysmon para no duplicar los datos. Una vez que hayas instalado y configurado Sysmon, el Agente de Elastic puede transmitir esos eventos a tu cluster usando la integración de Windows.

Configuración de tu cluster de Elastic Security

Para esta prueba usamos Elastic 7.10 en Elastic Cloud. Configurar tu cluster en Elastic Cloud es la forma más sencilla de crear y hospedar un cluster nuevo para pruebas y puede ponerte en marcha en minutos con todas las características de la suscripción Platino. Si deseas compilar un entorno de prueba completamente aislado, puedes configurar tu propio Elastic Stack en las instalaciones. Si optarás por la opción en las instalaciones, puedes seguir estas instrucciones para instalar el Elastic Stack; todo lo abarcado en este blog está incluido sin cargo en nuestro nivel Básico gratuito.

Una vez que hayas creado tu cluster en Elastic Cloud, tendrás que iniciar sesión y configurar Elastic Security. Si deseas ver un recorrido en video de la configuración, tenemos uno disponible aquí.

Configuración

El primer paso es iniciar sesión en Kibana como administrador y navegar a Security (Seguridad) > Administration (Administración) > pestaña Endpoints y seleccionar Add Endpoint Security (Agregar Endpoint Security).

Vista de configuración de administración de Endpoint Security

Primero necesitas crear una integración de seguridad. Asigna un nombre a tu integración y selecciona Save integration (Guardar integración). Puedes crear varias integraciones y políticas del Agente, pero lo más sencillo para este entorno de prueba es usar una sola política para todos tus sistemas de entorno de prueba. Una sola política funcionará para tus sistemas Linux, Windows y MacOS.

Página del Agente de Elastic para agregar una integración

Selecciona tu integración y después Enroll Agent (Registrar agente). En la pantalla que aparece, confirma que deseas Enroll in Fleet (Registrar en Fleet). Esto te permitirá configurar y controlar tus agentes por completo a través de Kibana.

Registrar un agente con Endpoint Security

Si además deseas recopilar logs de eventos de Windows, selecciona Add integration (Agregar integración), después Windows en las integraciones precreadas, usa la configuración predeterminada, selecciona Save Integration (Guardar integración) para recopilar los eventos de Windows Security, eventos de Sysmon, logging de Scriptblock de PowerShell y cualquier log de evento de Windows configurado para reenviarse.

Para este entonces, deberías tener una política predeterminada configurada que despliegue la seguridad de endpoint, el módulo System y los logs de eventos de Windows de los sistemas Windows.

Vista de política del agente de Fleet

Ahora estás listo para desplegar tus agentes en tus sistemas de entorno de prueba. Selecciona la pestaña Agents (Agentes). Si este es tu primer agente, necesitarás ser admin y después seleccionar el botón para crear automáticamente el usuario de Fleet en Kibana. Después haz clic en Add Agent (Agregar agente), que te llevará a la página de descarga del Agente de Elastic y te mostrará los comandos que necesitarás ejecutar para instalar el agente en tus VM. Después de descargar e instalar el agente, deberías ver que aparece automáticamente en la lista Agents (Agentes).

Vista de estado de agentes

En Elastic Security, tendrás que configurar Integration Policy (Política de integración) de los agentes de Elastic Endpoint. Agent Policy (Política de agente) establece la política para el Agente de Elastic, mientras que Integration Policy (Política de integración) establece la política de la integración de seguridad de endpoint que despliega el agente. La política de integración de seguridad de endpoint puede configurarse en la pestaña Administration administración en Elastic Security. Selecciona Integration Policy (Política de integración) junto a uno de tus agentes para abrir la vista.

Vista de política de integración de Endpoint Security

Esto abrirá la vista Integrations Settings (Configuración de integraciones). En esta vista, asegúrate de que Malware Protections Enabled (Protecciones contra malware activadas) esté activada y de que Protection Level (Nivel de protección) esté configurada en Detect (Detectar) y no en Prevent (Prevenir). Si tienes activadas protecciones de malware pero las tienes en modo de detección, verás las alertas de detección de malware, pero Elastic Security no realizará acciones para detener el malware.

malware-analysis-sandbox-malware-protections-detect-mode.jpg

El paso siguiente es tomarse un minuto para configurar el motor de detección en Elastic Security e instalar todas las reglas de detección Elastic prediseñadas incluidas. No es necesario que lo hagas para el entorno de prueba, pero es fácil de hacer y con frecuencia detectará acciones de malware, lo que hará más facilitará la clasificación. Para hacerlo, selecciona la pestaña Detections (Detecciones) en Elastic Security y después Manage detection rules (Gestionar reglas de detección). Desde allí, haz clic en Load Elastic prebuilt rules and timeline templates (Cargar plantillas de línea de tiempo y reglas prediseñadas de Elastic). La primera vez tendrás que hacerlo como administrador.

Vista de motor de detección

Líneas de tiempo y reglas prediseñadas de carga de motor de detección

Una vez cargadas las reglas, tendrás que habilitar aquellas que deseas activar. Puedes repasar las reglas y seleccionar solo las que deseas activar o puedes activarlas todas, si así lo prefieres. Activarlas todas es la opción más sencilla. No hace ningún daño tener reglas activadas, incluso si no hay datos para esa regla en particular.

Recopilación de tráfico de red (opcional)

Además de capturar la actividad de malware en un host, es posible que también quieras recopilar su actividad de red de un host externo. Una ventaja de hacerlo es la capacidad de ver los datos dentro de los eventos de red (no simplemente que sucedieron). Hay varias formas de hacerlo, pero es mejor usar una VM diferente que examine el tráfico de red en la misma red virtual.

Para hacerlo, puedes usar Packetbeat, que te brindará un buen resumen de los datos sin inundar tu stack con eventos, o TShark y Filebeat para transmitir una captura completa del paquete a Elasticsearch. En la configuración de tu Packetbeat, tendrás que configurar la recopilación de solicitudes y respuestas de la mayoría de los protocolos, y la recopilación de los certificados sin procesar de todo el tráfico de TLS. Es muy habitual que el malware reutilice los certificados de TLS, y pueden ser un tesoro de nombres de dominio maliciosos.

Tu entorno de prueba de análisis de malware ahora está completo y listo para las pruebas. Recuerda realizar un snapshot de tus VM en estado limpio antes de comenzar a ejecutar malware.

Análisis de malware

Nota: Ten cuidado de no abrir nunca malware activo en tu sistema host. Recomendamos mantener el presunto malware en un archivo zip protegido con contraseña para evitar abrirlo accidentalmente. De ser posible, descarga el malware directamente en el sistema de entorno de prueba.

En esta prueba, detonamos un elemento de la familia Emotet Malware. Esta pieza de malware en particular es un documento malicioso de Office que requiere que el usuario active las macros para poder ejecutarse. Si no desactivaste las protecciones de malware en Endpoint Policy (Política de endpoint), Elastic Security pondrá inmediatamente el malware en cuarentena, y tu prueba será muy breve.

Después de detonar el Emotet Malware en tu VM, puedes regresar a Elastic Security en Kibana y ver los estallidos. En la pestaña Detections (Detecciones), probablemente veas muchas alertas nuevas sobre actividad de malware en el host. Puedes ver en la captura de pantalla siguiente que hubo muchas alertas de detección de malware iniciales. Si la seguridad de endpoint estuviera configurada para prevenir en lugar de detectar, se habría detenido el malware y se lo habría puesto en cuarentena en este momento, y no tendrías todos los datos adicionales.

Alertas de detección creadas por el malware Emotet

Junto a una de las alertas, puedes seleccionar el ícono Analyze Event (Analizar evento) para abrir la vista Analyzer (Analizador) para visualizar lo que sucedió en un gráfico de árbol.

Ícono Analyze event (Analizar evento)

En este ejemplo, seleccionamos el comando PowerShell de apariencia extraña para ver cómo encaja en la cadena de ejecución. La vista Analyzer (Analizador) es una vista interactiva de la ejecución del software en una vista de jerarquía basada en el proceso principal. Las líneas que conectan los procesos muestran la diferencia de tiempo entre la hora de inicio del proceso principal y el proceso secundario. Si acercas un nodo, puedes ver la cantidad de eventos asociados con ese proceso.

Vista Analyzer (Analizador) de la ejecución del malware Emotet

Para conocer las acciones del proceso de PowerShell, podemos seleccionar el nodo y ver que hay 27 eventos diferentes asociados con este único proceso. Después puedo seleccionar cada una de las categorías para ver los archivos que se crearon, las conexiones de red que se establecieron, las entradas de registro que se modificaron y las bibliotecas que se cargaron en la memoria debido a este proceso.

Algunos malware solo cargarán ciertas capacidades después de un reinicio, por lo que es una buena idea reiniciar la VM y buscar más alertas para ver si hay detecciones adicionales.

Como toda esta información ya está en Elastic, también podemos ver y visualizar estos eventos en cualquiera de las otras apps de Kibana, como en Dashboard o Discover (Descubrir). Si usas Packetbeat para recopilar tráfico de red, Kibana incluye muchos dashboards y visualizaciones integrados para varios protocolos de red.

Conclusión

En este blog, abarcamos cómo configurar rápidamente tu propio entorno de prueba de análisis de malware usando Elastic. En minutos, puedes compilar un entorno de prueba que te permita abrir y observar archivos de forma segura mientras se transmiten todos los eventos al Elastic Stack para un análisis seguro sin conexión. En el equipo de InfoSec de Elastic usamos la información de estos archivos para compilar nuevas reglas de detección y buscar cualquier ataque a la red previamente no descubierto.

¿Listo para comenzar? Inicia tu prueba gratuita de 14 días (no se requiere tarjeta de crédito). O descarga nuestro productos, gratis, para tu despliegue en las instalaciones.