Актуальность исследования

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

Одним из ключевых методов, применяемых вредоносными программами для обхода систем обнаружения, является метаморфизм. Данный процесс заключается в модификации внутреннего содержимого исполняемого файла при его распространении [1], что приводит к созданию множества хэшей для одной и той же вредоносной программы. Такой механизм делает стандартные методы обнаружения, основанные на сигнатурах, малоэффективными, поскольку каждое новое представление ВПО воспринимается как новый уникальный файл. В связи с этим возникает необходимость в применении более продвинутых методов анализа, основанных на машинном обучении и, в частности, сверточных нейронных сетях (CNN), способных распознавать вредоносные программы по их структурным признакам.

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

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

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

Архитектура модели классификации

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

На рисунке 1 представлена поэтапная схема модели классификации вредоносного ПО, построенная на основе предложенного в работе [2] подхода. На ней отображены ключевые стадии обработки данных: от загрузки бинарного файла и его преобразования в изображение до аугментации данных с добавлением различных типов шумов и последующего обучения сверточной нейросети.

Рис. 1. Схема модели классификации вредоносного программного обеспечения.
Рис. 1. Схема модели классификации вредоносного программного обеспечения.

Алгоритм преобразования файлов в изображения

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

1) Файл открывается в бинарном режиме и читается в байтовый массив;

2) Файл преобразуется в массив целых чисел (от 0 до 255);

3) Формируются цветовые R-G-B каналы:

  • красный (R): содержит значения исходных байтов;

  • зеленый (G): рассчитывается как локальная энтропия в пределах скользящих окон размером 256 байт;

  • синий (B): инициализируется нулями.

4) Формируется трехканальное изображение:

  • при недостаточном объеме данных массив дополняется нулями;

  • на основе подготовленных каналов формируется RGB-изображение.

5) Полученное изображение сохраняется в формате PNG для последующего анализа и обработки.

Формирование зеленого канала (G) изображения из бинарного файла на основе локальной энтропии предполагает численное представление информационной сложности в каждом участке файла. Сначала файл последовательно разбивается на неперекрывающиеся блоки по 256 байт:

B_1,B_2,…,B_N                                               , где каждый B_k∈ \{0,1,…,255\}^{256}. Далее происходит подсчет частот появления байтов:

1) для каждого блока вычисляется гистограмма частот появления каждого байта:

count_i=количество\ вхождений \ байта\  i \ в\  блоке \ B_k,i∈\{0,…,255\}

2) полученные частоты нормализуются до вероятностей:

p_i=\frac{count_i}{∑_{j=0}^{255} {count_j }} =\frac{count_i}{256},

так как в каждом блоке всегда ровно 256 байт.

3) Для каждого блока вычисляется энтропия по формуле Шеннона [3]:

H_k=-∑_{i=0}^{255}{p_i⋅log_2⁡(p_i )},

