Skip to content

Commit 45f91c2

Browse files
[Test Rules] [PR #4372] added rule: Cloud storage impersonation with credential theft indicators
1 parent aaecd86 commit 45f91c2

1 file changed

Lines changed: 70 additions & 0 deletions

File tree

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: "Cloud storage impersonation with credential theft indicators"
2+
description: "Detects messages impersonating cloud storage services that contain hyperlinked images leading to free file hosts, where message screenshots reveal high-confidence credential theft language and storage-related urgency tactics."
3+
type: "rule"
4+
severity: "medium"
5+
source: |
6+
type.inbound
7+
and 0 < length(body.current_thread.links) < 10
8+
and any([subject.subject, sender.display_name],
9+
regex.icontains(., "(?:cloud|storage|mailbox|account|system|service)")
10+
)
11+
and any(ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).intents,
12+
.name == "cred_theft" and .confidence == "high"
13+
)
14+
and not any(ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics,
15+
.name == "Customer Service and Support" and .confidence == "high"
16+
)
17+
and regex.icontains(beta.ocr(file.message_screenshot()).text,
18+
"storage.{0,50}full",
19+
"free.{0,50}upgrade",
20+
"storage.{0,50}details",
21+
"storage.{0,50}quot",
22+
"(?:mailbox|account|cloud).{0,50}(?:at risk|storage|disabled)"
23+
)
24+
and not strings.ilike(beta.ocr(file.message_screenshot()).text, "*free plan*")
25+
and (
26+
any(body.current_thread.links,
27+
// fingerprints of a hyperlinked image
28+
.display_text is null
29+
and .display_url.url is null
30+
and .href_url.domain.domain not in $tenant_domains
31+
and (
32+
.href_url.domain.root_domain in $free_file_hosts
33+
or .href_url.domain.root_domain in $url_shorteners
34+
or network.whois(.href_url.domain).days_old < 365
35+
or .href_url.domain.root_domain == "beehiiv.com"
36+
or regex.icontains(.href_url.path, '^\/[a-z0-9]{20,}$')
37+
or (
38+
strings.icontains(.href_url.path, '.html')
39+
and coalesce(.href_url.domain.root_domain, "null") != sender.email.domain.root_domain
40+
)
41+
)
42+
)
43+
)
44+
// and the sender is not from high trust sender root domains
45+
and (
46+
(
47+
sender.email.domain.root_domain in $high_trust_sender_root_domains
48+
and not headers.auth_summary.dmarc.pass
49+
)
50+
or sender.email.domain.root_domain not in $high_trust_sender_root_domains
51+
)
52+
attack_types:
53+
- "Credential Phishing"
54+
tactics_and_techniques:
55+
- "Free file host"
56+
- "Image as content"
57+
- "Impersonation: Brand"
58+
- "Social engineering"
59+
detection_methods:
60+
- "Computer Vision"
61+
- "Content analysis"
62+
- "Header analysis"
63+
- "Natural Language Understanding"
64+
- "Optical Character Recognition"
65+
- "Sender analysis"
66+
- "URL analysis"
67+
id: "748454c2-cfd2-5704-8b38-6c7d71849368"
68+
og_id: "4c20f72c-0045-518c-8157-7dad5f196ecc"
69+
testing_pr: 4372
70+
testing_sha: 57e5f533cbab4072a4d77c0d9190a08243c5c0cc

0 commit comments

Comments
 (0)