Detection rules › Sublime MQL

Open redirect: business.google.com website_shared URL Param

Severity
medium
Type
rule
Source
github.com/sublime-security/sublime-rules

Detects messages containing an open redirect in business.google.com's website_shared/launch_bw.html endpoint with the 'f' parameter. This has been exploited in phishing campaigns to redirect users to malicious sites.

Threat classification

Sublime's own taxonomy (not MITRE ATT&CK).

CategoryValues
Attack typesCredential Phishing, Malware/Ransomware
Tactics and techniquesOpen redirect

Event coverage

Rule body MQL

type.inbound
and any(body.links,
        .href_url.domain.domain == "business.google.com"
        and strings.icontains(.href_url.path, '/website_shared/launch_bw.html')
        and strings.icontains(.href_url.query_params, 'f=')
        // Make sure the redirect is not going back to google.com
        and not regex.icontains(.href_url.query_params,
                                'f=(?:https?(?:%3a|:))?(?:%2f|\/){2}[^&]*google\.com(?:\&|\/|$|%2f)'
        )
)
// Exclude legitimate Google domains as senders
and not regex.icontains(sender.email.domain.root_domain, '^google')

// negate highly trusted sender domains unless they fail DMARC authentication
and (
  (
    sender.email.domain.root_domain in $high_trust_sender_root_domains
    and not headers.auth_summary.dmarc.pass
  )
  or sender.email.domain.root_domain not in $high_trust_sender_root_domains
)

Detection logic

Scope: inbound message.

Detects messages containing an open redirect in business.google.com's website_shared/launch_bw.html endpoint with the 'f' parameter. This has been exploited in phishing campaigns to redirect users to malicious sites.

  1. inbound message
  2. any of body.links where all hold:
    • .href_url.domain.domain is 'business.google.com'
    • .href_url.path contains '/website_shared/launch_bw.html'
    • .href_url.query_params contains 'f='
    • not:
      • .href_url.query_params matches 'f=(?:https?(?:%3a|:))?(?:%2f|\\/){2}[^&]*google\\.com(?:\\&|\\/|$|%2f)'
  3. not:
    • sender.email.domain.root_domain matches '^google'
  4. any of:
    • all of:
      • sender.email.domain.root_domain in $high_trust_sender_root_domains
      • not:
        • headers.auth_summary.dmarc.pass
    • sender.email.domain.root_domain not in $high_trust_sender_root_domains

Inspects: body.links, body.links[].href_url.domain.domain, body.links[].href_url.path, body.links[].href_url.query_params, headers.auth_summary.dmarc.pass, sender.email.domain.root_domain, type.inbound. Sensors: regex.icontains, strings.icontains. Reference lists: $high_trust_sender_root_domains.

Indicators matched (5)

FieldMatchValue
body.links[].href_url.domain.domainequalsbusiness.google.com
strings.icontainssubstring/website_shared/launch_bw.html
strings.icontainssubstringf=
regex.icontainsregexf=(?:https?(?:%3a|:))?(?:%2f|\/){2}[^&]*google\.com(?:\&|\/|$|%2f)
regex.icontainsregex^google