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 length(ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics) > 0
39 and all(ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics,
40 .name in (
41 "Security and Authentication",
42 "Secure Message",
43 "Reminders and Notifications",
44 "Advertising and Promotions" // fake surveys/giveaways have been observed
45 )
46 and .confidence in ("medium", "high")
47 and beta.ocr(file.message_screenshot()).text != ""
48 )
49 )
50 or any(ml.nlu_classifier(body.current_thread.text).intents,
51 .name == "cred_theft" and .confidence == "high"
52 )
53 or any(ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).intents,
54 .name == "cred_theft" and .confidence == "high"
55 )
56 )
57
58 // and the sender is not in org_domains or from Shein domains and passes auth
59 and not (
60 sender.email.domain.root_domain in $org_domains
61 or (
62 length(attachments) == 1
63 // this is Shein's return label generator
64 and all(attachments,
65 .file_type == "pdf"
66 and strings.icontains(beta.parse_exif(.).creator, "MondialRelay")
67 )
68 )
69 or (
70 sender.email.domain.root_domain in (
71 "shein.com",
72 "shein.com.mx",
73 "sheinemail.com",
74 "shein.co.uk",
75 "sheingroup.com",
76 "sheinnotice.com",
77 "cash.app",
78 "capitaloneshopping.com"
79 )
80 and (
81 headers.auth_summary.dmarc.pass
82 // for when DMARC fails, but it's still a legit Shein newsletter
83 or (
84 length(body.links) > 10
85 and ratio(body.links,
86 .href_url.domain.root_domain in (
87 "shein.com",
88 "sheinemail.com",
89 "shein.co.uk",
90 "sheingroup.com",
91 "sheinnotice.com",
92 "cash.app",
93 "capitaloneshopping.com"
94 )
95 ) > 0.6
96 )
97 )
98 )
99 // parse out original sender domain from Apple Private Relay info
100 or (
101 sender.email.domain.domain in ("privaterelay.appleid.com", "icloud.com")
102 and strings.ilike(sender.email.local_part,
103 '*shein_com*',
104 '*sheinemail_com*'
105 )
106 )
107 )
108 // and the sender is not from high trust sender root domains
109 and (
110 (
111 sender.email.domain.root_domain in $high_trust_sender_root_domains
112 and not headers.auth_summary.dmarc.pass
113 )
114 or sender.email.domain.root_domain not in $high_trust_sender_root_domains
115 )
116 and (
117 not profile.by_sender().solicited
118 or not headers.auth_summary.dmarc.pass
119 or not headers.auth_summary.spf.pass
120 )
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"