Как обучить модель машинного обучения отражению кибератак APT, часть 6: Fuchikoma v3: уклонение, ответный удар, апперкот!

Это шестая часть серии статей о том, как старший научный сотрудник CyCraft К.К. Чен и его команда постепенно использовали программное обеспечение с открытым исходным кодом, чтобы успешно разработать работающую модель машинного обучения для поиска угроз. Предлагаем начать с Раунд 1: Знакомство с Фучикомой.

Как обучить модель машинного обучения отражать кибератаки APT
Раунд 1
: Знакомство с Fuchikoma
Раунд 2: Fuchikoma VS CyAPTEmu: The Weigh -В
Раунд 3: Фучикома v0: Изучение сладкой науки
Раунд 4: Фучикома v1: В поисках причудливой работы ног
»Раунд 5: Fuchikoma v2: Jab, Cross, Hook, Perfecting the 1–2–3 Combo
Раунд 6: Fuchikoma v3: Уклонение, ответный удар, апперкот!

Готовясь к второму раунду оценок MITER ATT & CK, C.K. Чен и его команда приступили к разработке эмуляции APT-атаки, которую они назвали CyCraft APT Emulator, или сокращенно CyAPTEmu. Целью CyAPTEmu было провести серию атак на машины Windows. Затем была разработана модель машинного обучения (ML) для проверки концепции угроз, специально предназначенная для обнаружения APT-атак и реагирования на них. Его зовут Фучикома.

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

Fuchikoma v0 VS CyAPTEmu прошла, как и следовало ожидать.

Совсем не хорошо.

Fuchikoma v1 решила первую проблему: наличие слабого сигнала. В конвейер ML был введен конструктор блоков анализа (AU); каждое событие создания процесса было преобразовано в AU - мини-дерево процессов, которое связывает исходное событие создания процесса с его прямым родительским и тремя уровнями дочерних процессов. TF-IDF векторизовал командные строки каждого события в одном AU и поместил их в Unit2Doc. Поскольку каждое событие теперь имело контекстную информацию в виде AU, алгоритмы машинного обучения могли сгруппировать похожие AU в кластеры, оставляя нашим исследователям значительно меньше разметки. Хотя кластеризация оказалась полезной, у нее были недостатки.

Fuchikoma v2 решила вторую проблему: несбалансированные наборы данных. Хотя похожие AU все еще были сгруппированы вместе, компонент Anomaly Detection обнаружил самые аномальные AU. Как обсуждалось в Части 3, только 1,1% AU в нашем наборе данных были вредоносными (или, как их читает Фучикома, ненормальными). Оставшиеся 98,9% доброкачественных AU можно затем объединить в кластеры. Тогда нашим исследователям в Разделе 9 нужно будет только исследовать и пометить кластеры, содержащие самые аномальные AU, в соответствии с требованиями компонента обнаружения аномалий. Удалив большинство AU из проверки, Fuchikoma v2 решила проблему несбалансированных наборов данных и значительно сократила время расследования.

Затем произошло нечто волшебное.

Fuchikoma v2 снесла CyAPTEmu!

Однако боксерский поединок на этом не закончился. CyAPTEmu упал, но не выбыл.

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

Чтобы решить эти проблемы, C.K. Чен и его команда добавили несколько новых компонентов в конвейер Fuchikoma v3: построение графа, обнаружение сообщества, тематическая модель и распространение меток.

Построение графа

Прежде чем события создания процесса будут отправлены в AU Builder (теперь обозначенный как Graph2AU), они сначала отправляются во вновь добавленный компонент Graph Construct. Здесь все события создания процесса на одной конечной точке объединены в одно массивное дерево процессов.

В более поздних версиях Fuchikoma компонент GraphConstruct сможет включать IP-адреса и имена хостов, тем самым расширяя дерево процессов, чтобы включать события процессов на конечных точках и связывать их вместе; он будет включать больше типов событий, кроме процесса создания, которые способны отображать боковое движение, например WMIC.

Выше мы видим пример построения графа для одной конечной точки. Graph Construct отображает все отношения всех событий создания процесса для каждой конечной точки. После создания данные отправляются как в Graph2AU, так и в Community Detection.

Как обсуждалось в Части 5, Graph2AU (ранее известный как AU Builder) создает AU, которые затем передаются в компоненты обнаружения аномалий и кластеризации. Fuchikoma v3 теперь расширяет это, объединяя узлы (события создания процесса конечной точки) в кластеры с высокой плотностью при помощи Обнаружения сообщества. Говорят, что группа узлов имеет высокую плотность, когда существует высокий уровень связности и сходства в нескольких измерениях.

Обнаружение сообщества

Более тщательный анализ приведенной выше конструкции графа определяет процесс 0x1374 как основную причину атаки на эту конкретную конечную точку.

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

