Сравнение двух подходов к классификации вредоносного ПО для понимания адаптивности и простоты использования

Авторы: Rushiil Deshmukh, Angelo Vergara, Debtanu Bandyopadhyay, Kevin Huang

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

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

Код для каждого из упомянутых выше шагов доступен на проекте GitHub link.

Постановка задачи

Термин «вредоносное ПО» (сокращение от «Вредоносное программное обеспечение») — это широкий термин, используемый для определения любого программного обеспечения, которое специально разработано для нарушения работы, повреждения или получения несанкционированного доступа к компьютерной системе.

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

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

Набор данных

Набор данных получен из конкурса Microsoft Malware Classification Challenge — BIG 2015, доступного на Kaggle здесь. Он содержит 21 736 файлов, поровну разделенных между следующими двумя типами файлов:

  • Файлы размером 10868 байт: содержат шестнадцатеричное представление двоичного содержимого файла. Пример содержимого байтового файла:

45 F4 64 A3 00 00 00 00 89 65 F0 8B F9 89 7D EC
8B 45 08 8B F0 83 CE 0F 83 FE FE 76 04 8B F0 EB
22 8B 5F 18 B8 AB AA AA AA F7 E6 8B CB D1 E9 D1

  • 10868 файлы asm: содержит манифест метаданных,который представляет собой журнал, содержащий различную информацию метаданных, извлеченную из файлов вредоносного ПО, такую ​​как вызовы функций, строки и коды операций. Некоторые примеры вызовов функций asm включают push, pop и т. д.

Каждый файл соответствует одному файлу вредоносного ПО, которое может принадлежать к одному из девяти семейств или классов вредоносных программ. Ниже перечислены классы с кратким описанием их действий:

  1. Ramnit: семейство вредоносных программ, которые воздействуют на пользователей Windows, открывая «черные ходы» для проникновения в систему других.
  2. SIMDA: эти типы вредоносных программ крадут пароли с ПК пользователя и создают лазейку для хакеров.
  3. Lollipop: известно, что вредоносное ПО снижает производительность браузера
  4. Kelihos_v1: типы троянов, которые могут полностью контролировать ПК пользователя и распространяться путем рассылки спама с ПК пользователя другим.
  5. Kelihos_v3: более новая версия Kelihos_v1, также может использоваться в DDoS (распределенные атаки типа отказ в обслуживании)
  6. Vundo: черви, ответственные за всплывающую рекламу и установку другого вредоносного контента
  7. Tacur: используется авторами вредоносных программ для получения дохода за счет показа ложных советов поисковым системам.
  8. Гатак: вредоносное ПО создает бэкдор на скомпрометированной машине, а затем крадет конфиденциальные данные, перенаправляя пользователей на мошеннические веб-сайты.
  9. Обфускатор: замаскированное вредоносное ПО, которое может избежать обнаружения антивирусным программным обеспечением, может использоваться в связке с любым из вышеупомянутых классов вредоносных программ.

Набор данных очень несбалансирован, некоторые классы крайне недопредставлены во всей выборке. Это учитывалось на этапах обучения модели.

В рамках данного проекта для классификации вредоносных программ использовались только байтовые файлы. Файлы asm можно использовать на более позднем этапе для изучения их влияния на точность модели.

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

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

Кроме того, для подхода машинного обучения байтовые файлы были преобразованы в текстовые файлы, чтобы функции можно было прочитать в коде Python. Начальный адрес «00401000» из каждого байтового файла был удален, поскольку адрес представляет собой соответствующий заголовок файла, который является общим для всех файлов.

Подход машинного обучения

Разработка функций

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

