Detection rules › Sigma
Potentially Suspicious Azure Front Door Connection
Detects connections with Azure Front Door (known legitimate service that can be leveraged for C2) that fall outside of known benign behavioral baseline (not using common apps or common azurefd.net endpoints)
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Command & Control | T1090.004 Proxy: Domain Fronting, T1102.002 Web Service: Bidirectional Communication |
Event coverage
| Provider | Event | Title |
|---|---|---|
| Sysmon | Event ID 3 | Network connection |
Rule body yaml
title: Potentially Suspicious Azure Front Door Connection
id: 8cb4d14e-776e-43c2-8fb9-91e7fcea32b4
status: test
description: |
Detects connections with Azure Front Door (known legitimate service that can be leveraged for C2)
that fall outside of known benign behavioral baseline (not using common apps or common azurefd.net endpoints)
references:
- https://lots-project.com/site/2a2e617a75726566642e6e6574
- https://medium.com/r3d-buck3t/red-teaming-in-cloud-leverage-azure-frontdoor-cdn-for-c2-redirectors-79dd9ca98178
- https://www.fortalicesolutions.com/posts/hiding-behind-the-front-door-with-azure-domain-fronting
author: Isaac Dunham
date: 2024-11-07
tags:
- attack.command-and-control
- attack.t1102.002
- attack.t1090.004
- detection.threat-hunting
logsource:
category: network_connection
product: windows
detection:
selection:
DestinationHostname|contains: 'azurefd.net'
filter_main_web_browsers:
Image|endswith:
- 'brave.exe'
- 'chrome.exe'
- 'chromium.exe'
- 'firefox.exe'
- 'msedge.exe'
- 'msedgewebview2.exe'
- 'opera.exe'
- 'vivaldi.exe'
filter_main_common_talkers:
Image|endswith: 'searchapp.exe' # Windows search service uses signifcant amount of Azure FD
filter_main_known_benign_domains:
DestinationHostname|contains:
- 'afdxtest.z01.azurefd.net' # used by Cortana; Cisco Umbrella top 1m
- 'fp-afd.azurefd.net' # used by Cortana; Cisco Umbrella top 1m
- 'fp-afdx-bpdee4gtg6frejfd.z01.azurefd.net' # used by Cortana; Cisco Umbrella top 1m
- 'roxy.azurefd.net' # used by Cortana; Cisco Umbrella top 1m
- 'powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net' # Used by VS Code; Cisco Umbrella top 1m
- 'storage-explorer-publishing-feapcgfgbzc2cjek.b01.azurefd.net' # Used by Azure Storage Explorer; Cisco Umbrella top 1m
- 'graph.azurefd.net' # MS Graph; Cisco Umbrella top 1m
condition: selection and not 1 of filter_main_*
falsepositives:
- Results are not inherently suspicious, but should be investigated during threat hunting for potential cloud C2.
- Organization-specific Azure Front Door endpoints
level: medium
Stages and Predicates
Stage 0: condition
selection and not 1 of filter_main_*Stage 1: selection
selection:
DestinationHostname|contains: 'azurefd.net'
Stage 2: not filter_main_*
filter_main_web_browsers:
Image|endswith:
- 'brave.exe'
- 'chrome.exe'
- 'chromium.exe'
- 'firefox.exe'
- 'msedge.exe'
- 'msedgewebview2.exe'
- 'opera.exe'
- 'vivaldi.exe'
filter_main_common_talkers:
Image|endswith: 'searchapp.exe'
filter_main_known_benign_domains:
DestinationHostname|contains:
- 'afdxtest.z01.azurefd.net'
- 'fp-afd.azurefd.net'
- 'fp-afdx-bpdee4gtg6frejfd.z01.azurefd.net'
- 'roxy.azurefd.net'
- 'powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net'
- 'storage-explorer-publishing-feapcgfgbzc2cjek.b01.azurefd.net'
- 'graph.azurefd.net'
Exclusions
Top-level NOT(...) conjuncts: predicates this rule actively suppresses.
| Field | Kind | Excluded values |
|---|---|---|
DestinationHostname | match | afdxtest.z01.azurefd.net |
DestinationHostname | match | fp-afd.azurefd.net |
DestinationHostname | match | fp-afdx-bpdee4gtg6frejfd.z01.azurefd.net |
DestinationHostname | match | graph.azurefd.net |
DestinationHostname | match | powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net |
DestinationHostname | match | roxy.azurefd.net |
DestinationHostname | match | storage-explorer-publishing-feapcgfgbzc2cjek.b01.azurefd.net |
Image | ends_with | brave.exe |
Image | ends_with | chrome.exe |
Image | ends_with | chromium.exe |
Image | ends_with | firefox.exe |
Image | ends_with | msedge.exe |
Image | ends_with | msedgewebview2.exe |
Image | ends_with | opera.exe |
Image | ends_with | searchapp.exe |
Image | ends_with | vivaldi.exe |
Indicators
Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.
| Field | Kind | Values |
|---|---|---|
DestinationHostname | match |
|