Михаил Пименов, аналитик Security Vision
В этой статье хотелось бы обсудить индикаторы атаки — ту часть Threat Intelligence, которая отвечает за эффективное реагирование на угрозы и расследование инцидентов. В этом контексте вспомним одну из апорий Зенона Элейского про Ахиллеса и черепаху. Современный бизнес часто оказывается в позиции быстроного Ахиллеса, который, догоняя черепаху, всегда остается чуть позади.
Правила корреляции написаны и развернуты в SIEM-системе, но спустя неделю или две они становятся уже не настолько актуальны, как в момент выхода, потому что мир не стоит на месте и постоянно появляются новые уязвимости, новые группировки злоумышленников, использующие новые техники. И правила корреляции хорошо написаны и эффективно работают с большей частью угроз, но не покрывают техники и тактики, которые появились после них. Другая проблема — недостаточное количество данных из источников для полноценного анализа ситуации в SIEM. Выстраивая kill chain от initial access до impact, мы обнаруживаем в нём огромные дыры потому, что некоторые источники были недонастроены либо настроены на меньший охват, чем хотелось бы. Аналитики пишут правила корреляции на основе новых данных: ресёрча, анализа репортов из специализированных источников, но с учетом того, что у них есть основная загрузка, связанная с наиболее приоритетными инцидентами и задачами, им зачастую просто физически не хватает времени на то, чтобы достаточно часто обновлять правила корреляции.
Threat Intelligence
В этой непростой ситуации на помощь приходит технология Threat Intelligence. С её помощью происходит сбор актуальной информации со всех просторов Интернета. Один из символов Threat Intelligence, который вы, возможно, видели — пирамида с четырьмя уровнями индикаторов обнаружения: техническим, тактическим, операционным и стратегическим.
Поставщики коммерческих фидов в нашей стране поставляют в первую очередь технические данные. Вероятно, поэтому TI чаще всего ассоциируется именно с индикаторами компрометации (IoC). Эта информация, конечно, очень ценна и полезна, но иногда необходим дополнительный контекст, чтобы сложилось лучшее понимание именно вашего ландшафта угроз. Поэтому в состав коммерческих фидов, кроме вредоносных IP, часто включена информация о злоумышленниках, эксплуатирующих эти IP-адреса, об уязвимости, с помощью которой чаще всего происходит проникновение в инфраструктуру жертвы именно с этого домена. К вредоносному домену может быть привязана определенная техника и тактика MITRE ATT&CK, которую чаще всего использует этот злоумышленник. Однако есть и более глубокий уровень анализа, а именно — поведенческие характеристики атаки.
Поведенческие индикаторы
Поведенческий анализ прежде всего отвечает на вопрос: а что, собственно, будет делать злоумышленник, когда ему удастся проникнуть в инфраструктуру атакуемой компании? Все, кто ходят, непременно оставляют следы, а преступник проник в ваше информационное пространство не для того, чтобы тихонько постоять в уголке. Когда была, к примеру, успешно проэксплуатирована некая уязвимость — создался какой-то процесс, где-то загружается вредоносная библиотека, другими словами, возникают признаки поведенческого характера.
Чем же так полезны поведенческие индикаторы в реальной жизни? Дело в том, что в случае проактивного поиска угроз (Threat Hunting), основанного на формировании гипотез, где инцидент — это успешная проверка такой гипотезы, мы только предполагаем, что имела место эксплуатация уязвимости. Это часто лишь попытки несанкционированного доступа к данным. В инцидент может попасть легитимное удаление теневых копий или нет. Задача ИБ-аналитика в процессе расследования выяснить: инцидент false positive или это настоящая атака, был impact или это просто шум? Поведенческий анализ как раз помогает это сделать. Например, уязвимость Follina (CVE-2022-30190) имеет стойкие индикаторы атаки, такие как запущенная утилита MS Diagnostic Tool. И вроде бы процесс легитимный, просто диагностическая утилита, но у процесса есть: конкретный родитель, в данном случае процесс Winword, подозрительный payload, вредоносный код PowerShell. И когда владеешь этой информацией, при попытке эксплуатации уязвимости не составляет труда проверить: был ли на хосте запущен MS DT в окрестностях этого инцидента и был ли в нем какой-то подозрительный PowerShell payload, то есть какая-то полезная нагрузка? Таким образом, мы получаем оперативное решение гипотез, но есть и другие плюсы, заключающиеся в самой сути TI.
Комплексный подход
Threat Intelligence — это технология, базирующаяся прежде всего на подходе community driven (CDD), когда развитие технологии ориентировано не на конкретную компанию, а на целое сообщество специалистов в области информационной безопасности. На сегодняшний день мы имеем доступ к огромному количеству совершенно разношерстных источников. Существуют различные Sigma-репорты, вендорские отчеты, DFIR-репорты. Мы видим, как сообщество специалистов в области цифровой криминалистики и защиты информации обменивается внутри себя информацией, полученной в результате реального опыта противостояния тем или иным угрозам.
В задачи прикладного использования TI входит выбор из всего потока данных наиболее полезной, актуальной информации по скомпрометированным IP, уязвимостям, хакерским группировкам, новым тактикам и техникам релевантным для вашей модели угроз и злоумышленника, в результате чего появляется возможность актуализировать и расширить свой ландшафт угроз. Из этой выборки мы уже можем делать вывод, принадлежим ли мы к группе риска по тем или иным актуальным IoC, CVE или техникам. Таким образом, Threat Intelligence позволяет осуществлять комплексный подход, где с одной стороны мы используем старый добрый подход Alert base, основанный на сработках SIEM, а с другой — строим гипотезы о наличии косвенных признаков той или иной угрозы. Далее мы проверяем эти гипотезы: проверяем определенные процессы, именованные каналы, причем Threat Intelligence Platform не только поставляет нам эти гипотезы, но в связке с SOAR позволяет в полуавтоматическом режиме их проверять, тем самым снижая нагрузку на наиболее квалифицированных специалистов по информационной безопасности.
Пример из жизни
В теории это, конечно, выглядит здорово, но гораздо интересней было бы посмотреть, как все работает на самом деле. Предлагаю разобрать реальный пример из нашего богатого опыта. Инцидент произошел в рамках сегмента, имеющего выход в интернет. Он был достаточно быстро купирован, но является очень показательным в плане выявления разных стадий атаки. Начинается обычно все с Reconnaissance, затем следует Initial access. Как правило, это автоматическое сканирование, попытки эксплуатировать уязвимости. При этом не всегда сразу можно понять, были ли эти попытки проникновения в инфраструктуру успешными.
В нашем примере на TIP была выстроена агрегация по src и dst, что позволило увидеть цепочку атаки. Мы заметили, что с одного актива в dmz-сегменте были обратные запросы, а это уже очень серьезный признак потенциально успешной эксплуатации уязвимости, загрузки в инфраструктуру вредоносного ПО и подготовки плацдарма для дальнейшего горизонтального распространения. Что касается C2, то это вообще довольно частая история, когда с одного диапазона адресов начинается сканирование и попытки проникновения, а с другого, уже после получения опорной точки, идет вредоносная нагрузка, с тем расчетом, что, если точка входа будет заблокирована, в другом месте останется точка доступа.
В нашем примере мы видим, что у двух IP-адресов C2 была атрибуция с Cobalt Strike, но у одного из них были ещё и поведенческие атрибуты: коммандлайны, определенные процессы, именованные каналы (named pipes) и характерные dns-запросы. Сопоставив всю собранную информацию, TIP автоматически построил граф, в котором отразил все данные, которые можно применить в контексте расследования.
Что же удалось выяснить? Оказалось, что с скомпрометированного хоста были получены события, свидетельствующие о наличии поведенческих индикаторов, характерных для ВПО Cobalt Strike (именованные каналы и специфичные PowerShell коммандлайны).
Таким образом нам удалось локализовать атаку. Мы построили ландшафт и увидели сетевые обращения изнутри от хостов, которые приняли участие в инциденте. SOAR получила актуальную информацию по хосту (в случае именованных каналов это memory dump), затем, сравнив полученную информацию со своей базой данных, выявила индикаторы компрометации. После чего уже делом техники было заблокировать скомпрометированные хосты из интерфейса того же графа.
Выводы
Для обнаружения поведенческих индикаторов имеет смысл анализировать следующую информацию:
списки запущенных процессов и их параметры
файлы, папки, ветки реестра
WMI
журналы Windows
EDR
Sysmon
другие области (дамп памяти, журналы приложений)
Вы, возможно, спросите: «А что же делать, если нет Sysmon и EDR? Как в этом случае собирать телеметрию?». Эту проблему можно решить правильным выбором связки SOAR-TIP. Наша, например, могла дать базовую информацию по признакам атаки за счет сбора дампов памяти, информации по процессам, и этого уже достаточно для того, чтобы сделать основные выводы и оперативно принять решения. Поэтому используйте максимум возможностей TIP для поиска поведенческих индикаторов, и вы увидите, что Threat Hunting доступней, чем кажется.