Sublime Security medium experimental mql
Service abuse: AppSheet infrastructure with suspicious indicators
Identifies messages that resemble credential theft, originating from AppSheet. AppSheet infrastrcture abuse has been observed recently to send phishing attacks.
Detection Logic
type.inbound
and sender.email.email == "noreply@appsheet.com"
and (
// recently registered or suspicious links
(
any(filter(body.links, .href_url.domain.root_domain != "appsheet.com"),
network.whois(.href_url.domain).days_old <= 10
or .href_url.domain.root_domain in $free_file_hosts
or .href_url.domain.domain in $free_subdomain_hosts
or .href_url.domain.root_domain in $url_shorteners
// account for URL rewrites
or (
any(.href_url.query_params_decoded['domain'],
(
. in $url_shorteners
or . in $free_subdomain_hosts
or . in $free_file_hosts
)
)
)
)
)
// suspicious display name
or (
regex.icontains(sender.display_name,
'(?:legal
| misuse
| compliance
| violation
| enforcement)',
// unicode blank character confusables in display name
'\x{00A0}
| \x{1680}
| \x{2000}
| \x{200A}
| \x{200B}
| \x{202F}
| \x{205F}
| \x{3000}'
)
// commonly impersonated brands
or strings.ilike(strings.replace_confusables(sender.display_name),
'*Apple*',
'*Amazon*',
'*Binance*',
'*Facebook*',
'*Meta*',
'*Google*',
'*LinkedIn*'
)
)
// suspicious pattern in body
or regex.icontains(body.current_thread.text,
'(?:(Copyright
| Advertising
| Content
| Data
| Intellectual Property
| I\.?\s?P\.?\b) (?:Polic(y
| ies))
| Violation
| Contravention
| Complaint
| Misuse)
| (?:(Enforce(ment)?
| Required
| Mandatory
| Immediate) (?:Action
| Response))
| Cease (\&
| and) Desist'
)
// NLU failsafe
or (
any(ml.nlu_classifier(body.current_thread.text).intents,
.name in~ ("cred_theft", "steal_pii", "job_scam")
and .confidence in~ ("medium", "high")
)
// negate the NLU result if there is only a single link leading back to AppSheet (likely benign)
and not (
length(body.links) == 1
and any(body.links,
.display_text == "Powered by AppSheet"
and .href_url.domain.root_domain == "appsheet.com"
)
)
)
)
// negate legitimate use of AppSheet within the org
and not (
length(headers.reply_to) is not null
and any(filter(headers.reply_to, .email.domain.root_domain != "appsheet.com"),
.email.domain.root_domain in~ $org_domains
or .email.domain.root_domain in~ $recipient_domains
)
) Field Validations
Loading…
Comments (0)
Loading comments...