Přeskočit obsah

Konfigurace WEC

Specifikace vstupu: input:WEC:

listen:  # Kde zveřejnit server, "5985" pro HTTP s autentizací Kerberos nebo "5986 ssl" pro HTTPS s autentizací pomocí certifikátu
output:  # Kam se mají posílat příchozí události

queries:  # Dotazy na události Windows oddělené novými řádky, které určují, které události Windows by měly být načteny do odběrů
read_existing_events:  # (nepovinné) Upozorní stroje s Windows, zda mají poslat stávající události (true/false, výchozí: false)

last_value_storage:  # Trvalé úložiště pro aktuální poslední hodnotu (výchozí: ./var/last_value_storage)
connection_retries:  # (nepovinné) Kolik pokusů lze akceptovat od strojů s Windows v řadě (výchozí: 60)
connection_retries_wait:  # (nepovinné) Jak dlouho v sekundách čekat na opakování pokusu o připojení (výchozí: 10.0)
heartbeat:  # (nepovinné) Jak často v sekundách by měla být volána kontrola spojení při odběrech (výchozí: 60)

backlog:  # (nepovinné) Určete počet nevyřízených připojení, která fronta udrží (výchozí: 128)
servertokens:  # (nepovinné) Ovládá, zda bude zahrnuto pole hlavičky odpovědi 'Server' ('full') nebo bude falešné 'prod' (výchozí: full)
cors: # (nepovinné) Určete atributy CORS (výchozí: žádné)

cert:  # Určete cestu k certifikátu WEC serveru
key:  # Určete cestu k soukromému klíči WEC serveru 
issuer_thumbprints:  # Určete SHA1 otisky palce certifikátu vydavatele (CA) oddělené mezerami (např. d6986fef2104f21ab0c7ccb279217abe29c0808a)
password:  # (nepovinné) Zadejte heslo k souboru s privátním klíčem (výchozí: žádné)
cafile:  # (nepovinné) Určete soubor pro ověření peeru (výchozí: žádné)
capath:  # (nepovinné) Určete cestu pro ověření peeru (výchozí: žádné)
ciphers:  # (nepovinné) Určete vlastní SSL šifry (výchozí: žádné)
dh_params:  # (nepovinné) Parametry Diffie–Hellman (D-H) pro výměnu klíčů (TLS) (výchozí: žádné)
verify_mode:  # (nepovinné) Prázdné nebo jedna z CERT_NONE, CERT_OPTIONAL nebo CERT_REQUIRED

Dotazy

Nastavení queries s dotazy na události Windows může vypadat následovně (název dotazu následovaný jeho definicí):

input:WEC:WECInput:
  ...
  queries:
    Application: "*[System[(Level=0 or Level=1 or Level=2 or Level=3 or Level=4 or Level=5)]]"
    System: "*[System[(Level=0 or Level=1 or Level=2 or Level=3 or Level=4 or Level=5)]]"
    Security: "*[System[(Level=0 or Level=1 or Level=2 or Level=3 or Level=4 or Level=5)]]"
    Setup: "*[System[(Level=0 or Level=1 or Level=2 or Level=3 or Level=4 or Level=5)]]"
    Microsoft-Windows-Sysmon/Operational: "*[System[(Level=0 or Level=1 or Level=2 or Level=3 or Level=4 or Level=5)]]"
    Microsoft-Windows-Windows Defender/Operational: "*[System[(Level=0 or Level=1 or Level=2 or Level=3 or Level=4 or Level=5)]]"
    Microsoft-Windows-GroupPolicy/Operational: "*[System[(Level=0 or Level=1 or Level=2 or Level=3 or Level=4 or Level=5)]]"
    Microsoft-Windows-TaskScheduler/Operational: "*[System[(Level=0 or Level=1 or Level=2 or Level=3 or Level=4 or Level=5)]]"
    Microsoft-Windows-Windows Firewall With Advanced Security/Firewall: "*[System[(Level=0 or Level=1 or Level=2 or Level=3 or Level=4 or Level=5)]]"

Dotazy mohou být specifikovány pro každý typ logu událostí Windows, včetně:

  • Application pro aplikace
  • System pro systémové logy
  • Security pro bezpečnostní logy
  • Setup pro logy týkající se instalací nebo aktualizací

Úrovně logů

V protokolování událostí Windows pole Level označuje závažnost události, od kritických chyb po podrobné informační zprávy.

Úroveň 0 (Vždy) je vyhrazena a obvykle se nepoužívá.

Úroveň 1 (Kritická) signalizuje vážný problém, jako je selhání systémové komponenty, které vyžaduje okamžitou pozornost.

Úroveň 2 (Chyba) označuje významné problémy, jako jsou selhání služeb nebo ovladačů, které mohou ovlivnit funkčnost.

Úroveň 3 (Varování) zdůrazňuje potenciální problémy, které nejsou okamžitě škodlivé, ale mohly by vést k budoucím problémům, pokud nebudou řešeny.

