Detection rules › Sublime MQL
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.
Threat classification
Sublime's own taxonomy (not MITRE ATT&CK).
| Category | Values |
|---|---|
| Attack types | Credential Phishing, Malware/Ransomware |
| Tactics and techniques | Free file host, Free subdomain host, Evasion |
Event coverage
Rule body MQL
type.inbound
// no previous threads
and (
length(body.previous_threads) == 0
// If there is a previous thread, it is unrelated to current thread
or any(body.previous_threads, .sender.email.email != mailbox.email.email)
)
// few links that aren't "social" links
and 0 < length(filter(body.current_thread.links,
.href_url.domain.root_domain not in (
'x.com',
'facebook.com',
'twitter.com',
'instagram.com',
'youtube.com',
'linkedin.com'
)
)
) < 10
// undisclosed recipients or all recipients cc'd
and (
any(recipients.to, strings.ilike(.display_name, "undisclosed?recipients"))
or (length(recipients.cc) > 0 and length(recipients.to) == 0)
or (length(recipients.bcc) > 0 and length(recipients.to) == 0)
or (
length(recipients.to) == 1
and length(recipients.cc) == 0
and length(recipients.bcc) == 0
and all(recipients.to, .email.email == sender.email.email)
and all(recipients.to, .email.email != mailbox.email.email)
)
)
// links to free file hosts or free subdomain hosts
and any(body.current_thread.links,
(
.href_url.domain.root_domain in $free_file_hosts
or .href_url.domain.root_domain in $free_subdomain_hosts
)
and .visible
and not (
.href_url.domain.root_domain == "googleusercontent.com"
and strings.istarts_with(.href_url.path, "/mail-sig")
)
and not .href_url.domain.domain in $tenant_domains
)
// negate listmailers & benign threads
and not (
any(headers.hops, any(.fields, .name == "List-Unsubscribe"))
or any(ml.nlu_classifier(body.current_thread.text).intents,
.name == "benign" and .confidence == "high"
)
)
and not (
(
sender.email.domain.root_domain in ("twilio.com", "zendesk.com")
or headers.return_path.domain.root_domain in ("twilio.com", "zendesk.com")
)
and coalesce(headers.auth_summary.dmarc.pass, false)
)
// unsolicited and passing auth, or failing/missing dmarc
and (
(
coalesce(headers.auth_summary.dmarc.pass, false)
and not profile.by_sender().solicited
)
or profile.by_sender_email().days_since.last_inbound > 365
or (not coalesce(headers.auth_summary.dmarc.pass, false))
)
Detection logic
Scope: inbound message.
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.
- inbound message
any of:
- length(body.previous_threads) is 0
any of
body.previous_threadswhere:- .sender.email.email is not mailbox.email.email
all of:
- length(filter(body.current_thread.links, .href_url.domain.root_domain not in ('x.com', 'facebook.com', 'twitter.com', 'instagram.com', 'youtube.com', 'linkedin.com'))) > 0
- length(filter(body.current_thread.links, .href_url.domain.root_domain not in ('x.com', 'facebook.com', 'twitter.com', 'instagram.com', 'youtube.com', 'linkedin.com'))) < 10
any of:
any of
recipients.towhere:- .display_name matches 'undisclosed?recipients'
all of:
- length(recipients.cc) > 0
- length(recipients.to) is 0
all of:
- length(recipients.bcc) > 0
- length(recipients.to) is 0
all of:
- length(recipients.to) is 1
- length(recipients.cc) is 0
- length(recipients.bcc) is 0
all of
recipients.towhere:- .email.email is sender.email.email
all of
recipients.towhere:- .email.email is not mailbox.email.email
any of
body.current_thread.linkswhere all hold:any of:
- .href_url.domain.root_domain in $free_file_hosts
- .href_url.domain.root_domain in $free_subdomain_hosts
- .visible
not:
all of:
- .href_url.domain.root_domain is 'googleusercontent.com'
- .href_url.path starts with '/mail-sig'
not:
- .href_url.domain.domain in $tenant_domains
none of:
any of
headers.hopswhere:any of
.fieldswhere:- .name is 'List-Unsubscribe'
any of
ml.nlu_classifier(body.current_thread.text).intentswhere all hold:- .name is 'benign'
- .confidence is 'high'
not:
all of:
any of:
- sender.email.domain.root_domain in ('twilio.com', 'zendesk.com')
- headers.return_path.domain.root_domain in ('twilio.com', 'zendesk.com')
- coalesce(headers.auth_summary.dmarc.pass)
any of:
all of:
- coalesce(headers.auth_summary.dmarc.pass)
not:
- profile.by_sender().solicited
- profile.by_sender_email().days_since.last_inbound > 365
not:
- coalesce(headers.auth_summary.dmarc.pass)
Inspects: body.current_thread.links, body.current_thread.links[].href_url.domain.domain, body.current_thread.links[].href_url.domain.root_domain, body.current_thread.links[].href_url.path, body.current_thread.links[].visible, body.current_thread.text, body.previous_threads, body.previous_threads[].sender.email.email, headers.auth_summary.dmarc.pass, headers.hops, headers.hops[].fields, headers.hops[].fields[].name, headers.return_path.domain.root_domain, mailbox.email.email, recipients.bcc, recipients.cc, recipients.to, recipients.to[].display_name, recipients.to[].email.email, sender.email.domain.root_domain, sender.email.email, type.inbound. Sensors: ml.nlu_classifier, profile.by_sender, profile.by_sender_email, strings.ilike, strings.istarts_with. Reference lists: $free_file_hosts, $free_subdomain_hosts, $tenant_domains.
Indicators matched (16)
| Field | Match | Value |
|---|---|---|
body.current_thread.links[].href_url.domain.root_domain | member | x.com |
body.current_thread.links[].href_url.domain.root_domain | member | facebook.com |
body.current_thread.links[].href_url.domain.root_domain | member | twitter.com |
body.current_thread.links[].href_url.domain.root_domain | member | instagram.com |
body.current_thread.links[].href_url.domain.root_domain | member | youtube.com |
body.current_thread.links[].href_url.domain.root_domain | member | linkedin.com |
strings.ilike | substring | undisclosed?recipients |
body.current_thread.links[].href_url.domain.root_domain | equals | googleusercontent.com |
strings.istarts_with | prefix | /mail-sig |
headers.hops[].fields[].name | equals | List-Unsubscribe |
ml.nlu_classifier(body.current_thread.text).intents[].name | equals | benign |
ml.nlu_classifier(body.current_thread.text).intents[].confidence | equals | high |
4 more
sender.email.domain.root_domain | member | twilio.com |
sender.email.domain.root_domain | member | zendesk.com |
headers.return_path.domain.root_domain | member | twilio.com |
headers.return_path.domain.root_domain | member | zendesk.com |