Программа-вымогатель стала одной из самых коварных угроз кибербезопасности, вызывая значительные финансовые потери и утечку данных по всему миру. Традиционные антивирусные решения, основанные на сигнатурах, с трудом справляются с постоянно меняющимися вариантами программ-вымогателей, что делает необходимыми методы упреждающего обнаружения. Используя возможности машинного обучения и алгоритм случайного леса, статический анализ может значительно улучшить возможности обнаружения программ-вымогателей. В этой статье мы исследуем роль Random Forest в обнаружении программ-вымогателей с помощью статического анализа и его преимущества перед другими подходами машинного обучения.

Общие сведения о статическом анализе и обнаружении программ-вымогателей

Статический анализ играет жизненно важную роль в кибербезопасности, проверяя программный код без его выполнения. Для обнаружения программ-вымогателей этот подход включает тщательное изучение характеристик и поведения образцов кода для выявления потенциальных злонамеренных намерений. Тем не менее, программы-вымогатели часто используют полиморфные методы и методы обфускации, чтобы избежать обнаружения, что затрудняет точное различение безопасного и вредоносного программного обеспечения традиционными методами статического анализа.

Роль машинного обучения в обнаружении программ-вымогателей

Машинное обучение представляет собой революционный подход к обнаружению программ-вымогателей, позволяя системам учиться на основе шаблонов и функций известных программ-вымогателей и безопасных образцов программного обеспечения. Это позволяет системе принимать обоснованные решения при столкновении с новыми, невидимыми образцами кода, тем самым повышая точность обнаружения.

Понимание набора данных

Набор данных с открытым исходным кодом, используемый в этом анализе, — это Набор данных обнаружения программ-вымогателей, доступный на Kaggle (https://www.kaggle.com/datasets/amdj3dax/ransomware-detection-data-set). Набор данных включает в себя функции, извлеченные из различных файлов Portable Executable (PE), включая как программы-вымогатели, так и безопасные образцы. Эти функции включают такие характеристики, как Machine, DebugSize, MajorOSVersion, ExportRVA, BitcoinAddresses и другие.

Предварительная обработка набора данных

Перед использованием алгоритма Random Forest набор данных необходимо предварительно обработать, чтобы убедиться, что он находится в подходящем формате для обучения модели. Этапы предварительной обработки включают удаление ненужных столбцов, обработку категорийных данных и удаление любых повторяющихся записей. Кроме того, категориальные данные, такие как атрибут «Машина», кодируются в числовом формате для простоты анализа. Затем очищенный набор данных сохраняется в новом файле CSV для дальнейшего использования.

Реализация классификатора случайного леса

С предварительно обработанным набором данных мы приступаем к реализации классификатора случайного леса с использованием библиотеки scikit-learn. Набор данных разделен на обучающий и тестовый наборы, для каждого из которых зарезервировано 50% данных. Классификатор случайного леса создается с 1000 деревьями решений и обучается с использованием обучающих данных. После обучения модель предсказывает классы (программы-вымогатели или безопасные) тестового набора. Измеряется точность модели, что указывает на ее эффективность в обнаружении образцов программ-вымогателей.

Добавление нового теста для обнаружения программ-вымогателей

Чтобы смоделировать реальные сценарии, мы добавили новый тест для оценки способности модели обнаруживать программы-вымогатели. Данные из нового файла (в формате JSON) считываются и предварительно обрабатываются аналогично обучающим данным. Затем модель случайного леса предсказывает, является ли новый файл программой-вымогателем или безвредной. Результаты добавляются в файл CSV для дальнейшего анализа.

Код Питона



Заключение

Комбинируя статический анализ с машинным обучением, в частности, используя мощь алгоритма Random Forest и «Набор данных обнаружения программ-вымогателей» с открытым исходным кодом от Kaggle, мы можем значительно улучшить возможности обнаружения программ-вымогателей. Предварительная обработка наборов данных гарантирует, что данные подходят для обучения модели, а классификатор случайного леса эффективно обрабатывает сложные и многомерные данные. Добавление нового теста демонстрирует способность модели выявлять потенциальные угрозы программ-вымогателей в сценариях реального времени.

По мере того, как мы продолжаем бороться с атаками программ-вымогателей, интеграция машинного обучения в статический анализ позволяет нам опережать киберпреступников, усиливая нашу защиту кибербезопасности и защищая нашу цифровую среду.

Использованная литература;

М. Масум, М. Д. Фарук, Х. Шахриар, К. Цянь, Д. Ло и И. Аднан: Классификация и обнаружение программ-вымогателей с помощью алгоритмов машинного обучения Получено с https://arxiv.org/ ftp/arxiv/papers/2207/2207.00894.pdf

М. Хордуна, С. Лазареску и Э. Симион: заметка о применении машинного обучения для обнаружения программ-вымогателей Получено с https://eprint.iacr.org/2023/045.pdf

Р. А. М. Алсаиди, В. М. С. Яфуз, Х. Алолофи, Г. Тауфик-Хейл, А. М. Эмара, Ахмед Абдель-Вахаб: Обнаружение программ-вымогателей с использованием машинного и глубокого обучения Получено с https://www.researchgate.net/publication/ 365971703_Ransomware_Detection_using_Machine_and_Deep_Learning_Approaches