Skip to content

Commit 8f4b524

Browse files
[PR #3427] added rule: Attachment: Suspicious employee policy update document lure
1 parent e715963 commit 8f4b524

File tree

1 file changed

+105
-0
lines changed

1 file changed

+105
-0
lines changed
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
name: "Attachment: Suspicious employee policy update document lure"
2+
description: "Inbound message containing subject line and attachments related to handbook, compensation, or policy updates. Attachments are limited to Microsoft Word documents and match similar update-related terminology. This pattern has been observed used to delivery credential phishing via QR codes."
3+
type: "rule"
4+
severity: "medium"
5+
source: |
6+
type.inbound
7+
and (
8+
// the subject contains pay related items
9+
(
10+
strings.icontains(subject.subject, 'salary')
11+
or regex.icontains(subject.subject, '\bpay(?:out|roll|\b)')
12+
or strings.icontains(subject.subject, 'remuneration')
13+
or strings.icontains(subject.subject, 'bonus')
14+
or strings.icontains(subject.subject, 'incentive')
15+
or strings.icontains(subject.subject, 'merit')
16+
or strings.icontains(subject.subject, 'handbook')
17+
or strings.icontains(subject.subject, 'benefits')
18+
or strings.icontains(subject.subject, 'earnings')
19+
)
20+
and (
21+
strings.icontains(subject.subject, 'review')
22+
or strings.icontains(subject.subject, 'breakdown')
23+
or strings.icontains(subject.subject, 'Access Your')
24+
or strings.icontains(subject.subject, 'evaluation')
25+
or regex.icontains(subject.subject, 'eval\b')
26+
or strings.icontains(subject.subject, 'assessment')
27+
or strings.icontains(subject.subject, 'appraisal')
28+
or strings.icontains(subject.subject, 'feedback')
29+
or strings.icontains(subject.subject, 'performance')
30+
or strings.icontains(subject.subject, 'adjustment')
31+
or strings.icontains(subject.subject, 'qualification')
32+
or strings.icontains(subject.subject, 'increase')
33+
or strings.icontains(subject.subject, 'raise')
34+
or strings.icontains(subject.subject, 'change')
35+
or strings.icontains(subject.subject, 'modification')
36+
or strings.icontains(subject.subject, 'distribution')
37+
or strings.icontains(subject.subject, 'details')
38+
or regex.icontains(subject.subject, 'revis(?:ed|ion)')
39+
or regex.icontains(subject.subject, 'amend(?:ed|ment)')
40+
or regex.icontains(subject.subject, 'update(?:d| to)')
41+
or strings.icontains(subject.subject, 'plan')
42+
or strings.icontains(subject.subject, 'notification')
43+
)
44+
)
45+
and 0 < length(attachments) <= 3
46+
and any(attachments,
47+
.file_extension in ("doc", "docx", "docm", "pdf")
48+
and (
49+
strings.icontains(.file_name, 'salary')
50+
or strings.icontains(.file_name, 'compensation')
51+
or regex.icontains(.file_name, '\bpay(?:roll|\b)')
52+
or strings.icontains(.file_name, 'bonus')
53+
or strings.icontains(.file_name, 'incentive')
54+
or strings.icontains(.file_name, 'merit')
55+
or strings.icontains(.file_name, 'handbook')
56+
or strings.icontains(.file_name, 'benefits')
57+
)
58+
and (
59+
strings.icontains(.file_name, 'review')
60+
or strings.icontains(.file_name, 'evaluation')
61+
or regex.icontains(.file_name, 'eval\b')
62+
or strings.icontains(.file_name, 'assessment')
63+
or strings.icontains(.file_name, 'appraisal')
64+
or strings.icontains(.file_name, 'feedback')
65+
or strings.icontains(.file_name, 'performance')
66+
or strings.icontains(.file_name, 'adjustment')
67+
or strings.icontains(.file_name, 'increase')
68+
or strings.icontains(.file_name, 'increment')
69+
or strings.icontains(.file_name, 'raise')
70+
or strings.icontains(.file_name, 'change')
71+
or strings.icontains(.file_name, 'modification')
72+
or strings.icontains(.file_name, 'distribution')
73+
or strings.icontains(.file_name, 'statement')
74+
or regex.icontains(.file_name, 'revis(?:ed|ion)')
75+
or regex.icontains(.file_name, 'amend(?:ed|ment)')
76+
or regex.icontains(.file_name, 'adjust(?:ed|ment)')
77+
or regex.icontains(.file_name, 'update(?:d| to)')
78+
or regex.icontains(.file_name, '(January|February|March|April|May|June|July|August|September|October|November|December)\s20[2,3]{1}\d{1}')
79+
or (
80+
// file name contains recipient's email
81+
any(recipients.to,
82+
strings.icontains(..file_name, .email.email)
83+
and .email.domain.valid
84+
)
85+
)
86+
)
87+
)
88+
and not (
89+
sender.email.domain.root_domain in $high_trust_sender_root_domains
90+
and coalesce(headers.auth_summary.dmarc.pass, false)
91+
)
92+
attack_types:
93+
- "Credential Phishing"
94+
tactics_and_techniques:
95+
- "PDF"
96+
- "Social engineering"
97+
- "Evasion"
98+
detection_methods:
99+
- "Content analysis"
100+
- "File analysis"
101+
- "Sender analysis"
102+
id: "02e8ec08-c623-5794-8bde-5e784430100b"
103+
og_id: "a8bf1fd1-d9fa-572d-8957-51d6025a5248"
104+
testing_pr: 3427
105+
testing_sha: df46e5c78a7b0b18c76073e4fe1e6da5da32f7a6

0 commit comments

Comments
 (0)