Benefits enrollment impersonation
Detects messages about benefit enrollment periods and healthcare selections from external senders that contain urgent language or requests for action. Excludes legitimate HR communications, marketing mailers, and trusted sender domains with valid authentication.
Sublime rule (View on GitHub)
1name: "Benefits enrollment impersonation"
2description: "Detects messages about benefit enrollment periods and healthcare selections from external senders that contain urgent language or requests for action. Excludes legitimate HR communications, marketing mailers, and trusted sender domains with valid authentication."
3type: "rule"
4severity: "high"
5source: |
6 type.inbound
7 and sender.email.domain.domain not in $org_domains
8 and (
9 length(body.current_thread.text) < 5000 or body.current_thread.text is null
10 )
11 and (
12 regex.icontains(subject.subject,
13 '(open|benefits?) enrol{1,2}ment', // catches both enrolment and enrollment
14 'benefit(s)?.{0,10}(?:plan|choice|selection|deadline|period|summary|wellness)',
15 'hr benefits',
16 'annual enrol{1,2}ment',
17 'healthcare (choice|selection|opt.?in)',
18 '(fsa|hsa|401k) (enrol{1,2}ment|selection)',
19 'dependent (coverage|verification)',
20 '(health|dental|vision|insurance|medical) enrol{1,2}ment'
21 )
22 or any(ml.nlu_classifier(subject.base).topics,
23 (.name == "Benefit Enrollment" and .confidence == "high")
24 and (.name == "Health and Wellness" and .confidence != "low")
25 )
26 or regex.icontains(body.current_thread.text,
27 'benefit(s)? (plan|choice|selection|deadline|period)',
28 'hr benefits',
29 'annual enrol{1,2}ment',
30 'healthcare (choice|selection|opt.?in)',
31 '(fsa|hsa|401k) (enrol{1,2}ment|selection)',
32 'dependent (coverage|verification)',
33 '(health|dental|vision|insurance|medical) enrol{1,2}ment',
34 '(urgent|immediate) action required.{0,20}(benefit|enrol{1,2}ment)',
35 'coverage.{0,20}(expire|terminate)',
36 'last (day|chance).{0,20}(enrol{1,2}|select)',
37 '(login|sign.?in).{0,20}(benefit portal|hr portal)',
38 '(verify|update|confirm).{0,20}(benefit.{0,20}selection)'
39 )
40 or any(attachments,
41 regex.icontains(.file_name,
42 'fileDoc-Review',
43 '(open|benefits?) enrol{1,2}ment',
44 'annual enrol{1,2}ment',
45 '(fsa|hsa|401k) (enrol{1,2}ment|selection)',
46 '(urgent|immediate) action required.{0,20}(benefit|enrol{1,2}ment)',
47 )
48 )
49 )
50 and 2 of (
51 any(ml.nlu_classifier(body.current_thread.text).entities,
52 .name in ("urgency", "request")
53 ),
54 any(ml.nlu_classifier(body.current_thread.text).intents, .name != "benign"),
55 (
56 (length(body.current_thread.text) < 250 and length(attachments) == 1)
57 or (body.current_thread.text is null and length(attachments) == 1)
58 ),
59 // lure in attachment
60 (
61 any(attachments,
62 (
63 .file_type in $file_types_images
64 or .file_type in ("pdf", "docx", "doc")
65 or .file_extension in $file_extensions_macros
66 )
67 and any(filter(file.explode(.), .scan.ocr.raw is not null),
68 (
69 any(ml.nlu_classifier(.scan.ocr.raw).intents,
70 .name != "benign"
71 )
72 and any(ml.nlu_classifier(.scan.ocr.raw).entities,
73 .name in ("urgency", "request")
74 )
75 )
76 )
77 )
78 )
79 )
80 // negate replies
81 and (length(headers.references) == 0 or headers.in_reply_to is null)
82
83 // Negate common marketing mailers
84 and not regex.icontains(sender.display_name,
85 'HR (?:Events|Expert|Support Center|Studies|Knowledge Cloud|News Library|Crowd|Solutions|Interests)|HR and People Operations'
86 )
87 and not (
88 // Constant Contact
89 any(headers.hops,
90 strings.icontains(.authentication_results.spf_details.designator,
91 "constantcontact.com"
92 )
93 )
94 or any(headers.hops,
95 strings.icontains(.received_spf.designator, "constantcontact.com")
96 )
97 or (
98 (
99 any(headers.hops,
100 .index == 0
101 and any(.authentication_results.dkim_details,
102 .domain == "auth.ccsend.com"
103 )
104 )
105 )
106 and headers.auth_summary.dmarc.pass
107 )
108 or any(headers.references, strings.iends_with(., "ccsend.com"))
109 // Hubspot
110 or any(headers.hops,
111 strings.icontains(.authentication_results.spf_details.designator,
112 "hubspotemail.net"
113 )
114 )
115 )
116 and sender.email.domain.root_domain not in~ (
117 'medicare.gov',
118 'farmers.com',
119 'uhc.com',
120 'blueshieldca.com',
121 'corestream.com'
122 )
123 and (
124 profile.by_sender().prevalence in ("new", "outlier")
125 or (
126 profile.by_sender().any_messages_malicious_or_spam
127 and not profile.by_sender().any_messages_benign
128 )
129 )
130 // negate highly trusted sender domains unless they fail DMARC authentication
131 and not (
132 sender.email.domain.root_domain in $high_trust_sender_root_domains
133 and coalesce(headers.auth_summary.dmarc.pass, false)
134 )
135attack_types:
136 - "Credential Phishing"
137tactics_and_techniques:
138 - "Evasion"
139 - "Impersonation: Employee"
140 - "Out of band pivot"
141 - "Social engineering"
142detection_methods:
143 - "Content analysis"
144 - "Header analysis"
145 - "Sender analysis"
146id: "5a6eb5a8-2d91-5ed8-a0d2-fb3cc2fef40b"