Megosztás a következőn keresztül:


Az Azure Web Application Firewall erőforrásnaplói

A Web Application Firewall erőforrásait naplók használatával figyelheti. Mentheti a teljesítményt, a hozzáférést és az egyéb adatokat, vagy felhasználhatja őket egy erőforrásból monitorozási célokra.

Megjegyzés:

Javasoljuk az Azure Az PowerShell modult használni az Azure-val való interakcióhoz. Az első lépésekhez tekintse meg Az Azure PowerShell telepítése témakört. Az Az PowerShell-modulba való migrálásról további információt az Azure PowerShell migrálása az AzureRM-ből az Az-be című témakörben talál.

Diagnosztikai naplók

Az Azure-ban különböző típusú naplókat használhat az alkalmazásátjárók kezeléséhez és hibaelhárításához. Ezen naplók egy része a portálról érhető el. Minden napló kinyerhető az Azure Blob Storage-ból, és különböző eszközökben tekinthető meg, például az Azure Monitor naplóiban, az Excelben és a Power BI-ban. A naplók különböző típusairól az alábbi listából tudhat meg többet:

  • Tevékenységnapló: Az Azure-tevékenységnaplók használatával megtekintheti az Azure-előfizetésbe küldött összes műveletet és azok állapotát. A tevékenységnaplók bejegyzéseit alapértelmezés szerint gyűjti a rendszer, ezeket az Azure Portalon tekintheti meg.
  • Hozzáférési erőforrásnapló: Ezzel a naplóval megtekintheti Application Gateway hozzáférési mintákat, és elemezheti a fontos információkat. Ez magában foglalja a hívó IP-címét, a kért URL-címet, a válasz késleltetését, a visszatérési kódot, valamint a be- és kimenő bájtokat. Ez a napló az egyes kérések egyedi rekordjait tartalmazza, és a kérést feldolgozó egyedi Application Gateway társítja. Az egyedi Application Gateway példányok az instanceId tulajdonság alapján azonosíthatók.
  • Teljesítményerőforrás-napló: Ezzel a naplóval megtekintheti, hogyan teljesítenek Application Gateway példányok. Ez a napló rögzíti az egyes példányok teljesítményadatait, beleértve a kiszolgált kérelmek teljes számát, az átviteli sebességet bájtban, az összes kiszolgált kérést, a sikertelen kérelmek számát, valamint a kifogástalan és nem megfelelő állapotú háttérpéldányok számát. A rendszer 60 másodpercenként gyűjti a teljesítménynaplót. A teljesítménynapló csak a v1 termékváltozathoz érhető el. A v2 termékváltozathoz használja a Metrikák a teljesítményadatokhoz.
  • Tűzfal erőforrásnaplója: Ezzel a naplóval megtekintheti a webalkalmazási tűzfallal konfigurált Application Gateway észlelési vagy megelőzési módjában naplózott kéréseket.

Megjegyzés:

A naplók csak az Azure Resource Manager-alapú üzemi modellben üzembe helyezett erőforrásokhoz érhetők el. A klasszikus üzemi modellben nem használhatók naplók az erőforrásokhoz. A két modell jobb megértéséhez tekintse meg a Resource Manager üzembe helyezésének ismertetése és a klasszikus üzembe helyezésről szóló cikket.

A naplók tárolására három lehetőség közül választhat:

  • Tárfiók: A tárfiókok akkor használhatók a naplókhoz, ha a naplókat hosszabb ideig tárolják, és szükség esetén felülvizsgálják.
  • Eseményközpontok: Az eseményközpontok nagyszerű lehetőséget kínálnak más biztonsági információkkal és eseménykezelési (SIEM) eszközökkel való integrációra, hogy riasztásokat kapjanak az erőforrásokról.
  • Azure Monitor naplók: Azure Monitor naplók az alkalmazás általános valós idejű monitorozására vagy trendek megtekintésére használhatók.

Naplózás engedélyezése a PowerShell-lel

