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
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) < 8
8
+
and any([subject.subject, sender.display_name],
9
+
regex.icontains(., "(?:cloud|storage|mailbox)")
10
+
)
11
+
and any(ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).intents,
12
+
.name == "cred_theft" and .confidence == "high"
13
+
)
14
+
and regex.icontains(beta.ocr(file.message_screenshot()).text,
15
+
"storage.{0,50}full",
16
+
"free.{0,50}upgrade",
17
+
"storage.{0,50}details",
18
+
"storage.{0,50}quot",
19
+
"(?:mailbox|cloud|account).{0,50}disabled",
20
+
"(?:email|cloud|total).{0,50}storage",
21
+
"(?:account|cloud).{0,50}(?:suspended?|at risk)"
22
+
)
23
+
and not strings.ilike(beta.ocr(file.message_screenshot()).text, "*free plan*")
24
+
and (
25
+
any(body.current_thread.links,
26
+
// fingerprints of a hyperlinked image
27
+
.display_text is null
28
+
and .display_url.url is null
29
+
and .href_url.domain.domain not in $tenant_domains
30
+
and (
31
+
.href_url.domain.root_domain in $free_file_hosts
32
+
or .href_url.domain.root_domain == "beehiiv.com"
33
+
)
34
+
)
35
+
or (
36
+
(
37
+
not headers.auth_summary.spf.pass
38
+
or (
39
+
headers.return_path.domain.root_domain is not null
40
+
and headers.return_path.domain.root_domain != sender.email.domain.root_domain
41
+
)
42
+
)
43
+
// negate security training platforms
44
+
and headers.return_path.domain.root_domain not in~ (
45
+
"knowbe4.com",
46
+
"proofpoint.com",
47
+
"cofense.com",
48
+
"infosec.com"
49
+
)
50
+
)
51
+
)
52
+
53
+
// and the sender is not from high trust sender root domains
54
+
and (
55
+
(
56
+
sender.email.domain.root_domain in $high_trust_sender_root_domains
57
+
and not headers.auth_summary.dmarc.pass
58
+
)
59
+
or sender.email.domain.root_domain not in $high_trust_sender_root_domains
0 commit comments