Credential phishing content and link (untrusted sender)
Message contains credential theft language and a link to a credential phishing page from an unknown sender. We use Link Analysis in aggressive mode to increase our chances of scanning.
Sublime rule (View on GitHub)
1name: "Credential phishing content and link (untrusted sender)"
2description: |
3 Message contains credential theft language and a link to a credential phishing page from an unknown sender.
4 We use Link Analysis in aggressive mode to increase our chances of scanning.
5type: "rule"
6severity: "high"
7source: |
8 type.inbound
9 and (
10 any(ml.nlu_classifier(body.current_thread.text).intents,
11 .name == "cred_theft" and .confidence in ("medium", "high")
12 )
13 // embedded in an image attachment
14 // note: don't use message_screenshot() for now
15 // because it's not limited to current_thread and may FP
16 or any(attachments,
17 .file_type in $file_types_images
18 and any(file.explode(.),
19 any(ml.nlu_classifier(.scan.ocr.raw).intents,
20 .name == "cred_theft" and .confidence in ("medium", "high")
21 )
22 )
23 )
24 )
25 and any(body.links,
26 .href_url.domain.domain != "play.google.com"
27 and ml.link_analysis(., mode="aggressive").effective_url.domain.domain != "play.google.com"
28 and ml.link_analysis(., mode="aggressive").credphish.disposition == "phishing"
29 and ml.link_analysis(., mode="aggressive").credphish.confidence in (
30 "medium",
31 "high"
32 )
33 and not .href_url.domain.root_domain == "c3reservations.com"
34 )
35 and (
36 (
37 profile.by_sender().prevalence in ("new", "outlier")
38 and not profile.by_sender().solicited
39 )
40 or (
41 profile.by_sender().any_messages_malicious_or_spam
42 and not profile.by_sender().any_false_positives
43 )
44 )
45
46 // negate docusign 'via' messages
47 and not (
48 any(headers.hops,
49 any(.fields,
50 .name == "X-Api-Host" and strings.ends_with(.value, "docusign.net")
51 )
52 )
53 and strings.contains(sender.display_name, "via")
54 )
55
56 // negate docusign originated emails
57 and not any(headers.hops,
58 regex.imatch(.received.server.raw, ".+.docusign.(net|com)")
59 )
60
61 // negate highly trusted sender domains unless they fail DMARC authentication
62 and (
63 (
64 sender.email.domain.root_domain in $high_trust_sender_root_domains
65 and not headers.auth_summary.dmarc.pass
66 )
67 or sender.email.domain.root_domain not in $high_trust_sender_root_domains
68 )
69
70attack_types:
71 - "Credential Phishing"
72tactics_and_techniques:
73 - "Social engineering"
74detection_methods:
75 - "Computer Vision"
76 - "Sender analysis"
77 - "URL analysis"
78 - "URL screenshot"
79id: "f0c95bb7-afeb-5c8d-a654-74b5e026007f"