Detection rules › Kusto

Corelight - SMTP Email containing NON Ascii Characters within the Subject

Status
available
Severity
low
Time window
1h
Source
github.com/Azure/Azure-Sentinel

'Detects where an emails contain non ascii characters within the Subject.'

MITRE ATT&CK coverage

TacticTechniques
Initial AccessT1566 Phishing

Rule body kusto

id: 50c61708-9824-46f3-87cf-22490796fae2
name: Corelight - SMTP Email containing NON Ascii Characters within the Subject
description: |
  'Detects where an emails contain non ascii characters within the Subject.'
severity: Low
status: Available
requiredDataConnectors:
  - connectorId: Corelight
    dataTypes:
      - Corelight_v2_smtp
      - corelight_smtp
queryFrequency: 1h
queryPeriod: 1h
triggerOperator: gt
triggerThreshold: 0
tactics:
  - InitialAccess
relevantTechniques:
  - T1566 
query: |
  corelight_smtp
  | where subject hasprefix  @'\=?utf-16'
  | summarize recipients = dcount(_to)
  | extend k = 1
  | join (corelight_smtp
          | where subject hasprefix  @'\=?utf-16'
          | summarize by _to
          | extend k = 1) on k
  | where recipients > 1
entityMappings:
  - entityType: MailMessage
    fieldMappings:
      - identifier: Recipient
        columnName: _to
version: 2.1.0
kind: Scheduled

Stages and Predicates

Stage 1: source

corelight_smtp

Stage 2: where

| where subject hasprefix  @'\=?utf-16'

Stage 3: summarize

| summarize recipients = dcount(_to)
Threshold
gt 1

Stage 4: extend

| extend k = 1

Stage 5: join

| join (corelight_smtp
        | where subject hasprefix  @'\=?utf-16'
        | summarize by _to
        | extend k = 1) on k

Stage 6: where

| where recipients > 1

Indicators

Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.

FieldKindValues
recipientsgt
  • 1 transforms: cased
subjectstarts_with
  • \=?utf-16

Output fields

Fields the rule emits when it matches. Chronicle authors list these in the outcome block; they appear on the detection and $risk_score drives alerting. Sentinel / Defender XDR rules build them up through project / summarize / extend stages. Sentinel maps these into alert fields via entityMappings and customDetails; Defender XDR custom detections surface them as alert fields directly.

FieldSource
recipientssummarize
kextend