Detection rules › Sublime MQL

Brand impersonation: Chase Bank

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

Impersonation of Chase Bank and related services to harvest credentials or related information such as dates of birth, phone numbers, social security numbers, ATM pin numbers, drivers license numbers, selfies, and ID card photos.

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,
                '*chase sapphire*',
                '*chase card services*',
                '*united mileageplus*',
                "echase*"
  )
  or strings.ilevenshtein(sender.display_name, 'chase sapphire') <= 2
  or strings.ilevenshtein(sender.display_name, 'chase card services') <= 2
  or strings.ilevenshtein(sender.display_name, 'united mileageplus') <= 2
  or (
    (
      strings.ilevenshtein(sender.display_name, 'echase') <= 1
      or (
        strings.icontains(sender.display_name, "bank")
        and strings.icontains(subject.base, "chase bank")
      )
    )
    // Negate Chase sender display name if cred theft, callback phishing, and a Chase logo isn't detected
    and not (
      strings.icontains(sender.display_name, 'chase')
      and not (
        any(ml.nlu_classifier(body.current_thread.text).intents,
            .name == "cred_theft" and .confidence in ("medium", "high")
        )
        or any(ml.nlu_classifier(body.current_thread.text).intents,
               .name == "callback_scam" and .confidence in ("medium", "high")
        )
        or any(ml.logo_detect(file.message_screenshot()).brands,
               strings.starts_with(.name, "Chase")
        )
      )
    )
  )
  or regex.icontains(body.current_thread.text,
                     '(Chase|J\.?\s?P\.?\sMorgan)\s(Privacy|Treasury)\sOperations|(Privacy|Treasury)\sOperations\s(Chase|J\.?\s?P\.?\sMorgan)'
  )
)
and not (
  sender.display_name is not null and sender.display_name in~ ("chaser", "case")
)
and sender.email.domain.root_domain not in~ (
  'chase.com',
  'united.com',
  'transunion.com',
  'shopping-chase.com',
  'chasetravel.com',
  'chaseoffers.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
)

Detection logic

Scope: inbound message.

Impersonation of Chase Bank and related services to harvest credentials or related information such as dates of birth, phone numbers, social security numbers, ATM pin numbers, drivers license numbers, selfies, and ID card photos.

  1. inbound message
  2. any of:
    • sender.display_name matches any of 4 patterns
      • *chase sapphire*
      • *chase card services*
      • *united mileageplus*
      • echase*
    • sender.display_name is similar to 'chase sapphire'
    • sender.display_name is similar to 'chase card services'
    • sender.display_name is similar to 'united mileageplus'
    • all of:
      • any of:
        • sender.display_name is similar to 'echase'
        • all of:
          • sender.display_name contains 'bank'
          • subject.base contains 'chase bank'
      • not:
        • all of:
          • sender.display_name contains 'chase'
          • none of:
            • any of ml.nlu_classifier(body.current_thread.text).intents where all hold:
              • .name is 'cred_theft'
              • .confidence in ('medium', 'high')
            • any of ml.nlu_classifier(body.current_thread.text).intents where all hold:
              • .name is 'callback_scam'
              • .confidence in ('medium', 'high')
            • any of ml.logo_detect(file.message_screenshot()).brands where:
              • .name starts with 'Chase'
    • body.current_thread.text matches '(Chase|J\\.?\\s?P\\.?\\sMorgan)\\s(Privacy|Treasury)\\sOperations|(Privacy|Treasury)\\sOperations\\s(Chase|J\\.?\\s?P\\.?\\sMorgan)'
  3. not:
    • all of:
      • sender.display_name is set
      • sender.display_name in ('chaser', 'case')
  4. sender.email.domain.root_domain not in ('chase.com', 'united.com', 'transunion.com', 'shopping-chase.com', 'chasetravel.com', 'chaseoffers.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

Inspects: body.current_thread.text, headers.auth_summary.dmarc.pass, sender.display_name, sender.email.domain.root_domain, subject.base, type.inbound. Sensors: file.message_screenshot, ml.logo_detect, ml.nlu_classifier, regex.icontains, strings.icontains, strings.ilevenshtein, strings.ilike, strings.starts_with. Reference lists: $high_trust_sender_root_domains.

Indicators matched (25)

FieldMatchValue
strings.ilikesubstring*chase sapphire*
strings.ilikesubstring*chase card services*
strings.ilikesubstring*united mileageplus*
strings.ilikesubstringechase*
strings.ilevenshteinfuzzychase sapphire
strings.ilevenshteinfuzzychase card services
strings.ilevenshteinfuzzyunited mileageplus
strings.ilevenshteinfuzzyechase
strings.icontainssubstringbank
strings.icontainssubstringchase bank
strings.icontainssubstringchase
ml.nlu_classifier(body.current_thread.text).intents[].nameequalscred_theft
13 more
ml.nlu_classifier(body.current_thread.text).intents[].confidencemembermedium
ml.nlu_classifier(body.current_thread.text).intents[].confidencememberhigh
ml.nlu_classifier(body.current_thread.text).intents[].nameequalscallback_scam
strings.starts_withprefixChase
regex.icontainsregex(Chase|J\.?\s?P\.?\sMorgan)\s(Privacy|Treasury)\sOperations|(Privacy|Treasury)\sOperations\s(Chase|J\.?\s?P\.?\sMorgan)
sender.display_namememberchaser
sender.display_namemembercase
sender.email.domain.root_domainmemberchase.com
sender.email.domain.root_domainmemberunited.com
sender.email.domain.root_domainmembertransunion.com
sender.email.domain.root_domainmembershopping-chase.com
sender.email.domain.root_domainmemberchasetravel.com
sender.email.domain.root_domainmemberchaseoffers.com