Petr Velan petr.velan@cesnet.cz Monitorování sítě pomocí flow case studies OpenAlt 2017
Úvod Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 1 / 31
Základní koncept Co je to flow monitoring? Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 2 / 31
Základní koncept Co je to flow monitoring? Metoda monitorování sítě Sledují se celá spojení (toky), ne jednotlivé pakety Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 2 / 31
Základní koncept Co je to flow monitoring? Metoda monitorování sítě Sledují se celá spojení (toky), ne jednotlivé pakety Výhody proti deep packet inspection (DPI): Agregace na toky šetří výkon a prostor při ukládání Rozdělení rolí na sondy (tvorba toků) a kolektory (zpracování) Vhodné pro velké a vysokorychlostní sítě Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 2 / 31
Troška historie... První zmínka o flow v RFC 1272 (1991) vydaném IETF Internet Accounting WG V letech 1996 2000 Realtime Traffic Flow Measurement (RTFM) WG vydala několik RFC popisující architekturu měřícího systému pro flow V roce 1996 Cisco patentovalo NetFlow, první verze dostupná pro veřejnost kolem roku 2002 bylo NetFlow v5. NetFlow v5 bylo brzo nahrazeno NetFlow v9, které se často používá doposud V roce 2001 vytvořena IP Flow Information export (IPFIX) WG, v roce 2013 publikován IPFIX standard. Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 3 / 31
Architektura měření flow Internet TAP Probe Router Collector SPAN port Probe Internal Network Packets Flow Records Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 4 / 31
Jak se tvoří toky definice An IP Flow, also called a Flow, is defined as a set of IP packets passing an Observation Point in the network during a certain time interval. All packets that belong to a particular Flow have a set of common properties derived from the data contained in the packet and from the packet treatment at the Observation Point. (Cisco Systems NetFlow Services Export Version 9) Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 5 / 31
Jak se tvoří toky ukázka Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 6 / 31
Jak se tvoří toky ukázka SRC and DST IP addr SRC and DST port Protocol number Lifetime Number of packets Sum of bytes TCP flags Others Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 6 / 31
Jak se tvoří toky ukázka HTTP Request FROM 172.16.96.48:15094 TO 209.85.135.147:80 SRC and DST IP addr SRC and DST port Protocol number Lifetime Number of packets Sum of bytes TCP flags Others Flow start Duration Proto Src IP Addr:Port Dst IP Addr:Port Flags Packets Bytes 09:41:21.763 0.101 TCP 172.16.96.48:15094 -> 209.85.135.147:80.AP.SF 4 715 Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 6 / 31
Jak se tvoří toky ukázka HTTP Request FROM 172.16.96.48:15094 TO 209.85.135.147:80 HTTP Response FROM 209.85.135.147:80 TO 172.16.96.48:15094 SRC and DST IP addr SRC and DST port Protocol number Lifetime Number of packets Sum of bytes TCP flags Others Flow start Duration Proto Src IP Addr:Port Dst IP Addr:Port Flags Packets Bytes 09:41:21.763 0.101 TCP 172.16.96.48:15094 -> 209.85.135.147:80.AP.SF 4 715 09:41:21.893 0.031 TCP 209.85.135.147:80 -> 172.16.96.48:15094.AP.SF 4 1594 Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 6 / 31
Jak se tvoří toky konfigurace Klíčové položky Sada vlastností paketů, které mají všechny pakety v jednom toku společné Typicky: src IP, dst IP, src port, dst port, L4 protokol Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 7 / 31
Jak se tvoří toky konfigurace Klíčové položky Sada vlastností paketů, které mají všechny pakety v jednom toku společné Typicky: src IP, dst IP, src port, dst port, L4 protokol Expirace toků aktivní timeout neaktivní (idle) timeout přirozená expirace (konec TCP spojení) Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 7 / 31
Jak se tvoří toky konfigurace Klíčové položky Sada vlastností paketů, které mají všechny pakety v jednom toku společné Typicky: src IP, dst IP, src port, dst port, L4 protokol Expirace toků aktivní timeout neaktivní (idle) timeout přirozená expirace (konec TCP spojení) Exportní protokol IPFIX, NetFlow v9, NetFlow v5 Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 7 / 31
Využití toků Uchování historie komunikace Pro ISP nařizuje zákon Užitečné pro dohledávání incidentů Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 8 / 31
Využití toků Uchování historie komunikace Pro ISP nařizuje zákon Užitečné pro dohledávání incidentů Detekce útoků Realtime (skoro) detekce útoků Automatická reakce (nastavení firewallu) Sdílení informací Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 8 / 31
Využití toků Uchování historie komunikace Pro ISP nařizuje zákon Užitečné pro dohledávání incidentů Detekce útoků Realtime (skoro) detekce útoků Automatická reakce (nastavení firewallu) Sdílení informací Statistiky a grafy Sledování objemu provozu Sledování rozvoje IPv6 Sledování využití IP adres v síti Geolokace Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 8 / 31
Uchování historie komunikace Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 9 / 31
Ukládání toků Základní funkce kolektoru Uchování údajů o elektronické komunikaci u nás upravuje Zákon č. 127/2005 Sb. Databáze vs specializované úložiště Jaký software použít: nfdump (NfSen GUI), SiLK, IPFIXcol + Fastbit, SecurityCloud (IPFIXcol + libnf + GUI) MySQL, PostgreSQL, Elasticsearch,... Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 10 / 31
SecurityCloud Vyvíjeno na CESNETu v rámci projektu TAČR https://github.com/cesnet/securitycloud/wiki Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 11 / 31
SecurityCloud Ukázka Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 12 / 31
Detekce útoků Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 13 / 31
Typy zpracování flow dat Batch Data se nejprve uloží, zpracovávají se později Nevýhody jsou: větší delay, zatížení disku NfSen 5 minutová okna Vlastní skripty v cronu Stream Data se zpracovávají tak, jak přicházejí Nevýhodou je nutnost držet více dat v paměti NEMEA, Stream4Flow Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 14 / 31
NEMEA http://nemea.liberouter.org/ Vyvíjeno na CESNETu Sada modulů s vlastním komunikačním rozhraním Každý modul vykonává jednu činnost (detekci, výpočet statistik, logování) Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 15 / 31
Stream4Flow https://stream4flow.ics.muni.cz Vyvíjeno na Masarykově Univerzitě Distribuovaný systém pro zpracování flow Postaveno nad Apache Spark Moduly pro zpracování v Python Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 16 / 31
Statistiky a grafy Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 17 / 31
Z čeho generovat pěkné obrázky Skripty nad offline daty Munin IPv6 statistiky tunelovaného provozu NfSen + MaxMind databáze On-demand geolokace a zobrazení na mapě SURFmap Elasticsearch + Kibana Grafy v Kibaně nad daty Flow do Elasticsearch lze ukládat pomocí Logstash Pro konverzi do JSON lze využít IPFIXcol Použito i ve Stream4Flow Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 18 / 31
Nasazení v praxi Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 21 / 31
All-in-One: STaaS Security Tools as a Service (STaaS) https://github.com/cesnet/staas Virtuální stroj / možnost instalace na fyzický stroj Sada nástrojů: Flow exporter (flow_meter, po instalaci vypnutý) Flow collector (IPFIXcol, primární zdroj dat, ukládání flow dat) stream-wise IDS (NEMEA) Warden klient Nagios (NRPE pluginy) Munin GUI pro zobrazení/vyhledávání flow dat GUI pro zobrazení lokálně detekovaných událostí Let s Encrypt certifikát (pro veřejné adresy s DNS) Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 22 / 31
STaaS trochu podrobněji Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 23 / 31
SecurityCloud Ukázka Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 24 / 31
Instalace nástrojů evoluce 1 Sestavení ze zdrojových kódů (GitHub) 2 RPM balíky (Fedora COPR) 3 Vagrant / Packer + bash 4 Ansible (instalace z RPM) 5 Vagrant + Ansible Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 25 / 31
STaaS Instalace strojů pomocí Ansible/Vagrant Základní použití je popsáno v README.md Pouze pro podporovaný OS (CentOS 7) Demo stroj lze nahodit pomocí vagrant up Stroj lze dále spravovat přímo přes Ansible: ansible-playbook -i inventory/hosts site.yml \ --tags install Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 26 / 31
STaaS Tvorba vlastního stroje Lze vyjít z ukázky staas-vagrant Je potřeba připravit nastavení proměnných pro stroj (host_vars) Možnost upravit konfigurační soubory, které se kopírují na stroj (host_files) Je potřeba přidat stroj do inventáře pro ansible. Volbou skupin v inventáři lze ovlivnit, jaké služby se budou instalovat. Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 27 / 31
flow_meter: Export z PC nebo OpenWrt směrovače flow_meter (zmíněný na LD2016) Flow export ze SOHO routerů v IPFIX formátu (https://github.com/cesnet/nemea-openwrt) Nasazeno u nás v kanceláři :-) Testováno na: TP-Link WRT1043ND, TP-Link Archer C7, NEXX, CZ.NIC Turris, CZ.NIC Turris Omnia Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 28 / 31
Další použití flow_meter exportéru samostatná sonda + analyzátor, možnost ukládání/zpracovávání provozu přímo na sondě možný zdroj informací pro PassiveDNS export flow včetně MAC export flow včetně L7 rozšíření Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 29 / 31
Závěr Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 30 / 31
Kontakty E-Mail: petr.velan@cesnet.cz Mailinglist: nemea@cesnet.cz Přihlášení: https://random.cesnet.cz/mailman/listinfo/nemea Web: http://nemea.liberouter.org Git: https://github.com/cesnet/nemea, https://github.com/cesnet/staas Twitter: @liberouter, @NEMEA_System Petr Velan Monitorování sítě pomocí flow OpenAlt 2017 31 / 31