Hálózati biztonsági csoport folyamatnaplóinak kezelése és elemzése az Azure-ban a Network Watcher és a Graylog használatával

Figyelemfelhívás

Ez a cikk a CentOS-ra, egy olyan Linux-disztribúcióra hivatkozik, amely közel áll az élettartam (EOL) állapotához. Ennek megfelelően fontolja meg a használatot és a tervezést. További információ: CentOS End Of Life útmutató.

A hálózati biztonsági csoport folyamatnaplói olyan információkat tartalmaznak, amelyek segítségével megismerheti az Azure hálózati adapterek bejövő és kimenő IP-forgalmát. A folyamatnaplók hálózati biztonsági csoportonkénti szabály alapján jelenítik meg a kimenő és bejövő folyamatokat, a folyamat által érintett hálózati adaptert, a folyamatról 5 rekordnyi információt (forrás/cél IP-cím, forrás/célport, protokoll), valamint hogy a forgalom engedélyezve vagy megtagadva volt-e.

A hálózatban számos olyan hálózati biztonsági csoport lehet, amelyeken engedélyezve van a folyamatnaplózás. Számos, a folyamatnaplózást engedélyező hálózati biztonsági csoport nehézkessé teheti a naplók elemzését és elemzését. Ez a cikk megoldást nyújt a hálózati biztonsági csoportok folyamatnaplóinak központi kezelésére a Graylog, egy nyílt forráskód naplókezelési és -elemző eszköz, valamint a Logstash, egy nyílt forráskód kiszolgálóoldali adatfeldolgozási folyamat használatával.

Figyelmeztetés

Az alábbi lépések a folyamatnaplók 1- es verziójával működnek. További információ: Bevezetés a hálózati biztonsági csoportok folyamatnaplózásába. Az alábbi utasítások módosítás nélkül nem működnek a naplófájlok 2. verziójával.

Eset

A hálózati biztonsági csoport folyamatnaplói engedélyezve vannak a Network Watcher használatával. A folyamatnaplók befolynak az Azure Blob Storage-ba. A Logstash beépülő modul a blobtárolóból származó folyamatnaplók csatlakoztatására és feldolgozására szolgál, és elküldi őket a Graylognak. Miután a folyamatnaplókat a Graylog tárolja, elemezhetők és megjeleníthetők testreszabott irányítópultokon.

Graylog-munkafolyamat

A telepítés lépései

Hálózati biztonsági csoportok folyamatnaplózásának engedélyezése

Ebben a forgatókönyvben engedélyeznie kell a hálózati biztonsági csoportok folyamatnaplózását a fiók legalább egy hálózati biztonsági csoportján. A hálózati biztonsági csoportok folyamatnaplóinak engedélyezésével kapcsolatos utasításokért tekintse meg a következő cikket a hálózati biztonsági csoportok folyamatnaplózásának bemutatása című cikkben.

A Graylog beállítása

Ebben a példában a Graylog és a Logstash is egy Azure-ban üzembe helyezett Ubuntu-kiszolgálón van konfigurálva.

Ez a példa a minimális Graylog-beállítást (azaz egy Graylog egyetlen példányát) használja, de a Graylog úgy is létrehozható, hogy a rendszertől és az éles környezettől függően skálázza az erőforrásokat. Az architekturális szempontokról vagy a részletes architekturális útmutatóról további információt a Graylog dokumentációjában és az architekturális útmutatóban talál.

A Graylog számos módon telepíthető a platformtól és a beállításoktól függően. A lehetséges telepítési módszerek teljes listáját a Graylog hivatalos dokumentációjában találja. A Graylog kiszolgálóalkalmazás Linux-disztribúciókon fut, és az alábbi előfeltételekkel rendelkezik:

A Logstash telepítése