Úroveň 4 (Informace) zaznamenává úspěšné operace nebo rutinní události, jako je spuštění služeb nebo přihlášení uživatelů, což je užitečné pro sledování aktivity.

Úroveň 5 (Podrobné) poskytuje podrobné ladicí nebo diagnostické informace, které se používají hlavně během vývoje nebo pokročilého odstraňování problémů. Filtrování událostí podle těchto úrovní umožňuje cílené sledování chování systému na základě závažnosti.

Zahrnutí a vyloučení

Dotazy mohou být omezeny na určité IP adresy zdrojů nebo ID strojů pomocí YAML seznamu identifikátorů na konci dotazu. ID stroje je unikátní pro každý stroj s Windows a je založeno na doménovém hostname.

  queries:
    System:
      "*[System[(Level=0 or Level=1 or Level=2 or Level=3 or Level=4 or Level=5)]]"

    Security:
      "*[System[(Level=0 or Level=1 or Level=2 or Level=3 or Level=4 or Level=5)]]"
    ...
    Application:
      "*[System[(Level=1 or Level=2 or Level=3 or Level=4 or Level=0 or Level=5)]]":
        - 192.168.111.128
        - 192.168.111.128
        - "APP.example.com"
    ...

Tímto způsobem budou logy aplikací odesílány pouze z Windows strojů s IP adresami 192.168.111.128, 192.168.111.128 a s ID stroje APP.example.com (jejich odběr bude obsahovat dotaz na aplikace).

Tato notace je analogická k určení sekce include:

  queries:
    System:
      "*[System[(Level=0 or Level=1 or Level=2 or Level=3 or Level=4 or Level=5)]]"

    Security:
      "*[System[(Level=0 or Level=1 or Level=2 or Level=3 or Level=4 or Level=5)]]"
    ...
    Application:
      "*[System[(Level=1 or Level=2 or Level=3 or Level=4 or Level=0 or Level=5)]]":
        include:
          - 192.168.111.128
          - 192.168.111.128
          - "APP.example.com"
    ...

Aby bylo možné vyloučit určité IP adresy / servery, měla by být specifikována sekce exclude:

  queries:
    System:
      "*[System[(Level=0 or Level=1 or Level=2 or Level=3 or Level=4 or Level=5)]]"

    Security:
      "*[System[(Level=0 or Level=1 or Level=2 or Level=3 or Level=4 or Level=5)]]"
    ...
    Application:
      "*[System[(Level=0 or Level=1 or Level=2 or Level=3 or Level=4 or Level=5)]]":
        exclude:
          - 192.168.111.129
    ...

Takže všechny stroje kromě 192.168.111.129 budou dotazovány na logy aplikací.

Filtrování

Filtrování vám umožňuje jemně doladit, které události jsou předávány z Windows strojů do kolektoru. Toho je dosaženo úpravou syntaxe dotazu XPath v sekci queries.

Můžete filtrovat události na základě:

  • EventID
  • Úroveň (Závažnost)
  • Název poskytovatele
  • Čas vytvoření
  • Kombinace výše uvedeného

Filtrovat podle EventID (Vyloučit konkrétní události)

Chcete-li vyloučit konkrétní ID událostí (např. událost 5156 z bezpečnostních logů), použijte negovaný filtr:

queries:
  Security:
    "*[System[(EventID!=5156)]]"

Filtrovat podle více EventID (Vyloučit nebo zahrnout)

Můžete vyloučit více ID událostí pomocí logických operátorů and, or a not:

queries:
  Security:
    "*[System[not(EventID=5156 or EventID=4688 or EventID=4624)]]"

Chcete-li zahrnout pouze konkrétní ID událostí:

queries:
  Security:
    "*[System[(EventID=4624 or EventID=4625)]]"

Filtrovat podle úrovně (závažnost)

Úrovně závažnosti událostí jsou definovány jako:

Úroveň Název
0 LogAlways
1 Kritická
2 Chyba
3 Varování
4 Informace
5 Podrobné

Příklad: zahrnout pouze kritické a chybové události:

queries:
  Application:
    "*[System[(Level=1 or Level=2)]]"

Filtrovat podle názvu poskytovatele

Chcete-li filtrovat pouze události generované konkrétním poskytovatelem, použijte:

queries:
  Security:
    "*[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and EventID=4624]]"

Filtrovat podle TimeCreated (časový rozsah)

Můžete omezit události pouze na ty, které byly vytvořeny po určitém čase. Časové razítko musí být ve formátu ISO 8601 UTC:

queries:
  System:
    "*[System[TimeCreated[@SystemTime>'2025-07-10T00:00:00.000Z']]]"

Note

Filtrování na základě času se vztahuje pouze na existující události (read_existing_events: true) a může být ignorováno pro živé streamy.

Kombinované filtry

Můžete kombinovat více podmínek pro přesné filtrování:

queries:
  Security:
    "*[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and Level=0 and not(EventID=5156 or EventID=4688)]]"

Tento příklad zahrnuje pouze LogAlways události od specifikovaného poskytovatele, vylučující události 5156 a 4688.