Skip to content

Commit 1446c20

Browse files
[Test Rules] [PR #4316] added rule: Brand impersonation: USPS
1 parent 31431c5 commit 1446c20

1 file changed

Lines changed: 110 additions & 0 deletions

File tree

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
name: "Brand impersonation: USPS"
2+
description: "Impersonation of the United States Postal Service."
3+
type: "rule"
4+
severity: "high"
5+
source: |
6+
type.inbound
7+
and (
8+
any(ml.logo_detect(file.message_screenshot()).brands, .name == "USPS")
9+
or strings.icontains(sender.display_name, "USPS")
10+
or regex.contains(body.html.display_text, 'USPS\s*\.\s*COM')
11+
or strings.icontains(body.current_thread.text, 'USPS Delivery Team')
12+
)
13+
and length(body.links) > 0
14+
and 3 of (
15+
any(body.links,
16+
strings.ilike(.display_text,
17+
"*check now*",
18+
"*track*",
19+
"*package*",
20+
'*view your order*',
21+
"*update*"
22+
)
23+
),
24+
strings.ilike(body.current_thread.text,
25+
"*returned*to*sender*",
26+
"*redelivery*",
27+
'*USPS promotions*',
28+
'*review your package*',
29+
'*receiver address*',
30+
'*sorry tolet*',
31+
'*Due to an incorrect*'
32+
),
33+
// impersonal greeting
34+
any(ml.nlu_classifier(body.current_thread.text).entities,
35+
.name == "recipient" and .text =~ "Customer"
36+
),
37+
any(ml.nlu_classifier(body.current_thread.text).intents,
38+
.name == "cred_theft" and .confidence != "low"
39+
),
40+
// free email sender
41+
sender.email.domain.root_domain in $free_email_providers,
42+
// contains link to recently registered domain
43+
any(body.links, network.whois(.href_url.domain).days_old < 15),
44+
(
45+
regex.icontains(strings.replace_confusables(body.html.display_text),
46+
'\b(?:u.?s.?p.?s|shipping|delivery)\b'
47+
)
48+
and not regex.icontains(body.html.display_text,
49+
'\b(?:usps|shipping|delivery)\b'
50+
)
51+
)
52+
)
53+
and (
54+
sender.email.domain.root_domain not in (
55+
"usps.com",
56+
"opinions-inmoment.com", // https://faq.usps.com/s/article/USPS-Customer-Experience-Surveys
57+
"shipup.co", // third party shipping company
58+
"withings.com" // third party shipping company
59+
)
60+
or (
61+
sender.email.domain.root_domain in (
62+
"usps.com",
63+
"opinions-inmoment.com" // https://faq.usps.com/s/article/USPS-Customer-Experience-Surveys
64+
)
65+
and not headers.auth_summary.dmarc.pass
66+
)
67+
)
68+
// negate newsletters
69+
and not (
70+
length(body.links) > 20
71+
or any(ml.nlu_classifier(body.html.display_text).topics,
72+
.name == "Newsletters and Digests"
73+
)
74+
)
75+
// not all links to usps.com
76+
and not all(body.links, .href_url.domain.root_domain == "usps.com")
77+
// negate legit forwards and replies
78+
and not (
79+
(subject.is_reply or subject.is_forward)
80+
and length(body.previous_threads) > 0
81+
and (length(headers.references) > 0 or headers.in_reply_to is not null)
82+
)
83+
// negate highly trusted sender domains unless they fail DMARC authentication
84+
and (
85+
(
86+
sender.email.domain.root_domain in $high_trust_sender_root_domains
87+
and not headers.auth_summary.dmarc.pass
88+
)
89+
or sender.email.domain.root_domain not in $high_trust_sender_root_domains
90+
)
91+
and not any(body.links,
92+
regex.icontains(.display_text, 'Track (?:Your Order|Shipment)')
93+
and .href_url.domain.domain == 'tools.usps.com'
94+
)
95+
and not sender.email.domain.root_domain in ('shopifyemail.com')
96+
attack_types:
97+
- "Credential Phishing"
98+
tactics_and_techniques:
99+
- "Image as content"
100+
- "Impersonation: Brand"
101+
- "Social engineering"
102+
detection_methods:
103+
- "Computer Vision"
104+
- "Content analysis"
105+
- "Natural Language Understanding"
106+
- "Sender analysis"
107+
id: "9dd9ffb2-d6b7-5680-9f65-4037eeed994b"
108+
og_id: "28b9130a-d8e0-50af-97c9-c1b8f4c46d68"
109+
testing_pr: 4316
110+
testing_sha: 12c57bb387bdd43c2e6caf28823c68a4d897a689

0 commit comments

Comments
 (0)