Vyhledávání IP adres
TeskaLabs LogMan.io nabízí optimalizované sady vyhledávání pro IP adresy, nazvané IP Lookups.
Existují vždy tři kroky k povolení IP Lookups:
- Vytvořte deklaraci vyhledávání v LogMan.io Library (popis vyhledávání)
- Vytvořte vyhledávání a jeho obsah v sekci Lookups v UI (obsah vyhledávání)
- Přidejte vyhledávání do relevantních pravidel parsování a/nebo korelace v Library (aplikace vyhledávání)
Vyhledání IP adresy na geografickou polohu
IP Geo Location
je proces, kdy na základě rozsahu IP adres, jako je 192.168.1.1
až 192.168.1.10
, chcete získat geografickou polohu IP adresy, jako je název města, zeměpisná šířka, délka apod.
Vestavěné vyhledávání IP na geografickou polohu
Když IP adresa z události neodpovídá žádnému z poskytnutých geo
vyhledávání, bude použito výchozí veřejné vyhledávání IP adres poskytované TeskaLabs LogMan.io.
-
V LogMan.io přejděte do Library.
-
V Library, přejděte do složky
/Lookups
. -
Vytvořte novou deklaraci vyhledávání pro vaše vyhledávání, jako například "ipgeolookup.yaml" s příponou YAML
-
Přidejte následující deklaraci:
define: type: lookup/ipaddressrange name: ipgeolookup group: geo keys: - name: range1 type: ip - name: range2 type: ip fields: location: type: geopoint value: lat: 50.0643081 lon: 14.443938 city_name: type: str
Ujistěte se, že
type
je vždylookup/ipaddressrange
.Změňte
name
v sekcidefine
na název vašeho vyhledávání.group
se používá v obohacovacím procesu pro nalezení všech vyhledávání, která sdílí stejnou skupinu. Hodnota je unikátní identifikátor skupiny (use case), zde:geo
.Klíče nechte tak, jak jsou, abyste specifikovali rozsahy.
Do
fields
přidejte názvy a typy atributů vyhledávání. V tomto příkladu je jenom město, ale může být i poloha (zeměpisná šířka a délka) atd.:fields: name: type: str continent_name: type: str city_name: type: str location: type: geopoint
Při použití Elastic Common Schema (ECS) jsou všechny dostupné geo pole, která mohou být použita, specifikována v dokumentaci: https://www.elastic.co/guide/en/ecs/current/ecs-geo.html
Hodnota
value
bude použita jako výchozí.V současnosti jsou podporovány tyto typy:
str
,fp64
,si32
,geopoint
aip
. -
Uložte
-
V LogMan.io přejděte do Lookups.
-
Vytvořte nové vyhledávání se stejným názvem jako výše, tj. "ipgeolookup". Specifikujte dva klíče s názvy:
range1
,range2
. -
Vytvořte záznamy ve vyhledávání s rozsahy jako klíči a poli, jak je uvedeno výše (v příkladu je ve slovníku hodnot uložených ve vyhledávání pouze město).
-
Přidejte následující obohacovač do pravidla LogMan.io Parsec, které by mělo použít vyhledávání:
define: type: enricher/ip group: geo schema: ecs: postfix: geo.
Specifikujte skupinu vyhledávání, která by měla být použita v atributu
group
. Měla by být stejná jako skupina uvedená výše v deklaraci vyhledávání. Tenants jsou řešeni automaticky.Obohacování probíhá na každém poli, které má typ
ip
ve schématu.Postfix specifikuje příponu pro atribut:
Pokud je vstup
source.ip
Pak je výstup
source.geo.<NAME_OF_THE_ATTRIBUTE>
Když jde o výchozí veřejné GEO vyhledávání (viz výše), následující položky jsou vyplněny ve výchozím nastavení:
city_name: type: str country_iso_code: type: str location: type: geopoint region_name: type: str
Vyhledávání rozsahu IP adres
Vyhledávání rozsahu IP adres používá rozsahy IP adres, jako je 192.168.1.1 až 192.168.1.10, jako klíče.
Deklarace vyhledávání rozsahu IP adres musí obsahovat typ lookup/ipaddressrange
v sekci define
a dva klíče s typem ip
v sekci keys
:
define:
type: lookup/ipaddressrange
name: mylookup
group: mygroup
keys:
- name: range1
type: ip
- name: range2
type: ip
fields:
...
Případ použití: Obohacení privátní IP adresy do zóny
Můžete použít vyhledávání IP-to-zone, když na základě rozsahu IP adres, jako je 192.168.1.1
až 192.168.1.10
, chcete získat název zóny, název podlaží a další informace (např. budova společnosti, zda je to privátní nebo veřejná zóna atd.).
Hint
Použijte vyhledávání IP-to-zone pro obohacování privátní IP adresy.
-
V LogMan.io, přejděte do Library.
-
V Library přejděte do složky
/Lookups
. -
Vytvořte novou deklaraci vyhledávání pro vaše vyhledávání, jako například "ipzonelookup.yaml" s příponou YAML
-
Přidejte následující deklaraci:
define: type: lookup/ipaddressrange name: ipzonelookup group: zone keys: - name: range1 type: ip - name: range2 type: ip fields: location: type: geopoint value: lat: 50.0643081 lon: 14.443938 zone_name: type: str value: myzone floor_name: type: str
Ujistěte se, že typ je vždy
lookup/ipaddressrange
.Změňte
name
v sekci define na název vašeho vyhledávání.group
se používá v obohacovacím procesu pro nalezení všech vyhledávání, která sdílí stejnou skupinu. Hodnota je unikátní identifikátor skupiny (use case), zde:zone
.Klíče nechte tak, jak jsou, abyste specifikovali rozsahy.
Do
fields
přidejte názvy a typy atributů vyhledávání. Zde v příkladu je pouze název podlaží, ale může být i název místnosti, název společnosti atd.:yaml fields: floor_name: type: str
Hodnota
value
bude použita jako výchozí.V současnosti jsou podporovány tyto typy:
str
,fp64
,si32
,geopoint
aip
. -
Uložte
-
V LogMan.io přejděte do Lookups.
-
Vytvořte nové vyhledávání se stejným názvem jako výše, tj. "ipzonelookup". Specifikujte dva klíče s názvy:
range1
,range2
. -
Vytvořte záznamy ve vyhledávání s rozsahy jako klíči a poli, jak je uvedeno výše (v příkladu je ve slovníku hodnot uložených ve vyhledávání pouze podlaží).
-
Přidejte následující obohacovač do pravidla LogMan.io Parsec, které by mělo použít vyhledávání:
define: type: enricher/ip group: floor schema: ecs: prefix: lmio.ipenricher. postfix: zone.
Specifikujte skupinu vyhledávání, která by měla být použita v atributu
group
. Měla by být stejná jako skupina uvedená výše v deklaraci vyhledávání. Tenants jsou řešeni automaticky.Obohacování probíhá na každém poli, které má typ
ip
ve schématu.Prefix specifikuje předponu a postfix specifikuje příponu pro atribut:
Pokud je vstup
source.ip
, pak je výstuplmio.ipenricher.source.zone.<NAME_OF_THE_ATTRIBUTE>
.
Vyhledávání jedné IP adresy
Vyhledávání jedné IP adresy je vyhledávání, které má přesně jeden klíč IP adresy s typem ip
, který může být spojen s volitelným a variabilním počtem atributů definovaných žádnými nebo více hodnotami v fields
.
Pro použití single IP vyhledávání spolu s následujícími obohacovači musí být typ vyhledávání v sekci define
vždy lookup/ipaddress
.
---
define:
type: lookup/ipaddress
name: mylookup
group: mygroup
keys:
- name: sourceip
type: ip
fields:
...
Případ použití: Vyhledávání špatných IP adres
Můžete použít obohacení špatné IP adresy, když na základě jedné IP adresy, jako je 192.168.1.1
, chcete získat informace o rizikovém skóre IP adresy atd.
-
V LogMan.io, přejděte do Library.
-
V Library, přejděte do složky
/Lookups
. -
Vytvořte novou deklaraci vyhledávání pro vaše vyhledávání, jako například "badips.yaml" s příponou YAML.
-
Přidejte následující deklaraci:
--- define: type: lookup/ipaddress name: badips group: bad keys: - name: sourceip type: ip fields: base: type: si32
Ujistěte se, že typ je vždy
lookup/ipaddress
.Změňte
name
v sekcidefine
na název vašeho vyhledávání.group
se používá v obohacovacím procesu pro nalezení všech vyhledávání, která sdílí stejnou skupinu. Hodnota je unikátní identifikátor skupiny (use case), zde:bad
.Zachovejte jeden klíč v sekci
keys
s typemip
. Název by neměl obsahovat tečky ani jiné speciální znaky.Do
fields
přidejte názvy a typy atributů vyhledávání. Zde v příkladu jebase
jako integer, ale mohou být i jiné bezpečnostní atributy z https://www.elastic.co/guide/en/ecs/current/ecs-vulnerability.html:fields: base: type: si32
V současnosti jsou podporovány tyto typy:
str
,fp64
,si32
,geopoint
, aip
. -
Uložte
-
V LogMan.io přejděte do "Lookups".
-
Vytvořte nové vyhledávání se stejným názvem jako výše, tj. badips. Specifikujte IP adresu jako klíč.
-
Vytvořte záznamy ve vyhledávání s IP adresou jako klíčem a poli, jak je uvedeno výše (v příkladu je v hodnotovém slovníku uloženém ve vyhledávání pouze
base
). -
Přidejte následující obohacovač do pravidla LogMan.io Parsec, které by mělo použít vyhledávání:
define: type: enricher/ip group: bad schema: ecs: # https://www.elastic.co/guide/en/ecs/current/ecs-vulnerability.html prefix: lmio.vulnerability. postfix: score.
Specifikujte skupinu vyhledávání, která by měla být použita v atributu
group
. Měla by být stejná jako skupina uvedená výše v deklaraci vyhledávání. Tenants jsou řešeni automaticky.Obohacování probíhá na všech polích, které mají typ
ip
ve schématu.Prefix je přidán k poli s rozřešenými atributy, které mají být použity pro další mapování:
Pokud je vstup
source.ip
Pak je výstup
lmio.vulnerability.source.score.<NAME_OF_THE_ATTRIBUTE>
-
Na základě atributu a následného mapování může být přidána korelace s výstražným triggerem do
/Correlators
pro notifikaci o špatné IP adrese, jejíž základní skóre je vyšší než prahová hodnota:--- define: name: Bad IP Notification description: Bad IP Notification type: correlator/window predicate: !AND - !IN what: source.ip where: !EVENT - !GT - !ITEM EVENT lmio.vulnerability.source.score.base - 2 evaluate: dimension: [tenant, source.ip] by: "@timestamp" # Název event field s časem události resolution: 60 # jednotka je vteřina saturation: 10 # jednotka je resolution analyze: window: hopping # to je výchozí aggregate: sum # to je výchozí span: 2 # 2 * resolution z evaluate = mé časové okno test: !GE - !ARG - 1 trigger: - event: !DICT type: "{str:any}" with: message: "Bad IP Notification" events: !ARG EVENTS source.ip: !ITEM EVENT source.ip event.dataset: correlation - notification: type: email to: [logman@example.co] template: "/Templates/Email/Notification.md" variables: !DICT type: "{str:any}" with: name: Bad IP Notification events: !ARG EVENTS dimension: !ITEM EVENT source.ip
Případ použití: Obohacení IP adresy do assetu
Použijte obohacení IP-to-asset, když na základě jediné IP adresy, jako je 192.168.1.1
, chcete získat informace z připraveného vyhledávání o assetech, zařízeních, hostech atd.
-
V LogMan.io, přejděte do Library.
-
V Library, přejděte do složky
/Lookups
. -
Vytvořte novou deklaraci vyhledávání pro vaše vyhledávání, jako například "ipassetlookup.yaml" s příponou YAML.
-
Přidejte následující deklaraci:
--- define: type: lookup/ipaddress name: ipassetlookup group: asset keys: - name: sourceip type: ip fields: asset: type: str
Ujistěte se, že
type
je vždylookup/ipaddress
.Změňte
name
v sekcidefine
na název vašeho vyhledávání.group
se používá v obohacovacím procesu pro nalezení všech vyhledávání, která sdílí stejnou skupinu. Hodnota je unikátní identifikátor skupiny (use case), zde:asset
.Zachovejte jeden klíč v sekci
keys
s typemip
. Název by neměl obsahovat tečky ani jiné speciální znaky.Do
fields
přidejte názvy a typy atributů vyhledávání. Zde v příkladu je asset a hostname:fields: asset: type: str hostname: type: str
V současnosti jsou podporovány tyto typy:
str
,fp64
,si32
,geopoint
aip
. -
Uložte
-
V LogMan.io přejděte do Lookups.
7