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.
Sublime rule (View on GitHub)
1name: "Brand Impersonation: Shein"
2description: "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."
3type: "rule"
4severity: "medium"
5source: |
6 type.inbound
7 and (
8 // display name contains Shein
9 (
10 (
11 regex.icontains(strings.replace_confusables(sender.display_name),
12 '\bsh[ie]{2}n\b'
13 )
14 and not strings.icontains(sender.display_name, "sheen")
15 )
16 or (
17 length(ml.logo_detect(file.message_screenshot()).brands) == 1
18 and all(ml.logo_detect(file.message_screenshot()).brands,
19 .name == "Shein" and .confidence == "high"
20 )
21 )
22 )
23 )
24 and (
25 (
26 length(ml.nlu_classifier(body.current_thread.text).topics) > 0
27 and all(ml.nlu_classifier(body.current_thread.text).topics,
28 .name in (
29 "Security and Authentication",
30 "Secure Message",
31 "Reminders and Notifications",
32 "Advertising and Promotions" // fake surveys/giveaways have been observed
33 )
34 and .confidence in ("medium", "high")
35 )
36 )
37 or (
38 beta.ocr(file.message_screenshot()).text != ""
39 and length(ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics
40 ) > 0
41 and all(ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics,
42 .name in (
43 "Security and Authentication",
44 "Secure Message",
45 "Reminders and Notifications",
46 "Advertising and Promotions" // fake surveys/giveaways have been observed
47 )
48 and .confidence in ("medium", "high")
49 )
50 )
51 or any(ml.nlu_classifier(body.current_thread.text).intents,
52 .name == "cred_theft" and .confidence == "high"
53 )
54 or any(ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).intents,
55 .name == "cred_theft" and .confidence == "high"
56 )
57 )
58
59 // and the sender is not in org_domains or from Shein domains and passes auth
60 and not (
61 sender.email.domain.root_domain in $org_domains
62 or (
63 length(attachments) == 1
64 // this is Shein's return label generator
65 and all(attachments,
66 .file_type == "pdf"
67 and strings.icontains(beta.parse_exif(.).creator, "MondialRelay")
68 )
69 )
70 or (
71 sender.email.domain.root_domain in (
72 "shein.com",
73 "shein.com.mx",
74 "sheinemail.com",
75 "shein.co.uk",
76 "sheingroup.com",
77 "sheinnotice.com",
78 "cash.app",
79 "capitaloneshopping.com"
80 )
81 and (
82 headers.auth_summary.dmarc.pass
83 // for when DMARC fails, but it's still a legit Shein newsletter
84 or (
85 length(body.links) > 10
86 and ratio(body.links,
87 .href_url.domain.root_domain in (
88 "shein.com",
89 "sheinemail.com",
90 "shein.co.uk",
91 "sheingroup.com",
92 "sheinnotice.com",
93 "cash.app",
94 "capitaloneshopping.com"
95 )
96 ) > 0.6
97 )
98 )
99 )
100 // parse out original sender domain from Apple Private Relay info
101 or (
102 sender.email.domain.domain in ("privaterelay.appleid.com", "icloud.com")
103 and strings.ilike(sender.email.local_part,
104 '*shein_com*',
105 '*sheinemail_com*'
106 )
107 )
108 )
109 // and the sender is not from high trust sender root domains
110 and (
111 (
112 sender.email.domain.root_domain in $high_trust_sender_root_domains
113 and not headers.auth_summary.dmarc.pass
114 )
115 or sender.email.domain.root_domain not in $high_trust_sender_root_domains
116 )
117 and (
118 not profile.by_sender().solicited
119 or not headers.auth_summary.dmarc.pass
120 or not headers.auth_summary.spf.pass
121 )
122attack_types:
123 - "Credential Phishing"
124 - "Spam"
125tactics_and_techniques:
126 - "Impersonation: Brand"
127 - "Social engineering"
128detection_methods:
129 - "Computer Vision"
130 - "Content analysis"
131 - "Header analysis"
132 - "Natural Language Understanding"
133 - "Optical Character Recognition"
134 - "Sender analysis"
135id: "b5843f22-9b49-56a0-a6db-259920a0c7fa"