Detection rules › Sublime MQL
Sublime MQL rules: stripe
| Rule | Severity |
|---|---|
| Stripe invoice abuse | medium |
Stripe invoice abuse
#A fraudulent invoice/receipt found in the body of the message sent by exploiting Stripe's invoicing service. Callback Phishing is an attempt by an attacker to solicit the victim (recipient) to call a phone number. The resulting interaction could lead to a multitude of attacks ranging from Financial theft, Remote Access Trojan (RAT) Installation or Ransomware Deployment.
Threat Classification
Sublime's own taxonomy (not MITRE ATT&CK).
| Category | Values |
|---|---|
| Attack types | BEC/Fraud, Callback Phishing |
| Tactics and techniques |
Telemetry Coverage
| Platform | Record / event type |
|---|---|
| Sublime | Inbound email message |
Message Attributes
Rule Body
type.inbound
and sender.email.domain.root_domain == "stripe.com"
and headers.auth_summary.dmarc.pass
and (
(
length(attachments) == 2
and any(attachments,
.file_extension == "pdf"
and any(file.explode(.),
4 of (
strings.ilike(.scan.ocr.raw, "*Btc Purchase*"),
strings.ilike(.scan.ocr.raw, "*suspicious activity*"),
strings.ilike(.scan.ocr.raw,
"*get in touch with us straight once*"
),
strings.ilike(.scan.ocr.raw, "*your phone number*"),
strings.ilike(.scan.ocr.raw, "*due deducted*"),
strings.ilike(.scan.ocr.raw,
"*merchant security service center*"
)
)
)
)
)
or (
any(ml.nlu_classifier(body.current_thread.text).intents,
.name == "callback_scam" and .confidence == "high"
)
and 2 of (
strings.icontains(body.current_thread.text, "processing your payment"),
strings.icontains(body.current_thread.text, "payment has been received"),
strings.icontains(body.current_thread.text, "order status update"),
strings.icontains(body.current_thread.text, "ship your items"),
strings.icontains(body.current_thread.text, "reach out:"),
strings.icontains(body.current_thread.text, "pay this invoice"),
strings.icontains(body.current_thread.text, "dear"),
strings.icontains(body.current_thread.text, "need to cancel"),
strings.icontains(body.current_thread.text, "Яеոеԝаⅼ"),
strings.icontains(body.current_thread.text, "order confirmation"),
)
)
)
Detection Logic
Scope: inbound message.
A fraudulent invoice/receipt found in the body of the message sent by exploiting Stripe's invoicing service. Callback Phishing is an attempt by an attacker to solicit the victim (recipient) to call a phone number. The resulting interaction could lead to a multitude of attacks ranging from Financial theft, Remote Access Trojan (RAT) Installation or Ransomware Deployment.
- inbound message
- sender.email.domain.root_domain is 'stripe.com'
- headers.auth_summary.dmarc.pass
any of:
all of:
- length(attachments) == 2
any of
attachmentswhere all hold:- .file_extension is 'pdf'
- any(file.explode(.), 4 of ( strings.ilike(.scan.ocr.raw, "*Btc Purchase*"), strings.ilike(.scan.ocr.raw, "*suspicious activity*"), strings.ilike(.scan.ocr.raw, "*get in touch with us straight once*" ), strings.ilike(.scan.ocr.raw, "*your phone number*"), strings.ilike(.scan.ocr.raw, "*due deducted*"), strings.ilike(.scan.ocr.raw, "*merchant security service center*" ) ) )
all of:
- any(ml.nlu_classifier(body.current_thread.text).intents, .name == "callback_scam" and .confidence == "high" )
at least 2 of 10: body.current_thread.text contains any of 10 patterns
processing your paymentpayment has been receivedorder status updateship your itemsreach out:pay this invoicedearneed to cancelЯеոеԝаⅼorder confirmation
Inspects: attachments[].file_extension, body.current_thread.text, headers.auth_summary.dmarc.pass, sender.email.domain.root_domain, type.inbound. Sensors: file.explode, ml.nlu_classifier, strings.icontains, strings.ilike.
Indicators Matched (20)
| Field | Match | Value |
|---|---|---|
sender.email.domain.root_domain | equals | stripe.com |
attachments[].file_extension | equals | pdf |
strings.ilike | substring | *Btc Purchase* |
strings.ilike | substring | *suspicious activity* |
strings.ilike | substring | *get in touch with us straight once* |
strings.ilike | substring | *your phone number* |
strings.ilike | substring | *due deducted* |
strings.ilike | substring | *merchant security service center* |
ml.nlu_classifier(body.current_thread.text).intents[].name | equals | callback_scam |
ml.nlu_classifier(body.current_thread.text).intents[].confidence | equals | high |
strings.icontains | substring | processing your payment |
strings.icontains | substring | payment has been received |
8 more
strings.icontains | substring | order status update |
strings.icontains | substring | ship your items |
strings.icontains | substring | reach out: |
strings.icontains | substring | pay this invoice |
strings.icontains | substring | dear |
strings.icontains | substring | need to cancel |
strings.icontains | substring | Яеոеԝаⅼ |
strings.icontains | substring | order confirmation |
Stages and Predicates
Stage 1: mql_rule
and
or
and
any(attachments)
and
attachments.file_extension eq "pdf"
macro "any(file.explode(.),\n 4 of (\n strings.ilike(.scan.ocr.raw, \"*Btc Purchase*\"),\n strings.ilike(.scan.ocr.raw, \"*suspicious activity*\"),\n strings.ilike(.scan.ocr.raw,\n \"*get in touch with us straight once*\"\n ),\n strings.ilike(.scan.ocr.raw, \"*your phone number*\"),\n strings.ilike(.scan.ocr.raw, \"*due deducted*\"),\n strings.ilike(.scan.ocr.raw,\n \"*merchant security service center*\"\n )\n )\n )"
attachments length_compare "2"
and
or
and
body.current_thread.text contains "dear"
body.current_thread.text contains "need to cancel"
and
body.current_thread.text contains "dear"
body.current_thread.text contains "order confirmation"
and
body.current_thread.text contains "dear"
body.current_thread.text contains "order status update"
and
body.current_thread.text contains "dear"
body.current_thread.text contains "pay this invoice"
and
body.current_thread.text contains "dear"
body.current_thread.text contains "payment has been received"
and
body.current_thread.text contains "dear"
body.current_thread.text contains "processing your payment"
and
body.current_thread.text contains "dear"
body.current_thread.text contains "reach out:"
and
body.current_thread.text contains "dear"
body.current_thread.text contains "ship your items"
and
body.current_thread.text contains "dear"
body.current_thread.text contains "Яеոеԝаⅼ"
and
body.current_thread.text contains "need to cancel"
body.current_thread.text contains "order confirmation"
and
body.current_thread.text contains "need to cancel"
body.current_thread.text contains "order status update"
and
body.current_thread.text contains "need to cancel"
body.current_thread.text contains "pay this invoice"
and
body.current_thread.text contains "need to cancel"
body.current_thread.text contains "payment has been received"
and
body.current_thread.text contains "need to cancel"
body.current_thread.text contains "processing your payment"
and
body.current_thread.text contains "need to cancel"
body.current_thread.text contains "reach out:"
and
body.current_thread.text contains "need to cancel"
body.current_thread.text contains "ship your items"
and
body.current_thread.text contains "need to cancel"
body.current_thread.text contains "Яеոеԝаⅼ"
and
body.current_thread.text contains "order confirmation"
body.current_thread.text contains "order status update"
and
body.current_thread.text contains "order confirmation"
body.current_thread.text contains "pay this invoice"
and
body.current_thread.text contains "order confirmation"
body.current_thread.text contains "payment has been received"
and
body.current_thread.text contains "order confirmation"
body.current_thread.text contains "processing your payment"
and
body.current_thread.text contains "order confirmation"
body.current_thread.text contains "reach out:"
and
body.current_thread.text contains "order confirmation"
body.current_thread.text contains "ship your items"
and
body.current_thread.text contains "order confirmation"
body.current_thread.text contains "Яеոеԝаⅼ"
and
body.current_thread.text contains "order status update"
body.current_thread.text contains "pay this invoice"
and
body.current_thread.text contains "order status update"
body.current_thread.text contains "payment has been received"
and
body.current_thread.text contains "order status update"
body.current_thread.text contains "processing your payment"
and
body.current_thread.text contains "order status update"
body.current_thread.text contains "reach out:"
and
body.current_thread.text contains "order status update"
body.current_thread.text contains "ship your items"
and
body.current_thread.text contains "order status update"
body.current_thread.text contains "Яеոеԝаⅼ"
and
body.current_thread.text contains "pay this invoice"
body.current_thread.text contains "payment has been received"
and
body.current_thread.text contains "pay this invoice"
body.current_thread.text contains "processing your payment"
and
body.current_thread.text contains "pay this invoice"
body.current_thread.text contains "reach out:"
and
body.current_thread.text contains "pay this invoice"
body.current_thread.text contains "ship your items"
and
body.current_thread.text contains "pay this invoice"
body.current_thread.text contains "Яеոеԝаⅼ"
and
body.current_thread.text contains "payment has been received"
body.current_thread.text contains "processing your payment"
and
body.current_thread.text contains "payment has been received"
body.current_thread.text contains "reach out:"
and
body.current_thread.text contains "payment has been received"
body.current_thread.text contains "ship your items"
and
body.current_thread.text contains "payment has been received"
body.current_thread.text contains "Яеոеԝаⅼ"
and
body.current_thread.text contains "processing your payment"
body.current_thread.text contains "reach out:"
and
body.current_thread.text contains "processing your payment"
body.current_thread.text contains "ship your items"
and
body.current_thread.text contains "processing your payment"
body.current_thread.text contains "Яеոеԝаⅼ"
and
body.current_thread.text contains "reach out:"
body.current_thread.text contains "ship your items"
and
body.current_thread.text contains "reach out:"
body.current_thread.text contains "Яеոеԝаⅼ"
and
body.current_thread.text contains "ship your items"
body.current_thread.text contains "Яеոеԝаⅼ"
macro "any(ml.nlu_classifier(body.current_thread.text).intents,\n .name == \"callback_scam\" and .confidence == \"high\"\n )"
headers.auth_summary.dmarc.pass eq "true"
sender.email.domain.root_domain eq "stripe.com"
type.inbound eq "true"Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
body.current_thread.text | contains |
| field:"body.current_thread.text" kind:contains |
headers.auth_summary.dmarc.pass | eq |
| field:"headers.auth_summary.dmarc.pass" kind:eq value:"true" |
sender.email.domain.root_domain | eq |
| field:"sender.email.domain.root_domain" kind:eq value:"stripe.com" |
type.inbound | eq |
| field:"type.inbound" kind:eq value:"true" |