This hypothesis targets adversaries leveraging T1566 (Phishing) to deliver malicious payloads to the SecOps mailbox by exploiting organization-level allow overrides that bypass standard filtering controls. Proactively hunting for this behavior is critical because the SecOps mailbox is a high-value target for threat actors seeking to compromise security operations, and identifying anomalous threat types in overridden emails helps detect sophisticated phishing campaigns that evade standard defenses.
EmailEvents
| where Timestamp > ago(30d)
| extend Key = strcat(NetworkMessageId, "-", RecipientEmailAddress)
| summarize arg_max(Timestamp, *) by Key
| where OrgLevelPolicy == "SecOps Mailbox" and OrgLevelAction == "Allow"
| extend ThreatType = case(ThreatTypes has "Malware", "Malware", ThreatTypes has "Phish", "Phish", ThreatTypes has "Spam", "Spam", ThreatTypes)
| summarize TotalEmails = count() by OrgLevelAction, OrgLevelPolicy, ThreatType
| sort by TotalEmails desc
| project ['Override Action'] = OrgLevelAction, ['Override Policy'] = OrgLevelPolicy, ['Threat Type'] = ThreatType, ['Total Emails'] = TotalEmails
id: d234d85d-1dd5-433b-a984-0fd764f25363
name: SecOps Mailbox Overrides by Threat Type
description: |
This query breaks down inbound emails delivered to the SecOps mailbox by an organisation-level allow override, grouped by threat type.
description-detailed: |
This query breaks down inbound emails delivered to the SecOps mailbox in Microsoft Defender for Office 365 as a result of an organisation-level allow override (OrgLevelPolicy == "SecOps Mailbox" and OrgLevelAction == "Allow"), grouped by threat type (Malware, Phish, Spam). Messages are de-duplicated to the latest record per NetworkMessageId and recipient.
requiredDataConnectors:
- connectorId: MicrosoftThreatProtection
dataTypes:
- EmailEvents
tactics:
- InitialAccess
relevantTechniques:
- T1566
query: |
EmailEvents
| where Timestamp > ago(30d)
| extend Key = strcat(NetworkMessageId, "-", RecipientEmailAddress)
| summarize arg_max(Timestamp, *) by Key
| where OrgLevelPolicy == "SecOps Mailbox" and OrgLevelAction == "Allow"
| extend ThreatType = case(ThreatTypes has "Malware", "Malware", ThreatTypes has "Phish", "Phish", ThreatTypes has "Spam", "Spam", ThreatTypes)
| summarize TotalEmails = count() by OrgLevelAction, OrgLevelPolicy, ThreatType
| sort by TotalEmails desc
| project ['Override Action'] = OrgLevelAction, ['Override Policy'] = OrgLevelPolicy, ['Threat Type'] = ThreatType, ['Total Emails'] = TotalEmails
version: 1.0.0
| Sentinel Table | Notes |
|---|---|
EmailEvents | Ensure this data connector is enabled |
SenderAddress matches known scanner domains (e.g., @qualys.com, @tenable.com) or where the Subject contains specific keywords like “Scan Report,” “Daily Summary,” or “Alert Notification.”SenderAddress matches ITSM domains (e.g., @service-now.com, @jira.com) or where the Subject starts with “Ticket #” or contains “Status Updated.”SenderAddress matches backup vendor domains (e.g., @veeam.com, @commvault.com) or where the Subject contains “Job Completed,” “Backup Report,” or “DR Alert.”SenderAddress matches