Deklarace pro definování základních linií
Deklarace pro základní linie jsou načítány z Knihovny ze složky specifikované v konfiguraci, například /Baseliners
.
Note
Baseliner používá ve výchozím nastavení /Schemas/ECS.yaml
, takže /Schemas/ECS.yaml
musí být také přítomen v Knihovně.
Deklarace
Toto je příklad definice základní linie, umístěný v složce /Baseliners
v Knihovně:
---
define:
name: Dataset
description: Creates baseline for each dataset and trigger alarms if the actual number deviates
type: baseliner
baseline:
region: Česká republika
period: den
learning: 4
classes: [pracovní dny, víkendy, svátky]
evaluate:
key: event.dataset
timestamp: "@timestamp"
analyze:
test:
!AND
- !LT
- !ARG VALUE
- 1
- !GT
- !ARG MEAN
- 10.0
trigger:
- event:
# Popis hrozby
# https://www.elastic.co/guide/en/ecs/master/ecs-threat.html
threat.framework: "MITRE ATT&CK"
threat.indicator.sightings: !ITEM EVENT hodnota
threat.indicator.confidence: "Vysoká"
threat.indicator.name: !ITEM EVENT dimenze
- notification:
type: email
to: ["myemail@example.co"]
template: "/Templates/Email/Notification_baseliner_dimension.md"
variables:
name: "Logy nepřicházejí do datasetu během dané UTC hodiny."
dimension: !ITEM EVENT dimenze
hour: !ITEM EVENT hodina
Sekce
baseline
baseline: # (1)
region: Česká republika #(2)
period: den # (3)
learning: 4 # (4)
classes: [pracovní dny, víkendy, svátky] # (5)
- Definuje, jak je daná základní linie postavena.
- Definuje, ve kterém regionu se aktivita odehrává (kvůli výpočtu svátků a podobně).
- Definuje časové období pro základní linii. Období může být buď
den
nebotýden
. - Definuje počet období (v tomto případě den), které uplynou od začátku příjmu vstupů do baselineru, než uživatel může vidět analýzu základní linie. Další podrobnosti níže.
- Definuje, které dny v týdnu chceme monitorovat. Třídy mohou zahrnovat jakékoli/všechny:
pracovní dny
,víkendy
, asvátky
.
learning
Pole learning
definuje fázi učení.
Fáze učení je doba od prvního výskytu hodnoty dimenze ve vstupu instance baselineru do momentu, kdy je základní linie zobrazena uživateli a probíhá analýza. V deklaraci je learning
počet období. Fáze učení je vypočítávána samostatně pro svátky, víkendy a pracovní dny. Základní linie jsou přes noc obnovovány (údržba).
V tomto příkladu je period
den
, takže learning
jsou 4 dny. S ohledem na kalendář fáze učení 4 dní začínající v pátek znamená 4 pracovní dny, a tedy končí ve středu večer.
predicate (volitelné)
Sekce predicate
filtruje příchozí události, které mají být považovány za aktivitu v základní linii.
Filtry pište pomocí jazyka TeskaLabs SP-Lang. Navštivte Predikáty nebo dokumentaci SP-Lang pro podrobnosti.
evaluate
Tato sekce specifikuje, které atributy z události budou použity při vytváření základní linie.
evaluate:
key: event.dataset # (1)
timestamp: "@timestamp" # (2)
- Specifikuje atribut/entitu k monitorování.
- Specifikuje atribut, ve kterém je uložena časová dimenze aktivity události.
analyze
Sekce test
v analyze
specifikuje, kdy spustit spouštěč, pokud se skutečná aktivita (!ARG VALUE
) odchýlí od základní linie. Testy pište pomocí SP-Lang.
analyze:
test:
!AND #(1)
- !LT #(2)
- !ARG VALUE # (3)
- 1
- !GT # (4)
- !ARG MEAN # (5)
- 10.0
- Všechny výrazy zanořené pod
AND
musí být pravdivé, aby test prošel. Zde, pokud je hodnota menší než 1 a průměr je větší než 10, spustí se spouštěč. - "Méně než"
- Získat (
!ARG
) hodnotu (VALUE
). Pokud je hodnota menší než1
, jak je specifikováno, výraz!LT
je pravdivý. - "Větší než"
- Získat (
!ARG
) průměr (MEAN
). Pokud je průměr větší než10.0
, jak je specifikováno, výraz!GT
je pravdivý.
Následující atributy jsou k dispozici a používají se v notaci SP-Lang:
TENANT: "str",
VALUE: "ui64",
STDEV: "fp64",
MEAN: "fp64",
MEDIAN: "fp64",
VARIANCE: "fp64",
MIN: "ui64",
MAX: "ui64",
SUM: "ui64",
HOUR: "ui64",
KEY: "str",
CLASS: "str",
trigger
Sekce trigger
definuje aktivitu, která je spuštěna po úspěšné analýze. (Více o triggery.)
Baseliner vytváří události
Při každé analýze (každou hodinu) vytváří Baseliner událost k shrnutí své analýzy. Tyto události vytvořené Baselinerem jsou k dispozici pro použití (jako EVENT
) s výrazy jako !ARG
a !ITEM
, což znamená, že můžete čerpat hodnoty z událostí pro vaše spouštěcí aktivity.
Tyto události vytvořené Baselinerem zahrnují pole:
tenant
Název tenanta, ke kterému základní linie patří.
dimension
Dimenze, ke které základní linie patří, jak je specifikováno v evaluate
.
class
Třída, ze které byla základní linie vypočítána.
Možnosti zahrnují: pracovní dny
, víkendy
, a svátky
hour
Číslo UTC hodiny, ve které analýza proběhla.
value
Hodnota aktuálního počtu událostí pro danou UTC hodinu.
Notifikační trigger
Notifikační trigger pošle zprávu, například e-mail. Viz Emailové notifikace pro více informací o zasílání emailových notifikací a používání emailových šablon.
Příklad notifikačního triggeru:
trigger:
- notification:
type: email #(1)
to: ["myemail@example.co"] # (2)
template: "/Templates/Email/Notification_baseliner_dimension.md" # (3)
variables: # (4)
name: "Logy nepřicházejí do datasetu během dané UTC hodiny."
dimension: !ITEM EVENT dimenze # (5)
hour: !ITEM EVENT hodina
- Specifikuje emailovou notifikaci
- Adresa příjemce
- Cesta k souboru emailové šablony v Knihovně LogMan.io
- Začíná sekce, která dává instrukce, jak vyplnit prázdná pole z emailové šablony. Prázdná pole v šabloně použité v tomto příkladu jsou
name
,dimension
ahour
. - Používá SP-Lang k získání informací (
!ITEM
) z události vytvořené Baselinerem (EVENT
) (viz níže). V tomto případě bude poledimension
v šabloně vyplněno hodnotoudimension
převzatou z události vytvořené Baselinerem.
Event trigger
Můžete použít event trigger k vytvoření logu nebo události, kterou budete moci vidět v uživatelském rozhraní TeskaLabs LogMan.io.
Příklad event triggeru:
- event: # (1)
threat.framework: "MITRE ATT&CK"
threat.indicator.sightings: !ITEM EVENT hodnota
threat.indicator.confidence: "Vysoká"
threat.indicator.name: !ITEM EVENT dimenze
- Tato nová událost je popisem hrozby použitím polí hrozeb z Elasticsearch
Analýza v uživatelském rozhraní
Ve výchozím nastavení poskytuje uživatelské rozhraní LogMan.io zobrazení analýz pro uživatele
a host
.
Zadejte analýzu ve schématu (ve výchozím nastavení: /Schemas/ECS.yaml
) takto:
host.id:
type: "str"
analysis: host
user.id:
type: "str"
analysis: user
...
Pokud je tenant nakonfigurován používat toto schéma (ve výchozím nastavení ECS), pole host.id
a user.id
v Průzkumník zobrazí odkaz na danou základní linii.
Analýza host
používá základní linii s názvem Host
ve výchozím nastavení:
---
define:
name: Host
Analýza user
používá základní linii s názvem User
ve výchozím nastavení:
---
define:
name: User
Pokud specifická analýza nemůže nalézt svou přidruženou základní linii, uživatelské rozhraní zobrazí prázdnou obrazovku pro danou analýzu.
Note
Obě základní linie potřebné pro analýzu jsou distribuovány jako součást Společné knihovny LogMan.io.