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
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)
0 commit comments