← Back to Explore
sublimelowRule
BEC/Fraud: Generic scam attempt to undisclosed recipients
Detects potential generic scams by analyzing text within the email body and other suspicious signals.
Detection Query
type.inbound
// undisclosed recipients
and any([recipients.to, recipients.bcc, recipients.cc],
any(., .display_name =~ "Undisclosed recipients")
)
// mismatched sender (from) and Reply-to
and any(headers.reply_to,
length(headers.reply_to) > 0
and all(headers.reply_to,
.email.domain.root_domain != sender.email.domain.root_domain
)
)
// generic recipient
and any(ml.nlu_classifier(body.current_thread.text).entities,
.name == "recipient" and regex.icontains(.text, "(sir|madam)")
)
// request made
and any(ml.nlu_classifier(body.current_thread.text).entities,
.name == "request"
)
// not a bec scam
and all(ml.nlu_classifier(body.current_thread.text).intents, .name != "bec")
// negate highly trusted sender domains unless they fail DMARC authentication
and (
(
sender.email.domain.root_domain in $high_trust_sender_root_domains
and not headers.auth_summary.dmarc.pass
)
or sender.email.domain.root_domain not in $high_trust_sender_root_domains
)
and (
(
profile.by_sender().prevalence in ("new", "outlier")
and not profile.by_sender().solicited
)
or (
profile.by_sender().any_messages_malicious_or_spam
and not profile.by_sender().any_messages_benign
)
)
and not profile.by_sender().any_messages_benign
Data Sources
Email MessagesEmail HeadersEmail Attachments
Platforms
email
Raw Content
name: "BEC/Fraud: Generic scam attempt to undisclosed recipients"
description: |
Detects potential generic scams by analyzing text within the email body and other suspicious signals.
type: "rule"
severity: "low"
source: |
type.inbound
// undisclosed recipients
and any([recipients.to, recipients.bcc, recipients.cc],
any(., .display_name =~ "Undisclosed recipients")
)
// mismatched sender (from) and Reply-to
and any(headers.reply_to,
length(headers.reply_to) > 0
and all(headers.reply_to,
.email.domain.root_domain != sender.email.domain.root_domain
)
)
// generic recipient
and any(ml.nlu_classifier(body.current_thread.text).entities,
.name == "recipient" and regex.icontains(.text, "(sir|madam)")
)
// request made
and any(ml.nlu_classifier(body.current_thread.text).entities,
.name == "request"
)
// not a bec scam
and all(ml.nlu_classifier(body.current_thread.text).intents, .name != "bec")
// negate highly trusted sender domains unless they fail DMARC authentication
and (
(
sender.email.domain.root_domain in $high_trust_sender_root_domains
and not headers.auth_summary.dmarc.pass
)
or sender.email.domain.root_domain not in $high_trust_sender_root_domains
)
and (
(
profile.by_sender().prevalence in ("new", "outlier")
and not profile.by_sender().solicited
)
or (
profile.by_sender().any_messages_malicious_or_spam
and not profile.by_sender().any_messages_benign
)
)
and not profile.by_sender().any_messages_benign
attack_types:
- "BEC/Fraud"
tactics_and_techniques:
- "Social engineering"
detection_methods:
- "Content analysis"
- "Header analysis"
- "Natural Language Understanding"
- "Sender analysis"
id: "5dac401f-d3c1-5092-aba4-58ab597c702b"