CDNs
Adversaries may search content delivery network (CDN) data about victims that can be used during targeting. CDNs allow an organization to host content from a distributed, load balanced array of servers. CDNs may also allow organizations to customize content delivery based on the requestor's geographical region. Adversaries may search CDN data to gather actionable information including origin server infrastructure, exposed backend IPs, misconfigured storage buckets hosting sensitive content not covered by the same authentication controls as the primary website, and path structures revealing internal architecture. Information from CDN reconnaissance may reveal opportunities for active scanning, infrastructure compromise, or drive-by attacks targeting CDN-served content.
let EnumThreshold = 40;
let TimeWindow = 5m;
// Branch 1: High-rate 404 responses on Azure Front Door or CDN endpoints — path enumeration
let CdnPathEnum = AzureDiagnostics
| where TimeGenerated > ago(24h)
| where ResourceType in ("FRONTDOORS", "CDNPROFILES")
| where Category in ("FrontdoorAccessLog", "AzureCdnAccessLog")
| where httpStatusCode_d == 404
| summarize
Count404 = count(),
UniqueUrls = dcount(requestUri_s),
SampleUrls = make_set(requestUri_s, 5),
UserAgents = make_set(userAgent_s, 3)
by clientIp_s, ResourceId, bin(TimeGenerated, TimeWindow)
| where Count404 > EnumThreshold and UniqueUrls > 15
| extend DetectionType = "CDN_Path_Enumeration"
| project TimeGenerated, clientIp_s, ResourceId, DetectionType, Count404, UniqueUrls, SampleUrls, UserAgents;
// Branch 2: Azure Blob Storage public enumeration — CDN-hosted content exposure
let BlobEnum = StorageBlobLogs
| where TimeGenerated > ago(24h)
| where OperationName == "ListBlobs"
| where StatusCode == 200
| summarize
ListCount = count(),
UniqueContainers = dcount(Uri),
SampleUris = make_set(Uri, 5)
by CallerIpAddress, AccountName, bin(TimeGenerated, TimeWindow)
| where ListCount > 5
| extend
DetectionType = "CDN_Storage_Enumeration",
clientIp_s = CallerIpAddress,
ResourceId = AccountName
| project TimeGenerated, clientIp_s, ResourceId, DetectionType, ListCount, UniqueContainers, SampleUris;
// Branch 3: Azure CDN / Front Door WAF — blocked reconnaissance probes
let WafBlock = AzureDiagnostics
| where TimeGenerated > ago(24h)
| where ResourceType in ("FRONTDOORS", "APPLICATIONGATEWAYS")
| where Category in ("FrontdoorWebApplicationFirewallLog", "ApplicationGatewayFirewallLog")
| where action_s == "Block" or action_s == "Redirect"
| where ruleName_s has_any ("Scanners", "Crawlers", "ToolDetection", "GenericRFI", "PathTraversal")
| summarize
BlockCount = count(),
UniqueRules = dcount(ruleName_s),
Rules = make_set(ruleName_s, 5)
by clientIp_s, ResourceId, bin(TimeGenerated, TimeWindow)
| where BlockCount > 10
| extend DetectionType = "CDN_WAF_Recon_Block"
| project TimeGenerated, clientIp_s, ResourceId, DetectionType, BlockCount, UniqueRules, Rules;
// Combine all branches
CdnPathEnum
| union BlobEnum
| union WafBlock
| sort by TimeGenerated desc Data Sources
Required Tables
False Positives
- Legitimate web crawlers and SEO bots (Googlebot, Bingbot, Ahrefs) generating high 404 rates on CDN endpoints while discovering site structure
- Internal security scanning tools and vulnerability assessments authorized by the security team performing CDN configuration reviews
- Load testing and performance testing platforms hitting CDN endpoints with synthetic traffic that generates 404s for non-existent test paths
- Application monitoring agents (Pingdom, Datadog Synthetics, New Relic) probing CDN health check endpoints that return 404
- CI/CD deployment pipelines enumerating Azure Blob Storage containers to verify asset deployment or perform cleanup tasks
References (9)
- https://attack.mitre.org/techniques/T1596/004/
- https://www.digitalshadows.com/blog-and-research/content-delivery-networks-cdns-can-leave-you-exposed-how-you-might-be-affected-and-what-you-can-do-about-it/
- https://learn.microsoft.com/en-us/azure/frontdoor/front-door-diagnostics
- https://learn.microsoft.com/en-us/azure/storage/blobs/monitor-blob-storage-reference
- https://learn.microsoft.com/en-us/azure/cdn/cdn-azure-diagnostic-logs
- https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/01-Information_Gathering/02-Fingerprint_Web_Server
- https://github.com/EdOverflow/can-i-take-over-xyz
- https://0xpatrik.com/subdomain-takeover-basics/
- https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerLogs.html
Unlock Pro Content
Get the full detection package for T1596.004 including response playbook, investigation guide, and atomic red team tests.