Megosztás:


Az Azure Web Application Firewall monitorozása és naplózása

Az Azure Web Application Firewall az Azure Front Dooron átfogó naplózást és telemetriát biztosít, amely segít megérteni a webalkalmazási tűzfal (WAF) működését és a szükséges műveleteket.

Az Azure Monitorral integrálva van az Azure Front Door WAF-naplója. Az Azure Monitor lehetővé teszi a diagnosztikai adatok nyomon követését, beleértve a WAF-riasztásokat és a naplókat. A WAF-monitorozást az Azure portálon az Azure Front Door-erőforrásban, a diagnosztika lapon, infrastruktúra mint kód megközelítéssel, vagy közvetlenül az Azure Monitor használatával konfigurálhatja.

Mérőszámok

Az Azure Front Door automatikusan rögzíti a metrikákat, hogy segítsen megérteni a WAF viselkedését.

A WAF metrikáinak elérése:

  1. Jelentkezzen be az Azure Portalra , és nyissa meg az Azure Front Door-profilját.
  2. A Figyelés alatti bal szélső panelen válassza a Metrikák lapot.
  3. Adja hozzá a webalkalmazási tűzfal kéréseinek száma metrikát a WAF-szabályoknak megfelelő kérések számának nyomon követéséhez.

Egyéni szűrőket művelettípusok és szabálynevek alapján hozhat létre. A metrikák közé tartoznak azok a kérések, amelyek megszüntető műveleteket tartalmaznak, például Block és Allow olyan kéréseket is, amelyeknél a WAF nem hajtott végre műveletet. Mivel egyetlen kérelem több nem megszüntető Log műveletet is aktiválhat, a rendszer kizárja őket ebből a metrikából, hogy elkerülje a kérelmek számának duplikálását.

Képernyőkép az Azure Front Door WAF metrikáiról.

JavaScript kihívás (előzetes verzió) mérőszámok

A JavaScript kihívásának WAF-metrikáihoz való hozzáférés:

  • Adja hozzá a webalkalmazási tűzfal JS Challenge Request Count metrikát a JavaScript-kihívás WAF-szabályainak megfelelő kérések számának nyomon követéséhez.

A metrika részeként a következő szűrőket biztosítjuk:

  • PolicyName: Ez a WAF-házirend neve
  • Szabály: Ez lehet egyéni szabály vagy robotszabály
  • Művelet: A JS Challenge műveletnek négy lehetséges értéke van
    • Kiadva: A JS Challenge-t az első alkalommal indítják el
    • Megfelelt: A JS Challenge számítása sikeres volt, és válasz érkezett
    • Érvényes: JS Challenge érvényességi cookie volt jelen
    • Letiltva: A JS Challenge számítása meghiúsult

Képernyőkép a JavaScript-kihívások metrikáiról.

Naplók és diagnosztikák

Az Azure Front Door WAF részletes jelentést nyújt az egyes kérésekről és az általa észlelt fenyegetésekről. A naplózás integrálva van az Azure diagnosztikai naplóival és riasztásaival az Azure Monitor-naplók használatával.

A naplók alapértelmezés szerint nincsenek engedélyezve. Explicit módon engedélyeznie kell a naplókat. A naplókat a Diagnosztikai beállítások lapon konfigurálhatja az Azure Portalon.

Ha a naplózás engedélyezve van, és egy WAF-szabály aktiválódik, a rendszer egyszerű szövegben naplózza az egyező mintákat a WAF-házirend viselkedésének elemzéséhez és hibakereséséhez. A kizárásokkal finomhangolhatja a szabályokat, és kizárhat minden olyan adatot, amelyet ki szeretne zárni a naplókból. További információ: Webalkalmazási tűzfalkizárási listák az Azure Front Doorban.

Az Azure Front Door-naplók három típusát engedélyezheti:

  • WAF-naplók
  • Hozzáférési naplók
  • Állapotadat-mintavételi naplók

A tevékenységnaplók alapértelmezés szerint engedélyezve vannak, és betekintést nyújtanak az Azure-erőforrásokon végrehajtott műveletekbe, például az Azure Front Door-profil konfigurációs változásaiba.

WAF-naplók

A napló FrontDoorWebApplicationFirewallLog waf-szabálynak megfelelő kéréseket tartalmaz.

A napló FrontdoorWebApplicationFirewallLog tartalmazza a WAF-szabálynak megfelelő kéréseket.

Az alábbi táblázat az egyes kérésekhez naplózott értékeket mutatja.

Ingatlan Leírás
Művelet A kérésen végrehajtott művelet. A naplók az összes művelettel rendelkező kéréseket tartalmazzák. A műveletek a következők:
  • Allow és allow: A kérés folytathatta a feldolgozást.
  • Block és block: A kérés megfelelt a kérés letiltására konfigurált WAF-szabálynak. Alternatív megoldásként az anomália küszöbértékét érték el, és a kérelmet blokkolták.
  • Log és log: A kérés megfelelt a művelet használatára Log konfigurált WAF-szabálynak.
  • AnomalyScoring és logandscore: A kérelem megfelelt egy WAF-szabálynak. A szabály hozzájárul az anomáliák pontszámához. Előfordulhat, hogy a kérés le van tiltva, vagy nem, attól függően, hogy más szabályok futnak-e ugyanazon a kérésen.
  • JS Challenge és JSChallengeIssued: Kihívás jóváhagyás hiánya/érvénytelensége, válasz hiánya miatt kiadva.

    A napló akkor jön létre, amikor egy ügyfél először kér hozzáférést egy webalkalmazáshoz, és korábban még nem támadták meg. 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.
  • JS Challenge és JSChallengePass: Az érvényes válasz miatt sikeresen átment.

    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.
  • JS Challenge és JSChallengeValid: Naplózott/átengedve az érvényes kihívás miatt.

    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.
  • JS Challenge és JSChallengeBlock: Letiltva

    Ez a napló akkor jön létre, ha egy JS-feladat számítása meghiúsul.
