> For the complete documentation index, see [llms.txt](https://vasilisa-l.gitbook.io/blue-team-cookbook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vasilisa-l.gitbook.io/blue-team-cookbook/detection-engineering/tools.md).

# Инструменты создания правил

Большинство конкретных решений (особенно SIEM) используют свой собственный язык написания правил обнаружения. Но в индустрии есть некоторые стандарты - **Sigma**, **YARA** и **Suricata**. Они позволяют стандартизировать правила, делая их универсальными и легко переносимыми между различными системами.

## Sigma

Репозиторий: <https://github.com/SigmaHQ/sigma>

Универсальный открытый язык для описания правил обнаружения, который поддерживается большинством SIEM-систем (Splunk, Elastic, QRadar и др.).

**Основные особенности**:

* **Кросс-платформенность**: Правила, написанные на Sigma, можно конвертировать в формат, поддерживаемый конкретной SIEM. Конверторы есть прямо в репозитории. Поддерживаемые SIEM и конверторы:
  * **Splunk**: Конвертор преобразует Sigma-правила в SPL (Search Processing Language).
  * **Elasticsearch**: Конвертор создаёт правила для Elasticsearch Query Language.
  * **QRadar**: Конвертор преобразует Sigma в AQL (Ariel Query Language).
  * **ArcSight**: Конвертор создаёт правила для CEF (Common Event Format).
  * **Microsoft Sentinel**: Конвертор преобразует Sigma в KQL (Kusto Query Language).
* **Человекочитаемый синтаксис**: Правила пишутся в формате YAML, что делает их простыми для понимания и редактирования. Но для использования в конкретных SIEM-системах их нужно конвертировать. Для этого существуют специальные конверторы, которые преобразуют Sigma-правила в нативный формат SIEM.
* **Поддержка MITRE ATT\&CK**: Правила можно привязывать к конкретным техникам и тактикам MITRE ATT\&CK.
* **Большое сообщество**: В публичных репозиториях (например, [SigmaHQ](https://github.com/SigmaHQ/sigma)) доступно множество готовых правил.
* **Актуальность**: Исследователи часто публикуют Sigma-правила для новых атак в Twitter, блогах и GitHub.

**Пример правила**:

```yaml
title: Suspicious PowerShell Execution
description: Detects PowerShell execution with encoded commands
logsource:
    product: windows
    service: security
detection:
    selection:
        EventID: 4688
        NewProcessName: 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'
        CommandLine: '* -EncodedCommand *'
    condition: selection
```

**Что надо учитывать:**

* Многие правила в публичных репозиториях написаны без должного тестирования. Часто они слишком шумные или не учитывают контекст конкретной инфраструктуры.
* Sigma не поддерживает сложные условия, такие как вложенные логические операторы.
* Некоторые SIEM-специфичные функции могут быть недоступны после конвертации.

На данный момент **Sigma** всё ещё **не поддерживает корреляцию событий** даже во второй версии (Sigma 2.0). Это одно из главных ограничений языка, которое часто вызывает критику со стороны специалистов по информационной безопасности. Без корреляции Sigma может обнаруживать только отдельные события, что ограничивает его возможности для выявления сложных атак.

Однако можно использовать обходные пути, такие как возможности SIEM или альтернативные языки (например, Open XP Rules).

### Open XP Rules

Репозиторий: <https://github.com/Security-Experts-Community/open-xp-rules>

**Open XP Rules** — это язык для создания правил обнаружения, который разработан для решения одной из главных проблем Sigma: отсутствия поддержки корреляции событий. Open XP Rules позволяет описывать сложные сценарии, связывая несколько событий по ключам и временным окнам.

"Если событие A произошло, а затем событие B в течение 5 минут"

**Плюсы:**

* **Корреляция событий**: Open XP Rules позволяет связывать несколько событий по общим атрибутам (например, IP-адрес, хэш файла, имя пользователя) и временным окнам.
* **Сложные условия**: Поддержка вложенных логических операторов, агрегаций и временных окон.
* **Гибкость**: Можно описывать как простые, так и сложные сценарии обнаружения.

Минусы:

* **Ограниченная поддержка**: Не все SIEM поддерживают Open XP Rules "из коробки" (только MP SIEM :smile:).
* **Меньше сообщество**: По сравнению с Sigma, Open XP Rules имеет меньше пользователей и готовых правил.

## Yara

Репозиторий: <https://virustotal.github.io/yara/>

Язык для создания сигнатур, ориентированный на обнаружение вредоносных файлов и строк в бинарных данных.

Используется в сочетании с EDR или антивирусами.

* **Основные особенности**:
  * **Бинарный анализ**: YARA идеально подходит для анализа файлов (PE, ELF, документы и т.д.).
  * **Гибкость**: Поддерживает регулярные выражения, логические операторы и условия.
  * **Широкая поддержка**: Интегрируется с антивирусами, EDR и другими системами.
* **Пример правила**:

  ```yaml
  rule silent_banker : banker
  {
      meta:
          description = "This is just an example"
          threat_level = 3
          in_the_wild = true

      strings:
          $a = {6A 40 68 00 30 00 00 6A 14 8D 91}
          $b = {8D 4D B0 2B C1 83 C0 27 99 6A 4E 59 F7 F9}
          $c = "UVODFRYSIHLNWPEJXQZAKCBGMT"

      condition:
          $a or $b or $c
  }
  ```
* **Преимущества**:
  * Высокая точность при обнаружении известных вредоносных файлов.
  * Поддержка сложных условий и регулярных выражений.

## Suricata

Репозиторий: <https://github.com/OISF/suricata>

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

**Основные особенности**:

* **Сетевой анализ**: Suricata ориентирован на обнаружение угроз в сетевом трафике (например, C2-каналы, эксплойты).
* **Богатый синтаксис**: Поддерживает сложные условия, регулярные выражения и проверки на уровне пакетов.
* **Высокая производительность**: Оптимизирован для работы в реальном времени.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://vasilisa-l.gitbook.io/blue-team-cookbook/detection-engineering/tools.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
