Сверточная нейронная сеть (или CNN) - как мы знаем, это алгоритм машинного обучения для машин, позволяющий предвидеть особенности изображения и запоминать особенности, чтобы угадать имя нового изображения, подаваемого на машину.

Но вопрос в том, как это может быть полезно при обнаружении вредоносных программ? Ответ прост: уловка заключается в том, чтобы преобразовать вредоносное ПО в изображение. Это возможно? Да, это возможно, как показано ниже.

У нас есть выборка из 25 семейств вредоносных программ:
Allaple.L, Allaple.A, Yuner.A, Lolyda.AA 1, Lolyda.AA 2, Lolyda.AA 3, C2Lop.P, C2Lop.gen! G, мгновенный доступ, Swizzor.gen! I, Swizzor.gen! E, VB.AT, Fakerean, Alueron.gen! J, Malex.g, n! J, Lolyda.AT, Adialer.C, Wintrim.BX, Dialplatform .B, Донтово.A, Obfuscator.AD, Agent.FYI, Autorun.K, Rbot! Gen и Skintrim.N

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

Мы будем строить прогнозную модель, выполнив следующие шаги:

  1. Преобразование каждого вредоносного ПО в изображение в оттенках серого
  2. Функции извлечения и разработки из изображений в градациях серого
  3. Построить сетевую архитектуру CNN
  4. Скомпилировать, подогнать и обучить модель

Шаг 1. Преобразуйте каждую вредоносную программу в изображение в оттенках серого

Преобразование каждой вредоносной программы в изображение в оттенках серого можно выполнить с помощью следующего скрипта Python:

Шаг 2. Извлечение и разработка функций из изображений в градациях серого

Для выбора функции мы можем использовать такие алгоритмы, как дескриптор цветовой схемы, дескриптор однородной текстуры или глобальные дескрипторы изображения (GIST). В качестве варианта использования для вычисления GIST вы можете использовать следующий скрипт Python:

Шаг 3: Постройте сетевую архитектуру CNN

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

Шаг 4. Скомпилируйте, подгоните и обучите модель

Для компиляции модели используйте следующее:

Используйте следующее для Fit и тренируйте модель:

Для оценки модели используйте следующий код:

Полный код будет следующим: