
Движок приёма и обработки вредоносных программ/IOC
_ ___ _
/\/\ __ _| | / _ (_)_ __ ___
/ \ / _` | |/ /_)/ | '_ \ / _ \
/ /\/\ \ (_| | / ___/| | |_) | __/
\/ \/\__,_|_\/ |_| .__/ \___|
|_|
MalPipe — это модульная платформа для сбора и обработки вредоносного ПО (и индикаторов). Она предназначена для извлечения вредоносных программ, доменов, URL-адресов и IP-адресов из множества источников, обогащения собранных данных и экспорта результатов.
На данный момент поддерживаются следующие источники:
Эти инструкции помогут вам получить копию проекта и запустить её на локальной машине для целей разработки и тестирования. Информацию о развёртывании проекта на рабочей системе см. в разделе «Развёртывание».
Развёртывание MalPipe требует установки необходимых библиотек Python и настройки различных модулей.
Зависимости Python можно установить, выполнив:
pip install -r requirements.txt
Пример конфигурации приведён в файле config_example.json с настройками для начала работы. Этот файл содержит JSON-объект с необходимыми параметрами для каждого источника / обработчика / экспортёра. Описание настроек источников представлено ниже:
...
"feeds": {
...
"MalShare": {
"ENABLED" : true,
"API_KEY" : "00000000000000000000000000000000000000000000000000000000000",
"EXPORTERS" : ["DetailsPrinter", "JSONLog"],
"PROCESSORS" : ["YaraScan", "DNSResolver"]
},
...
Поскольку некоторые источники обновляются ежедневно, они могут быть двух типов: запланированные и активные. Настройки, определяющие время их запуска, задаются вне конфигурации в отдельных модулях.
Обработчики используются для обогащения/стандартизации собранных данных. Например, данные из VirusTotal содержат результаты YARA-сканирования для каждого файла, а MalShare — нет. Добавив YaraScan в ключ PROCESSORS, вы можете просканировать файлы, чтобы также включить эти данные.
Пример настроек модуля приведён ниже:
...
"processors": {
...
"YaraScan": {
"ENABLED" : false,
"RULES_PATH": "/yara_rules/Malware.yara"
},
...
В настоящее время реализованы следующие обработчики:
ASNLookupDNSResolverFileTypeRDNSYaraScanПоследний компонент — экспортёры, которые определяют, куда направляются данные. Они могут использоваться для экспорта собранных данных в репозиторий вредоносного ПО, SIEM, файлы JSON-логов или для вывода пользователю.
...
"exporters": {
...
"JSONLog": {
"ENABLED" : true,
"PRETTY" : true,
"LOG_PATH": "./temp/"
},
...
В настоящее время реализованы следующие обработчики:
DetailsPrinterGenericWebStorageJSONLogLocalFileStorageПосле настройки MalPipe можно запустить командой:
python malpipe.py
Модули MalPipe находятся в папке malpipe/ по категориям:
Создание новых модулей — простой процесс.
Модули MalPipe определяются как классы Python. Ниже приведён пример заголовка модуля:
class ModuleName(Processor):
def __init__(self):
md = ProcessorDescription(
module_name="ModuleName",
description="Description",
authors=["Author Name"],
version="VersionNumber"
)
Processor.__init__(self, md)
self.types = ['ipaddresses']
self.parse_settings()
Настройки можно установить, импортировав конфигурацию и присвоив их переменным класса, как показано ниже:
from malpipe.config import CONFIG
...
self.yara_rule_path = CONFIG['processors'][self.get_module_name()]['RULES_PATH']
Каждый обработчик должен иметь функцию run, вызываемую источником.
После создания модуля необходимо добавить настройки в файл config.json в разделы processors, feeds или exporters. Если новый модуль является обработчиком или экспортёром, его также нужно добавить в соответствующие источники. Пример приведён ниже:
...
"processors": {
...
"SuperNewModule": {
"ENABLED" : true,
"DOCOOLSTUFF": true
},
...
"feeds": {
...
"0DayMalwareFeed": {
"ENABLED" : true,
"EXPORTERS" : ["DetailsPrinter", "JSONLog"],
"PROCESSORS" : ["SuperNewModule"]
}
...
Пожалуйста, сообщайте о любых проблемах, создавая issue или открывая pull request. Если у вас есть дополнительные модули или функции, которые вы хотели бы видеть, пожалуйста, рассмотрите возможность создания issue.
См. также список участников, которые внесли вклад в этот проект.
Этот проект лицензирован под GNU General Public License v3.0 — подробнее см. в файле LICENSE.md.