
AMIRA: Automatizzata Risposta agli Incidenti e Analisi di Malware

AMIRA è un servizio per eseguire automaticamente l'analisi sui file di output di OSXCollector. L'analisi automatizzata viene eseguita tramite OSXCollector Output Filters, in particolare The One Filter to Rule Them All: il Analyze Filter. AMIRA si occupa di recuperare i file di output da un bucket S3, eseguire il Analyze Filter e quindi caricare i risultati dell'analisi nuovamente su S3 (anche se si potrebbe immaginare anche di allegarli al ticket JIRA correlato).
I seguenti passaggi presuppongono che tu abbia tox installato sulla tua macchina.
In caso contrario, esegui:
$ sudo pip install tox
AMIRA utilizza OSXCollector Output Filters per eseguire l'analisi effettiva, quindi avrai bisogno di un file di configurazione osxcollector.yaml valido nella directory di lavoro.
Il file di configurazione di esempio si trova in OSXCollector Output Filters.
Il file di configurazione menziona la posizione delle blacklist degli hash dei file e dei domini. Assicurati che le posizioni delle blacklist menzionate nel file di configurazione siano disponibili anche quando esegui AMIRA.
AMIRA utilizza boto3 per interfacciarsi con AWS. Puoi fornire le credenziali utilizzando una delle possibili opzioni di configurazione.
Le credenziali dovrebbero consentire la lettura e la cancellazione dei messaggi SQS dalla coda SQS specificata nella configurazione di AMIRA, nonché l'accesso in lettura agli oggetti nel bucket S3 dove sono memorizzati i file di output di OSXCollector. Per poter caricare i risultati dell'analisi nuovamente nel bucket S3 specificato nel file di configurazione di AMIRA, le credenziali dovrebbero anche consentire l'accesso in scrittura a questo bucket.
Il servizio utilizza le notifiche di eventi del bucket S3 per attivare l'analisi. Dovrai configurare un bucket S3 per i file di output di OSXCollector, in modo che quando un file viene aggiunto lì, la notifica venga inviata a una coda SQS (AmiraS3EventNotifications nell'immagine sottostante). AMIRA controlla periodicamente la coda per nuovi messaggi e, al ricevimento di uno, recupera il file di output di OSXCollector dal bucket S3. Quindi esegue il Analyze Filter sul file recuperato.
Il Analyze Filter esegue sequenzialmente tutti i filtri contenuti nel pacchetto OSXCollector Output Filters. Alcuni di essi comunicano con risorse esterne, come blacklist (o whitelist) di domini e hash e API di threat intelligence, ad esempio VirusTotal, OpenDNS Investigate o ShadowServer. L'output originale di OSXCollector viene esteso con tutte queste informazioni e l'ultimo filtro eseguito dal Analyze Filter riassume tutti i risultati in una forma leggibile dall'uomo. Dopo che il filtro ha terminato l'esecuzione, i risultati dell'analisi verranno caricati nel bucket S3 dei risultati dell'analisi.
La panoramica dell'intero processo e dei componenti del sistema coinvolti è illustrata di seguito:

Il punto di ingresso principale di AMIRA è nel modulo amira/amira.py.
Dovrai prima creare un'istanza della classe AMIRA fornendo il nome della regione AWS, dove si trova la coda SQS con le notifiche di evento per il bucket di output di OSXCollector, e il nome della coda SQS:
from amira.amira import AMIRA
amira = AMIRA('us-west-1', 'AmiraS3EventNotifications')
Quindi puoi registrare l'uploader dei risultati dell'analisi, ad esempio l'uploader dei risultati S3:
from amira.s3 import S3ResultsUploader
s3_results_uploader = S3ResultsUploader('amira-results-bucket')
amira.register_results_uploader(s3_results_uploader)
Infine, esegui AMIRA:
amira.run()
Vai a prendere un caffè, siediti, rilassati e aspetta che i risultati dell'analisi appaiano nel bucket S3!