Detekce neoprávněných vniknutí sítě pomocí Azure Network Watcheru a opensourcových nástrojů
Zachytávání paketů je klíčovou komponentou pro implementaci systémů detekce vniknutí sítě (IDS) a monitorování zabezpečení sítě. Několik opensourcových nástrojů IDS zpracovává zachytávání paketů a hledá podpisy možných narušení sítě a škodlivé aktivity. Pomocí zachytávání paketů, které azure Network Watcher poskytuje, můžete analyzovat síť za účelem poškození nebo ohrožení zabezpečení.
Jedním z takových opensourcových nástrojů je Suricata, modul IDS, který používá sady pravidel k monitorování síťového provozu a aktivuje výstrahy při každém výskytu podezřelých událostí. Suricata nabízí vícevláknový modul pro provádění analýzy síťového provozu se zvýšenou rychlostí a efektivitou. Další informace o Suricatě a jejích schopnostech najdete na webu Suricata.
Scénář
Tento článek vysvětluje, jak nastavit prostředí tak, aby provádělo detekci narušení sítě pomocí služby Network Watcher, Suricata a elastického stacku.
Network Watcher poskytuje zachytávání paketů pro provádění detekce narušení sítě. Suricata zpracovává zachytávání paketů a aktivuje výstrahy na základě paketů, které odpovídají sadě hrozeb. Suricata ukládá tato upozornění do souboru protokolu na místním počítači.
Pomocí elastického stacku můžete indexovat protokoly, které Suricata vygeneruje, a pak je použít k vytvoření řídicího panelu Kibana. Řídicí panel poskytuje vizuální znázornění protokolů a způsob, jak rychle získat přehled o potenciálních ohroženích zabezpečení sítě.
Na virtuálním počítači Azure můžete nastavit oba opensourcové nástroje, abyste mohli tuto analýzu provést ve vlastním síťovém prostředí Azure.
Instalace Suricata
Na terminálu příkazového řádku virtuálního počítače spusťte následující příkazy:
sudo add-apt-repository ppa:oisf/suricata-stable sudo apt-get update sudo apt-get install suricata
Pokud chcete ověřit instalaci, spusťte příkaz
suricata -h
a zobrazte úplný seznam příkazů.
Další metody instalace najdete v průvodci rychlým zprovozněním instalace Suricata.
Stažení sady pravidel vznikajících hrozeb
V této fázi nemáte žádná pravidla, která by suricata běžela. Pokud chcete detekovat konkrétní hrozby pro vaši síť, můžete vytvořit vlastní pravidla. Můžete také použít vyvinuté sady pravidel od různých poskytovatelů, jako jsou vznikající hrozby nebo pravidla Talos z Snortu. V tomto článku použijete volně dostupnou sadu pravidel vznikajících hrozeb.
Stáhněte sadu pravidel a zkopírujte ji do adresáře:
wget https://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz
tar zxf emerging.rules.tar.gz
sudo cp -r rules /etc/suricata/
Zpracování zachytávání paketů pomocí Suricata
Pokud chcete zpracovat zachytávání paketů pomocí Suricaty, spusťte následující příkaz:
sudo suricata -c /etc/suricata/suricata.yaml -r <location_of_pcapfile>
Pokud chcete zkontrolovat výsledné výstrahy, přečtěte si soubor fast.log :
tail -f /var/log/suricata/fast.log
Nastavení elastického zásobníku
Protokoly, které Suricata vytváří, obsahují cenné informace o tom, co se děje ve vaší síti, ale tyto soubory protokolů nejsou nejsnadnější pro čtení a pochopení. Propojením Suricaty s elastickým stackem můžete vytvořit řídicí panel Kibany pro vyhledávání, graf, analýzu a odvozování přehledů z protokolů.
Instalace Elasticsearch
Elastic Stack verze 5.0 a novější vyžadují Javu 8. Spuštěním příkazu
java -version
zkontrolujte verzi. Pokud nemáte nainstalovanou Javu, projděte si dokumentaci k sadám Java Development Kit podporovaných v Azure.Stáhněte si správný binární balíček pro váš systém:
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.0.deb sudo dpkg -i elasticsearch-5.2.0.deb sudo /etc/init.d/elasticsearch start
Další metody instalace najdete na elastické webové stránce pro instalaci Elasticsearch.
Pomocí následujícího příkazu ověřte, že je elasticsearch spuštěný:
curl http://127.0.0.1:9200
Měla by se zobrazit odpověď podobná tomuto příkladu:
{ "name" : "Angela Del Toro", "cluster_name" : "elasticsearch", "version" : { "number" : "5.2.0", "build_hash" : "8ff36d139e16f8720f2947ef62c8167a888992fe", "build_timestamp" : "2016-01-27T13:32:39Z", "build_snapshot" : false, "lucene_version" : "6.1.0" }, "tagline" : "You Know, for Search" }
Další pokyny k instalaci Elasticsearch najdete na webové stránce Elastic o instalaci.
Instalace Logstash
Nainstalujte Logstash spuštěním následujících příkazů:
curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-5.2.0.deb sudo dpkg -i logstash-5.2.0.deb
Nakonfigurujte Logstash tak, aby četl z výstupu souboru eve.json . Pomocí tohoto příkazu vytvořte soubor logstash.conf :
sudo touch /etc/logstash/conf.d/logstash.conf
Do souboru přidejte následující obsah. Ujistěte se, že je správná cesta k souboru eve.json .
input { file { path => ["/var/log/suricata/eve.json"] codec => "json" type => "SuricataIDPS" } } filter { if [type] == "SuricataIDPS" { date { match => [ "timestamp", "ISO8601" ] } ruby { code => " if event.get('[event_type]') == 'fileinfo' event.set('[fileinfo][type]', event.get('[fileinfo][magic]').to_s.split(',')[0]) end " } ruby{ code => " if event.get('[event_type]') == 'alert' sp = event.get('[alert][signature]').to_s.split(' group ') if (sp.length == 2) and /\A\d+\z/.match(sp[1]) event.set('[alert][signature]', sp[0]) end end " } } if [src_ip] { geoip { source => "src_ip" target => "geoip" #database => "/opt/logstash/vendor/geoip/GeoLiteCity.dat" add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ] add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}" ] } mutate { convert => [ "[geoip][coordinates]", "float" ] } if ![geoip.ip] { if [dest_ip] { geoip { source => "dest_ip" target => "geoip" #database => "/opt/logstash/vendor/geoip/GeoLiteCity.dat" add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ] add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}" ] } mutate { convert => [ "[geoip][coordinates]", "float" ] } } } } } output { elasticsearch { hosts => "localhost" } }
Udělte souboru eve.json správná oprávnění, aby logstash mohl ingestovat soubor:
sudo chmod 775 /var/log/suricata/eve.json
Spuštěním tohoto příkazu spusťte Logstash:
sudo /etc/init.d/logstash start
Další pokyny k instalaci Logstash najdete v oficiální dokumentaci k Elastic.
Instalace Kibany
Spuštěním následujících příkazů nainstalujte Kibana:
curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-5.2.0-linux-x86_64.tar.gz tar xzvf kibana-5.2.0-linux-x86_64.tar.gz
Spusťte Kibana pomocí těchto příkazů:
cd kibana-5.2.0-linux-x86_64/ ./bin/kibana
Zobrazte si webové rozhraní Kibana tak, že přejdete na
http://localhost:5601
.V tomto scénáři je
logstash-*
vzor indexu použitý pro protokoly Suricata .Pokud chcete řídicí panel Kibana zobrazit vzdáleně, vytvořte příchozí pravidlo skupiny zabezpečení sítě (NSG), které umožňuje přístup k portu 5601.
Vytvoření řídicího panelu Kibana
Tento článek obsahuje ukázkový řídicí panel pro zobrazení trendů a podrobností v upozorněních. Pokud ho chcete použít:
Stáhněte si soubor řídicího panelu, soubor vizualizace a uložený vyhledávací soubor.
Na kartě Správa Kibana přejděte na Uložené objekty a naimportujte všechny tři soubory. Potom na kartě Řídicí panel můžete otevřít a načíst ukázkový řídicí panel.
Můžete také vytvořit vlastní vizualizace a řídicí panely přizpůsobené metrikám vlastního zájmu. Přečtěte si další informace o vytváření vizualizací Kibany z oficiální dokumentace Kibany.
Vizualizace protokolů upozornění IDS
Ukázkový řídicí panel poskytuje několik vizualizací protokolů upozornění Suricata:
Výstraha podle GeoIP: Mapa, která zobrazuje distribuci výstrah podle země/oblasti původu na základě zeměpisného umístění (určeného IP adresou).
Prvních 10 upozornění: Souhrn 10 nejčastěji aktivovaných výstrah a jejich popisů Když vyberete jednotlivá upozornění, vyfiltruje se řídicí panel na informace, které se týkají konkrétní výstrahy.
Počet upozornění: Celkový počet výstrah, které aktivovala sada pravidel.
Top 20 ScrIP - Alerts, Top 20 DestIP - Alerts, Top 20 SrcPort - Alerts, Top 20 DestPort - Alerts: Pie charts that show the sources and destinations for the top 20 IPps and ports that alertsed on. Můžete filtrovat podle konkrétních IP adres nebo portů a zjistit, kolik a jaké druhy upozornění se aktivují.
Souhrn upozornění: Tabulka, která shrnuje konkrétní podrobnosti jednotlivých výstrah. Tuto tabulku můžete přizpůsobit tak, aby zobrazovala další zajímavé parametry pro každou výstrahu.
Další informace o vytváření vlastních vizualizací a řídicích panelů najdete v oficiální dokumentaci k Kibaně.
Závěr
Kombinací zachytávání paketů ze služby Network Watcher a opensourcových nástrojů IDS, jako je Suricata, můžete provádět detekci narušení sítě pro širokou škálu hrozeb.
Řídicí panely vám pomůžou rychle odhalit trendy a anomálie v síti. Řídicí panely můžete také použít k prozkoumání dat a zjistit původní příčiny výstrah, jako jsou agenti uživatelů se zlými úmysly nebo ohrožené porty. Díky tomuto extrahovanému datu můžete informovaně rozhodnout, jak:
- Reagovat na síť a chránit ji před škodlivými pokusy o vniknutí.
- Vytvořte pravidla, která zabrání budoucím vniknutím do vaší sítě.
Další krok
Zjistěte, jak aktivovat zachytávání paketů na základě upozornění: