0Pricing
Cyber Security Academy · Урок

Написание правил Sigma

Переносимый синтаксис правил обнаружения

«Написание правил Sigma» — бесплатный урок Cyber Security Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cyber Security Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cyber Security Academy содержит 4 уроков всего.

Что такое Sigma

Sigma — это универсальный, независимый от поставщика формат сигнатур для обнаружения на основе журналов. Вы один раз записываете логику обнаружения в YAML, а затем преобразуете её в SPL-запросы для Splunk, запросы Elastic, KQL-запросы Sentinel и запросы для многих других целевых систем.

Sigma относится к обнаружению в журналах так же, как YARA — к обнаружению файлов: это общий язык. Он позволяет командам открыто обмениваться правилами и не переписывать одну и ту же идею для каждой SIEM.

Структура правила

Правило Sigma представляет собой документ YAML с обязательными и необязательными разделами. Основные разделы — это title, logsource и detection.

title: Suspicious PowerShell Encoded Command
id: 7e3f3c1a-1f2b-4c3d-9a8b-1234567890ab
status: experimental
logsource:
  category: process_creation
  product: windows
detection:
  selection:
    Image|endswith: '\\powershell.exe'
    CommandLine|contains: '-enc'
  condition: selection
level: high

Блок источника журналов

Блок logsource сообщает преобразователю, к каким журналам применяется правило. Он не выполняет непосредственный запрос к данным, а выбирает правильное сопоставление полей и индекс во время преобразования.

Распространённые ключи:

  • product — например, windows, linux, aws
  • category — например, process_creation, network_connection, file_event
  • service — например, sysmon, security, sshd

Выбирайте наиболее конкретное сочетание, поддерживаемое Вашими данными, чтобы конвейер правильно сопоставил поля.

Выборки и идентификаторы поиска

Внутри detection Вы определяете один или несколько именованных идентификаторов поиска (выборок). Каждый из них представляет собой набор критериев сопоставления полей со значениями. Несколько полей внутри одной выборки объединяются с помощью логического AND.

Здесь оба условия должны быть истинными, чтобы сработала selection.

detection:
  selection:
    EventID: 4688
    NewProcessName|endswith: '\\whoami.exe'
  condition: selection

Модификаторы полей

Модификаторы уточняют способ сопоставления значения. Они добавляются к имени поля после вертикальной черты.

  • contains — сопоставление по подстроке
  • startswith / endswith — сопоставление с привязкой к началу или концу
  • all — в списке должны присутствовать все значения
  • re — регулярное выражение
  • base64offset|contains — сопоставление с подстроками, закодированными в base64

Модификаторы объединяются слева направо и применяются по порядку.

detection:
  selection:
    CommandLine|contains|all:
      - 'Invoke-WebRequest'
      - 'DownloadString'
  condition: selection

Списки и карты как OR / AND

Логику внутри выборки определяют два правила:

  • Список значений для одного поля означает OR — достаточно совпадения с любым значением.
  • Карта из нескольких полей означает AND — должны совпасть все поля.

Ниже Image сопоставляется с любым из двух двоичных файлов, а User также должен иметь значение SYSTEM.

detection:
  selection:
    Image|endswith:
      - '\\net.exe'
      - '\\net1.exe'
    User: 'SYSTEM'
  condition: selection

Выражение условия

condition объединяет именованные выборки с помощью булевой логики. Здесь Вы задаёте фильтры и исключения.

Операторы включают and, or, not, круглые скобки и агрегатные функции, такие как count(). Также можно использовать 1 of selection* / all of selection*, чтобы обращаться к группам идентификаторов по префиксу.

detection:
  selection:
    EventID: 4625
  timeframe: 5m
  condition: selection | count() by SourceIp > 10

Фильтрация шума

Чтобы подавить заведомо допустимую активность, определите отдельный идентификатор и исключите её в условии с помощью not. Так вредоносная логика остаётся понятной, а исключения — явными.

Здесь правило срабатывает, когда rundll32 создаёт сетевое соединение, за исключением известного легитимного процесса обновления.

detection:
  selection:
    Image|endswith: '\\rundll32.exe'
  filter_legit:
    ParentImage|endswith: '\\MicrosoftEdgeUpdate.exe'
  condition: selection and not filter_legit

Метаданные для первичного анализа

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

  • level — информационный, низкий, средний, высокий, критический
  • tags — техники ATT&CK, например attack.t1059.001
  • falsepositives — известные доброкачественные причины срабатывания
  • references — отчёты об угрозах или документация
  • author и date

На заполнение этих полей уходят минуты, но во время инцидента они экономят часы.

Правила корреляции

Правила для отдельных событий не могут описать многоэтапные атаки. Правила корреляции Sigma объединяют несколько базовых правил во времени, чтобы обнаруживать последовательности и закономерности.

Поддерживаются такие типы, как event_count (N совпадений за интервал), value_count (различные значения, например множество пользователей с неудачными входами) и temporal (сначала правило A, затем правило B). Это позволяет, например, обнаружить успешный вход сразу после серии неудачных попыток.

name: bruteforce_then_success
correlation:
  type: temporal
  rules: [failed_logins, successful_login]
  group-by: [SourceIp, TargetUser]
  timespan: 10m

Преобразование для целевой системы

С помощью sigma-cli Вы преобразуете правило в целевой язык запросов. Конвейер обработки сопоставляет имена полей Sigma с реальной схемой Ваших данных.

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

sigma convert -t splunk -p sysmon \
  -f default rule.yml

# Example output (Splunk SPL):
# Image="*\\powershell.exe" CommandLine="*-enc*"

Краткая проверка

Проверьте, насколько хорошо Вы понимаете логику обнаружения в Sigma.

Итоги

Теперь Вы умеете создавать переносимые правила Sigma:

  • logsource выбирает журналы и применимые сопоставления полей
  • Выборки — это именованные критерии «поле — значение» (поля = AND, списки значений = OR)
  • Модификаторы, такие как проверка вхождения, окончания, всех значений и регулярных выражений, уточняют сопоставление
  • condition объединяет выборки с помощью and/or/not, фильтров и агрегатных функций
  • Отдельные идентификаторы фильтра исключают заведомо допустимый шум
  • Метаданные (level, tags, falsepositives) ускоряют первичный анализ
  • sigma convert компилирует правило для целевой системы SIEM

Далее Вы свяжете эти правила с техниками злоумышленников с помощью MITRE ATT&CK.

Часто задаваемые вопросы

Урок «Написание правил Sigma» бесплатный?

Да — полный текст урока «Написание правил Sigma» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cyber Security Academy, подпишись на CoddyKit PRO. Курс Cyber Security Academy содержит 4 уроков всего.

Чему я научусь в уроке «Написание правил Sigma»?

Переносимый синтаксис правил обнаружения Ты практикуешь Cyber Security Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cyber Security Academy?

Предыдущий опыт не требуется. Cyber Security Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Написание правил Sigma»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cyber Security Academy?

Да. Каждый урок Cyber Security Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Принципы обнаружения как кода
  2. Написание правил Sigma
  3. Сопоставление с MITRE ATT&CK
  4. Тестирование и настройка механизмов обнаружения
← Назад к Cyber Security Academy