Skip to content

Commit 2052ebf

Browse files
[Shared Samples] [PR #4631] added rule: PR# 4631 - Brand impersonation: Cloud services with credential theft intent
1 parent bf234b9 commit 2052ebf

1 file changed

Lines changed: 88 additions & 0 deletions

File tree

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
name: "PR# 4631 - Brand impersonation: Cloud services with credential theft intent"
2+
description: "Detects messages impersonating cloud services that contain high-confidence credential theft language and file sharing topics. The message starts with 'Cloud' or a cloud emoji or Cloud+ text, contains links to external domains not matching the sender's domain, and lacks recipient identification entities."
3+
type: "rule"
4+
severity: "medium"
5+
source: |
6+
type.inbound
7+
and (
8+
any([body.current_thread.text, body.html.inner_text],
9+
strings.starts_with(., 'Cloud') or strings.icontains(., "Cloud+ ")
10+
)
11+
// cloud emoji
12+
or regex.contains(body.current_thread.text, '^\x{2601}')
13+
or regex.icontains(body.current_thread.text, '^!\s*Cloud storage')
14+
// address in the body
15+
or strings.icontains(body.current_thread.text,
16+
'4563 Cloud Way, Server City, CA'
17+
)
18+
)
19+
and any(ml.nlu_classifier(body.current_thread.text).intents,
20+
.name == 'cred_theft' and .confidence == 'high'
21+
)
22+
and any(ml.nlu_classifier(body.current_thread.text).topics,
23+
.name in (
24+
'File Sharing and Cloud Services',
25+
'Payment Information',
26+
'Financial Communications'
27+
)
28+
and .confidence != 'low'
29+
)
30+
// sender domain matches no body domains
31+
and length(filter(body.links,
32+
.href_url.scheme != 'mailto'
33+
and .href_url.domain.root_domain is not null
34+
and .href_url.domain.root_domain != 'oracle.com'
35+
)
36+
) > 0
37+
and all(filter(body.links,
38+
.href_url.scheme != 'mailto'
39+
and .href_url.domain.root_domain is not null
40+
),
41+
.href_url.domain.root_domain != coalesce(sender.email.domain.root_domain,
42+
""
43+
)
44+
)
45+
// negate legit cloud companies
46+
and not (
47+
coalesce(sender.email.domain.root_domain, "") in (
48+
"cloud-cme.com",
49+
"cloudcounting.online",
50+
"cloudhealthtech.com",
51+
"cloudpano.com"
52+
)
53+
// check for SPF or DMARC passed
54+
and (headers.auth_summary.spf.pass or headers.auth_summary.dmarc.pass)
55+
)
56+
// negate highly trusted sender domains unless they fail DMARC authentication
57+
and not (
58+
sender.email.domain.root_domain in $high_trust_sender_root_domains
59+
and coalesce(headers.auth_summary.dmarc.pass, false)
60+
)
61+
// negate Spark Cloud Attachments
62+
and not any(headers.hops,
63+
.index == 0
64+
and any(.fields,
65+
.name == "X-Readdle-Spark-Cloud-Attachment"
66+
and .value is not null
67+
)
68+
)
69+
and not (
70+
sender.email.email == "noreply@icloud.com.cn"
71+
and coalesce(headers.auth_summary.dmarc.pass, false)
72+
)
73+
attack_types:
74+
- "Credential Phishing"
75+
tactics_and_techniques:
76+
- "Social engineering"
77+
detection_methods:
78+
- "Content analysis"
79+
- "Natural Language Understanding"
80+
- "Sender analysis"
81+
- "URL analysis"
82+
id: "07314893-def5-54d1-9885-d4fa37c25843"
83+
tags:
84+
- created_from_open_prs
85+
- rule_status_renamed
86+
- pr_author_cybher0808
87+
references:
88+
- https://github.com/sublime-security/sublime-rules/pull/4631

0 commit comments

Comments
 (0)