
AMIRA: Respuesta y Análisis Automatizado de Incidentes de Malware

AMIRA es un servicio para ejecutar automáticamente el análisis de los archivos de salida de OSXCollector. El análisis automatizado se realiza mediante los Filtros de Salida de OSXCollector, en particular El Filtro Único para Gobernarlos a Todos: el Filtro de Análisis. AMIRA se encarga de recuperar los archivos de salida de un bucket de S3, ejecutar el Filtro de Análisis y luego cargar los resultados del análisis de vuelta a S3 (aunque también se podría contemplar adjuntarlos al ticket de JIRA correspondiente).
Los siguientes pasos asumen que tienes tox instalado en tu máquina. Si no es el caso, por favor ejecuta:
$ sudo pip install tox
AMIRA utiliza los Filtros de Salida de OSXCollector para realizar el análisis real, por lo que necesitarás tener un archivo de configuración osxcollector.yaml válido en el directorio de trabajo. El archivo de configuración de ejemplo se puede encontrar en los Filtros de Salida de OSXCollector.
El archivo de configuración menciona la ubicación de las listas negras de hash de archivos y de dominios. Asegúrate de que las ubicaciones de las listas negras mencionadas en el archivo de configuración también estén disponibles al ejecutar AMIRA.
AMIRA usa boto3 para interactuar con AWS. Puedes proporcionar credenciales usando cualquiera de las opciones de configuración posibles.
Las credenciales deben permitir leer y eliminar mensajes SQS de la cola SQS especificada en la configuración de AMIRA, así como acceso de lectura a los objetos en el bucket de S3 donde se almacenan los archivos de salida de OSXCollector. Para poder cargar los resultados del análisis de vuelta al bucket de S3 especificado en el archivo de configuración de AMIRA, las credenciales también deben permitir acceso de escritura a este bucket.
El servicio utiliza las notificaciones de eventos del bucket S3 para activar el análisis. Necesitarás configurar un bucket de S3 para los archivos de salida de OSXCollector, de modo que cuando se agregue un archivo allí, la notificación se envíe a una cola SQS (AmiraS3EventNotifications en la imagen a continuación). AMIRA verifica periódicamente la cola en busca de nuevos mensajes y, al recibir uno, obtiene el archivo de salida de OSXCollector del bucket de S3. Luego ejecuta el Filtro de Análisis en el archivo recuperado.
El Filtro de Análisis ejecuta todos los filtros contenidos en el paquete de Filtros de Salida de OSXCollector de forma secuencial. Algunos de ellos se comunican con recursos externos, como listas negras (o listas blancas) de dominios y hashes, y APIs de inteligencia de amenazas, por ejemplo, VirusTotal, OpenDNS Investigate o ShadowServer. La salida original de OSXCollector se amplía con toda esta información y el último filtro ejecutado por el Filtro de Análisis resume todos los hallazgos en una forma legible para humanos. Una vez que el filtro termina de ejecutarse, los resultados del análisis se cargarán en el bucket de S3 de Resultados del Análisis.
La visión general de todo el proceso y los componentes del sistema involucrados se muestran a continuación:

El punto de entrada principal a AMIRA está en el módulo amira/amira.py. Primero necesitarás crear una instancia de la clase AMIRA proporcionando el nombre de la región de AWS donde se encuentra la cola SQS con las notificaciones de eventos para el bucket de salida de OSXCollector, y el nombre de la cola SQS:
from amira.amira import AMIRA
amira = AMIRA('us-west-1', 'AmiraS3EventNotifications')
Luego puedes registrar el cargador de resultados del análisis, por ejemplo, el cargador de resultados de S3:
from amira.s3 import S3ResultsUploader
s3_results_uploader = S3ResultsUploader('amira-results-bucket')
amira.register_results_uploader(s3_results_uploader)
Finalmente, ejecuta AMIRA:
amira.run()
Ve a por un café, siéntate, relájate y espera a que los resultados del análisis aparezcan en el bucket de S3!