Detection rules › Sublime MQL
Brand impersonation: Google Workspace alert notification
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.
Threat classification
Sublime's own taxonomy (not MITRE ATT&CK).
| Category | Values |
|---|---|
| Attack types | Credential Phishing |
| Tactics and techniques | Impersonation: Brand, Social engineering, Lookalike domain |
Event coverage
Rule body MQL
type.inbound
// Sender impersonates Google Workspace alerts but not from Google
and (
regex.icontains(sender.display_name,
'(?:workspace|google\s*workspace).*(?:alert|notification)'
)
or regex.icontains(sender.display_name,
'(?:alert|notification).*(?:workspace|google\s*workspace)'
)
or regex.icontains(sender.email.local_part,
'workspace.*(?:alert|notification)'
)
or regex.icontains(sender.email.local_part, 'google.*workspace')
)
and not (
sender.email.domain.root_domain in~ (
'google.com',
'google.co.uk',
'google.ca'
)
and headers.auth_summary.dmarc.pass
)
// Negate legitimate Atlassian/Jira notifications that may contain Google Workspace content
and not (
sender.email.domain.root_domain in~ ('atlassian.net', 'atlassian.com')
and headers.auth_summary.dmarc.pass
)
// Negate legitimate Google alerts forwarded through mailing lists
and not (
any(headers.hops,
any(.fields,
.name in ('X-Original-Sender', 'X-Original-From')
and strings.ends_with(.value, '@google.com')
)
)
)
// Exclude Google Voice/phone call notifications
and not (
regex.icontains(subject.subject,
'(?:phone\s*call|voice\s*mail|missed\s*call)'
)
or regex.icontains(body.current_thread.text, 'Google\s*Voice')
)
// Exclude forwarded messages
and not subject.is_forward
// Body contains Google Workspace impersonation patterns
and (
// Alert center call to action with various phishing subjects
(
regex.icontains(body.current_thread.text, 'alert\s*cent(?:er|re)')
and (
regex.icontains(subject.subject,
'spike\s+in\s+(?:user[- ]?reported\s+)?spam'
)
or regex.icontains(subject.subject,
'(?:security|admin|workspace)\s+alert'
)
or regex.icontains(subject.subject,
'suspicious\s+(?:activity|login|access)'
)
)
)
// Reply-to address spoofs Google Workspace alerts
or any(headers.reply_to,
.email.email == 'google-workspace-alerts-noreply@google.com'
)
// Google Workspace logo hotlinked from gstatic
or (
strings.icontains(body.html.raw,
'gstatic.com/apps/signup/resources/google-workspace-lockup.png'
)
or strings.icontains(body.html.raw,
'gstatic.com/apps/signup/resources/google-workspace-lockup.svg'
)
or strings.icontains(body.html.raw,
'gstatic.com/apps/signup/resources/google-workspace-lockup.jpg'
)
)
// Google corporate address
or (
strings.icontains(body.current_thread.text, '1600 Amphitheatre Parkway')
and strings.icontains(body.current_thread.text, 'Mountain View, CA')
)
// Admin recipient messaging patterns
or regex.icontains(body.current_thread.text, 'designated\s+admin\s+recipient')
or (
regex.icontains(body.current_thread.text,
'Google\s+Workspace(?:\s*account)?'
)
and regex.icontains(body.current_thread.text,
'(?:admin|administrator)\s+(?:console|recipient|account)'
)
)
// Alert details structure common in these phishing attempts
or (
regex.icontains(body.current_thread.text, 'alert\s+details\s+include')
and regex.icontains(body.current_thread.text,
'(?:activity\s+date|total\s+(?:user\s+)?reports|severity)'
)
)
)
// Contains links that are not to Google
and any(body.links,
not .href_url.domain.root_domain in~ (
'google.com',
'google.co.uk',
'google.ca',
'gstatic.com',
'googleusercontent.com',
'sendgrid.net'
)
)
Detection logic
Scope: inbound message.
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.
- inbound message
any of:
- sender.display_name matches '(?:workspace|google\\s*workspace).*(?:alert|notification)'
- sender.display_name matches '(?:alert|notification).*(?:workspace|google\\s*workspace)'
- sender.email.local_part matches 'workspace.*(?:alert|notification)'
- sender.email.local_part matches 'google.*workspace'
not:
all of:
- sender.email.domain.root_domain in ('google.com', 'google.co.uk', 'google.ca')
- headers.auth_summary.dmarc.pass
not:
all of:
- sender.email.domain.root_domain in ('atlassian.net', 'atlassian.com')
- headers.auth_summary.dmarc.pass
not:
any of
headers.hopswhere:any of
.fieldswhere all hold:- .name in ('X-Original-Sender', 'X-Original-From')
- .value ends with '@google.com'
none of:
- subject.subject matches '(?:phone\\s*call|voice\\s*mail|missed\\s*call)'
- body.current_thread.text matches 'Google\\s*Voice'
not:
- subject.is_forward
any of:
all of:
- body.current_thread.text matches 'alert\\s*cent(?:er|re)'
any of:
- subject.subject matches 'spike\\s+in\\s+(?:user[- ]?reported\\s+)?spam'
- subject.subject matches '(?:security|admin|workspace)\\s+alert'
- subject.subject matches 'suspicious\\s+(?:activity|login|access)'
any of
headers.reply_towhere:- .email.email is 'google-workspace-alerts-noreply@google.com'
any of:
- body.html.raw contains 'gstatic.com/apps/signup/resources/google-workspace-lockup.png'
- body.html.raw contains 'gstatic.com/apps/signup/resources/google-workspace-lockup.svg'
- body.html.raw contains 'gstatic.com/apps/signup/resources/google-workspace-lockup.jpg'
all of:
- body.current_thread.text contains '1600 Amphitheatre Parkway'
- body.current_thread.text contains 'Mountain View, CA'
- body.current_thread.text matches 'designated\\s+admin\\s+recipient'
all of:
- body.current_thread.text matches 'Google\\s+Workspace(?:\\s*account)?'
- body.current_thread.text matches '(?:admin|administrator)\\s+(?:console|recipient|account)'
all of:
- body.current_thread.text matches 'alert\\s+details\\s+include'
- body.current_thread.text matches '(?:activity\\s+date|total\\s+(?:user\\s+)?reports|severity)'
any of
body.linkswhere:not:
- .href_url.domain.root_domain in ('google.com', 'google.co.uk', 'google.ca', 'gstatic.com', 'googleusercontent.com', 'sendgrid.net')
Inspects: body.current_thread.text, body.html.raw, body.links, body.links[].href_url.domain.root_domain, headers.auth_summary.dmarc.pass, headers.hops, headers.hops[].fields, headers.hops[].fields[].name, headers.hops[].fields[].value, headers.reply_to, headers.reply_to[].email.email, sender.display_name, sender.email.domain.root_domain, sender.email.local_part, subject.is_forward, subject.subject, type.inbound. Sensors: regex.icontains, strings.ends_with, strings.icontains.
Indicators matched (35)
| Field | Match | Value |
|---|---|---|
regex.icontains | regex | (?:workspace|google\s*workspace).*(?:alert|notification) |
regex.icontains | regex | (?:alert|notification).*(?:workspace|google\s*workspace) |
regex.icontains | regex | workspace.*(?:alert|notification) |
regex.icontains | regex | google.*workspace |
sender.email.domain.root_domain | member | google.com |
sender.email.domain.root_domain | member | google.co.uk |
sender.email.domain.root_domain | member | google.ca |
sender.email.domain.root_domain | member | atlassian.net |
sender.email.domain.root_domain | member | atlassian.com |
headers.hops[].fields[].name | member | X-Original-Sender |
headers.hops[].fields[].name | member | X-Original-From |
strings.ends_with | suffix | @google.com |
23 more
regex.icontains | regex | (?:phone\s*call|voice\s*mail|missed\s*call) |
regex.icontains | regex | Google\s*Voice |
regex.icontains | regex | alert\s*cent(?:er|re) |
regex.icontains | regex | spike\s+in\s+(?:user[- ]?reported\s+)?spam |
regex.icontains | regex | (?:security|admin|workspace)\s+alert |
regex.icontains | regex | suspicious\s+(?:activity|login|access) |
headers.reply_to[].email.email | equals | google-workspace-alerts-noreply@google.com |
strings.icontains | substring | gstatic.com/apps/signup/resources/google-workspace-lockup.png |
strings.icontains | substring | gstatic.com/apps/signup/resources/google-workspace-lockup.svg |
strings.icontains | substring | gstatic.com/apps/signup/resources/google-workspace-lockup.jpg |
strings.icontains | substring | 1600 Amphitheatre Parkway |
strings.icontains | substring | Mountain View, CA |
regex.icontains | regex | designated\s+admin\s+recipient |
regex.icontains | regex | Google\s+Workspace(?:\s*account)? |
regex.icontains | regex | (?:admin|administrator)\s+(?:console|recipient|account) |
regex.icontains | regex | alert\s+details\s+include |
regex.icontains | regex | (?:activity\s+date|total\s+(?:user\s+)?reports|severity) |
body.links[].href_url.domain.root_domain | member | google.com |
body.links[].href_url.domain.root_domain | member | google.co.uk |
body.links[].href_url.domain.root_domain | member | google.ca |
body.links[].href_url.domain.root_domain | member | gstatic.com |
body.links[].href_url.domain.root_domain | member | googleusercontent.com |
body.links[].href_url.domain.root_domain | member | sendgrid.net |