← Back to SOC feed Coverage →

Top accounts performing user submissions (FP)

kql MEDIUM Azure-Sentinel
T1566
CloudAppEvents
huntingmicrosoftofficial
This rule was pulled from an open-source repository and enriched with AI. Validate in a test environment before deploying to production.
View original rule at Azure-Sentinel →
Retrieved: 2026-09-03T23:00:00Z · Confidence: medium

Hunt Hypothesis

This rule identifies accounts with a high volume of false positive submissions, which may indicate an adversary using T1566 (Phishing) to test email gateway filters or a compromised account generating noise to obscure malicious activity. Proactively hunting for this behavior allows the SOC to distinguish between legitimate user error and targeted phishing campaigns or credential abuse before they result in a successful breach.

KQL Query

CloudAppEvents
| where ActionType == "UserSubmission"
| extend RawData = parse_json(RawEventData)
| extend RecordType = toint(RawData.RecordType), SubmissionType = tostring(RawData.SubmissionType), UserId = tostring(RawData.UserId)
| where RecordType == 29 and SubmissionType == "3"
| summarize count() by UserId
| top 15 by count_
| render piechart

Analytic Rule Definition

id: fa0ce1b0-59fa-4fea-87e8-6752951cec3f
name: Top accounts performing user submissions (FP)
description: |
  This query visualises the top accounts performing user false positive submissions.
description-detailed: |
  This query visualises the top accounts performing user false positive submissions.
  Query is also included as part of the Defender for Office 365 solution in Sentinel: https://techcommunity.microsoft.com/blog/microsoftdefenderforoffice365blog/part-2-build-custom-email-security-reports-and-dashboards-with-workbooks-in-micr/4411303
requiredDataConnectors:
- connectorId: MicrosoftThreatProtection
  dataTypes:
  - CloudAppEvents
tactics:
  - InitialAccess
relevantTechniques:
  - T1566
query: |
  CloudAppEvents
  | where ActionType == "UserSubmission"
  | extend RawData = parse_json(RawEventData)
  | extend RecordType = toint(RawData.RecordType), SubmissionType = tostring(RawData.SubmissionType), UserId = tostring(RawData.UserId)
  | where RecordType == 29 and SubmissionType == "3"
  | summarize count() by UserId
  | top 15 by count_
  | render piechart
version: 1.0.0

Required Data Sources

Sentinel TableNotes
CloudAppEventsEnsure this data connector is enabled

MITRE ATT&CK Context

References

False Positive Guidance

Original source: https://github.com/Azure/Azure-Sentinel/blob/main/Hunting Queries/Microsoft 365 Defender/Email and Collaboration Queries/Submissions/Top accounts performing user submissions - FP.yaml