Skip to content
ВозможностиДокументацияЦеныПартнёрыPlaygroundFAQ

SIEM Export

Экспорт audit log в SIEM системы: CEF, LEEF, Syslog, JSON — интеграция с Splunk, ELK, QRadar

Обзор

FlowLink экспортирует все audit события в стандартных SIEM форматах для интеграции в SOC workflow. Поддерживается 4 формата: CEF (ArcSight/Splunk), LEEF (QRadar), Syslog RFC 5424 (RuSIEM/rsyslog), и JSON (Elasticsearch/Logstash). Экспорт через API pull или Webhook push с HMAC аутентификацией. Все события обогащаются threat context, risk score и correlation ID для быстрого инцидент-менеджмента.

Форматы

CEF, LEEF, Syslog, JSON

Все тарифы

Webhook Push

HMAC-signed real-time delivery

Team+

Field Mapping

Кастомные маппинги полей

Enterprise

Ретенция

До 365 дней в audit trail

Все тарифы

Архитектура экспорта

Каждое событие в FlowLink (команда, блокировка, инъекция, изменение конфигурации) генерирует audit event. Событие проходит через enrichment pipeline: добавляется risk score, threat classification, correlation ID, agent metadata. Затем событие сериализуется в выбранный SIEM формат и отправляется через push (Webhook) или доступно через pull (REST API).

# Event export pipeline

1. Генерация:

Shield / ServerGuard / Session → audit event

# 2. Обогащение:

risk_score, threat_category, correlation_id, agent_metadata

# 3. Сериализация:

CEF | LEEF | Syslog (RFC 5424) | JSON

# 4. Доставка:

Webhook push (HMAC) или REST API pull

Поддерживаемые форматы

CEFCommon Event Format

ArcSight, Splunk, Elastic SIEM

Стандарт HP ArcSight, включает extension fields для risk score и threat context.

LEEFLog Event Extended Format

IBM QRadar

Формат IBM для QRadar DSM. Автоматический парсинг через Device Support Module.

syslogRFC 5424 Syslog

RuSIEM, rsyslog, syslog-ng

Классический syslog с structured data для совместимости с RuSIEM и rsyslog.

jsonRaw JSON

Elasticsearch, Logstash, Fluentd

Вложенный JSON с полным контекстом. Идеален для ELK Stack и Fluentd.

Схема события

ПолеТипОписание
event_idstringУникальный ID события
event_typestringcommand_executed, command_blocked, injection_detected
timestampstringISO 8601 с микросекундами
agent_idstringID агента
commandstringВыполненная/заблокированная команда
risk_scoreinteger0-100 оценка рискованности
threatsarrayОбнаруженные угрозы
shield_layerstringL0-L4 слой Shield
severitystringlow, medium, high, critical
correlation_idstringID корреляции для группировки
source_ipstringIP адрес агента

Примеры событий

CEF

text
1CEF:0|FlowLink|Shield|1.0|CommandBlocked|Dangerous command blocked|8|src=10.0.1.5 suser=claude-agent duser=root msg=rm -rf /tmp/app cn1=riskScore cn1Label=RiskScore cn2=shieldLayer cn2Label=ShieldLayer cs1=correlation_id cs1Label=CorrelationID

LEEF

text
1LEEF:1.0|FlowLink|Shield|1.0|CommandBlocked|devTime=2026-01-15T14:30:01Z src=10.0.1.5 usrName=claude-agent severity=8 cat=Security msg=rm -rf /tmp/app riskScore=95 shieldLayer=L2 correlationId=mcp:1705332000123:a1b2c3d4

JSON

json
1{
2 "event_id": "evt_abc123",
3 "event_type": "command_blocked",
4 "timestamp": "2026-01-15T14:30:01.123Z",
5 "agent_id": "agent-prod-01",
6 "command": "rm -rf /tmp/app",
7 "risk_score": 95,
8 "threats": ["destructive_command", "path_traversal"],
9 "shield_layer": "L2",
10 "severity": "critical",
11 "correlation_id": "corr_abc123",
12 "source_ip": "10.0.1.5"
13}

Field Mapping

На тарифе Enterprise можно настроить кастомные маппинги полей для соответствия внутренним стандартам.

yaml
1siem:
2 field_mapping:
3 source_ip: "src"
4 agent_id: "dhost"
5 command: "msg"
6 risk_score: "cn1"
7 custom_fields:
8 org_id: "cs2"
9 department: "cs3"

