
Модульная платформа для сбора и корреляции артефактов анализа вредоносного ПО
Subparse — это модульная среда, разработанная Джошем Строчейном, Аароном Бейкером и Одином Бернштейном. Среда предназначена для разбора и индексации вредоносных файлов, а также для представления информации, полученной в ходе разбора, в виде поискового веб-просмотрщика. Среда является модульной: она использует ядро разбора, модули разбора и различные обогатители, которые добавляют дополнительную информацию к индексам вредоносных программ. Основными входными значениями для среды являются директории с вредоносными файлами, которые ядро разбора (или указанный пользователем модуль разбора) анализирует, после чего добавляет информацию от любых указанных пользователем модулей обогащения, а затем индексирует полученные данные в индексе Elasticsearch. Собранную информацию можно искать и просматривать через веб-просмотрщик, который также позволяет фильтровать по любому значению, полученному из любого файла. В настоящее время доступно 3 модуля разбора (по умолчанию: PEParser, OLEParser и ELFParser) и 2 модуля обогащения (ABUSEEnricher и CAPEEnricher).
Для начала работы с Subparse необходимо установить и настроить несколько обязательных/рекомендуемых программ.
| Программное обеспечение |
|---|
После установки необходимого/рекомендуемого программного обеспечения на вашу систему необходимо выполнить ещё несколько шагов для установки Subparse.
sudo get apt install build-essential pip3 install -r ./requirements.txt
docker-compose up
Примечание: Это может занять некоторое время, так как потребуется загрузить образы и настроить контейнеры, необходимые для Subparse.
Параметры командной строки, доступные для subparse/parser/subparse.py:
Чтобы просмотреть результаты работы модулей разбора Subparse, перейдите по адресу localhost:8080. Если у вас возникли проблемы с просмотром сайта, убедитесь, что контейнер запущен в Docker и что на порту 8080 не работает другой процесс, который может помешать доступности сайта.
Перед выполнением любого модуля разбора собирается общая информация об образце независимо от типа файла. Эта информация включает:
Модули разбора выполняются ТОЛЬКО для образцов, соответствующих типу файла. Например, для PE-файлов по умолчанию будет запущен PEParser, так как тип файла соответствует тем, которые может обрабатывать PEParser.
Эти модули являются необязательными и выполняются ТОЛЬКО при указании флага -e | --enrichers в командной строке.
Веб-просмотрщик Subparse построен с использованием Bootstrap для CSS, что позволяет использовать любые встроенные CSS-стили Bootstrap при разработке собственных Vue.js-файлов для модулей разбора/обогащения. Мы также предоставили пример для каждого типа, чтобы помочь начать разработку, и реализовали несколько собственных виджетов для упрощения процесса разработки и стандартизации отображения информации. Все Vue.js-файлы используются для динамического отображения информации из пользовательского модуля разбора/обогащения и служат шаблонами для данных.
Примечание: Необходимо строго соблюдать соглашения об именовании как классов, так и файлов — это первое, что следует проверить, если у вас возникли проблемы с запуском пользовательского модуля разбора/обогащения. Имя вашего модуля разбора/обогащения должно совпадать во всех файлах и именах классов.
Объект logger — это singleton-реализация стандартного логгера Python. Подробное описание использования см. в официальной документации. Для Subparse мы рекомендуем использовать только следующие уровни логирования для вывода:
| Статус |
|---|
| Ссылка |
|---|
| Docker | Требуется | Руководство по установке |
| Python3.8.1 | Требуется | Руководство по установке |
| Pyenv | Рекомендуется | Руководство по установке |
| Аргумент | Альтернатива | Обязательный | Описание |
|---|
| -h | --help | Нет | Показывает справку |
| -d SAMPLES_DIR | --directory SAMPLES_DIR | Да | Каталог образцов для разбора |
| -e ENRICHER_MODULES | --enrichers ENRICHER_MODULES | Нет | Модули обогащения для дополнительного разбора |
| -r | --reset | Нет | Сбросить/удалить все данные в настроенном кластере Elasticsearch |
| -v | --verbose | Нет | Показывать подробный вывод командной строки |
| -s | --service-mode | Нет | Включает сервисный режим, позволяющий добавлять образцы в SAMPLES_DIR во время обработки |