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