Detection rules › Sublime MQL
Brand impersonation: Adobe with suspicious language and link
Email contains an Adobe logo, at least one link, and suspicious link language from a new sender.
Threat classification
Sublime's own taxonomy (not MITRE ATT&CK).
| Category | Values |
|---|---|
| Attack types | Credential Phishing |
| Tactics and techniques | Impersonation: Brand, Social engineering |
Event coverage
Rule body MQL
type.inbound
// All attachments are images or 0 attachments
and (
(
length(attachments) > 0
and all(attachments, .file_type in $file_types_images)
)
or length(attachments) == 0
)
and length(body.links) > 0
and (
any(ml.logo_detect(file.message_screenshot()).brands,
.name == "Adobe" and .confidence in ("high")
)
or (
strings.icontains(body.current_thread.text, "adobe")
and not strings.icontains(body.current_thread.text, "adobe marketplace")
and not strings.icontains(body.current_thread.text, "adobe analytics")
and (
// Leverage topic analysis to pick up on themes
(
length(ml.nlu_classifier(body.current_thread.text).topics) == 1
and all(ml.nlu_classifier(body.current_thread.text).topics,
.name == "File Sharing and Cloud Services"
and .confidence != "low"
)
)
// Key phrases if topic anlayis doesn't match
or strings.icontains(body.current_thread.text, 'review the document')
or strings.icontains(body.current_thread.text, 'access file')
or strings.icontains(body.current_thread.text, 'pending document')
or any(body.links, strings.ilike(.display_text, 'review and sign'))
or any(body.links, strings.ilike(.display_text, 'open document'))
)
and length(body.current_thread.text) < 2000
)
)
and (
(
//
// This rule makes use of a beta feature and is subject to change without notice
// using the beta feature in custom rules is not suggested until it has been formally released
//
strings.ilike(beta.ocr(file.message_screenshot()).text,
"*review*",
"*sign*",
"*view*",
"open",
"*completed document*",
"*open agreement*",
"*open document*"
)
and not strings.ilike(beta.ocr(file.message_screenshot()).text,
"*view this email*",
"*view*browser*",
"*view online*",
"*business review*"
)
)
or any(body.links,
strings.ilike(.display_text,
"*review*",
"*sign*",
"*view*",
"open",
"*completed document*",
"*open agreement*",
"*open document*",
"*continue*"
)
and not strings.ilike(.display_text,
"*view this email*",
"*view*browser*",
"*view online*"
)
)
)
// Negate replies & forwards
and (
(
(length(headers.references) > 0 or headers.in_reply_to is null)
and not (
(
strings.istarts_with(subject.subject, "RE:")
or strings.istarts_with(subject.subject, "RES:")
or strings.istarts_with(subject.subject, "R:")
or strings.istarts_with(subject.subject, "ODG:")
or strings.istarts_with(subject.subject, "答复:")
or strings.istarts_with(subject.subject, "AW:")
or strings.istarts_with(subject.subject, "TR:")
or strings.istarts_with(subject.subject, "FWD:")
or regex.imatch(subject.subject,
'^\[?/{0,2}(EXT|EXTERNAL)\]?/{0,2}[: ]\s*(RE|FWD?|FW|AW|TR|ODG|答复):.*'
)
)
)
)
or length(headers.references) == 0
)
// Negate certain common topics
and not any(ml.nlu_classifier(body.current_thread.text).topics,
.name in (
"Advertising and Promotions",
"Events and Webinars",
"Professional and Career Development",
"Newsletters and Digests"
)
and .confidence != "low"
)
and (
(
headers.auth_summary.spf.pass
and headers.auth_summary.dmarc.pass
and (
not profile.by_sender().solicited
or profile.by_sender().any_messages_malicious_or_spam
or profile.by_sender_email().days_since.last_contact > 14
)
and not profile.by_sender().any_messages_benign
// Negate affiliates, sub-products & legitimate domains
and not sender.email.domain.root_domain in (
"adobe-events.com",
"frame.io",
"nudgesecurity.io",
"adobesignsandbox.com",
"magento.com",
"workfront.com"
)
// Continued
and not any(headers.domains, .root_domain == "zohomail.com")
and not strings.iends_with(headers.message_id, 'omniture.com>')
)
or not headers.auth_summary.spf.pass
or headers.auth_summary.spf.pass is null
or not headers.auth_summary.dmarc.pass
or headers.auth_summary.dmarc.pass is null
)
// 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
)
Detection logic
Scope: inbound message.
Email contains an Adobe logo, at least one link, and suspicious link language from a new sender.
- inbound message
any of:
all of:
- length(attachments) > 0
all of
attachmentswhere:- .file_type in $file_types_images
- length(attachments) is 0
- length(body.links) > 0
any of:
any of
ml.logo_detect(file.message_screenshot()).brandswhere all hold:- .name is 'Adobe'
- .confidence in ('high')
all of:
- body.current_thread.text contains 'adobe'
not:
- body.current_thread.text contains 'adobe marketplace'
not:
- body.current_thread.text contains 'adobe analytics'
any of:
all of:
- length(ml.nlu_classifier(body.current_thread.text).topics) is 1
all of
ml.nlu_classifier(body.current_thread.text).topicswhere all hold:- .name is 'File Sharing and Cloud Services'
- .confidence is not 'low'
- body.current_thread.text contains 'review the document'
- body.current_thread.text contains 'access file'
- body.current_thread.text contains 'pending document'
any of
body.linkswhere:- .display_text matches 'review and sign'
any of
body.linkswhere:- .display_text matches 'open document'
- length(body.current_thread.text) < 2000
any of:
all of:
beta.ocr(file.message_screenshot()).text matches any of 7 patterns
*review**sign**view*open*completed document**open agreement**open document*
not:
beta.ocr(file.message_screenshot()).text matches any of 4 patterns
*view this email**view*browser**view online**business review*
any of
body.linkswhere all hold:.display_text matches any of 8 patterns
*review**sign**view*open*completed document**open agreement**open document**continue*
not:
.display_text matches any of 3 patterns
*view this email**view*browser**view online*
any of:
all of:
any of:
- length(headers.references) > 0
- headers.in_reply_to is missing
none of:
- subject.subject starts with 'RE:'
- subject.subject starts with 'RES:'
- subject.subject starts with 'R:'
- subject.subject starts with 'ODG:'
- subject.subject starts with '答复:'
- subject.subject starts with 'AW:'
- subject.subject starts with 'TR:'
- subject.subject starts with 'FWD:'
- subject.subject matches '^\\[?/{0,2}(EXT|EXTERNAL)\\]?/{0,2}[: ]\\s*(RE|FWD?|FW|AW|TR|ODG|答复):.*'
- length(headers.references) is 0
not:
any of
ml.nlu_classifier(body.current_thread.text).topicswhere all hold:- .name in ('Advertising and Promotions', 'Events and Webinars', 'Professional and Career Development', 'Newsletters and Digests')
- .confidence is not 'low'
any of:
all of:
- headers.auth_summary.spf.pass
- headers.auth_summary.dmarc.pass
any of:
not:
- profile.by_sender().solicited
- profile.by_sender().any_messages_malicious_or_spam
- profile.by_sender_email().days_since.last_contact > 14
not:
- profile.by_sender().any_messages_benign
not:
- sender.email.domain.root_domain in ('adobe-events.com', 'frame.io', 'nudgesecurity.io', 'adobesignsandbox.com', 'magento.com', 'workfront.com')
not:
any of
headers.domainswhere:- .root_domain is 'zohomail.com'
not:
- headers.message_id ends with 'omniture.com>'
not:
- headers.auth_summary.spf.pass
- headers.auth_summary.spf.pass is missing
not:
- headers.auth_summary.dmarc.pass
- headers.auth_summary.dmarc.pass is missing
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
Inspects: attachments[].file_type, body.current_thread.text, body.links, body.links[].display_text, headers.auth_summary.dmarc.pass, headers.auth_summary.spf.pass, headers.domains, headers.domains[].root_domain, headers.in_reply_to, headers.message_id, headers.references, sender.email.domain.root_domain, subject.subject, type.inbound. Sensors: beta.ocr, file.message_screenshot, ml.logo_detect, ml.nlu_classifier, profile.by_sender, profile.by_sender_email, regex.imatch, strings.icontains, strings.iends_with, strings.ilike, strings.istarts_with. Reference lists: $file_types_images, $high_trust_sender_root_domains.
Indicators matched (44)
| Field | Match | Value |
|---|---|---|
ml.logo_detect(file.message_screenshot()).brands[].name | equals | Adobe |
ml.logo_detect(file.message_screenshot()).brands[].confidence | member | high |
strings.icontains | substring | adobe |
strings.icontains | substring | adobe marketplace |
strings.icontains | substring | adobe analytics |
ml.nlu_classifier(body.current_thread.text).topics[].name | equals | File Sharing and Cloud Services |
strings.icontains | substring | review the document |
strings.icontains | substring | access file |
strings.icontains | substring | pending document |
strings.ilike | substring | review and sign |
strings.ilike | substring | open document |
strings.ilike | substring | *review* |
32 more
strings.ilike | substring | *sign* |
strings.ilike | substring | *view* |
strings.ilike | substring | open |
strings.ilike | substring | *completed document* |
strings.ilike | substring | *open agreement* |
strings.ilike | substring | *open document* |
strings.ilike | substring | *view this email* |
strings.ilike | substring | *view*browser* |
strings.ilike | substring | *view online* |
strings.ilike | substring | *business review* |
strings.ilike | substring | *continue* |
strings.istarts_with | prefix | RE: |
strings.istarts_with | prefix | RES: |
strings.istarts_with | prefix | R: |
strings.istarts_with | prefix | ODG: |
strings.istarts_with | prefix | 答复: |
strings.istarts_with | prefix | AW: |
strings.istarts_with | prefix | TR: |
strings.istarts_with | prefix | FWD: |
regex.imatch | regex | ^\[?/{0,2}(EXT|EXTERNAL)\]?/{0,2}[: ]\s*(RE|FWD?|FW|AW|TR|ODG|答复):.* |
ml.nlu_classifier(body.current_thread.text).topics[].name | member | Advertising and Promotions |
ml.nlu_classifier(body.current_thread.text).topics[].name | member | Events and Webinars |
ml.nlu_classifier(body.current_thread.text).topics[].name | member | Professional and Career Development |
ml.nlu_classifier(body.current_thread.text).topics[].name | member | Newsletters and Digests |
sender.email.domain.root_domain | member | adobe-events.com |
sender.email.domain.root_domain | member | frame.io |
sender.email.domain.root_domain | member | nudgesecurity.io |
sender.email.domain.root_domain | member | adobesignsandbox.com |
sender.email.domain.root_domain | member | magento.com |
sender.email.domain.root_domain | member | workfront.com |
headers.domains[].root_domain | equals | zohomail.com |
strings.iends_with | suffix | omniture.com> |