
AMIRA : Réponse et analyse automatisées des incidents de malware

AMIRA est un service permettant d'exécuter automatiquement l'analyse des fichiers de sortie d'OSXCollector. L'analyse automatisée est effectuée via les Filtres de sortie OSXCollector, en particulier Le Filtre Unique pour les Gouverner Tous : le Filtre d'Analyse. AMIRA se charge de récupérer les fichiers de sortie depuis un bucket S3, d'exécuter le Filtre d'Analyse, puis de téléverser les résultats de l'analyse vers S3 (bien que l'on puisse également envisager de les attacher au ticket JIRA correspondant).
Les étapes suivantes supposent que vous avez tox installé sur votre machine.
Si ce n'est pas le cas, veuillez exécuter :
$ sudo pip install tox
AMIRA utilise les Filtres de sortie OSXCollector pour réaliser l'analyse proprement dite, donc vous aurez besoin d'un fichier de configuration osxcollector.yaml valide dans le répertoire de travail. Le fichier de configuration d'exemple se trouve dans les Filtres de sortie OSXCollector.
Le fichier de configuration mentionne l'emplacement des listes noires de hachages de fichiers et de domaines. Assurez-vous que les emplacements des listes noires mentionnés dans le fichier de configuration sont également disponibles lors de l'exécution d'AMIRA.
AMIRA utilise boto3 pour interfacer avec AWS. Vous pouvez fournir les identifiants via l'une des options de configuration possibles.
Les identifiants doivent permettre la lecture et la suppression de messages SQS depuis la file d'attente SQS spécifiée dans la configuration d'AMIRA, ainsi que l'accès en lecture aux objets dans le bucket S3 où sont stockés les fichiers de sortie d'OSXCollector. Pour pouvoir téléverser les résultats de l'analyse vers le bucket S3 spécifié dans le fichier de configuration d'AMIRA, les identifiants doivent également permettre l'accès en écriture à ce bucket.
Le service utilise les notifications d'événements de bucket S3 pour déclencher l'analyse. Vous devrez configurer un bucket S3 pour les fichiers de sortie d'OSXCollector, de sorte que lorsqu'un fichier y est ajouté, la notification soit envoyée à une file d'attente SQS (AmiraS3EventNotifications dans le schéma ci-dessous). AMIRA vérifie périodiquement la file d'attente pour détecter de nouveaux messages et, dès réception, récupère le fichier de sortie OSXCollector depuis le bucket S3. Il exécute ensuite le Filtre d'Analyse sur le fichier récupéré.
Le Filtre d'Analyse exécute séquentiellement tous les filtres contenus dans le paquet de Filtres de sortie OSXCollector. Certains d'entre eux communiquent avec des ressources externes, comme les listes noires (ou blanches) de domaines et de hachages, et les API de renseignement sur les menaces, par exemple VirusTotal, OpenDNS Investigate ou ShadowServer. La sortie originale d'OSXCollector est enrichie de toutes ces informations et le tout dernier filtre exécuté par le Filtre d'Analyse résume toutes les découvertes sous une forme lisible par l'humain. Une fois le filtre terminé, les résultats de l'analyse sont téléversés vers le bucket S3 des résultats d'analyse.
La vue d'ensemble de tout le processus et des composants système impliqués est illustrée ci-dessous :

Le point d'entrée principal d'AMIRA se trouve dans le module amira/amira.py. Vous devez d'abord créer une instance de la classe AMIRA en fournissant le nom de la région AWS où se trouve la file d'attente SQS contenant les notifications d'événements pour le bucket de sortie OSXCollector, ainsi que le nom de cette file d'attente SQS :
from amira.amira import AMIRA
amira = AMIRA('us-west-1', 'AmiraS3EventNotifications')
Ensuite, vous pouvez enregistrer le téléverseur de résultats d'analyse, par exemple le téléverseur de résultats S3 :
from amira.s3 import S3ResultsUploader
s3_results_uploader = S3ResultsUploader('amira-results-bucket')
amira.register_results_uploader(s3_results_uploader)
Enfin, exécutez AMIRA :
amira.run()
Allez vous chercher un café, installez-vous confortablement et attendez que les résultats d'analyse apparaissent dans le bucket S3 !