Detection rules › Sublime MQL

Brand impersonation: Morgan Stanley

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

Detects messages impersonating Morgan Stanley that contain indicators of credential theft or callback scams, including references to secure email systems, client service centers, financial advisors, and registration processes. The rule identifies spoofed communications by checking for Morgan Stanley branding elements while excluding legitimate domains.

Threat classification

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

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

Event coverage

Rule body MQL

type.inbound
and (
  strings.ilike(strings.replace_confusables(sender.display_name),
                '*morgan stanley*',
                '*morganstanley*'
  )
  or strings.ilevenshtein(strings.replace_confusables(sender.display_name),
                          'morgan stanley'
  ) <= 2
  or any(ml.nlu_classifier(body.current_thread.text).entities,
         .name in ("org", "sender")
         and strings.icontains(.text, 'Morgan Stanley')
  )
  or strings.icontains(body.current_thread.text,
                       'secure.emailhelp@morganstanley.com'
  )
)
and strings.icontains(body.current_thread.text, "Morgan Stanley")
and 3 of (
  strings.icontains(body.current_thread.text, "Client Service Center"),
  regex.icontains(body.current_thread.text,
                  'Financial Advis?or\s*[|/]\s*(?:Portfolio\s+)?Manager'
  ),
  regex.icontains(body.current_thread.text, 'Secure (?:E-)?Mail'),
  strings.icontains(body.current_thread.text, "Click here to view"),
  strings.icontains(body.current_thread.text, "encrypted messages"),
  strings.icontains(body.current_thread.text, "1-800-780-0256"),
  strings.icontains(body.current_thread.text,
                    "secure.emailhelp@morganstanley.com"
  ),
  regex.icontains(body.current_thread.text,
                  'Morgan Stanley\s+(?:Smith Barney|Wealth Management|\w+\s+Team)'
  ),
  strings.icontains(body.current_thread.text, "one-time registration"),
  strings.icontains(body.current_thread.text, "see payment activity"),
  regex.icontains(body.current_thread.text,
                  'link will expire on \d{4}-\d{2}-\d{2}'
  ),
  any(ml.nlu_classifier(body.current_thread.text).intents,
      .name in ("cred_theft", "callback_scam") and .confidence == "high"
  )
)
and not (
  sender.email.domain.root_domain in ("docusign.net", "morganstanley.com", )
  and coalesce(headers.auth_summary.dmarc.pass, false)
)
and not (
  any(headers.hops,
      any(.fields,
          .name == "X-ProofpointSecure"
          and strings.icontains(.value, "Encrypted")
      )
  )
  and any(headers.domains, .root_domain == "pphosted.com")
)

Detection logic

Scope: inbound message.

Detects messages impersonating Morgan Stanley that contain indicators of credential theft or callback scams, including references to secure email systems, client service centers, financial advisors, and registration processes. The rule identifies spoofed communications by checking for Morgan Stanley branding elements while excluding legitimate domains.

  1. inbound message
  2. any of:
    • strings.replace_confusables(sender.display_name) matches any of 2 patterns
      • *morgan stanley*
      • *morganstanley*
    • strings.replace_confusables(sender.display_name) is similar to 'morgan stanley'
    • any of ml.nlu_classifier(body.current_thread.text).entities where all hold:
      • .name in ('org', 'sender')
      • .text contains 'Morgan Stanley'
    • body.current_thread.text contains 'secure.emailhelp@morganstanley.com'
  3. body.current_thread.text contains 'Morgan Stanley'
  4. at least 3 of:
    • body.current_thread.text contains 'Client Service Center'
    • body.current_thread.text matches 'Financial Advis?or\\s*[|/]\\s*(?:Portfolio\\s+)?Manager'
    • body.current_thread.text matches 'Secure (?:E-)?Mail'
    • body.current_thread.text contains 'Click here to view'
    • body.current_thread.text contains 'encrypted messages'
    • body.current_thread.text contains '1-800-780-0256'
    • body.current_thread.text contains 'secure.emailhelp@morganstanley.com'
    • body.current_thread.text matches 'Morgan Stanley\\s+(?:Smith Barney|Wealth Management|\\w+\\s+Team)'
    • body.current_thread.text contains 'one-time registration'
    • body.current_thread.text contains 'see payment activity'
    • body.current_thread.text matches 'link will expire on \\d{4}-\\d{2}-\\d{2}'
    • any of ml.nlu_classifier(body.current_thread.text).intents where all hold:
      • .name in ('cred_theft', 'callback_scam')
      • .confidence is 'high'
  5. not:
    • all of:
      • sender.email.domain.root_domain in ('docusign.net', 'morganstanley.com')
      • coalesce(headers.auth_summary.dmarc.pass)
  6. not:
    • all of:
      • any of headers.hops where:
        • any of .fields where all hold:
          • .name is 'X-ProofpointSecure'
          • .value contains 'Encrypted'
      • any of headers.domains where:
        • .root_domain is 'pphosted.com'

Inspects: body.current_thread.text, headers.auth_summary.dmarc.pass, headers.domains, headers.domains[].root_domain, headers.hops, headers.hops[].fields, headers.hops[].fields[].name, headers.hops[].fields[].value, sender.display_name, sender.email.domain.root_domain, type.inbound. Sensors: ml.nlu_classifier, regex.icontains, strings.icontains, strings.ilevenshtein, strings.ilike, strings.replace_confusables.

Indicators matched (25)

FieldMatchValue
strings.ilikesubstring*morgan stanley*
strings.ilikesubstring*morganstanley*
strings.ilevenshteinfuzzymorgan stanley
ml.nlu_classifier(body.current_thread.text).entities[].namememberorg
ml.nlu_classifier(body.current_thread.text).entities[].namemembersender
strings.icontainssubstringMorgan Stanley
strings.icontainssubstringsecure.emailhelp@morganstanley.com
strings.icontainssubstringClient Service Center
regex.icontainsregexFinancial Advis?or\s*[|/]\s*(?:Portfolio\s+)?Manager
regex.icontainsregexSecure (?:E-)?Mail
strings.icontainssubstringClick here to view
strings.icontainssubstringencrypted messages
13 more
strings.icontainssubstring1-800-780-0256
regex.icontainsregexMorgan Stanley\s+(?:Smith Barney|Wealth Management|\w+\s+Team)
strings.icontainssubstringone-time registration
strings.icontainssubstringsee payment activity
regex.icontainsregexlink will expire on \d{4}-\d{2}-\d{2}
ml.nlu_classifier(body.current_thread.text).intents[].namemembercred_theft
ml.nlu_classifier(body.current_thread.text).intents[].namemembercallback_scam
ml.nlu_classifier(body.current_thread.text).intents[].confidenceequalshigh
sender.email.domain.root_domainmemberdocusign.net
sender.email.domain.root_domainmembermorganstanley.com
headers.hops[].fields[].nameequalsX-ProofpointSecure
strings.icontainssubstringEncrypted
headers.domains[].root_domainequalspphosted.com