A tevékenységnaplózás automatikusan engedélyezve van minden Resource Manager-erőforráshoz. Engedélyeznie kell a hozzáférés- és teljesítménynaplózást a naplókon keresztül elérhető adatok gyűjtésének megkezdéséhez. A naplózás engedélyezéséhez kövesse az alábbi lépéseket:

  1. Jegyezze fel azon Storage-fiók erőforrás-azonosítóját, ahol a naplóadatokat tárolja. Ez az érték a következő formában jelenik meg: /subscriptions/<subscriptionId>/resourceGroups/<erőforráscsoport neve>/providers/Microsoft.Storage/storageAccounts/<tárfiók neve>. Az előfizetés bármilyen tárfiókját használhatja. Ezeket az információkat az Azure Portalon találhatja meg.

    Portál: tárfiók erőforrás-azonosítója

  2. Jegyezze fel az Application Gateway erőforrás-azonosítóját, amelyhez engedélyezve van a naplózás. Ez az érték a következő formában jelenik meg: /subscriptions/<subscriptionId>/resourceGroups/<erőforráscsoport neve>/providers/Microsoft.Network/applicationGateways/<alkalmazásátjáró neve>. Ezeket az információkat a portálon találhatja meg.

    Portál: Application Gateway erőforrás-azonosítója

  3. Engedélyezze az erőforrás-naplózást a következő PowerShell-parancsmag használatával:

    Set-AzDiagnosticSetting  -ResourceId /subscriptions/<subscriptionId>/resourceGroups/<resource group name>/providers/Microsoft.Network/applicationGateways/<application gateway name> -StorageAccountId /subscriptions/<subscriptionId>/resourceGroups/<resource group name>/providers/Microsoft.Storage/storageAccounts/<storage account name> -Enabled $true     
    

Jótanács

A tevékenységnaplókhoz nincs szükség külön tárfiókra. A Storage hozzáférés- és teljesítménynaplózásra való használata szolgáltatási díjjal jár.

Naplózás engedélyezése az Azure Portalon

  1. Az Azure Portalon keresse meg az erőforrást, és válassza a Diagnosztikai beállítások lehetőséget.

    Az Application Gateway esetében három napló érhető el:

    • Hozzáférési napló
    • Teljesítménynapló
    • Tűzfalnapló
  2. Válassza a Diagnosztikai beállítások megadása lehetőséget.

  3. A Diagnosztikai beállítások lap az erőforrásnaplók beállításait tartalmazza. Ebben a példában a Log Analytics tárolja a naplókat. Az erőforrásnaplók mentéséhez eseményközpontot, tárfiókot vagy partnermegoldást is használhat.

    Képernyőkép a diagnosztikai beállításokról.

  4. Írja be a beállítások nevét, erősítse meg a beállításokat, és válassza a Mentés lehetőséget.

Tevékenységnapló

Az Azure alapértelmezés szerint létrehozza a tevékenységnaplót. A naplókat a rendszer 90 napig megőrzi az Azure-eseménynaplók tárolójában. Ezekről a naplókról az Események és tevékenységnapló megtekintése cikkben olvashat bővebben.

Hozzáférési napló

Az elérési napló csak akkor jön létre, ha engedélyezte azt minden Application Gateway példányon, a korábbi lépésekben leírt módon. Az adatok a naplózás engedélyezésekor megadott tárfiókban vannak tárolva. A Application Gateway minden hozzáférése JSON formátumban van naplózva, ahogy az a v1 alábbi példájában látható:

Érték Leírás
instanceId A kérést kiszolgáló Application Gateway-példány.
ügyfél IP-címe A kérés eredeti IP-címe.
clientPort A kérés eredeti feladóportja.
httpMethod A kérés által használt HTTP-metódus.
requestUri A kapott kérelem URI-ja.
KérésLekérdezés Server-Routed: A háttér-pool példány, amely megkapta a kérést.
X-AzureApplicationGateway-LOG-ID: A kéréshez használt korrelációs azonosító. Használható a háttérkiszolgálók forgalmi problémáinak elhárítására.
SERVER-STATUS: HTTP-válaszkód, amelyet Application Gateway kapott a háttérből.
Felhasználói Ügynök (UserAgent) Az HTTP-kérelem fejlécéből származó felhasználói ügynök.
HTTP-állapot Az ügyfélnek visszaadott HTTP-állapotkód az Application Gateway által.
HTTP-verzió A kérés HTTP-verziója.
FogadottBájtok A fogadott csomagok mérete bájtban.
elküldött byte-ok Az elküldött csomagok mérete bájtban.
eltöltött idő A kérés feldolgozásához és a válasz elküldéséhez szükséges idő (ezredmásodpercben). Ez úgy van kiszámítva, hogy az időtartam megegyezik azzal az időközzel, amely az HTTP-kérés első bájtjának az Application Gateway általi fogadásától a válaszküldési művelet befejezéséig tart. Fontos megjegyezni, hogy az Időalapú mező általában azt az időt tartalmazza, amikor a kérés- és válaszcsomagok a hálózaton keresztül haladnak.
SSL engedélyezve Azt határozza meg, hogy a háttérkészletekkel való kommunikáció TLS/SSL-t használt-e. Az érvényes értékek be- és ki vannak kapcsolva.
állomás Az a gazdagépnév, amellyel a kérést elküldték a háttérkiszolgálónak. Ha a háttérbeli állomásnév felülírásra kerül, ez a név ezt tükrözni fogja.
eredetiHázigazda Az az állomásnév, amellyel a Application Gateway megkapta a kérést az ügyféltől.
{
    "resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/PEERINGTEST/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
    "operationName": "ApplicationGatewayAccess",
    "timestamp": "2017-04-26T19:27:38Z",
    "category": "ApplicationGatewayAccessLog",
    "properties": {
        "instanceId": "ApplicationGatewayRole_IN_0",
        "clientIP": "203.0.113.97",
        "clientPort": 46886,
        "httpMethod": "GET",
        "requestUri": "/phpmyadmin/scripts/setup.php",
        "requestQuery": "X-AzureApplicationGateway-CACHE-HIT=0&SERVER-ROUTED=10.4.0.4&X-AzureApplicationGateway-LOG-ID=aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e&SERVER-STATUS=404",
        "userAgent": "-",
        "httpStatus": 404,
        "httpVersion": "HTTP/1.0",
        "receivedBytes": 65,
        "sentBytes": 553,
        "timeTaken": 205,
        "sslEnabled": "off",
        "host": "www.contoso.com",
        "originalHost": "www.contoso.com"
    }
}

