Detection rules › Sublime MQL
Brand impersonation: Wix
Detects messages impersonating Wix by using similar display names or domain names, while not originating from legitimate WIX domains or failing DMARC authentication from trusted senders.
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
Rule body MQL
type.inbound
and (
(
regex.icontains(sender.display_name, '^WIX\b')
or strings.ilike(sender.email.domain.domain, 'WIX')
)
or (
strings.icontains(sender.display_name, 'wix')
and regex.icontains(body.current_thread.text,
"Domain Expir(?:ation|y) Not(?:ice|ification)"
)
and strings.icontains(body.current_thread.text, "will be deactivated")
)
// Wix address from footer
or 2 of (
strings.icontains(body.current_thread.text, 'Wix.com'),
strings.icontains(body.current_thread.text, '100 Gansevoort St'),
strings.icontains(body.current_thread.text, 'New York, NY 10014')
)
or (
any(ml.nlu_classifier(body.current_thread.text).entities,
.name in ("sender", "org") and regex.icontains(.text, '^wix\b')
)
and any(ml.nlu_classifier(body.current_thread.text).intents,
.name == "cred_theft" and .confidence != "low"
)
)
)
and not (
(
sender.email.domain.root_domain in~ (
"wix.com",
"wixforms.com",
"wixemails.com",
"wixanswers.com",
"wix-groups.com",
"ascendbywix.com"
)
and headers.auth_summary.dmarc.pass
)
)
// negation for messages traversing wix.com
and not (
any(headers.domains, .root_domain in ("wix.com", "ascendbywix.com"))
and headers.auth_summary.spf.pass
and headers.auth_summary.dmarc.pass
)
and not profile.by_sender().solicited
// 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 impersonating Wix by using similar display names or domain names, while not originating from legitimate WIX domains or failing DMARC authentication from trusted senders.
- inbound message
any of:
any of:
- sender.display_name matches '^WIX\\b'
- sender.email.domain.domain matches 'WIX'
all of:
- sender.display_name contains 'wix'
- body.current_thread.text matches 'Domain Expir(?:ation|y) Not(?:ice|ification)'
- body.current_thread.text contains 'will be deactivated'
at least 2 of:
- body.current_thread.text contains 'Wix.com'
- body.current_thread.text contains '100 Gansevoort St'
- body.current_thread.text contains 'New York, NY 10014'
all of:
any of
ml.nlu_classifier(body.current_thread.text).entitieswhere all hold:- .name in ('sender', 'org')
- .text matches '^wix\\b'
any of
ml.nlu_classifier(body.current_thread.text).intentswhere all hold:- .name is 'cred_theft'
- .confidence is not 'low'
not:
all of:
- sender.email.domain.root_domain in ('wix.com', 'wixforms.com', 'wixemails.com', 'wixanswers.com', 'wix-groups.com', 'ascendbywix.com')
- headers.auth_summary.dmarc.pass
not:
all of:
any of
headers.domainswhere:- .root_domain in ('wix.com', 'ascendbywix.com')
- headers.auth_summary.spf.pass
- headers.auth_summary.dmarc.pass
not:
- profile.by_sender().solicited
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.current_thread.text, headers.auth_summary.dmarc.pass, headers.auth_summary.spf.pass, headers.domains, headers.domains[].root_domain, sender.display_name, sender.email.domain.domain, sender.email.domain.root_domain, type.inbound. Sensors: ml.nlu_classifier, profile.by_sender, regex.icontains, strings.icontains, strings.ilike. Reference lists: $high_trust_sender_root_domains.
Indicators matched (20)
| Field | Match | Value |
|---|---|---|
regex.icontains | regex | ^WIX\b |
strings.ilike | substring | WIX |
strings.icontains | substring | wix |
regex.icontains | regex | Domain Expir(?:ation|y) Not(?:ice|ification) |
strings.icontains | substring | will be deactivated |
strings.icontains | substring | Wix.com |
strings.icontains | substring | 100 Gansevoort St |
strings.icontains | substring | New York, NY 10014 |
ml.nlu_classifier(body.current_thread.text).entities[].name | member | sender |
ml.nlu_classifier(body.current_thread.text).entities[].name | member | org |
regex.icontains | regex | ^wix\b |
ml.nlu_classifier(body.current_thread.text).intents[].name | equals | cred_theft |
8 more
sender.email.domain.root_domain | member | wix.com |
sender.email.domain.root_domain | member | wixforms.com |
sender.email.domain.root_domain | member | wixemails.com |
sender.email.domain.root_domain | member | wixanswers.com |
sender.email.domain.root_domain | member | wix-groups.com |
sender.email.domain.root_domain | member | ascendbywix.com |
headers.domains[].root_domain | member | wix.com |
headers.domains[].root_domain | member | ascendbywix.com |