Detection rules › Sublime MQL

Sublime MQL rules: docusign

Suspicious DocuSign share from new domain

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

DocuSign shares with new reply-to addresses have been seen in recent attacks.

Threat classification

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

CategoryValues
Attack typesBEC/Fraud, Credential Phishing
Tactics and techniquesEvasion, Free file host, Impersonation: Brand, Social engineering

Telemetry coverage

PlatformRecord / event type
SublimeInbound email message

Message attributes

  • headers
  • headers.auth_summary
  • headers.reply_to
  • sender.email
  • subject
  • type

Rule body

type.inbound

// message is from docusign actual
and sender.email.domain.root_domain == 'docusign.net'
and (headers.auth_summary.spf.pass or headers.auth_summary.dmarc.pass)

// 
// This rule makes use of a beta feature and is subject to change without notice
// using the beta feature in custom rules is not suggested until it has been formally released
// 

// reply-to email address has never been sent an email by the org
and not beta.profile.by_reply_to().solicited

// new reply-to
and any(headers.reply_to, network.whois(.email.domain).days_old < 30)

// not a completed DocuSign
and not strings.istarts_with(subject.subject, "Completed:")

Detection logic

Scope: inbound message.

DocuSign shares with new reply-to addresses have been seen in recent attacks.

  1. inbound message
  2. sender.email.domain.root_domain is 'docusign.net'
  3. any of:
    • headers.auth_summary.spf.pass
    • headers.auth_summary.dmarc.pass
  4. not:
    • beta.profile.by_reply_to().solicited
  5. any of headers.reply_to where:
    • network.whois(.email.domain).days_old < 30
  6. not:
    • subject.subject starts with 'Completed:'

Inspects: headers.auth_summary.dmarc.pass, headers.auth_summary.spf.pass, headers.reply_to, headers.reply_to[].email.domain, sender.email.domain.root_domain, subject.subject, type.inbound. Sensors: beta.profile.by_reply_to, network.whois, strings.istarts_with.

Indicators matched (1)

FieldMatchValue
sender.email.domain.root_domainequalsdocusign.net

Stages and Predicates

Stage 1: mql_rule

and
  not
    beta.profile.by_reply_to func_call "beta.profile.by_reply_to().solicited"
  or
    headers.auth_summary.dmarc.pass eq "true"
    headers.auth_summary.spf.pass eq "true"
  any(headers.reply_to)
    network.whois func_call "network.whois(headers.reply_to[].email.domain).days_old < 30"
  not
    subject.subject starts_with "Completed:"
  sender.email.domain.root_domain eq "docusign.net"
  type.inbound eq "true"

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
subject.subjectstarts_withCompleted:excludes:subject.subject field:"subject.subject" value:"Completed:"

Indicators

These rows show field, operator, and value matches.