Detection rules › Sublime MQL

Subject: Suspicious bracketed reference

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

Detects messages with subject lines containing bracketed patterns that follow a specific format with repeated characters, numeric sequences, and structured tracking identifiers commonly used in malicious automated messaging systems.

Threat classification

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

CategoryValues
Attack typesCredential Phishing
Tactics and techniquesEvasion, Impersonation: Brand

Event coverage

Message attribute
subject
type

Rule body MQL

type.inbound
and strings.contains(subject.base, '[')
and strings.ends_with(subject.base, ']')
and any(regex.extract(subject.base,
                      '\[(?P<first>.)(?P<second>.)\-(?P<second_part>[^\-]+)\-(?P<third_section>[^\]]+)\]$'
        ),
        .named_groups["first"] == .named_groups["second"]
        and regex.match(.named_groups["second_part"], '^\d+$')
        and regex.contains(.named_groups["third_section"], '\d+$')
        and strings.istarts_with(.named_groups["third_section"],
                                 .named_groups["first"]
        )
)

Detection logic

Scope: inbound message.

Detects messages with subject lines containing bracketed patterns that follow a specific format with repeated characters, numeric sequences, and structured tracking identifiers commonly used in malicious automated messaging systems.

  1. inbound message
  2. subject.base contains '['
  3. subject.base ends with ']'
  4. any of regex.extract(subject.base) where all hold:
    • .named_groups['first'] is .named_groups['second']
    • .named_groups['second_part'] matches '^\\d+$'
    • .named_groups['third_section'] matches '\\d+$'
    • strings.istarts_with(.named_groups['third_section'])

Inspects: subject.base, type.inbound. Sensors: regex.contains, regex.extract, regex.match, strings.contains, strings.ends_with, strings.istarts_with.

Indicators matched (5)

FieldMatchValue
strings.containssubstring[
strings.ends_withsuffix]
regex.extractregex\[(?P<first>.)(?P<second>.)\-(?P<second_part>[^\-]+)\-(?P<third_section>[^\]]+)\]$
regex.matchregex^\d+$
regex.containsregex\d+$