Detection rules › Sublime MQL
Brand impersonation: Amazon with suspicious attachment
Impersonation of Amazon. These are most commonly fake shipping notifications. Amazon is the #2 most-impersonated brand (as of Q2 2020)
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
| Message attribute |
|---|
| attachments (collection) |
| body.current_thread |
| sender |
| sender.email |
| type |
Rule body MQL
type.inbound
and (
strings.ilike(sender.display_name, "amazon*")
or any(attachments, strings.icontains(.file_name, "amazon"))
or any(attachments,
(.file_type in $file_types_images or .file_type == "pdf")
and any(file.explode(.), strings.icontains(.scan.ocr.raw, "amazon"))
)
)
and any(attachments,
(.file_type in $file_types_images or .file_type == "pdf")
and any(ml.logo_detect(.).brands,
.name == "Amazon" and .confidence in~ ("medium", "high")
)
and (
any(file.explode(.),
any(ml.nlu_classifier(.scan.ocr.raw).intents,
.name != "benign" and .confidence == "high"
)
)
or any(ml.nlu_classifier(body.current_thread.text).intents,
.name != "benign" and .confidence == "high"
)
)
)
and (
not profile.by_sender().solicited
or (
profile.by_sender().any_messages_malicious_or_spam
and not profile.by_sender().any_messages_benign
)
)
and sender.email.domain.root_domain not in~ (
'a2z.com',
'amazon.com',
'amazon.com.au',
'amazon.co.uk',
'amazon.de',
'amazon.es',
'amazon.fr',
'amazon.it',
'amazon.in',
'amazon.lu',
'amazon.com.au',
'amazonsellerservices.com',
'amazon.ae',
'amazon.sa',
'amazon.cn',
'amazon.ca',
'amazon.com.mx',
'amazon.com.br',
'amazon.ph',
'amazon.sg',
'amazon.com.tr',
'amazonpay.in',
'amazonpay.com',
'synchronybank.com',
'aws.com'
)
Detection logic
Scope: inbound message.
Impersonation of Amazon. These are most commonly fake shipping notifications. Amazon is the #2 most-impersonated brand (as of Q2 2020)
- inbound message
any of:
- sender.display_name matches 'amazon*'
any of
attachmentswhere:- .file_name contains 'amazon'
any of
attachmentswhere all hold:any of:
- .file_type in $file_types_images
- .file_type is 'pdf'
any of
file.explode(.)where:- .scan.ocr.raw contains 'amazon'
any of
attachmentswhere all hold:any of:
- .file_type in $file_types_images
- .file_type is 'pdf'
any of
ml.logo_detect(.).brandswhere all hold:- .name is 'Amazon'
- .confidence in ('medium', 'high')
any of:
any of
file.explode(.)where:any of
ml.nlu_classifier(.scan.ocr.raw).intentswhere all hold:- .name is not 'benign'
- .confidence is 'high'
any of
ml.nlu_classifier(body.current_thread.text).intentswhere all hold:- .name is not 'benign'
- .confidence is 'high'
any of:
not:
- profile.by_sender().solicited
all of:
- profile.by_sender().any_messages_malicious_or_spam
not:
- profile.by_sender().any_messages_benign
- sender.email.domain.root_domain not in ('a2z.com', 'amazon.com', 'amazon.com.au', 'amazon.co.uk', 'amazon.de', 'amazon.es', 'amazon.fr', 'amazon.it', 'amazon.in', 'amazon.lu', 'amazon.com.au', 'amazonsellerservices.com', 'amazon.ae', 'amazon.sa', 'amazon.cn', 'amazon.ca', 'amazon.com.mx', 'amazon.com.br', 'amazon.ph', 'amazon.sg', 'amazon.com.tr', 'amazonpay.in', 'amazonpay.com', 'synchronybank.com', 'aws.com')
Inspects: attachments[].file_name, attachments[].file_type, body.current_thread.text, sender.display_name, sender.email.domain.root_domain, type.inbound. Sensors: file.explode, ml.logo_detect, ml.nlu_classifier, profile.by_sender, strings.icontains, strings.ilike. Reference lists: $file_types_images.
Indicators matched (32)
| Field | Match | Value |
|---|---|---|
strings.ilike | substring | amazon* |
strings.icontains | substring | amazon |
attachments[].file_type | equals | pdf |
ml.logo_detect(attachments[]).brands[].name | equals | Amazon |
ml.logo_detect(attachments[]).brands[].confidence | member | medium |
ml.logo_detect(attachments[]).brands[].confidence | member | high |
ml.nlu_classifier(file.explode(attachments[])[].scan.ocr.raw).intents[].confidence | equals | high |
ml.nlu_classifier(body.current_thread.text).intents[].confidence | equals | high |
sender.email.domain.root_domain | member | a2z.com |
sender.email.domain.root_domain | member | amazon.com |
sender.email.domain.root_domain | member | amazon.com.au |
sender.email.domain.root_domain | member | amazon.co.uk |
20 more
sender.email.domain.root_domain | member | amazon.de |
sender.email.domain.root_domain | member | amazon.es |
sender.email.domain.root_domain | member | amazon.fr |
sender.email.domain.root_domain | member | amazon.it |
sender.email.domain.root_domain | member | amazon.in |
sender.email.domain.root_domain | member | amazon.lu |
sender.email.domain.root_domain | member | amazonsellerservices.com |
sender.email.domain.root_domain | member | amazon.ae |
sender.email.domain.root_domain | member | amazon.sa |
sender.email.domain.root_domain | member | amazon.cn |
sender.email.domain.root_domain | member | amazon.ca |
sender.email.domain.root_domain | member | amazon.com.mx |
sender.email.domain.root_domain | member | amazon.com.br |
sender.email.domain.root_domain | member | amazon.ph |
sender.email.domain.root_domain | member | amazon.sg |
sender.email.domain.root_domain | member | amazon.com.tr |
sender.email.domain.root_domain | member | amazonpay.in |
sender.email.domain.root_domain | member | amazonpay.com |
sender.email.domain.root_domain | member | synchronybank.com |
sender.email.domain.root_domain | member | aws.com |