Detection rules › Sublime MQL
Suspicious recipient pattern and language with low reputation link to login
Message contains a suspicious recipient pattern, financial or urgent language, and a suspicious link, with a login page and confusable characters or multiple redirects.
Threat classification
Sublime's own taxonomy (not MITRE ATT&CK).
| Category | Values |
|---|---|
| Attack types | Credential Phishing |
| Tactics and techniques | Social engineering |
Event coverage
Rule body MQL
type.inbound
and any(body.links,
(
(
.href_url.domain.root_domain not in $tranco_1m
and .href_url.domain.valid
and .href_url.domain.root_domain not in $org_domains
and .href_url.domain.root_domain not in $high_trust_sender_root_domains
)
or .href_url.domain.tld in $suspicious_tlds
)
and (
ml.link_analysis(.).credphish.contains_login
and (
ml.link_analysis(.).final_dom.display_text != strings.replace_confusables(ml.link_analysis(.
).final_dom.display_text
)
or length(ml.link_analysis(.).redirect_history) > 1
)
)
)
and any(ml.nlu_classifier(body.current_thread.text).entities,
.name in ("financial", "urgency")
)
and (
(
length(recipients.to) == 0
or length(recipients.bcc) > 0
or (
all(recipients.to, .email.domain.valid == false)
and all(recipients.cc, .email.domain.valid == false)
)
)
)
and all(body.links,
.href_url.domain.root_domain != sender.email.domain.root_domain
)
Detection logic
Scope: inbound message.
Message contains a suspicious recipient pattern, financial or urgent language, and a suspicious link, with a login page and confusable characters or multiple redirects.
- inbound message
any of
body.linkswhere all hold:any of:
all of:
- .href_url.domain.root_domain not in $tranco_1m
- .href_url.domain.valid
- .href_url.domain.root_domain not in $org_domains
- .href_url.domain.root_domain not in $high_trust_sender_root_domains
- .href_url.domain.tld in $suspicious_tlds
all of:
- ml.link_analysis(.).credphish.contains_login
any of:
- ml.link_analysis(.).final_dom.display_text is not strings.replace_confusables(ml.link_analysis(.).final_dom.display_text)
- length(ml.link_analysis(.).redirect_history) > 1
any of
ml.nlu_classifier(body.current_thread.text).entitieswhere:- .name in ('financial', 'urgency')
any of:
- length(recipients.to) is 0
- length(recipients.bcc) > 0
all of:
all of
recipients.towhere:- .email.domain.valid is False
all of
recipients.ccwhere:- .email.domain.valid is False
all of
body.linkswhere:- .href_url.domain.root_domain is not sender.email.domain.root_domain
Inspects: body.current_thread.text, body.links, body.links[].href_url.domain.root_domain, body.links[].href_url.domain.tld, body.links[].href_url.domain.valid, recipients.bcc, recipients.cc, recipients.cc[].email.domain.valid, recipients.to, recipients.to[].email.domain.valid, sender.email.domain.root_domain, type.inbound. Sensors: ml.link_analysis, ml.nlu_classifier, strings.replace_confusables. Reference lists: $high_trust_sender_root_domains, $org_domains, $suspicious_tlds, $tranco_1m.
Indicators matched (2)
| Field | Match | Value |
|---|---|---|
ml.nlu_classifier(body.current_thread.text).entities[].name | member | financial |
ml.nlu_classifier(body.current_thread.text).entities[].name | member | urgency |