Здравствуйте, друзья! Меня зовут Алексей Потапов, и я представляю экспертный центр безопасности Positive Technologies. Ранее мы уже знакомили вас с ключевыми элементами нашего подхода к обнаружению атак на примере технологий в SIEM: механизме построения цепочек запускаемых процессов на основе нормализованных событий, автоматическом вайтлистинге и машинном обучении для выявления нестандартного поведения пользователей и процессов в инфраструктуре. Тему ML было бы невозможно раскрыть в одном посте, поэтому предлагаю углубиться в более технические детали.
Мы уже рассказывали про модуль Behavioral Anomaly Detection (BAD). Он работает как система second opinion — собирает данные о событиях и пользователях, присваивает им определенный уровень оценки риска (risk score) и выдает альтернативное мнение, основываясь на своих алгоритмах. Фишка BAD в том, что он снижает когнитивную нагрузку аналитика системы SIEM, позволяя эффективнее принимать решение по инциденту информационной безопасности.
В этой статье я расскажу, что делает модуль BAD не просто новым инструментом, а полноценным игроком в вашей команде кибербезопасности. Поговорим о перспективах, которые открывает его использование.
Сердцем модуля Behavioral Anomaly Detection является механизм оценки риска событий. Этот элемент обеспечивает раннее выявление потенциальных угроз. Он основан на алгоритмах машинного обучения, которые анализируют и сопоставляют поведенческие паттерны с нормальной активностью, назначая каждому событию уровень риска (risk score).
В центре модуля — анализ процессов операционной системы. Это наиболее важная и приоритетная функция в BAD. В основе оценки риска лежит принцип, по которому под первопричиной большинства киберугроз, происходящих во внутренней инфраструктуре, понимаются именно процессы ОС. Ведь как раз через них злоумышленники реализуют свои вредоносные намерения.
Подходы к определению уровня риска в BAD отличаются от подходов, присущих UEBA-системам (user and entity behavior analytics) и другим аналогичным решениям. Формирование оценки уровня риска в модуле BAD начинается с поступления событий из операционных систем и приложений, каждое из которых подвергается анализу множеством атомарных моделей машинного обучения. Эти модели разработаны для того, чтобы изучать разные аспекты и характеристики (рассмотрим их далее) одних и тех же событий и процессов. Таким образом обеспечивается многогранная оценка активности (действий).
Особенностью атомарных моделей является их способность анализировать отдельные «фичи» событий, поэтому одно событие может быть оценено с разных сторон. К примеру, одна модель может сосредоточиться на поиске редких или уникальных процессов, в то время как другая — на его коммуникации с сетевыми ресурсами. Благодаря встроенным в BAD функциям поиска и объединения различных типов событий (например, для создания data set, который ищет аномальный процесс, авторизующийся в операционной системе или приложении), нам удалось учитывать вердикты таких моделей в общем профайлере процессов в BAD. Без объединения таких событий в один data set модели, которые анализируют доступ в ОС и приложения, не учитывались бы.
Каждая атомарная модель имеет определенный вес, или значимость, что позволяет точнее калибровать итоговый risk score. Срабатывание моделей агрегируется для каждого уникального идентификатора процесса (GUID), при этом учитываются не только модели, связанные с анализом событий запуска процессов, но и множество других событий, в которых принимает участие этот процесс. Так можно получать разнообразный контекст взаимодействия процесса с системой. Кроме того, принимаются во внимание все связанные с ним последовательности процессов в цепочке.
Мы выходим за рамки традиционных методов обнаружения угроз, которые опираются на конкретные инструменты атакующих или артефакты (например, индикаторы атак, IP-адреса, хеши). Индикаторы поведения (indicators of behavior, IoB) атакующих являются ключевым элементом в этом процессе, поскольку они представляют собой набор долговременных и сложных для обхода правил, срабатывания которых предоставляют важную для анализа информацию.
Модуль BAD включает набор специализированных правил, или индикаторов поведения, которые активируются при выполнении определенных условий в ходе анализа процесса. Эти индикаторы срабатывают, когда в рамках уникального идентификатора (GUID) процесса обнаруживаются аномальные или подозрительные действия, фиксируемые соответствующими поведенческими моделями.
Основная цель индикаторов поведения — раскрыть стратегию и цели злоумышленника, анализируя последовательности действий, взаимосвязи которых образуют вредоносные паттерны, выделяющиеся на фоне обыденного поведения в сети. Зафиксированные индикаторы поведения служат сигналом для дальнейшего изучения и приводят к генерации оповещений, которые автоматически направляются в центральную систему управления инцидентами безопасности MaxPatrol SIEM. Итоговый risk score для каждого процесса и цепочки процессов в целом формируется путем агрегирования оценок веса моделей, сработавших при обнаружении индикаторов поведения (IoB). Этот risk score может быть использован для приоритизации событий, позволяя аналитикам SIEM-системы сфокусироваться на наиболее критичных и подозрительных событиях. Кроме того, IoB могут быть использованы для разработки продвинутых корреляционных правил или правил обогащений. Это обеспечивает более точное и всестороннее обнаружение угроз.
На рисунках 1 и 2 приведена схема формирования профиля процесса и его risk score.
Для начала стоит отметить, что, помимо запроса risk score через сниппет карточки события (рис. 3), почти все алерты, которые генерируются в системе SIEM, отправляются в модуль BAD для обогащения их тем же risk score. Это дает возможность аналитикам и операторам MaxPatrol SIEM использовать поле bad.risk_score при написании правил корреляций или обогащений, а также в фильтре событий, например, для сортировки и поиска наиболее аномальных срабатываний.
Модуль BAD способен обнаружить следующие кейсы:
сложные целенаправленные атаки, атаки с использованием различных техник обхода правил корреляций;
новые тактики, техники и процедуры, еще не покрытые детектами;
постэксплуатацию после использования неизвестной ранее уязвимости;
случайный или чрезмерный вайтлистинг, когда сами пользователи «завайтлистили» те или иные правила корреляции.
Одна из задач модуля BAD — это помощь аналитику при анализе срабатываний правил корреляции. Значение оценки риска в карточке события сработавшего правила корреляции может помочь аналитику принять правильное решение в пользу true positive или false positive. На рисунке 3 — пример сработавшего правила корреляции с importance = high, однако модуль BAD проанализировал активность процесса, который был триггером для срабатывания правила, и присвоил этому событию низкий risk score. Скорее всего, эта корреляция имеет невысокий уровень важности, а срабатывание на самом деле ложное.
Давайте посмотрим, какие алерты с обогащенным bad.risk_score пришли в MaxPatrol SIEM до интерактивных атак, о которых буду писать ниже (рис. 5), и какие из срабатываний имеют risk score выше 50 и 100 (рис. 6, 7).
Как видно на рисунках 6 и 7, в MaxPatrol SIEM после фильтрации срабатываний по значению поля bad.risk_score осталось незначительное количество срабатываний со значением выше 50 и отсутствуют те, значение которых выше 100.
А теперь давайте рассмотрим две реальные интерактивные атаки, произошедшие в рамках киберучений Standoff. В качестве примера рассмотрим сработавшие модели и индикаторы поведения в модуле BAD в MaxPatrol SIEM и объясним, как мы обнаружили эти инциденты.
Рассмотрим инцидент, когда на рабочей станции пользователя был запущен вредоносный файл gostbypass.exe. Этот файл функционировал как SOCKS-прокси и стал каналом развития атаки. Стоит отметить, что никаких процессов этот вредонос не порождал.
Атакующие провели разведку доменной сети и получили доступ к нескольким серверам и приложениям. Схема событий проиллюстрирована на рисунке 8.
На эту активность было несколько срабатываний правил корреляций с низким уровнем важности (рис. 9), однако модуль BAD проанализировал весь профиль поведения процесса gostbypass.exe и выдал альтернативное мнение. Зайдя в карточку оценки риска, оператор может подтвердить оценку модуля (рис. 10), и тогда эта активность не будет участвовать в последующем обучении моделей. А на рисунке 11 мы можем наблюдать, какие ML-модели и индикаторы поведения сработали.
Модуль BAD, используя свои алгоритмы машинного обучения, проанализировал поток данных с рабочей станции пользователя, подвергшегося компрометации. В ходе анализа, опираясь на интегрированный набор атомарных моделей и индикаторов поведения, модуль выявил необычные шаблоны в последовательностях и поведении процессов (рис. 12). Отклонения от базового профиля нормального поведения, отмеченные этими моделями, влияли на увеличение risk score, что сигнализировало системе о возможности вредоносной активности.
В третьем сценарии предлагаю рассмотреть инцидент, при котором компьютер пользователя подвергся атаке с использованием вредоносного офисного файла. Запущенный из этого документа скрипт PowerShell загрузил и активировал целый ряд вредоносных компонентов, один из которых служил прокси-сервером и стал каналом развития атаки. Злоумышленник провел разведку узла и, выполнив перемещение внутри периметра (lateral movement), получил доступ к нескольким компьютерам в сети. Эта схема событий проиллюстрирована на рисунке 13.
В этом кейсе давайте поищем срабатывания правил корреляций, у которых высокое значение bad.risk_score. На рисунке 14 мы отфильтровали срабатывания с высоким уровнем риска (по оценке BAD).
На эту нелегитимную активность также cработало несколько правил корреляций и индикаторов поведения (рис. 15).
Давайте посмотрим, какие модели машинного обучения сработали и почему эта активность имеет высокую оценку риска. На рисунке 16 представлен список сработавших моделей, разъясню некоторые из них.
Подозрительная цепочка запусков процессов (windows).
MaxPatrol SIEM может строить цепочки запускаемых процессов. У нас есть предобученная модель, которая обучалась и дообучается на цепочках процессов.
Нетипичный для процесса целевой узел (windows).
Эта модель ищет аномальный процесс, который авторизовывается в операционной системе Windows. Если активность аномальна, то модель срабатывает.
Нетипичный для пользователя процесс (windows).
Эта модель ищет запуск уникальных для пользователя процессов на узле и предупреждает о том, что такой процесс ранее не присутствовал в обучающей выборке.
Из сработавших атомарных моделей сформировались индикаторы поведения (рис. 17), на основе которых и формируется итоговый risk score.
Кроме того, модуль BAD рассчитывает для процесса так называемые признаки. На рисунке 18 выделен обнаруженный признак: в этой нелегитимной активности есть процесс, который ведет себя как прокси-сервер.
Таким образом, модуль BAD успешно выявил эту аномальную активность, особенно нестандартное использование процесса, который выполнял роль прокси-сервера, а фильтрация срабатываний правил корреляций по значению поля bad.risk_score позволила оперативно найти нужные срабатывания и своевременно обнаружить инцидент.
Давайте представим ситуацию, что на предыдущую активность не сработало ни одно из существующих в системе правил корреляций или же неопытный оператор, например, написал широкую регулярку и «завайтлистил» пачку правил корреляций.
Построенный на альтернативных методах обнаружения BAD отправил сработавшие индикаторы поведения в MaxPatrol SIEM, в котором мы агрегировали все срабатывания этих индикаторов в рамках уникального GUID процесса и подсчитали суммарный вес всех правил. После этих манипуляций мы нашли наиболее аномальные процессы, и как раз именно эти процессы были ключевыми при рассмотрении предыдущих сценариев. Причем проанализированная активность включала в себя множество различных типов событий и по всей цепочке процессов.
Интеграция модуля BAD с MaxPatrol O2 (рис. 20), способным автоматически строить цепочки атак злоумышленников, — отлично дополняет существующие в метапродукте способы обнаружения угроз.
Синергия получается в результате двух вещей:
BAD позволяет не упустить атаки, не обнаруженные традиционными средствами мониторинга, создавая свои алерты.
MaxPatrol O2 связывает алерты от BAD в единый контекст атаки, собираемый метапродуктом с помощью алгоритмов склейки и обогащения. Это позволяет перейти от анализа атомарных алертов к анализу цепочки атаки. Учитываются и алерты от BAD. Подробнее, как метапродукт это делает, мы рассказали тут.
Чем полнее контекст атаки, тем точнее вердикт MaxPatrol O2 в отношении активности. Согласитесь, проще принять решение о подозрительном соединении с внешним узлом, когда видна вся цепочка запусков процессов, приведшая к такому соединению, и тут же — что последовало за ним: создание файлов, авторизаций пользователей в системе, перемещение внутри периметра и многое другое. Полнота контекста атаки также позволяет локализовать инцидент, определив начальную точку, и отреагировать на него так, что продолжение атаки для злоумышленника станет невозможным.
Таким образом, связка BAD и MaxPatrol O2 повышает точность обнаружения атак за счет учета событий от BAD и его вердиктов в скоринговой модели метапродукта. Это снижает количество ложноположительных вердиктов цепочек, как в кейсе № 1, где корреляции с importance = high модуль BAD присвоил низкий risk score, что соответствует ложному срабатыванию.
Очевидно, что технологии ML становятся мощным инструментом, полезным в детектировании атак. В SIEM-системах алгоритмы помогают не только облегчить работу аналитиков при расследовании инцидентов, но и ускорить обнаружение аномалий и атак, которые могут остаться незамеченными при применении традиционных методов обнаружения, основанных на индикаторах компрометации (IoC) или индикаторах атак (IoA).
Risk score в BAD повышает точность и скорость реагирования на угрозы, помогает командам SOC оптимизировать процессы обнаружения и, что важно, сократить время, необходимое для нейтрализации инцидентов.
Мы планируем и дальше развивать механизмы скоринга, а также интеграцию BAD с другими продуктами компании.
Кроме того, будем совершенствовать атомарные модели и разрабатывать новые индикаторы поведения атакующих, что позволит еще точнее идентифицировать аномалии и характерные признаки хакерской активности.
Мы также видим большой потенциал в создании единой комплексной модели, которая сможет описывать поведение хакера в целом. Эта модель обучается на обширном наборе данных, включая информацию о реальных киберинцидентах у клиентов, и сведений, полученных в ходе киберучений и проектов, таких как Standoff. В распоряжении Positive Technologies есть уникальные ресурсы для сбора таких данных, что дает преимущество в постоянном усовершенствовании и дообучении нашей модели.
Сочетание множества атомарных моделей, индикаторов поведения с одним масштабным аналитическим решением откроет новые горизонты в проактивной защите от кибератак.
Верю, что инвестиции в развитие машинного обучения и искусственного интеллекта значительно повысят уровень кибербезопасности и обеспечат нашим клиентам результативную защиту в постоянно меняющемся цифровом мире.
эксперт отдела обнаружения атак PT Expert Security Center, Positive Technologies