Detection rules › Sublime MQL
Brand impersonation: Navan
Impersonation of the expense management provider Navan.
Threat classification
Sublime's own taxonomy (not MITRE ATT&CK).
| Category | Values |
|---|---|
| Attack types | Credential Phishing |
| Tactics and techniques | Impersonation: Brand, Social engineering, Spoofing |
Event coverage
| Message attribute |
|---|
| body.current_thread |
| headers.auth_summary |
| sender |
| sender.email |
| subject |
| type |
Rule body MQL
type.inbound
and (
regex.icontains(sender.display_name, '(?:The\s+)?\bNavan\b(?:\s+Team)?')
or strings.ilike(sender.email.domain.domain, '*Navan*')
or 2 of (
strings.icontains(body.current_thread.text, 'Navan'),
strings.icontains(body.current_thread.text, '3045 Park Blvd'),
strings.icontains(body.current_thread.text, 'Palo Alto, CA 94306')
)
)
and (
any(ml.logo_detect(file.message_screenshot()).brands,
.name == "Navan" and .confidence in ("medium", "high")
)
or (
regex.icontains(subject.subject,
"(?:unrecognized|Unusual|suspicious|unknown) (?:log|sign).?[io]n attempt",
"(?:important|urgent|attention|alert) account|accessed|[new|unrecognized|suspicious] location"
)
or any(ml.nlu_classifier(body.current_thread.text).entities,
.name == "urgency"
)
or any(ml.nlu_classifier(body.current_thread.text).intents,
.name in ("cred_theft", "steal_pii")
)
)
)
and sender.email.domain.root_domain not in~ ('navan.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 (
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.
Impersonation of the expense management provider Navan.
- inbound message
any of:
- sender.display_name matches '(?:The\\s+)?\\bNavan\\b(?:\\s+Team)?'
- sender.email.domain.domain matches '*Navan*'
at least 2 of:
- body.current_thread.text contains 'Navan'
- body.current_thread.text contains '3045 Park Blvd'
- body.current_thread.text contains 'Palo Alto, CA 94306'
any of:
any of
ml.logo_detect(file.message_screenshot()).brandswhere all hold:- .name is 'Navan'
- .confidence in ('medium', 'high')
any of:
subject.subject matches any of 2 patterns
(?:unrecognized|Unusual|suspicious|unknown) (?:log|sign).?[io]n attempt(?:important|urgent|attention|alert) account|accessed|[new|unrecognized|suspicious] location
any of
ml.nlu_classifier(body.current_thread.text).entitieswhere:- .name is 'urgency'
any of
ml.nlu_classifier(body.current_thread.text).intentswhere:- .name in ('cred_theft', 'steal_pii')
- sender.email.domain.root_domain not in ('navan.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:
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.current_thread.text, headers.auth_summary.dmarc.pass, sender.display_name, sender.email.domain.domain, sender.email.domain.root_domain, subject.subject, type.inbound. Sensors: file.message_screenshot, ml.logo_detect, ml.nlu_classifier, profile.by_sender, regex.icontains, strings.icontains, strings.ilike. Reference lists: $high_trust_sender_root_domains.
Indicators matched (14)
| Field | Match | Value |
|---|---|---|
regex.icontains | regex | (?:The\s+)?\bNavan\b(?:\s+Team)? |
strings.ilike | substring | *Navan* |
strings.icontains | substring | Navan |
strings.icontains | substring | 3045 Park Blvd |
strings.icontains | substring | Palo Alto, CA 94306 |
ml.logo_detect(file.message_screenshot()).brands[].name | equals | Navan |
ml.logo_detect(file.message_screenshot()).brands[].confidence | member | medium |
ml.logo_detect(file.message_screenshot()).brands[].confidence | member | high |
regex.icontains | regex | (?:unrecognized|Unusual|suspicious|unknown) (?:log|sign).?[io]n attempt |
regex.icontains | regex | (?:important|urgent|attention|alert) account|accessed|[new|unrecognized|suspicious] location |
ml.nlu_classifier(body.current_thread.text).entities[].name | equals | urgency |
ml.nlu_classifier(body.current_thread.text).intents[].name | member | cred_theft |
2 more
ml.nlu_classifier(body.current_thread.text).intents[].name | member | steal_pii |
sender.email.domain.root_domain | member | navan.com |