Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
[metadata]
creation_date = "2025/08/19"
integration = ["o365"]
maturity = "production"
promotion = true
updated_date = "2025/08/19"

[rule]
author = ["Elastic"]
description = """
Identifies a Microsoft 365 audit log generated for Threat Intelligence signals by Microsoft Defender for Office 365.
Signals generated may relate to services such as Exchange Online, SharePoint Online, OneDrive for Business and others.
"""
false_positives = [
"""
Signals are generated by Microsoft Defender for Office 365. False-positives may occur if legitimate user activity is
misclassified as a threat.
""",
]
from = "now-9m"
index = ["filebeat-*", "logs-o365.audit-*"]
language = "kuery"
license = "Elastic License v2"
max_signals = 1000
name = "Threat Intelligence Signal - Microsoft Defender for Office 365"
note = "For 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).\n"
references = [
"https://learn.microsoft.com/en-us/purview/audit-supported-services",
"https://www.octiga.io/en-gb/insights/nist-csf-for-office-365",
"https://learn.microsoft.com/en-us/office/office-365-management-api/office-365-management-activity-api-schema",
]
risk_score = 47
rule_id = "60c814fc-7d06-11f0-b326-f661ea17fbcd"
severity = "medium"
tags = [
"Domain: Cloud",
"Domain: SaaS",
"Data Source: Microsoft 365",
"Data Source: Microsoft 365 Audit Logs",
"Use Case: Threat Detection",
]
timestamp_override = "event.ingested"
type = "query"

query = '''
event.dataset: "o365.audit" and event.code: "ThreatIntelligence"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it make sense to adjust this event in the integrations to gave event.kind set to alert, so we automatically push an alert for it using the default promotion rule?

Copy link
Contributor Author

@terrancedejesus terrancedejesus Aug 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great question. Honestly I do not see why not other than keeping them separate for our visibility. Checking telemetry, I see we have several promotions for compliance related alerts. Based on docs from MSFT, this seems to be a good fit for adjusting event.kind to alert. The only other consideration is max signals for external alerts and potentially missing these if the threshold is hit because of compliance related alerts that are noisy. I'd rather keep separate as a rule.

'''


[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1566"
name = "Phishing"
reference = "https://attack.mitre.org/techniques/T1566/"
Comment on lines +50 to +55
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this true for all generated signals?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.



[rule.threat.tactic]
id = "TA0001"
name = "Initial Access"
reference = "https://attack.mitre.org/tactics/TA0001/"

Loading