Эта группа процессов «Дебби» (обведена красным) имеет высокую плотность - узлы (события создания процесса) имеют высокую взаимосвязь и сходство во многих измерениях, таких как WMIC и PSExec.exe. Группы с высокой плотностью называются сообществами.

Сообщества, такие как здесь Дебби, были бы идеальным вариантом для объединения Фучикома в кластеры, поскольку вредоносные события (как видно из фиаско Дебби) также имеют высокую взаимосвязь и сходство. Обнаружение структуры сообщества, проявляемой враждебными методами, и возможность их отслеживать - важные шаги на пути к автоматизации процесса проверки предупреждений SOC и построения нашей возможной сюжетной линии атаки. Объединение в кластеры как можно большего количества вредоносных событий также ограничило бы количество кластеров, которые наши исследователи могли бы пометить.

Компонент «Обнаружение сообщества» обнаруживает структуры сообщества во всех событиях создания процесса, а не только в злонамеренных. Связанные доброкачественные события также имеют высокую плотность. Это можно сделать, используя алгоритмы машинного обучения, такие как алгоритм модульности Лувена. Создано профессором Блонделем и др. от Университета Лувена, алгоритм модульности Лувена представляет собой алгоритм иерархической кластеризации, который рекурсивно объединяет сообщества в один узел на основе их модульности - модуля, частью которого они были в предыдущей итерации. (Модуль - это то же самое, что кластер / группа / сообщество).

В одной тестовой итерации, когда было создано 6786 событий создания процесса, Fuchikoma сгенерировала 540 сообществ (кластеры с высокой плотностью), из которых только 223 сообщества содержали аномальные AU. Благодаря функции Community Detection, генерирующей сообщества с высокой плотностью соединений и сходством, 176 из 223 сообществ были более чем на 50 процентов вредоносными (ненормальными). В результате в 317 доброкачественных сообществах не было обнаружено отклонений, которые не нуждались бы в дальнейшем исследовании.

Вместо того чтобы исследовать все 6 786 событий процесса по отдельности, друзьям Фучикомы из Секции 9 теперь нужно исследовать только 223 отмеченных сообщества.

Модель темы

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

Алгоритм NLP (обработка естественного языка) прочесал текст каждого AU в рамках одного сообщества на предмет высокой плотности любых известных вредоносных ключевых слов. Затем сообщество будет помечено этими ключевыми словами. Этот анализ ключевых слов предоставит исследователям полезные контекстные данные для каждого сообщества.

Примеры ключевых слов:
1. cmd.exe, команда net
2. Powershell, обход
3. whoami, ARP
4. netsh advfirewall, allprofiles , сети

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

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

Это может звучать так, как будто в Fuchikoma не хватает вредоносной активности; однако помните, что из 540 сообществ только 223 содержали аномалии. 176 из 223 аномальных сообществ были аномальными как минимум на 50 процентов. А как насчет пропавших без вести 47 сообществ? У каждого из них есть аномальные AU. Будет ли Фучикома их просто игнорировать?

Нет. Абсолютно нет.

Распространение метки

Фучикома не проявляет милосердия. На этом охота за пропавшим 47 начинается и заканчивается. Используя конструкцию графа и количество аномальных единиц, каждая единица, имеющая прямое отношение (родитель-потомок) к аномальному сообществу (одно из 176), немедленно помечается как подозрительное и получает рейтинг подозрительности. Для каждого прямого отношения, которое AU имеет к ненормальному сообществу, рейтинг подозрительности этого AU увеличивается.

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

Fuchikoma v3 был другим зверьком, чем его предшественник. После внедрения четырех новых компонентов в конвейере Fuchikoma v3 смогла сделать больше, чем просто победить CyAPTEmu в метафорическом боксерском ринге - гораздо больше.

Оценка эффективности

Как упоминалось в Части 2 этой серии, целью CyCraft APT Emulator (CyAPTEmu) является создание атак на машины Windows в виртуализированной среде. CyAPTEmu отправит две волны атак, каждая из которых использует заранее созданный сценарий. Империя использовалась для запуска первого playbook по образцу APT3. Metasploit использовался для запуска второго сценария, который C.K. и команда под названием Догеза.

Более подробное описание показателей, используемых в этих диаграммах, можно найти в разбивке по оценке производительности Fuchikoma v2.

Результаты Fuchikoma v3 в сравнении с CyAPTEmu были многообещающими.

DBScan с обнаружением сообщества изначально работал хуже, чем без обнаружения сообщества; однако, как только пороговое значение количества аномальных AU было увеличено до 50 процентов, наблюдалось заметное улучшение как истинно отрицательной частоты, так и показателя F1, а также незначительное улучшение истинно положительной частоты. True Negative Rate DBScan увеличился на 6,28 с добавлением функции обнаружения сообщества.

Как DBScan показал себя в сравнении с Dogeza Playbook?

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

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

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

