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 FormatArcSight, Splunk, Elastic SIEM
Стандарт HP ArcSight, включает extension fields для risk score и threat context.
LEEFLog Event Extended FormatIBM QRadar
Формат IBM для QRadar DSM. Автоматический парсинг через Device Support Module.
syslogRFC 5424 SyslogRuSIEM, rsyslog, syslog-ng
Классический syslog с structured data для совместимости с RuSIEM и rsyslog.
jsonRaw JSONElasticsearch, Logstash, Fluentd
Вложенный JSON с полным контекстом. Идеален для ELK Stack и Fluentd.
Схема события
| Поле | Тип | Описание |
|---|---|---|
| event_id | string | Уникальный ID события |
| event_type | string | command_executed, command_blocked, injection_detected |
| timestamp | string | ISO 8601 с микросекундами |
| agent_id | string | ID агента |
| command | string | Выполненная/заблокированная команда |
| risk_score | integer | 0-100 оценка рискованности |
| threats | array | Обнаруженные угрозы |
| shield_layer | string | L0-L4 слой Shield |
| severity | string | low, medium, high, critical |
| correlation_id | string | ID корреляции для группировки |
| source_ip | string | IP адрес агента |
Примеры событий
CEF
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
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
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 можно настроить кастомные маппинги полей для соответствия внутренним стандартам.
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.
1# CEF — за последние 24 часа2curl "https://api.flowlink.io/v1/audit/export?format=cef&since=24h" \3 -H "Authorization: Bearer $TOKEN"45# 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 | Описание |
|---|---|
| format | cef | leef | syslog | json |
| since | 1h, 24h, 7d, 30d |
| event_type | CommandExecuted, CommandBlocked, InjectionDetected, ... |
| severity | low, medium, high, critical |
| agent_id | Фильтр по агенту |
| limit | Макс. событий (default: 1000) |
Webhook Push
Push-модель: FlowLink отправляет события в реальном времени через Webhook с HMAC-SHA256 подписью. Поддерживается retry с exponential backoff.
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 }'
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
1# inputs.conf2[http://flowlink]3disabled = 04port = 80885sourcetype = flowlink:audit6token = your-splunk-hec-token7index = security
Создайте webhook с URL https://splunk:8088/services/collector/event и format=json. Token передаётся через заголовок Authorization.
ELK Logstash Setup
1# logstash.conf2input {3 http {4 port => 50445 codec => json6 }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.
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 инстанции.