A Application Gateway és a WAF v2 esetében a naplók egy kicsit több információt mutatnak:

Érték Leírás
instanceId A kérést kiszolgáló Application Gateway-példány.
ügyfél IP-címe A kérés eredeti IP-címe.
clientPort A kérés eredeti feladóportja.
httpMethod A kérés által használt HTTP-metódus.
requestUri A kapott kérelem URI-ja.
Felhasználói Ügynök (UserAgent) Az HTTP-kérelem fejlécéből származó felhasználói ügynök.
HTTP-állapot Az ügyfélnek visszaadott HTTP-állapotkód az Application Gateway által.
HTTP-verzió A kérés HTTP-verziója.
FogadottBájtok A fogadott csomagok mérete bájtban.
elküldött byte-ok Az elküldött csomagok mérete bájtban.
eltöltött idő A kérés feldolgozásához és a válasz elküldéséhez szükséges idő (ezredmásodpercben). Ez úgy van kiszámítva, hogy az időtartam megegyezik azzal az időközzel, amely az HTTP-kérés első bájtjának az Application Gateway általi fogadásától a válaszküldési művelet befejezéséig tart. Fontos megjegyezni, hogy az Időalapú mező általában azt az időt tartalmazza, amikor a kérés- és válaszcsomagok a hálózaton keresztül haladnak.
SSL engedélyezve Azt határozza meg, hogy a háttérkészletekkel való kommunikáció TLS-t használt-e. Az érvényes értékek be- és ki vannak kapcsolva.
sslCipher A TLS-kommunikációhoz használt titkosítási csomag (ha a TLS engedélyezve van).
SSL-protokoll TLS protokoll használata (ha a TLS engedélyezve van).
szerver által irányított Az a háttérkiszolgáló, amelybe az Application Gateway átirányítja a kérést.
szerver állapota A háttérkiszolgáló HTTP-állapotkódja.
szerverválasz-késleltetés A háttérkiszolgáló válaszának késése.
állomás A kérés hoszt fejlécében felsorolt cím.
{
    "resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/PEERINGTEST/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
    "operationName": "ApplicationGatewayAccess",
    "time": "2017-04-26T19:27:38Z",
    "category": "ApplicationGatewayAccessLog",
    "properties": {
        "instanceId": "appgw_1",
        "clientIP": "203.0.113.97",
        "clientPort": 46886,
        "httpMethod": "GET",
        "requestUri": "/phpmyadmin/scripts/setup.php",
        "userAgent": "-",
        "httpStatus": 404,
        "httpVersion": "HTTP/1.0",
        "receivedBytes": 65,
        "sentBytes": 553,
        "timeTaken": 205,
        "sslEnabled": "off",
        "sslCipher": "",
        "sslProtocol": "",
        "serverRouted": "104.41.114.59:80",
        "serverStatus": "200",
        "serverResponseLatency": "0.023",
        "host": "www.contoso.com",
    }
}

Teljesítménynapló

