Brand impersonation: Survey request with credential theft indicators

Detects messages containing credential theft language disguised as survey requests from promotional content, targeting organizations from untrusted or spoofed high-trust domains.

Sublime rule (View on GitHub)

 1name: "Brand impersonation: Survey request with credential theft indicators"
 2description: "Detects messages containing credential theft language disguised as survey requests from promotional content, targeting organizations from untrusted or spoofed high-trust domains."
 3type: "rule"
 4severity: "medium"
 5source: |
 6  type.inbound
 7  and (
 8    any(ml.nlu_classifier(body.current_thread.text).intents,
 9        .name == "cred_theft" and .confidence == "high"
10    )
11    or any(ml.nlu_classifier(body.current_thread.text).entities,
12           .name == "org"
13           and (
14             .text in ("AAA")
15             or strings.icontains(.text,
16                                  'colgate',
17                                  'medicare kit',
18                                  'blackstone griddle',
19                                  'oral-b',
20                                  'united healthcare',
21                                  'dewalt tower tool box'
22             )
23           )
24    )
25    or any(ml.nlu_classifier(body.current_thread.text).entities,
26           .name == "sender"
27           and (
28             strings.icontains(.text, "sam's club", "kobalt", "ace hardware")
29             or regex.icontains(.text, "lowe\'s.{0,10}reward")
30           )
31    )
32    or any(ml.nlu_classifier(body.current_thread.text).entities,
33           .name == "request"
34           and regex.icontains(.text, 'claim\s+your\s+(?:free|medical)?\s+kit')
35    )
36    or length(filter(ml.nlu_classifier(body.current_thread.text).entities,
37                     .name == "financial"
38                     and regex.icontains(.text, '\d{2}%\s*discount$')
39              )
40    ) >= 2
41  )
42  and any(ml.nlu_classifier(body.current_thread.text).topics,
43          .name == "Advertising and Promotions" and .confidence != "low"
44  )
45  and any(ml.nlu_classifier(body.current_thread.text).entities,
46          .name in ("request", "org")
47          and strings.icontains(.text, "survey", "share\nyour feedback")
48  )
49  and not (
50    sender.email.domain.root_domain in ("barracudanetworks.com")
51    and coalesce(headers.auth_summary.dmarc.pass, false)
52  )
53  // and the sender is not from high trust sender root domains
54  and not (
55    sender.email.domain.root_domain in $high_trust_sender_root_domains
56    and coalesce(headers.auth_summary.dmarc.pass, false)
57  )  
58attack_types:
59  - "Credential Phishing"
60tactics_and_techniques:
61  - "Social engineering"
62  - "Impersonation: Brand"
63  - "Spoofing"
64detection_methods:
65  - "Content analysis"
66  - "Header analysis"
67  - "Natural Language Understanding"
68  - "Sender analysis"
69id: "ea1c0e09-ef3d-5c30-b5c1-ffa1b71a7b88"
to-top