SOP-47: Conditional Access Policy Tampering Response

·

Conditional Access policies are the primary enforcement layer for MFA, compliant-device requirements, and location-based access controls in Entra ID. An attacker who gains Conditional Access Administrator or Global Administrator privileges can delete or disable a CA policy, add their compromised account to an exclusion list, or create a new named location covering an attacker-controlled IP to permanently bypass MFA for subsequent sign-ins.

CA policy changes are logged in Entra ID Audit Logs under the Policy category. Any CA policy modification not initiated via an approved change management ticket requires immediate investigation.

☰ Table of Contents

01 Background 02 Identification 03 Containment 04 Eradication 05 Escalation
🛠

01 — BACKGROUND

TECHNIQUE OVERVIEW
01
CA Policy Tampering Attack Patterns
T1556 / T1548.004

Conditional Access policy tampering is an authentication bypass technique (T1556 — Modify Authentication Process). After gaining an admin account, attackers modify CA policies to create a persistent backdoor: they can sign in without MFA, from any location, using any device. The most common patterns are: (1) adding their compromised account or a new backdoor account to a CA exclusion group; (2) deleting the "Require MFA for all users" policy; (3) creating a new named location for an attacker IP and marking it as trusted.

FieldValue
MITRE TechniqueT1556 — Modify Authentication Process, T1548.004 — Elevated Execution with Prompt
Log SourceAuditLogs (Category == "Policy"), SigninLogs
Key OperationsUpdate conditional access policy, Delete conditional access policy, Add named location
Required RolesConditional Access Administrator, Security Administrator, Global Administrator
Detection PriorityCRITICAL — any CA policy deletion or exclusion addition triggers immediate response
🔍

02 — IDENTIFICATION

2 INDICATORS
▶ Investigation Workflow
I1
CA Policy Deletion & Modification Event Analysis
T1556
WHY CHECK

Entra ID Audit Logs record every CA policy creation, update, and deletion with the initiating admin's UPN, the policy name, and the specific properties that changed. A deletion or a modification that adds accounts to the exclusions list is the most dangerous CA change pattern and must be cross-checked against an approved change management ticket immediately.

📍 Portal Navigation — Entra ID Audit Logs (CA Policy Changes)
entra.microsoft.com Identity Monitoring → Audit logs → filter Category: Policy
  • 1Navigate to Entra ID → Monitoring → Audit logs. Set Category: Policy and filter Activity: Update conditional access policy / Delete conditional access policy.
  • 2For each change event, expand the Modified Properties tab. Compare the "old value" and "new value" JSON to identify exactly what was changed. Exclusion additions appear as new entries in conditions.users.excludeUsers or excludeGroups.
  • 3Check the Initiated by field for the acting admin. Cross-reference with your CA admin allowlist and verify against open change tickets in your ITSM tool.
  • 4If a policy was deleted, use the audit log to recover the policy definition from the "old value" JSON — this is the data needed to recreate it.
  • 5Run the KQL below to query all CA policy changes and named location additions in the last 7 days.
Change TypeMeaningAction
Policy deletedMFA or compliance control removed for all users in scopeESCALATE IMMEDIATELY — recreate policy
excludeUsers / excludeGroups modifiedSpecific accounts added to bypass MFA enforcementRemove exclusion NOW, audit excluded accounts
State changed to disabledPolicy put in report-only or off state — controls no longer enforcedRe-enable policy immediately
New named location addedAttacker-controlled IP added as trusted location bypassing location controlsReview IP, remove if not authorized
DETECTS: All Conditional Access policy modifications and named location additions in Entra ID Audit Logs over the last 7 days — returns actor identity, policy name, and change type for unauthorized modification triage.
KQL — Microsoft Sentinel (AuditLogs — CA Policy Changes)
AuditLogs | where TimeGenerated > ago(7d) | where Category == "Policy" | where OperationName in ( "Update conditional access policy", "Delete conditional access policy", "Add conditional access policy", "Add named location", "Update named location") | extend Actor = tostring(InitiatedBy.user.userPrincipalName) | extend PolicyName = tostring(TargetResources[0].displayName) | extend ChangeType = OperationName | project TimeGenerated, ChangeType, Actor, PolicyName, Result, AdditionalDetails | order by TimeGenerated desc
DETECTS: Conditional Access policy changes in Splunk from Entra ID audit events — highlights deletions and updates for unauthorized policy tampering investigation.
SPL — Splunk
index=* sourcetype=azure:aad:audit category=Policy (operationName="Update conditional access policy" OR operationName="Delete conditional access policy" OR operationName="Add named location") | stats count as changes, values(targetDisplayName) as policies, values(operationName) as operations by initiatedByUser, result | sort -changes
I2
Post-Modification Sign-in Bypass Detection
T1548.004
WHY CHECK

After modifying a CA policy, an attacker signs in from their attacker-controlled IP without completing MFA. This sign-in is visible in SigninLogs with authenticationRequirement: singleFactorAuthentication or conditionalAccessStatus: notApplied. Sign-ins matching this pattern within hours of a CA policy modification strongly confirm the modification was intentional backdoor creation.

