
AMIRA: Автоматизированное реагирование на инциденты вредоносного ПО и анализ

AMIRA — это сервис для автоматического запуска анализа выходных файлов OSXCollector. Автоматический анализ выполняется с помощью фильтров вывода OSXCollector, в частности «Единого фильтра, чтобы править всеми»: Analyze Filter. AMIRA отвечает за получение выходных файлов из S3-корзины, запуск Analyze Filter и последующую загрузку результатов анализа обратно в S3 (хотя можно также представить их прикрепление к соответствующему тикету JIRA).
Следующие шаги предполагают, что на вашем компьютере установлен tox.
Если это не так, выполните:
$ sudo pip install tox
AMIRA использует фильтры вывода OSXCollector для непосредственного анализа, поэтому в рабочем каталоге должен быть допустимый файл конфигурации osxcollector.yaml. Пример файла конфигурации можно найти в фильтрах вывода OSXCollector.
В файле конфигурации указывается расположение чёрных списков хешей файлов и доменов. Убедитесь, что расположения чёрных списков, указанные в файле конфигурации, доступны при запуске AMIRA.
AMIRA использует boto3 для взаимодействия с AWS. Вы можете предоставить учётные данные, используя любую из возможных опций конфигурации.
Учётные данные должны разрешать чтение и удаление сообщений SQS из очереди SQS, указанной в конфигурации AMIRA, а также доступ на чтение к объектам в S3-корзине, где хранятся выходные файлы OSXCollector. Для возможности загрузки результатов анализа обратно в S3-корзину, указанную в файле конфигурации AMIRA, учётные данные также должны разрешать запись в эту корзину.
Сервис использует уведомления о событиях S3-корзины для запуска анализа. Вам необходимо настроить S3-корзину для выходных файлов OSXCollector таким образом, чтобы при добавлении файла в неё уведомление отправлялось в очередь SQS (AmiraS3EventNotifications на рисунке ниже). AMIRA периодически проверяет очередь на наличие новых сообщений и, получив одно из них, извлекает выходной файл OSXCollector из S3-корзины. Затем он запускает Analyze Filter для полученного файла.
Analyze Filter последовательно выполняет все фильтры, входящие в пакет фильтров вывода OSXCollector. Некоторые из них взаимодействуют с внешними ресурсами, такими как чёрные списки доменов и хешей (или белые списки) и API-интерфейсами угроз, например VirusTotal, OpenDNS Investigate или ShadowServer. Исходный вывод OSXCollector дополняется всей этой информацией, а самый последний фильтр, выполняемый Analyze Filter, обобщает все результаты в удобочитаемую форму. После завершения работы фильтра результаты анализа будут загружены в S3-корзину «Analysis Results».
Обзор всего процесса и задействованных компонентов системы представлен ниже:

Основная точка входа в AMIRA находится в модуле amira/amira.py. Сначала необходимо создать экземпляр класса AMIRA, указав имя региона AWS, в котором находится очередь SQS с уведомлениями о событиях для S3-корзины выходных файлов OSXCollector, и имя очереди SQS:
from amira.amira import AMIRA
amira = AMIRA('us-west-1', 'AmiraS3EventNotifications')
Затем вы можете зарегистрировать загрузчик результатов анализа, например загрузчик результатов S3:
from amira.s3 import S3ResultsUploader
s3_results_uploader = S3ResultsUploader('amira-results-bucket')
amira.register_results_uploader(s3_results_uploader)
Наконец, запустите AMIRA:
amira.run()
Налейте себе кофе, откиньтесь на спинку кресла, расслабьтесь и ждите, пока результаты анализа появятся в S3-корзине!