Detection rules › Sublime MQL

Adobe branded PDF file linking to a password-protected file from untrusted sender

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

Detects pdf files with links to a remotely hosted password-protected file. This is a common technique abused by Phishing actors as well as Malware actors (IcedID, Remcos, Async Rat)

Threat classification

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

CategoryValues
Attack typesMalware/Ransomware
Tactics and techniquesEncryption, Evasion, Impersonation: Brand, PDF

Event coverage

Rule body MQL

type.inbound
and any(attachments,
        .file_extension == "pdf"
        and any(file.explode(.),
                any(ml.nlu_classifier(.scan.ocr.raw).intents,
                    .name == "cred_theft" and .confidence == "high"
                )
                and strings.icontains(.scan.ocr.raw, "password-protected")
                and any(ml.nlu_classifier(.scan.ocr.raw).entities,
                        .name == "org" and .text == "Adobe"
                )
        )
)

Detection logic

Scope: inbound message.

Detects pdf files with links to a remotely hosted password-protected file. This is a common technique abused by Phishing actors as well as Malware actors (IcedID, Remcos, Async Rat)

  1. inbound message
  2. any of attachments where all hold:
    • .file_extension is 'pdf'
    • any of file.explode(.) where all hold:
      • any of ml.nlu_classifier(.scan.ocr.raw).intents where all hold:
        • .name is 'cred_theft'
        • .confidence is 'high'
      • .scan.ocr.raw contains 'password-protected'
      • any of ml.nlu_classifier(.scan.ocr.raw).entities where all hold:
        • .name is 'org'
        • .text is 'Adobe'

Inspects: attachments[].file_extension, type.inbound. Sensors: file.explode, ml.nlu_classifier, strings.icontains.

Indicators matched (6)

FieldMatchValue
attachments[].file_extensionequalspdf
ml.nlu_classifier(file.explode(attachments[])[].scan.ocr.raw).intents[].nameequalscred_theft
ml.nlu_classifier(file.explode(attachments[])[].scan.ocr.raw).intents[].confidenceequalshigh
strings.icontainssubstringpassword-protected
ml.nlu_classifier(file.explode(attachments[])[].scan.ocr.raw).entities[].nameequalsorg
ml.nlu_classifier(file.explode(attachments[])[].scan.ocr.raw).entities[].textequalsAdobe