Window Correlator
Příklad
define:
název: Příklad korelátoru oken
description: |
Dlouhý víceřádkový deskriptor
To opravdu přechází do jiného linw
typ: correlator/window
field_alias: field_alias.default
aggregation_count_field: cnt
disabled: false
predikát: cnt:
!AND
- !EQ
- !ITEM EVENT typ
- UseIt
- !INCLUDE predicate_filter
vyhodnotit:
dimenze: [customer.name, destination.address, [destination.hostname] ]
by: Časové razítko
rozlišení: # sekundy: 5 # sekundy
minimum_growth: 10 # 10 * rozlišení je výchozí velikost segmentu (nepovinné)
analyze:
when: event
window: hopping
agregace: suma
rozpětí: 12
test:
!GT
- !ARG
- 5
spouštěč:
- událost:
!DICT
typ: "{str:any}"
with:
category.significance: "/Compromise"
Sekce define
Tato sekce obsahuje společnou definici a metadata.
Položka name
Kratší lidsky čitelný název této deklarace.
Item type
Typ této deklarace, musí být correlator/window
.
Položka field_alias
Název vyhledávače aliasů polí, který se má načíst, aby bylo možné v deklaraci použít aliasové názvy atributů událostí vedle jejich kanonických názvů.
Položka disabled
Logická hodnota, která určuje, zda je deklarace zakázána/povolena pro korelaci. Výchozí hodnota je false.
Položka description
(nepovinné)
Dlouhý, případně víceřádkový, lidsky čitelný popis deklarace.
Sekce predicate
(nepovinné)
Predikát
filtruje příchozí události pomocí výrazu.
Pokud výraz vrátí hodnotu True
, vstoupí událost do sekce evaluate
.
Pokud výraz vrátí False
, událost se přeskočí.
Ostatní vrácené hodnoty jsou nedefinované.
Včetně vnořených predikátových filtrů
Predikátové filtry jsou výrazy umístěné ve vyhrazeném souboru, které lze zahrnout do mnoha různých predikátů jako jejich části.
Pokud chcete zahrnout externí filtr predikátu, který se nachází buď ve složce include
, nebo ve složce filters
.
(jedná se o globální složku umístěnou v nejvyšší hierarchii knihovny LogMan.io),
použijte příkaz !INCLUDE
:
!INCLUDE predicate_filter
kde predicate_filter
je název souboru s příponou .yaml
.
Obsahem souboru predicate_filter.yaml
je výraz, který má být zahrnut, jako např:
---
!EQ
- !ITEM EVENT category
- "MyEventCategory"
Sekce vyhodnotit
Sekce evaluate
určuje primární klíč, rozlišení a další atributy, které se použijí na příchozí událost.
Funkce evaluate
má za úkol přidat událost do dvourozměrné struktury definované časem a prvotním klíčem.
Položka dimension
Určuje jednoduchý nebo složený primární klíč (nebo dimenzi) pro událost.
Rozměr dimension
je definován názvy vstupních polí události.
Příklad jednoduchého primárního klíče:
vyhodnotit:
dimenze: Název zákazníka
Příklad složeného primárního klíče:
vyhodnotit:
dimenze: [CustomerName, DestinationAddress, DestinationHostname]: ```: [CustomerName, DestinationAddress, DestinationHostname]
Pokud je přesně jedna dimenze jako DestinationHostname
v původní události seznamem
a korelace by měla proběhnout pro každou z hodnot dimenze, měla by být dimenze zabalena do [``
]`:
vyhodnotit:
dimenze: [CustomerName, DestinationAddress, [DestinationHostname]]: ```: [CustomerName, DestinationAddress, [DestinationHostname]].
Položka by
Určuje název pole vstupní události, které obsahuje informaci o datu/času, jež bude použita pro vyhodnocení.
Položka event_count
(nepovinné)
Název atributu, který určuje počet pro korelaci v rámci jedné události, a tudíž ovlivňuje "součet událostí" v analýze. Výchozí hodnota je 1.
Položka resolution
(nepovinné)
Určuje rozlišení časové agregace korelátoru. Jednotkou je sekunda.
vyhodnotit:
rozlišení: # 1 hodina
Výchozí hodnota: 3600
Položka saturation
(nepovinné)
Určuje dobu trvání "tichého" časového intervalu po spuštění spouštěče. Je specifický pro rozměr. Jednotkou je rozlišení.
Výchozí hodnota: 3
Sekce analyze
(nepovinné)
Sekce analyze
obsahuje konfiguraci časového okna, které se použije na vstupní události.
Výsledek analýzy časového okna je podroben konfigurovatelnému testu. Pokud je test úspěšný (neboli vrátí True
), je spuštěn trigger
.
Poznámka: Sekce je nepovinná, výchozí chování je, že se trigger
spustí, když je alespoň jedna událost v trumpu span rovna 2.
Položka když
(nepovinné)
Určuje, kdy má dojít k analýze událostí v oknech.
Volby:
- (výchozí): Analýza proběhne poté, co přijde událost a je vyhodnocena, obvykle užitečné pro porovnávání a aritmetickou korelaci.
periodic/...
: Analýza probíhá po zadaném intervalu v sekundách, napříkladperiodic/10
(každých 10 sekund),periodic/1h
(každých 3600 sekund / jednu hodinu) atd. Obvykle užitečné pro vyhodnocení UEBA.
Periodická analýza vyžaduje správné nastavení rozlišení a rozpětí časového okna, aby analýza neprobíhala příliš často.
Položka window
(nepovinná)
Určuje, jaký druh časového okna se má použít.
Volby:
tumbling
: Pevnérozpětí
(doba trvání), nepřekrývající se souvislé časové intervaly bez mezer.hopping
: Pevnérozpětí
(doba trvání), překrývající se souvislé časové intervaly oken
Výchozí hodnota: hopping
Položka span
Určuje šířku okna.
Jednotkou je rozlišení
.
Položka aggregate
(nepovinné)
Určuje, jaké agregační funkce se mají použít na události v okně.
Agregátní funkce
sum
: Summationmedian
: Mediánprůměr
: (vážený) průměrmedian
: (průměr): *median
: (průměrný (průměrný) průměr): aritmetický průměrstd
: Směrodatná odchylkavar
: Rozptylmean spike
: Pro detekci hrotů. Základní hodnota je střední hodnota, vrací procenta.median spike
: Pro detekci hrotů. Základní hodnotou je medián, vrací se procento.Unikátní počet
: Pro jedinečný počet atributů události: Je třeba zadatdimension
.
Výchozí hodnota: sum
Příklad jedinečného počtu:
analyzovat:
okno: hopping
agregace: unikátní počet
dimenze: SourceAddress
rozpětí: 6
test:
!GE
- !ARG
- 5
Spustí se, když je pozorováno 5 a více jedinečných zdrojových adres.
Položka test
(nepovinné)
Položka test
je výraz, který se použije na výstup výpočtu agregátu
.
Pokud výraz vrátí hodnotu True
, bude spuštěn trigger
, pokud dimenze ještě není nasycena.
Pokud výraz vrátí hodnotu False
, nebude provedena žádná akce.
Ostatní vrácené hodnoty jsou nedefinované.
Sekce trigger
Sekce trigger
určuje, jaké druhy akcí se mají provést, když je trigger
vyvolán pomocí test
v sekci analyze
.
Podrobnosti viz kapitola correlator triggers.