1+ name : " VIP impersonation with invoicing request"
2+ description : " This rule detects emails attempting to impersonate a VIP, it leverages NLU to determine if there is invoicing verbiage in the current thread, and requires request language."
3+ type : " rule"
4+ severity : " high"
5+ source : |
6+ type.inbound
7+ and any($org_vips,
8+ strings.contains(sender.display_name, .display_name)
9+ or strings.contains(sender.display_name,
10+ strings.concat(.first_name, " ", .last_name)
11+ )
12+ or strings.contains(sender.display_name,
13+ strings.concat(.last_name, ", ", .first_name)
14+ )
15+ )
16+ and (
17+ (
18+ sender.email.domain.domain in $org_domains
19+ // X-headers indicate external sender
20+ and headers.x_authenticated_sender.email != sender.email.email
21+ and headers.x_authenticated_domain.domain not in $org_domains
22+ )
23+ or sender.email.domain.domain not in $org_domains
24+ )
25+
26+ // Invoice Language with a request
27+ and (
28+ any(ml.nlu_classifier(body.current_thread.text).tags,
29+ .name == "invoice"
30+ and .confidence in ("medium", "high")
31+ and any(ml.nlu_classifier(body.current_thread.text).entities,
32+ .name == "request"
33+ )
34+ )
35+ )
36+
37+ // and the reply to email address has never been contacted
38+ and any(headers.reply_to, .email.email not in $recipient_emails)
39+
40+ // negate highly trusted sender domains unless they fail DMARC authentication
41+ and (
42+ (
43+ sender.email.domain.root_domain in $high_trust_sender_root_domains
44+ and not headers.auth_summary.dmarc.pass
45+ )
46+ or sender.email.domain.root_domain not in $high_trust_sender_root_domains
47+ )
48+ attack_types :
49+ - " BEC/Fraud"
50+ tactics_and_techniques :
51+ - " Impersonation: VIP"
52+ detection_methods :
53+ - " Content analysis"
54+ - " Header analysis"
55+ - " Natural Language Understanding"
56+ id : " ced9bb2d-3bc2-59d0-ab4c-48cc1bba975c"
57+ og_id : " a60f89a0-6cd0-5c2d-96de-8800380df407"
58+ testing_pr : 4513
59+ testing_sha : 90a3176084fd25d367a7582d78b2cd7bb9c4b8b5
0 commit comments