ÜgyfélIP A kérést küldő ügyfél IP-címe. Ha a kérelemben volt egy X-Forwarded-For fejléc, az ügyfél IP-címét a rendszer az adott fejlécmezőből veszi át.
Ügyfél-port A kérést küldő ügyfél IP-portja.
Részletek További részletek a kérésről, beleértve az észlelt fenyegetéseket is.
matchVariableName: A kérelem HTTP-paraméterneve megfelelt, például fejlécnevek (legfeljebb 100 karakterig).
matchVariableValue: Az egyezést aktiváló értékek (legfeljebb 100 karakterig).
Kiszolgáló A Host kérés fejléce.
Szabályzat A kérést feldolgozó WAF-szabályzat neve.
PolicyMode A WAF-szabályzat műveleti módja. A lehetséges értékek a következők: Prevention és Detection.
KérelemURI A kérelem teljes URI-ja.
SzabályNév Annak a WAF-szabálynak a neve, amelyhez a kérés tartozott.
SocketIP A WAF által látott forrás IP-cím. Ez az IP-cím a TCP-munkameneten alapul, és nem veszi figyelembe a kérésfejléceket.
TrackingReference Az Azure Front Door által kiszolgált kérést azonosító egyedi referenciasztring. Ezt az értéket a rendszer elküldi az ügyfélnek a X-Azure-Ref válaszfejlécen. Ezt a mezőt akkor használja, ha egy adott kérést keres a naplóban.

Az alábbi példa lekérdezés azOkat a kéréseket mutatja be, amelyeket az Azure Front Door WAF blokkolt:

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.CDN" and Category == "FrontDoorWebApplicationFirewallLog" 
| where action_s == "Block" 
AzureDiagnostics
| where ResourceType == "FRONTDOORS" and Category == "FrontdoorWebApplicationFirewallLog"
| where action_s == "Block"

Az alábbi kódrészlet egy példanapló-bejegyzést mutat be, beleértve a kérés letiltésének okát is:

{
  "time": "2020-06-09T22:32:17.8376810Z",
  "category": "FrontdoorWebApplicationFirewallLog",
  "operationName": "Microsoft.Cdn/Profiles/Write",
  "properties": {
    "clientIP": "xxx.xxx.xxx.xxx",
    "clientPort": "52097",
    "socketIP": "xxx.xxx.xxx.xxx",
    "requestUri": "https://wafdemofrontdoorwebapp.azurefd.net:443/?q=%27%20or%201=1",
    "ruleName": "Microsoft_DefaultRuleSet-1.1-SQLI-942100",
    "policy": "WafDemoCustomPolicy",
    "action": "Block",
    "host": "wafdemofrontdoorwebapp.azurefd.net",
    "trackingReference": "08Q3gXgAAAAAe0s71BET/QYwmqtpHO7uAU0pDRURHRTA1MDgANjMxNTAwZDAtOTRiNS00YzIwLTljY2YtNjFhNzMyOWQyYTgy",
    "policyMode": "prevention",
    "details": {
      "matches": [
        {
          "matchVariableName": "QueryParamValue:q",
          "matchVariableValue": "' or 1=1"
        }
      ]
    }
  }
}
{
  "time": "2020-06-09T22:32:17.8376810Z",
  "category": "FrontdoorWebApplicationFirewallLog",
  "operationName": "Microsoft.Network/FrontDoorWebApplicationFirewallLog/Write",
  "properties": {
    "clientIP": "xxx.xxx.xxx.xxx",
    "clientPort": "52097",
    "socketIP": "xxx.xxx.xxx.xxx",
    "requestUri": "https://wafdemofrontdoorwebapp.azurefd.net:443/?q=%27%20or%201=1",
    "ruleName": "Microsoft_DefaultRuleSet-1.1-SQLI-942100",
    "policy": "WafDemoCustomPolicy",
    "action": "Block",
    "host": "wafdemofrontdoorwebapp.azurefd.net",
    "trackingReference": "08Q3gXgAAAAAe0s71BET/QYwmqtpHO7uAU0pDRURHRTA1MDgANjMxNTAwZDAtOTRiNS00YzIwLTljY2YtNjFhNzMyOWQyYTgy",
    "policyMode": "prevention",
    "details": {
      "matches": [
        {
          "matchVariableName": "QueryParamValue:q",
          "matchVariableValue": "' or 1=1"
        }
      ]
    }
  }
}

A többi Azure Front Door-naplóról további információt az Azure Front Door metrikáinak és naplóinak monitorozása című témakörben talál.

Következő lépés

További információ az Azure Front Doorról.