Detection rules › Sublime MQL
Free subdomain link with login or captcha (untrusted sender)
Message contains a link that uses a free subdomain provider, and has a login or captcha on the page.
Threat classification
Sublime's own taxonomy (not MITRE ATT&CK).
| Category | Values |
|---|---|
| Attack types | Credential Phishing |
| Tactics and techniques | Free subdomain host, Social engineering |
Event coverage
| Message attribute |
|---|
| body |
| body.links (collection) |
| headers.auth_summary |
| sender.email |
| type |
Rule body MQL
type.inbound
and 0 < length(body.links) < 10
and any(body.links,
// contains login or captcha
(
ml.link_analysis(.).credphish.contains_login
or ml.link_analysis(.).credphish.contains_captcha
)
// either the original or the redirect is a free subdomain
and (
ml.link_analysis(.).effective_url.domain.root_domain in $free_subdomain_hosts
or .href_url.domain.root_domain in $free_subdomain_hosts
)
// exclude FP prone free subdomain hosts
// if it's a known brand impersonation, we'll detect it in other rules
and .href_url.domain.root_domain not in ("zendesk.com")
and ml.link_analysis(.).effective_url.domain.root_domain not in (
"zendesk.com"
)
and ml.link_analysis(.).effective_url.domain.domain not in (
"login.squarespace.com"
)
)
// exclude all freesubdomain links are images
and length(filter(body.links,
.href_url.domain.root_domain in $free_subdomain_hosts
and .href_url.domain.subdomain is not null
and .href_url.domain.subdomain != "www"
)
) > 0
and not all(filter(body.links,
.href_url.domain.root_domain in $free_subdomain_hosts
and .href_url.domain.subdomain is not null
and .href_url.domain.subdomain != "www"
),
(
strings.ends_with(.href_url.url, "jpeg")
or strings.ends_with(.href_url.url, "png")
)
)
// exclude FP prone senders
and sender.email.domain.root_domain not in ("sharepointonline.com")
// negate highly trusted sender domains unless they fail DMARC authentication
and (
(
sender.email.domain.root_domain in $high_trust_sender_root_domains
and not headers.auth_summary.dmarc.pass
)
or sender.email.domain.root_domain not in $high_trust_sender_root_domains
)
and (
(
profile.by_sender().prevalence in ("new", "outlier")
and not profile.by_sender().solicited
)
or (
profile.by_sender().any_messages_malicious_or_spam
and not profile.by_sender().any_messages_benign
)
)
and not profile.by_sender().any_messages_benign
Detection logic
Scope: inbound message.
Message contains a link that uses a free subdomain provider, and has a login or captcha on the page.
- inbound message
all of:
- length(body.links) > 0
- length(body.links) < 10
any of
body.linkswhere all hold:any of:
- ml.link_analysis(.).credphish.contains_login
- ml.link_analysis(.).credphish.contains_captcha
any of:
- ml.link_analysis(.).effective_url.domain.root_domain in $free_subdomain_hosts
- .href_url.domain.root_domain in $free_subdomain_hosts
- .href_url.domain.root_domain not in ('zendesk.com')
- ml.link_analysis(.).effective_url.domain.root_domain not in ('zendesk.com')
- ml.link_analysis(.).effective_url.domain.domain not in ('login.squarespace.com')
- length(filter(body.links, .href_url.domain.root_domain in $free_subdomain_hosts and .href_url.domain.subdomain is not null and .href_url.domain.subdomain != 'www')) > 0
not:
all of
filter(body.links)where any holds:- .href_url.url ends with 'jpeg'
- .href_url.url ends with 'png'
- sender.email.domain.root_domain not in ('sharepointonline.com')
any of:
all of:
- sender.email.domain.root_domain in $high_trust_sender_root_domains
not:
- headers.auth_summary.dmarc.pass
- sender.email.domain.root_domain not in $high_trust_sender_root_domains
any of:
all of:
- profile.by_sender().prevalence in ('new', 'outlier')
not:
- profile.by_sender().solicited
all of:
- profile.by_sender().any_messages_malicious_or_spam
not:
- profile.by_sender().any_messages_benign
not:
- profile.by_sender().any_messages_benign
Inspects: body.links, body.links[].href_url.domain.root_domain, body.links[].href_url.domain.subdomain, headers.auth_summary.dmarc.pass, sender.email.domain.root_domain, type.inbound. Sensors: ml.link_analysis, profile.by_sender, strings.ends_with. Reference lists: $free_subdomain_hosts, $high_trust_sender_root_domains.
Indicators matched (4)
| Field | Match | Value |
|---|---|---|
body.links[].href_url.domain.root_domain | member | zendesk.com |
strings.ends_with | suffix | jpeg |
strings.ends_with | suffix | png |
sender.email.domain.root_domain | member | sharepointonline.com |