
Песочница анализа вредоносного ПО на Python, которая интегрируется с Sysinternals Procmon для автоматического сбора, анализа и отчетности по индикаторам времени выполнения с использованием сканирования YARA и генерации IOC.
Noriben — песочница анализа вредоносных программ
Контактная информация: @bbaskin в Twitter brian _at_ thebaskins _dot_ com
Noriben — это скрипт на Python, работающий совместно с Sysinternals Procmon для автоматического сбора, анализа и отчетности по индикаторам поведения вредоносных программ. По сути, он позволяет запустить приложение, нажать клавишу и получить простой текстовый отчет о действиях образца.
Noriben позволяет не только запускать вредоносные программы, как в песочнице, но также регистрировать системные события, пока вы вручную запускаете вредоносные программы особыми способами, необходимыми для их выполнения. Например, он может прослушивать, пока вы запускаете приложение, требующее различных параметров командной строки или взаимодействия с пользователем. Или наблюдать за системой, пока вы проходите шаги в отладчике.
Хотя Noriben был разработан для анализа вредоносных программ, он также широко используется для аудита обычных приложений. В 2013 году он использовался проектом Tor для проведения публичного аудита Tor Browser Bundle
Ниже приведено видео отладки вредоносной программы, проверяющей наличие виртуальной машины, с целью все же получить результаты песочницы (ошибки кликов из-за указателя мыши, сбитого на 5 пикселей :))
Для работы Noriben требуется только Sysinternals procmon.exe (или procmon64.exe). Ему не требуется предварительная фильтрация (хотя она бы очень помогла), так как он содержит множество элементов белого списка для уменьшения нежелательного шума от системной активности.
Более подробное объяснение см. в моих слайдах с Black Hat 2015 Arsenal. А также в более подробной записи в блоге: http://ghettoforensics.blogspot.com/2013/04/noriben-your-personal-portable-malware.html
Я также включил долгожданный фронтенд-оператор NoribenSandbox.py. Этот скрипт позволяет автоматизировать выполнение Noriben внутри гостевой ВМ и получать отчеты. В настоящее время он работает на OSX (но будет портирован) и отвечает за: запуск предопределенной ВМ и снапшота, копирование вредоносной программы на ВМ, запуск Noriben и вредоносной программы, ожидание заданного времени, копирование результатов на хост в виде ZIP и создание снимка экрана ВМ. Вы даже можете использовать --update для автоматического копирования последней версии Noriben с вашего хоста, чтобы не приходилось постоянно создавать новые снапшоты при внесении изменений в скрипт.
Если у вас есть папка с файлами сигнатур YARA, вы можете указать ее с помощью опции --yara. Каждый новый создаваемый файл будет сканироваться на соответствие этим сигнатурам, а результаты будут отображены в выходных данных.
Если у вас есть API VirusTotal, поместите его в файл с именем "virustotal.api" (или вставьте напрямую в скрипт), чтобы автоматически отправлять хэши MD5 файлов в VT и получать количество обнаружений.
Вы можете добавить списки MD5 для автоматического игнорирования (например, все ваши системные файлы). Используйте md5deep и поместите их в текстовый файл, используйте --hash для чтения. В конечном итоге это будет отображаться в разделе изменений.
Вы можете автоматизировать скрипт для использования в песочнице. Используя -t <секунды> для автоматизации времени выполнения и --cmd "путь\exe" для указания вредоносного файла, вы можете автоматически запускать вредоносную программу, копировать результаты и затем восстанавливать состояние для запуска нового образца.
Функция --generalize автоматически заменяет абсолютные пути на пути переменных среды Windows для лучшей разработки индикаторов компрометации (IOC). Например, C:\Users\malware_user\AppData\Roaming\malware.exe будет автоматически преобразован в %AppData%\malware.exe.
Usage:
--===[ Noriben v1.7.2
--===[ @bbaskin
использование: Noriben.py [-h] [-c CSV] [-p PML] [-f FILTER] [--hash HASH]
[--hashtype {MD5,SHA1,SHA256}] [--headless] [-t TIMEOUT]
[--output OUTPUT] [--yara YARA] [--generalize] [--cmd CMD]
[-d]
необязательные аргументы:
-h, --help показать это сообщение справки и выйти
-c CSV, --csv CSV Повторно проанализировать существующий CSV-файл Noriben
-p PML, --pml PML Повторно проанализировать существующий PML-файл Noriben
-f FILTER, --filter FILTER
Указать альтернативный фильтр Procmon PMC
--hash HASH Указать файл белого списка хэшей
--hashtype {MD5,SHA1,SHA256}
Указать тип хэша
--headless Не открывать результаты на ВМ после обработки
-t TIMEOUT, --timeout TIMEOUT
Количество секунд для сбора активности
--output OUTPUT Папка для хранения выходных файлов
--yara YARA Папка, содержащая правила YARA
--generalize Обобщать пути файлов до переменных окружения.
По умолчанию: True
--cmd CMD Командная строка для выполнения (в кавычках)
-d, --debug Включить отладку
Brian Baskin <Авторы документации приветствуются!>
Авторское право 2015 Brian Baskin
Лицензировано в соответствии с Apache License, Version 2.0 («Лицензия»); вы не можете использовать эту работу, кроме как в соответствии с Лицензией. Вы можете получить копию Лицензии в файле LICENSE, или по адресу:
http://www.apache.org/licenses/LICENSE-2.0
Если иное не предусмотрено действующим законодательством или не согласовано в письменной форме, программное обеспечение распространяется по Лицензии на условиях «AS IS» (КАК ЕСТЬ) БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, явных или подразумеваемых. См. Лицензию для получения информации о разрешениях и ограничениях.