Detection rules › Sublime MQL

Link: Flagged bit.ly link

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

Shortened link is blocked or gated by bit.ly. Indicator of malicious email.

Threat classification

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

CategoryValues
Attack typesCredential Phishing
Tactics and techniquesEvasion

Event coverage

Rule body MQL

type.inbound
and any(body.links,
        // contains bit.ly link
        .href_url.domain.root_domain == "bit.ly"
        // link doesn't forward through
        and ml.link_analysis(.).effective_url.domain.domain == "bit.ly"
        // blocked or gated by bit.ly
        and strings.ilike(ml.link_analysis(.).final_dom.display_text,
                          "*link*blocked*",
                          "*flagged*by*"
        )
)

// negate highly trusted sender domains unless they fail DMARC authentication
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 (
    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.

Shortened link is blocked or gated by bit.ly. Indicator of malicious email.

  1. inbound message
  2. any of body.links where all hold:
    • .href_url.domain.root_domain is 'bit.ly'
    • ml.link_analysis(.).effective_url.domain.domain is 'bit.ly'
    • ml.link_analysis(.).final_dom.display_text matches any of 2 patterns
      • *link*blocked*
      • *flagged*by*
  3. 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
  4. any of:
    • not:
      • profile.by_sender().solicited
    • all of:
      • profile.by_sender().any_messages_malicious_or_spam
      • not:
        • profile.by_sender().any_messages_benign
  5. not:
    • profile.by_sender().any_messages_benign

Inspects: body.links, body.links[].href_url.domain.root_domain, headers.auth_summary.dmarc.pass, sender.email.domain.root_domain, type.inbound. Sensors: ml.link_analysis, profile.by_sender, strings.ilike. Reference lists: $high_trust_sender_root_domains.

Indicators matched (3)

FieldMatchValue
body.links[].href_url.domain.root_domainequalsbit.ly
strings.ilikesubstring*link*blocked*
strings.ilikesubstring*flagged*by*