Необходимость использования технологий машинного обучения для обнаружения вредоносного кода на интерпретируемых языках | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 11 мая, печатный экземпляр отправим 15 мая.

Опубликовать статью в журнале

Автор:

Научный руководитель:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №13 (512) март 2024 г.

Дата публикации: 27.03.2024

Статья просмотрена: 1 раз

Библиографическое описание:

Сучков, В. В. Необходимость использования технологий машинного обучения для обнаружения вредоносного кода на интерпретируемых языках / В. В. Сучков. — Текст : непосредственный // Молодой ученый. — 2024. — № 13 (512). — С. 1-3. — URL: https://moluch.ru/archive/512/112345/ (дата обращения: 02.05.2024).



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

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

Основным источником вредоносного ПО, например, экосистемы Python, служит пакетный менеджер PyPI, через него пользователь может загрузить вредоносный исходный код, надеясь получить обычное открытое программное обеспечение (далее — ПО) или библиотеку. На данный момент существует большое количество систем для обнаружения вредоносного кода, часть из них специализирована под экосистему Python, что лишний раз подтверждает актуальность защиты от вредоносного ПО, написанного на данном языке программирования.

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

Возьмем популярное средство антивирусной защиты (далее — САВЗ) — Kaspersky Endpoint Security, с учетом обновления антивирусных баз, данное решение смогло обнаружить 1337 вредоносных объектов из более чем 14000 заготовленных файлов, помеченных сообществом исследователей ВПО как вредоносные, это может служить отправной точкой для сравнения с последующими решениями. Основной проблемой, и причиной невысокой точности обнаружения — является недостаточный охват сигнатурных баз, ведь разработчикам необходимо оставлять размер таких баз определенным, чтобы сканирование выполнялось одновременно быстро и точно.

Стоит отметить, что большинство обнаруженных в ходе теста Kaspersky вирусов, были обнаружены при помощи метода эвристического анализа, данный метод позволяет обнаружить признаки вирусов, не содержащихся в антивирусных базах, это наиболее продвинутый способ обнаружения ВПО по сравнению с сигнатурными анализом и сопоставлением с базой, но далеко не самый точный [2, c. 3]. Число ложных срабатываний метода экспертного (эвристического) анализа гораздо выше чем при сравнении с вирусными базами, Технологии машинного обучения позволяют выделять глубокие закономерности и наиболее точные признаки в различных входных данных, что представляет интерес для сравнения системы обнаружения вредоносного кода, основанной на МО с системами эвристического анализа.

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

В ходе проверки на VirusTotal, лишь 27 из 53 представленных антивирусов обнаружили ВПО в архиве, подаваемом в антивирус Kaspersky, среди таких решений — Dr.Web, McAfee, Avast и другие. Это обусловлено недостаточностью антивирусных баз тех 26 САВЗ, которые не смогли распознать хотя бы один вредоносный файл в данном архиве. Данная проверка лишний раз подтверждает, что отсутствие заранее заготовленного шаблона для обнаружения вируса, влечет к гарантированному пропуску вредоносного кода при анализе сигнатурными методами.

Следующий способ обнаружения вредоносного кода — это правила, то есть набор шаблонов, после сопоставления которых выносится вердикт о вредоносности. Одни из таких правил — это правила YARA, они используются для классификации и обнаружения вредоносного ПО на основе текстовых или двоичных шаблонов. Очевидным недостатком снова является необходимость наличия заранее созданных шаблонов, вероятнее данный способ обнаружения сравнительно хуже, чем сигнатурный анализ, т. к. шаблоны способны охватить меньший диапазон используя одни и те же метки компрометации [3, c. 51]. Однако данные правила чаще используются для исследования вредоносного ПО, нежели для его обнаружения. Согласно статье Wenbo Guo — «Эмпирическое исследование вредоносного кода в экосистеме PyPI», библиотека PyPI Check, основанная на правилах YARA, смогла определить 77 % из более чем 6 тысяч вредоносных файлов, однако число ложных срабатываний на легальное ПО, также крайне высоко, 51 % легальных файлов, которых было более 7 тысяч были распознаны как вредоносное, очевидным недостатком, кроме необходимости заранее написанных правил можно назвать большое число ложных срабатываний [4, c. 7].

Еще один метод обнаружение вредоносного кода на интерпретируемых языках программирования — это регулярные выражения, они мало чем отличаются от текстовых шаблонов YARA по своему охвату, и также, как и все ранее описанные методы, нуждаются в заранее написанных шаблонах. Одним из примеров решений, использующих данный метод можно назвать открытое ПО от Microsoft — OSSGadget, используемое для обнаружения вредоносного кода, путем сопоставления регулярных выражений. Основываясь на результатах Wenbo Guo, можно заметить, что данное ПО обнаружило почти 90 % из 6 тысяч вредоносных файлов, но еще более существенный недостаток, чем необходимость заранее написанных шаблонов — это число ложных срабатываний на легальное ПО, почти 80 % из 7 тысяч легальных файлов с исходным кодом — были признаны вредоносными [4, c. 7].

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

Однако на данный момент, подобные технологии не лишены недостатков, и нуждаются в улучшении. Согласно проведенному испытанию, Snyk Code Test, смог определить лишь 12 % из 6 тысяч вредоносных файлов, однако, данный результат показывает относительную работоспособность технологий МО в данной сфере. Например, САВЗ Kaspersky Endpoint Security смог обнаружить 1337 вредоносных файлов из более чем 14000 тысяч, что в процентном соотношении примерно равно результату Snyk Code Test. При этом число ложных срабатываний у данного решения сравнительно меньше чем у решений, основывающихся на правилах YARA или регулярных выражениях, только 18 % легального ПО, были классифицированы как вредоносные.

В заключении анализа, можно выделить три основных недостатка:

— Необходимость заранее созданных шаблонов на вирус, с которым будет сопоставляться проверяемый файл, это может быть сигнатурная база или написанное правило и регулярное выражение;

— Высокое число ложных срабатываний у решений, предназначенных для анализа исходного кода;

— Относительно низкая эффективность существующих решений обнаружения вредоносного кода, основанных на технологиях МО.

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

Литература:

  1. Горбунов А. Н. Принципы использования сигнатурного анализа для обнаружения вредоносных программ // Актуальные проблемы гуманитарных и естественных наук — 2013 — № 11–1 — С. 1–2.
  2. Токарев В. Л. Обнаружение вредоносного программного обеспечения с использованием иммунных детекторов // Известия ТулГУ. Технические науки — 2017 — № 10 — С. 1–15.
  3. Павликов С. Н. Метод обнаружения вредоносных программ и их элементов // Наукоемкие технологии в космических исследованиях Земли — 2022 — № 3 — С. 49–53.
  4. Wenbo Guo. An Empirical Study of Malicious Code In PyPI Ecosystem — 2023 — C. 1–12.
Основные термины (генерируются автоматически): вредоносный код, YARA, машинное обучение, исходный код, обнаружение, баз, решение, сигнатурный анализ, шаблон, антивирусная защита.


Похожие статьи

Задать вопрос