ar ar ar ar ar ar ar ar ar ar ar ar en ar ar ar ar en ar ar ar ar ar ar ar ar ar en en ar en en ar ar ar ar ar ar ar ar en ar en ar ar ar ar ar ar ar ar ar en ar en ar en ar cs ar en ar ar en en ar en en ar ar ar ur ar ar ar ar ar ar ar ar en ar ar ur ar ar ar ar ar ar ar ar en
يتم توفير مراقبة Azure Web Application Firewall (WAF) وتسجيله من خلال التسجيل والتكامل باستخدام سجلات Azure Monitor وAzure Monitor.
يدمج سجل WAF الخاص بـ Front Door مع Azure Monitor. تتيح لك Azure Monitor تعقب المعلومات التشخيصية بما في ذلك تنبيهات WAF وسجلاته. يمكنك تكوين مراقبة WAF داخل مورد Front Door في المدخل ضمن علامة التبويب Diagnosticsمن خلال البنية الأساسية مع اقتراب التعليمة البرمجية أو باستخدام خدمة Azure Monitor مباشرة.
يوفر WAF باستخدام Front Door تقارير مفصلة عن كل طلب وكل خطر يكتشفه. يدمج التسجيل مع سجلات تشخيص Azure وتنبيهاته. يمكن دمج هذه السجلّات مع سجلات Azure Monitor.
توفر Front Door نوعين من السجلات: سجلات الوصول وسجلات WAF.
يتضمن FrontDoorAccessLog جميع الطلبات التي تمر خلال Front Door. لمزيد من المعلومات حول سجل الوصول لـ Front Door، بما في ذلك مخطط السجل، راجع سجلات Azure Front Door.
يعيد استعلام المثال التالي إدخالات سجل الوصول:
AzureDiagnostics | where ResourceProvider == "MICROSOFT.CDN" and Category == "FrontDoorAccessLog"
AzureDiagnostics | where ResourceType == "FRONTDOORS" and Category == "FrontdoorAccessLog"
فيما يلي مثالاً لإدخال السجل:
{ "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" } }
يتضمن FrontDoorWebApplicationFirewallLog طلبات تطابُق قاعدة WAF.
يتضمن FrontdoorWebApplicationFirewallLog أي طلب يطابِق قاعدة WAF.
يوضح الجدول التالي القيم المسجلة لكل طلب:
الإجراءات المتخذة بناءً على الطلب. تتضمن السجلات طلبات بجميع الإجراءات. تتضمن المقاييس طلبات بجميع الإجراءات باستثناء السجل.
عنوان IP للعميل الذي قدم الطلب. في كان هناك عنوان X-Forwarded-For في الطلب، فسيتم اختيار عنوان IP الخاص بالعميل من حقل العنوان بدلا من ذلك.
منفذ IP للعميل الذي قدم الطلب.
تفاصيل إضافية حول الطلب، بما في ذلك أي مخاطر تم اكتشافها.
matchVariableName: اسم معلمة HTTP للطلب المتطابق، على سبيل المثال، أسماء العناوين (بحد أقصى 100 حرف).
matchVariableValue: القيم التي نتجت عنها المطابقة (بحد أقصى 100 حرف).
اسم نهج WAF الذي تناول معالجة الطلب.
وضع العمليّات لنهج WAF. القيم المُحتملة هي Prevention وDetection.
معرف الموارد المنتظم للطلب.
اسم قاعدة WAF المطابقة للطلب.
عنوان IP المورد الذي يراهWAF. يستند عنوان IP هذا إلى جلسة بروتوكول تحكم الإرسال ولا يأخذ في الاعتبار أي عناوين للطلبات.
سلسلة مرجعية فريدة تحدد الطلب الذي ترسله Front Door. ترسل هذه القيمة إلى العميل في عنوان الاستجابة X-Azure-Ref. استخدم هذا الحقل عندما تبحث عن طلب معين في السجل.
يوضح استعلام المثال التالي الطلبات التي تم حظرها منFront Door WAF:
AzureDiagnostics | where ResourceProvider == "MICROSOFT.CDN" and Category == "FrontDoorWebApplicationFirewallLog" | where action_s == "Block"
AzureDiagnostics | where ResourceType == "FRONTDOORS" and Category == "FrontdoorWebApplicationFirewallLog" | where action_s == "Block"
فيما يلي مثالا لإدخال السجل، بما في ذلك سبب حظر الطلب:
{ "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" } ] } } }