1+ name : " Brand impersonation: Adobe with suspicious language and link"
2+ description : " Email contains an Adobe logo, at least one link, and suspicious link language from a new sender."
3+ type : " rule"
4+ severity : " high"
5+ source : |
6+ type.inbound
7+ // all attachments are images or 0 attachments
8+ and (
9+ (
10+ length(attachments) > 0
11+ and all(attachments, .file_type in $file_types_images)
12+ )
13+ or length(attachments) == 0
14+ )
15+ and length(body.links) > 0
16+ and (
17+ any(ml.logo_detect(file.message_screenshot()).brands,
18+ .name == "Adobe" and .confidence in ("high")
19+ )
20+ or (
21+ strings.icontains(body.current_thread.text, "adobe")
22+ and (
23+ // leverage topic analysis to pick up on themes
24+ (
25+ length(ml.nlu_classifier(body.current_thread.text).topics) == 1
26+ and all(ml.nlu_classifier(body.current_thread.text).topics,
27+ .name == "File Sharing and Cloud Services"
28+ and .confidence != "low"
29+ )
30+ )
31+ // keywords if topic anlayis doesn't match
32+ or strings.icontains(body.current_thread.text, 'review the document')
33+ or strings.icontains(body.current_thread.text, 'review and sign')
34+ or strings.icontains(body.current_thread.text, 'access file')
35+ or strings.icontains(body.current_thread.text, 'pending document')
36+ )
37+ and length(body.current_thread.text) < 2000
38+ )
39+ )
40+ and (
41+ (
42+ //
43+ // This rule makes use of a beta feature and is subject to change without notice
44+ // using the beta feature in custom rules is not suggested until it has been formally released
45+ //
46+ strings.ilike(beta.ocr(file.message_screenshot()).text,
47+ "*review*",
48+ "*sign*",
49+ "*view*",
50+ "open",
51+ "*completed document*",
52+ "*open agreement*",
53+ "*open document*"
54+ )
55+ and not strings.ilike(beta.ocr(file.message_screenshot()).text,
56+ "*view this email*",
57+ "*view*browser*",
58+ "*view online*",
59+ "*business review*"
60+ )
61+ )
62+ or any(body.links,
63+ strings.ilike(.display_text,
64+ "*review*",
65+ "*sign*",
66+ "*view*",
67+ "open",
68+ "*completed document*",
69+ "*open agreement*",
70+ "*open document*",
71+ "*continue*"
72+ )
73+ and not strings.ilike(.display_text,
74+ "*view this email*",
75+ "*view*browser*",
76+ "*view online*"
77+ )
78+ )
79+ )
80+ and (
81+ (
82+ (
83+ length(headers.references) > 0
84+ or not any(headers.hops,
85+ any(.fields, strings.ilike(.name, "In-Reply-To"))
86+ )
87+ )
88+ and not (
89+ (
90+ strings.istarts_with(subject.subject, "RE:")
91+ or strings.istarts_with(subject.subject, "RES:")
92+ or strings.istarts_with(subject.subject, "R:")
93+ or strings.istarts_with(subject.subject, "ODG:")
94+ or strings.istarts_with(subject.subject, "答复:")
95+ or strings.istarts_with(subject.subject, "AW:")
96+ or strings.istarts_with(subject.subject, "TR:")
97+ or strings.istarts_with(subject.subject, "FWD:")
98+ or regex.imatch(subject.subject,
99+ '^\[?/{0,2}(EXT|EXTERNAL)\]?/{0,2}[: ]\s*(RE|FWD?|FW|AW|TR|ODG|答复):.*'
100+ )
101+ )
102+ )
103+ )
104+ or length(headers.references) == 0
105+ )
106+ and not any(ml.nlu_classifier(body.current_thread.text).topics,
107+ .name in ("Advertising and Promotions", "Events and Webinars")
108+ and .confidence != "low"
109+ )
110+ and (
111+ (
112+ headers.auth_summary.spf.pass
113+ and headers.auth_summary.dmarc.pass
114+ and (
115+ not profile.by_sender().solicited
116+ or profile.by_sender().any_messages_malicious_or_spam
117+ or profile.by_sender_email().days_since.last_contact > 14
118+ )
119+ and not profile.by_sender().any_messages_benign
120+ and not sender.email.domain.root_domain in (
121+ "adobe-events.com",
122+ "frame.io",
123+ "workfront.com"
124+ )
125+ )
126+ or not headers.auth_summary.spf.pass
127+ or headers.auth_summary.spf.pass is null
128+ or not headers.auth_summary.dmarc.pass
129+ or headers.auth_summary.dmarc.pass is null
130+ )
131+ // negate highly trusted sender domains unless they fail DMARC authentication
132+ and (
133+ (
134+ sender.email.domain.root_domain in $high_trust_sender_root_domains
135+ and not headers.auth_summary.dmarc.pass
136+ )
137+ or sender.email.domain.root_domain not in $high_trust_sender_root_domains
138+ )
139+
140+ attack_types :
141+ - " Credential Phishing"
142+ tactics_and_techniques :
143+ - " Impersonation: Brand"
144+ - " Social engineering"
145+ detection_methods :
146+ - " Computer Vision"
147+ - " Content analysis"
148+ - " Header analysis"
149+ - " Sender analysis"
150+ id : " ef29ca07-95f6-5b35-9845-b7222394a146"
151+ og_id : " 32cc8bf1-f4d7-549f-a970-eade24b7c6ae"
152+ testing_pr : 3477
153+ testing_sha : 3906e4a4bcf5b118eed91aad5e7df4df653ff8b9
0 commit comments