Brand impersonation: Wells Fargo

Impersonation of Wells Fargo Bank.

Sublime rule (View on GitHub)

 1name: "Brand impersonation: Wells Fargo"
 2description: |
 3    Impersonation of Wells Fargo Bank.
 4references:
 5  - "https://www.americanbanker.com/news/wells-fargo-customers-targeted-with-phishing-attacks-using-calendar-invites"
 6  - "https://www.wellsfargo.com/biz/help/faqs/credit-card-rewards/"
 7type: "rule"
 8severity: "high"
 9source: |
10  type.inbound
11  and (
12    sender.display_name =~ 'wellsfargo'
13    or strings.ilevenshtein(strings.replace_confusables(sender.display_name),
14                            'wellsfargo'
15    ) <= 1
16    or regex.icontains(strings.replace_confusables(sender.display_name),
17                       'we(ll|ii)s?\s?farg(o|o͙)'
18    )
19    or strings.ilike(sender.email.domain.domain, '*wellsfargo*')
20    or strings.ilike(subject.subject, '*wells fargo security*')
21    or strings.ilike(body.plain.raw, '*wells fargo security team*')
22    or strings.ilike(body.html.inner_text, '*wells fargo security team*')
23    // Wells Fargo & Company (WFC)
24    or (
25      regex.icontains(sender.display_name, '\bW.?F.?C\b')
26      and any([sender.display_name, subject.base],
27              strings.ilike(.,
28                            '*bank*',
29                            '*security*',
30                            '*processing*',
31                            '*approval*',
32                            '*refund*'
33              )
34      )
35    )
36  )
37  and not (
38    sender.email.domain.root_domain in (
39      'wellsfargo.com',
40      'wellsfargoadvisors.com',
41      'transunion.com',
42      'wellsfargoemail.com',
43      'wellsfargorewards.com',
44      'comcast-spectacor.com',
45      'investordelivery.com',
46      'comcastspectacor.com',
47      'wfadvisors.com',
48      'wellsfargomerchantservicesllc.com'
49    )
50    and coalesce(headers.auth_summary.dmarc.pass, false)
51  )
52  and (
53    sender.email.email not in $recipient_emails
54    or regex.icontains(sender.email.email, "no.?reply")
55  )
56  
57  // negate highly trusted sender domains unless they fail DMARC authentication
58  and (
59    (
60      sender.email.domain.root_domain in $high_trust_sender_root_domains
61      and not headers.auth_summary.dmarc.pass
62    )
63    or sender.email.domain.root_domain not in $high_trust_sender_root_domains
64    or sender.email.email in (
65      "drive-shares-noreply@google.com",
66      "drive-shares-dm-noreply@google.com"
67    ) // Google Drive abuse has been observed
68  )  
69attack_types:
70  - "Credential Phishing"
71tactics_and_techniques:
72  - "Impersonation: Brand"
73  - "Lookalike domain"
74  - "Social engineering"
75detection_methods:
76  - "Content analysis"
77  - "Sender analysis"
78id: "02d7301f-cc29-5031-9a1e-f013400805ba"
to-top