Suspicious recipients pattern with no Compauth pass and suspicious content

Detects messages with undisclosed recipients (likely all bcc), where the Compauth verdict is not 'pass', and ML has identified suspicious language or credential phishing links.

Sublime rule (View on GitHub)

 1name: "Suspicious recipients pattern with no Compauth pass and suspicious content"
 2description: "Detects messages with undisclosed recipients (likely all bcc), where the Compauth verdict is not 'pass', and ML has identified suspicious language or credential phishing links."
 3type: "rule"
 4severity: "medium"
 5source: |
 6  type.inbound
 7  and (
 8    length(recipients.to) == 0
 9    or all(recipients.to, .display_name == "Undisclosed recipients")
10  )
11  and length(recipients.cc) == 0
12  and length(recipients.bcc) == 0
13  and 2 of (
14    (
15      any(headers.hops,
16          .authentication_results.compauth.verdict is not null
17          and .authentication_results.compauth.verdict not in ("pass", "softpass")
18      )
19    ),
20    (
21      any(ml.nlu_classifier(body.current_thread.text).intents,
22          .name in ("bec", "cred_theft", "advance_fee") and .confidence == "high"
23      )
24    ),
25    (
26      any(body.links,
27          any([ml.link_analysis(.)],
28              .credphish.disposition == "phishing"
29              and .credphish.confidence in ("high")
30          )
31      )
32    )
33  )
34  and (
35    profile.by_sender().prevalence in ("new", "outlier")
36    or (
37      profile.by_sender().any_messages_malicious_or_spam
38      and not profile.by_sender().any_messages_benign
39    )
40  )
41  // negate highly trusted sender domains unless they fail DMARC authentication
42  and (
43    (
44      sender.email.domain.root_domain in $high_trust_sender_root_domains
45      and not headers.auth_summary.dmarc.pass
46    )
47    or sender.email.domain.root_domain not in $high_trust_sender_root_domains
48  )  
49detection_methods:
50  - "Content analysis"
51  - "Computer Vision"
52  - "Header analysis"
53  - "Natural Language Understanding"
54  - "URL analysis"
55  - "URL screenshot"
56id: "34fb65f6-03e8-5752-b602-4f294172b5db"
to-top