Skip to content

Commit 1a69459

Browse files
[PR #3717] added rule: Out-of-office auto-reply with urgent financial request from free email provider
1 parent b1e7dd9 commit 1a69459

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
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")
38+
)
39+
40+
attack_types:
41+
- "BEC/Fraud"
42+
tactics_and_techniques:
43+
- "Free email provider"
44+
- "Impersonation: Employee"
45+
- "Social engineering"
46+
detection_methods:
47+
- "Content analysis"
48+
- "Header analysis"
49+
- "Natural Language Understanding"
50+
- "Sender analysis"
51+
id: "4182fbde-f254-5d42-ada2-50ee5d2e9b79"
52+
og_id: "5c9fc8ab-84d7-5bf3-a044-101529ef0d9a"
53+
testing_pr: 3717
54+
testing_sha: bc7ca33b2d24d51ff6eb4711a3c5ffbdf1899956

0 commit comments

Comments
 (0)