Особенности, выбранные для этого проекта, следующие:

  • Размер байтового файла. В каждом байтовом файле содержится различное количество вредоносного кода, что приводит к разным размерам каждого файла. Эта часть информации может использоваться в качестве параметра идентификации для каждого файла вредоносного ПО.
  • Униграмма шестнадцатеричного кода: обычно используется в обработке естественного языка, всего существует 256 «униграмм», то есть уникальных комбинаций шестнадцатеричных цифр, в диапазоне от 00 до FF. Униграмма шестнадцатеричного кода дает общее количество каждой из этих комбинаций в каждом файле, превращая комбинации в набор представлений слов.
  • Биграмма шестнадцатеричного кода: так же, как упомянутые выше функции униграмм, существует 65536 возможных биграмм, то есть уникальных комбинаций набора двух шестнадцатеричных кодов в диапазоне от 00 00 до FF FF. Биграмма шестнадцатеричного кода дает общее количество каждой из вышеуказанных биграмм в каждом файле как функцию. Поскольку признаков для вычисления слишком много, необходимо было выбрать только те признаки, которые имеют наибольшую корреляцию с целью, которой в данном случае является класс рассматриваемого вредоносного файла. С этой целью был использован критерий хи-квадрат для извлечения 1000 лучших признаков биграммы с k наивысшими баллами, когда данные соответствуют базовой модели классификации, где k здесь равно 1000.
  • Окончательная матрица признаков: все вышеперечисленные признаки были нормализованы путем деления подсчетов частоты на общее количество наблюдений, а затем объединены в один кадр данных pandas. В результате получилась матрица из 10868 наблюдений (строк) и 1259 столбцов (1258 признаков и один столбец идентификаторов).

Ниже прилагается пример итоговой матрицы признаков.

Модели

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

Каждая модель была откалибрована с использованием Calibrated Classifier CV, чтобы найти наилучшие значения гиперпараметров перед прогнозированием классов вредоносных программ. К ним относятся параметры регуляризации в логистической регрессии, количество узлов в случайных лесах и количество скрытых слоев в многоуровневых классификаторах персептрона.

Кроме того, поскольку набор данных сильно несбалансирован, входные данные были подвергнуты повторной выборке путем недостаточной выборки чрезмерно представленных классов и избыточной выборки недостаточно представленных классов, чтобы обеспечить равномерное распределение данных, подаваемых в модель. Модели были повторно запущены с использованием данных передискретизации.

Примечание. Оценка ROC-AUC для всех классификаторов очень высока, поскольку это в первую очередь проблема с несколькими классами, в то время как кривые ROC представляют собой метрики, используемые по большей части в моделях бинарной классификации. Таким образом, они не дают точного представления о производительности мультиклассовых моделей.

Точной мерой производительности модели является кривая полноты точности, которая представляет собой график отношения точности модели к полноте модели.

Точность = доля положительных идентификаций, которые были действительно правильными

Отзыв = доля фактических положительных результатов, которые были идентифицированы правильно

Графики, показанные выше, полезны для информирования о том, какие классы модель смогла предсказать хорошо, а с какими классами она столкнулась с трудностями. Классы справа на графике были предсказаны более точно, чем классы слева на каждом графике. Например, класс 5 прогнозируется с более высокой точностью, чем класс 8, с использованием классификатора MLP.

Здесь связаны различные графики точного отзыва, графики ROC и матрицы путаницы для каждого классификатора, использованного выше.

Подход к глубокому обучению

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

Разработка функций

Как упоминается в этой бумаге, новый способ анализа байтовых файлов вредоносных программ заключается в преобразовании каждого двоичного файла в пиксели в изображении в градациях серого. Обоснование этого двоякое:

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

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

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

Модели

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

VGG16 — машины опорных векторов

Была выбрана современная модель глубокого обучения со 138 миллионами параметров и 16 слоями, модель VGG16, обученная на наборе данных ImageNet. Эта модель использовалась для извлечения соответствующих функций из данных изображения. Эти извлеченные функции затем были загружены в модель Линейная машина опорных векторов, чтобы классифицировать изображения по соответствующим классам.

2D-последовательный CNN