Внедрение компонента Обнаружение сообщества дало смешанные результаты для Isolation Forest и Local Outlier Factor. В то время как обе истинно положительные ставки резко выросли, их истинно отрицательные ставки уменьшились. Это не означает гибели для нашего следователя - отнюдь нет. Это означает, что Fuchikoma v3 обнаруживает вредоносную активность значительно лучше своих предшественников; однако это также создает больше ложных срабатываний.

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

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

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

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

Дебби, тебе предстоит тяжелый день на работе.

Теперь, когда мы прошли весь процесс разработки Fuchikoma v3 и ознакомились с оценкой производительности, давайте еще раз вернемся к нашей команде элитных исследователей в Разделе 9.

Проблема первая: слабый сигнал [РЕШЕНИЕ]

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

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

Проблема вторая: несбалансированные наборы данных [РЕШЕНИЕ]

Как указывалось ранее, в обычный рабочий день в организации могут быть включены миллиарды разнообразных событий. Лишь малая часть из них (1,1% в данных обучения) на самом деле связана с реальной атакой. Этот огромный дисбаланс в наборах данных (нормальных и вредоносных) создал две большие проблемы: (1) неэффективное время маркировки и (2) неидеальный объем данных для вредоносных событий. Однако из-за приоритетности обнаружения аномалий доброкачественные кластеры (98,9% обучающих данных) больше не нужно маркировать, что резко сокращает размер данных, которые необходимо маркировать, и время, необходимое для маркировки этих данных.

Fuchikoma v2 могла сосредоточиться исключительно на аномальной активности. Однако некоторые вредоносные действия все равно останутся незамеченными, поскольку они идентичны доброкачественным действиям (например, netstat или whoami). Это означает, что некоторые ложные срабатывания все равно будут.

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

Проблема третья: трудно получить высококачественные этикетки [РЕШЕНО]

Использование Fuchikoma v3 обнаружения аномалий и анализа сообщества для предварительного анализа событий позволило значительно сократить количество необходимых меток. Каждое событие (или, с точки зрения Фучикома, блок анализа) содержит значительный объем контекстных данных, которые теперь полностью отображаются в построении графика. В то время как черные списки Тематической модели конечны, точно так же как и сеть и количество событий, которые читает Фучикома. Фучикоме не нужно знать все возможные атаки; ему нужно только увидеть все враждебные приемы, используемые в текущей атаке, что он теперь может.

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

Задача четвертая: нет сюжетной линии [РЕШЕНИЕ]

Поставщики EDR упоминают «обнаружение первопричин», но обычно это относится к конечной точке, а не к истинной глобальной основной причине взломанной сети. Изолированного обнаружения одного вредоносного ПО недостаточно для полного понимания с точки зрения криминалистики, какая вредоносная активность происходит в вашей сети. Что еще хуже, аналитики безопасности могут что-то упустить, когда им представят небольшое количество отдельных событий.

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

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

Тренер Фучикомы (наша команда SOC из 9 секции) определяет истинную причину атаки и дает нашему бойцу последнюю команду: увернуться! Ответный удар! АППЕРКОТ!

CyAPTEMU недоступен!

10.

9.

8.

7.

6.

5.

4.

3.

2.

1.

НОКАУТИРОВАТЬ!

CyAPTEmu не работает по подсчету и не вернется в ближайшее время.

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

Что дальше у Фучикомы?

Fuchikoma - это только одна упрощенная версия одной из более чем 50 сложных моделей машинного обучения, которые наша платформа CyCraft AIR использует для ежедневного уничтожения APT-атак.

CyCraft использует «все наши Fuchikomas» в сетях наших клиентов для обнаружения, сдерживания и реагирования на угрозы. Благодаря непрерывной экспертизе CyCraft может определить не только основную причину одной конечной точки, но и истинную глобальную первопричину во всей вашей сети. Наша платформа CyCraft AIR использует многочисленные автоматизированные инструменты криминалистической экспертизы для решения одной простой задачи - никаких предупреждений.

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

Подписывайтесь на нас

Блог | LinkedIn | Твиттер | Facebook | СайКрафт

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

Мы обеспечиваем SOC нашим запатентованным и отмеченным наградами MDR (управляемое обнаружение и реагирование), управляемым ИИ, операционным программным обеспечением SOC (операционный центр безопасности), TI (анализ угроз), Health Check, автоматизированной криминалистикой и IR (реагирование на инциденты), а также Услуги безопасности из дома.

Дополнительные связанные ресурсы

Как обучить модель машинного обучения отражать кибератаки APT
Раунд 1
: Знакомство с Fuchikoma
Раунд 2: Fuchikoma VS CyAPTEmu: The Weigh -В
Раунд 3: Фучикома v0: Изучение сладкой науки
Раунд 4: Фучикома v1: В поисках причудливой работы ног
»Раунд 5: Fuchikoma v2: Jab, Cross, Hook, Perfecting the 1–2–3 Combo
Раунд 6: Fuchikoma v3: Уклонение, ответный удар, апперкот!