CONDITIONAL ACCESS
POLICY STATE
NAMED LOCATIONS
EXCLUSIONS
DetectionBlue TeamSOCOctober 12, 2026•9 min read

Detecting Conditional Access and Security Policy Tampering

Conditional Access is the gate for every cloud sign-in. Disabling, widening or excluding into a policy is how an attacker opens it.

Scroll

Once an attacker holds a privileged role, one of the quietest moves is weakening the controls that would stop their next sign-in: disabling an MFA or compliant-device policy, adding an exclusion for a compromised account or marking a hostile IP range as a trusted named location. All of these are audited, and all are rare in a stable tenant, which makes them strong detections.

Signals at a Glance

SignalWhereATT&CK
Conditional Access policy set to disabled or report-onlyEntra AuditLogsT1556.009
Policy deletedEntra AuditLogsT1562
User, group or app added to a policy exclusion listEntra AuditLogsT1556.009
Named location created or its IP ranges expanded and marked trustedEntra AuditLogsT1562
Authentication methods policy or security defaults changedEntra AuditLogsT1556.006

Policy State and Exclusions

Entra logs Update conditional access policy, Delete conditional access policy and Add conditional access policy with before and after values. Parse the modified properties to learn what changed, not just that something did:

// Microsoft Sentinel (KQL) - Conditional Access policy changes with state and exclusion deltas
AuditLogs
| where OperationName in ("Update conditional access policy", "Delete conditional access policy", "Add conditional access policy")
| where Result =~ "success"
| extend Policy = tostring(TargetResources[0].displayName),
         Actor = coalesce(tostring(InitiatedBy.user.userPrincipalName), tostring(InitiatedBy.app.displayName)),
         ActorIp = tostring(InitiatedBy.user.ipAddress),
         OldValue = tostring(TargetResources[0].modifiedProperties[0].oldValue),
         NewValue = tostring(TargetResources[0].modifiedProperties[0].newValue)
| extend Disabled = NewValue has '"state":"disabled"' or NewValue has '"state":"enabledForReportingButNotEnforced"',
         ExclusionsChanged = NewValue has "excludeUsers" and OldValue != NewValue
| where OperationName == "Delete conditional access policy" or Disabled or ExclusionsChanged
| project TimeGenerated, OperationName, Policy, Actor, ActorIp, Disabled, ExclusionsChanged, OldValue, NewValue
// tune/validate: property layout differs by event; check a sample and diff old versus new JSON before alerting

Trusted Locations and Defaults

Expanding a named location that Conditional Access trusts is a way to bypass MFA without touching any policy. The same Sigma logic covers location, policy and authentication method changes:

title: Entra ID Conditional Access And Named Location Changes
logsource:
  product: azure
  service: auditlogs
detection:
  ca_policy:
    properties.message:
      - 'Update conditional access policy'
      - 'Delete conditional access policy'
  named_location:
    properties.message:
      - 'Add named location'
      - 'Update named location'
      - 'Delete named location'
  auth_methods:
    properties.message|contains: 'authentication method'
  condition: ca_policy or named_location or auth_methods
level: high
# tune/validate: scope by actor allowlist (identity engineering), and confirm message strings against your log source
Vetted sources

Use Microsoft Entra Conditional Access documentation, Microsoft Sentinel and Defender XDR content for policy changes, the SigmaHQ Azure audit rules and Elastic detection rules for Conditional Access modification. Baseline your own environment: tenants that manage policy through scripts will show regular, expected changes.

Build Detections That Fire

Mjolnir Security helps blue teams turn threat intelligence into high-fidelity detections across endpoint, network, identity and cloud telemetry.

Detection EngineeringManaged Detection & ResponseThreat HuntingIncident ResponsePurple Teaming
  • Detection Engineering We build and tune detections mapped to ATT&CK from your own telemetry.
  • Threat Hunting as a Service Hypothesis-driven hunts for the behaviours on this page.
  • 24/7 Incident Response Containment when a detection fires. Call +1 833 403 5875.
Written by: Mjolnir Threat Research (MTAC)  |  Published: October 12, 2026  |  Last reviewed: October 12, 2026