Sdílet prostřednictvím


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ě.

Diagram znázorňující jednoduchý scénář webové aplikace

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

  1. 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
    
  2. 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

  1. 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.

  2. 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.

  3. 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

  1. 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
    
  2. 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
    
  3. 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"
    }
    }
    
  4. Udělte souboru eve.json správná oprávnění, aby logstash mohl ingestovat soubor:

    sudo chmod 775 /var/log/suricata/eve.json
    
  5. 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

  1. 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
    
  2. Spusťte Kibana pomocí těchto příkazů:

    cd kibana-5.2.0-linux-x86_64/
    ./bin/kibana
    
  3. 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 .

  4. 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:

  1. Stáhněte si soubor řídicího panelu, soubor vizualizace a uložený vyhledávací soubor.

  2. 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.

Snímek obrazovky znázorňující řídicí panel 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).

    Snímek obrazovky znázorňující mapu pro upozornění na geografickou IP adresu

  • 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.

    Snímek obrazovky znázorňující nejčastěji aktivovaná upozornění

  • Počet upozornění: Celkový počet výstrah, které aktivovala sada pravidel.

    Snímek obrazovky ukazuje počet upozornění.

  • 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í.

    Snímek obrazovky znázorňující výsečové grafy s 20 nejlepšími IP adresami a porty aktivovanými upozorněními

  • 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.

    Snímek obrazovky zobrazuje souhrnnou tabulku s podrobnostmi o jednotlivých upozorněních.

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í: