1+ name : " PR# 4498 - Link: Generic financial document and suspicious hosting template"
2+ description : " Detects messages with generic 'dear sir/madam' greetings that reference payment releases & timelines, contain links with suspicious hosting or open redirects, and exhibit unusual recipient patterns such as self-sending or missing recipients."
3+ type : " rule"
4+ severity : " medium"
5+ source : |
6+ type.inbound
7+ // standard generic greeting
8+ and (
9+ strings.istarts_with(body.current_thread.text, "dear sir/madam")
10+ // expectation of time
11+ and regex.icontains(body.current_thread.text,
12+ 'will be released|\b[1-4].[1-4]\b.{1,10}days?'
13+ )
14+ )
15+ // link is malicious
16+ and any(body.links,
17+ // key phrasing or nlu
18+ (
19+ regex.icontains(.display_text,
20+ '(?:access|view).{0,10}|payment|statement'
21+ )
22+ or any(ml.nlu_classifier(body.current_thread.text).topics,
23+ .name == "Request to View Invoice" and .confidence != "low"
24+ )
25+ )
26+ // suspicious hosting
27+ and (
28+ .href_url.domain.root_domain in $free_file_hosts
29+ or .href_url.domain.tld in $suspicious_tlds
30+ or .href_url.domain.root_domain not in $tranco_1m
31+ // open redirect
32+ or strings.icontains(.href_url.query_params, '=https')
33+ )
34+ // negate org domains
35+ and .href_url.domain.valid != false
36+ and .href_url.domain.root_domain not in $org_domains
37+ )
38+ // suspicious sender behavior
39+ and (
40+ (
41+ length(recipients.to) == 1
42+ and length(recipients.cc) == 0
43+ and sender.email.email == recipients.to[0].email.email
44+ )
45+ // no recipient
46+ or (
47+ (
48+ length(recipients.to) == 0
49+ and length(recipients.bcc) == 0
50+ and length(recipients.cc) == 0
51+ )
52+ or any(recipients.to,
53+ strings.ilike(.display_name, "undisclosed?recipients")
54+ )
55+ )
56+ )
57+
58+ attack_types :
59+ - " BEC/Fraud"
60+ - " Credential Phishing"
61+ tactics_and_techniques :
62+ - " Free file host"
63+ - " Open redirect"
64+ - " Social engineering"
65+ - " Evasion"
66+ detection_methods :
67+ - " Content analysis"
68+ - " Natural Language Understanding"
69+ - " URL analysis"
70+ - " Header analysis"
71+ - " Sender analysis"
72+ id : " 1a6e4ced-4391-597f-9184-d4d1c57dedc7"
73+ tags :
74+ - created_from_open_prs
75+ - rule_status_added
76+ - pr_author_missingn0pe
77+ references :
78+ - https://github.com/sublime-security/sublime-rules/pull/4498
0 commit comments