📍 Portal Navigation — Entra ID Sign-in Logs
entra.microsoft.com Identity Monitoring → Sign-in logs → filter by actor UPN + time window
  • 1Filter sign-in logs by the actor who made the CA modification. Look for sign-ins in the 30 minutes after the policy change timestamp.
  • 2Check the Conditional Access column — look for entries showing Not Applied or Success (No controls required). These indicate the policy change took effect and was immediately exploited.
  • 3Review the sign-in IP and country. Does it match the actor's normal location? If not, this is a confirmed compromised account being used from an attacker-controlled host.
  • 4Check what the actor did after signing in: Audit logs filtered by initiating user and time window will show all admin operations performed in the elevated session.
  • 5Run the KQL below to find sign-ins without MFA from the actor account in the window immediately after the CA policy change.
DETECTS: Sign-ins where Conditional Access was not applied or single-factor authentication was used, occurring within 2 hours of a CA policy modification — confirms the policy tampering was immediately exploited for MFA bypass.
KQL — Microsoft Sentinel (SigninLogs — MFA Bypass After CA Change)
let ActorUPN = "ACTOR_UPN"; let ModificationTime = datetime("CA_CHANGE_TIMESTAMP"); SigninLogs | where TimeGenerated between (ModificationTime .. (ModificationTime + 2h)) | where UserPrincipalName == ActorUPN | where ConditionalAccessStatus in ("notApplied","success") | where AuthenticationRequirement == "singleFactorAuthentication" | project TimeGenerated, UserPrincipalName, IPAddress, Location, ConditionalAccessStatus, AuthenticationRequirement, AppDisplayName, ResultType | order by TimeGenerated asc

If the attacker deleted a CA policy (rather than modifying it), all users covered by that policy are immediately unprotected — not just the attacker's account. Recreating the deleted policy is the highest-priority containment action.

🚫

03 — CONTAINMENT

IMMEDIATE ACTION
C1
Verdict & Escalation Decision
DECISION GATE
▶ Triage Verdict — Select One
CONFIRMED CA policy deleted or exclusion added, sign-in bypass observed from anomalous IP immediately after → Disable actor account, restore CA policy, revoke all active sessions, full IR
PARTIAL CA policy modified without ticket, no post-change sign-in bypass yet detected → Revert policy change, disable actor account pending investigation, contact user
FALSE POSITIVE Verified emergency change by on-call admin, ticket number confirmed → Document the change, update alert baseline, close
C2
CA Policy Restoration & Account Lockout
CONTAINMENT
  • 1If a policy was deleted: use the old-value JSON from the audit log to recreate it immediately at Entra ID → Security → Conditional Access → New policy.
  • 2If a policy was modified: revert the change by restoring the old exclusions list or re-enabling the policy. Use Conditional Access → [Policy] → Edit → remove unauthorized exclusion.
  • 3Disable the acting admin account: Entra ID → Users → [User] → Block sign-in: Yes and revoke all active sessions.
  • 4Delete any unauthorized named locations added by the attacker: Conditional Access → Named locations → [Location] → Delete.
  • 5Force all users to re-authenticate by revoking all refresh tokens: use the Revoke sign-in sessions option in Entra ID for all affected admin accounts.
🗑

04 — ERADICATION

CLEANUP
E1
CA Policy Governance Hardening
ERADICATION
  • 1Implement CA policy change approval: require that all CA policy modifications go through Entra ID PIM for Conditional Access Administrator role, with manager approval required.
  • 2Export and baseline all CA policies as JSON using the What If tool and Microsoft Graph API. Store in a version-controlled repository. Diff against baseline weekly.
  • 3Create a Sentinel analytics rule alerting on every CA policy deletion or modification not initiated by an approved CA admin service account.
  • 4Implement CA policy protection: lock critical policies using a dedicated emergency-access-only admin account and remove Conditional Access Administrator from all general admin accounts.
  • 5Review and reduce the CA exclusions list: any account in a CA exclusion must have a compensating control (hardware token, named location tied to a corporate CIDR, compliant device requirement).
Eradication Complete When
  • All deleted or modified CA policies restored to authorized configuration
  • Unauthorized named locations removed
  • Actor account disabled and all sessions revoked
  • CA policy change approval workflow enforced via PIM
  • CA policy baseline exported and version-controlled
  • Sentinel alert rule for CA policy changes created
📢

05 — ESCALATION

ESCALATION PATHS
ES1
Escalation Matrix
ESCALATION
ConditionSeverityActionNotify
Policy deleted, MFA bypass sign-in confirmedSEV1Full IR, restore policy, disable account, audit all admin sessionsCISO → IAM team → Legal
Exclusion added for backdoor account, bypass imminentSEV1Remove exclusion, disable both accounts, full auditSOC Lead → CISO
Policy modified without ticket, no bypass observed yetSEV2Revert change, disable actor pending investigationSOC Lead → IAM team
Authorized emergency change, ticket verifiedINFODocument, update baseline, closeNone

Stay Threat-Ready

Follow CyberHawk Threat Intel for daily SOC analyst playbooks, detection engineering guides, and threat intelligence.

📺 YouTube 🎤 TikTok 🐦 X / Twitter 📡 Telegram
All SOPs Blog Web App (Free)
They can't exploit you if you are the Exploit.