Полученное значение энтропии масштабируется:

  • максимально возможное значение энтропии при равномерном распределении (все p_i=\frac{1}{256}:

H_{max⁡}=log_2⁡(256)=8.
  • энтропия нормализуется до диапазона (0, 255) для отображения в виде значения компонента цвета:

G_{k⁡}=[\frac{H_k}{8}⋅255].

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

Пример преобразованного в изображение вредоносного файла (Adware) представлен на рисунке 2.

Рис. 2. Преобразованный в изображение вредоносный файл Adware:Win32/Lollipop (рекламное ПО).
Рис. 2. Преобразованный в изображение вредоносный файл Adware:Win32/Lollipop (рекламное ПО).

Добавление шумов на изображения

Для решения проблемы недостатка данных в обучающей выборке применялась аугментация (data augmentation) – процесс создания дополнительного набора данных из имеющегося набора [4]. Одним из наиболее популярных способов аугментации, позволяющим повысить устойчивость моделей машинного обучения и увеличить вариативность обучающей выборки, является добавление шумов. Для улучшения качества классификации объектов на изображениях были выбраны следующие типы шумов: 

  • Гауссов шум (additive Gaussian noise);

  • Лапласов шум (additive Laplace noise);

  • Пуассонов (дробовой) шум (additive Poisson noise).

Гауссов шум используется для имитации воздействия множества случайных процессов, происходящих в природе [5]. Это помогает сделать модель более устойчивой к небольшим вариациям данных.

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

Лапласов шум – это вид аддитивного шума, моделируемый с помощью распределения Лапласа, при котором к каждому пикселю изображения добавляется случайная величина. Такой шум подчеркивает резкие изменения яркости и подавляет однородные участки изображения, поскольку оператор Лапласа чувствителен к скачкам интенсивности и игнорирует области с плавными градиентами [7].

Примеры изображений с наложенными шумами разных типов представлены на рисунках 3-5.

Рис. 3. Наложение шумов на изображение ВПО Adware:Win32/Lollipop: Гауссов шум
Рис. 3. Наложение шумов на изображение ВПО Adware:Win32/Lollipop: Гауссов шум
Рис. 4. Наложение шумов на изображение ВПО Adware:Win32/Lollipop: Пуассонов шум
Рис. 4. Наложение шумов на изображение ВПО Adware:Win32/Lollipop: Пуассонов шум
Рис. 5. Наложение шумов на изображение ВПО Adware:Win32/Lollipop: Лапласов шум
Рис. 5. Наложение шумов на изображение ВПО Adware:Win32/Lollipop: Лапласов шум

Модель сверточной нейронной сети (CNN) и исходные данные

Была построена модель сверточной нейронной сети (CNN) для классификации изображений, полученных из бинарных файлов. В качестве основы выбрана архитектура модели VGG19, состоящей из последовательности сверточных блоков, каждый из которых включает два или более сверточных слоев с ядрами 3×3 и функцией активации ReLU [8], за которыми следует слой подвыборки (MaxPooling). После сверточных блоков следуют полносвязные слои (Dense), завершающиеся выходным Softmax-слоем (рис. 6, [9]).

Рис. 6. Архитектура модели CNN VGG19, [9]
Рис. 6. Архитектура модели CNN VGG19, [9]

Модель включает следующие слои:

1) 2 сверточных слоя (Conv2D, 32 фильтра, 3×3, ReLU);

2) 2 MaxPooling слоя подвыборки (2×2);

3) Сверточный слой (Conv2D, 64 фильтра, 3×3, ReLU);

4) Flatten слой (для преобразования карт признаков, полученных от свёрточных слоёв, в одномерный вектор);

5) Полносвязный слой (Dense, 128 нейронов, ReLU);

6) Выходной слой (Dense, 9 классов, Softmax).

Классификация ВПО выполнялась на основе 9 классов, представленных в датасете Microsoft Malware Classification Challenge (BIG 2015) [10]. Датасет содержит множество известных вредоносных файлов, принадлежащих к девяти семействам (табл. 1) и включает 10868 образцов ВПО в формате .byte.

Каждому файлу соответствует уникальный идентификатор (Id), представленный в виде 20-символьного хэша, а также метка класса (Class), обозначающая принадлежность к одному из семейств. Исходные данные включают шестнадцатеричное представление бинарного содержимого файла без PE- заголовка.

Таблица 1 – Семейства вредоносного ПО в наборе данных Microsoft Malware Classification Challenge

Название семейства

Число образцов в обучающей выборке

Тип ВПО

Ramnit

Lollipop

Kelihos_ver3

Vundo

Simda

Tracur

Kelihos_ver1

Obfuscator.ACY

Gatak

1541

2478

2942

475

42

751

398

1228

1013

Червь (Worm)

Рекламное ПО (Adware)

Бэкдор (Backdoor)

Троян (Trojan)

Бэкдор (Backdoor)

Троян‑загрузчик (Downloader)

Бэкдор (Backdoor)

(Obfuscated malware)

Бэкдор (Backdoor)

Метрики оценки качества классификации

С целью оптимизации обучения и тестирования модели на исходных и искусственно «зашумленных» изображениях обучающий набор данных был сокращен до 2000 образцов. Для оценки качества классификации вредоносного ПО с помощью построенной модели использовались следующие метрики:

Точность классификации (Accuracy):

Accuracy=\frac{∑_{i=1}^C{TP_i} }{N},

где:

  • C количество классов,

  • TP_i       – количество правильно классифицированных объектов класса i,

  • N – общее количество всех объектов. ​

Логарифмическая функция потерь (Logloss):

Logloss=-\frac{1}{N}\sum_{i=1}^{N}\left(y_i\log{\left(p_i\right)+\left(1-y_i\right)\log{(1-p_i)}}\right),

где N – общее количество примеров,y_i  – истинная метка i -го примера (0 или 1), p_i – предсказанная моделью вероятность того, чтоi -й образец принадлежит к положительному классу.

Точность (Precision):

Precision=\frac{TP}{TP+FP},

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

Полнота (Recall), также известная как чувствительность:

Recall=\frac{TP}{TP+FN},

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

F1-мера (F1-score):

F_1=2\cdot\frac{Precision\cdot R e c a l l}{Precision+Recall}.

Результаты обучения и тестирования модели классификации

Данные были распределены в соотношении 70/30: 70% на обучение и 30% на тестирование (валидацию). Такой подход обеспечивает объективную оценку качества модели и позволяет избежать переобучения (overfitting) на гиперпараметрах или утечки информации (information leaking).

На рисунке 7 показаны графики зависимости точности классификации (accuracy) и значения функции потерь (loss function) от числа эпох обучения модели на исходных данных. Как видно, точность на тестовой выборке начала расти с 6-й эпохи и достигла максимального значения на 16-й. Функция потерь сначала демонстрировала скачкообразный рост до 5-й эпохи, после чего начала резко снижаться, достигнув минимума также на 16-й эпохе.

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

На рисунке 8 представлена матрица ошибок (confusion matrix), показывающая количество правильно и неправильно классифицированных образцов в выборке. По горизонтали указаны предсказанные классы, по вертикали – истинные. Каждая ячейка содержит значение, представляющее собой отношение числа предсказаний алгоритма для определённого класса к общему количеству образцов этого класса, то есть действительное число в интервале [0, 1]. Видно, что наихудший результат получен для семейства ВПО Simda – 0,31. Это обусловлено малым количеством исходных образцов: всего 42 файла в датасете, что после разделения на обучающую и тестовую выборки дало лишь 13 изображений для валидации.

Рис. 8. Матрица ошибок классификации модели CNN для исходной обучающей выборки.
Рис. 8. Матрица ошибок классификации модели CNN для исходной обучающей выборки.

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

Таблица 2 – Значения метрик оценки качества модели CNN для каждого семейства ВПО без аугментации

Название семейства

Точность (Precision)

Полнота/Чувствительность (Recall)

F1-score

Ramnit

Lollipop

Kelihos_ver3

Vundo

Simda

Tracur

Kelihos_ver1

Obfuscator.ACY

Gatak

0.8451

0.9726

1.0000

0.8488

0.6667

0.8649

0.9726

0.9394

0.9351

0.8219

0.9726

1.0000

0.9865

0.3077

0.8767

0.9726

0.8378

0.9863

0.8333

0.9726

1.0000

0.9125

0.4211

0.8707

0.9726

0.8857

0.9600

Далее обучающая выборка была расширена добавлением «зашумленных» образцов. Для того чтобы добиться минимального разброса значений между классами было решено произвести аугментацию с получением одинакового числа изображений для каждого класса в результирующем наборе – по 300 образцов в семействе.

На рисунке 9 показаны графики зависимости точности классификации (accuracy) и значения функции потерь (loss function) от числа эпох обучения модели на расширенном наборе данных. Как видно, уже к 12-й эпохе были достигнуты наилучшие значения этих показателей. На рисунке 10 представлена матрица ошибок, отражающая результаты обучения и валидации модели на аугментированном наборе данных. Для семейства Simda показатель отношения числа предсказанных и истинных образцов стабилизировался и достиг значения 1.00. Для остальных классов также наблюдается высокая точность классификации, что свидетельствует о положительном эффекте аугментации на обобщающую способность модели.

Рис. 9. Графики зависимости точности классификации и значений функции потерь от числа эпох обучения после аугментации.
Рис. 9. Графики зависимости точности классификации и значений функции потерь от числа эпох обучения после аугментации.
Рис. 10. Матрица ошибок классификации модели CNN для расширенной обучающей выборки.
Рис. 10. Матрица ошибок классификации модели CNN для расширенной обучающей выборки.

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

