Brand impersonation: Microsoft logo or suspicious language with open redirect
Message contains a Microsoft logo or suspicious terms and use of an open redirect. This has been exploited in the wild to impersonate Microsoft.
Sublime rule (View on GitHub)
1name: "Brand impersonation: Microsoft logo or suspicious language with open redirect"
2description: |
3 Message contains a Microsoft logo or suspicious terms and use of an open redirect. This has been exploited in the wild to impersonate Microsoft.
4type: "rule"
5severity: "high"
6source: |
7 type.inbound
8 and (length(attachments) < 5 or length(body.links) < 10)
9 // Microsoft logo
10 and (
11 any(attachments,
12 .file_type in $file_types_images
13 and any(ml.logo_detect(.).brands, strings.starts_with(.name, "Microsoft"))
14 )
15 or any(attachments,
16 .file_type in $file_types_images
17 and (
18 any(file.explode(.),
19 2 of (
20 strings.ilike(.scan.ocr.raw, "*password*"),
21 strings.ilike(.scan.ocr.raw, "*unread messages*"),
22 strings.ilike(.scan.ocr.raw, "*Shared Documents*"),
23 strings.ilike(.scan.ocr.raw, "*expiration*"),
24 strings.ilike(.scan.ocr.raw, "*office*"),
25 strings.ilike(.scan.ocr.raw, "*expire*"),
26 strings.ilike(.scan.ocr.raw, "*expiring*"),
27 strings.ilike(.scan.ocr.raw, "*kindly*"),
28 strings.ilike(.scan.ocr.raw, "*renew*"),
29 strings.ilike(.scan.ocr.raw, "*review"),
30 strings.ilike(.scan.ocr.raw, "*emails failed*"),
31 strings.ilike(.scan.ocr.raw, "*kicked out*"),
32 strings.ilike(.scan.ocr.raw, "*prevented*"),
33 strings.ilike(.scan.ocr.raw, "*storage quota*"),
34 strings.ilike(.scan.ocr.raw, "*required now"),
35 strings.ilike(.scan.ocr.raw, "*cache*"),
36 strings.ilike(.scan.ocr.raw, "*qr code*"),
37 strings.ilike(.scan.ocr.raw, "*barcode*"),
38 strings.ilike(.scan.ocr.raw, "*security update*"),
39 strings.ilike(.scan.ocr.raw, "*quarantine*")
40 )
41 )
42 )
43 )
44 )
45
46 // open redirect
47 and any(body.links,
48 any(.href_url.rewrite.encoders, strings.icontains(., "open_redirect"))
49 and not .href_url.domain.root_domain in $org_domains
50 )
51 and (
52 not profile.by_sender().solicited
53 or profile.by_sender().any_messages_malicious_or_spam
54 )
55 and not (
56 length(headers.references) > 0
57 or any(headers.hops, any(.fields, strings.ilike(.name, "In-Reply-To")))
58 )
59 and sender.email.domain.root_domain not in $org_domains
60 and sender.email.domain.root_domain not in (
61 "bing.com",
62 "microsoft.com",
63 "microsoftonline.com",
64 "microsoftstoreemail.com",
65 "microsoftsupport.com",
66 "microsoft365.com",
67 "office.com",
68 "onedrive.com",
69 "sharepointonline.com",
70 "yammer.com"
71 )
72
73attack_types:
74 - "BEC/Fraud"
75tactics_and_techniques:
76 - "Impersonation: Brand"
77 - "Open redirect"
78 - "Social engineering"
79detection_methods:
80 - "Computer Vision"
81 - "Content analysis"
82 - "Header analysis"
83 - "Natural Language Understanding"
84 - "Sender analysis"
85 - "URL analysis"
86id: "27b8d8d8-a117-5d34-b4b0-9adb7c7c971e"