Brand impersonation: FedEx
Impersonation of the shipping provider FedEx.
Sublime rule (View on GitHub)
1name: "Brand impersonation: FedEx"
2description: |
3 Impersonation of the shipping provider FedEx.
4references:
5 - "https://www.fedex.com/en-us/trust-center/report-fraud/fraudulent-email-examples.html"
6type: "rule"
7severity: "low"
8source: |
9 type.inbound
10 and (
11 sender.display_name in~ ('fedex', 'fedex shipment', 'fedex tracking updates')
12 or strings.ilevenshtein(sender.display_name, 'fedex') <= 1
13 or regex.imatch(sender.display_name, 'fed-?ex.*')
14 or strings.ilike(sender.email.domain.domain, '*fedex*')
15 or (
16 any(ml.nlu_classifier(body.current_thread.text).entities,
17 .name == "sender" and regex.imatch(.text, 'fedex\s+\w+.*')
18 )
19 and any(ml.nlu_classifier(body.current_thread.text).entities,
20 .name == "urgency"
21 )
22 )
23 or (
24 any(ml.logo_detect(file.message_screenshot()).brands, .name == "FedEx")
25 and (
26 any(ml.nlu_classifier(body.current_thread.text).entities,
27 .name == "request" and strings.icontains(.text, "signature")
28 )
29 or strings.istarts_with(body.current_thread.text, 'FedEx')
30 )
31 )
32 or 2 of (
33 strings.icontains(body.current_thread.text, "FedEx"),
34 strings.icontains(body.current_thread.text, "942 South Shady Grove Road"),
35 strings.icontains(body.current_thread.text, "3620 Hacks Cross Road"),
36 strings.icontains(body.current_thread.text, "Memphis, TN")
37 )
38 )
39 and not (
40 sender.email.domain.root_domain in~ (
41 'fedex.com',
42 'fedexfreight.com', // added 2026-05-08
43 'cj.com', // CJ is a global affiliate marketing network
44 'sedex.com', // sedex.com is not affiliated with FedEx, but is an apparent FP
45 'myworkday.com',
46 'billtrust.com',
47 'flying-cargo.rs', // Serbian arm of Fedex (https://www.fedex.com/en-rs/customer-support.html)
48 'confirmit.com', // survey/market research company
49 'centercode.com' // survey company
50 )
51 and coalesce(headers.auth_summary.dmarc.pass, false)
52 )
53 and (
54 not profile.by_sender().any_messages_benign
55 and not profile.by_sender().solicited
56 )
57
58 // negate highly trusted sender domains unless they fail DMARC authentication
59 and not (
60 sender.email.domain.root_domain in $high_trust_sender_root_domains
61 and coalesce(headers.auth_summary.dmarc.pass, false)
62 )
63
64attack_types:
65 - "Credential Phishing"
66tactics_and_techniques:
67 - "Impersonation: Brand"
68 - "Lookalike domain"
69 - "Social engineering"
70detection_methods:
71 - "Header analysis"
72 - "Sender analysis"
73id: "94a2b602-2bc1-5ea3-941e-752e3a2235cf"