Aracılığıyla paylaş


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

Azure Front Door'daki Azure Web Uygulaması Güvenlik Duvarı, web uygulaması güvenlik duvarınızın (WAF) nasıl çalıştığını ve gerçekleştirdiği eylemleri anlamanıza yardımcı olmak için kapsamlı günlük 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. Azure portaldaki Azure Front Door kaynağında Tanılama sekmesinin altında, kod yaklaşımı olarak altyapı aracılığıyla veya doğrudan Azure İzleyici'yi kullanarak WAF izlemeyi 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'nizin ölçümlerine erişmek için:

  1. Azure portalında oturum açın ve Azure Front Door profilinize gidin.
  2. İzleme'nin en soldaki bölmesinde Ölçümler sekmesini seçin.
  3. WAF kurallarıyla eşleşen istek 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, dışındaki Logtüm eylemlere sahip istekleri içerir.

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

JavaScript sınaması (önizleme) ölçümleri

JavaScript sınaması WAF ölçümlerinize erişmek için:

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

Bu ölçümün 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 Sınama eylemi için dört olası değer vardır
    • Verilen: JS Sınaması ilk kez çağrılır
    • Başarılı: JS Sınaması hesaplaması başarılı oldu ve bir yanıt alındı
    • Geçerli: JS Sınaması geçerlilik çerezi mevcuttu
    • Engellendi: JS Sınaması hesaplaması başarısız oldu

JavaScript sınaması ölçümlerini gösteren ekran görüntüsü.

Günlükler ve tanılamalar

Azure Front Door WAF, her istek ve algılanan her tehdit hakkında ayrıntılı raporlama sağlar. Günlüğe kaydetme, Azure İzleyici günlükleri kullanılarak Azure'ın tanılama günlükleri ve uyarıları ile tümleşiktir.

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ında günlükleri yapılandırabilirsiniz.

WAF günlüklerinin nasıl etkinleştirildiğini gösteren ekran görüntüsü.

Günlüğe kaydetme etkinse ve waf kuralı tetiklenirse, WAF ilkesi davranışını analiz etmenize ve hatalarını ayıklamanıza yardımcı olmak için tüm eşleşen desenler düz metin olarak günlüğe kaydedilir. Kurallarda ince ayar yapmak ve günlüklerden dışlanmasını istediğiniz verileri dışlamak için dışlamaları kullanabilirsiniz. Daha fazla bilgi için bkz . Azure Front Door'da Web uygulaması güvenlik duvarı dışlama listeleri.

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

  • WAF günlükleri
  • Erişim günlükleri
  • Sistem durumu yoklama günlükleri

Etkinlik günlükleri varsayılan olarak etkinleştirilir 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 , WAF kuralıyla eşleşen istekleri içerir.

Günlük FrontdoorWebApplicationFirewallLog , 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.

Özellik Açıklama
Eylem İstekte gerçekleştirilen eylem. Günlükler, tüm eylemleri içeren istekleri içerir. Eylemler şunlardır:
  • Allow ve allow: İsteğin işlemeye devam etmesi için 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, eylemi kullanmak üzere yapılandırılmış bir WAF kuralıyla Log eşleşti.
  • AnomalyScoring ve logandscore: İstek bir WAF kuralıyla eşleşti. Kural anomali puanına katkıda bulunur. İstek, aynı istekte çalışan diğer kurallara bağlı olarak engellenebilir veya engellenmeyebilir.
  • JS Challenge ve JSChallengeIssued: Eksik/geçersiz sınama yetkisi, eksik yanıt nedeniyle verildi.

    Günlük, bir istemci bir web uygulamasına ilk kez erişim istediğinde oluşturulur ve daha önce sınama yapılmamıştır. 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 tanımlama bilgisi verilir.
  • JS Challenge ve JSChallengePass: Geçerli sınama 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 sınama nedeniyle günlüğe kaydedildi/geçiş.

    Bu günlük, bir istemci 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.
ClientIP İsteği yapan istemcinin IP adresi. İstekte bir X-Forwarded-For üst bilgi varsa, istemci IP adresi bunun yerine bu üst bilgi alanından alınır.
ClientPort İsteği yapan istemcinin IP bağlantı noktası.
Ayrıntılar Algılanan tehditler de dahil olmak üzere istekle ilgili diğer ayrıntılar.
matchVariableName: üst bilgi adları (en fazla 100 karakter) gibi eşleşen isteğin HTTP parametre adı.
matchVariableValue: Eşleşmeyi tetikleyen değerler (en fazla 100 karakter).
Ana Bilgisayar Host İsteğin üst bilgisi.
İlke İsteği işleyen WAF ilkesinin adı.
PolicyMode WAF ilkesinin işlem modu. Olası değerler ve DetectionşeklindedirPrevention.
RequestUri İsteğin tam URI'sini.
RuleName İsteğin eşleşmiş olduğu WAF kuralının adı.
SocketIP 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.
TrackingReference Azure Front Door tarafından sunulan bir isteği tanımlayan benzersiz başvuru dizesi. Bu değer, yanıt üst bilgisinde istemciye X-Azure-Ref gönderilir. Günlükte belirli bir isteği ararken bu alanı kullanın.

Aşağıdaki örnek sorgu, Azure Front Door WAF'nin 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 girdisi 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 bkz . Azure Front Door'da ölçümleri ve günlükleri izleme.

Sonraki adımlar

Azure Front Door hakkında daha fazla bilgi edinin.