A Logstash a JSON formátumú folyamatnaplók folyamatszintre való simítására szolgál. A folyamatnaplók összesimítása megkönnyíti a naplók rendszerezését és keresését a Graylogban. A Logstash Ubuntu-ban való telepítéséhez az alábbi utasítások szolgálnak. A csomag RHEL/CentOS rendszerben való telepítésével kapcsolatos utasításokért tekintse meg a Csomagtárházakból való telepítést ismertető cikket – yum cikket.

  1. A Logstash telepítéséhez futtassa a következő parancsokat:

    wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic-keyring.gpg
    sudo apt-get install apt-transport-https
    echo "deb [signed-by=/usr/share/keyrings/elastic-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list
    sudo apt-get update && sudo apt-get install logstash
    
  2. Konfigurálja a Logstashet a folyamatnaplók elemzéséhez és a Graylogba való elküldéséhez. Hozzon létre egy Logstash.conf fájlt:

    sudo touch /etc/logstash/conf.d/logstash.conf
    
  3. Adja hozzá a következő tartalmat a fájlhoz. Módosítsa a storage_account_name, storage_access_keyés container az értékeket a tárfiók adatainak megfelelően:

     input {
         azureblob
         {
             storage_account_name => "mystorageaccount"
             storage_access_key => "NrUZmx7pJSKaRJzvQbeiZWi5nBRWOTr7Wwr9DrvK7YtDBrADYxT1y0oEExtSlkDnGRt7qcRiZzEBCCyRYND8SxSt"
             container => "insights-logs-networksecuritygroupflowevent"
             registry_create_policy => "start_over"
             codec => "json"
             file_head_bytes => 21
             file_tail_bytes => 9
             # Possible options: `do_not_break`, `with_head_tail`, `without_head_tail`
             break_json_down_policy  => 'with_head_tail'
             break_json_batch_count => 2
             interval => 5
         }
     }
    
     filter {
         split { field => "[records]" }
         split { field => "[records][properties][flows]"}
         split { field => "[records][properties][flows][flows]"}
         split { field => "[records][properties][flows][flows][flowTuples]"
     }
    
      mutate {
         split => { "[records][resourceId]" => "/"}
         add_field =>{
                     "Subscription" => "%{[records][resourceId][2]}"
                     "ResourceGroup" => "%{[records][resourceId][4]}"
                     "NetworkSecurityGroup" => "%{[records][resourceId][8]}"
         }
         convert => {"Subscription" => "string"}
         convert => {"ResourceGroup" => "string"}
         convert => {"NetworkSecurityGroup" => "string"}
         split => { "[records][properties][flows][flows][flowTuples]" => ","}
         add_field => {
                     "unixtimestamp" => "%{[records][properties][flows][flows][flowTuples][0]}"
                     "srcIp" => "%{[records][properties][flows][flows][flowTuples][1]}"
                     "destIp" => "%{[records][properties][flows][flows][flowTuples][2]}"
                     "srcPort" => "%{[records][properties][flows][flows][flowTuples][3]}"
                     "destPort" => "%{[records][properties][flows][flows][flowTuples][4]}"
                     "protocol" => "%{[records][properties][flows][flows][flowTuples][5]}"
                     "trafficflow" => "%{[records][properties][flows][flows][flowTuples][6]}"
                     "traffic" => "%{[records][properties][flows][flows][flowTuples][7]}"
         }
         add_field => {
                     "time" => "%{[records][time]}"
                     "systemId" => "%{[records][systemId]}"
                     "category" => "%{[records][category]}"
                     "resourceId" => "%{[records][resourceId]}"
                     "operationName" => "%{[records][operationName}}"
                     "Version" => "%{[records][properties][Version}}"
                     "rule" => "%{[records][properties][flows][rule]}"
                     "mac" => "%{[records][properties][flows][flows][mac]}"
         }
         convert => {"unixtimestamp" => "integer"}
         convert => {"srcPort" => "integer"}
         convert => {"destPort" => "integer"}
         add_field => { "message" => "%{Message}" }
     }
         date {
             match => ["unixtimestamp" , "UNIX"]
         }
     }
     output {
         stdout { codec => rubydebug }
         udp {
             host => "127.0.0.1"
             port => 12201
         }
     }
    

    A megadott Logstash konfigurációs fájl három részből áll: a bemenetből, a szűrőből és a kimenetből. A bemeneti szakasz kijelöli a Logstash által feldolgozandó naplók bemeneti forrását – ebben az esetben egy Azure-blog bemeneti beépülő modult fog használni (a következő lépésekben telepítve), amely lehetővé teszi a hálózati biztonsági csoport folyamatnaplójának blobtárolóban tárolt JSON-fájljainak elérését.

