Detection rules › Sublime MQL

Brand impersonation: Bank of America

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

Impersonation of Bank of America, usually for credential theft.

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 (
  sender.display_name =~ 'bank of america'
  or strings.ilevenshtein(sender.display_name, 'bank of america') <= 2
  or strings.ilike(sender.email.domain.domain, '*bankofamerica*')
)
and sender.email.domain.root_domain not in~ (
  'bankofamerica.com',
  'transunion.com',
  'bofa.com',
  'bofamerchantservices.com'
)
and (
  sender.email.email not in $recipient_emails
  or (
    length(recipients.to) == 1
    and sender.email.email == recipients.to[0].email.email
  )
)

// 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
)

Detection logic

Scope: inbound message.

Impersonation of Bank of America, usually for credential theft.

  1. inbound message
  2. any of:
    • sender.display_name is 'bank of america'
    • sender.display_name is similar to 'bank of america'
    • sender.email.domain.domain matches '*bankofamerica*'
  3. sender.email.domain.root_domain not in ('bankofamerica.com', 'transunion.com', 'bofa.com', 'bofamerchantservices.com')
  4. any of:
    • sender.email.email not in $recipient_emails
    • all of:
      • length(recipients.to) is 1
      • sender.email.email is recipients.to[0].email.email
  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

Inspects: headers.auth_summary.dmarc.pass, recipients.to, recipients.to[0].email.email, sender.display_name, sender.email.domain.domain, sender.email.domain.root_domain, sender.email.email, type.inbound. Sensors: strings.ilevenshtein, strings.ilike. Reference lists: $high_trust_sender_root_domains, $recipient_emails.

Indicators matched (7)

FieldMatchValue
sender.display_nameequalsbank of america
strings.ilevenshteinfuzzybank of america
strings.ilikesubstring*bankofamerica*
sender.email.domain.root_domainmemberbankofamerica.com
sender.email.domain.root_domainmembertransunion.com
sender.email.domain.root_domainmemberbofa.com
sender.email.domain.root_domainmemberbofamerchantservices.com