Detection rules › Sublime MQL

Brand impersonation: Gusto

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

Impersonation of Gusto, a cloud-based payroll management company.

Threat classification

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

CategoryValues
Attack typesCredential Phishing
Tactics and techniquesImpersonation: Brand, Lookalike domain, Social engineering

Event coverage

Rule body MQL

type.inbound
and (
  strings.ilike(sender.display_name, '*gusto*')
  or strings.ilevenshtein(sender.display_name, 'gusto') <= 1
  or strings.ilike(sender.email.domain.domain, '*gusto*')
)
and any(ml.logo_detect(file.message_screenshot()).brands,
        .name == "Gusto" and .confidence in ("medium", "high")
)
and sender.email.domain.root_domain !~ 'gusto.com'

// 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.

Impersonation of Gusto, a cloud-based payroll management company.

  1. inbound message
  2. any of:
    • sender.display_name matches '*gusto*'
    • sender.display_name is similar to 'gusto'
    • sender.email.domain.domain matches '*gusto*'
  3. any of ml.logo_detect(file.message_screenshot()).brands where all hold:
    • .name is 'Gusto'
    • .confidence in ('medium', 'high')
  4. sender.email.domain.root_domain is not 'gusto.com'
  5. 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: headers.auth_summary.dmarc.pass, sender.display_name, sender.email.domain.domain, sender.email.domain.root_domain, type.inbound. Sensors: file.message_screenshot, ml.logo_detect, strings.ilevenshtein, strings.ilike. Reference lists: $high_trust_sender_root_domains.

Indicators matched (5)

FieldMatchValue
strings.ilikesubstring*gusto*
strings.ilevenshteinfuzzygusto
ml.logo_detect(file.message_screenshot()).brands[].nameequalsGusto
ml.logo_detect(file.message_screenshot()).brands[].confidencemembermedium
ml.logo_detect(file.message_screenshot()).brands[].confidencememberhigh