Who Disabled the Sentinel Analytics Rule?
The SOC noticed something strange.
A detection that normally generated alerts had gone quiet.
The source data was still arriving.
The KQL still returned suspicious activity.
But Microsoft Sentinel was no longer creating alerts from the rule.
The analytics rule had been disabled.
When was it changed?
Who changed it?
What else did that identity modify?
And what happened while the detection was unavailable?

The Attacks Hadn't Stopped. The Detection Had.
A quiet analytics rule can mean there is nothing to detect. It can also mean the detection itself changed.
Silence was not evidence of safety
Agent Foskett checked the underlying data independently of the analytics rule.
Events were still arriving.
The hunting query still returned relevant activity.
The telemetry had not disappeared. The detection path had.
Confirm the current rule state
Microsoft.SecurityInsights/alertRules, and their configuration includes whether the rule is enabled.Agent Foskett preserved the affected rule's identifier, display name, workspace and current configuration.
Current state tells you what the rule looks like now. It does not tell you who changed it.
Start with Microsoft Sentinel's audit trail
SentinelAudit was available, Agent Foskett searched successful analytics-rule write and delete operations. A disable action changes rule configuration, so a write event is an important starting point.- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
SentinelAudit
| where TimeGenerated > ago(30d)
| where OperationName in (
"Microsoft.SecurityInsights/alertRules/Write",
"Microsoft.SecurityInsights/alertRules/Delete"
)
| where Status == "Success"
| project TimeGenerated,
OperationName,
SentinelResourceName,
SentinelResourceId,
SentinelResourceType,
SentinelResourceKind,
ExtendedProperties,
CorrelationId
| order by TimeGenerated descA write event did not automatically mean “disabled”
The query could change.
The schedule could change.
The severity could change.
The rule could be enabled or disabled.
Agent Foskett inspected the audit details and correlated the event with the affected rule rather than treating every write as proof of disablement.
The operation identifies a change. The investigation still has to establish what changed.
Use AzureActivity to identify the control-plane actor
AzureActivity. Agent Foskett filtered Microsoft.SecurityInsights operations and narrowed the results to the affected analytics-rule resource.- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
let RuleId = "00000000-0000-0000-0000-000000000000";
AzureActivity
| where TimeGenerated > ago(30d)
| where OperationNameValue startswith "MICROSOFT.SECURITYINSIGHTS"
| where ResourceId has RuleId
| project TimeGenerated,
OperationNameValue,
ActivityStatusValue,
Caller,
CallerIpAddress,
ResourceId,
CorrelationId,
Properties
| order by TimeGenerated ascWho changed the rule?
It could be an administrator performing an approved change.
It could be an automation identity.
Or it could be a compromised privileged account.
Finding the caller establishes attribution to the recorded operation. It does not establish malicious intent.
Was the change approved?
Was maintenance underway?
Was the rule intentionally disabled during tuning?
Was a deployment pipeline updating Sentinel content?
Did the owner of the caller identity expect the change?
A security control changing is evidence. Whether that change was legitimate requires context.
Did the same identity touch other Sentinel resources?
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
let SuspiciousCaller = "analyst@contoso.com";
AzureActivity
| where TimeGenerated > ago(7d)
| where OperationNameValue startswith "MICROSOFT.SECURITYINSIGHTS"
| where Caller =~ SuspiciousCaller
| project TimeGenerated,
OperationNameValue,
ActivityStatusValue,
Caller,
CallerIpAddress,
ResourceId,
CorrelationId
| order by TimeGenerated ascThe rule might not have been the only thing changed
A detection can also be weakened by changing its KQL, schedule, threshold, entity mapping, suppression behaviour or other configuration.
A rule can remain enabled while becoming far less useful.
Detection tampering is not limited to an obvious Off switch.
Now investigate the blind window
That interval became a hunting window.
Instead of asking which incidents Sentinel created, he ran the preserved detection logic directly against retained source telemetry.
If the detector was unavailable, hunt the data the detector should have evaluated.
Re-run the detection logic across the gap
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
let GapStart = datetime(2026-10-01 01:00:00);
let GapEnd = datetime(2026-10-01 07:00:00);
DeviceProcessEvents
| where Timestamp between (GapStart .. GapEnd)
// Insert the preserved analytics-rule detection logic here
| project Timestamp,
DeviceName,
AccountName,
FileName,
ProcessCommandLine
| order by Timestamp ascNo incident did not mean no matching activity
The missing incident was a consequence of the detection gap — not proof that nothing happened.
Build the detection-tampering timeline
What the evidence can and cannot prove
SentinelAudit can record analytics-rule management operations when the required audit data is available and retained. AzureActivity can help reconstruct Microsoft Sentinel management actions and the recorded caller.Neither fact alone proves malicious intent.
A disabled rule could result from approved maintenance, tuning, automation, human error or deliberate tampering.
Connect the configuration change, the identity behind it, the surrounding context and the activity that occurred during the detection gap.
The lesson
That sounded like good news.
It wasn't.
Agent Foskett confirmed the source telemetry was healthy, reconstructed the analytics-rule change, identified the caller and hunted the period in which the detection was unavailable.
Sometimes the attacker doesn't evade the detection. They remove the detection.
Related investigations
Final thought
Analytics rules determine which activity becomes visible to the SOC and which activity becomes an alert worth investigating.
So when a detection changes unexpectedly, the change itself deserves an investigation.
Find the rule.
Find the change.
Find the caller.
Then hunt everything that happened while the SOC was blind.
The Logs Already Knew! 🔎

