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 .text in ("AAA", "Medicare Kit", "Blackstone Griddle")
14    )
15    or any(ml.nlu_classifier(body.current_thread.text).entities,
16           .name == "sender"
17           and (
18             strings.icontains(.text, "sam's club", "kobalt", "ace hardware")
19             or regex.icontains(.text, "lowe\'s.{0,10}reward")
20           )
21    )
22    or any(ml.nlu_classifier(body.current_thread.text).entities,
23           .name == "request"
24           and regex.icontains(.text, 'claim\s+your\s+(?:free|medical)?\s+kit')
25    )
26    or length(filter(ml.nlu_classifier(body.current_thread.text).entities,
27                     .name == "financial"
28                     and regex.icontains(.text, '\d{2}%\s*discount$')
29              )
30    ) >= 2
31  )
32  and any(ml.nlu_classifier(body.current_thread.text).topics,
33          .name == "Advertising and Promotions" and .confidence != "low"
34  )
35  and any(ml.nlu_classifier(body.current_thread.text).entities,
36          .name in ("request", "org") and strings.icontains(.text, "survey")
37  )
38  and not (
39    sender.email.domain.root_domain in ("barracudanetworks.com")
40    and coalesce(headers.auth_summary.dmarc.pass, false)
41  )
42  // and the sender is not from high trust sender root domains
43  and not (
44    sender.email.domain.root_domain in $high_trust_sender_root_domains
45    and coalesce(headers.auth_summary.dmarc.pass, false)
46  )  
47attack_types:
48  - "Credential Phishing"
49tactics_and_techniques:
50  - "Social engineering"
51  - "Impersonation: Brand"
52  - "Spoofing"
53detection_methods:
54  - "Content analysis"
55  - "Header analysis"
56  - "Natural Language Understanding"
57  - "Sender analysis"
58id: "ea1c0e09-ef3d-5c30-b5c1-ffa1b71a7b88"
to-top