Credential phishing: Image as content, short or no body contents

This rule identifies incoming messages with minimal links, all image attachments and either empty, brief or the body text is only a warning banner/disclaimer. It also checks for truncated PNG images or logos in addition to high-confidence credit theft intentions.

Sublime rule (View on GitHub)

 1name: "Credential phishing: Image as content, short or no body contents"
 2description: |
 3  This rule identifies incoming messages with minimal links, all image attachments and either empty, brief
 4  or the body text is only a warning banner/disclaimer. It also checks for truncated PNG images or logos in addition
 5  to high-confidence credit theft intentions.  
 6type: "rule"
 7severity: "medium"
 8source: |
 9  type.inbound
10  and length(body.links) < 2
11  and 0 < (length(attachments)) < 3
12  and (
13    // body text is very short
14    (
15      0 <= (length(body.current_thread.text)) < 10
16      or body.current_thread.text is null
17    )
18    or (
19      length(body.current_thread.text) < 900
20      // or body is most likely all warning banner (text contains the sender and common warning banner language)
21      and (
22        (
23          strings.contains(body.current_thread.text, sender.email.email)
24          and strings.contains(body.current_thread.text, 'caution')
25        )
26        or regex.icontains(body.current_thread.text,
27                           "intended recipient's use only|external email|sent from outside|you don't often"
28        )
29      )
30    )
31  )
32  and (
33    all(attachments,
34        (.file_type in $file_types_images)
35        and (
36          any(file.explode(.),
37              any(.scan.exiftool.fields, .value == "Truncated PNG image")
38              or (
39                any(ml.logo_detect(..).brands, .name is not null)
40                and any(ml.nlu_classifier(.scan.ocr.raw).intents,
41                        .name == "cred_theft" and .confidence == "high"
42                )
43              )
44          )
45        )
46    )
47  )  
48attack_types:
49  - "Credential Phishing"
50tactics_and_techniques:
51  - "Evasion"
52  - "Image as content"
53detection_methods:
54  - "Computer Vision"
55  - "Content analysis"
56  - "File analysis"
57  - "Header analysis"
58  - "Natural Language Understanding"
59  - "Optical Character Recognition"
60id: "01313f38-d0d1-5240-b407-8f9158639277"
to-top