Detection rules › Sublime MQL

Brand impersonation: Navan

Severity
medium
Type
rule
Source
github.com/sublime-security/sublime-rules

Impersonation of the expense management provider Navan.

Threat classification

Sublime's own taxonomy (not MITRE ATT&CK).

CategoryValues
Attack typesCredential Phishing
Tactics and techniquesImpersonation: Brand, Social engineering, Spoofing

Event coverage

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.

  1. inbound message
  2. 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'
  3. any of:
    • any of ml.logo_detect(file.message_screenshot()).brands where 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).entities where:
        • .name is 'urgency'
      • any of ml.nlu_classifier(body.current_thread.text).intents where:
        • .name in ('cred_theft', 'steal_pii')
  4. sender.email.domain.root_domain not in ('navan.com')
  5. 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
  6. any of:
    • not:
      • profile.by_sender().solicited
    • all of:
      • profile.by_sender().any_messages_malicious_or_spam
      • not:
        • profile.by_sender().any_messages_benign
  7. 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)

FieldMatchValue
regex.icontainsregex(?:The\s+)?\bNavan\b(?:\s+Team)?
strings.ilikesubstring*Navan*
strings.icontainssubstringNavan
strings.icontainssubstring3045 Park Blvd
strings.icontainssubstringPalo Alto, CA 94306
ml.logo_detect(file.message_screenshot()).brands[].nameequalsNavan
ml.logo_detect(file.message_screenshot()).brands[].confidencemembermedium
ml.logo_detect(file.message_screenshot()).brands[].confidencememberhigh
regex.icontainsregex(?:unrecognized|Unusual|suspicious|unknown) (?:log|sign).?[io]n attempt
regex.icontainsregex(?:important|urgent|attention|alert) account|accessed|[new|unrecognized|suspicious] location
ml.nlu_classifier(body.current_thread.text).entities[].nameequalsurgency
ml.nlu_classifier(body.current_thread.text).intents[].namemembercred_theft
2 more
ml.nlu_classifier(body.current_thread.text).intents[].namemembersteal_pii
sender.email.domain.root_domainmembernavan.com