You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
name: "Out-of-office auto-reply with urgent financial request from free email provider"
2
+
description: "Detects suspicious out-of-office messages from free email providers that contain urgent financial payment requests. These messages combine legitimate auto-reply topics with BEC indicators including urgency, financial terms, and payment processing language to appear trustworthy while requesting financial actions."
3
+
type: "rule"
4
+
severity: "low"
5
+
source: |
6
+
type.inbound
7
+
and sender.email.domain.root_domain in~ $free_email_providers
8
+
and length(body.previous_threads) == 0
9
+
and length(body.current_thread.text) < 500
10
+
and not subject.is_reply
11
+
and not subject.is_forward
12
+
13
+
// Subject line exclusions for legitimate auto-replies
14
+
and not strings.contains(subject.subject, "Automatic reply:")
15
+
and not strings.contains(subject.subject, "Auto-Reply")
16
+
and not strings.contains(subject.subject, "EXT Automatic reply:")
17
+
18
+
// Must be classified as out-of-office topic
19
+
and any(ml.nlu_classifier(body.current_thread.text).topics,
20
+
.name == "Out of Office and Automatic Replies"
21
+
)
22
+
23
+
// Must contain the suspicious combo: urgency + financial + request
24
+
and length(distinct(filter(ml.nlu_classifier(body.current_thread.text).entities,
25
+
.name in ("urgency", "financial", "request")
26
+
),
27
+
.name
28
+
)
29
+
) == 3
30
+
31
+
// Specific payment/financial request patterns (the key BEC indicator)
32
+
and (
33
+
strings.icontains(body.current_thread.text, "processing an expense payment")
34
+
or strings.icontains(body.current_thread.text, "handle the payment")
35
+
or strings.icontains(body.current_thread.text, "process the invoice")
36
+
or strings.icontains(body.current_thread.text, "expense payment")
37
+
or strings.icontains(body.current_thread.text, "payment during")
0 commit comments