A szűrőszakasz ezután simítja az egyes folyamatnapló-fájlokat, hogy az egyes folyamatok és a hozzá tartozó tulajdonságok külön Logstash-eseménysé alakulnak.

Végül a kimeneti szakasz minden Logstash-eseményt továbbít a Graylog-kiszolgálónak. Az igényeinek megfelelően szükség szerint módosítsa a Logstash konfigurációs fájlját.

Feljegyzés

Az előző konfigurációs fájl feltételezi, hogy a Graylog-kiszolgáló a 127.0.0.1 helyi gazdagép-visszacsatolási IP-címen lett konfigurálva. Ha nem, mindenképpen módosítsa a kimeneti szakaszban lévő gazdagépparamétert a megfelelő IP-címre.

A Logstash telepítésével kapcsolatos további utasításokért tekintse meg a Logstash dokumentációját.

Az Azure Blob Storage Logstash bemeneti beépülő moduljának telepítése

A Logstash beépülő modul lehetővé teszi a folyamatnaplók közvetlen elérését a kijelölt Blob Storage-fiókból. A beépülő modul telepítéséhez futtassa az alábbi parancsot az alapértelmezett Logstash telepítési könyvtárból (ebben az esetben /usr/share/logstash/bin):

cd /usr/share/logstash/bin
sudo ./logstash-plugin install logstash-input-azureblob

A beépülő modulról további információt a dokumentációban talál.

Kapcsolat beállítása a Logstash és a Graylog között

Most, hogy kapcsolatot létesített a folyamatnaplókkal a Logstash használatával, és beállította a Graylog-kiszolgálót, konfigurálnia kell a Graylogot a bejövő naplófájlok elfogadásához.

  1. Keresse meg a Graylog Server webes felületét a hozzá konfigurált URL-cím használatával. A felületet úgy érheti el, hogy a böngészőt a http://<graylog-server-ip>:9000/

  2. A konfigurációs lapra való navigáláshoz válassza a jobb felső navigációs sáv Rendszer legördülő menüjét, majd kattintson a Bemenetek elemre. Másik lehetőségként lépjen a http://<graylog-server-ip>:9000/system/inputs

    Első lépések

  3. Az új bemenet elindításához válassza a GELF UDP lehetőséget a Bemenet kiválasztása legördülő menüben, majd töltse ki az űrlapot. A GELF a Graylog Extended Log Format rövidítése. A GELF formátumot a Graylog fejlesztette ki. Az előnyeiről további információt a Graylog dokumentációjában talál.

    Győződjön meg arról, hogy a bemenetet ahhoz az IP-címhez köti, amelyen a Graylog-kiszolgálót konfigurálta. Az IP-címnek meg kell egyeznie a Logstash konfigurációs fájl UDP-kimenetének gazdagépmezőjének . Az alapértelmezett portnak 12201-nek kell lennie. Győződjön meg arról, hogy a port megfelel a Logstash config fájlban kijelölt UDP-kimenet portmezőjének .

    Képernyőkép a Graylog-bemenetekről, valamint a bemenetek indításának és keresésének lehetőségeiről.

    Miután elindította a bemenetet, látnia kell, hogy az megjelenik a Helyi bemenetek szakaszban, az alábbi képen látható módon:

    Képernyőkép az elindított bemenetet tartalmazó Helyi bemenetek szakaszról.

    A Graylog-üzenetbemenetekkel kapcsolatos további információkért tekintse meg a dokumentációt.

  4. A konfigurációk elvégzése után elindíthatja a Logstash-et a folyamatnaplókban való olvasás megkezdéséhez a következő paranccsal: sudo systemctl start logstash.service.

Keresés a Graylog-üzenetekben

Miután engedélyezte, hogy a Graylog-kiszolgáló összegyűjtse az üzeneteket, kereshet az üzenetek között. A Graylog-kiszolgálónak küldött üzenetek ellenőrzéséhez a Bemenetek konfigurációs oldaláról kattintson a létrehozott GELF UDP-bemenet "Fogadott üzenetek megjelenítése" gombjára. A rendszer az alábbi képhez hasonló képernyőre irányítja:

