Share via


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 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. 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.

Screenshot that shows the metrics for an Azure Front Door WAF.

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.

Screenshot that shows how to enable the WAF logs.

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.

Azure Front Door iki tür günlük sağlar: erişim günlükleri ve WAF günlükleri.

Erişim günlükleri

Günlük FrontDoorAccessLog , Azure Front Door üzerinden geçen tüm istekleri içerir. Günlük şeması da dahil olmak üzere Azure Front Door erişim günlüğü hakkında daha fazla bilgi için bkz . Azure Front Door'da ölçümleri ve günlükleri izleme.

Günlük FrontdoorAccessLog , Azure Front Door üzerinden geçen tüm istekleri içerir. Günlük şeması dahil olmak üzere Azure Front Door erişim günlüğü hakkında daha fazla bilgi için bkz . Azure Front Door'da ölçümleri ve günlükleri izleme (klasik).

Aşağıdaki örnek sorgu erişim günlüğü girdilerini döndürür:

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.CDN" and Category == "FrontDoorAccessLog"
AzureDiagnostics
| where ResourceType == "FRONTDOORS" and Category == "FrontdoorAccessLog"

Aşağıdaki kod parçacığı örnek bir günlük girdisi gösterir:

{
  "time": "2020-06-09T22:32:17.8383427Z",
  "category": "FrontDoorAccessLog",
  "operationName": "Microsoft.Cdn/Profiles/AccessLog/Write",
  "properties": {
    "trackingReference": "08Q3gXgAAAAAe0s71BET/QYwmqtpHO7uAU0pDRURHRTA1MDgANjMxNTAwZDAtOTRiNS00YzIwLTljY2YtNjFhNzMyOWQyYTgy",
    "httpMethod": "GET",
    "httpVersion": "2.0",
    "requestUri": "https://wafdemofrontdoorwebapp.azurefd.net:443/?q=%27%20or%201=1",
    "requestBytes": "715",
    "responseBytes": "380",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4157.0 Safari/537.36 Edg/85.0.531.1",
    "clientIp": "xxx.xxx.xxx.xxx",
    "socketIp": "xxx.xxx.xxx.xxx",
    "clientPort": "52097",
    "timeTaken": "0.003",
    "securityProtocol": "TLS 1.2",
    "routingRuleName": "WAFdemoWebAppRouting",
    "rulesEngineMatchNames": [],
    "backendHostname": "wafdemowebappuscentral.azurewebsites.net:443",
    "sentToOriginShield": false,
    "httpStatusCode": "403",
    "httpStatusDetails": "403",
    "pop": "SJC",
    "cacheStatus": "CONFIG_NOCACHE"
  }
}
{
  "time": "2020-06-09T22:32:17.8383427Z",
  "category": "FrontdoorAccessLog",
  "operationName": "Microsoft.Network/FrontDoor/AccessLog/Write",
  "properties": {
    "trackingReference": "08Q3gXgAAAAAe0s71BET/QYwmqtpHO7uAU0pDRURHRTA1MDgANjMxNTAwZDAtOTRiNS00YzIwLTljY2YtNjFhNzMyOWQyYTgy",
    "httpMethod": "GET",
    "httpVersion": "2.0",
    "requestUri": "https://wafdemofrontdoorwebapp.azurefd.net:443/?q=%27%20or%201=1",
    "requestBytes": "715",
    "responseBytes": "380",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4157.0 Safari/537.36 Edg/85.0.531.1",
    "clientIp": "xxx.xxx.xxx.xxx",
    "socketIp": "xxx.xxx.xxx.xxx",
    "clientPort": "52097",
    "timeTaken": "0.003",
    "securityProtocol": "TLS 1.2",
    "routingRuleName": "WAFdemoWebAppRouting",
    "rulesEngineMatchNames": [],
    "backendHostname": "wafdemowebappuscentral.azurewebsites.net:443",
    "sentToOriginShield": false,
    "httpStatusCode": "403",
    "httpStatusDetails": "403",
    "pop": "SJC",
    "cacheStatus": "CONFIG_NOCACHE"
  }
}

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 Tanım
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.
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"
        }
      ]
    }
  }
}

Sonraki adımlar

Azure Front Door hakkında daha fazla bilgi edinin.