====== Reporting ======
//[[:cs:services:mentat|Zpět na hlavní stránku systému Mentat]]//
Reportovací nástroj je klíčovou komponentou systému [[https://mentat.cesnet.cz|Mentat]]. Jeho úkolem je v pravidelných intervalech zpracovávat nově přijaté události a prostřednictvím emailu automaticky rozesílat hlášení přímo odpovědným správcům v koncových sítích.
===== Reporty =====
V tuto chvíli systém generuje dva typy reportů: **summary** a **extra**. Oba typy reportů jsou generovány vždy zpětně za určité časové období a pro každou [[:cs:services:mentat:#jak_definujete_kategorie_zavaznosti_incidentu|úroveň závažnosti]] zvlášť. Tento přístup umožňuje optimalizovat míru agregace tak, aby méně závažné události byly hlášeny méně často a tedy i s delším zpožděním, ale zato mnohem více agregované, zatímco závažnější události mnohem častěji a tedy s menším zpožděním od okamžiku detekce. Více informací o reportovacím algoritmu lze nalézt v [[:cs:services:mentat:reporting:#popis_reportovaciho_mechanismu|samostatné sekci]].
**Summary** report obsahuje za daný časový interval souhrn všech událostí dané [[:cs:services:mentat:#jak_definujete_kategorie_zavaznosti_incidentu|závažnosti]] a týkajících se všech IP adres v dané koncové síti. To je vhodné např. pro hromadné zpracování všech hlášených událostí, automatické generování statistik, případně pro udržování obecného přehledu o zranitelnostech v dané síti. Souhrnný report přijde pro každou úroveň závažnosti a daný časový interval vždy právě jeden.
**Extra** report obsahuje za daný časový interval vždy události dané [[:cs:services:mentat:#jak_definujete_kategorie_zavaznosti_incidentu|závažnosti]] a týkající se pouze jediné IP adresy z dané koncové sítě. To je vhodné např. pro redistribuci hlášení dále přímo konkrétním správcům daného zařízení nebo pro jednoduchou manipulaci a párování událostí v rámci nějakého interního tiketovacího systému.
Všechny reporty jsou odesílány s následujícími hodnotami hlaviček identifikujícími jako odesílatele systém Mentat:
* **From: **CESNET-CERTS Reporting < reporting@cesnet.cz >
* **Reply-To:** abuse@cesnet.cz
* **Return-Path:** reporting@cesnet.cz
Předmět odesílaných emailů vypadá následujícím způsobem:
[Unikátní identifikátor] Závažnost - Popisný text
Např.:
# Ukázka předmětů souhrnných reportů - *summary*
[M20151125L-Dg2ur] Nízká - Upozornění na možné problémy ve Vaší síti
[M20151125M-Dg2ur] Střední - Upozornění na možné problémy ve Vaší síti
[M20151125H-Dg2ur] Vysoká - Upozornění na možné problémy ve Vaší síti
[M20151125C-Dg2ur] Kritická - Upozornění na možné problémy ve Vaší síti
# Ukázka předmětů extra reportů - *extra*
[M20151125L-Dg2ur] Nízká - Upozornění na možné problémy týkající se stroje 192.168.0.1
[M20151125M-Dg2ur] Střední - Upozornění na možné problémy týkající se stroje 192.168.0.1
[M20151125H-Dg2ur] Vysoká - Upozornění na možné problémy týkající se stroje 192.168.0.1
[M20151125C-Dg2ur] Kritická - Upozornění na možné problémy týkající se stroje 192.168.0.1
Unikátní identifikátor v hranatých závorkách jednoznačně identifikuje dané hlášení a jeho formát je významový. Pro ukázkový příklad **M20151125L-Dg2ur** je význam jednotlivých součástí následující:
* **M** - konstanta, M jako systém Mentat
* **20151125** - datum vygenerování reportu ve formátu YYYYMMDD
* **L** - kód závažnosti události, jedna z možností (L = Low, M = Medium, H = High, C = Critical)
* **Dg2ur** - náhodný řetězec pro rozlišení jednotlivých reportů generovaných v rámci jednoho dne
U časových značek uvedených přímo v reportu je vždy uvedena i příslušná časová zóna. Časové značky v datových přílohách jsou uvedeny vždy pouze v **UTC**.
Uvedené časy jsou okamžiky údajné detekce. Některé služby a systémy (zejména externí, jako např. ShadowServer) bohužel občas posílají informace o událostech i s několikadenním zpožděním. Informace z těchto systémů tedy mají spíše zdravotní charakter, systém Mentat jim přiřazuje nízkou [[:cs:services:mentat:#jak_definujete_kategorie_zavaznosti_incidentu|úroveň závažnosti]] a je na správci v dané síti, zda jim bude věnovat pozornost, či nikoliv.
Pro lepší automatizované zpracovaní generovaných reportů jsou přidávány následující rozšiřující emailové hlavičky:
^ Hlavička ^ Význam ^
| X-Mentat-Report-Class | Třída reportu, pro pravidelné reporty událostí má konstantní hodnotu: "events" |
| X-Mentat-Report-Id | Unikátní identifikátor reportu |
| X-Mentat-Report-Parent-Id | Unikátní identifikátor nadřazeného souhrnného reportu |
| X-Mentat-Report-Type | Typ reportu, jedna z možností: "summary"/"extra" |
| X-Mentat-Report-Severity | Závažnost reportu, jedna z možností: "low", "medium", "high", "critical" |
| X-Mentat-Report-Src-IP | IP adresa původce události, pouze u reportů typu "extra" |
| X-Mentat-Report-Event-Count | Celkový počet událostí v reportu |
| X-Mentat-Report-Time-Window | Časové okno reportu jako dvě časové značky ISO 8601 format (YYYY-MM-DDTHH:MM:SS) spojené řetězcem ''_'', např. ''2018-07-13T10:30:00___2018-07-13T10:50:00'' |
| X-Mentat-Report-Test-Data | Příznak, zda report obsahuje pouze testovací data a může být v produkčním prostředí ignorován. |
Vygenerovaný report obsahuje také odkazy na relevantní data ve strojově zpracovatelném formátu JSON.
Reportování lze pro každou koncovou síť optimalizovat vhodným nastavením filtrů tak, aby události bez skutečné hodnoty pro cílové správce nebyly hlášeny. Tato a další nastavení lze nakonfigurovat pro každou koncovou síť zvlášť prostřednictvím [[https://mentat-hub.cesnet.cz|webového rozhraní]]. Tato nastavení je oprávněn dělat buď administrátor systému Mentat, nebo uživatel s oprávněním spravovat danou skupinu. Více informací o možnostech webového rozhraní z hlediska běžného uživatele lze nalézt na [[:cs:services:mentat:webui|samostatné stránce]].
Všechny vygenerované reporty jsou dostupné v HTML formátu i prostřednictvím [[https://mentat-hub.cesnet.cz|webového rozhraní]], kde lze využít i další funkce a propojení s ostatními komponentami rozhraní.
===== Popis reportovacího mechanismu =====
Návrh nového reportéru a reportovacího mechanismu vychází z připomínek nashromážděných v průběhu provozu předchozí verze. Klíčové připomínky byly následující:
- Pozdržení již nahlášených problémů po určitou dobu
- Možnost zasílání souhrnných reportů za větší časový interval (den, týden), nastavitelné intervaly reportování
Obě připomínky v sobě v podstatě skrývají určitou formu agregace dat. A v případě agregace je vždy nutné najít optimální kompromis mezi co největším agregačním intervalem (po kterém zpravidla touží přijímající strana a který znamená menší množství přijatých zpráv) a mezi rozumným časovým zpožděním při odeslání hlášení (neboť týden stará data jsou již obvykle k ničemu). Zároveň jsme dospěli i k rozdílu závažnosti mezi jednotlivými událostmi: určité události nejsou příliš závažné a skutečně není nutné zasílat upozornění častěji než řekněme jednou denně/týdně, ale včasné informování o kritičtější události může znamenat výrazné omezení konečných škod v napadeném systému/síti. Zavedli jsme tedy hodnocení událostí podle závažnosti z našeho pohledu jakožto operátorů páteřní sítě. Navrhovaná klasifikace je prezentovaná na stránkách týmu [[https://csirt.cesnet.cz/cs/services/mentat|CESNET-CERTS]].
Nový reportovací algoritmus funguje podle následujícího schématu:
- Rozdělení nových událostí přijatých za určitý časový úsek do skupin podle [[:cs:services:mentat:#jak_definujete_kategorie_zavaznosti_incidentu|úrovní závažnosti]]
- Pro každou skupinu událostí dané [[:cs:services:mentat:#jak_definujete_kategorie_zavaznosti_incidentu|úrovně závažnosti]] poté provede samostatné zpracování
- Agregace zpráv podle cílového abuse kontaktu/skupiny (whois dotaz na IP adresu zdrojů události)
- Získání konfigurace reportování pro danou [[:cs:services:mentat:#jak_definujete_kategorie_zavaznosti_incidentu|úroveň závažnosti]] a cílový abuse kontakt/skupinu
- Vygenerování a odeslání reportu na definovanou emailovou adresu
Samotný reportovací algoritmus, který provádí vlastní zpracování dat, je konfigurovatelný pomocí následující trojice hodnot:
- **period** - Perioda, se kterou se report pravidelně generuje
- **threshold** - Doba, po kterou se o daném nahlášeném incidentu mlčí a neobjevuje se v následujících reportech. Klíčem pro zapamatování je kombinace (IP adresa|klasifikace události)
- **relapse** - Heuristika, která určuje, v jakém případě budou zamlčená data zpětně odeslána (detekce vyřešení/nevyřešení daného incidentu)
Princip fungování reportovacího algoritmu ilustruje následující obrázek:
{{ :mentat-reporting.png?nolink |Princip fungování reportovacího algoritmu}}
Výchozí nastavení reportovacího algoritmu reflektuje proces incident handlingu v týmu [[https://csirt.cesnet.cz/cs/index| CESNET-CERTS ]] a vypadá následujícím způsobem:
^ Stupeň závažnosti (severity) ^ Popis ^ Period ^ Threshold ^ Relapse ^
| Nízká - Low | Informační charakter | 1d | 7d | 2d |
| Střední - Medium | Vážná událost, vyřešit do 2 dní | 2h | 7d | 2d |
| Vysoká - High | Velmi vážná událost, vyřešit ASAP | 10min | 1d | 12h |
| Kritická - Critical | Kritická událost, vyřešit ASAP | 10min | 2h | 0 |
----
//[[:cs:services:mentat|Zpět na hlavní stránku systému Mentat]]//