Detection rules › Sublime MQL

Brand Impersonation: Disney

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

Detects messages from senders impersonating Disney through display name spoofing or brand logo usage, combined with security-themed content and suspicious authentication patterns.

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 (
  // display name contains Disney
  (
    (
      strings.ilike(strings.replace_confusables(sender.display_name),
                    '*disney*'
      )
      and not strings.ilike(strings.replace_confusables(sender.display_name),
                            '*disney springs*'
      )
    )
    // levenshtein distance similar to Disney
    or strings.ilevenshtein(strings.replace_confusables(sender.display_name),
                            'disney'
    ) <= 1
    or any(ml.logo_detect(file.message_screenshot()).brands,
           .name == "Disney" and .confidence == "high"
    )
  )
)
and (
  (
    any(ml.nlu_classifier(body.current_thread.text).topics,
        .name in (
          "Security and Authentication",
          "Secure Message",
          "Reminders and Notifications"
        )
        and .confidence in ("medium", "high")
    )
    and not any(ml.nlu_classifier(body.current_thread.text).topics,
                .name in ("Newsletters and Digests", "Entertainment and Sports")
                and .confidence in ("medium", "high")
    )
  )
  or (
    any(ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics,
        .name in (
          "Security and Authentication",
          "Secure Message",
          "Reminders and Notifications"
        )
        and (
          .confidence in ("medium", "high")
          and beta.ocr(file.message_screenshot()).text != ""
        )
    )
    and not any(ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics,
                .name in ("Newsletters and Digests", "Entertainment and Sports")
                and .confidence in ("medium", "high")
    )
  )
  or any(ml.nlu_classifier(body.current_thread.text).intents,
         .name == "cred_theft" and .confidence == "high"
  )
  or any(ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).intents,
         .name == "cred_theft" and .confidence == "high"
  )
)

// and the sender is not in org_domains or from Disney domains and passes auth
and not (
  sender.email.domain.root_domain in $org_domains
  or (
    // from https://github.com/v2fly/domain-list-community/blob/master/data/disney
    sender.email.domain.root_domain in (
      "disney.asia",
      "disney.be",
      "disney.bg",
      "disney.ca",
      "disney.ch",
      "disney.co.il",
      "disney.co.jp",
      "disney.co.kr",
      "disney.co.th",
      "disney.co.uk",
      "disney.co.za",
      "disney.com",
      "disney.com.au",
      "disney.com.br",
      "disney.com.hk",
      "disney.com.tw",
      "disney.cz",
      "disney.de",
      "disney.dk",
      "disney.es",
      "disney.fi",
      "disney.fr",
      "disney.gr",
      "disney.hu",
      "disney.id",
      "disney.in",
      "disney.io",
      "disney.it",
      "disney.my",
      "disney.nl",
      "disney.no",
      "disney.ph",
      "disney.pl",
      "disney.pt",
      "disney.ro",
      "disney.ru",
      "disney.se",
      "disney.sg",
      "disneysurveys.com",
      "disneyonline.com",
      "disneyaccount.com",
      "disneyadvertising.com",
      "disneydestinations.com",
      "hulu.com",
      "hulumail.com",
      "canarytechnologies.com", // domain used by a disney resort - hotel mgmt software company
      "disneyvacationclub.com",
      "twdc.com",
      "disneyrewards.com",
      "disneystore.com",
      "disneyworld.com"
    )
    and headers.auth_summary.dmarc.pass
  )
)
// and the sender is not from high trust sender root domains
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 not headers.auth_summary.dmarc.pass
  or not headers.auth_summary.spf.pass
)

Detection logic

Scope: inbound message.

Detects messages from senders impersonating Disney through display name spoofing or brand logo usage, combined with security-themed content and suspicious authentication patterns.

  1. inbound message
  2. any of:
    • all of:
      • strings.replace_confusables(sender.display_name) matches '*disney*'
      • not:
        • strings.replace_confusables(sender.display_name) matches '*disney springs*'
    • strings.replace_confusables(sender.display_name) is similar to 'disney'
    • any of ml.logo_detect(file.message_screenshot()).brands where all hold:
      • .name is 'Disney'
      • .confidence is 'high'
  3. any of:
    • all of:
      • any of ml.nlu_classifier(body.current_thread.text).topics where all hold:
        • .name in ('Security and Authentication', 'Secure Message', 'Reminders and Notifications')
        • .confidence in ('medium', 'high')
      • not:
        • any of ml.nlu_classifier(body.current_thread.text).topics where all hold:
          • .name in ('Newsletters and Digests', 'Entertainment and Sports')
          • .confidence in ('medium', 'high')
    • all of:
      • any of ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics where all hold:
        • .name in ('Security and Authentication', 'Secure Message', 'Reminders and Notifications')
        • all of:
          • .confidence in ('medium', 'high')
          • beta.ocr(file.message_screenshot()).text is not ''
      • not:
        • any of ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics where all hold:
          • .name in ('Newsletters and Digests', 'Entertainment and Sports')
          • .confidence in ('medium', 'high')
    • any of ml.nlu_classifier(body.current_thread.text).intents where all hold:
      • .name is 'cred_theft'
      • .confidence is 'high'
    • any of ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).intents where all hold:
      • .name is 'cred_theft'
      • .confidence is 'high'
  4. none of:
    • sender.email.domain.root_domain in $org_domains
    • all of:
      • sender.email.domain.root_domain in ('disney.asia', 'disney.be', 'disney.bg', 'disney.ca', 'disney.ch', 'disney.co.il', 'disney.co.jp', 'disney.co.kr', 'disney.co.th', 'disney.co.uk', 'disney.co.za', 'disney.com', 'disney.com.au', 'disney.com.br', 'disney.com.hk', 'disney.com.tw', 'disney.cz', 'disney.de', 'disney.dk', 'disney.es', 'disney.fi', 'disney.fr', 'disney.gr', 'disney.hu', 'disney.id', 'disney.in', 'disney.io', 'disney.it', 'disney.my', 'disney.nl', 'disney.no', 'disney.ph', 'disney.pl', 'disney.pt', 'disney.ro', 'disney.ru', 'disney.se', 'disney.sg', 'disneysurveys.com', 'disneyonline.com', 'disneyaccount.com', 'disneyadvertising.com', 'disneydestinations.com', 'hulu.com', 'hulumail.com', 'canarytechnologies.com', 'disneyvacationclub.com', 'twdc.com', 'disneyrewards.com', 'disneystore.com', 'disneyworld.com')
      • headers.auth_summary.dmarc.pass
  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
    • not:
      • headers.auth_summary.dmarc.pass
    • not:
      • headers.auth_summary.spf.pass

