Detection rules › Sublime MQL

DLP: EU Debit Card Number

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

Detects messages containing European debit card numbers.

Event coverage

Rule body MQL

type.outbound
and any(attachments,
        (
          .file_extension in~ $file_extensions_common_archives
          or .file_extension in~ ('.csv', '.txt', '.xlsx', '.xls')
        )
        and any(file.explode(.),
                // Debit card: 13-19 digits with optional spaces/hyphens
                regex.contains(.scan.ocr.raw, '\b(?:\d{4}[\s\-]?){3}\d{1,7}\b')
        )
)
and (
  // EU country TLDs
  strings.icontains(sender.email.domain.tld, "at")
  or strings.icontains(sender.email.domain.tld, "be")
  or strings.icontains(sender.email.domain.tld, "bg")
  or strings.icontains(sender.email.domain.tld, "hr")
  or strings.icontains(sender.email.domain.tld, "cy")
  or strings.icontains(sender.email.domain.tld, "cz")
  or strings.icontains(sender.email.domain.tld, "dk")
  or strings.icontains(sender.email.domain.tld, "ee")
  or strings.icontains(sender.email.domain.tld, "fi")
  or strings.icontains(sender.email.domain.tld, "fr")
  or strings.icontains(sender.email.domain.tld, "de")
  or strings.icontains(sender.email.domain.tld, "gr")
  or strings.icontains(sender.email.domain.tld, "hu")
  or strings.icontains(sender.email.domain.tld, "ie")
  or strings.icontains(sender.email.domain.tld, "it")
  or strings.icontains(sender.email.domain.tld, "lv")
  or strings.icontains(sender.email.domain.tld, "lt")
  or strings.icontains(sender.email.domain.tld, "lu")
  or strings.icontains(sender.email.domain.tld, "mt")
  or strings.icontains(sender.email.domain.tld, "nl")
  or strings.icontains(sender.email.domain.tld, "pl")
  or strings.icontains(sender.email.domain.tld, "pt")
  or strings.icontains(sender.email.domain.tld, "ro")
  or strings.icontains(sender.email.domain.tld, "sk")
  or strings.icontains(sender.email.domain.tld, "si")
  or strings.icontains(sender.email.domain.tld, "es")
  or strings.icontains(sender.email.domain.tld, "se")
  or strings.icontains(sender.email.domain.tld, "eu")
)

Detection logic

Scope: outbound message.

Detects messages containing European debit card numbers.

  1. outbound message
  2. any of attachments where all hold:
    • any of:
      • .file_extension in $file_extensions_common_archives
      • .file_extension in ('.csv', '.txt', '.xlsx', '.xls')
    • any of file.explode(.) where:
      • .scan.ocr.raw matches '\\b(?:\\d{4}[\\s\\-]?){3}\\d{1,7}\\b'
  3. sender.email.domain.tld contains any of 28 patterns
    • at
    • be
    • bg
    • hr
    • cy
    • cz
    • dk
    • ee
    • fi
    • fr
    • de
    • gr
    • hu
    • ie
    • it
    • lv
    • lt
    • lu
    • mt
    • nl
    • pl
    • pt
    • ro
    • sk
    • si
    • es
    • se
    • eu

Inspects: attachments[].file_extension, sender.email.domain.tld, type.outbound. Sensors: file.explode, regex.contains, strings.icontains. Reference lists: $file_extensions_common_archives.

Indicators matched (33)

FieldMatchValue
attachments[].file_extensionmember.csv
attachments[].file_extensionmember.txt
attachments[].file_extensionmember.xlsx
attachments[].file_extensionmember.xls
regex.containsregex\b(?:\d{4}[\s\-]?){3}\d{1,7}\b
strings.icontainssubstringat
strings.icontainssubstringbe
strings.icontainssubstringbg
strings.icontainssubstringhr
strings.icontainssubstringcy
strings.icontainssubstringcz
strings.icontainssubstringdk
21 more
strings.icontainssubstringee
strings.icontainssubstringfi
strings.icontainssubstringfr
strings.icontainssubstringde
strings.icontainssubstringgr
strings.icontainssubstringhu
strings.icontainssubstringie
strings.icontainssubstringit
strings.icontainssubstringlv
strings.icontainssubstringlt
strings.icontainssubstringlu
strings.icontainssubstringmt
strings.icontainssubstringnl
strings.icontainssubstringpl
strings.icontainssubstringpt
strings.icontainssubstringro
strings.icontainssubstringsk
strings.icontainssubstringsi
strings.icontainssubstringes
strings.icontainssubstringse
strings.icontainssubstringeu