1+ name : " Brand impersonation: Google Workspace alert notification"
2+ description : " Detects messages impersonating Google Workspace alert notifications that use Google branding elements, workspace-specific terminology, and admin console references, but originate from non-Google domains and contain suspicious links."
3+ type : " rule"
4+ severity : " medium"
5+ source : |
6+ type.inbound
7+
8+ // Sender impersonates Google Workspace alerts but not from Google
9+ and (
10+ regex.icontains(sender.display_name,
11+ '(?:workspace|google\s*workspace).*(?:alert|notification)'
12+ )
13+ or regex.icontains(sender.display_name,
14+ '(?:alert|notification).*(?:workspace|google\s*workspace)'
15+ )
16+ or regex.icontains(sender.email.local_part,
17+ 'workspace.*(?:alert|notification)'
18+ )
19+ or regex.icontains(sender.email.local_part, 'google.*workspace')
20+ )
21+ and not sender.email.domain.root_domain in~ (
22+ 'google.com',
23+ 'google.co.uk',
24+ 'google.ca'
25+ )
26+
27+ // Negate legitimate Google alerts forwarded through mailing lists
28+ and not (
29+ any(headers.hops,
30+ any(.fields,
31+ (
32+ .name == 'X-Original-Sender'
33+ and strings.ends_with(.value, '@google.com')
34+ )
35+ or (
36+ .name == 'X-Original-From'
37+ and strings.icontains(.value, '@google.com')
38+ )
39+ )
40+ )
41+ )
42+
43+ // Exclude Google Voice/phone call notifications
44+ and not (
45+ regex.icontains(subject.subject,
46+ '(?:phone\s*call|voice\s*mail|missed\s*call)'
47+ )
48+ or regex.icontains(body.current_thread.text, 'Google\s*Voice')
49+ )
50+
51+ // Exclude forwarded messages
52+ and not (
53+ regex.icontains(subject.subject, '(?:^|\s)(?:fwd?|forward(?:ed)?)(?:\s|:)')
54+ or strings.istarts_with(subject.subject, 'fwd:')
55+ or strings.istarts_with(subject.subject, 'fw:')
56+ )
57+
58+ // Body contains Google Workspace impersonation patterns
59+ and (
60+ // Alert center call to action with various phishing subjects
61+ (
62+ regex.icontains(body.current_thread.text, 'alert\s*cent(?:er|re)')
63+ and (
64+ regex.icontains(subject.subject,
65+ 'spike\s+in\s+(?:user[- ]?reported\s+)?spam'
66+ )
67+ or regex.icontains(subject.subject,
68+ '(?:security|admin|workspace)\s+alert'
69+ )
70+ or regex.icontains(subject.subject,
71+ 'suspicious\s+(?:activity|login|access)'
72+ )
73+ )
74+ )
75+ // Reply-to address spoofs Google Workspace alerts
76+ or any(headers.reply_to,
77+ .email.email == 'google-workspace-alerts-noreply@google.com'
78+ )
79+ // Google Workspace logo hotlinked from gstatic
80+ or (
81+ strings.icontains(body.html.raw,
82+ 'gstatic.com/apps/signup/resources/google-workspace-lockup.png'
83+ )
84+ or strings.icontains(body.html.raw,
85+ 'gstatic.com/apps/signup/resources/google-workspace-lockup.svg'
86+ )
87+ or strings.icontains(body.html.raw,
88+ 'gstatic.com/apps/signup/resources/google-workspace-lockup.jpg'
89+ )
90+ )
91+ // Google corporate address
92+ or (
93+ strings.icontains(body.current_thread.text, '1600 Amphitheatre Parkway')
94+ and strings.icontains(body.current_thread.text, 'Mountain View, CA')
95+ )
96+ // Admin recipient messaging patterns
97+ or regex.icontains(body.current_thread.text, 'designated\s+admin\s+recipient')
98+ or (
99+ regex.icontains(body.current_thread.text,
100+ 'Google\s+Workspace(?:\s*account)?'
101+ )
102+ and regex.icontains(body.current_thread.text,
103+ '(?:admin|administrator)\s+(?:console|recipient|account)'
104+ )
105+ )
106+ // Alert details structure common in these phishing attempts
107+ or (
108+ regex.icontains(body.current_thread.text, 'alert\s+details\s+include')
109+ and regex.icontains(body.current_thread.text,
110+ '(?:activity\s+date|total\s+(?:user\s+)?reports|severity)'
111+ )
112+ )
113+ )
114+
115+ // Contains links that are not to Google
116+ and any(body.links,
117+ not .href_url.domain.root_domain in~ (
118+ 'google.com',
119+ 'google.co.uk',
120+ 'google.ca',
121+ 'gstatic.com',
122+ 'googleusercontent.com',
123+ 'sendgrid.net'
124+ )
125+ )
126+
127+ attack_types :
128+ - " Credential Phishing"
129+ tactics_and_techniques :
130+ - " Impersonation: Brand"
131+ - " Social engineering"
132+ - " Lookalike domain"
133+ detection_methods :
134+ - " Header analysis"
135+ - " Content analysis"
136+ - " Sender analysis"
137+ - " URL analysis"
138+ id : " 053558a8-ffee-5bd7-a7d6-217f44e571bc"
139+ og_id : " 143ffbc4-15ba-535e-b9d6-ab2e2862abe9"
140+ testing_pr : 3479
141+ testing_sha : 51a5b362c2821fba0699092325e04b4044172887
0 commit comments