Кибербезопасность и информационная безопасность

Elastic Security: Создание правил обнаружения и руководство по расследованию

6 мин чтенияОпубликовано: 5 августа 2026 г.
Профессиональная визуальная иллюстрация по правилу обнаружения в Elastic Security в области SIEM и обнаружения
Быстрый ответ

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

Elastic Security включает в себя механизм обнаружения, который запускает правила для данных Elasticsearch и генерирует оповещения при выполнении условий. Он поддерживает несколько типов правил, включая настраиваемые запросы, корреляцию событий с использованием EQL, пороговые значения, сопоставление индикаторов, новые термины, ES|QL и машинное обучение. Каждый тип решает свою задачу.

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

Шаг 1: Определите вариант использования и выберите тип правила

Начните с поведенческого утверждения: «Выявление процесса определенного типа, запускаемого в неожиданном контексте на пользовательских рабочих станциях». Затем определите, что считается совпадением, какой контекст необходим и что является законным объяснением. Только после этого выбирайте тип правила.

ВопросПодходящий тип правилаПример
Соответствие значениям или логическим условиямCustom queryprocess.name и command_line
Последовательность событий по времени и сущностиEQLЗапуск процесса, а затем сетевое подключение
Количество событий превышает порогThresholdМножество сбоев по user или source.ip
Агрегация, вычисление или производные поляES|QLSTATS по host, а затем WHERE по count
IOC против событияIndicator matchdestination.ip против threat index
Значение, которое появляется впервыеNew termsРедкий процесс на хосте
Поведенческое отклонение без жесткого шаблонаMachine learningАномалия выше порогового значения

Неправильный выбор приводит к сложному запросу или нестабильным оповещениям. Если порядок событий имеет значение, EQL более естественен, чем ES|QL. Если требуется агрегация, ES|QL или Threshold более подходят. Custom query хорош для прямого сопоставления полей.

Шаг 2: Убедитесь в готовности ECS и данных

Elastic Common Schema — ECS — определяет общие имена и структуры, такие как event.category, event.type, host.name, user.name, process.name, process.command_line и process.parent.name. Правило, которое зависит от полей, не сопоставленных согласованно, будет работать с одной интеграцией и давать сбой с другой.

Откройте примеры событий и проверьте: является ли event.category процессом? Включает ли event.type start? Собирается ли process.command_line или скрыт? Существует ли process.entity_id? Является ли @timestamp временем события или временем приема? Задокументируйте шаблоны индексов, интеграции, версии и обязательные поля. Список обязательных полей в интерфейсе является информацией для пользователя и не исправляет фактическое сопоставление.

Шаг 3: Напишите сфокусированный запрос

В лабораторном примере мы хотим обнаружить создание процесса под названием lab-admin-tool.exe, когда родительский процесс не является ожидаемым программным обеспечением для администрирования. Имя вымышленное. В Custom query можно написать простой KQL:

event.category:process and event.type:start and process.name:"lab-admin-tool.exe" and not process.parent.name:"approved-manager.exe"

Запрос указывает на отклонение, но не доказывает вредоносность. Необходимо проверить Signer, Hash, Path, User, Host, Parent command line и частоту. Перед созданием правила запустите его в Discover или Timeline в разных диапазонах. Проверьте наличие полей Null, Variant в имени или ненадежных источников.

Если поведение требует последовательности — например, Process, а затем Network connection от того же process.entity_id — переключитесь на EQL. Если вы хотите обобщить, сколько хостов запустили инструмент, или рассчитать Count по Parent, ES|QL может подойти.

Шаг 4: Расписание и Lookback

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

Проверьте задержку приема по источнику. События конечных точек могут поступать почти в реальном времени, тогда как источник Cloud или Batch может быть задержан. Установите Run every и Additional look-back на основе измерения. После изменения Pipeline или Integration измерьте снова.

Шаг 5: Серьезность, риск и MITRE

Severity описывает серьезность совпадения в соответствии с вариантом использования; Risk score позволяет числовую оценку. Не используйте High для каждого правила. Аномальный процесс на лабораторном хосте отличается от того же процесса на контроллере домена. Вы можете использовать Risk score override, когда надежное поле предоставляет контекст, но необходимо проверить Missing values и Range.

Сопоставление MITRE ATT&CK должно соответствовать поведению, которое обнаруживает правило, а не полному сценарию атаки, который вы себе представляете. Правило, которое обнаруживает выполнение процесса, не обязательно доказывает Persistence или Exfiltration.

Шаг 6: Подавление и исключения

Подавление оповещений группирует повторяющиеся совпадения по полям для уменьшения объема. Оно не заменяет правильный запрос. Подавление по host.name может скрывать развитие, если один и тот же хост генерирует несколько различных поведений. Выберите поля, которые представляют единицу расследования, например host.id и process.hash, и определите Window на основе Baseline.

Исключения исключают известные совпадения. Создайте ограниченное исключение: подписанный Hash, Path, определенный Parent и определенная группа хостов, вместо исключения process.name во всей организации. Добавьте Comment, Owner и дату Review. По возможности, предпочитайте управляемый список исключений запросу с десятками NOT clauses.

Шаг 7: Напишите руководство по расследованию

Руководство по расследованию — это документ Markdown, который прилагается к правилу и отображается рядом с оповещением. Согласно Elastic, хорошее руководство строится вокруг Triage, Analysis и Response, начинается с контекста, а не со списка команд, и ссылается на поля Alert, Timeline queries и Osquery, когда это уместно.

ЧастьЧто включитьПример
КонтекстЧто обнаруживает правило и почему это важноНеожиданный процесс вне инструмента администрирования
ТриажБыстрые проверки и ложные срабатыванияSigner, Path, Parent, Host group
АнализВременная шкала и дополнительные поискиNetwork, User logons, file creation
ОтветДействия при подтвержденииЭскалация, изоляция по разрешению, сбор
ЗакрытиеУсловия DispositionApproved software, test, compromise

Можно ссылаться на динамические поля, такие как host.name или user.name, и добавлять кнопки Timeline, когда версия и лицензия поддерживают это. Сохраняйте руководство кратким и легко сканируемым. Аналитик работает под давлением; длинные абзацы без порядка останутся непрочитанными.

Шаг 8: Проверка и настройка

  1. Запустите Preview или исторический запрос и отметьте примеры True, False и Benign Positive.
  2. Проверьте правило на смоделированном Positive sample и на Negative sample. Убедитесь, что оно дает сбой, когда поле отсутствует, и не создает ошибочное совпадение.
  3. Запустите сначала без опасного Response. Измерьте объем оповещений, время расследования и качество Context.
  4. Проверьте статус выполнения правила, пробелы, разрешения и API key. Правила запускаются с разрешениями последнего пользователя, который их редактировал.
  5. Настройте Query, Schedule, Suppression и Exceptions по отдельности, чтобы знать, что решило проблему.
  6. Выполните Regression test после обновления Integration, сопоставления ECS или версии Elastic.

Чек-лист

  • Тип правила соответствует вопросу.
  • Проверены Indices, Data view, ECS и Required fields.
  • Запрос возвращает четкую единицу расследования.
  • Schedule и Lookback покрывают Delay без чрезмерных дубликатов.
  • Severity, Risk и MITRE соответствуют поведению.
  • Suppression и Exceptions ограничены и задокументированы.
  • Investigation Guide включает Triage, Analysis и Response.
  • Существуют Owner, Review date, Metrics и Regression test.

Частые ошибки

  • Выбор EQL, KQL или ES|QL по предпочтению, а не по вопросу.
  • Копирование Prebuilt Rule без проверки Data requirements.
  • Предположение, что ECS сопоставлен, потому что поле появляется в некоторых событиях.
  • Увеличение Lookback без понимания дубликатов.
  • Создание широкого исключения по имени процесса.
  • Активация автоматического Response до Validation.
  • Написание Investigation Guide, который содержит только «проверьте, является ли вредоносным».

Резюме и призыв к действию

Выберите вымышленный процесс в лаборатории и создайте полное правило: Data contract, Query, Schedule, Risk, одно исключение, Investigation Guide и Test cases. Затем попросите другого аналитика исследовать оповещение без устного объяснения. Если руководства и полей недостаточно, улучшите правило, прежде чем добавлять дополнительную логику.

Вопросы и ответы

Какой тип правила подходит для одного процесса?

В большинстве случаев достаточно Custom query, если речь идет об условиях полей. Если нужна последовательность во времени, EQL подходит лучше; если требуется агрегация, рассмотрите ES|QL или Threshold.

Гарантируют ли Required fields наличие полей?

Нет. Список — это документация для пользователя. Необходимо проверить фактическое сопоставление и Sample events.

В чем разница между Suppression и Exception?

Suppression группирует повторяющиеся оповещения; Exception предотвращает создание оповещения при выполнении определенных условий.

Можно ли редактировать Investigation Guide для Prebuilt Rule?

Возможность зависит от лицензии и версии. Иногда необходимо дублировать правило, а затем редактировать копию.

Почему правило перестало работать после редактирования?

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

Хотите проверить, подходит ли вам эта программа?

Оставьте контакты — консультант HPI перезвонит вам для короткого разговора, без обязательств.

Ваши данные хранятся безопасно.

Для изучения SOC и кибербезопасности в рамках программы Cybersecurity & AI

Хотите узнать подробности программы? Оставьте контакты — мы свяжемся.

Похожие статьи