Detection rules › Sublime MQL
Brand impersonation: Interac
Impersonation of the Canadian interbanking network Interac. Seen in the wild impersonating carbon tax rebates and tax return refunds.
Threat classification
Sublime's own taxonomy (not MITRE ATT&CK).
| Category | Values |
|---|---|
| Attack types | BEC/Fraud |
| Tactics and techniques | Impersonation: Brand, Lookalike domain, Social engineering |
Event coverage
| Message attribute |
|---|
| body.current_thread |
| headers.auth_summary |
| sender |
| sender.email |
| subject |
| type |
Rule body MQL
type.inbound
and (
strings.ilike(sender.display_name, '*interac e-transfer*')
or strings.ilike(sender.display_name, "*interac e?trasfer*")
or strings.ilike(subject.subject, '*interac e-transfer*')
or strings.ilevenshtein(sender.display_name, 'interac e-transfer') <= 2
)
and sender.email.domain.root_domain not in ('interac.ca')
and 1 of (
any(ml.nlu_classifier(body.current_thread.text).entities,
.name == "org" and strings.icontains(.text, "interac")
),
any(ml.nlu_classifier(body.current_thread.text).entities,
.name == "financial"
),
)
and not profile.by_sender().solicited
// negate highly trusted sender domains unless they fail DMARC authentication
and (
(
sender.email.domain.root_domain in $high_trust_sender_root_domains
and not headers.auth_summary.dmarc.pass
)
or sender.email.domain.root_domain not in $high_trust_sender_root_domains
)
Detection logic
Scope: inbound message.
Impersonation of the Canadian interbanking network Interac. Seen in the wild impersonating carbon tax rebates and tax return refunds.
- inbound message
any of:
- sender.display_name matches '*interac e-transfer*'
- sender.display_name matches '*interac e?trasfer*'
- subject.subject matches '*interac e-transfer*'
- sender.display_name is similar to 'interac e-transfer'
- sender.email.domain.root_domain not in ('interac.ca')
at least 1 of:
any of
ml.nlu_classifier(body.current_thread.text).entitieswhere all hold:- .name is 'org'
- .text contains 'interac'
any of
ml.nlu_classifier(body.current_thread.text).entitieswhere:- .name is 'financial'
not:
- profile.by_sender().solicited
any of:
all of:
- sender.email.domain.root_domain in $high_trust_sender_root_domains
not:
- headers.auth_summary.dmarc.pass
- sender.email.domain.root_domain not in $high_trust_sender_root_domains
Inspects: body.current_thread.text, headers.auth_summary.dmarc.pass, sender.display_name, sender.email.domain.root_domain, subject.subject, type.inbound. Sensors: ml.nlu_classifier, profile.by_sender, strings.icontains, strings.ilevenshtein, strings.ilike. Reference lists: $high_trust_sender_root_domains.
Indicators matched (7)
| Field | Match | Value |
|---|---|---|
strings.ilike | substring | *interac e-transfer* |
strings.ilike | substring | *interac e?trasfer* |
strings.ilevenshtein | fuzzy | interac e-transfer |
sender.email.domain.root_domain | member | interac.ca |
ml.nlu_classifier(body.current_thread.text).entities[].name | equals | org |
strings.icontains | substring | interac |
ml.nlu_classifier(body.current_thread.text).entities[].name | equals | financial |