Business Email Compromise (BEC) attempt from untrusted sender

Detects potential Business Email Compromise (BEC) attacks by analyzing text within the email body from first-time senders.

Sublime rule (View on GitHub)

 1name: "Business Email Compromise (BEC) attempt from untrusted sender"
 2description: |
 3    Detects potential Business Email Compromise (BEC) attacks by analyzing text within the email body from first-time senders.
 4type: "rule"
 5severity: "medium"
 6source: |
 7  type.inbound
 8  and any(ml.nlu_classifier(body.current_thread.text).intents,
 9          .name in ("bec") and .confidence == "high"
10  )
11  // negating legit replies
12  and not (
13    (
14      strings.istarts_with(subject.subject, "RE:")
15      // out of office auto-reply
16      // the NLU model will handle these better natively soon
17      or strings.istarts_with(subject.subject, "Automatic reply:")
18      or regex.imatch(subject.subject, '(\[[^\]]+\]\s?){0,3}(re|fwd?|automat.*)\s?:.*')
19    )
20    and (
21      length(headers.references) > 0
22      or any(headers.hops, any(.fields, strings.ilike(.name, "In-Reply-To")))
23    )
24  )
25  and (
26    not profile.by_sender().solicited
27    or (
28      profile.by_sender().any_messages_malicious_or_spam
29      and not profile.by_sender().any_false_positives
30    )
31  )
32  
33  // negate highly trusted sender domains unless they fail DMARC authentication
34  and (
35    (
36      sender.email.domain.root_domain in $high_trust_sender_root_domains
37      and not headers.auth_summary.dmarc.pass
38    )
39    or sender.email.domain.root_domain not in $high_trust_sender_root_domains
40  )  
41
42attack_types:
43  - "BEC/Fraud"
44tactics_and_techniques:
45  - "Social engineering"
46detection_methods:
47  - "Content analysis"
48  - "Header analysis"
49  - "Natural Language Understanding"
50  - "Sender analysis"
51id: "96d4c35a-ca53-559e-9db3-349dbbdffc20"
to-top