Detection rules › Sublime MQL
Brand impersonation: Microsoft logo or suspicious language with open redirect
Message contains a Microsoft logo or suspicious terms and use of an open redirect. This has been exploited in the wild to impersonate Microsoft.
Threat classification
Sublime's own taxonomy (not MITRE ATT&CK).
| Category | Values |
|---|---|
| Attack types | BEC/Fraud |
| Tactics and techniques | Impersonation: Brand, Open redirect, Social engineering |
Event coverage
Rule body MQL
type.inbound
and (length(attachments) < 5 or length(body.links) < 10)
// Microsoft logo
and (
any(attachments,
.file_type in $file_types_images
and any(ml.logo_detect(.).brands, strings.starts_with(.name, "Microsoft"))
)
or any(attachments,
.file_type in $file_types_images
and (
any(file.explode(.),
2 of (
strings.ilike(.scan.ocr.raw, "*password*"),
strings.ilike(.scan.ocr.raw, "*unread messages*"),
strings.ilike(.scan.ocr.raw, "*Shared Documents*"),
strings.ilike(.scan.ocr.raw, "*expiration*"),
strings.ilike(.scan.ocr.raw, "*office*"),
strings.ilike(.scan.ocr.raw, "*expire*"),
strings.ilike(.scan.ocr.raw, "*expiring*"),
strings.ilike(.scan.ocr.raw, "*kindly*"),
strings.ilike(.scan.ocr.raw, "*renew*"),
strings.ilike(.scan.ocr.raw, "*review"),
strings.ilike(.scan.ocr.raw, "*emails failed*"),
strings.ilike(.scan.ocr.raw, "*kicked out*"),
strings.ilike(.scan.ocr.raw, "*prevented*"),
strings.ilike(.scan.ocr.raw, "*storage quota*"),
strings.ilike(.scan.ocr.raw, "*required now"),
strings.ilike(.scan.ocr.raw, "*cache*"),
strings.ilike(.scan.ocr.raw, "*qr code*"),
strings.ilike(.scan.ocr.raw, "*barcode*"),
strings.ilike(.scan.ocr.raw, "*security update*"),
strings.ilike(.scan.ocr.raw, "*quarantine*")
)
)
)
)
)
// open redirect
and any(body.links,
any(.href_url.rewrite.encoders, strings.icontains(., "open_redirect"))
and not .href_url.domain.root_domain in $org_domains
)
and not (length(headers.references) > 0 or headers.in_reply_to is not null)
and sender.email.domain.root_domain not in $org_domains
and sender.email.domain.root_domain not in (
"bing.com",
"microsoft.com",
"microsoftonline.com",
"microsoftstoreemail.com",
"microsoftsupport.com",
"microsoft365.com",
"office.com",
"onedrive.com",
"sharepointonline.com",
"yammer.com"
)
Detection logic
Scope: inbound message.
Message contains a Microsoft logo or suspicious terms and use of an open redirect. This has been exploited in the wild to impersonate Microsoft.
- inbound message
any of:
- length(attachments) < 5
- length(body.links) < 10
any of:
any of
attachmentswhere all hold:- .file_type in $file_types_images
any of
ml.logo_detect(.).brandswhere:- .name starts with 'Microsoft'
any of
attachmentswhere all hold:- .file_type in $file_types_images
any of
file.explode(.)where:at least 2 of 20: .scan.ocr.raw matches any of 20 patterns
*password**unread messages**Shared Documents**expiration**office**expire**expiring**kindly**renew**review*emails failed**kicked out**prevented**storage quota**required now*cache**qr code**barcode**security update**quarantine*
any of
body.linkswhere all hold:any of
.href_url.rewrite.encoderswhere:- . contains 'open_redirect'
not:
- .href_url.domain.root_domain in $org_domains
none of:
- length(headers.references) > 0
- headers.in_reply_to is set
- sender.email.domain.root_domain not in $org_domains
- sender.email.domain.root_domain not in ('bing.com', 'microsoft.com', 'microsoftonline.com', 'microsoftstoreemail.com', 'microsoftsupport.com', 'microsoft365.com', 'office.com', 'onedrive.com', 'sharepointonline.com', 'yammer.com')
Inspects: attachments[].file_type, body.links, body.links[].href_url.domain.root_domain, body.links[].href_url.rewrite.encoders, headers.in_reply_to, headers.references, sender.email.domain.root_domain, type.inbound. Sensors: file.explode, ml.logo_detect, strings.icontains, strings.ilike, strings.starts_with. Reference lists: $file_types_images, $org_domains.
Indicators matched (32)
| Field | Match | Value |
|---|---|---|
strings.starts_with | prefix | Microsoft |
strings.ilike | substring | *password* |
strings.ilike | substring | *unread messages* |
strings.ilike | substring | *Shared Documents* |
strings.ilike | substring | *expiration* |
strings.ilike | substring | *office* |
strings.ilike | substring | *expire* |
strings.ilike | substring | *expiring* |
strings.ilike | substring | *kindly* |
strings.ilike | substring | *renew* |
strings.ilike | substring | *review |
strings.ilike | substring | *emails failed* |
20 more
strings.ilike | substring | *kicked out* |
strings.ilike | substring | *prevented* |
strings.ilike | substring | *storage quota* |
strings.ilike | substring | *required now |
strings.ilike | substring | *cache* |
strings.ilike | substring | *qr code* |
strings.ilike | substring | *barcode* |
strings.ilike | substring | *security update* |
strings.ilike | substring | *quarantine* |
strings.icontains | substring | open_redirect |
sender.email.domain.root_domain | member | bing.com |
sender.email.domain.root_domain | member | microsoft.com |
sender.email.domain.root_domain | member | microsoftonline.com |
sender.email.domain.root_domain | member | microsoftstoreemail.com |
sender.email.domain.root_domain | member | microsoftsupport.com |
sender.email.domain.root_domain | member | microsoft365.com |
sender.email.domain.root_domain | member | office.com |
sender.email.domain.root_domain | member | onedrive.com |
sender.email.domain.root_domain | member | sharepointonline.com |
sender.email.domain.root_domain | member | yammer.com |