Export API

Pull-модель: клиент запрашивает события через REST API с фильтрами по формату, времени, типу и severity.

bash
1# CEF — за последние 24 часа
2curl "https://api.flowlink.io/v1/audit/export?format=cef&since=24h" \
3 -H "Authorization: Bearer $TOKEN"
4
5# JSON — критические события за 7 дней
6curl "https://api.flowlink.io/v1/audit/export?format=json&since=7d&event_type=CommandBlocked&severity=critical" \
7 -H "Authorization: Bearer $TOKEN"
ParamОписание
formatcef | leef | syslog | json
since1h, 24h, 7d, 30d
event_typeCommandExecuted, CommandBlocked, InjectionDetected, ...
severitylow, medium, high, critical
agent_idФильтр по агенту
limitМакс. событий (default: 1000)

Webhook Push

Push-модель: FlowLink отправляет события в реальном времени через Webhook с HMAC-SHA256 подписью. Поддерживается retry с exponential backoff.

bash
1curl -X POST "https://api.flowlink.io/v1/orgs/${ORG_ID}/webhooks" \
2 -H "Authorization: Bearer $TOKEN" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "url": "https://siem.example.com/api/events",
6 "format": "cef",
7 "events": ["command_blocked", "command_executed", "injection_detected"],
8 "secret": "whk_your_hmac_secret",
9 "retry_policy": {
10 "max_retries": 5,
11 "backoff_seconds": [1, 2, 4, 8, 16]
12 }
13 }'
json
1{
2 "id": "whk_abc123",
3 "url": "https://siem.example.com/api/events",
4 "format": "cef",
5 "status": "active",
6 "events_sent_last_24h": 1247,
7 "last_delivery_at": "2026-01-15T14:30:00Z"
8}

Splunk HEC Setup

yaml
1# inputs.conf
2[http://flowlink]
3disabled = 0
4port = 8088
5sourcetype = flowlink:audit
6token = your-splunk-hec-token
7index = security

Создайте webhook с URL https://splunk:8088/services/collector/event и format=json. Token передаётся через заголовок Authorization.

ELK Logstash Setup

ruby
1# logstash.conf
2input {
3 http {
4 port => 5044
5 codec => json
6 }
7}
8filter {
9 if [event_type] == "CommandBlocked" {
10 mutate { add_tag => ["security_alert"] }
11 }
12 if [risk_score] >= 80 {
13 mutate { add_tag => ["high_risk"] }
14 }
15}
16output {
17 elasticsearch {
18 hosts => ["https://elasticsearch:9200"]
19 index => "flowlink-audit-%{+YYYY.MM.dd}"
20 }
21}

QRadar Setup

QRadar использует LEEF формат через Log Source. Настройте syslog receiver или Webhook endpoint.

bash
1curl -X POST "https://api.flowlink.io/v1/orgs/${ORG_ID}/webhooks" \
2 -H "Authorization: Bearer $TOKEN" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "url": "https://qradar:514/leef",
6 "format": "leef",
7 "events": ["*"]
8 }'

Устранение неполадок

Webhook не доставляет события

Проверьте статус через GET /webhooks. Убедитесь в доступности URL и корректности HMAC signature. После 5 неудачных попыток webhook автоматически отключается.

HMAC signature verification failed

Используйте secret из webhook конфигурации для вычисления HMAC-SHA256 от тела запроса. Header X-FlowLink-Signature содержит hex-код подписи.

Events отсутствуют в SIEM

Проверьте фильтры severity_min и agent_ids в webhook конфигурации. Используйте Export API для ручной проверки наличия событий.

Дублирование событий

Настройте deduplication по полю event_id в SIEM. Используйте indexed fields или transaction для группировки по correlation_id.

Лучшие практики

Используйте Push для real-time алертинга

Webhook push обеспечивает минимальную задержку для security events. Используйте для critical severity событий.

Настройте correlation по correlation_id

Все события одного инцидента имеют один correlation_id. Группируйте в SIEM для полного контекста атаки.

Фильтруйте по severity для снижения шума

Настройте webhook filters для отправки только medium+ severity. Low severity можно собирать через pull.

Мониторьте webhook health

Используйте GET /webhooks для проверки статуса. Настройте алерт на disabled webhook — это означает проблему с доставкой.

Валидируйте field mapping перед продакшеном

Используйте Export API с limit=10 для проверки формата и маппинга полей в тестовой SIEM инстанции.

Edit this page