← Back to Explore
sublimelowRule
Attachment: Calendar invite from excessive self-reply sender
Detect messages where there are 2 or more previous threads, where all previous messages are self-replies from the same sender, and a calendar invite attachment with a generic online-meeting location. This pattern is observed as excessive unsolicited outreach with disruptive required intervention.
Detection Query
type.inbound
// previous threads are all self-replies
and (
(
length(body.previous_threads) >= 2
and all(body.previous_threads, .sender.email.email == sender.email.email)
)
// negate forwarded messages
and not (
(length(headers.references) > 0 or headers.in_reply_to is not null)
and subject.is_forward
)
)
// calendar invite present with generic "online location"
and (
length(attachments) > 0
and all(attachments,
(
.file_type == "ics"
or .file_extension == "ics"
or .content_type in ("application/ics", "text/calendar")
)
//
// This rule makes use of a beta feature and is subject to change without notice
// using the beta feature in custom rules is not suggested until it has been formally released
//
and any(beta.file.parse_ics(.).events,
strings.icontains(.location, "online meeting")
)
)
)
Data Sources
Email MessagesEmail HeadersEmail Attachments
Platforms
email
Raw Content
name: "Attachment: Calendar invite from excessive self-reply sender"
description: "Detect messages where there are 2 or more previous threads, where all previous messages are self-replies from the same sender, and a calendar invite attachment with a generic online-meeting location. This pattern is observed as excessive unsolicited outreach with disruptive required intervention."
type: "rule"
severity: "low"
source: |
type.inbound
// previous threads are all self-replies
and (
(
length(body.previous_threads) >= 2
and all(body.previous_threads, .sender.email.email == sender.email.email)
)
// negate forwarded messages
and not (
(length(headers.references) > 0 or headers.in_reply_to is not null)
and subject.is_forward
)
)
// calendar invite present with generic "online location"
and (
length(attachments) > 0
and all(attachments,
(
.file_type == "ics"
or .file_extension == "ics"
or .content_type in ("application/ics", "text/calendar")
)
//
// This rule makes use of a beta feature and is subject to change without notice
// using the beta feature in custom rules is not suggested until it has been formally released
//
and any(beta.file.parse_ics(.).events,
strings.icontains(.location, "online meeting")
)
)
)
attack_types:
- "Spam"
tactics_and_techniques:
- "Social engineering"
detection_methods:
- "File analysis"
- "Header analysis"
- "Content analysis"
id: "5a9ba97f-715e-5999-84d3-b459c1eb4117"