Skip to content

Commit 689183c

Browse files
authored
Create link_pdf_sender_domain_name.yml
1 parent 2381c37 commit 689183c

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: "Link: PDF filename impersonation with credential theft language"
2+
description: "Detects messages where the link display text mimics a PDF filename containing the sender's domain name, combined with credential theft language or suspicious requests. The message is sent to an invalid recipient address or to the sender themselves, indicating potential abuse of email infrastructure."
3+
type: "rule"
4+
severity: "medium"
5+
source: |
6+
type.inbound
7+
and (
8+
// extract the first body link and compare to the sender's sld, look for less than 4 levenshtein distances or the exact match on the sld in URL ending in .pdf
9+
any(regex.iextract(body.current_thread.links[0].display_text,
10+
'(?P<starter>.*)\b\d+\.pdf$'
11+
),
12+
strings.ilevenshtein(.named_groups["starter"], sender.email.domain.sld) <= 4
13+
)
14+
or (
15+
strings.istarts_with(body.current_thread.links[0].display_text,
16+
sender.email.domain.sld
17+
)
18+
and regex.icontains(body.current_thread.links[0].display_text,
19+
'\b\d+\.pdf$'
20+
)
21+
)
22+
)
23+
// cred theft intent or other request language
24+
and (
25+
any(ml.nlu_classifier(body.current_thread.text).intents,
26+
.name == "cred_theft" and .confidence != "low"
27+
)
28+
or any(filter(ml.nlu_classifier(body.current_thread.text).entities,
29+
.name == "request"
30+
),
31+
regex.icontains(.text, 'please (?:see|find|click|(?:re)?view)')
32+
)
33+
)
34+
// self sender pattern or sum of recipients is zero
35+
and (
36+
length(recipients.to) <= 1
37+
and (
38+
sender.email.email == recipients.to[0].email.email
39+
or recipients.to[0].email.domain.valid == false
40+
or sum([
41+
length(recipients.to),
42+
length(recipients.cc),
43+
length(recipients.bcc)
44+
]
45+
) == 0
46+
)
47+
)
48+
49+
attack_types:
50+
- "Credential Phishing"
51+
tactics_and_techniques:
52+
- "Social engineering"
53+
- "Evasion"
54+
- "PDF"
55+
detection_methods:
56+
- "Content analysis"
57+
- "Natural Language Understanding"
58+
- "Header analysis"
59+
- "Sender analysis"
60+
- "URL analysis"

0 commit comments

Comments
 (0)