Brand impersonation: Dropbox

Impersonation of Dropbox, a file sharing service.

Sublime rule (View on GitHub)

  1name: "Brand impersonation: Dropbox"
  2description: |
  3    Impersonation of Dropbox, a file sharing service.
  4type: "rule"
  5severity: "medium"
  6source: |
  7  type.inbound
  8  and (
  9    strings.ilike(sender.display_name, '*dropbox*')
 10    or strings.ilevenshtein(sender.display_name, 'dropbox') <= 1
 11    or strings.ilike(sender.email.domain.domain, '*dropbox*')
 12    or any(body.links,
 13           .display_url.domain.root_domain == "dropbox.com"
 14           and .mismatched
 15           and not .href_url.domain.root_domain in (
 16             "mimecast.com",
 17             "mimecastprotect.com"
 18           )
 19    )
 20    or regex.icontains(body.current_thread.text,
 21                       'invited you to view the file ".*" on Dropbox',
 22                       'dr[o0]pb[o0]x.{0,20}share.{0,20}f[i1|][i1|l]es?'
 23    )
 24    // dropbox style button
 25    or length(html.xpath(body.html,
 26                         "//a[contains(@style, 'background-color: #0070e0') and contains(@style, 'color: white') and contains(@style, 'width: 210px')  and contains(@style, 'max-width: 210px') and contains(@style, 'border-radius: 4px') and contains(@style, 'text-align: center') and contains(@style, 'font-size: 15px')]"
 27              ).nodes
 28    ) == 1
 29  )
 30  and sender.email.domain.root_domain not in~ (
 31    'dropbox.com',
 32    'dropboxforum.com',
 33    'dropboxsign.com'
 34  )
 35  and (
 36    any(attachments,
 37        .file_type in $file_types_images
 38        and any(file.explode(.), strings.ilike(.scan.ocr.raw, "*dropbox*"))
 39    )
 40    or any(body.links,
 41           (
 42             (
 43               strings.ilike(.display_text,
 44                             "*review*",
 45                             "*sign*",
 46                             "*view*",
 47                             "*completed document*",
 48                             "*open agreement*",
 49                             "*open document*",
 50                             "*open file*"
 51               )
 52               and not strings.ilike(.display_text, "*view this email in*")
 53             )
 54             or (
 55               .display_text is null
 56               and .href_url.domain.root_domain in $free_file_hosts
 57             )
 58           )
 59           and .href_url.domain.root_domain != "dropbox.com"
 60           and any(ml.nlu_classifier(body.current_thread.text).intents,
 61                   .name == "cred_theft" and .confidence in ("medium", "high")
 62           )
 63    )
 64    or (
 65      length(ml.logo_detect(file.message_screenshot()).brands) != 0
 66      and all(ml.logo_detect(file.message_screenshot()).brands,
 67              .name == "Dropbox"
 68      )
 69    )
 70  )
 71  and sender.email.email not in $recipient_emails
 72
 73  // negate dropbox fax (aka hellofax)
 74  and not sender.email.domain.root_domain == 'hellofax.com'
 75
 76  // negate iCloud Private Message Relay
 77  and not (
 78    sender.email.domain.root_domain == "privaterelay.appleid.com"
 79    or any(headers.hops, any(.fields, .name == "X-ICLOUD-HME"))
 80  )
 81
 82  // negate highly trusted sender domains unless they fail DMARC authentication
 83  and (
 84    (
 85      sender.email.domain.root_domain in $high_trust_sender_root_domains
 86      and not headers.auth_summary.dmarc.pass
 87    )
 88    or sender.email.domain.root_domain not in $high_trust_sender_root_domains
 89  )  
 90attack_types:
 91  - "Credential Phishing"
 92tactics_and_techniques:
 93  - "Impersonation: Brand"
 94  - "Social engineering"
 95detection_methods:
 96  - "Content analysis"
 97  - "File analysis"
 98  - "Header analysis"
 99  - "Sender analysis"
100id: "61f11d12-7033-53c9-a95a-df982ff31c4b"
to-top