моделировщик вредоносного ПО

Приложение и библиотека машинного обучения для тренировки моделей логистической регрессии для предсказания «безвредный против вредоносного», а также связанные инструменты.
Этот код имеет бета-качество и, вероятно, будет содержать ошибки.
Существует четыре основных шага:
- Извлечение признаков: найти топ k n-грамм, k составляет примерно от 100 тыс. до 1 млн, n должно быть равно 8.
- Создание файла набора данных: из вашей коллекции вредоносного и безопасного ПО создайте файл набора данных, который представляет собой векторизованные образцы в виде файла набора данных.
- Тренировка модели: тренирует модель на основе тренировочных данных, опционально со стратифицированной n-кратной кросс-валидацией (
train --folds N), которая сохраняет только модель лучшего фолда.
- Оценка: оцените модель на некоторых тестовых или валидационных (отложенных) данных.
Дополнительно:
- Признак схожести можно использовать, чтобы убедиться, что образцы, используемые для тренировки, имеют достаточное разнообразие.
- Признаки n-грамм, файлы наборов данных и модели привязаны к типу файла.
- Модель может сократить k признаков до некоторого меньшего количества, позволяя модели выполнить дальнейший отбор признаков, чтобы, надеемся, создать лучшую модель.
- Модели следует создавать только для одного типа файла. То есть модель для EXE, одна для PDF, одна для ELF и т. д.
- Тренировочные данные должны основываться на сбалансированной коллекции с большим количеством образцов. Одинаковое количество безвредных и вредоносных образцов, должно быть как минимум сотни тысяч.
- Это простые модели, которые настолько хороши, насколько хороши тренировочные данные. Плохие, неправильно размеченные или слишком похожие данные дают бесполезную модель.
Основано на следующих исследованиях:
- Edward Raff, William Fleming, Richard Zak, Hyrum Anderson, Bill Finlayson, Charles K Nicholas, Mark McLean, William Fleming, Charles K Nicholas, Richard Zak and Mark Mclean. KiloGrams: Very Large N-Grams for Malware Classification. In Proceedings of KDD 2019 Workshop on Learning and Mining for Cybersecurity (LEMINCS'19). 2019. Статья.
- William Fleshman, Edward Raff, Richard Zak, Mark McLean and Charles Nicholas. Static Malware Detection & Subterfuge: Quantifying the Robustness of Machine Learning and Current Anti-Virus. In 2018 13th International Conference on Malicious and Unwanted Software (MALWARE). October 2018, 1–10. Награда за лучшую статью. Статья, Arvix, DOI.
- Edward Raff and Charles Nicholas. Hash-Grams: Faster N-Gram Features for Classification and Malware Detection. In Proceedings of the ACM Symposium on Document Engineering 2018. 2018. Статья, DOI.
- Richard Zak, Edward Raff and Charles Nicholas. What can N-grams learn for malware detection? In 2017 12th International Conference on Malicious and Unwanted Software (MALWARE). October 2017, 109–118. Статья, DOI.
- Edward Raff, Richard Zak, Russell Cox, Jared Sylvester, Paul Yacci, Rebecca Ward, Anna Tracy, Mark McLean and Charles Nicholas. An investigation of byte n-gram features for malware classification. Journal of Computer Virology and Hacking Techniques, September 2016. Статья, DOI.
Дополнительные инструменты:
- Извлечение файлов из Zip-архива по типу файла — полезно при работе с файлами из VirusShare.
- Получение сводки по файлам в Zip-архиве с группировкой по типу файла.
- Проверка файлов в каталоге на побайтовое сходство друг с другом, что помогает построить датасет с хорошей вариативностью.
- Разбиение каталогов с malware и goodware на сбалансированные наборы: goodware train, malware train, goodware test, malware test.
Дополнительные примечания:
- Рассмотрите возможность получения benign-данных из Assemblage [Paper, Paper, Code, Docs]
- Инструменты ИИ использовались под контролем человека и с тестированием.