Link: Free file hosting with undisclosed recipients
Detects messages containing links to free file hosting or subdomain services that are sent to undisclosed recipients or only CC/BCC recipients. The rule identifies suspicious distribution patterns where legitimate recipients are hidden, potentially indicating mass distribution of malicious content through file sharing platforms.
Sublime rule (View on GitHub)
1name: "Link: Free file hosting with undisclosed recipients"
2description: "Detects messages containing links to free file hosting or subdomain services that are sent to undisclosed recipients or only CC/BCC recipients. The rule identifies suspicious distribution patterns where legitimate recipients are hidden, potentially indicating mass distribution of malicious content through file sharing platforms."
3type: "rule"
4severity: "medium"
5source: |
6 type.inbound
7 // no previous threads
8 and length(body.previous_threads) == 0
9
10 // few links that aren't "social" links
11 and 0 < length(filter(body.current_thread.links,
12 .href_url.domain.root_domain not in (
13 'x.com',
14 'facebook.com',
15 'twitter.com',
16 'instagram.com',
17 'youtube.com',
18 'linkedin.com'
19 )
20 )
21 ) < 10
22
23 // undisclosed recipients or all recipients cc'd
24 and (
25 any(recipients.to, strings.ilike(.display_name, "undisclosed?recipients"))
26 or (length(recipients.cc) > 0 and length(recipients.to) == 0)
27 or (length(recipients.bcc) > 0 and length(recipients.to) == 0)
28 or (
29 length(recipients.to) == 1
30 and length(recipients.cc) == 0
31 and length(recipients.bcc) == 0
32 and all(recipients.to, .email.email == sender.email.email)
33 and all(recipients.to, .email.email != mailbox.email.email)
34 )
35 )
36
37 // links to free file hosts or free subdomain hosts
38 and any(body.current_thread.links,
39 (
40 .href_url.domain.root_domain in $free_file_hosts
41 or .href_url.domain.root_domain in $free_subdomain_hosts
42 )
43 and .href_url.domain.subdomain is not null
44 and .visible
45 and not (
46 .href_url.domain.root_domain == "googleusercontent.com"
47 and strings.istarts_with(.href_url.path, "/mail-sig")
48 )
49 and not .href_url.domain.domain in $tenant_domains
50 )
51
52 // negate listmailers & benign threads
53 and not (
54 any(headers.hops, any(.fields, .name == "List-Unsubscribe"))
55 or any(ml.nlu_classifier(body.current_thread.text).intents,
56 .name == "benign" and .confidence == "high"
57 )
58 )
59
60 // unsolicited and passing auth, or failing/missing dmarc
61 and (
62 (
63 coalesce(headers.auth_summary.dmarc.pass, false)
64 and not profile.by_sender().solicited
65 )
66 or (not coalesce(headers.auth_summary.dmarc.pass, false))
67 )
68
69
70attack_types:
71 - "Credential Phishing"
72 - "Malware/Ransomware"
73tactics_and_techniques:
74 - "Free file host"
75 - "Free subdomain host"
76 - "Evasion"
77detection_methods:
78 - "Header analysis"
79 - "URL analysis"
80 - "Sender analysis"
81 - "Natural Language Understanding"
82id: "b6281306-bf26-58e2-8445-0ef8d05d9820"