Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions detection-rules/impersonate_org_domain_fail_auth.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: "Brand impersonation: Organizational domain with authentication failure and no-reply sender"
description: "Detects messages from senders using organizational domains that fail DMARC authentication, originate from no-reply addresses, and contain credential theft language in the body text or message screenshot."
type: "rule"
severity: "medium"
source: |
type.inbound
// sender domain in $org_domains and fails auth
and (
sender.email.domain.domain in $org_domains
and not headers.auth_summary.dmarc.pass
)
// from a "no reply" sender
and regex.icontains(sender.email.local_part,
'noreply|no-reply|donotreply|do-not-reply'
)
and (
// message contains links that don't direct to org domains
length(body.links) > 0
and not any(body.links, .href_url.domain.domain in $org_domains)
)
// cred theft intent but exclude legitimate business contexts
and (
any(ml.nlu_classifier(body.current_thread.text).intents,
.name == "cred_theft" and .confidence == "high"
)
or (
length(body.current_thread.text) == 0
and any(ml.nlu_classifier(beta.ocr(file.message_screenshot()).text).intents,
.name == "cred_theft" and .confidence == "high"
)
)
)
and any(ml.nlu_classifier(body.current_thread.text).topics,
.name == "File Sharing and Cloud Services" and .confidence == "high"
)

attack_types:
- "Credential Phishing"
tactics_and_techniques:
- "Spoofing"
- "Social engineering"
detection_methods:
- "Header analysis"
- "Natural Language Understanding"
- "Optical Character Recognition"
- "Sender analysis"
id: "58ca900b-df16-5125-a5de-e64a7a1bfda3"
Loading