Detection rules › Sublime MQL
Brand impersonation: Robert Half
Detects messages impersonating Robert Half, a staffing and recruiting company, by analyzing sender display names, logo detection in message screenshots, and specific company address references in the message body. The rule flags messages from senders not authenticated from legitimate Robert Half domains.
Threat classification
Sublime's own taxonomy (not MITRE ATT&CK).
| Category | Values |
|---|---|
| Attack types | BEC/Fraud, Credential Phishing |
| Tactics and techniques | Impersonation: Brand, Social engineering |
Event coverage
Rule body MQL
type.inbound
and (
strings.icontains(sender.display_name, "Robert Half")
or (
any(ml.logo_detect(file.message_screenshot()).brands,
.name == "Robert Half"
)
and strings.icontains(sender.display_name, "Robert Half")
)
or 2 of (
strings.icontains(body.current_thread.text, 'Robert Half'),
strings.icontains(body.current_thread.text, '2884 Sand Hill Road'),
strings.icontains(body.current_thread.text, 'Menlo Park, CA 94025')
)
)
// not a forward or reply
and (headers.in_reply_to is null or length(headers.references) == 0)
and not any(ml.nlu_classifier(body.current_thread.text).topics,
.name in (
"Newsletters and Digests",
"Voicemail Call and Missed Call Notifications",
"Advertising and Promotions"
)
and .confidence != "low"
)
// and the sender is not in org_domains or from Robert Half domains and passes auth
and not (
sender.email.domain.root_domain in $org_domains
or (
sender.email.domain.root_domain in (
"roberthalf.com",
"roberthalf.be",
"service-now.com",
"protiviti.com",
"atlassian.net",
"workday.com",
"myworkday.com"
)
and headers.auth_summary.dmarc.pass
)
)
Detection logic
Scope: inbound message.
Detects messages impersonating Robert Half, a staffing and recruiting company, by analyzing sender display names, logo detection in message screenshots, and specific company address references in the message body. The rule flags messages from senders not authenticated from legitimate Robert Half domains.
- inbound message
any of:
- sender.display_name contains 'Robert Half'
all of:
any of
ml.logo_detect(file.message_screenshot()).brandswhere:- .name is 'Robert Half'
- sender.display_name contains 'Robert Half'
at least 2 of:
- body.current_thread.text contains 'Robert Half'
- body.current_thread.text contains '2884 Sand Hill Road'
- body.current_thread.text contains 'Menlo Park, CA 94025'
any of:
- headers.in_reply_to is missing
- length(headers.references) is 0
not:
any of
ml.nlu_classifier(body.current_thread.text).topicswhere all hold:- .name in ('Newsletters and Digests', 'Voicemail Call and Missed Call Notifications', 'Advertising and Promotions')
- .confidence is not 'low'
none of:
- sender.email.domain.root_domain in $org_domains
all of:
- sender.email.domain.root_domain in ('roberthalf.com', 'roberthalf.be', 'service-now.com', 'protiviti.com', 'atlassian.net', 'workday.com', 'myworkday.com')
- headers.auth_summary.dmarc.pass
Inspects: body.current_thread.text, headers.auth_summary.dmarc.pass, headers.in_reply_to, headers.references, sender.display_name, sender.email.domain.root_domain, type.inbound. Sensors: file.message_screenshot, ml.logo_detect, ml.nlu_classifier, strings.icontains. Reference lists: $org_domains.
Indicators matched (14)
| Field | Match | Value |
|---|---|---|
strings.icontains | substring | Robert Half |
ml.logo_detect(file.message_screenshot()).brands[].name | equals | Robert Half |
strings.icontains | substring | 2884 Sand Hill Road |
strings.icontains | substring | Menlo Park, CA 94025 |
ml.nlu_classifier(body.current_thread.text).topics[].name | member | Newsletters and Digests |
ml.nlu_classifier(body.current_thread.text).topics[].name | member | Voicemail Call and Missed Call Notifications |
ml.nlu_classifier(body.current_thread.text).topics[].name | member | Advertising and Promotions |
sender.email.domain.root_domain | member | roberthalf.com |
sender.email.domain.root_domain | member | roberthalf.be |
sender.email.domain.root_domain | member | service-now.com |
sender.email.domain.root_domain | member | protiviti.com |
sender.email.domain.root_domain | member | atlassian.net |
2 more
sender.email.domain.root_domain | member | workday.com |
sender.email.domain.root_domain | member | myworkday.com |