A teljesítménynapló csak akkor jön létre, ha minden Application Gateway példányon engedélyezte az előző lépésekben részletezettek szerint. Az adatok a naplózás engedélyezésekor megadott tárfiókban vannak tárolva. A teljesítménynapló adatai 1 perces időközönként jönnek létre. Csak a v1 termékváltozathoz érhető el. A v2 termékváltozathoz használja a Metrikák a teljesítményadatokhoz. A rendszer a következő adatokat naplózza:

Érték Leírás
instanceId Application Gateway-példány, amelyhez teljesítményadatok jönnek létre. Több példányos alkalmazás átjáró esetén minden példányhoz tartozik egy sor.
healthyHostCount Az egészséges gazdagépek száma a háttérrendszerben.
unHealthyHostCount A háttérkészletben lévő nem megfelelő állapotú gazdagépek száma.
kérésszám A kézbesített kérelmek száma.
késés A példánytól a kéréseket kiszolgáló háttérrendszerig érkező kérések átlagos késése (ezredmásodpercben).
sikertelenKérésSzám Sikertelen kérelmek száma.
átviteli sebesség Átlagos átviteli sebesség az utolsó napló óta, másodpercenként bájtban mérve.
{
    "resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
    "operationName": "ApplicationGatewayPerformance",
    "time": "2016-04-09T00:00:00Z",
    "category": "ApplicationGatewayPerformanceLog",
    "properties":
    {
        "instanceId":"ApplicationGatewayRole_IN_1",
        "healthyHostCount":"4",
        "unHealthyHostCount":"0",
        "requestCount":"185",
        "latency":"0",
        "failedRequestCount":"0",
        "throughput":"119427"
    }
}

Megjegyzés:

A késést a HTTP-kérés első bájtjának fogadásától a HTTP-válasz utolsó bájtjának elküldéséig számítja ki a rendszer. Ez a Application Gateway feldolgozási idő és a háttér hálózati költsége, valamint a háttér kérésének feldolgozásához szükséges idő összege.

Tűzfalnapló

A tűzfalnapló csak akkor jön létre, ha az alkalmazási átjáró esetében engedélyezte, ahogyan az előző lépések során részleteztük. Ehhez a naplóhoz szükséges, hogy a webalkalmazási tűzfal egy alkalmazási átjárón legyen konfigurálva. Az adatok a naplózás engedélyezésekor megadott célhelyen vannak tárolva. A rendszer a következő adatokat naplózza:

Application Gateway

Naplóformátum

Érték Leírás
instanceId Application Gateway-példány, amely számára tűzfaladatok kerülnek létrehozásra. Több példányos alkalmazás átjáró esetén minden példányhoz tartozik egy sor.
clientIp A kérés eredeti IP-címe.
requestUri A fogadott kérelem URL-címe.
szabálykészlettípus Szabálykészlet típusa. Az elérhető érték az OWASP.
ruleSetVersion A szabálykészlet használt verziója. A rendelkezésre álló értékek a 2.2.9 és a 3.0.
szabály azonosítója Az eseményindító esemény szabályazonosítója.
üzenet Felhasználóbarát üzenet az eseményindító eseményhez. További részleteket a részletek szakaszban talál.
művelet Házirend mód: Észlelés
- észlelve – Ez az egyetlen művelet a WAF esetében észlelési módban. Egy adott szabály összes feltétele megfelelt, és a kérést naplózta, majd átadta a hátrérrendszernek.

Házirend mód: Megelőzés
- Engedélyezve – Egy adott szabály összes feltétele megfelelt, és a kérés átadva lett a hátrérrendszernek.
- Letiltva – Egy adott szabály összes feltétele megfelelt, és a kérés le lett tiltva.
- Egyeztetés – Egy adott szabályhoz egy/több feltétel teljesült, de a kérelem letiltására vagy átadására vonatkozó döntés további értékelést igényel, és a végső anomáliapontozási szabály alapján lesz kiértékelve.

Házirend mód: JavaScript kihívás
- JSChallengeIssued: A kihívási engedély hiánya/érvénytelensége és a válasz hiánya miatt került kiadásra.

Ez a napló akkor jön létre, amikor egy ügyfél első alkalommal kéri egy webalkalmazás hozzáférését, és korábban még nem volt hitelesítési kihívása. Ez az ügyfél megkapja a JS-feladatoldalt, és folytatja a JS-feladat kiszámítását. Sikeres számítás esetén az ügyfél megkapja az érvényességi cookie-t.

- JSChallengePass: Érvényes kihívásra adott válasz miatt sikeres.

