Threat classification
Sublime's own taxonomy (not MITRE ATT&CK).
| Category | Values |
|---|---|
| Attack types | Credential Phishing |
| Tactics and techniques | Impersonation: Brand, Lookalike domain, Social engineering |
Event coverage
| Message attribute |
|---|
| body.html |
| body.plain |
| headers.auth_summary |
| sender |
| sender.email |
| subject |
| type |
Rule body MQL
type.inbound
and (
sender.display_name =~ 'wellsfargo'
or strings.ilevenshtein(strings.replace_confusables(sender.display_name),
'wellsfargo'
) <= 1
or regex.icontains(strings.replace_confusables(sender.display_name),
'we(ll|ii)s?\s?farg(o|o͙)'
)
or strings.ilike(sender.email.domain.domain, '*wellsfargo*')
or strings.ilike(subject.subject, '*wells fargo security*')
or strings.ilike(body.plain.raw, '*wells fargo security team*')
or strings.ilike(body.html.inner_text, '*wells fargo security team*')
// Wells Fargo & Company (WFC)
or (
regex.icontains(sender.display_name, '\bW.?F.?C\b')
and any([sender.display_name, subject.base],
strings.ilike(.,
'*bank*',
'*security*',
'*processing*',
'*approval*',
'*refund*'
)
)
)
)
and sender.email.domain.root_domain not in~ (
'wellsfargo.com',
'wellsfargoadvisors.com',
'transunion.com',
'wellsfargoemail.com',
'wellsfargorewards.com',
'comcast-spectacor.com',
'investordelivery.com',
'comcastspectacor.com',
'wfadvisors.com',
'wellsfargomerchantservicesllc.com'
)
and (
sender.email.email not in $recipient_emails
or regex.icontains(sender.email.email, "no.?reply")
)
// 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
or sender.email.email in (
"drive-shares-noreply@google.com",
"drive-shares-dm-noreply@google.com"
) // Google Drive abuse has been observed
)
Detection logic
Scope: inbound message.
Impersonation of Wells Fargo Bank.
- inbound message
any of:
- sender.display_name is 'wellsfargo'
- strings.replace_confusables(sender.display_name) is similar to 'wellsfargo'
- strings.replace_confusables(sender.display_name) matches 'we(ll|ii)s?\\s?farg(o|o͙)'
- sender.email.domain.domain matches '*wellsfargo*'
- subject.subject matches '*wells fargo security*'
- body.plain.raw matches '*wells fargo security team*'
- body.html.inner_text matches '*wells fargo security team*'
all of:
- sender.display_name matches '\\bW.?F.?C\\b'
any of
[sender.display_name, subject.base]where:. matches any of 5 patterns
*bank**security**processing**approval**refund*
- sender.email.domain.root_domain not in ('wellsfargo.com', 'wellsfargoadvisors.com', 'transunion.com', 'wellsfargoemail.com', 'wellsfargorewards.com', 'comcast-spectacor.com', 'investordelivery.com', 'comcastspectacor.com', 'wfadvisors.com', 'wellsfargomerchantservicesllc.com')
any of:
- sender.email.email not in $recipient_emails
- sender.email.email matches 'no.?reply'
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
- sender.email.email in ('drive-shares-noreply@google.com', 'drive-shares-dm-noreply@google.com')
Inspects: body.html.inner_text, body.plain.raw, headers.auth_summary.dmarc.pass, sender.display_name, sender.email.domain.domain, sender.email.domain.root_domain, sender.email.email, subject.base, subject.subject, type.inbound. Sensors: regex.icontains, strings.ilevenshtein, strings.ilike, strings.replace_confusables. Reference lists: $high_trust_sender_root_domains, $recipient_emails.
Indicators matched (25)
| Field | Match | Value |
|---|---|---|
sender.display_name | equals | wellsfargo |
strings.ilevenshtein | fuzzy | wellsfargo |
regex.icontains | regex | we(ll|ii)s?\s?farg(o|o͙) |
strings.ilike | substring | *wellsfargo* |
strings.ilike | substring | *wells fargo security* |
strings.ilike | substring | *wells fargo security team* |
regex.icontains | regex | \bW.?F.?C\b |
strings.ilike | substring | *bank* |
strings.ilike | substring | *security* |
strings.ilike | substring | *processing* |
strings.ilike | substring | *approval* |
strings.ilike | substring | *refund* |
13 more
sender.email.domain.root_domain | member | wellsfargo.com |
sender.email.domain.root_domain | member | wellsfargoadvisors.com |
sender.email.domain.root_domain | member | transunion.com |
sender.email.domain.root_domain | member | wellsfargoemail.com |
sender.email.domain.root_domain | member | wellsfargorewards.com |
sender.email.domain.root_domain | member | comcast-spectacor.com |
sender.email.domain.root_domain | member | investordelivery.com |
sender.email.domain.root_domain | member | comcastspectacor.com |
sender.email.domain.root_domain | member | wfadvisors.com |
sender.email.domain.root_domain | member | wellsfargomerchantservicesllc.com |
regex.icontains | regex | no.?reply |
sender.email.email | member | drive-shares-noreply@google.com |
sender.email.email | member | drive-shares-dm-noreply@google.com |