Сверточная нейронная сеть (или 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.
Мы будем строить прогнозную модель, выполнив следующие шаги:
- Преобразование каждого вредоносного ПО в изображение в оттенках серого
- Функции извлечения и разработки из изображений в градациях серого
- Построить сетевую архитектуру CNN
- Скомпилировать, подогнать и обучить модель
Шаг 1. Преобразуйте каждую вредоносную программу в изображение в оттенках серого
Преобразование каждой вредоносной программы в изображение в оттенках серого можно выполнить с помощью следующего скрипта Python:
Шаг 2. Извлечение и разработка функций из изображений в градациях серого
Для выбора функции мы можем использовать такие алгоритмы, как дескриптор цветовой схемы, дескриптор однородной текстуры или глобальные дескрипторы изображения (GIST). В качестве варианта использования для вычисления GIST вы можете использовать следующий скрипт Python:
Шаг 3: Постройте сетевую архитектуру CNN
После того, как выбор функций и разработка завершены, мы можем построить CNN. Для нашей модели, например, мы построим сверточную сеть с двумя сверточными слоями с 32 * 32 входами.
Шаг 4. Скомпилируйте, подгоните и обучите модель
Для компиляции модели используйте следующее:
Используйте следующее для Fit и тренируйте модель:
Для оценки модели используйте следующий код:
Полный код будет следующим: