Detection rules › Sublime MQL
Brand impersonation: Gusto
Impersonation of Gusto, a cloud-based payroll management company.
Threat classification
Sublime's own taxonomy (not MITRE ATT&CK).
| Category | Values |
|---|---|
| Attack types | Credential Phishing |
| Tactics and techniques | Impersonation: Brand, Lookalike domain, Social engineering |
Event coverage
| Message attribute |
|---|
| headers.auth_summary |
| sender |
| sender.email |
| type |
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.
- inbound message
any of:
- sender.display_name matches '*gusto*'
- sender.display_name is similar to 'gusto'
- sender.email.domain.domain matches '*gusto*'
any of
ml.logo_detect(file.message_screenshot()).brandswhere all hold:- .name is 'Gusto'
- .confidence in ('medium', 'high')
- sender.email.domain.root_domain is not 'gusto.com'
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)
| Field | Match | Value |
|---|---|---|
strings.ilike | substring | *gusto* |
strings.ilevenshtein | fuzzy | gusto |
ml.logo_detect(file.message_screenshot()).brands[].name | equals | Gusto |
ml.logo_detect(file.message_screenshot()).brands[].confidence | member | medium |
ml.logo_detect(file.message_screenshot()).brands[].confidence | member | high |