Skip to content

Commit 1cf7057

Browse files
[PR #3465] added rule: Impersonation: Social Security Administration (SSA)
1 parent f3bbd5a commit 1cf7057

File tree

1 file changed

+110
-0
lines changed

1 file changed

+110
-0
lines changed
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
name: "Impersonation: Social Security Administration (SSA)"
2+
description: "Detects messages impersonating the Social Security Administration (SSA) that contain links, a suspicious indicator, and are sent from non-government domains by unsolicited or suspicious senders."
3+
type: "rule"
4+
severity: "medium"
5+
source: |
6+
type.inbound
7+
and length(attachments) < 2
8+
// Identifies as SSA without catching strings such as "Alyssa"
9+
and (
10+
regex.contains(sender.display_name, '^SSA\b')
11+
or strings.icontains(sender.display_name, "Social Security Administration")
12+
// there are confusables in the display name
13+
or (
14+
strings.replace_confusables(sender.display_name) != sender.display_name
15+
and strings.contains(strings.replace_confusables(sender.display_name),
16+
"SSA"
17+
)
18+
)
19+
or any([sender.display_name, subject.subject],
20+
regex.icontains(strings.replace_confusables(.),
21+
'Social (?:benefits|security)',
22+
)
23+
)
24+
or (
25+
any(attachments,
26+
.file_type in ("doc", "docx")
27+
and any(file.explode(.),
28+
strings.icontains(.scan.strings.raw,
29+
"Social Security Administration"
30+
)
31+
)
32+
)
33+
)
34+
)
35+
36+
// Not from a .gov domain
37+
and not (sender.email.domain.tld == "gov" and headers.auth_summary.dmarc.pass)
38+
39+
// Additional suspicious indicator
40+
and (
41+
any(ml.nlu_classifier(body.current_thread.text).topics,
42+
.name == "Secure Message" and .confidence == "high"
43+
)
44+
or strings.icontains(body.current_thread.text, "SSA Statement Viewer")
45+
or strings.icontains(body.current_thread.text, "Social Security Statement")
46+
or regex.icontains(body.current_thread.text,
47+
"(?:view|open) (?:your|the).{0,8} (statement|document)"
48+
)
49+
// real SSA phone number
50+
or strings.icontains(body.current_thread.text, "1-800-772-1213")
51+
or any(body.links,
52+
any(regex.extract(.href_url.path, '\.(?P<ext>[^./?#]+)(?:[?#]|$)'),
53+
.named_groups["ext"] in $file_extensions_executables
54+
)
55+
)
56+
or any(ml.logo_detect(file.message_screenshot()).brands,
57+
.name == "SSA" and .confidence == "high"
58+
)
59+
or (
60+
any(attachments,
61+
.file_type in ("doc", "docx")
62+
and any(file.explode(.),
63+
strings.icontains(.scan.strings.raw, "suspended")
64+
or strings.icontains(.scan.strings.raw, "fraudulent")
65+
or strings.icontains(.scan.strings.raw, "violated")
66+
or strings.icontains(.scan.strings.raw, "false identity")
67+
or regex.icontains(.scan.strings.raw,
68+
'\+?([ilo0-9]{1}.)?\(?[ilo0-9]{3}?\)?.[ilo0-9]{3}.?[ilo0-9]{4}',
69+
'\+?([ilo0-9]{1,2})?\s?\(?\d{3}\)?[\s\.\-⋅]{0,5}[ilo0-9]{3}[\s\.\-⋅]{0,5}[ilo0-9]{4}'
70+
)
71+
)
72+
)
73+
)
74+
)
75+
and not any(ml.nlu_classifier(body.current_thread.text).topics,
76+
.name in (
77+
"Newsletters and Digests",
78+
"Advertising and Promotions",
79+
"Events and Webinars"
80+
)
81+
and .confidence == "high"
82+
)
83+
// not a forward or reply
84+
and (headers.in_reply_to is null or length(headers.references) == 0)
85+
and (
86+
not profile.by_sender().solicited
87+
or (
88+
profile.by_sender().any_messages_malicious_or_spam
89+
and not profile.by_sender().any_messages_benign
90+
)
91+
)
92+
and not (
93+
sender.email.domain.root_domain in $high_trust_sender_root_domains
94+
and coalesce(headers.auth_summary.dmarc.pass, false)
95+
)
96+
97+
attack_types:
98+
- "BEC/Fraud"
99+
- "Credential Phishing"
100+
tactics_and_techniques:
101+
- "Impersonation: Brand"
102+
- "Social engineering"
103+
detection_methods:
104+
- "Content analysis"
105+
- "Sender analysis"
106+
- "URL analysis"
107+
id: "c7ed8724-dfcc-59e5-896f-e96da25098d9"
108+
og_id: "6196767e-6264-5833-96f3-d1e34424d7b5"
109+
testing_pr: 3465
110+
testing_sha: a91ecb56ee95255ec6c092484825172bf1deeac6

0 commit comments

Comments
 (0)