Двумерная последовательная модель CNN была выбрана в качестве второй модели для классификации данных. Эта модель использовала оптимизатор Адама со скоростью обучения 0,01 и работала в течение 100 эпох, т.е. 100 проходов через обучающие данные. Последовательная модель была выбрана для работы со всем набором данных и предоставления вероятностей классификации для каждой точки данных вредоносного ПО.

На приведенном выше рисунке каждый сверточный слой представлен в виде кодировщика с размерами фильтров от 32 до 128. После трех вышеуказанных сверток результирующее изображение было сведено к минимуму и далее помещено в два последовательных плотных слоя. Эти слои ведут себя аналогично многослойному персептрону, вычисляя произведение весов изображения с функцией ядра для создания выходного вектора на основе используемой функции активации. Слои сброса использовались для удаления определенного процента нейронов в сети, чтобы предотвратить переоснащение обучающих данных. Последний выходной слой под названием SoftMax вычислял вероятности того, что входное изображение принадлежит каждому из девяти классов. Изображению присваивается класс с наивысшей оценкой вероятности.

Inception_v3 — последовательная модель

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

Показатели точности для трех моделей глубокого обучения следующие:

Сравнение

Ограничения подхода машинного обучения для классификации вредоносных программ заключаются в следующем:

1. Ресурсы. Требовалось значительное количество вычислительных ресурсов для обработки и извлечения функций из байтовых файлов. Кроме того, увеличение количества n-грамм (униграмм и биграмм) с 1 и 2 до 4 или даже 8 потребует много свободной оперативной памяти и вычислительной мощности.

2. Время: обработка этих функций также требовала значительного количества времени, особенно если количество функций должно было быть увеличено сверх определенного практического порога.

3. Знания предметной области. Для понимания и извлечения необходимых функций, необходимых для обучения модели, могут потребоваться предварительные знания предметной области в области кибербезопасности и машинного обучения.

С другой стороны, подход глубокого обучения имеет следующие преимущества:

1. Автоматическое извлечение признаков. Поскольку байтовые файлы были преобразованы в изображения для сверточных сетей, извлечение признаков выполняется автоматически и не требует каких-либо ручных усилий или предварительных знаний предметной области.

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

Будущая работа

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

  • Использование файлов asm: файлы asm (содержащие инструкции кода сборки), упомянутые в начале этой статьи, можно использовать вместе с байтовыми файлами в качестве дополнительных функций для обучения моделей глубокого обучения и повышения их точности.
  • Оптимизация: увеличение вычислительной мощности может позволить обучать модели для большего количества эпох (до 1000), что поможет в дальнейшей оптимизации гиперпараметров модели.
  • Преобразование RGB: байтовые файлы могут быть дополнительно преобразованы в изображения RGB, а не в изображения в градациях серого. Это позволит моделям CNN улавливать любые другие визуальные цветовые шаблоны, скрытые в байтовом представлении каждой вредоносной программы.

Заключение

Таким образом, сегодня мир страдает от вредоносных программ, которые наносят ущерб предприятиям во всем мире на миллиарды долларов. Кроме того, 47% всех атак вредоносных программ, проводимых сегодня в США, направлены против малого бизнеса. Сектор кибербезопасности начал использовать алгоритмы машинного обучения и нейронных сетей, однако они еще не получили широкого распространения в других отраслях. Цель этого проекта состояла в том, чтобы протестировать различные модели машинного обучения и глубокого обучения и оценить, какая модель способна быстро, эффективно и успешно идентифицировать и классифицировать различные вредоносные программы. Основываясь на выводах, изложенных выше, алгоритмы глубокого обучения демонстрируют большую универсальность, чем базовые алгоритмы машинного обучения. Устранение необходимости ручного вмешательства, а также возможность идентифицировать подписи/уникальные сообщения в коде после преобразования в изображения PNG — вот что делает алгоритм глубокого обучения таким эффективным.

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

Рекомендации