Справочник архитектуры

Движок Корреляции v3

Движок Корреляции трансформирует сырые ИБ-события в инциденты, обнаруживая многоэтапные атаки, перекрёстные паттерны сенсоров и темпоральные аномалии.


Обзор

МетрикаЗначение
Встроенные правила15
Окно корреляции5 минут (настраиваемо)
Кластеризация алертовDBSCAN + MiniLM эмбеддинги
Снижение шума100+ алертов/час → 5-10 инцидентов
Интеграция LatticeTSA, GPS, MIRE примитивы

Как работает корреляция

Сырые события (100+/час) │ ├── 1. Группировка по временным окнам ── 5-минутные окна │ ├── 2. Сверка с правилами ─────────────── 15 правил параллельно │ ├── 3. Маппинг на Kill Chain ──────────── MITRE ATT&CK стадии │ ├── 4. Кластеризация алертов ──────────── DBSCAN убирает дубликаты │ ├── 5. Расчёт серьёзности ─────────────── Max(серьёзность) + эскалация │ └── 6. Создание инцидента ─────────────── Уникальный инцидент + связи Коррелированные инциденты (5-10/час)

Встроенные правила

Правила многоэтапных атак

#Rule IDТриггерные событияОкноСерьёзность
1MULTI_STAGE_JAILBREAKjailbreak → tool_abuseHIGH
2EXFILTRATION_CHAINpii_detected → exfiltration → network_alertCRITICAL
3INJECTION_TO_EXECinjection → tool_abuse (file/exec)CRITICAL
4CRESCENDO_ATTACK5+ low-severity от одного источника10мHIGH
5DORMANT_PAYLOAD_ACTIVATIONdormant_payload → any_high_severity30мCRITICAL

Перекрёстные правила сенсоров

#Rule IDТриггерОкноСерьёзность
6BYPASS_SHIELD_THEN_INJECTshield_block → core_detect30сHIGH
7CROSS_SENSOR_ESCALATIONshield_bypass + core_detectCRITICAL
8IMMUNE_KERNEL_PLUS_COREimmune_alert + core_alertHIGH

Темпоральные правила

#Rule IDТриггерОкноСерьёзность
9REPEATED_TOOL_ABUSE3+ tool_abuse с одного IP10мHIGH
10ALERT_FLOOD100+ событий с одного сенсора60сMEDIUM
11BRUTE_FORCE_PATTERN10+ попыток auth_bypassHIGH

Lattice-правила

#Rule IDТриггерПримитивСерьёзность
12TSA_VIOLATIONНарушение Temporal Safety AutomataTSACRITICAL
13GPS_HIGH_DANGERGoal Predictability Score > 0.7GPSHIGH
14MIRE_CONTAINMENTСработал контейнмент моделиMIRECRITICAL
15IRM_HIDDEN_INTENTIntent Revelation расхождение > 0.5IRMHIGH

Формат определения правил

Правила определяются в YAML:

YAML
rules: - id: MULTI_STAGE_JAILBREAK name: "Multi-Stage Jailbreak Attack" description: "Jailbreak с последующим tool_abuse в течение 5 минут" enabled: true conditions: - sequence: - category: jailbreak min_confidence: 0.7 - category: tool_abuse min_confidence: 0.5 within: "5m" same_field: "source_ip" action: create_incident: true severity: HIGH kill_chain_stage: "exploitation" playbook: "auto_block_jailbreak" metadata: mitre_atlas: ["AML.T0054", "AML.T0040"] owasp_llm: ["LLM01", "LLM07"]

Типы условий

ТипОписаниеПример
sequenceСобытия в порядкеjailbreak → tool_abuse
countN событий типа3+ tool_abuse
absenceОжидаемое событие отсутствуетНет auth в течение 5м после доступа
thresholdМетрика превышает значениеGPS > 0.7

Параметры совпадения

ПараметрОписание
withinВременное окно корреляции
same_fieldСобытия должны совпадать по этому полю
different_sourceСобытия от разных сенсоров
min_confidenceМинимальная уверенность на событие

Кластеризация алертов

Проблема

66 движков × входящие запросы = сотни сырых алертов в час. Большинство связаны с одной и той же атакой.

Решение: DBSCAN + MiniLM

100+ сырых алертов │ ├── 1. Эмбеддинг описаний алертов (MiniLM-L6) │ → 384-мерные вектора │ ├── 2. Кластеризация DBSCAN (ε=0.3, min_samples=3) │ → Группировка похожих │ ├── 3. Выбор представителя │ → Алерт с наивысшей уверенностью из кластера │ └── 4. Фильтрация шума → Изолированные алерты остаются как отдельные события 5-10 кластеров, достойных инцидента

Конфигурация

YAML
correlation: clustering: enabled: true algorithm: "dbscan" min_cluster_size: 3 # Минимум событий на кластер similarity_threshold: 0.7 # Порог косинусного сходства embedding_model: "all-MiniLM-L6-v2"

Маппинг на Kill Chain

Коррелированные инциденты маппятся на стадии атаки:

┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ Разведка │→ │ Доставка │→ │Эксплуатация│→ │ Действие │ │ │ │ │ │ │ │ │ │ injection │ │ shield_blk │ │ jailbreak │ │exfiltration│ │ probe │ │ evasion │ │ tool_abuse │ │ pii_leak │ └────────────┘ └────────────┘ └────────────┘ └────────────┘

Каждый инцидент показывает:

  • Стадия Kill Chain: Текущая фаза атаки
  • Прогресс: Визуальный таймлайн стадий
  • Прогноз: GPS-прогноз вероятной следующей стадии

Жизненный цикл инцидента

┌────────────────────────────────────────────────────┐ │ │ │ ┌──────┐ ┌───────────────┐ ┌──────────┐│ │ │ OPEN │────▶│ INVESTIGATING │────▶│ RESOLVED ││ │ └──┬───┘ └───────┬───────┘ └──────────┘│ │ │ │ │ │ │ ┌───────▼───────┐ │ │ └────────▶│ ESCALATED │ │ │ │ (Zero-G mode) │ │ │ └───────────────┘ │ │ │ └────────────────────────────────────────────────────┘
СтатусОписаниеДоступные действия
OPENНовый, не подтверждённыйПодтвердить, эскалировать
INVESTIGATINGАналитик работаетЗапуск playbook, обновление, закрытие
ESCALATEDТребуется старший аналитикДействия Zero-G
RESOLVEDОбработан и задокументированПереоткрыть (при необходимости)

Производительность

МетрикаЗначение
Оценка правил<5мс для всех 15 правил
Кластеризация<50мс для 100 алертов
Сквозная корреляция<100мс
Использование памяти~50MB для движка правил
Макс. параллельных корреляций1000

Пользовательские правила

Пошаговое руководство по созданию собственных правил — Туториал по правилам корреляции.


Дальнейшие шаги

Движок Корреляции v3 | Spectorn