Ez a napló akkor jön létre, amikor egy ügyfél megoldja a JS-feladatot, és a megfelelő választ adja vissza a kérésnek. Ebben az esetben az Azure WAF ellenőrzi a cookie-t, és folytatja a fennmaradó szabályok feldolgozását anélkül, hogy újabb JS-kihívást hoz létre.

- JSChallengeValid: Érvényes kihívás miatt naplózva/átmenő

Ez a napló akkor jön létre, ha egy ügyfél korábban megoldott egy feladatot. Ebben az esetben az Azure WAF naplózza a kérést, és folytatja a fennmaradó szabályok feldolgozását.

- JSChallengeBlock: Blokkolva

Ez a napló akkor jön létre, ha egy JS-feladat számítása meghiúsul.
hely Az a webhely, amelyhez a naplót létrehozták. Jelenleg csak a Globális lista jelenik meg, mert a szabályok globálisak.
Részletek A kiváltó esemény részletei.
részletek.üzenet A szabály leírása.
részletadatok A kérelemben talált konkrét adatok, amelyek megfelelnek a szabálynak.
adatok.fájl A szabályt tartalmazó konfigurációs fájlt.
részletek.sor Az eseményt aktiváló konfigurációs fájl sorszáma.
állomásnév Az Application Gateway állomásneve vagy IP-címe.
transactionId Egyedi azonosító egy adott tranzakcióhoz, amely segít az ugyanazon a kérésen belül előforduló több szabálysértés csoportosításában.
policyId Az Alkalmazásátjáróhoz, figyelőhöz vagy elérési úthoz társított tűzfal-szabályzat egyedi azonosítója.
szabályzati hatókör A szabályzat helye – az értékek lehetnek "Globális", "Figyelő" vagy "Hely".
politikaHatókörNeve Annak az objektumnak a neve, amelyre a szabályzatot alkalmazzák.

példa

{
  "resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
  "operationName": "ApplicationGatewayFirewall",
  "time": "2017-03-20T15:52:09.1494499Z",
  "category": "ApplicationGatewayFirewallLog",
  "properties": {
      "instanceId": "ApplicationGatewayRole_IN_0",
      "clientIp": "203.0.113.147",
      "requestUri": "/",
      "ruleSetType": "OWASP",
      "ruleSetVersion": "3.0",
      "ruleId": "920350",
      "ruleGroup": "920-PROTOCOL-ENFORCEMENT",
      "message": "Host header is a numeric IP address",
      "action": "Matched",
      "site": "Global",
      "details": {
        "message": "Warning. Pattern match \"^[\\\\d.:]+$\" at REQUEST_HEADERS:Host ....",
        "data": "127.0.0.1",
        "file": "rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf",
        "line": "791"
      },
      "hostname": "127.0.0.1",
      "transactionId": "16861477007022634343",
      "policyId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/drewRG/providers/Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies/perListener",
      "policyScope": "Listener",
      "policyScopeName": "httpListener1"
    }
  }
}

A tevékenységnapló megtekintése és elemzése

A tevékenységnaplók adatainak megtekintéséhez és elemzéséhez használja az alábbi módszerek bármelyikét:

A hozzáférési, teljesítmény- és tűzfalnaplók megtekintése és elemzése

Az Azure Monitor-naplók összegyűjthetik a számláló- és eseménynapló-fájlokat a Blob Storage-fiókból. Vizualizációkat és hatékony keresési lehetőségeket tartalmaz a naplók elemzéséhez.

A Storage-fiókjához is csatlakozhat, és lekérheti a hozzáférés- és teljesítménynaplók JSON-naplóbejegyzéseit. A letöltött JSON-fájlokat átalakíthatja CSV-fájlokká, és ezeket megtekintheti az Excelben, Power BI-ban vagy bármely más adatvizualizációs eszközben.

Jótanács

Ha ismeri a Visual Studiót, illetve C#-állandók és -változók módosításának alapfogalmait, használja a GitHubról elérhető naplókonvertáló eszközöket.

Hozzáférési naplók elemzése a GoAccess segítségével

Közzétettünk egy Resource Manager sablont, amely telepíti és futtatja a népszerű GoAccess naplóelemzőt Application Gateway hozzáférési naplókhoz. A GoAccess értékes HTTP-forgalmi statisztikákat biztosít, például egyedi látogatókat, kért fájlokat, gazdagépeket, operációs rendszereket, böngészőket, HTTP-állapotkódokat és még sok mást. További részletekért tekintse meg a Readme fájlt a Resource Manager sablonmappában a GitHubon.

Következő lépések