1+ name : " Brand impersonation: Charter Spectrum"
2+ description : " Detects messages impersonating Charter Spectrum by using variations of 'Spectrum' or 'MyCharter' in the display name while not originating from legitimate Charter domains or failing DMARC authentication."
3+ type : " rule"
4+ severity : " medium"
5+ source : |
6+ type.inbound
7+
8+ and (
9+ // Claim to be Charter or Spectrum in the Display Name
10+ regex.icontains(sender.display_name, 'spe[cç]trum')
11+ or strings.icontains(sender.display_name, 'MyCharter')
12+
13+ // Claims sent by Charter
14+ or strings.icontains(body.current_thread.text, 'This message was sent by Charter Communications.')
15+ or regex.icontains(body.current_thread.text, ' © \d{4} Charter.?Communications')
16+
17+ )
18+ // Exclude authorized sending through legitimate sending domains
19+ and not (
20+ sender.email.domain.root_domain in (
21+ "spectrumemails.com", // primary communication domain
22+ "spectrumtoolbox.com", // used for SpetrumTool Enterprise
23+ "beagleinsight.com", // survey vendor
24+ "spectrumreach.com", // direct marketing
25+ "charter.com", // service alerts
26+ "spectrumenterprise.com", // customer surveys
27+ "spectrumcustomersurvey.com", // customer feedback surveys
28+ "ccsend.com", // they use constant contact
29+ "simplifiednetworkmanagement.com", // cold emailing from this domain
30+ "tbjobalerts.com", // Job listings for Spectrum
31+ "spectruminsiders.com" // legit surveys
32+ )
33+ and headers.auth_summary.dmarc.pass
34+ )
35+ // necessitated by legit emails that are failing dmarc (they probably use a vendor)
36+ and not (
37+ sender.email.domain.root_domain in (
38+ "spectrum.com", // they use vendors that don't have dmarc pass
39+ "spectrum.net", // voicemail notifications - dmarc null
40+ )
41+ and (headers.auth_summary.spf.pass or headers.auth_summary.dmarc.pass)
42+ )
43+
44+ // Make sure this is related to Charter -- exclude other use of 'spectrum'
45+ // use this section to provide strong indications of the brand we are targetting
46+ and (
47+ strings.icontains(body.current_thread.text, 'Charter')
48+ )
49+
50+ // Head off other jobs emails
51+ and not (
52+ strings.icontains(body.current_thread.text, "applicant")
53+ and strings.icontains(body.current_thread.text, "apply")
54+ and strings.icontains(body.current_thread.text, "Opportunity Employer")
55+ and strings.icontains(body.current_thread.text, "Opening")
56+ )
57+ attack_types :
58+ - " Credential Phishing"
59+ tactics_and_techniques :
60+ - " Impersonation: Brand"
61+ - " Social engineering"
62+ detection_methods :
63+ - " Content analysis"
64+ - " Header analysis"
65+ - " Sender analysis"
66+ id : " 26162949-d936-5dd7-a626-6f1b3ca41dff"
67+ og_id : " f1cd01e0-3f2b-52c3-9e99-66a9726763ce"
68+ testing_pr : 3068
69+ testing_sha : 511f6d66bef0641f6a0bc9f780049b9cea808d4c
0 commit comments