Detection rules › Sublime MQL
Brand Impersonation: Shein
Detects suspicious Shein-branded communications using display name impersonation, logo detection, and deceptive content analysis. Includes checks for security/authentication topics, secure messages, notifications, and promotional content like fake surveys or giveaways. Excludes legitimate Shein domains with proper authentication and known trusted senders.
Threat classification
Sublime's own taxonomy (not MITRE ATT&CK).
| Category | Values |
|---|---|
| Attack types | Credential Phishing, Spam |
| Tactics and techniques | Impersonation: Brand, Social engineering |
Event coverage
Rule body MQL
type.inbound
and (
// display name contains Shein
(
(
regex.icontains(strings.replace_confusables(sender.display_name),
'\bsh[ie]{2}n\b'
)
and not strings.icontains(sender.display_name, "sheen")
)
or (
length(ml.logo_detect(file.message_screenshot()).brands) == 1
and all(ml.logo_detect(file.message_screenshot()).brands,
.name == "Shein" and .confidence == "high"
)
)
)
)
and (
(
length(ml.nlu_classifier(body.current_thread.text).topics) > 0
and all(ml.nlu_classifier(body.current_thread.text).topics,
.name in (
"Security and Authentication",
"Secure Message",
"Reminders and Notifications",
"Advertising and Promotions" // fake surveys/giveaways have been observed
)
and .confidence in ("medium", "high")
)
)
or (
length(ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics) > 0
and all(ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics,
.name in (
"Security and Authentication",
"Secure Message",
"Reminders and Notifications",
"Advertising and Promotions" // fake surveys/giveaways have been observed
)
and .confidence in ("medium", "high")
and beta.ocr(file.message_screenshot()).text != ""
)
)
or any(ml.nlu_classifier(body.current_thread.text).intents,
.name == "cred_theft" and .confidence == "high"
)
or any(ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).intents,
.name == "cred_theft" and .confidence == "high"
)
)
// and the sender is not in org_domains or from Shein domains and passes auth
and not (
sender.email.domain.root_domain in $org_domains
or (
length(attachments) == 1
// this is Shein's return label generator
and all(attachments,
.file_type == "pdf"
and strings.icontains(beta.parse_exif(.).creator, "MondialRelay")
)
)
or (
sender.email.domain.root_domain in (
"shein.com",
"shein.com.mx",
"sheinemail.com",
"shein.co.uk",
"sheingroup.com",
"sheinnotice.com",
"cash.app",
"capitaloneshopping.com"
)
and (
headers.auth_summary.dmarc.pass
// for when DMARC fails, but it's still a legit Shein newsletter
or (
length(body.links) > 10
and ratio(body.links,
.href_url.domain.root_domain in (
"shein.com",
"sheinemail.com",
"shein.co.uk",
"sheingroup.com",
"sheinnotice.com",
"cash.app",
"capitaloneshopping.com"
)
) > 0.6
)
)
)
// parse out original sender domain from Apple Private Relay info
or (
sender.email.domain.domain in ("privaterelay.appleid.com", "icloud.com")
and strings.ilike(sender.email.local_part,
'*shein_com*',
'*sheinemail_com*'
)
)
)
// and the sender is not from high trust sender root domains
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
)
and (
not profile.by_sender().solicited
or not headers.auth_summary.dmarc.pass
or not headers.auth_summary.spf.pass
)
Detection logic
Scope: inbound message.
Detects suspicious Shein-branded communications using display name impersonation, logo detection, and deceptive content analysis. Includes checks for security/authentication topics, secure messages, notifications, and promotional content like fake surveys or giveaways. Excludes legitimate Shein domains with proper authentication and known trusted senders.
- inbound message
any of:
all of:
- strings.replace_confusables(sender.display_name) matches '\\bsh[ie]{2}n\\b'
not:
- sender.display_name contains 'sheen'
all of:
- length(ml.logo_detect(file.message_screenshot()).brands) is 1
all of
ml.logo_detect(file.message_screenshot()).brandswhere all hold:- .name is 'Shein'
- .confidence is 'high'
any of:
all of:
- length(ml.nlu_classifier(body.current_thread.text).topics) > 0
all of
ml.nlu_classifier(body.current_thread.text).topicswhere all hold:- .name in ('Security and Authentication', 'Secure Message', 'Reminders and Notifications', 'Advertising and Promotions')
- .confidence in ('medium', 'high')
all of:
- length(ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics) > 0
all of
ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topicswhere all hold:- .name in ('Security and Authentication', 'Secure Message', 'Reminders and Notifications', 'Advertising and Promotions')
- .confidence in ('medium', 'high')
- beta.ocr(file.message_screenshot()).text is not ''
any of
ml.nlu_classifier(body.current_thread.text).intentswhere all hold:- .name is 'cred_theft'
- .confidence is 'high'
any of
ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).intentswhere all hold:- .name is 'cred_theft'
- .confidence is 'high'
none of:
- sender.email.domain.root_domain in $org_domains
all of:
- length(attachments) is 1
all of
attachmentswhere all hold:- .file_type is 'pdf'
- beta.parse_exif(.).creator contains 'MondialRelay'
all of:
- sender.email.domain.root_domain in ('shein.com', 'shein.com.mx', 'sheinemail.com', 'shein.co.uk', 'sheingroup.com', 'sheinnotice.com', 'cash.app', 'capitaloneshopping.com')
any of:
- headers.auth_summary.dmarc.pass
all of:
- length(body.links) > 10
- ratio(body.links) > 0.6
all of:
- sender.email.domain.domain in ('privaterelay.appleid.com', 'icloud.com')
sender.email.local_part matches any of 2 patterns
*shein_com**sheinemail_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
any of:
not:
- profile.by_sender().solicited
not:
- headers.auth_summary.dmarc.pass
not:
- headers.auth_summary.spf.pass
Inspects: attachments[].file_type, body.current_thread.text, body.links, body.links[].href_url.domain.root_domain, headers.auth_summary.dmarc.pass, headers.auth_summary.spf.pass, sender.display_name, sender.email.domain.domain, sender.email.domain.root_domain, sender.email.local_part, type.inbound. Sensors: beta.ocr, beta.parse_exif, file.message_screenshot, ml.logo_detect, ml.nlu_classifier, profile.by_sender, regex.icontains, strings.icontains, strings.ilike, strings.replace_confusables. Reference lists: $high_trust_sender_root_domains, $org_domains.
Indicators matched (41)
| Field | Match | Value |
|---|---|---|
regex.icontains | regex | \bsh[ie]{2}n\b |
strings.icontains | substring | sheen |
ml.logo_detect(file.message_screenshot()).brands[].name | equals | Shein |
ml.logo_detect(file.message_screenshot()).brands[].confidence | equals | high |
ml.nlu_classifier(body.current_thread.text).topics[].name | member | Security and Authentication |
ml.nlu_classifier(body.current_thread.text).topics[].name | member | Secure Message |
ml.nlu_classifier(body.current_thread.text).topics[].name | member | Reminders and Notifications |
ml.nlu_classifier(body.current_thread.text).topics[].name | member | Advertising and Promotions |
ml.nlu_classifier(body.current_thread.text).topics[].confidence | member | medium |
ml.nlu_classifier(body.current_thread.text).topics[].confidence | member | high |
ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics[].name | member | Security and Authentication |
ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics[].name | member | Secure Message |
29 more
ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics[].name | member | Reminders and Notifications |
ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics[].name | member | Advertising and Promotions |
ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics[].confidence | member | medium |
ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics[].confidence | member | high |
ml.nlu_classifier(body.current_thread.text).intents[].name | equals | cred_theft |
ml.nlu_classifier(body.current_thread.text).intents[].confidence | equals | high |
ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).intents[].name | equals | cred_theft |
ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).intents[].confidence | equals | high |
attachments[].file_type | equals | pdf |
strings.icontains | substring | MondialRelay |
sender.email.domain.root_domain | member | shein.com |
sender.email.domain.root_domain | member | shein.com.mx |
sender.email.domain.root_domain | member | sheinemail.com |
sender.email.domain.root_domain | member | shein.co.uk |
sender.email.domain.root_domain | member | sheingroup.com |
sender.email.domain.root_domain | member | sheinnotice.com |
sender.email.domain.root_domain | member | cash.app |
sender.email.domain.root_domain | member | capitaloneshopping.com |
body.links[].href_url.domain.root_domain | member | shein.com |
body.links[].href_url.domain.root_domain | member | sheinemail.com |
body.links[].href_url.domain.root_domain | member | shein.co.uk |
body.links[].href_url.domain.root_domain | member | sheingroup.com |
body.links[].href_url.domain.root_domain | member | sheinnotice.com |
body.links[].href_url.domain.root_domain | member | cash.app |
body.links[].href_url.domain.root_domain | member | capitaloneshopping.com |
sender.email.domain.domain | member | privaterelay.appleid.com |
sender.email.domain.domain | member | icloud.com |
strings.ilike | substring | *shein_com* |
strings.ilike | substring | *sheinemail_com* |