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