Monitorowanie i rejestrowanie zapory aplikacji internetowej platformy Azure
Usługa Azure Web Application Firewall w usłudze Azure Front Door udostępnia obszerne rejestrowanie i dane telemetryczne, które ułatwiają zrozumienie sposobu wykonywania zapory aplikacji internetowej i akcji, które podejmuje.
Dziennik zapory aplikacji internetowej usługi Azure Front Door jest zintegrowany z usługą Azure Monitor. Usługa Azure Monitor umożliwia śledzenie informacji diagnostycznych, w tym alertów zapory aplikacji internetowej i dzienników. Monitorowanie zapory aplikacji internetowej można skonfigurować w zasobie usługi Azure Front Door w witrynie Azure Portal na karcie Diagnostyka , za pomocą infrastruktury jako podejścia do kodu lub bezpośrednio przy użyciu usługi Azure Monitor.
Metryki
Usługa Azure Front Door automatycznie rejestruje metryki, aby ułatwić zrozumienie zachowania zapory aplikacji internetowej.
Aby uzyskać dostęp do metryk zapory aplikacji internetowej:
- Zaloguj się do witryny Azure Portal i przejdź do profilu usługi Azure Front Door.
- W okienku po lewej stronie w obszarze Monitorowanie wybierz kartę Metryki .
- Dodaj metryka Liczba żądań zapory aplikacji internetowej, aby śledzić liczbę żądań pasujących do reguł zapory aplikacji internetowej.
Niestandardowe filtry można tworzyć na podstawie typów akcji i nazw reguł. Metryki obejmują żądania ze wszystkimi akcjami z wyjątkiem Log
.
Metryki wyzwania w języku JavaScript (wersja zapoznawcza)
Aby uzyskać dostęp do metryk zapory aplikacji internetowej w języku JavaScript:
- Dodaj metryki Zapora aplikacji internetowej, aby śledzić liczbę żądań pasujących do reguł zapory
JS Challenge Request Count
aplikacji internetowej w języku JavaScript.
Następujące filtry są udostępniane w ramach tej metryki:
- PolicyName: jest to nazwa zasad zapory aplikacji internetowej
- Reguła: może to być dowolna reguła niestandardowa lub reguła bota
- Akcja: istnieją cztery możliwe wartości akcji JS Challenge
- Wystawiono: Zadanie JS jest wywoływane po raz pierwszy
- Zakończone powodzeniem: obliczanie zadania JS Challenge powiodło się i odebrano odpowiedź
- Prawidłowe: plik cookie ważności narzędzia JS Challenge był obecny
- Zablokowane: obliczanie wyzwania JS nie powiodło się
Dzienniki i diagnostyka
Zapora aplikacji internetowej usługi Azure Front Door udostępnia szczegółowe raporty dotyczące każdego żądania i każdego wykrytego zagrożenia. Rejestrowanie jest zintegrowane z dziennikami diagnostycznymi i alertami platformy Azure przy użyciu dzienników usługi Azure Monitor.
Dzienniki nie są domyślnie włączone. Należy jawnie włączyć dzienniki. Dzienniki można skonfigurować w witrynie Azure Portal przy użyciu karty Ustawienia diagnostyczne.
Jeśli rejestrowanie jest włączone i zostanie wyzwolona reguła zapory aplikacji internetowej, wszystkie zgodne wzorce są rejestrowane w postaci zwykłego tekstu, aby ułatwić analizowanie i debugowanie zachowania zasad zapory aplikacji internetowej. Możesz użyć wykluczeń, aby dostosować reguły i wykluczyć wszystkie dane, które mają zostać wykluczone z dzienników. Aby uzyskać więcej informacji, zobacz Listy wykluczeń zapory aplikacji internetowej w usłudze Azure Front Door.
Możesz włączyć trzy typy dzienników usługi Azure Front Door:
- Dzienniki zapory aplikacji internetowej
- Dzienniki dostępu
- Dzienniki sondy kondycji
Dzienniki aktywności są domyślnie włączone i zapewniają wgląd w operacje wykonywane na zasobach platformy Azure, takie jak zmiany konfiguracji w profilu usługi Azure Front Door.
Dzienniki zapory aplikacji internetowej
Dziennik FrontDoorWebApplicationFirewallLog
zawiera żądania zgodne z regułą zapory aplikacji internetowej.
Dziennik FrontdoorWebApplicationFirewallLog
zawiera każde żądanie zgodne z regułą zapory aplikacji internetowej.
W poniższej tabeli przedstawiono wartości zarejestrowane dla każdego żądania.
Właściwości | opis |
---|---|
Akcja | Akcja podjęta na żądanie. Dzienniki obejmują żądania ze wszystkimi akcjami. Akcje to:
|
ClientIP | Adres IP klienta, który złożył żądanie. Jeśli w żądaniu znajdował się X-Forwarded-For nagłówek, adres IP klienta jest zamiast tego pobierany z tego pola nagłówka. |
ClientPort | Port IP klienta, który złożył żądanie. |
Szczegóły | Więcej szczegółów dotyczących żądania, w tym wszelkich wykrytych zagrożeń. matchVariableName : nazwa parametru HTTP żądania dopasowane, na przykład nazwy nagłówków (maksymalnie 100 znaków).matchVariableValue : wartości, które wyzwoliły dopasowanie (maksymalnie 100 znaków). |
Gospodarz | Host Nagłówek żądania. |
Zasady | Nazwa zasad zapory aplikacji internetowej, które przetworzyły żądanie. |
PolicyMode | Tryb operacji zasad zapory aplikacji internetowej. Możliwe wartości to Prevention i Detection . |
Identyfikator RequestUri | Pełny identyfikator URI żądania. |
RuleName | Nazwa reguły zapory aplikacji internetowej zgodna z żądaniem. |
SocketIP | Źródłowy adres IP widoczny przez zaporę aplikacji internetowej. Ten adres IP jest oparty na sesji TCP i nie uwzględnia żadnych nagłówków żądań. |
TrackingReference | Unikatowy ciąg odwołania identyfikujący żądanie obsługiwane przez usługę Azure Front Door. Ta wartość jest wysyłana do klienta w nagłówku X-Azure-Ref odpowiedzi. Użyj tego pola podczas wyszukiwania określonego żądania w dzienniku. |
Następujące przykładowe zapytanie pokazuje żądania zablokowane przez zaporę aplikacji internetowej usługi Azure Front Door:
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.CDN" and Category == "FrontDoorWebApplicationFirewallLog"
| where action_s == "Block"
AzureDiagnostics
| where ResourceType == "FRONTDOORS" and Category == "FrontdoorWebApplicationFirewallLog"
| where action_s == "Block"
Poniższy fragment kodu przedstawia przykładowy wpis dziennika, w tym przyczynę zablokowania żądania:
{
"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"
}
]
}
}
}
Aby uzyskać więcej informacji na temat innych dzienników usługi Azure Front Door, zobacz Monitorowanie metryk i dzienników w usłudze Azure Front Door.
Następne kroki
Dowiedz się więcej o usłudze Azure Front Door.