Detection rules › Sublime MQL
Sublime MQL rules: canva
| Rule | Severity |
|---|---|
| Canva design with suspicious embedded link | high |
| Canva infrastructure abuse | medium |
Canva design with suspicious embedded link
#Detects when a Canva design contains links to suspicious domains or credential harvesting sites. The rule examines embedded scripts within Canva documents for suspicious URLs and analyzes link text for malicious intent.
Threat Classification
Sublime's own taxonomy (not MITRE ATT&CK).
| Category | Values |
|---|---|
| Attack types | Credential Phishing |
| Tactics and techniques | Evasion, Social engineering, Free file host |
Telemetry Coverage
| Platform | Record / event type |
|---|---|
| Sublime | Inbound email message |
Message Attributes
Rule Body
type.inbound
and any(body.links,
.href_url.domain.root_domain == "canva.com"
and strings.starts_with(.href_url.path, "/design/")
and any(html.xpath(ml.link_analysis(.).final_dom,
"/html/body/script[2]"
).nodes,
any(regex.iextract(.raw,
'\"[A-Z]\":{[^\}]+\"[a-z]\":\"(?P<display_text>[^\"]+)\"},\"[a-z]\":{[^\}]+"[a-z]":"(?<url>https:\/\/[^\s"'')\]}]+)\"'
),
strings.parse_url(.named_groups["url"]).domain.root_domain not in (
"canva.com",
"sentry.io",
"googleusercontent.com"
)
and (
any(ml.nlu_classifier(.named_groups['display_text']).intents,
.name == "cred_theft"
)
or strings.parse_url(.named_groups["url"]).domain.tld in $suspicious_tlds
or strings.parse_url(.named_groups["url"]).domain.domain in $free_subdomain_hosts
or strings.parse_url(.named_groups["url"]).domain.root_domain in $free_subdomain_hosts
or ml.link_analysis(strings.parse_url(.named_groups["url"]
)
).credphish.disposition == "phishing"
)
)
// parse out links using file.explode
or any(file.explode(.),
any(filter(.scan.url.urls,
.domain.root_domain not in (
"canva.com",
"sentry.io",
"googleusercontent.com"
)
),
.domain.tld in $suspicious_tlds
or .domain.domain in $free_subdomain_hosts
or .domain.root_domain in $free_subdomain_hosts
or ml.link_analysis(.).credphish.disposition == "phishing"
)
)
)
)
and not profile.by_sender_email().any_messages_benign
Detection Logic
Scope: inbound message.
Detects when a Canva design contains links to suspicious domains or credential harvesting sites. The rule examines embedded scripts within Canva documents for suspicious URLs and analyzes link text for malicious intent.
- inbound message
any of
body.linkswhere all hold:- .href_url.domain.root_domain is 'canva.com'
- .href_url.path starts with '/design/'
- any(html.xpath(ml.link_analysis(.).final_dom, "/html/body/script[2]" ).nodes, any(regex.iextract(.raw, '\"[A-Z]\":{[^\}]+\"[a-z]\":\"(?P<display_text>[^\"]+)\"},\"[a-z]\":{[^\}]+"[a-z]":"(?<url>https:\/\/[^\s"'')\]}]+)\"' ), strings.parse_url(.named_groups["url"]).domain.root_domain not in ( "canva.com", "sentry.io", "googleusercontent.com" ) and ( any(ml.nlu_classifier(.named_groups['display_text']).intents, .name == "cred_theft" ) or strings.parse_url(.named_groups["url"]).domain.tld in $suspicious_tlds or strings.parse_url(.named_groups["url"]).domain.domain in $free_subdomain_hosts or strings.parse_url(.named_groups["url"]).domain.root_domain in $free_subdomain_hosts or ml.link_analysis(strings.parse_url(.named_groups["url"] ) ).credphish.disposition == "phishing" ) ) // parse out links using file.explode or any(file.explode(.), any(filter(.scan.url.urls, .domain.root_domain not in ( "canva.com", "sentry.io", "googleusercontent.com" ) ), .domain.tld in $suspicious_tlds or .domain.domain in $free_subdomain_hosts or .domain.root_domain in $free_subdomain_hosts or ml.link_analysis(.).credphish.disposition == "phishing" ) ) )
not:
- profile.by_sender_email().any_messages_benign
Inspects: body.links, body.links[].href_url.domain.root_domain, body.links[].href_url.path, type.inbound. Sensors: file.explode, html.xpath, ml.link_analysis, ml.nlu_classifier, profile.by_sender_email, regex.iextract, strings.parse_url, strings.starts_with. Reference lists: $free_subdomain_hosts, $suspicious_tlds.
Indicators Matched (4)
| Field | Match | Value |
|---|---|---|
body.links[].href_url.domain.root_domain | equals | canva.com |
strings.starts_with | prefix | /design/ |
regex.iextract | regex | \"[A-Z]\":{[^\}]+\"[a-z]\":\"(?P<display_text>[^\"]+)\"},\"[a-z]\":{[^\}]+"[a-z]":"(?<url>https:\/\/[^\s"')\]}]+)\" |
ml.nlu_classifier(regex.iextract(html.xpath(ml.link_analysis(body.links[]).final_dom, '/html/body/script[2]').nodes[].raw)[].named_groups['display_text']).intents[].name | equals | cred_theft |
Stages and Predicates
Stage 1: mql_rule
and
any(body.links)
and
body.links.href_url.domain.root_domain eq "canva.com"
body.links.href_url.path starts_with "/design/"
macro "any(html.xpath(ml.link_analysis(.).final_dom,\n \"/html/body/script[2]\"\n ).nodes,\n any(regex.iextract(.raw,\n '\\\"[A-Z]\\\":{[^\\}]+\\\"[a-z]\\\":\\\"(?P<display_text>[^\\\"]+)\\\"},\\\"[a-z]\\\":{[^\\}]+\"[a-z]\":\"(?<url>https:\\/\\/[^\\s\"'')\\]}]+)\\\"'\n ),\n strings.parse_url(.named_groups[\"url\"]).domain.root_domain not in (\n \"canva.com\",\n \"sentry.io\",\n \"googleusercontent.com\"\n )\n and (\n any(ml.nlu_classifier(.named_groups['display_text']).intents,\n .name == \"cred_theft\"\n )\n or strings.parse_url(.named_groups[\"url\"]).domain.tld in $suspicious_tlds\n or strings.parse_url(.named_groups[\"url\"]).domain.domain in $free_subdomain_hosts\n or strings.parse_url(.named_groups[\"url\"]).domain.root_domain in $free_subdomain_hosts\n or ml.link_analysis(strings.parse_url(.named_groups[\"url\"]\n )\n ).credphish.disposition == \"phishing\"\n )\n )\n // parse out links using file.explode\n or any(file.explode(.),\n any(filter(.scan.url.urls,\n .domain.root_domain not in (\n \"canva.com\",\n \"sentry.io\",\n \"googleusercontent.com\"\n )\n ),\n .domain.tld in $suspicious_tlds\n or .domain.domain in $free_subdomain_hosts\n or .domain.root_domain in $free_subdomain_hosts\n or ml.link_analysis(.).credphish.disposition == \"phishing\"\n )\n )\n )"
not
profile.by_sender_email func_call "profile.by_sender_email().any_messages_benign"
type.inbound eq "true"Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
type.inbound | eq |
| field:"type.inbound" kind:eq value:"true" |
Canva infrastructure abuse
#A fraudulent invoice/receipt found in the body of the message sent by exploiting Canva's design sharing feature.
Threat Classification
Sublime's own taxonomy (not MITRE ATT&CK).
| Category | Values |
|---|---|
| Attack types | BEC/Fraud, Callback Phishing |
| Tactics and techniques | Social engineering, Impersonation: Brand, Impersonation: Employee, Free email provider |
Telemetry Coverage
| Platform | Record / event type |
|---|---|
| Sublime | Inbound email message |
Message Attributes
Rule Body
type.inbound
and length(attachments) <= 1
and sender.email.domain.root_domain in ("canva.com")
and (
strings.ilike(body.html.display_text, "*take a look at the design*")
or regex.icontains(body.current_thread.text, 'invited.{0,10}(?:class|school)')
or strings.icontains(body.current_thread.text, "no longer have access")
)
and (
(
// icontains a phone number
(
regex.icontains(strings.replace_confusables(body.current_thread.text),
'.*\+?([ilo0-9]{1}.)?\(?[ilo0-9]{3}?\)?.[ilo0-9]{3}.?[ilo0-9]{4}.*\n'
)
or regex.icontains(strings.replace_confusables(body.current_thread.text),
'.*\+[ilo0-9]{1,3}[ilo0-9]{10}.*\n'
)
// +12028001238
or regex.icontains(strings.replace_confusables(body.current_thread.text),
'.*[ilo0-9]{3}\.[ilo0-9]{3}\.[ilo0-9]{4}.*\n'
)
// 202-800-1238
or regex.icontains(strings.replace_confusables(body.current_thread.text),
'.*[ilo0-9]{3}-[ilo0-9]{3}-[ilo0-9]{4}.*\n'
)
// (202) 800-1238
or regex.icontains(strings.replace_confusables(body.current_thread.text),
'.*\([ilo0-9]{3}\)[\s-]+[ilo0-9]{3}[\s-]+[ilo0-9]{4}.*\n'
)
// (202)-800-1238
or regex.icontains(strings.replace_confusables(body.current_thread.text),
'.*\([ilo0-9]{3}\)-[ilo0-9]{3}-[ilo0-9]{4}.*\n'
)
or ( // 8123456789
regex.icontains(strings.replace_confusables(body.current_thread.text),
'.*8[ilo0-9]{9}.*\n'
)
and regex.icontains(strings.replace_confusables(body.current_thread.text
),
'\+[1l]'
)
)
)
and (
(
4 of (
strings.ilike(body.html.inner_text, '*you did not*'),
strings.ilike(body.html.inner_text, '*is not for*'),
strings.ilike(body.html.inner_text, '*done by you*'),
regex.icontains(body.html.inner_text, "didn\'t ma[kd]e this"),
strings.ilike(body.html.inner_text, '*Fruad Alert*'),
strings.ilike(body.html.inner_text, '*Fraud Alert*'),
strings.ilike(body.html.inner_text, '*fraudulent*'),
strings.ilike(body.html.inner_text, '*using your PayPal*'),
strings.ilike(body.html.inner_text, '*subscription*'),
strings.ilike(body.html.inner_text, '*antivirus*'),
strings.ilike(body.html.inner_text, '*order*'),
strings.ilike(body.html.inner_text, '*support*'),
strings.ilike(body.html.inner_text, '*sincerely apologize*'),
strings.ilike(body.html.inner_text, '*receipt*'),
strings.ilike(body.html.inner_text, '*invoice*'),
strings.ilike(body.html.inner_text, '*Purchase*'),
strings.ilike(body.html.inner_text, '*transaction*'),
strings.ilike(body.html.inner_text, '*Market*Value*'),
strings.ilike(body.html.inner_text, '*BTC*'),
strings.ilike(body.html.inner_text, '*call*'),
strings.ilike(body.html.inner_text, '*get in touch with our*'),
strings.ilike(body.html.inner_text, '*quickly inform*'),
strings.ilike(body.html.inner_text, '*quickly reach *'),
strings.ilike(body.html.inner_text, '*detected unusual transactions*'),
strings.ilike(body.html.inner_text, '*without your authorization*'),
strings.ilike(body.html.inner_text, '*cancel*'),
strings.ilike(body.html.inner_text, '*renew*'),
strings.ilike(body.html.inner_text, '*refund*'),
strings.ilike(body.html.inner_text, '*+1*'),
regex.icontains(body.html.inner_text, 'help.{0,3}desk'),
strings.ilike(body.html.inner_text, '* your funds*'),
strings.ilike(body.html.inner_text, '* your checking*'),
strings.ilike(body.html.inner_text, '* your saving*'),
strings.ilike(body.html.inner_text, '*transfer*'),
strings.ilike(body.html.inner_text, '*secure your account*'),
strings.ilike(body.html.inner_text, '*recover your*'),
strings.ilike(body.html.inner_text, '*unusual activity*'),
strings.ilike(body.html.inner_text, '*suspicious transaction*'),
strings.ilike(body.html.inner_text, '*transaction history*'),
strings.ilike(body.html.inner_text, '*please ignore this*'),
strings.ilike(body.html.inner_text, '*report activity*'),
)
)
or regex.icontains(body.current_thread.text,
'note from.{0,50}(?:call|reach|contact|paypal)'
)
or any(ml.nlu_classifier(body.current_thread.text).intents,
.name == "callback_scam"
)
or (
// Unicode confusables words obfuscated in note
regex.icontains(body.html.inner_text,
'\+𝟭|𝗽𝗮𝘆𝗺𝗲𝗻𝘁|𝗛𝗲𝗹𝗽 𝗗𝗲𝘀𝗸|𝗿𝗲𝗳𝘂𝗻𝗱|𝗮𝗻𝘁𝗶𝘃𝗶𝗿𝘂𝘀|𝗰𝗮𝗹𝗹|𝗰𝗮𝗻𝗰𝗲𝗹'
)
)
or strings.ilike(body.html.inner_text, '*kindly*')
)
)
)
Detection Logic
Scope: inbound message.
A fraudulent invoice/receipt found in the body of the message sent by exploiting Canva's design sharing feature.
- inbound message
- length(attachments) <= 1
- sender.email.domain.root_domain in ('canva.com')
any of:
- body.html.display_text matches '*take a look at the design*'
- body.current_thread.text matches 'invited.{0,10}(?:class|school)'
- body.current_thread.text contains 'no longer have access'
all of:
any of:
- regex.icontains(strings.replace_confusables(body.current_thread.text), '.*\+?([ilo0-9]{1}.)?\(?[ilo0-9]{3}?\)?.[ilo0-9]{3}.?[ilo0-9]{4}.*\n' )
- regex.icontains(strings.replace_confusables(body.current_thread.text), '.*\+[ilo0-9]{1,3}[ilo0-9]{10}.*\n' )
- regex.icontains(strings.replace_confusables(body.current_thread.text), '.*[ilo0-9]{3}\.[ilo0-9]{3}\.[ilo0-9]{4}.*\n' )
- regex.icontains(strings.replace_confusables(body.current_thread.text), '.*[ilo0-9]{3}-[ilo0-9]{3}-[ilo0-9]{4}.*\n' )
- regex.icontains(strings.replace_confusables(body.current_thread.text), '.*\([ilo0-9]{3}\)[\s-]+[ilo0-9]{3}[\s-]+[ilo0-9]{4}.*\n' )
- regex.icontains(strings.replace_confusables(body.current_thread.text), '.*\([ilo0-9]{3}\)-[ilo0-9]{3}-[ilo0-9]{4}.*\n' )
all of:
- regex.icontains(strings.replace_confusables(body.current_thread.text), '.*8[ilo0-9]{9}.*\n' )
- regex.icontains(strings.replace_confusables(body.current_thread.text ), '\+[1l]' )
any of:
at least 4 of 41: body.html.inner_text matches any of 41 patterns
*you did not**is not for**done by you*didn\'t ma[kd]e this*Fruad Alert**Fraud Alert**fraudulent**using your PayPal**subscription**antivirus**order**support**sincerely apologize**receipt**invoice**Purchase**transaction**Market*Value**BTC**call**get in touch with our**quickly inform**quickly reach **detected unusual transactions**without your authorization**cancel**renew**refund**+1*help.{0,3}desk* your funds** your checking** your saving**transfer**secure your account**recover your**unusual activity**suspicious transaction**transaction history**please ignore this**report activity*
- body.current_thread.text matches 'note from.{0,50}(?:call|reach|contact|paypal)'
- any(ml.nlu_classifier(body.current_thread.text).intents, .name == "callback_scam" )
- body.html.inner_text matches '\\+𝟭|𝗽𝗮𝘆𝗺𝗲𝗻𝘁|𝗛𝗲𝗹𝗽 𝗗𝗲𝘀𝗸|𝗿𝗲𝗳𝘂𝗻𝗱|𝗮𝗻𝘁𝗶𝘃𝗶𝗿𝘂𝘀|𝗰𝗮𝗹𝗹|𝗰𝗮𝗻𝗰𝗲𝗹'
- body.html.inner_text matches '*kindly*'
Inspects: body.current_thread.text, body.html.display_text, body.html.inner_text, sender.email.domain.root_domain, type.inbound. Sensors: ml.nlu_classifier, regex.icontains, strings.icontains, strings.ilike, strings.replace_confusables.
Indicators Matched (57)
| Field | Match | Value |
|---|---|---|
sender.email.domain.root_domain | member | canva.com |
strings.ilike | substring | *take a look at the design* |
regex.icontains | regex | invited.{0,10}(?:class|school) |
strings.icontains | substring | no longer have access |
regex.icontains | regex | .*\+?([ilo0-9]{1}.)?\(?[ilo0-9]{3}?\)?.[ilo0-9]{3}.?[ilo0-9]{4}.*\n |
regex.icontains | regex | .*\+[ilo0-9]{1,3}[ilo0-9]{10}.*\n |
regex.icontains | regex | .*[ilo0-9]{3}\.[ilo0-9]{3}\.[ilo0-9]{4}.*\n |
regex.icontains | regex | .*[ilo0-9]{3}-[ilo0-9]{3}-[ilo0-9]{4}.*\n |
regex.icontains | regex | .*\([ilo0-9]{3}\)[\s-]+[ilo0-9]{3}[\s-]+[ilo0-9]{4}.*\n |
regex.icontains | regex | .*\([ilo0-9]{3}\)-[ilo0-9]{3}-[ilo0-9]{4}.*\n |
regex.icontains | regex | .*8[ilo0-9]{9}.*\n |
regex.icontains | regex | \+[1l] |
45 more
strings.ilike | substring | *you did not* |
strings.ilike | substring | *is not for* |
strings.ilike | substring | *done by you* |
regex.icontains | regex | didn\'t ma[kd]e this |
strings.ilike | substring | *Fruad Alert* |
strings.ilike | substring | *Fraud Alert* |
strings.ilike | substring | *fraudulent* |
strings.ilike | substring | *using your PayPal* |
strings.ilike | substring | *subscription* |
strings.ilike | substring | *antivirus* |
strings.ilike | substring | *order* |
strings.ilike | substring | *support* |
strings.ilike | substring | *sincerely apologize* |
strings.ilike | substring | *receipt* |
strings.ilike | substring | *invoice* |
strings.ilike | substring | *Purchase* |
strings.ilike | substring | *transaction* |
strings.ilike | substring | *Market*Value* |
strings.ilike | substring | *BTC* |
strings.ilike | substring | *call* |
strings.ilike | substring | *get in touch with our* |
strings.ilike | substring | *quickly inform* |
strings.ilike | substring | *quickly reach * |
strings.ilike | substring | *detected unusual transactions* |
strings.ilike | substring | *without your authorization* |
strings.ilike | substring | *cancel* |
strings.ilike | substring | *renew* |
strings.ilike | substring | *refund* |
strings.ilike | substring | *+1* |
regex.icontains | regex | help.{0,3}desk |
strings.ilike | substring | * your funds* |
strings.ilike | substring | * your checking* |
strings.ilike | substring | * your saving* |
strings.ilike | substring | *transfer* |
strings.ilike | substring | *secure your account* |
strings.ilike | substring | *recover your* |
strings.ilike | substring | *unusual activity* |
strings.ilike | substring | *suspicious transaction* |
strings.ilike | substring | *transaction history* |
strings.ilike | substring | *please ignore this* |
strings.ilike | substring | *report activity* |
regex.icontains | regex | note from.{0,50}(?:call|reach|contact|paypal) |
ml.nlu_classifier(body.current_thread.text).intents[].name | equals | callback_scam |
regex.icontains | regex | \+𝟭|𝗽𝗮𝘆𝗺𝗲𝗻𝘁|𝗛𝗲𝗹𝗽 𝗗𝗲𝘀𝗸|𝗿𝗲𝗳𝘂𝗻𝗱|𝗮𝗻𝘁𝗶𝘃𝗶𝗿𝘂𝘀|𝗰𝗮𝗹𝗹|𝗰𝗮𝗻𝗰𝗲𝗹 |
strings.ilike | substring | *kindly* |
Stages and Predicates
Stage 1: mql_rule
and
or
and
regex.icontains func_call "regex.icontains(strings.replace_confusables(body.current_thread.text),\n '.*8[ilo0-9]{9}.*\\n'\n )"
regex.icontains func_call "regex.icontains(strings.replace_confusables(body.current_thread.text\n ),\n '\\+[1l]'\n )"
regex.icontains func_call "regex.icontains(strings.replace_confusables(body.current_thread.text),\n '.*[ilo0-9]{3}-[ilo0-9]{3}-[ilo0-9]{4}.*\\n'\n )"
regex.icontains func_call "regex.icontains(strings.replace_confusables(body.current_thread.text),\n '.*[ilo0-9]{3}\\.[ilo0-9]{3}\\.[ilo0-9]{4}.*\\n'\n )"
regex.icontains func_call "regex.icontains(strings.replace_confusables(body.current_thread.text),\n '.*\\([ilo0-9]{3}\\)-[ilo0-9]{3}-[ilo0-9]{4}.*\\n'\n )"
regex.icontains func_call "regex.icontains(strings.replace_confusables(body.current_thread.text),\n '.*\\([ilo0-9]{3}\\)[\\s-]+[ilo0-9]{3}[\\s-]+[ilo0-9]{4}.*\\n'\n )"
regex.icontains func_call "regex.icontains(strings.replace_confusables(body.current_thread.text),\n '.*\\+[ilo0-9]{1,3}[ilo0-9]{10}.*\\n'\n )"
regex.icontains func_call "regex.icontains(strings.replace_confusables(body.current_thread.text),\n '.*\\+?([ilo0-9]{1}.)?\\(?[ilo0-9]{3}?\\)?.[ilo0-9]{3}.?[ilo0-9]{4}.*\\n'\n )"
or
body.current_thread.text contains "no longer have access"
body.current_thread.text regex_match "invited.{0,10}(?:class|school)"
body.html.display_text match "take a look at the design"
or
body.current_thread.text regex_match "note from.{0,50}(?:call|reach|contact|paypal)"
body.html.inner_text match "kindly"
body.html.inner_text regex_match "\\+𝟭|𝗽𝗮𝘆𝗺𝗲𝗻𝘁|𝗛𝗲𝗹𝗽 𝗗𝗲𝘀𝗸|𝗿𝗲𝗳𝘂𝗻𝗱|𝗮𝗻𝘁𝗶𝘃𝗶𝗿𝘂𝘀|𝗰𝗮𝗹𝗹|𝗰𝗮𝗻𝗰𝗲𝗹"
macro "4 of (\n strings.ilike(body.html.inner_text, '*you did not*'),\n strings.ilike(body.html.inner_text, '*is not for*'),\n strings.ilike(body.html.inner_text, '*done by you*'),\n regex.icontains(body.html.inner_text, \"didn\\'t ma[kd]e this\"),\n strings.ilike(body.html.inner_text, '*Fruad Alert*'),\n strings.ilike(body.html.inner_text, '*Fraud Alert*'),\n strings.ilike(body.html.inner_text, '*fraudulent*'),\n strings.ilike(body.html.inner_text, '*using your PayPal*'),\n strings.ilike(body.html.inner_text, '*subscription*'),\n strings.ilike(body.html.inner_text, '*antivirus*'),\n strings.ilike(body.html.inner_text, '*order*'),\n strings.ilike(body.html.inner_text, '*support*'),\n strings.ilike(body.html.inner_text, '*sincerely apologize*'),\n strings.ilike(body.html.inner_text, '*receipt*'),\n strings.ilike(body.html.inner_text, '*invoice*'),\n strings.ilike(body.html.inner_text, '*Purchase*'),\n strings.ilike(body.html.inner_text, '*transaction*'),\n strings.ilike(body.html.inner_text, '*Market*Value*'),\n strings.ilike(body.html.inner_text, '*BTC*'),\n strings.ilike(body.html.inner_text, '*call*'),\n strings.ilike(body.html.inner_text, '*get in touch with our*'),\n strings.ilike(body.html.inner_text, '*quickly inform*'),\n strings.ilike(body.html.inner_text, '*quickly reach *'),\n strings.ilike(body.html.inner_text, '*detected unusual transactions*'),\n strings.ilike(body.html.inner_text, '*without your authorization*'),\n strings.ilike(body.html.inner_text, '*cancel*'),\n strings.ilike(body.html.inner_text, '*renew*'),\n strings.ilike(body.html.inner_text, '*refund*'),\n strings.ilike(body.html.inner_text, '*+1*'),\n regex.icontains(body.html.inner_text, 'help.{0,3}desk'),\n strings.ilike(body.html.inner_text, '* your funds*'),\n strings.ilike(body.html.inner_text, '* your checking*'),\n strings.ilike(body.html.inner_text, '* your saving*'),\n strings.ilike(body.html.inner_text, '*transfer*'),\n strings.ilike(body.html.inner_text, '*secure your account*'),\n strings.ilike(body.html.inner_text, '*recover your*'),\n strings.ilike(body.html.inner_text, '*unusual activity*'),\n strings.ilike(body.html.inner_text, '*suspicious transaction*'),\n strings.ilike(body.html.inner_text, '*transaction history*'),\n strings.ilike(body.html.inner_text, '*please ignore this*'),\n strings.ilike(body.html.inner_text, '*report activity*'),\n )"
macro "any(ml.nlu_classifier(body.current_thread.text).intents,\n .name == \"callback_scam\"\n )"
attachments length_compare "1"
sender.email.domain.root_domain eq "canva.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 value:"no longer have access" |
body.current_thread.text | regex_match |
| field:"body.current_thread.text" kind:regex_match |
body.html.display_text | wildcard |
| field:"body.html.display_text" kind:wildcard value:"*take a look at the design*" |
body.html.inner_text | regex_match |
| field:"body.html.inner_text" kind:regex_match |
body.html.inner_text | wildcard |
| field:"body.html.inner_text" kind:wildcard value:"*kindly*" |
sender.email.domain.root_domain | in |
| field:"sender.email.domain.root_domain" kind:in value:"canva.com" |
type.inbound | eq |
| field:"type.inbound" kind:eq value:"true" |