Идея обнаружения по похожести не нова. Определенным образом от ВПО вычисляются неточные (фаззи) хеши, образцы, имеющие одинаковые хеши, считаются похожими. Есть масса хешей, например, SSDeep, а также у любого антивирусного вендора есть свои запатентованные хеши, работающие с разным качеством для разных типов файлов. Но качество уже позволяет переводить такие детекты в боевой режим, поэтому нарратив о том, что если EPP обнаруживает малвару, то образец должен обязательно быть в коллекции, уже давно неправда даже в сценарии без поведенческого детектирования. У ЛК есть еще KTAE, которая смотрит на более широкую совокупность параметров, и на выходе выдает аналогичный similarity результат - % похожести на известное зло.
Но эпоха ML/DL открывает новые возможности для развития детектов по similarity. Например, можно с помощью графовых нейросетей (GNN) анализировать графы потока управления (Control Flow Graphs, CFG) и графы вызова функций (Function Call Graphs, FCG). В работе A Comparison of Graph Neural Networks for Malware Classification рассматриваются различные нейронки для классификации образцов ВПО. Примечательно, что на достаточно небольших датасетах результаты выглядят очень даже воодушевляюще. Статья мне показалась очень полезной, так как содержит массу ссылок на другие работы по теме, а также размышления о том, что для решения поставленной задачи классификации малвары можно попробовать нейронки, используемые для обработки естественного языка (NLP) и конволюционные нейросети (CNN), придуманные изначально для распознавания изображений и компьютерного зрения.
Классификация малвары с помощью GNN и CNN выглядит бодро, но есть небольшая проблемка - граф получается огромный. Однако, в публикации Explainable Malware Detection through Integrated Graph Reduction and Learning Techniques ребята описали подходы к сокращению графа и, вроде, тоже получили неплохие результаты, заметно сократив вычислительные ресурсы, с незначительной потерей в качестве классификации.
В предыдущих двух работах анализировались образцы ВПО для Android, однако, несложно догадаться, что подходы работают и для Windows. Тому подтверждением является вот эта работа - A Survey on Malware Detection with Graph Representation Learning. Статя тоже имеет большую академическую ценность, так как позволяет достаточно погрузиться в тему и содержит много ссылок на связанные исследования.
Обсуждаемые нами до сих пор применения DL для классификации ВПО были статическими, но вот попалась и работа, анализирующая динамику образца ВПО - NF-GNN: Network Flow Graph Neural Networks for Malware Detection and Classification, правда, ограничиваясь анализом сетевого трафика, генерируемого образцом во время его работы. Утверждается, что в схеме без учителя (unsupervised ML), предложенные авторами нейронки будут тоже неплохо работать.
В общем, даже на основе этого небольшого количества приведенных материалов, можно сказать, что подходы к построению детекторов ВПО на основе нейросетей выглядят вполне зрелыми. Единственным сдерживающим фактором здесь является вероятность ошибки, недопустимая для EPP. Однако ошибка допустима для сценариев SOC/MDR, где есть последующая валидация человеком. В сценарии с similarity, с чего мы начали, вероятность ошибки уже настолько мала, что на практике давно используются боевые детекты, аналогично, и в случае нейросетей, после анализа статистики TPR, какие-то сценарии точно можно запустить в полностью автоматическом режиме.
У всего написанного есть очевидная проблема: детектируется ВПО, тогда как living-off-the-land сценарии никто не отменял. Я полон уверенности, что ровно те же подходы, с CNN/GNN и нейронками для NLP, применимы и для анализа поведения. В подтверждение моих слов есть уже несвежая работа по анализу powershell команд Detecting Malicious PowerShell Commands using Deep Neural Networks. Если же мы говорим о поведенческом детектировании, то упрощенно оно работает так, что есть некоторый лог работы (лог поведения), который анализируется роботом. Идея лога аналогична упомянутому выше CFG, поэтому ничто не мешает логи поведения попробовать анализировать теми же CNN/GNN.
В заключение отмечу, что нейросети имеют известную проблему с интерпретируемостью их решения, и это, полагаю, основная проблема на пути их широкого применения в системах безопасности, при том, что ощутимого улучшения качества нейросети не дают. Однако, нейросети позволяют решать более сложные задачи, а там, где потеря интерпретируемости не является ощутимой проблемой, например, в сценариях предварительной разметка с последующей валидацией аналитиком SOC, их использование необходимо рассматривать и тестировать в реальных условиях.