Detection rules › Sublime MQL

Link to auto-downloaded file with Google Drive branding

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

A link in the body of the email downloads a file from a site that uses Google Drive branding as employed by threat actors, such as Qakbot.

Threat classification

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

CategoryValues
Attack typesMalware/Ransomware
Tactics and techniquesImpersonation: Brand, Social engineering

Event coverage

Rule body MQL

type.inbound
and length(body.links) < 10
and any(body.links,
        // This isn't a Google Drive link
        .href_url.domain.root_domain != "google.com"
        and 

        // There are files downloaded
        length(ml.link_analysis(.).files_downloaded) > 0
        and 

        // Google Drive branding
        ml.link_analysis(.).credphish.brand.name == "GoogleDrive"
        and ml.link_analysis(.).credphish.brand.confidence == "high"
        and 

        // Hi from Qakbot
        any(file.explode(ml.link_analysis(.).screenshot),
            any([
                  "the file is not displayed correctly",
                  "use local downloaded file"
                ],
                strings.icontains(..scan.ocr.raw, .)
            )
        )
)
and (
  not profile.by_sender().solicited
  or (
    profile.by_sender().any_messages_malicious_or_spam
    and not profile.by_sender().any_messages_benign
  )
)

Detection logic

Scope: inbound message.

A link in the body of the email downloads a file from a site that uses Google Drive branding as employed by threat actors, such as Qakbot.

  1. inbound message
  2. length(body.links) < 10
  3. any of body.links where all hold:
    • .href_url.domain.root_domain is not 'google.com'
    • length(ml.link_analysis(.).files_downloaded) > 0
    • ml.link_analysis(.).credphish.brand.name is 'GoogleDrive'
    • ml.link_analysis(.).credphish.brand.confidence is 'high'
    • any of file.explode(...) where:
      • any of ['the file is not displayed correctly', 'use local downloaded file'] where:
        • strings.icontains(.scan.ocr.raw)
  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

Inspects: body.links, body.links[].href_url.domain.root_domain, type.inbound. Sensors: file.explode, ml.link_analysis, profile.by_sender, strings.icontains.