Microsoft Defender XDR Incident External Alerts
Generates a detection alert for each Microsoft Defender XDR incident written to the configured indices. Microsoft Defender emits multiple update events for the same incident as its member alerts and status evolve, all sharing a stable incident identifier. This rule suppresses those update events so that a single, continuous Elastic alert is maintained per Defender incident rather than a new alert per update. Enabling this rule allows you to immediately begin investigating Microsoft Defender XDR incidents in the app.
Elastic rule (View on GitHub)
1[metadata]
2creation_date = "2026/06/30"
3integration = ["m365_defender"]
4maturity = "production"
5promotion = true
6updated_date = "2026/06/30"
7
8[rule]
9author = ["Elastic"]
10description = """
11Generates a detection alert for each Microsoft Defender XDR incident written to the configured indices. Microsoft
12Defender emits multiple update events for the same incident as its member alerts and status evolve, all sharing a stable
13incident identifier. This rule suppresses those update events so that a single, continuous Elastic alert is maintained
14per Defender incident rather than a new alert per update. Enabling this rule allows you to immediately begin
15investigating Microsoft Defender XDR incidents in the app.
16"""
17from = "now-2m"
18index = ["logs-m365_defender.incident-*"]
19interval = "1m"
20language = "kuery"
21license = "Elastic License v2"
22max_signals = 1000
23name = "Microsoft Defender XDR Incident External Alerts"
24note = """## Triage and analysis
25
26### Investigating Microsoft Defender XDR Incident External Alerts
27
28Microsoft Defender XDR correlates related alerts across endpoints, identities, email, and applications into a single incident, providing the full attack story in one place. The incident data stream (`logs-m365_defender.incident-*`) carries these pre-correlated incidents. This rule promotes each Defender incident into an Elastic detection alert so analysts can investigate the correlated story without leaving the app.
29
30Microsoft Defender emits several update events for the same incident as member alerts are added and status, classification, and evidence evolve. Every update shares the same stable Defender incident identifier (`m365_defender.incident.id`, which the integration also copies into `event.id`). The rule groups on that identifier so subsequent updates accumulate into the existing Elastic alert rather than creating duplicates.
31
32The member alerts that make up an incident may also arrive through the Microsoft 365 Unified Audit Log (`logs-o365.audit-*`) rather than the native integration data stream. In that case the M365 Defender Alerts Signal (UAL) building block rule (rule_id: 054853f3-2ce0-41f3-a6eb-4a4867f39cdc) generates correlation signals from that source and can be used alongside this promotion rule.
33
34### Possible investigation steps
35
36- Review `m365_defender.incident.display_name`, `m365_defender.incident.severity`, and `m365_defender.incident.tags` to understand the scope and priority of the incident.
37- Pivot to the Defender portal using `m365_defender.incident.web_url.original` for the correlated attack story, evidence graph, and recommended actions.
38- Examine the member alert fields under `m365_defender.incident.alert.*` (titles, MITRE techniques, detection sources, evidence) to scope the impacted entities and behaviors.
39- Review `m365_defender.incident.status`, `m365_defender.incident.classification`, and `m365_defender.incident.determination` to see whether Defender has already resolved or classified the incident.
40- Check `m365_defender.incident.redirect_incident_id` to confirm the incident has not been merged into another incident.
41
42### False positive analysis
43
44- Defender incidents are pre-correlated and tuned by Microsoft, so true false positives are uncommon. When they occur, confirm with the responsible team before excluding.
45- Incidents driven entirely by known and trusted administrative tools, security assessments, or scheduled automation may be benign. Validate intent before adding an exception.
46- Use `m365_defender.incident.classification` and `m365_defender.incident.determination` to filter out activity Defender itself has marked as a false positive.
47
48### Response and remediation
49
50- Isolate affected endpoints or disable affected accounts if malicious behavior is confirmed across the incident's member alerts.
51- Use the Defender portal to action native response options (quarantine, automated investigation, account remediation) for the incident.
52- Investigate how the threat entered the environment and close any exploited gaps.
53- Reset credentials for compromised accounts or escalate to incident response.
54- Document the findings and tune the upstream Defender policy or add an Elastic exception as appropriate.
55"""
56references = ["https://docs.elastic.co/en/integrations/m365_defender"]
57risk_score = 47
58rule_id = "3c99579e-6491-4562-87f4-4d10f0a822b4"
59rule_name_override = "m365_defender.incident.display_name"
60setup = """## Setup
61
62### Microsoft Defender XDR Incident Integration
63This rule is designed to capture incident events generated by the Microsoft Defender XDR integration and promote them as Elastic detection alerts.
64
65To capture Microsoft Defender XDR incidents, install and configure the Microsoft Defender XDR integration to ingest incident events into the `logs-m365_defender.incident-*` index pattern.
66
67### Alert suppression and the Defender update lifecycle
68
69Microsoft Defender writes multiple update events per incident during its lifecycle, all sharing the same stable identifier (`m365_defender.incident.id`, copied to `event.id`). This rule suppresses on that identifier so updates accumulate into one Elastic alert. Note the following alert suppression semantics:
70
71- Suppression applies going forward from when the suppressing alert is created; it does not retroactively merge alerts created before the rule was enabled.
72- Updates are aggregated into the existing alert only while that alert is open and within the suppression window. If an analyst closes the suppressing alert, a later Defender update will open a new Elastic alert.
73- The suppression window (default 1 day) is tunable. Size it to your environment's typical Defender incident lifecycle; extending it keeps a single alert open longer but delays new-alert creation for late updates.
74
75### Avoiding duplicate alerts
76
77To avoid double-counting, enable either this incident-level rule or the Microsoft Defender XDR Alert External Alerts rule (alert-level), not both: a Defender incident's child alerts appear in both data streams. Incident-level (this rule) produces the least noise (one Elastic alert per Defender incident) and is the recommended default; alert-level provides finer-grained, per-alert triage.
78
79### Additional notes
80
81For information on troubleshooting the maximum alerts warning please refer to this [guide](https://www.elastic.co/guide/en/security/current/alerts-ui-monitor.html#troubleshoot-max-alerts).
82"""
83severity = "medium"
84tags = [
85 "Data Source: Microsoft Defender XDR",
86 "Use Case: Threat Detection",
87 "Resources: Investigation Guide",
88 "Promotion: External Alerts",
89]
90timestamp_override = "event.ingested"
91type = "query"
92
93query = '''
94event.kind: alert and data_stream.dataset: m365_defender.incident
95'''
96
97
98[[rule.risk_score_mapping]]
99field = "event.severity"
100operator = "equals"
101value = ""
102
103[[rule.severity_mapping]]
104field = "m365_defender.incident.severity"
105operator = "equals"
106severity = "low"
107value = "informational"
108
109[[rule.severity_mapping]]
110field = "m365_defender.incident.severity"
111operator = "equals"
112severity = "low"
113value = "low"
114
115[[rule.severity_mapping]]
116field = "m365_defender.incident.severity"
117operator = "equals"
118severity = "medium"
119value = "medium"
120
121[[rule.severity_mapping]]
122field = "m365_defender.incident.severity"
123operator = "equals"
124severity = "high"
125value = "high"
126
127[rule.alert_suppression]
128group_by = ["m365_defender.incident.id", "m365_defender.incident.tenant_id"]
129missing_fields_strategy = "doNotSuppress"
130
131[rule.alert_suppression.duration]
132unit = "h"
133value = 24
Triage and analysis
Investigating Microsoft Defender XDR Incident External Alerts
Microsoft Defender XDR correlates related alerts across endpoints, identities, email, and applications into a single incident, providing the full attack story in one place. The incident data stream (logs-m365_defender.incident-*) carries these pre-correlated incidents. This rule promotes each Defender incident into an Elastic detection alert so analysts can investigate the correlated story without leaving the app.
Microsoft Defender emits several update events for the same incident as member alerts are added and status, classification, and evidence evolve. Every update shares the same stable Defender incident identifier (m365_defender.incident.id, which the integration also copies into event.id). The rule groups on that identifier so subsequent updates accumulate into the existing Elastic alert rather than creating duplicates.
The member alerts that make up an incident may also arrive through the Microsoft 365 Unified Audit Log (logs-o365.audit-*) rather than the native integration data stream. In that case the M365 Defender Alerts Signal (UAL) building block rule (rule_id: 054853f3-2ce0-41f3-a6eb-4a4867f39cdc) generates correlation signals from that source and can be used alongside this promotion rule.
Possible investigation steps
- Review
m365_defender.incident.display_name,m365_defender.incident.severity, andm365_defender.incident.tagsto understand the scope and priority of the incident. - Pivot to the Defender portal using
m365_defender.incident.web_url.originalfor the correlated attack story, evidence graph, and recommended actions. - Examine the member alert fields under
m365_defender.incident.alert.*(titles, MITRE techniques, detection sources, evidence) to scope the impacted entities and behaviors. - Review
m365_defender.incident.status,m365_defender.incident.classification, andm365_defender.incident.determinationto see whether Defender has already resolved or classified the incident. - Check
m365_defender.incident.redirect_incident_idto confirm the incident has not been merged into another incident.
False positive analysis
- Defender incidents are pre-correlated and tuned by Microsoft, so true false positives are uncommon. When they occur, confirm with the responsible team before excluding.
- Incidents driven entirely by known and trusted administrative tools, security assessments, or scheduled automation may be benign. Validate intent before adding an exception.
- Use
m365_defender.incident.classificationandm365_defender.incident.determinationto filter out activity Defender itself has marked as a false positive.
Response and remediation
- Isolate affected endpoints or disable affected accounts if malicious behavior is confirmed across the incident's member alerts.
- Use the Defender portal to action native response options (quarantine, automated investigation, account remediation) for the incident.
- Investigate how the threat entered the environment and close any exploited gaps.
- Reset credentials for compromised accounts or escalate to incident response.
- Document the findings and tune the upstream Defender policy or add an Elastic exception as appropriate.
References
Related rules
- Microsoft Defender XDR Alert External Alerts
- Suspicious ScreenConnect Client Child Process
- Unusual Parent-Child Relationship
- Potential DNS Tunneling via NsLookup
- Credential Acquisition via Registry Hive Dumping