Aracılığıyla paylaş


Azure Web Uygulaması Güvenlik Duvarı izleme ve günlüğe kaydetme

Azure Front Door'da Azure Web Uygulaması Güvenlik Duvarı, web uygulaması güvenlik duvarınızın (WAF) nasıl performans gösterdiğini ve gerçekleştirdiği eylemleri anlamanıza yardımcı olmak için kapsamlı günlük kaydı ve telemetri sağlar.

Azure Front Door WAF günlüğü Azure İzleyici ile tümleşiktir. Azure İzleyici, WAF uyarıları ve günlükleri de dahil olmak üzere tanılama bilgilerini izlemenizi sağlar. WAF izlemeyi Azure portal Tanılama sekmesinin altındaki Azure Front Door kaynağında, kod yaklaşımları olarak altyapı aracılığıyla veya doğrudan Azure İzleyici'yi kullanarak yapılandırabilirsiniz.

Ölçümler

Azure Front Door, WAF'nizin davranışını anlamanıza yardımcı olmak için ölçümleri otomatik olarak kaydeder.

WAF'ınızın metriklerine erişmek için:

  1. Azure portal oturum açın ve Azure Front Door profilinize gidin.
  2. En soldaki bölmede, İzleme'nin altında Ölçümler sekmesini seçin.
  3. WAF kurallarıyla eşleşen isteklerin sayısını izlemek için Web Uygulaması Güvenlik Duvarı İstek Sayısı ölçümünü ekleyin.

Eylem türlerine ve kural adlarına göre özel filtreler oluşturabilirsiniz. Ölçümler, Block ve Allow gibi sonlandırıcı eylemlere sahip isteklerin yanı sıra WAF'in hiçbir eylemde bulunmadığı istekleri içerir. Birden çok sonlandırılmayan Log eylem tek bir istek tarafından tetiklenebildiğinden, istek sayılarının yinelenmesini önlemek için bunlar bu ölçümün dışında tutulur.

Azure Front Door WAF ölçümlerini gösteren ekran görüntüsü.

JavaScript sınaması (önizleme) metrikleri

JavaScript yarışması WAF metriklerinize erişmek için:

  • JavaScript sınaması WAF kurallarıyla eşleşen isteklerin sayısını izlemek için Web Uygulaması Güvenlik Duvarı JS Challenge Request Count ölçümünü ekleyin.

Bu metriğin bir parçası olarak aşağıdaki filtreler sağlanır:

  • PolicyName: Bu, WAF ilke adıdır
  • Kural: Bu, herhangi bir özel kural veya bot kuralı olabilir
  • Eylem: JS Challenge eylemi için dört olası değer vardır
    • Verilen: JS Challenge ilk kez çağrıldı
    • Geçti: JS Challenge hesaplaması başarılı oldu ve bir yanıt alındı
    • Geçerli: JS Challenge geçerlilik çerezi mevcuttu
    • Engellendi: JS Challenge hesaplaması başarısız oldu

JavaScript sorgulama metriklerini gösteren ekran görüntüsü.

Günlükler ve diagnostikler

Azure Front Door WAF, her istek ve algıladığı her tehdit hakkında ayrıntılı raporlama sağlar. Günlüğe kaydetme, Azure İzleyici günlüklerini kullanarak Azure'ın tanılama günlükleri ve uyarılarıyla entegre edilmiştir.

Günlükler varsayılan olarak etkin değildir. Günlükleri açıkça etkinleştirmeniz gerekir. Tanılama ayarları sekmesini kullanarak Azure portal günlüklerini yapılandırabilirsiniz.

Günlük tutma etkinse ve WAF kuralı tetiklenirse, WAF ilkesi davranışını analiz etmenize ve hata ayıklama yapmanıza yardımcı olmak için tüm eşleşen desenler düz metin olarak kaydedilir. Kurallarda ince ayar yapmak ve günlüklerden hariç tutulmasını istediğiniz verileri hariç tutmak için istisnaları kullanabilirsiniz. Daha fazla bilgi için Azure Front Door'daki Web uygulaması güvenlik duvarı dışlama listeleri'ne bakın.

Üç tür Azure Front Door günlüğünü etkinleştirebilirsiniz:

  • WAF günlükleri
  • Erişim günlükleri
  • Sağlık probu günlükleri

Etkinlik günlükleri varsayılan olarak etkindir ve Azure Front Door profilinizdeki yapılandırma değişiklikleri gibi Azure kaynaklarınızda gerçekleştirilen işlemlere görünürlük sağlar.

WAF günlükleri

