Brand impersonation: Discord notification
Detects inbound messages that impersonate Discord's notification system through display name spoofing, domain lookalikes, or logo usage in attachments. The messages contain typical Discord-style notification language in the subject line while failing authentication checks.
Sublime rule (View on GitHub)
1name: "Brand impersonation: Discord notification"
2description: "Detects inbound messages that impersonate Discord's notification system through display name spoofing, domain lookalikes, or logo usage in attachments. The messages contain typical Discord-style notification language in the subject line while failing authentication checks."
3type: "rule"
4severity: "medium"
5source: |
6 type.inbound
7 and (
8 strings.ilike(sender.display_name, '*discord*')
9 or (
10 strings.ilevenshtein(sender.display_name, 'discord') <= 2
11 and sender.display_name not in~ ("discogs")
12 )
13 or strings.ilike(sender.email.domain.domain, '*discord*')
14 // Discord logo detection in image attachments
15 or any(attachments,
16 .file_type in $file_types_images
17 and any(ml.logo_detect(.).brands,
18 .name == "Discord" and .confidence != "low"
19 )
20 )
21 // Discord logo detection in message screenshot
22 or any(ml.logo_detect(file.message_screenshot()).brands,
23 .name == "Discord" and .confidence != "low"
24 )
25 )
26 and (
27 strings.icontains(subject.subject, 'you have received a new notification')
28 or regex.icontains(subject.subject,
29 '(?:(?:new|unread|missed|pending|discord)\s+)?(?:message|notification|alert|activity|call) (?:from|waiting|pending)',
30 )
31 or strings.icontains(subject.subject, 'friend request')
32 or strings.icontains(subject.subject, 'server invitation')
33 or strings.icontains(subject.subject, 'mentioned you')
34 or strings.icontains(subject.subject, 'direct message')
35 )
36 and not (
37 sender.email.domain.root_domain in ("discord.com", "discogs.com")
38 and headers.auth_summary.dmarc.pass
39 )
40 // negate highly trusted sender domains unless they fail DMARC authentication
41 and not (
42 sender.email.domain.root_domain in $high_trust_sender_root_domains
43 and coalesce(headers.auth_summary.dmarc.pass, false)
44 )
45
46attack_types:
47 - "Credential Phishing"
48tactics_and_techniques:
49 - "Impersonation: Brand"
50 - "Social engineering"
51detection_methods:
52 - "Computer Vision"
53 - "Content analysis"
54id: "97007826-84e5-5599-8981-e30fc86c56b3"