Spam: VertiStream warm-up article excerpt

Detects VertiStream warm-up messages: a single unpunctuated line from a scraped article, cut off with an ellipsis.

Sublime rule (View on GitHub)

 1name: "Spam: VertiStream warm-up article excerpt"
 2description: "Detects VertiStream warm-up messages: a single unpunctuated line from a scraped article, cut off with an ellipsis."
 3type: "rule"
 4severity: "medium"
 5source: |
 6  type.inbound
 7  and length(filter(body.current_thread.links, .href_url.scheme != "mailto")) == 0
 8  and length(attachments) == 0
 9  and not subject.is_reply
10  and not subject.is_forward
11  // one line, no punctuation, cut off mid-word with "..." or "…"
12  // the excerpt is cut at about 160 to 200 characters and is ascii apart from the "…"
13  and strings.count(body.current_thread.text, "\n") == 0
14  and length(body.current_thread.text) >= 140
15  and length(body.current_thread.text) <= 210
16  and regex.imatch(body.current_thread.text,
17                   '[^[:punct:]\p{P}]+[a-z](?:\.\.\.|…)\s*'
18  )
19  and not regex.icontains(body.current_thread.text, '[^\x00-\x7F…]')
20  // multi-word title with no punctuation; skip up to 3 leading separator characters
21  // that subject.base leaves behind gateway tags ("- ", "_", ": ")
22  and length(subject.base) >= 10
23  and regex.icontains(subject.base, '\w\s+\w')
24  and regex.imatch(subject.base, '[\s[:punct:]\p{P}]{0,3}[^[:punct:]\p{P}]+')  
25attack_types:
26  - "Spam"
27tactics_and_techniques:
28  - "Social engineering"
29detection_methods:
30  - "Content analysis"
31id: "8a827b54-01a1-5723-9b30-40a37a6a66f3"
to-top