Günlük FrontDoorWebApplicationFirewallLog bir WAF kuralıyla eşleşen istekleri içerir.

Günlük FrontdoorWebApplicationFirewallLog , bir WAF kuralıyla eşleşen tüm istekleri içerir.

Aşağıdaki tabloda, her istek için günlüğe kaydedilen değerler gösterilmektedir.

Mülkiyet Açıklama
Eylem İstekte gerçekleştirilen eylem. Günlükler, tüm eylemlerle birlikte istekleri içerir. Eylemler şunlardır:
  • Allow ve allow: İsteğin işlenmeye devam etmesine izin verildi.
  • Block ve block: İstek, isteği engellemek için yapılandırılmış bir WAF kuralıyla eşleşti. Alternatif olarak, anomali puanlama eşiğine ulaşıldı ve istek engellendi.
  • Log ve log: İstek, Log eylemini kullanacak şekilde yapılandırılmış bir WAF kuralıyla eşleşti.
  • AnomalyScoring ve logandscore: İstek bir WAF kuralıyla eşleşti. Kural, anomali puanına katkıda bulunur. İstek, aynı talepte işleyen diğer kurallara göre engellenebilir ya da engellenmeyebilir.
  • JS Challenge ve JSChallengeIssued: Eksik/geçersiz itiraz izni, eksik cevap nedeniyle verildi.

    Günlük, bir istemci bir web uygulamasına ilk kez erişim istediğinde ve daha önce sorgulanmadığında oluşturulur. Bu istemci JS sınaması sayfasını alır ve JS sınamasını hesaplamaya devam eder. İşlem başarılı olduğunda istemciye geçerlilik çerezi verilir.
  • JS Challenge ve JSChallengePass: Geçerli meydan okuma yanıtı nedeniyle geçti.

    Bu günlük, bir istemci JS sınamasını çözdüğünde ve isteği doğru yanıtla yeniden gönderdiğinde oluşturulur. Bu durumda Azure WAF tanımlama bilgisini doğrular ve başka bir JS sınaması oluşturmadan kalan kuralları işlemeye devam eder.
  • JS Challenge ve JSChallengeValid: Geçerli doğrulama nedeniyle günlüğe kaydedildi/geçirildi.

    Bu günlük, bir müşteri daha önce bir sınamayı çözdüğünde oluşturulur. Bu durumda Azure WAF isteği günlüğe kaydeder ve kalan kuralları işlemeye devam eder.
  • JS Challenge ve JSChallengeBlock: Engellendi

    Bu günlük, bir JS sınaması hesaplaması başarısız olduğunda oluşturulur.
Müşteri IP'si İsteği yapan istemcinin IP adresi. İstekte bir X-Forwarded-For başlık varsa, istemci IP adresi bunun yerine bu başlık alanından alınır.
İstemci Bağlantı Noktası İsteği yapan istemcinin IP bağlantı noktası.
Ayrıntılar Algılanan tehditler de dahil olmak üzere istekle ilgili daha fazla ayrıntı.
matchVariableName: Eşleşen isteğin HTTP parametre adı, örneğin, başlık adları (en fazla 100 karakter).
matchVariableValue: Eşleşmeyi tetikleyen değerler (en fazla 100 karakter).
Sunucu İsteğin Host başlığı.
Politika İsteği işleyen WAF politikasının adı.
İlke Modu WAF ilkesinin işlem modu. Olası değerler Prevention ve Detection şeklindedir.
RequestUri İsteğin tam URI'si.
Kural Adı İsteğin eşleştiği WAF kuralının adı.
Yuva IP'si WAF tarafından görülen kaynak IP adresi. Bu IP adresi TCP oturumunu temel alır ve herhangi bir istek üst bilgisini dikkate almaz.
İzleme Referansı Azure Front Door tarafından sunulan bir isteği tanımlayan benzersiz başvuru dizesi. Bu değer, yanıt üst bilgisinde X-Azure-Ref istemciye gönderilir. Günlükte belirli bir isteği ararken bu alanı kullanın.

Aşağıdaki örnek sorgu, Azure Front Door WAF'ın engellediği istekleri gösterir:

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

Aşağıdaki kod parçacığında, isteğin engellenme nedeni de dahil olmak üzere örnek bir günlük girişi gösterilmektedir:

{
  "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"
        }
      ]
    }
  }
}

Diğer Azure Front Door günlükleri hakkında daha fazla bilgi için Azure Front Door'daki "Metrik ve günlükleri izleme" bölümüne bkz.

Sonraki adım

Azure Front Door hakkında daha fazla bilgi edinin.