Inspects: body.current_thread.text, headers.auth_summary.dmarc.pass, headers.auth_summary.spf.pass, sender.display_name, sender.email.domain.root_domain, type.inbound. Sensors: beta.ocr, file.message_screenshot, ml.logo_detect, ml.nlu_classifier, profile.by_sender, strings.ilevenshtein, strings.ilike, strings.replace_confusables. Reference lists: $high_trust_sender_root_domains, $org_domains.

Indicators matched (74)

FieldMatchValue
strings.ilikesubstring*disney*
strings.ilikesubstring*disney springs*
strings.ilevenshteinfuzzydisney
ml.logo_detect(file.message_screenshot()).brands[].nameequalsDisney
ml.logo_detect(file.message_screenshot()).brands[].confidenceequalshigh
ml.nlu_classifier(body.current_thread.text).topics[].namememberSecurity and Authentication
ml.nlu_classifier(body.current_thread.text).topics[].namememberSecure Message
ml.nlu_classifier(body.current_thread.text).topics[].namememberReminders and Notifications
ml.nlu_classifier(body.current_thread.text).topics[].confidencemembermedium
ml.nlu_classifier(body.current_thread.text).topics[].confidencememberhigh
ml.nlu_classifier(body.current_thread.text).topics[].namememberNewsletters and Digests
ml.nlu_classifier(body.current_thread.text).topics[].namememberEntertainment and Sports
62 more
ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics[].namememberSecurity and Authentication
ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics[].namememberSecure Message
ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics[].namememberReminders and Notifications
ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics[].confidencemembermedium
ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics[].confidencememberhigh
ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics[].namememberNewsletters and Digests
ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).topics[].namememberEntertainment and Sports
ml.nlu_classifier(body.current_thread.text).intents[].nameequalscred_theft
ml.nlu_classifier(body.current_thread.text).intents[].confidenceequalshigh
ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).intents[].nameequalscred_theft
ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).intents[].confidenceequalshigh
sender.email.domain.root_domainmemberdisney.asia
sender.email.domain.root_domainmemberdisney.be
sender.email.domain.root_domainmemberdisney.bg
sender.email.domain.root_domainmemberdisney.ca
sender.email.domain.root_domainmemberdisney.ch
sender.email.domain.root_domainmemberdisney.co.il
sender.email.domain.root_domainmemberdisney.co.jp
sender.email.domain.root_domainmemberdisney.co.kr
sender.email.domain.root_domainmemberdisney.co.th
sender.email.domain.root_domainmemberdisney.co.uk
sender.email.domain.root_domainmemberdisney.co.za
sender.email.domain.root_domainmemberdisney.com
sender.email.domain.root_domainmemberdisney.com.au
sender.email.domain.root_domainmemberdisney.com.br
sender.email.domain.root_domainmemberdisney.com.hk
sender.email.domain.root_domainmemberdisney.com.tw
sender.email.domain.root_domainmemberdisney.cz
sender.email.domain.root_domainmemberdisney.de
sender.email.domain.root_domainmemberdisney.dk
sender.email.domain.root_domainmemberdisney.es
sender.email.domain.root_domainmemberdisney.fi
sender.email.domain.root_domainmemberdisney.fr
sender.email.domain.root_domainmemberdisney.gr
sender.email.domain.root_domainmemberdisney.hu
sender.email.domain.root_domainmemberdisney.id
sender.email.domain.root_domainmemberdisney.in
sender.email.domain.root_domainmemberdisney.io
sender.email.domain.root_domainmemberdisney.it
sender.email.domain.root_domainmemberdisney.my
sender.email.domain.root_domainmemberdisney.nl
sender.email.domain.root_domainmemberdisney.no
sender.email.domain.root_domainmemberdisney.ph
sender.email.domain.root_domainmemberdisney.pl
sender.email.domain.root_domainmemberdisney.pt
sender.email.domain.root_domainmemberdisney.ro
sender.email.domain.root_domainmemberdisney.ru
sender.email.domain.root_domainmemberdisney.se
sender.email.domain.root_domainmemberdisney.sg
sender.email.domain.root_domainmemberdisneysurveys.com
sender.email.domain.root_domainmemberdisneyonline.com
sender.email.domain.root_domainmemberdisneyaccount.com
sender.email.domain.root_domainmemberdisneyadvertising.com
sender.email.domain.root_domainmemberdisneydestinations.com
sender.email.domain.root_domainmemberhulu.com
sender.email.domain.root_domainmemberhulumail.com
sender.email.domain.root_domainmembercanarytechnologies.com
sender.email.domain.root_domainmemberdisneyvacationclub.com
sender.email.domain.root_domainmembertwdc.com
sender.email.domain.root_domainmemberdisneyrewards.com
sender.email.domain.root_domainmemberdisneystore.com
sender.email.domain.root_domainmemberdisneyworld.com