Képernyőkép a keresési eredményt, hisztogramot és üzeneteket megjelenítő Graylog-kiszolgálóról.

A kék "%{Message}" hivatkozásra kattintva kibontja az egyes üzeneteket az egyes folyamatok paramétereinek megjelenítéséhez, ahogyan az az alábbi képen látható:

Képernyőkép a Graylog-kiszolgáló üzeneteinek részleteiről.

Alapértelmezés szerint az összes üzenetmező szerepel a keresésben, ha nem jelöl ki egy adott üzenetmezőt. Ha konkrét üzeneteket szeretne keresni (például egy adott forrás IP-címről származó folyamat-folyam-ra), használhatja a Graylog keresési lekérdezési nyelvét a dokumentált módon

Hálózati biztonsági csoport folyamatnaplóinak elemzése a Graylog használatával

Most, hogy beállította a Graylogot, használhatja annak néhány funkcióját a folyamatnapló adatainak jobb megértéséhez. Az egyik ilyen módszer az irányítópultok használata az adatok adott nézeteinek létrehozásához.

Irányítópult létrehozása

  1. A felső navigációs sávon válassza az Irányítópultok lehetőséget, vagy lépjen ahttp://<graylog-server-ip>:9000/dashboards/

  2. Ezután kattintson a zöld Irányítópult létrehozása gombra, és töltse ki a rövid űrlapot az irányítópult címével és leírásával. Az új irányítópult létrehozásához nyomja le a Mentés gombot. Az alábbi képhez hasonló irányítópult jelenik meg:

    Képernyőkép a Graylog-kiszolgáló irányítópultjairól, valamint az irányítópultok létrehozásának és szerkesztésének lehetőségeiről.

Widgetek hozzáadása

Az irányítópult címére kattintva megtekintheti, de jelenleg üres, mivel nem adtunk hozzá widgeteket. Az irányítópulthoz egyszerűen és hasznosan felvehető típus widgetek a Gyors értékek diagramok, amelyek a kijelölt mező értékeinek listáját és azok eloszlását jelenítik meg.

  1. Lépjen vissza a folyamatnaplókat fogadó UDP-bemenet keresési eredményeihez a felső navigációs sávOn a Keresés gombra kattintva.

  2. A Keresés eredménypanelen, a képernyő bal oldalán keresse meg a Mezők lapot, amely felsorolja az egyes bejövő folyamatábra-üzenetek különböző mezőit.

  3. Válassza ki a vizualizálandó kívánt paramétert (ebben a példában az IP-forrás van kiválasztva). A lehetséges widgetek listájának megjelenítéséhez kattintson a mező bal oldalán található kék legördülő nyílra, majd válassza a Gyors értékek lehetőséget a widget létrehozásához. A következő képhez hasonlót kell látnia:

    Forrás IP-címe

  4. Innen kiválaszthatja a widget jobb felső sarkában található Hozzáadás az irányítópulthoz gombot, és kiválaszthatja a hozzáadni kívánt irányítópultot.

  5. Lépjen vissza az irányítópultra az imént hozzáadott widget megtekintéséhez.

    Számos más widgetet, például hisztogramokat és darabszámokat is hozzáadhat az irányítópulthoz, így nyomon követheti a fontos metrikákat, például a következő képen látható minta irányítópultot:

    Folyamatnaplók irányítópultja

    Az irányítópultokkal és más típusú widgetekkel kapcsolatos további magyarázatért tekintse meg a Graylog dokumentációját.

A Network Watcher és a Graylog integrálásával mostantól kényelmes és központosított módon kezelheti és vizualizálhatja a hálózati biztonsági csoportok folyamatnaplóit. A Graylog számos más hatékony funkcióval rendelkezik, például streamekkel és riasztásokkal, amelyek a folyamatnaplók további kezelésére és a hálózati forgalom jobb megértésére is használhatók. Most, hogy beállította és csatlakoztatta a Graylogot az Azure-hoz, nyugodtan fedezze fel az általa kínált egyéb funkciókat.

Következő lépések

Megtudhatja, hogyan jelenítheti meg a hálózati biztonsági csoport folyamatnaplóit a Power BI-jal a hálózati biztonsági csoportok folyamatnaplóinak vizualizációjával a Power BI-ban.