Repository navigation
added azure waf hunting query - #15492
Ravi Nandan Ray (Rajaravi99) wants to merge 1 commit into
Conversation
|
Hi v-skharode, opened this fresh PR and closed the old one, Please guide to generate the proper solution package. Until then I would try to gather successful execution samples for both modern and legacy logging modes. |
|
Hi Ravi Nandan Ray (@Rajaravi99), thanks again for opening the fresh PR. I’ll review the changes and share the guidance for generating the solution package. Please also share the successful execution examples for both modern and legacy logging modes once available. |
There was a problem hiding this comment.
🟡 Changes recommended
Direct references to missing legacy columns can prevent modern WAF results from being returned, and TotalAttempts overcounts requests by counting per-rule log entries.
2 open issues
What changed in this PR
Adds a Microsoft Sentinel hunting query to the Azure WAF solution for double URL-encoded requests targeting administrative paths, continuing the work from #15285 and #15253.
Changes:
- Queries modern and legacy Application Gateway WAF logs for suspicious paths revealed by two decoding passes.
- Summarizes matching records and payload samples, with IP and host entity mappings.
- Registers the hunt in the solution’s packaging manifest.
| File | Description |
|---|---|
Solutions/Azure Web Application Firewall (WAF)/Hunting Queries/Azure WAF - Bypass Via Double URL Encoded Admin Paths.yaml |
Adds the double-encoding hunt, result summaries, and entity mappings. |
Solutions/Azure Web Application Firewall (WAF)/Data/Solution_AzureWAF.json |
Includes the new hunt in the solution manifest. |
Review effort: Balanced
| let LegacyWAF = (AzureDiagnostics | ||
| | where TimeGenerated between (StartTime .. EndTime) | ||
| | where Category == "ApplicationGatewayFirewallLog" | ||
| | where action_s in~ ("Allowed", "Matched") |
| | summarize | ||
| FirstSeen = min(TimeGenerated), | ||
| LastSeen = max(TimeGenerated), | ||
| AttackCount = count(), |


This is in continuation to closed prs #15285 and #15253 now closed
Required items, please complete
Change(s):
WAFBypassDoubleURLEncodingAdminPath.yaml.AGWFirewallLogs) and legacy (AzureDiagnostics) Azure Web Application Firewall structures.split(..., '?')[0]to isolate request directories safely.IPandHost) directly to the Microsoft Sentinel Graph investigation matrix.Reason for Change(s):
/admin,/config,/setup).Version Updated:
1.0.0within the YAML metadata structure).Testing Completed:
Checked that the validations are passing and have addressed any issues that are present:
DetectionTemplateSchemaValidation) and syntax evaluation procedures (KqlValidationTests) were completed locally via the native.NET Core SDK test environment(dotnet test) and returned perfect pass statuses with no schema alignment warnings.