Hálózati behatolásészlelés végrehajtása az Azure Network Watcher és a nyílt forráskódú eszközök használatával
A csomagrögzítések kulcsfontosságú összetevők a hálózati behatolásészlelő rendszerek (IDS-ek) implementálásához és a hálózati biztonság monitorozásához. Számos nyílt forráskódú IDS-eszköz dolgozza fel a csomagrögzítéseket, és megkeresi a lehetséges hálózati behatolások és rosszindulatú tevékenységek aláírását. Az Azure Network Watcher által biztosított csomagrögzítések használatával elemezheti a hálózatot a káros behatolások és biztonsági rések miatt.
Ilyen nyílt forráskódú eszköz a Suricata, egy olyan IDS-motor, amely szabálykészletekkel figyeli a hálózati forgalmat, és riasztásokat aktivál, amikor gyanús események történnek. A Suricata többszálú motort kínál a hálózati forgalom elemzéséhez, nagyobb sebességgel és hatékonysággal. A Suricata-ról és képességeiről további információt a Suricata webhelyén talál.
Eset
Ez a cikk bemutatja, hogyan állíthatja be a környezetet a hálózati behatolás észlelésére a Network Watcher, Suricata és az Elastic Stack használatával.
A Network Watcher csomagrögzítéseket biztosít a hálózati behatolás észleléséhez. A Suricata feldolgozza a csomagrögzítéseket, és riasztásokat indít el a szabálykészletének megfelelő csomagok alapján. A Suricata ezeket a riasztásokat egy naplófájlban tárolja a helyi gépen.
Az Elastic Stack használatával indexelheti a Suricata által létrehozott naplókat, majd felhasználhatja őket egy Kibana-irányítópult létrehozásához. Az irányítópult vizuálisan ábrázolja a naplókat, és lehetővé teszi a lehetséges hálózati biztonsági rések gyors elemzését.
Mindkét nyílt forráskódú eszközt beállíthatja egy Azure-beli virtuális gépen (VM), így ezt az elemzést saját Azure-hálózati környezetében is elvégezheti.
Suricata telepítése
Futtassa a következő parancsokat a virtuális gép parancssori terminálján:
sudo add-apt-repository ppa:oisf/suricata-stable sudo apt-get update sudo apt-get install suricata
A telepítés ellenőrzéséhez futtassa a parancsot
suricata -h
a parancsok teljes listájának megtekintéséhez.
További telepítési módszerekért tekintse meg a Suricata telepítési rövid útmutatóját.
Az újonnan megjelenő fenyegetések szabálykészletének letöltése
Ebben a szakaszban nincs semmilyen szabálya Suricata futtatásához. Saját szabályokat hozhat létre, ha a hálózatra vonatkozó konkrét fenyegetéseket szeretne észlelni. Különböző szolgáltatók által fejlesztett szabálykészleteket is használhat, például a Feltörekvő fenyegetések vagy a Snort Talos-szabályai. Ebben a cikkben a szabadon elérhető Új fenyegetések szabálykészletet használja.
Töltse le a szabálykészletet, és másolja a könyvtárba:
wget https://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz
tar zxf emerging.rules.tar.gz
sudo cp -r rules /etc/suricata/
Csomagrögzítések feldolgozása Suricata használatával
Ha a Suricata használatával szeretné feldolgozni a csomagrögzítéseket, futtassa a következő parancsot:
sudo suricata -c /etc/suricata/suricata.yaml -r <location_of_pcapfile>
Az eredményként kapott riasztások ellenőrzéséhez olvassa el a fast.log fájlt:
tail -f /var/log/suricata/fast.log
Az Elastic Stack beállítása
A Suricata által előállított naplók értékes információkat tartalmaznak arról, hogy mi történik a hálózaton, de ezek a naplófájlok nem a legkönnyebben olvashatók és értelmezhetők. A Suricata és az Elastic Stack összekapcsolásával létrehozhat egy Kibana-irányítópultot a naplók alapján történő kereséshez, gráfozáshoz, elemzéshez és elemzéshez.
Az Elasticsearch telepítése
Az Elastic Stack 5.0-s és újabb verziójához Java 8 szükséges. Futtassa a parancsot
java -version
a verzió ellenőrzéséhez. Ha nincs telepítve a Java, tekintse meg az Azure által támogatott Java fejlesztői készletek dokumentációját.Töltse le a rendszer megfelelő bináris csomagját:
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
Az Elastic weblapján további telepítési módszereket is találhat az Elasticsearch telepítéséhez.
Ellenőrizze, hogy az Elasticsearch fut-e a következő paranccsal:
curl http://127.0.0.1:9200
Az alábbi példához hasonló választ kell kapnia:
{ "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" }
Az Elasticsearch telepítésével kapcsolatos további utasításokért tekintse meg az Elastic webhelyet a telepítéssel kapcsolatban.
A Logstash telepítése
Telepítse a Logstash-t a következő parancsok futtatásával:
curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-5.2.0.deb sudo dpkg -i logstash-5.2.0.deb
Konfigurálja a Logstash-t a eve.json fájl kimenetéből való olvasásra. Hozzon létre egy logstash.conf fájlt a következő paranccsal:
sudo touch /etc/logstash/conf.d/logstash.conf
Adja hozzá a következő tartalmat a fájlhoz. Győződjön meg arról, hogy a eve.json fájl elérési útja helyes.
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" } }
Adja meg a megfelelő engedélyeket a eve.json fájlhoz, hogy a Logstash betölthesse a fájlt:
sudo chmod 775 /var/log/suricata/eve.json
Indítsa el a Logstash parancsot a következő paranccsal:
sudo /etc/init.d/logstash start
A Logstash telepítésével kapcsolatos további utasításokért tekintse meg a hivatalos Elastic-dokumentációt.
A Kibana telepítése
Futtassa a következő parancsokat a Kibana telepítéséhez:
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
Futtassa a Kibana-t az alábbi parancsokkal:
cd kibana-5.2.0-linux-x86_64/ ./bin/kibana
Tekintse meg a Kibana webes felületét a következő lépéssel
http://localhost:5601
: .Ebben a forgatókönyvben a Suricata-naplókhoz használt indexminta a .
logstash-*
Ha távolról szeretné megtekinteni a Kibana-irányítópultot, hozzon létre egy bejövő hálózati biztonsági csoport (NSG) szabályt, amely lehetővé teszi az 5601-s port elérését.
Kibana-irányítópult létrehozása
Ez a cikk egy minta irányítópultot biztosít a riasztások trendjeinek és részleteinek megtekintéséhez. A használatához:
Töltse le az irányítópultfájlt, a vizualizációs fájlt és a mentett keresési fájlt.
A Kibana Felügyeleti lapján lépjen a Mentett objektumok lapra, és importálja mind a három fájlt. Ezután az Irányítópult lapon megnyithatja és betöltheti a minta irányítópultot.
Saját vizualizációkat és irányítópultokat is létrehozhat, amelyek saját érdeklődési körű metrikákhoz igazodnak. További információ a Kibana vizualizációinak létrehozásáról a Kibana hivatalos dokumentációjából.
IDS-riasztási naplók vizualizációja
A minta irányítópult a Suricata riasztási naplóinak számos vizualizációját tartalmazza:
GeoIP által készített riasztás: Térkép, amely a riasztások földrajzi hely (IP-cím alapján meghatározott) alapján történő eloszlását mutatja be a származási ország/régió szerint.
A 10 leggyakoribb riasztás: A 10 leggyakrabban aktivált riasztás és azok leírása. Az egyes riasztások kiválasztása az adott riasztásra vonatkozó információkra szűri az irányítópultot.
Riasztások száma: A szabálykészlet által aktivált riasztások teljes száma.
Top 20 ScrIP – Riasztások, Top 20 DestIP – Riasztások, Top 20 SrcPort – Riasztások, Top 20 DestPort – Riasztások: Kördiagramok, amelyek az első 20 IP-cím és port forrásait és célhelyeit jelenítik meg, amelyeken a riasztások aktiválódtak. Az adott IP-címekre vagy portokra szűrve megtekintheti, hogy hány és milyen típusú riasztások aktiválódnak.
Riasztás összefoglalása: Az egyes riasztások konkrét részleteit összegző táblázat. Ezt a táblát testreszabhatja úgy, hogy az egyes riasztások szempontjából érdekes egyéb paramétereket jelenítsen meg.
Az egyéni vizualizációk és irányítópultok létrehozásáról további információt a Kibana hivatalos dokumentációjában talál.
Összegzés
A Network Watcher csomagrögzítéseinek és a nyílt forráskódú IDS-eszközöknek, például a Suricata-nak a kombinálásával számos fenyegetés esetén végezhet hálózati behatolásészlelést.
Az irányítópultok segítségével gyorsan észreveheti a hálózat trendjeit és rendellenességeit. Irányítópultokkal is megvizsgálhatja az adatokat, hogy felderítse a riasztások alapvető okait, például a rosszindulatú felhasználói ügynököket vagy a sebezhető portokat. Ezzel a kinyert adatokkal megalapozott döntéseket hozhat a következőkkel kapcsolatban:
- Reagáljon a hálózatra, és védje meg a kártékony behatolási kísérleteket.
- Hozzon létre szabályokat a hálózatba történő jövőbeli behatolás megakadályozása érdekében.
Következő lépés
Megtudhatja, hogyan aktiválhat csomagrögzítéseket riasztások alapján: