| Слушать на Google Podcasts | Слушать на Mave | Слушать на Яндекс Музыке |
Руслан Рахметов, Security Vision
Друзья, в одной из предыдущих статей, посвященной IRP-системам реагирования на инциденты, мы упомянули такой термин, как «Индикаторы компрометации», или, в зарубежной литературе, Indicators of Compromise (IoCs). Давайте более подробно поговорим о применении и использовании данных индикаторов в контексте обеспечения информационной безопасности - как их собирать, обрабатывать и использовать. Вперед!
Для начала разберемся с терминологией. Само понятие индикаторов компрометации родилось не так давно. Причиной использования этого термина стал вошедший в обиход принцип Assumed Breach, который означает буквально: «Считайте, что вас уже взломали». Иными словами, предполагается, что в ИТ-инфраструктуре любой компании может находиться некое вредоносное ПО, которое уже сейчас осуществляет свою активность вне зависимости от того, были ли зафиксированы какие-либо последствия его вредоносных действий или результаты атаки пока не стали известны компании. Данные предположения небезосновательны - многие вендоры, занимающиеся расследованием киберинцидентов, предоставляли в отчетах свои данные о количестве дней, в течение которых вредоносы находились в инфраструктуре взломанных организаций до момента обнаружения; счет шел на десятки, а иногда и на сотни дней. Таким образом родились концепции Cyber Threat Hunting и Cyber Threat Intelligence.
Cyber Threat Hunting (поиск киберугроз) означает поиск угроз внутри сети: анализ потенциальных свидетельств атаки как известных, так и неизвестных вирусов, поиск следов деятельности киберпреступных групп, а также поиск признаков заражений, в том числе и на самом глубоком уровне, например, в firmware («прошивках») аппаратных устройств, а также в сообщениях от сторонних компаний (поиск признаков атак с IP-адресов защищаемой компании).
Cyber Threat Intelligence (киберразведка) – это поиск информации о потенциальных атакующих, в том числе о серьезных киберпреступных группах, которые называются APT-группировками, от Advanced Persistent Threat (усложненная устойчивая угроза или, коротко, целевая кибератака). Данные APT-группировки по сути представляют собой устойчивое киберпреступное сообщество, в котором роли и обязанности атакующих четко распределены: есть организаторы, есть программисты, есть специалисты в области социальной инженерии, есть дропы, занимающиеся обналичиванием выводимых денежных средств, есть даже своя техподдержка. Разные APT-группы «специализируются» на определенных отраслях экономики: кто-то атакует в основном банки и финансовые учреждения, кто-то - телеком, кто-то - научные и государственные организации и т.д. APT-группировки могут размещать в Даркнете «заказы» на поиск информации об организации для более эффективной последующей атаки, вербовать сотрудников атакуемой компании, приобретать или разрабатывать специализированные инструменты для взлома целевой инфраструктуры. При этом киберразведку можно условно разделить на стратегическую (поиск данных о потенциально опасных для защищаемой компании APT-группах, в том числе информации об их подготовке к совершению кибератаки), тактическую (поиск данных о тактиках, техниках и процедурах атакующих, сокращенно TTPs - Tactics, Techniques, Procedures), оперативную (поиск непосредственных признаков приготовления к атаке - специфических сетевых сканирований для анализа инфраструктуры и поиска уязвимостей, мошеннических входящих звонков и фишинговых писем).
Как видим, оба вида деятельности - и поиск киберугроз, и киберразведка - связаны тем, что нацелены на поиск признаков возможной компрометации ИТ-инфраструктуры, т.е. как уже совершенных кибератака, так и только готовящихся нападений. Вернувшись к теме сегодняшней статьи, дадим определение: индикатор компрометации (Indicator of Compromise, IoC) - это объект/артефакт, обнаруженный в ИТ-инфраструктуре компании, наличие которого с высокой долей вероятности может свидетельствовать о готовящейся, совершающейся или уже осуществленной компьютерной атаке. В качестве индикаторов компрометации (IoCs) могут быть использованы такие статические объекты, как хэш-суммы файлов и их имена и расположение, IP-адреса, DNS-имена серверов в сети Интернет или конкретные URL (например, ссылки на фишинговые страницы), названия веток и ключей реестра Windows, названия мьютексов (mutex, специализированный механизм синхронизации исполняемого программного кода). Кроме этого, могут быть использованы и динамические объекты, такие как определенная последовательность несанкционированных действий на атакуемой системе (это также называют индикатором атаки, Indicator of Attack (IoA)), необычное поведение учетных записей в системе (это может быть выявлено системами класса UEBA - User & Entity Behavior Analysis, системы анализа поведения пользователей и сущностей), несанкционированное появление новых учетных записей, особенно высокопривилегированных, а также рост числа подозрительных DNS-запросов, ICMP-трафика, иных видов ранее нехарактерной сетевой активности. При этом считается, что для точного обнаружения атаки менее подходят статические индикаторы (поскольку могут быть легко заменены/обновлены злоумышленником), а самыми надежными способами будут методы, использующие анализ TTPs (Tactics, Techniques, Procedures) злоумышленников - последовательности шагов, применяющихся атакующими, которые в том числе определяются динамическими индикаторами компрометации, например, последовательностью запуска определенных утилит и программ, доступом к памяти системных процессов, обращением к служебным сетевым ресурсам и т.д. Об анализе TTPs в интерпретации проекта MITRE ATT&CK мы говорили в одной из наших предыдущих статей.
Более подробно стоит обсудить такой индикатор атаки, как хэш-сумма файла. Как мы знаем, хэш-функция - это алгоритм одностороннего преобразования массива входных данных произвольной длины в строку фиксированной длины. Иными словами, если мы вычисляем значение хэш-функции от какого-то файла, то в результате получаем некий набор символов, из которого нельзя извлечь первоначальный файл и который однозначно характеризует данный файл и соответствует ему, т.е. невозможно подобрать два разных файла, у которых будет одинаковое значение хэш-функции или, как говорят, хэш-сумма.
Итак, хэш-сумма - это некая последовательность бит, которая является «отпечатком» файла. Известными и применимыми на текущий день хэш-функциями являются SHA-2, SHA-3, ГОСТ Р 34.11-2012 («Стрибог»). В некоторых случаях используют устаревшие ненадежные алгоритмы, например, MD5 или SHA-1, но их не рекомендуется применять по причине возможных т.н. «коллизий» (когда для двух разных файлов будет вычислена одна и та же хэш-сумма). Кроме использования вышеуказанных криптографических хэш-функций, можно применять специализированные функции, такие как SSDeep и Imphash. Алгоритм SSDeep основан на принципах нечеткого хэширования (fuzzy hashing) и позволяет обнаруживать незначительно отличающиеся друг от друга части файлов, таким образом показывая сходство уже известного вируса и минимально измененного аналога (прием, часто используемый хакерами для «обмана» средств защиты). Алгоритм Imphash вычисляет значение хэш-функции от списка и порядка импортируемых вирусом программных функций и библиотек (DLL-файлов Windows), что также может показать сходство между известным образцом вредоноса и его немного видоизмененным аналогом.
Кроме методов видоизменения вредоносных файлов, атакующие применяют другую технику скрытия вредоносной активности. Она называется DGA (Domain Generation Algorithm, алгоритм генерирования доменов) - техника непрерывного изменения DNS-имен серверов, которые используются хакерами для контроля над зараженными устройствами (так называемые C&C или C2-серверы, от Command & Control, управление и контроль). Для чего это нужно? Средства защиты могут достаточно быстро заблокировать один или несколько серверов атакующих, но если заранее неизвестно, к каким именно адресам будет обращаться зараженное устройство, то предотвратить такие подключения не удастся. Как правило, алгоритм генерирования DNS-имен заложен в исходном коде вредоносного ПО, а сами домены создаются с большой скоростью (несколько в секунду), что позволяет обходить средства защиты. Для противодействия подобным техникам могут быть использованы методы искусственного интеллекта, больших данных и машинного обучения: такое средство защиты «видит», что имя домена сгенерировано скорее всего не человеком (по именам вредоносных доменов это часто понятно, т.к. они представляют собой беспорядочный набор символов, например, svsd4fs[.]fowdmpd5fjs[.]xyz), а также на основе уже распознанных вредоносных доменов «понимает», по какому алгоритму они генерируются, и учится предугадывать, какие домены будут использоваться в дальнейшем, с тем, чтобы заблокировать заранее эти еще неизвестные домены.
Итак, обсудив возможные типы индикаторов компрометации, вернемся к их получению и обработке. Для обмена информацией об индикаторах компрометации (Indicators of Compromise, IoCs) используются Threat Intelligence фиды (TI feeds), т.е. источники получения данных киберразведки. Как правило, данная информация загружается в средства защиты автоматически несколько раз в день. Информация, которая поступает по TI-фидам, является чаще всего списком хэш-сумм вредоносных файлов, IP-адресов и DNS-имен хакерских доменов, URL-адресов подозрительных веб-ресурсов. Стандартами и протоколами, которые используются для получения данных киберразведки, являются, например, STIX/TAXII, OpenIOC, CybOX. Существуют коммерческие центры получения данных Threat Intelligence (например, IBM X-Force Exchange, Cisco Talos и т.д.), некоммерческие (AlienVault OTX, Anomali Limo и т.д.) и государственные (в РФ это ГосСОПКА (НКЦКИ) и ФинЦЕРТ (ЦБ РФ)).
Модуль Threat Intelligence Platform (TIP) платформы Security Vision, входящий в состав Security Vision Incident Response Platform (IRP/SOAR), обеспечивает автоматический сбор индикаторов компрометации (IoCs) из внешних источников, нормализацию полученных данных, обогащение дополнительной информацией, а также обработку полученной информации – добавление исключений в настройки средств защиты, выявление индикаторов в инфраструктуре Заказчика, оповещение заинтересованных лиц и дальнейшее распространение информации.
Получение индикаторов компрометации осуществляется посредством интеграции с сервисами – поставщиками с использованием механизмов универсальных коннекторов. Функционал коннекторов позволяет:
1. Получать информацию об индикаторах компрометации;
2. Производить обработку и нормализацию полученной информации;
3. Осуществлять фильтрацию полученной информации;
4. Обеспечивать дедупликацию полученной информации;
5. Создавать новую запись индикатора в базе индикаторов компрометации или обновлять информацию в существующем индикаторе на основании настраиваемых признаков.
Функционал модуля позволяет осуществлять обработку полученных индикаторов по настраиваемым рабочим процессам. Рабочий процесс обработки индикатора компрометации позволяет выполнять как автоматические, так и инициируемые пользователям действия в соответствии с утверждёнными в организации процессами. В рамках обработки производятся:
1. Обогащение индикатора дополнительными данными на основании внешних сервисов и информационных систем Заказчика.
2. Выявление индикатора компрометации в инфраструктуре Заказчика, как на основании ретроспективного анализа, так и в режиме реального времени.
3. Обновление конфигурации средств защиты информации с целью блокирования активностей, связанных с индикатором компрометации.
4. Оповещение ответственных сотрудников Заказчика о новых индикаторах и результатах их обработки.
5. Распространение информации о индикаторе компрометации.
Модуль TIP платформы Securtiy Vision поддерживает возможность аналитики полученных данных посредством применения различных внутренних и внешних моделей обработки данных, применяемых в процессах Заказчика.