diff --git a/detection-rules/impersonation_chrome_web_store_policy.yml b/detection-rules/impersonation_chrome_web_store_policy.yml new file mode 100644 index 00000000000..52924d4a4ba --- /dev/null +++ b/detection-rules/impersonation_chrome_web_store_policy.yml @@ -0,0 +1,76 @@ +name: "Impersonation: Chrome Web Store Policy" +description: "Detects messages impersonating Chrome Web Store policy communications, including fake extension security alerts and policy acceptance requests. Messages using observed domains and specific HTML formatting patterns typical of this impersonation." +references: + - "https://www.cyberhaven.com/engineering-blog/cyberhavens-preliminary-analysis-of-the-recent-malicious-chrome-extension" + - "https://www.bleepingcomputer.com/news/security/new-details-reveal-how-hackers-hijacked-35-google-chrome-extensions/" +type: "rule" +severity: "low" +source: | + type.inbound + // all observed sender.email.domain have had MX records pointing to smtp.google.com + and strings.ends_with(headers.message_id, '@mail.gmail.com>') + and sender.email.domain.domain != 'gmail.com' + and ( + // subject and sender + sender.email.domain.root_domain in ( + "chromeforextension.com", + "forextensions.com", + "supportchromestore.com" + ) + or ( + 2 of ( + strings.icontains(sender.email.domain.root_domain, 'chrome'), + strings.icontains(sender.email.domain.root_domain, 'support'), + strings.icontains(sender.email.domain.root_domain, 'extension'), + strings.icontains(sender.email.domain.root_domain, 'webstore') + ) + ) + or strings.icontains(sender.email.local_part, 'chromewebstore') + or strings.icontains(sender.display_name, "Webstore Extension") + or strings.icontains(subject.subject, 'Chrome Web Store Policy') + // body and html + or strings.icontains(body.html.raw, + '