[Proposed] Network - 00000 - High-risk web categories are blocked by Azure Firewall application rules#1124
Draft
krishna-sunkavalli wants to merge 1 commit intomicrosoft:devfrom
Conversation
…all application rules
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposed new check: Azure Firewall web category filtering
This is a draft PR proposing a new Network pillar check. The test ID
00000is a placeholder — I don't have access toztspecsto create a spec. If this check is accepted, please assign a real test ID and I'll update all references.What this check validates
Verifies that every Azure Firewall Policy (Standard or Premium) attached to a firewall has at least one application rule in a Deny rule collection that targets web categories.
Azure Firewall's web categories feature classifies websites into groups including Liability (CriminalActivity, Hacking, IllegalSoftware, Malware, Phishing, Violence, etc.). Without deny rules for these categories, users behind the firewall can reach malware distribution sites, phishing pages, and command-and-control infrastructure.
Why this gap matters
The existing Azure Firewall checks cover:
Web category filtering is a separate defense-in-depth layer — it blocks access to entire categories of known-dangerous sites by URL classification, complementing the signature-based approach of Threat Intel and IDPS. Both Standard and Premium SKUs support it.
Implementation details
Two ARG queries (same pattern as Test-Assessment.25550.ps1):
microsoft.network/firewallpolicieswith Standard/Premium SKU, joined with subscription namesmicrosoft.network/firewallpolicies/rulecollectiongroups, usesmvexpandintoruleCollections(filtered toFirewallPolicyFilterRuleCollectionwithDenyaction) →mvexpandintorules(filtered toApplicationRulewherearray_length(rule.webCategories) > 0) → extracts distinctpolicyIdPass/Fail logic:
Report output: Per-policy table with Subscription Name, Firewall Policy Name (portal link), SKU tier, Attached to Firewall, Web Category Deny Rules Found, and Result (✅/❌/⬜).
[ZtTest()]attributes:Files
src/powershell/tests/Test-Assessment.00000.ps1src/powershell/tests/Test-Assessment.00000.mdWhat I need from maintainers
ztspecsand I'll rename both files and update all internal referencesTesting
mvexpandpattern proven in Test-Assessment.25550.ps1Get-SafeMarkdown, portal links,Add-ZtTestResultDetailwith skip reasons)