Attachment: ICS file with credential theft indicators

Detects inbound emails containing calendar invite (.ics) attachments where the parsed event description is classified by NLU as having high-confidence credential theft intent and financial communication topics, and where embedded links point to domains that differ from the sender's domain and match known free file hosts, free subdomain hosts, self-service creation platforms, URL shorteners, suspicious TLDs, or newly registered domains (less than 90 days old).

Sublime rule (View on GitHub)

 1name: "Attachment: ICS file with credential theft indicators"
 2description: "Detects inbound emails containing calendar invite (.ics) attachments where the parsed event description is classified by NLU as having high-confidence credential theft intent and financial communication topics, and where embedded links point to domains that differ from the sender's domain and match known free file hosts, free subdomain hosts, self-service creation platforms, URL shorteners, suspicious TLDs, or newly registered domains (less than 90 days old)."
 3type: "rule"
 4severity: "medium"
 5source: |
 6  type.inbound
 7  and any(attachments,
 8          (
 9            .file_type == "ics"
10            or .file_extension == "ics"
11            or .content_type in ("application/ics", "text/calendar")
12          )
13          //
14          // This rule makes use of a beta feature and is subject to change without notice
15          // using the beta feature in custom rules is not suggested until it has been formally released
16          //
17          and any(beta.file.parse_ics(.).events,
18                  any(ml.nlu_classifier(.description).intents,
19                      .name == "cred_theft" and .confidence == "high"
20                  )
21                  and any(ml.nlu_classifier(.description).topics,
22                          .name == "Financial Communications"
23                          and .confidence != "low"
24                  )
25                  and any(.links,
26                          .href_url.domain.root_domain != sender.email.domain.root_domain
27                          and (
28                            .href_url.domain.root_domain in $self_service_creation_platform_domains
29                            or .href_url.domain.domain in $self_service_creation_platform_domains
30                            or .href_url.domain.root_domain in $free_file_hosts
31                            or .href_url.domain.domain in $free_file_hosts
32                            or .href_url.domain.root_domain in $free_subdomain_hosts
33                            or .href_url.domain.domain in $free_subdomain_hosts
34                            or .href_url.domain.tld in $suspicious_tlds
35                            or .href_url.domain.domain in $url_shorteners
36                            or .href_url.domain.root_domain in $url_shorteners
37                            or network.whois(.href_url.domain).days_old < 90
38                          )
39                  )
40          )
41  )
42  and not (
43    strings.istarts_with(subject.base,
44                         "accepted:",
45                         "declined:",
46                         "_accepted:",
47                         "_declined:"
48    )
49  )
50  and not (
51    sender.email.domain.root_domain in $high_trust_sender_root_domains
52    and coalesce(headers.auth_summary.dmarc.pass, false)
53  )  
54tags:
55  - "Attack surface reduction"
56attack_types:
57  - "ICS Phishing"
58  - "Credential Phishing"
59tactics_and_techniques:
60  - "Free file host"
61  - "Free subdomain host"
62  - "Social engineering"
63detection_methods:
64  - "File analysis"
65  - "Natural Language Understanding"
66  - "URL analysis"
67  - "Whois"
68id: "1bfa7d80-ff4c-5b82-9f3b-a58b157fb41a"

Related rules

to-top