Brand impersonation: Quickbooks

Impersonation of the Quickbooks service from Intuit.

Sublime rule (View on GitHub)

 1name: "Brand impersonation: Quickbooks"
 2description: "Impersonation of the Quickbooks service from Intuit."
 3type: "rule"
 4severity: "medium"
 5source: |
 6  type.inbound
 7  and (
 8    (
 9      strings.ilike(sender.display_name, '*quickbooks*')
10      or strings.ilevenshtein(sender.display_name, 'quickbooks') <= 1
11      or strings.ilike(sender.email.domain.domain, '*quickbooks*')
12    )
13    or strings.ilike(body.current_thread.text, "*invoice*")
14  )
15  and (
16    any(ml.logo_detect(beta.message_screenshot()).brands,
17        .name == "Quickbooks" and .confidence in ("medium", "high")
18    )
19    // contains the address and copyright 
20    or 
21    (
22      strings.icontains(body.current_thread.text,
23                        '2800 E. Commerce Center Place, Tucson, AZ 85706'
24      )
25      and regex.icontains(body.current_thread.text, '©\s*(?:\d+)\s*Intuit')
26    )
27    or strings.icontains(body.current_thread.text, 'Powered by QuickBooks')
28  )
29  and sender.email.domain.root_domain not in~ (
30    'intuit.com',
31    'turbotax.com',
32    'intuit.ca',
33    'meliopayments.com',
34    'qemailserver.com',
35    'intuit.co.uk',
36    'quickbooksonline.com',
37    'tsheets.com'
38  )
39  and (
40    not profile.by_sender().any_false_positives
41    and not profile.by_sender().solicited
42  )
43  // links in body are not known QB domains or the senders root website (both indicative of a legitimate QuickBooks invoice message)
44  and (
45    length(filter(body.links,
46                  .href_url.domain.root_domain in~ (
47                    'intuit.com',
48                    'turbotax.com',
49                    'intuit.ca',
50                    'meliopayments.com',
51                    'qemailserver.com',
52                    'intuit.co.uk',
53                    'quickbooksonline.com'
54                  )
55                  or (
56                    .href_url.domain.domain == sender.email.domain.domain
57                    and (.href_url.path is null or .href_url.path == "/")
58                  )
59           )
60    ) != length(body.links)
61    // or no valid links
62    or length(filter(body.links, .href_url.domain.domain is not null)) == 0
63  )
64  // negate common sender of quickbooks reseller
65  and not strings.icontains(body.current_thread.text, 'Purchasing Reviews, Inc')
66  // negate highly trusted sender domains unless they fail DMARC authentication
67  and (
68    (
69      sender.email.domain.root_domain in $high_trust_sender_root_domains
70      and not headers.auth_summary.dmarc.pass
71    )
72    or sender.email.domain.root_domain not in $high_trust_sender_root_domains
73  )  
74attack_types:
75  - "Callback Phishing"
76  - "Credential Phishing"
77tactics_and_techniques:
78  - "Impersonation: Brand"
79  - "Social engineering"
80detection_methods:
81  - "Computer Vision"
82  - "Content analysis"
83  - "Header analysis"
84  - "Sender analysis"
85id: "4fd791d1-a053-5c2d-80dd-c6dcdc112a62"
to-top