Entitní Korelátor¶
Korelátor oken detekuje příchozí události na základě sekce predicate a ukládá je do datových struktur na základě sekce evaluate. Pokud z události detekovaná dimenze neprodukuje žádná data, je volána sekce lost v sekci triggers, jinak je volána sekce seen v sekci triggers.
Příklad¶
define:
name: Detekce chování uživatelské entity
description: Detekce chování uživatelské entity
type: correlator/entity
span: 5
delay: 5m # doba analýzy = delay + resolution
logsource:
vendor: "Microsoft"
predicate:
!AND
- !EQ
- !ITEM EVENT message
- "FAIL"
- !EQ
- !ITEM EVENT device.vendor
- "Microsoft"
- !EQ
- !ITEM EVENT device.product
- "Exchange Server"
evaluate:
dimension: [source.user]
by: @timestamp # Název pole události s časem události
resolution: 60 # jednotka je sekunda
lookup_seen: active_users
lookup_lost: inactive_users
triggers:
lost:
- event:
severity: "Low"
seen:
- event:
severity: "Low"
Sekce define¶
Tato sekce obsahuje obecné definice a meta data.
Položka name¶
Kratší lidsky čitelný název této deklarace.
Položka type¶
Typ této deklarace, musí být correlator/entity.
Položka span¶
Specifikuje šířku okna.
Jednotka je resolution.
Položka delay (volitelná)¶
Analýza probíhá po specifikovaném čase v sekundách a tento čas je založen na resolution.
Pokud je potřeba prodloužit dobu a tím zpozdit analýzu, může být uvedena volba delay, například 300 (300 sekund), 1h (3600 sekund / jedna hodina) atd.
Položka aggregation_count_field¶
Název atributu, který určuje počet událostí v rámci jedné agregované události, a tím ovlivňuje součet událostí v analýze. Výchozí hodnota je 1.
Položka description (volitelná)¶
Delší, případně víceřádkový, lidsky čitelný popis deklarace.
Sekce logsource¶
Specifikuje typy event lanes, ze kterých by měly být čteny příchozí události.
Sekce predicate (volitelná)¶
predicate filtruje příchozí události pomocí výrazu.
Pokud výraz vrátí True, událost přejde do sekce evaluate.
Pokud výraz vrátí False, je událost přeskočena.
Ostatní návratové hodnoty jsou nedefinované.
Sekce evaluate¶
Sekce evaluate specifikuje primární klíč, rozlišení a další atributy, které se aplikují na příchozí událost.
Funkcí evaluate je přidat událost do dvourozměrné struktury, definované časem a primárním klíčem.
Položka dimension¶
Specifikuje jednoduchý nebo složený primární klíč (nebo dimenzi) pro událost.
dimension je definována názvy vstupních polí události.
Příklad jednoduchého primárního klíče:
evaluate:
dimension: [source.ip]
Note
Tenant je automaticky přidán do seznamu dimenzí.
Příklad složeného primárního klíče:
evaluate:
dimension: [source.ip, destination.ip]
Pokud je přesně jedna dimenze, jako je DestinationHostname, seznam v původní události a korelace by měla probíhat pro každou hodnotu dimenze, měla by být dimenze zabalená do [ ]:
evaluate:
dimension: [source.ip, destination.ip, [DestinationHostname] ]
Položka by¶
Specifikuje název pole vstupní události, které obsahuje datum/čas, který bude použit pro vyhodnocení. Výchozí hodnota je: @timestamp.
Položka resolution (volitelná)¶
Specifikuje rozlišení časové agregace korelátoru. Jednotka je sekundy.
evaluate:
resolution: 3600 # 1 hodina
Výchozí hodnota: 3600
Položka lookup_seen¶
lookup_seen specifikuje ID lookupu, kam se zapisují viděné entity s časem posledního vidění
Položka lookup_lost¶
lookup_lost specifikuje ID lookupu, kam se zapisují ztracené entity s časem poslední analýzy
Sekce triggers¶
Sekce triggers specifikuje druhy akcí, které mají být provedeny, když proběhne periodická analýza.
Podporované akce jsou lost a seen.
Podrobnosti viz kapitola korelační triggery.
seen triggery¶
Triggery seen se provádějí, když analýza nalezne události, které vstoupily do okna v analyzovaném čase.
Dimezi (název entity) lze získat pomocí !ITEM EVENT dimension.
Čas poslední události, která přišla do okna v dané dimenzi, lze získat pomocí !ITEM EVENT last_event_timestamp (entita aktualizována).
Příklad:
seen:
- lookup: user_inventory
key: !ITEM EVENT dimension
set:
last_seen: !ITEM EVENT last_event_timestamp
lost triggery¶
Triggery lost se provádějí, když analýza zjistí, že do specifikované dimenze v analyzovaném čase nepřišla žádná událost (entita klesla).
Dimezi (název entity) lze získat pomocí !ITEM EVENT dimension.
Příklad:
lost:
- event:
severity: "Low"
dimension: !ITEM EVENT dimension