Detection rules › Sublime MQL

Fake request for tax preparation

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

Unknown sender requesting assistance with tax preparation. This is associated with known threat actor activity, TA576.

Threat classification

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

CategoryValues
Attack typesBEC/Fraud, Malware/Ransomware
Tactics and techniquesSocial engineering

Event coverage

Rule body MQL

type.inbound
and length(body.current_thread.text) < 1250
and any(beta.ml_topic(body.current_thread.text).topics,
        .name == "Financial Communications"
)
// there are no links, all the links are to aka.ms, or an extraction from a warning banner that match the senders domain
and (
  length(body.links) == 0
  or length(filter(body.links,
                   (
                     .display_text is null
                     and .display_url.url == sender.email.domain.root_domain
                   )
                   or .href_url.domain.domain == "aka.ms"
                   or network.whois(.display_url.domain).days_old < 30
            )
  ) == length(body.links)
)
and length(attachments) == 0
and (strings.ilike(subject.subject, "*tax*") or length(subject.subject) < 15)
and strings.icontains(body.current_thread.text, "tax")
and (
  strings.like(body.current_thread.text,
               "*return*",
               "*record*",
               "*CPA*",
               "*filing*",
               "*extension*"
  )
  or strings.ilike(body.current_thread.text,
                   "*tax preparer*",
                   "*tax*processing*"
  )
)
and (
  strings.ilike(body.current_thread.text,
                "*necessary documents*",
                "*required documents*",
                "*paperwork*",
                "*in search of*",
                "*tax service*",
                "*professional help*",
                "*prepare*tax return*",
                "*service*tax return*",
                "*seeking*tax preparer*",
                "*assist*processing*tax*",
                "*schedule*call*",
                "*zoom meeting*",
                "*discuss*fees*",
                "*W2*",
                "*CPA*"
  )
  // suspicious patterns
  or (
    strings.icontains(body.current_thread.text, sender.display_name)
    and 2 of (
      (
        length(headers.reply_to) > 0
        and all(headers.reply_to,
                .email.domain.root_domain != sender.email.domain.root_domain
        )
      ),
      (
        headers.return_path.email is not null
        and headers.return_path.email != sender.email.email
      ),
      headers.return_path.domain.root_domain in ("amazonses.com")
    )
  )
)
and (
  (
    profile.by_sender().prevalence in ("new", "outlier")
    and not profile.by_sender().solicited
  )
  or (
    profile.by_sender().any_messages_malicious_or_spam
    and not profile.by_sender().any_messages_benign
  )
)
and not profile.by_sender().any_messages_benign

Detection logic

Scope: inbound message.

Unknown sender requesting assistance with tax preparation. This is associated with known threat actor activity, TA576.

  1. inbound message
  2. length(body.current_thread.text) < 1250
  3. any of beta.ml_topic(body.current_thread.text).topics where:
    • .name is 'Financial Communications'
  4. any of:
    • length(body.links) is 0
    • length(filter(body.links, .display_text is null and .display_url.url == sender.email.domain.root_domain or .href_url.domain.domain == 'aka.ms' or network.whois(.display_url.domain).days_old < 30)) is length(body.links)
  5. length(attachments) is 0
  6. any of:
    • subject.subject matches '*tax*'
    • length(subject.subject) < 15
  7. body.current_thread.text contains 'tax'
  8. any of:
    • body.current_thread.text matches any of 5 patterns
      • *return*
      • *record*
      • *CPA*
      • *filing*
      • *extension*
    • body.current_thread.text matches any of 2 patterns
      • *tax preparer*
      • *tax*processing*
  9. any of:
    • body.current_thread.text matches any of 15 patterns
      • *necessary documents*
      • *required documents*
      • *paperwork*
      • *in search of*
      • *tax service*
      • *professional help*
      • *prepare*tax return*
      • *service*tax return*
      • *seeking*tax preparer*
      • *assist*processing*tax*
      • *schedule*call*
      • *zoom meeting*
      • *discuss*fees*
      • *W2*
      • *CPA*
    • all of:
      • strings.icontains(body.current_thread.text)
      • at least 2 of:
        • all of:
          • length(headers.reply_to) > 0
          • all of headers.reply_to where:
            • .email.domain.root_domain is not sender.email.domain.root_domain
        • all of:
          • headers.return_path.email is set
          • headers.return_path.email is not sender.email.email
        • headers.return_path.domain.root_domain in ('amazonses.com')
  10. any of:
    • all of:
      • profile.by_sender().prevalence in ('new', 'outlier')
      • not:
        • profile.by_sender().solicited
    • all of:
      • profile.by_sender().any_messages_malicious_or_spam
      • not:
        • profile.by_sender().any_messages_benign
  11. not:
    • profile.by_sender().any_messages_benign

Inspects: body.current_thread.text, body.links, body.links[].display_text, body.links[].display_url.domain, body.links[].display_url.url, body.links[].href_url.domain.domain, headers.reply_to, headers.reply_to[].email.domain.root_domain, headers.return_path.domain.root_domain, headers.return_path.email, sender.display_name, sender.email.domain.root_domain, sender.email.email, subject.subject, type.inbound. Sensors: beta.ml_topic, network.whois, profile.by_sender, strings.icontains, strings.ilike, strings.like.

Indicators matched (27)

FieldMatchValue
beta.ml_topic(body.current_thread.text).topics[].nameequalsFinancial Communications
body.links[].href_url.domain.domainequalsaka.ms
strings.ilikesubstring*tax*
strings.icontainssubstringtax
strings.likesubstring*return*
strings.likesubstring*record*
strings.likesubstring*CPA*
strings.likesubstring*filing*
strings.likesubstring*extension*
strings.ilikesubstring*tax preparer*
strings.ilikesubstring*tax*processing*
strings.ilikesubstring*necessary documents*
15 more
strings.ilikesubstring*required documents*
strings.ilikesubstring*paperwork*
strings.ilikesubstring*in search of*
strings.ilikesubstring*tax service*
strings.ilikesubstring*professional help*
strings.ilikesubstring*prepare*tax return*
strings.ilikesubstring*service*tax return*
strings.ilikesubstring*seeking*tax preparer*
strings.ilikesubstring*assist*processing*tax*
strings.ilikesubstring*schedule*call*
strings.ilikesubstring*zoom meeting*
strings.ilikesubstring*discuss*fees*
strings.ilikesubstring*W2*
strings.ilikesubstring*CPA*
headers.return_path.domain.root_domainmemberamazonses.com