Всем привет! Сегодня расскажу вам о способе определения ложноположительных алертов, который был выработан совместно с коллегой по цеху и другом Николаем (@1Last) за время работы в SOC. К сожалению PhD в этом году перенесли, поэтому было принято решение поделиться данным способом тут.

Кому он будет полезен и для какой, собственно, цели:

  • Для руководителей SOC и руководителей дежурной L1 - L2 — как способ оптимизировать ресурсы SOC (потому что мы изначально идём по более вероятному пути): структурировано и обоснованно отсеивать значительный объем шума — по нашему опыту, до 60-80% алертов на этапе роста SOC или в плохо настроенных средах.

  • Для всех сотрудников (в том числе и руководителей SOC) — эффективно развивать экспертизу: обучение аналитиков глубокому пониманию окружения и бизнес-процессов, что увеличит вероятность обнаружения сложных атак.

  • Для аналитиков — использовать в повседневной деятельности подход, положительно зарекомендовавший себя на практике, и снизить ментальную нагрузку на принятие решения о вердикте алерта.

Проблематика

SOC постоянно балансирует между двумя рисками:

  • Пропустить реальную угрозу

  • Потратить ресурсы (которые ограничены) на анализ и расследование ложных срабатываний (False Positive).

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

Почему мы рассматриваем обратный утиный тест?

Классический эвристический принцип — «утиный тест» (если что-то выглядит, плавает и крякает как утка, то это утка) — хорошо служит для выявления инцидентов. Обратный «утиный тест» — это проверка гипотезы, связанной с тем, что если есть хотя бы одно доказательство легитимности активности, то скорее всего это не является инцидентом.

Изначально, мы рассматриваем поступивший алерт не как 100% инцидент (обычно в SOC больше 80% поступивших алертов – это не сработки на реальные атаки и действия злоумышленников), а как срабатывание правила корреляции, для которого ещё необходимо доказать, что сработка является инцидентом. По итогу, мы доказываем не факт инцидента, а ищем признаки ложноположительной сработки, но это не значит, что стоит ослабить бдительность и отбросить критическое мышление во время анализа поступающих алертов, так как злоумышленники с каждым днём применяют все более совершенные TTP, часто мимикрирующие под легитимные процессы и утилиты.

Ограничения применения методики

Методику не рекомендуется использовать:

  • если активность может быть продолжением известной атаки внутри инфраструктуры (операции red team либо действия злоумышленников)

  • если подозрительная активность зафиксирована на периметре или в рамках тактики «Initial access»

  • на алертах категории «malware» или активности известных hacktool'ов

  • на сетевых сканированиях со внешних адресов

Методика может быть применима:

  • с большой осторожностью – алерты с высоким приоритетом (с учётом особенностей инфраструктуры) и "недопустимые события"

  • если не можете спрофилировать или отключить правило без ущерба мониторингу – в противном случае профилируем/отключаем

Ретроспективный анализ (ретроспектива)

Первым пунктом предлагаемой методики считаем Ретроспективный анализ (наличие ретроспективы (выглядит как утка))

Что мы рассматривает в рамках данного пункта:

  • обоснование бизнес-логики - наличие аналогичной активности во временном промежутке до 90-180 дней (необходимо иметь тикеты либо письма/тикеты с чётким обоснованием совершённых действий и их периодичности)

  • при отсутствии подтверждения через тикеты - исторический профиль активности (мы проверяем наличие ретроспективы) - аналогичная активность с данного хоста/данной УЗ ранее либо циклично

  • аналогичная активность с другого хоста под другим пользователем (работа какого-то ПО, раскатка, установка ПО) – например, массовые сработки при обновлении ПО

  • возможная ошибка выполнения бизнес процесса (например, новый пользователь не разобрался в инструкциях)

  • аналогичная активность с другого хоста под тем же пользователем (работы администраторов)

Источники информации: IRP (SOAR), SIEM, NTA, Почта

Логика и бизнес-логика активности

Вторым пунктом мы проверяем логику и бизнес-логику процесса на предмет нарушений (плавает как утка)

Составляем описание с технической точки зрения, что произошло и почему, чем может быть вызвана активность из алерта, для этого в том числе необходимо получить информацию у администраторов сервисом или хостов, г��е была зафиксирована активность или бизнес-партнёров (Анализ цепочки действий и событий)

Мы исходим из утверждения, что

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

Для этого:

  • проверяем цель нарушения БЛ

  • проверяем соответствие требованиям политики допустимого использования информационных активов (политике ИБ компании)

  • проверяем возможность непреднамеренных нарушений

  • проверяем, не было ли официальных разрешений на отклонение от политик (информация от L3 или владельцев сервиса, либо случаи, зафиксированные в базе знаний)

  • проверяем легитимность хэшей, ПО и процессов в целом (важно - бизнес-логика процессов в каждой компании своя)

Источники информации: Тикеты jira, база знаний, тематические чаты команд в мессенджерах, если есть – получение информации у Бизнес Партнеров и product manager’ов.

Опрос пользователя

Третьим пунктом является опрос пользователя (крякает как утка), а именно уточнение причины возникновения данной активности и в рамках какой цели(задачи) она была выполнена.

Подтверждение пользователя – один из важных фактов, в рамках подтверждения легитимности активности.

Для этого:

  • Необходимо проверить тикеты (заявки) в системе учета заявок (к примеру - jira).

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

  • Не задавать только один вопрос – “является ли данная активность легитимной”, так как не каждый пользователь может понять, что именно это означает и своим ответом неосознанно/целенаправленно ввести вас в заблуждение.

  • В рамках переписки/общения с пользователем задавать наводящие вопросы, в рамках какой задачи, для какой цели, была активность, что именно делал пользователь. Важно получить соответствие ответов активности.

Важное предупреждение про опрос пользователя: Подтверждение со стороны инициатора активности — весомый аргумент, но не истина в последней инстанции. Учетная запись может быть скомпрометирована, а пользователь может ошибаться или намеренно вводить в заблуждение. Всегда перепроверяйте ответы пользователя по техническим логам. Если слова расходятся с действиями — это красный флаг и повод для углубленного расследования.

Итог

Почему это обратный duck-тест?

1.Если у нас нет:

  • ретроспективы

  • обоснования нарушения БЛ

  • подтверждения активности со стороны ее инициатора

то в таком случае данная активность является инцидентом и ее нужно расследовать.

2.Если присутствует хотя бы один из пунктов, то с большой долей вероятности это не является инцидентом и необходим дополнительный анализ активности.

3.Если присутствуют все перечисленные выше пункты, то данная активность не является инцидентом и имеет другой классификационный идентификатор.

Что делать с результатом? (Обратная связь)

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

Если мы трижды подтвердили, что конкретная активность легитимна, а алерт продолжает сыпаться — нужно:

1. Инициировать доработку правила (внесение исключения).
2. Обновить плейбуки (runbook) для аналитиков, чтобы они не тратили время на заведомо ложные сработки.
3. Если это массовое явление — уведомить смежные команды (админов, разработку) о том, что их действия порождают шум в SOC.

Без этого шага методика превращается в просто «фильтр», а не в инструмент оптимизации.

Всем спасибо за прочтение, буду рад обратной связи и комментариям :-)

Буду очень рад, если внедрение данной методики положительно скажется на работе вашего SOC :-)

P.S. Cформировали концепцию llm-агента на основе данной методики, о чем хочу написать дополнительно.