Detection rules › Sublime MQL

Brand impersonation: Venmo

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

Impersonation of Venmo

Threat classification

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

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

Event coverage

Rule body MQL

type.inbound
and (
  strings.ilike(sender.display_name, '*venmo*')
  or strings.ilevenshtein(sender.display_name, 'venmo') <= 1
)
and sender.email.domain.root_domain not in~ (
  'venmo.com',
  'synchronybank.com',
  'venmocreditsurvey.com',
  'venmo-experience.com',
  'synchrony.com'
)

// and not if the sender.display.name contains "via" and dmarc pass from venmo.com
and not (
  (
    headers.auth_summary.dmarc.pass
    and headers.auth_summary.dmarc.details.from.root_domain == "venmo.com"
  )
  and strings.contains(sender.display_name, "via")
)

// 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 no false positives and not solicited
and (
  not profile.by_sender().any_messages_benign
  and not profile.by_sender().solicited
)

Detection logic

Scope: inbound message.

Impersonation of Venmo

  1. inbound message
  2. any of:
    • sender.display_name matches '*venmo*'
    • sender.display_name is similar to 'venmo'
  3. sender.email.domain.root_domain not in ('venmo.com', 'synchronybank.com', 'venmocreditsurvey.com', 'venmo-experience.com', 'synchrony.com')
  4. not:
    • all of:
      • all of:
        • headers.auth_summary.dmarc.pass
        • headers.auth_summary.dmarc.details.from.root_domain is 'venmo.com'
      • sender.display_name contains 'via'
  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. all of:
    • not:
      • profile.by_sender().any_messages_benign
    • not:
      • profile.by_sender().solicited

Inspects: headers.auth_summary.dmarc.details.from.root_domain, headers.auth_summary.dmarc.pass, sender.display_name, sender.email.domain.root_domain, type.inbound. Sensors: profile.by_sender, strings.contains, strings.ilevenshtein, strings.ilike. Reference lists: $high_trust_sender_root_domains.

Indicators matched (9)

FieldMatchValue
strings.ilikesubstring*venmo*
strings.ilevenshteinfuzzyvenmo
sender.email.domain.root_domainmembervenmo.com
sender.email.domain.root_domainmembersynchronybank.com
sender.email.domain.root_domainmembervenmocreditsurvey.com
sender.email.domain.root_domainmembervenmo-experience.com
sender.email.domain.root_domainmembersynchrony.com
headers.auth_summary.dmarc.details.from.root_domainequalsvenmo.com
strings.containssubstringvia