Skip to content

4l3x777/ml_malware_detection

Repository files navigation

Модель классификации вредоносных PE файлов Windows на основе статического анализа

Описание проекта

Цель данного исследования — разработка и сравнительный анализ алгоритмов машинного обучения для детекции вредоносного ПО на основе статических признаков PE-файлов.

Основные этапы:

  1. Сбор и подготовка данных

    Тренировочный датасет

    • train_dataset.csv — объединённый набор из 2 767 записей (1 346 malware, 1 421 clean)

    Валидационный датасет

    • malware_bazaar.csv — 413 образцов вредоносного ПО
    • clean_samples.csv — 141 чистый системный файл
  2. Извлечение и кодирование признаков

    • Список импортируемых функций, энтропия и размеры секций
    • Хеши TLSH и Nilsimsa для EntryPoint и текстовой секции
    • Заголовки DOS/PE (e_magic, e_cblp, e_lfanew и др.) и характеристики образа (Characteristics, Subsystem)
  3. Обучение и оценка моделей

    • Logistic Regression CV
    • K-Nearest Neighbors (KNN)
    • Decision Tree
    • Random Forest
    • Gradient Boosting
    • VotingClassifier (все базовые модели)
    • StackingClassifier (все базовые модели, лучший - Random Forest в роли мета-классификатора)
  4. Оценка лучшей модели

    • Accuracy по классам (malware vs clean) на валидационной выборке
    • Баланс точности между классами на валидационной выборке
  5. Сравнение и интерпретация итоговых результатов


Итоговые результаты эксперимента

Модель Accuracy Malware Accuracy Clean
StackingClassifier (Random Forest мета) 95.64% 97.16%
KNN 91.53% 95.04%
Logistic Regression CV 93.70% 92.91%
Decision Tree 92.98% 92.20%
Random Forest 96.85% 96.45%
Gradient Boosting 95.64% 95.04%

Выводы

  1. Ансамблевые методы превосходят одиночные.
    StackingClassifier с Random Forest в роли мета-классификатора и автономный Random Forest показали наивысшую точность и сбалансированность (malware: 95.64–96.85 %; clean: 96.45–97.16 %), подтверждая эффективность бэггинга и стекинга в задачах детекции вредоносного ПО.

  2. Ограниченность простых моделей.
    KNN, Logistic Regression CV и Decision Tree демонстрируют более низкую точность на malware (91.53–93.70 %), показывая недостаточную выразительность при разделении сложных мультимодальных признаковых пространств PE-файлов.

  3. Стабильность Gradient Boosting.
    Gradient Boosting обеспечивает конкурентные результаты (95.64 %/95.04 %), но уступает Random Forest, требуя тонкой настройки гиперпараметров.

  4. Валидация методологии.
    Корреляция с результатами arXiv:2504.17930v1 и JCRINN №329 подтверждает корректность выбора признаков и процедур подготовки данных. Несмотря на меньший объём выборки (2 767 vs 17 394 записей), модели сохраняют высокую точность.

  5. Перспективы дальнейших исследований.

    • Увеличение количества данных в обучающей выборке
    • Генерация новых признаков на основе динамического анализа PE

About

ML based Windows PE malware dection

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published