Таблица 3 – Значения метрик оценки качества модели CNN для каждого семейства ВПО с аугментацией обучающей выборки

Название семейства

Точность (Precision)

Полнота/Чувствительность (Recall)

F1-score

Ramnit

Lollipop

Kelihos_ver3

Vundo

Simda

Tracur

Kelihos_ver1

Obfuscator.ACY

Gatak

0.8667

0.9310

0.9890

0.9551

0.9474

0.8495

0.9889

0.9643

0.9670

0.8667

0.9000

1.0000

0.9444

1.0000

0.8778

0.9889

0.9000

0.9778

0.8667

0.9153

0.9945

0.9497

0.9730

0.8634

0.9889

0.9310

0.9724

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

Заключение

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

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

Список литературы

  1. ReasonLabs: What is Metamorphism? [Электронный ресурс]. – URL: https://cyberpedia.reasonlabs.com/EN/metamorphism.html (дата обращения: 16.05.2025)

  2. Catak F.O., Ahmed J., Sahinbas K., Khand Z.H. Data augmentation based malware detection using convolutional neural networks // PeerJ Computer Science, 2021. Vol. 7. - DOI: https://doi.org/10.7717/peerj-cs.346

  3. Шеннон К. Работы по теории информации и кибернетике // Издательство иностранной литературы.  – М., 1963. – 832 с.

  4. ГОСТ Р 59898-2021 Оценка качества систем искусственного интеллекта. Общие положения. – М.: Российский институт стандартизации, 2021. – 19 с.

  5. Selesnick I.W. The Estimation of Laplace Random Vectors in Additive White Gaussian Noise // IEEE Transactions on Signal Processing. – 2008. – C.  3482- 3496. – DOI: 10.1109/TSP.2008.920488.

  6. Wojtkiewicz S.F., Johnson E.A., Bergman L.A., Grigoriu M., Spencer B.F.: Response of stochastic dynamical systems driven by additive Gaussian and Poisson white noise: Solution of a forward generalized Kolmogorov equation by a spectral finite difference method // Computer Methods in Applied Mechanics and Engineering. – 1999. – Т. 168. - C. 73–89. – URL: https://doi.org/10.1016/S0045-7825(98)00098-X

  7. Нгок Х.Т.Д. Метод устранения лапласовского шума на изображениях // Естественные и математические науки в современном мире. -  2014.

  8. Соснин А. С., Суслова И. А. Функции активации нейросети: сигмоида, линейная, ступенчатая, ReLU, Tahn // «Наука. Информатизация. Технологии. Образование»: материалы XII международной научно-практической конференции. —  Екб, 2019. — С. 237–246

  9. Nguyen T.-H., Nguyen T.-N., Ngo B.-V. A VGG-19 Model with Transfer Learning and Image Segmentation for Classification of Tomato Leaf Disease // AgriEngineering. - 2022. – Т. 4. - С. 871-887. - URL: https://doi.org/10.3390/agriengineering4040056

  10. Ronen R., Radu M., Feuerstein C., Yom-Tov E., Ahmadi M. Microsoft malware classification challenge // arXiv preprint arXiv:1802.10135. -  2018. -  URL: https://arxiv.org/pdf/1802.10135

Комментарии (1)


  1. veg2022
    08.11.2025 21:51

    При всем уважении, теоретики, как всегда, оторваны от практики. Никогда эта работа не найдет серъезного воплощения в ИТ. Так как в основе ее лежит локальная энтропия. Аналогичные системы уже внедрены в проверочные модули AV (по крайней мере, в один AV), но эффективность очень невысокая, так как идею губят ложные срабатывания (реальные данные малвари и легаси крайне мало отличаются). А их процент высок и при безупречной работе модели — увы, выше входной выборки не прыгнешь. И это не зависит от последующих преобразований, в том числе для аугментации, которая по сути есть искусственное (!) наращение объема данных. Объем вашей выборки в 2000 (и в 11000) файлов совершенно непоказателен, он просто микроскопичен