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 (
// obfuscated sender display name
(
sender.display_name is not null
and (
regex.icontains(strings.replace_confusables(sender.display_name),
'[nm]etf[li][il]x'
)
or strings.ilevenshtein(strings.replace_confusables(sender.display_name),
'netflix'
) <= 1
or regex.icontains(strings.replace_confusables(sender.display_name),
'n.{0,3}e.{0,3}t.{0,3}f.{0,3}l.{0,3}i.{0,3}x.{0,3}'
)
)
)
// obfuscated sender email domain
or regex.icontains(strings.replace_confusables(sender.email.domain.domain),
'[nm]etf[li][il]x'
)
// logo detection on message screenshot (no link analysis)
or (
any(ml.logo_detect(file.message_screenshot()).brands,
.name == "Netflix" and .confidence in ("medium", "high")
)
and (
// non NLU based keywords on the screenshot
regex.icontains(beta.ocr(file.message_screenshot()).text,
'suspen(?:ded|sion)'
)
or
// combo of NLU cred_theft + financial + Customer Service and Support
(
any(ml.nlu_classifier(body.current_thread.text).intents,
.name == "cred_theft"
)
and any(ml.nlu_classifier(body.current_thread.text).entities,
.name == "financial"
)
and any(ml.nlu_classifier(body.current_thread.text).topics,
.name == "Customer Service and Support"
)
)
)
)
// Address Detection
or 2 of (
strings.icontains(body.current_thread.text, 'Netflix, Inc'),
strings.icontains(body.current_thread.text, '100 Winchester Circle'),
strings.icontains(body.current_thread.text, 'Los Gatos, CA 95032')
)
// unusual recipient pattern + logo detect + credphish dispoistion
or (
(
length(recipients.to) == 0
or (
all(recipients.to, .email.domain.valid == false)
and all(recipients.cc, .email.domain.valid == false)
)
)
and any(ml.logo_detect(file.message_screenshot()).brands,
.name == "Netflix" and .confidence in ("medium", "high")
)
and (
any(body.links,
ml.link_analysis(.).credphish.disposition == "phishing"
and ml.link_analysis(.).credphish.confidence in ("medium", "high")
)
)
)
)
// negation of legit domains
and not (
sender.email.domain.root_domain in (
'netflix.com',
'dvd.com',
'netflixfamily.com',
'netflixpreviewclub.com',
'netflixanimation.com',
'envoy.com',
'lexisnexis.com',
'netflix.shop',
'netflixcontractors.com', // owned by netflix
'netflixevents.com', // owned by netflix
'netelixir.com', // unrelated marketing
'netflixhouse.com', // owned by netflix
'instagram.com',
'netflix.net',
'netflixshopsupport.com', // owned by netflix
'netflixpartner.com', // owned by netflix
)
and coalesce(headers.auth_summary.dmarc.pass, false)
)
and not (
sender.email.domain.domain in (
'netflix.zendesk.com' // netflix actual support
)
and coalesce(headers.auth_summary.dmarc.pass, false)
)
and not profile.by_sender_email().solicited
Detection logic
Scope: inbound message.
Impersonation of Netflix.
- inbound message
any of:
all of:
- sender.display_name is set
any of:
- strings.replace_confusables(sender.display_name) matches '[nm]etf[li][il]x'
- strings.replace_confusables(sender.display_name) is similar to 'netflix'
- strings.replace_confusables(sender.display_name) matches 'n.{0,3}e.{0,3}t.{0,3}f.{0,3}l.{0,3}i.{0,3}x.{0,3}'
- strings.replace_confusables(sender.email.domain.domain) matches '[nm]etf[li][il]x'
all of:
any of
ml.logo_detect(file.message_screenshot()).brandswhere all hold:- .name is 'Netflix'
- .confidence in ('medium', 'high')
any of:
- beta.ocr(file.message_screenshot()).text matches 'suspen(?:ded|sion)'
all of:
any of
ml.nlu_classifier(body.current_thread.text).intentswhere:- .name is 'cred_theft'
any of
ml.nlu_classifier(body.current_thread.text).entitieswhere:- .name is 'financial'
any of
ml.nlu_classifier(body.current_thread.text).topicswhere:- .name is 'Customer Service and Support'
at least 2 of:
- body.current_thread.text contains 'Netflix, Inc'
- body.current_thread.text contains '100 Winchester Circle'
- body.current_thread.text contains 'Los Gatos, CA 95032'
all of:
any of:
- length(recipients.to) is 0
all of:
all of
recipients.towhere:- .email.domain.valid is False
all of
recipients.ccwhere:- .email.domain.valid is False
any of
ml.logo_detect(file.message_screenshot()).brandswhere all hold:- .name is 'Netflix'
- .confidence in ('medium', 'high')
any of
body.linkswhere all hold:- ml.link_analysis(.).credphish.disposition is 'phishing'
- ml.link_analysis(.).credphish.confidence in ('medium', 'high')
not:
all of:
- sender.email.domain.root_domain in ('netflix.com', 'dvd.com', 'netflixfamily.com', 'netflixpreviewclub.com', 'netflixanimation.com', 'envoy.com', 'lexisnexis.com', 'netflix.shop', 'netflixcontractors.com', 'netflixevents.com', 'netelixir.com', 'netflixhouse.com', 'instagram.com', 'netflix.net', 'netflixshopsupport.com', 'netflixpartner.com')
- coalesce(headers.auth_summary.dmarc.pass)
not:
all of:
- sender.email.domain.domain in ('netflix.zendesk.com')
- coalesce(headers.auth_summary.dmarc.pass)
not:
- profile.by_sender_email().solicited
Inspects: body.current_thread.text, body.links, headers.auth_summary.dmarc.pass, recipients.cc, recipients.cc[].email.domain.valid, recipients.to, recipients.to[].email.domain.valid, sender.display_name, sender.email.domain.domain, sender.email.domain.root_domain, type.inbound. Sensors: beta.ocr, file.message_screenshot, ml.link_analysis, ml.logo_detect, ml.nlu_classifier, profile.by_sender_email, regex.icontains, strings.icontains, strings.ilevenshtein, strings.replace_confusables.
Indicators matched (30)
| Field | Match | Value |
|---|---|---|
regex.icontains | regex | [nm]etf[li][il]x |
strings.ilevenshtein | fuzzy | netflix |
regex.icontains | regex | n.{0,3}e.{0,3}t.{0,3}f.{0,3}l.{0,3}i.{0,3}x.{0,3} |
ml.logo_detect(file.message_screenshot()).brands[].name | equals | Netflix |
ml.logo_detect(file.message_screenshot()).brands[].confidence | member | medium |
ml.logo_detect(file.message_screenshot()).brands[].confidence | member | high |
regex.icontains | regex | suspen(?:ded|sion) |
ml.nlu_classifier(body.current_thread.text).intents[].name | equals | cred_theft |
ml.nlu_classifier(body.current_thread.text).entities[].name | equals | financial |
ml.nlu_classifier(body.current_thread.text).topics[].name | equals | Customer Service and Support |
strings.icontains | substring | Netflix, Inc |
strings.icontains | substring | 100 Winchester Circle |
18 more
strings.icontains | substring | Los Gatos, CA 95032 |
sender.email.domain.root_domain | member | netflix.com |
sender.email.domain.root_domain | member | dvd.com |
sender.email.domain.root_domain | member | netflixfamily.com |
sender.email.domain.root_domain | member | netflixpreviewclub.com |
sender.email.domain.root_domain | member | netflixanimation.com |
sender.email.domain.root_domain | member | envoy.com |
sender.email.domain.root_domain | member | lexisnexis.com |
sender.email.domain.root_domain | member | netflix.shop |
sender.email.domain.root_domain | member | netflixcontractors.com |
sender.email.domain.root_domain | member | netflixevents.com |
sender.email.domain.root_domain | member | netelixir.com |
sender.email.domain.root_domain | member | netflixhouse.com |
sender.email.domain.root_domain | member | instagram.com |
sender.email.domain.root_domain | member | netflix.net |
sender.email.domain.root_domain | member | netflixshopsupport.com |
sender.email.domain.root_domain | member | netflixpartner.com |
sender.email.domain.domain | member | netflix.zendesk.com |