Detection rules › Sublime MQL
Deceptive Dropbox mention
Detects when a message mentions Dropbox but comes from non-Dropbox infrastructure, contains links to suspicious domains, shows discrepancies in sender identity, and contains language patterns associated with credential theft.
Threat classification
Sublime's own taxonomy (not MITRE ATT&CK).
| Category | Values |
|---|---|
| Attack types | Credential Phishing |
| Tactics and techniques | Impersonation: Brand, Free file host, Free subdomain host, Social engineering |
Event coverage
Rule body MQL
type.inbound
and strings.icontains(body.current_thread.text, 'dropbox')
and any(beta.ml_topic(coalesce(body.html.display_text, body.current_thread.text)
).topics,
.name == "File Sharing and Cloud Services" and .confidence != "low"
)
and (
// Email address discrepancy detection - looking for matches in the domain name from the sender but not the current thread proposed sender name
any(regex.iextract(body.current_thread.text,
'(?P<whole_email>(?P<local_part>[a-zA-Z0-9._%-]+)@(?P<domain_name>[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}))'
),
strings.parse_email(.named_groups["whole_email"]).domain.domain == sender.email.domain.domain
and strings.parse_email(.named_groups["whole_email"]).local_part != sender.email.local_part
and not strings.parse_email(.named_groups["whole_email"]).email in~ map(filter(recipients.to,
.email.domain.valid
),
.email.email
)
)
// self sender
or (
length(recipients.to) == 1
and sender.email.email == recipients.to[0].email.email
)
)
// Not from legitimate Dropbox infrastructure
and sender.email.domain.root_domain not in~ (
'dropbox.com',
'docsend.com',
'box.com',
'wetransfer.com',
// tuning: exlude hellosign emails that are covered in another rule
'hellosign.com'
)
// Contains suspicious links to non-Dropbox/file-sharing domains
and any(body.links,
(
.href_url.domain.root_domain in~ $free_subdomain_hosts
or .href_url.domain.root_domain in~ $free_file_hosts
)
and .href_url.domain.valid
)
// ML indicates potential credential theft
and any(ml.nlu_classifier(body.current_thread.text).intents,
.name == "cred_theft" and .confidence != "low"
)
Detection logic
Scope: inbound message.
Detects when a message mentions Dropbox but comes from non-Dropbox infrastructure, contains links to suspicious domains, shows discrepancies in sender identity, and contains language patterns associated with credential theft.
- inbound message
- body.current_thread.text contains 'dropbox'
any of
beta.ml_topic(coalesce(body.html.display_text, body.current_thread.text)).topicswhere all hold:- .name is 'File Sharing and Cloud Services'
- .confidence is not 'low'
any of:
any of
regex.iextract(body.current_thread.text)where all hold:- strings.parse_email(.named_groups['whole_email']).domain.domain is sender.email.domain.domain
- strings.parse_email(.named_groups['whole_email']).local_part is not sender.email.local_part
not:
- strings.parse_email(.named_groups['whole_email']).email in map(filter(recipients.to, .email.domain.valid), .email.email)
all of:
- length(recipients.to) is 1
- sender.email.email is recipients.to[0].email.email
- sender.email.domain.root_domain not in ('dropbox.com', 'docsend.com', 'box.com', 'wetransfer.com', 'hellosign.com')
any of
body.linkswhere all hold:any of:
- .href_url.domain.root_domain in $free_subdomain_hosts
- .href_url.domain.root_domain in $free_file_hosts
- .href_url.domain.valid
any of
ml.nlu_classifier(body.current_thread.text).intentswhere all hold:- .name is 'cred_theft'
- .confidence is not 'low'
Inspects: body.current_thread.text, body.html.display_text, body.links, body.links[].href_url.domain.root_domain, body.links[].href_url.domain.valid, recipients.to, recipients.to[0].email.email, recipients.to[].email.domain.valid, sender.email.domain.domain, sender.email.domain.root_domain, sender.email.email, sender.email.local_part, type.inbound. Sensors: beta.ml_topic, ml.nlu_classifier, regex.iextract, strings.icontains, strings.parse_email. Reference lists: $free_file_hosts, $free_subdomain_hosts.
Indicators matched (9)
| Field | Match | Value |
|---|---|---|
strings.icontains | substring | dropbox |
beta.ml_topic(coalesce(body.html.display_text, body.current_thread.text)).topics[].name | equals | File Sharing and Cloud Services |
regex.iextract | regex | (?P<whole_email>(?P<local_part>[a-zA-Z0-9._%-]+)@(?P<domain_name>[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})) |
sender.email.domain.root_domain | member | dropbox.com |
sender.email.domain.root_domain | member | docsend.com |
sender.email.domain.root_domain | member | box.com |
sender.email.domain.root_domain | member | wetransfer.com |
sender.email.domain.root_domain | member | hellosign.com |
ml.nlu_classifier(body.current_thread.text).intents[].name | equals | cred_theft |