Releases: jax225/malware_predict
Releases · jax225/malware_predict
PE Malware Analysis v0.1.0
PE Malware Analysis v0.1.0
Описание проекта
PE Malware Analysis - реализован полный пайплайн для автоматизированного анализа PE-файлов, создания датасетов и обучения моделей машинного обучения для обнаружения вредоносного ПО и последующим предсказанием после обучения.
Основные возможности
Подготовка данных
- Очистка директорий от не-PE файлов
- Дедупликация файлов (по MD5/имени/размеру)
- Рекурсивный обход папок
Создание датасета
- Извлечение импортов DLL (dllname_functionname)
- Расчет хешей (MD5, SHA256)
- Информация о секциях PE-файла
- Определение архитектуры (x86/x64)
- Сохранение в JSON с поддержкой GZIP сжатия
Интеграция с Manalyze
- Packer detection - определение упаковщиков (UPX, ASPack, MPRESS и др.)
- FindCrypt - поиск криптографических констант
- Suspicious imports - анализ подозрительных категорий функций (process_injection, persistence, keyloggers, network, anti_debug, crypto, bypass_uac, dll_injection)
- ClamAV интеграция - проверка по антивирусным базам
Дедупликация JSON
- Поиск дубликатов по хешу
- Удаление дублей между категориями software/malware в датасете
- Debug режим с детальным логированием
Обучение моделей
- CatBoost классификатор
- SGDClassifier
- SGDClassifier с поддержкой TF-IDF трансформации
- Сохранение важности признаков
- Метаданные обучения
Предикт и анализ
- Проверка отдельных файлов
- Рекурсивный анализ директорий
- Сортировка файлов по категориям
- Режим антивируса (автоматическое удаление)
Технологии
- Python 3.12
- pefile - парсинг PE-файлов
- CatBoost - градиентный бустинг
- scikit-learn - машинное обучение
- ClamAV - антивирусная проверка
Для чего это нужно
- Исследователям безопасности
- Для обучения моделей - качественные датасеты с богатыми признаками
- Для автоматизации - интеграция в SIEM/SOAR
Особенности
- Manalyze анализ включен по умолчанию
- Расширенный анализ секций требует флаг --extended
- ClamAV должен быть установлен отдельно
- Поддержка больших датасетов (миллионы файлов)