Конструируем нейронную сеть для выявления вредоносного кода PowerShell

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
Максим Павлунин

Руководитель Центра мониторинга, Angara SOC

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

В ИБ технологии машинного обучения успешно применяются в системах защиты информации, таких как IDS/IPS, WAF, Antivirus, Anti-phishing и т.д. Все эти СЗИ обрабатывают огромные объемы данных, и выявление атак сопряжено с большой вариативностью техник злоумышленника. Конечно же сигнатурный анализ не готов уйти в историю и является основой для выявления угроз, но есть ряд существенных ограничений. В основном, правила направлены на выявление известных техник и не всегда способны учесть все возможные вариации, т.е. направлены на выявление ряда частных случаев. Соответственно, выявление неизвестных атак достаточно проблематично. К тому же количество правил/сигнатур стремительно растет, что затрудняет их сопровождение и приводит к высокому потреблению вычислительных мощностей. Модели машинного обучения позволяют решить эти проблемы, так как способны обучаться на больших данных и выявлять аномальные паттерны, которые невозможно учесть при сигнатурном анализе. В современных СЗИ данные технологии применяются совместно и дополняют друг друга.

Аналогичные проблемы существуют и в SOC относительно методик выявления инцидентов ИБ. Основой являются правила корреляции SIEM, которые в отдельных кейсах стремятся покрыть выявление всех возможных атак, но не могут этого сделать в виду различных ограничений. В отличие от СЗИ машинное обучение в инструментах SOC развито достаточно слабо. Мы тестировали ряд систем, таких как Anomaly Detection и UEBA, но широкого применения в SOC они не нашли из-за большого количества ложных срабатываний. Других инструментов, направленных на выявление инцидентов ИБ, нам, к сожалению, найти не удалось.

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

Итак, что мы знаем о PowerShell? Это командный интерпретатор, встроенный в ОС Windows, который широко используется злоумышленниками при проведении различных атак, более подробно описан в T1059.001 MITRE. Существует большое количество инструментов на языке PowerShell, которые могут применяться как в составе ВПО, так и непосредственно злоумышленником при компрометации системы. PowerSploit, Empire, Nishang – это лишь малая часть общеизвестных коллекции подобных утилит для автоматизации действий злоумышленника, направленных на сбор информации, эксплуатацию уязвимостей, повышение привилегий и т.д. Но в каждой организации IT-служба использует и легитимные скрипты для автоматизации администрирования. Отличить легитимное от вредоносного иногда довольно сложно, а проанализировать миллионы скриптов для написания правил скорее невозможно.

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

Источник: https://habr.com/ru/companies/angarasecurity/articles/751858/


Интересные статьи

Интересные статьи

У многих FPGA или ПЛИС, ассоциируется с низкоуровневым программированием на языках VHDL, Verilog, или OpenCL. Платформа .NET уже давно захватила нишу микроконтроллеров, проект nanoFramework. После...
В один прекрасный день наш сертификат подписи кода протух.Ну протух и протух, случается. У нас же есть новый сертификат! Щас переподпишем, и всё заработает!А вот и нет. У нового сертификата - новая це...
В предыдущей статье мы рассказали, как запустить стабильную версию Suricata в Ubuntu 18.04 LTS. Настроить IDS на одном узле и подключить бесплатные наборы правил довольно несложно. Се...
Объявляю пятиминутку без разговоров о некомпьютерных вирусах на IT-сайте! А ведь без шуток. Если вы говорите по-французски или живёте во Франции, то вы можете участвовать в конкурсе, который я ор...
Скомпилируем простенькую программу выводящую "Hello World" и пройдемся по его структуре Не думаю, что статья будет достаточно информативной для тех, кто поверхностно не знает как выглядит байт-к...