T1556.009 Splunk · SPL

Detect Conditional Access Policies in Splunk

Adversaries may disable or modify Conditional Access Policies (CAP) to enable persistent access to compromised accounts. Conditional Access applies additional verification based on IP, device enrollment, MFA, and risk-based signals. Attackers modify CAPs by adding trusted IP ranges (Scattered Spider added attacker-controlled IPs), removing MFA requirements, adding user exclusions, or disabling policies. Storm-0501 circumvented CAPs using hybrid-joined servers. In AWS/GCP, IAM condition attributes can be weakened by removing IP or time-of-day restrictions.

MITRE ATT&CK

Tactic
Credential Access Defense Evasion Persistence
Technique
T1556 Modify Authentication Process
Sub-technique
T1556.009 Conditional Access Policies
Canonical reference
https://attack.mitre.org/techniques/T1556/009/

SPL Detection Query

Splunk (SPL)
spl
index=azure_audit sourcetype="azure:aad:audit"
  (LoggedByService="Conditional Access" OR Category="Policy")
  (OperationName="Add conditional access policy" OR OperationName="Update conditional access policy"
   OR OperationName="Delete conditional access policy" OR OperationName="Add named location"
   OR OperationName="Update named location")
| spath input=ModifiedProperties output=proplist path="{}"
| mvexpand proplist
| spath input=proplist output=propname path="displayName"
| spath input=proplist output=oldval path="oldValue"
| spath input=proplist output=newval path="newValue"
| eval Risk=case(
    OperationName="Delete conditional access policy", "CRITICAL",
    match(OperationName, "(?i)Update.*policy") AND match(lower(newval), "disabled"), "CRITICAL",
    match(OperationName, "(?i)(Add|Update).*location") AND match(lower(newval), "trusted.*true"), "HIGH",
    match(propname, "(?i)grantControls"), "HIGH",
    1==1, "MEDIUM"
  )
| table _time, Actor, OperationName, PolicyName, propname, oldval, newval, Risk
| sort - Risk, - _time
critical severity high confidence

Detects Conditional Access Policy modifications in Splunk with risk-scored output. CRITICAL for policy deletion or disabling, HIGH for trusted location additions and grant control changes, MEDIUM for other policy modifications. Parses the ModifiedProperties JSON array to expose specific field-level changes.

Data Sources

Azure Active Directory Audit LogsMicrosoft 365 Unified Audit Log

Required Sourcetypes

azure:aad:audit

False Positives & Tuning

  • Authorized Identity Admin modifying CAPs per approved change request
  • Emergency access (break-glass) account management that may temporarily modify exclusion lists
  • Automated policy-as-code deployments via Terraform or ARM templates that update CAPs programmatically
  • Microsoft service updates to named locations or policy state
Download portable Sigma rule (.yml)

Other platforms for T1556.009


Testing Methodology

Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.

  1. Test 1Disable a Non-Critical Conditional Access Policy

    Expected signal: Azure AD Audit Log: OperationName 'Update conditional access policy', ModifiedProperties showing State changed from 'enabled' to 'disabled'. Actor logged as the authenticated Microsoft Graph session user.

  2. Test 2Add a Trusted Named Location (Simulating Scattered Spider TTP)

    Expected signal: Azure AD Audit Log: OperationName 'Add named location', TargetResources showing the new location name and IP range. IsTrusted=true visible in audit details.

  3. Test 3Enumerate Existing Conditional Access Policies

    Expected signal: Azure AD Audit Log: Read operation on conditional access policies. Microsoft Graph API call logged. PowerShell ScriptBlock Log Event ID 4104 with the Get-MgIdentityConditionalAccessPolicy command.

Unlock Pro Content

Get the full detection package for T1556.009 including response playbook, investigation guide, and atomic red team tests.

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections