0Pricing
Cyber Security Academy · Lezione

Scrivere regole Sigma

Sintassi portabile per le regole di rilevamento.

Scrivere regole Sigma è una lezione Cyber Security Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cyber Security Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cyber Security Academy include 4 lezioni in totale.

Che cos'è Sigma

Sigma è un formato generico e indipendente dal fornitore per le firme di rilevamento basate sui log. La logica di rilevamento viene scritta una sola volta in YAML, quindi convertita in SPL di Splunk, query Elastic, KQL di Sentinel e molti altri backend.

Sigma sta al rilevamento nei log come YARA sta al rilevamento nei file: è una lingua franca portabile. Consente ai team di condividere pubblicamente le regole ed evita di riscrivere la stessa idea per ogni SIEM.

Anatomia di una regola

Una regola Sigma è un documento YAML con sezioni obbligatorie e facoltative. Gli elementi essenziali sono title, logsource e detection.

title: Suspicious PowerShell Encoded Command
id: 7e3f3c1a-1f2b-4c3d-9a8b-1234567890ab
status: experimental
logsource:
  category: process_creation
  product: windows
detection:
  selection:
    Image|endswith: '\\powershell.exe'
    CommandLine|contains: '-enc'
  condition: selection
level: high

Il blocco logsource

Il blocco logsource indica al convertitore quali log sono interessati dalla regola. Non esegue direttamente query sui dati; durante la conversione seleziona la mappatura dei campi e l'indice corretti.

Chiavi comuni:

  • product — ad esempio windows, linux, aws
  • category — ad esempio process_creation, network_connection, file_event
  • service — ad esempio sysmon, security, sshd

Scelga la combinazione più specifica supportata dai dati, così che la pipeline associ correttamente i campi.

Selezioni e identificatori di ricerca

All'interno di detection si definiscono uno o più identificatori di ricerca denominati, ovvero selezioni. Ciascuno è una mappa di criteri campo-valore. Più campi all'interno di una selezione vengono combinati con l'operatore logico AND.

In questo caso, entrambe le condizioni devono essere vere affinché selection corrisponda.

detection:
  selection:
    EventID: 4688
    NewProcessName|endswith: '\\whoami.exe'
  condition: selection

Modificatori dei campi

I modificatori definiscono più precisamente il modo in cui viene confrontato un valore. Vengono aggiunti al nome del campo dopo una barra verticale.

  • contains — corrispondenza di una sottostringa
  • startswith / endswith — corrispondenza ancorata
  • all — tutti i valori di un elenco devono essere presenti
  • re — espressione regolare
  • base64offset|contains — corrispondenza di sottostringhe codificate in base64

I modificatori si concatenano da sinistra a destra e vengono applicati in quest'ordine.

detection:
  selection:
    CommandLine|contains|all:
      - 'Invoke-WebRequest'
      - 'DownloadString'
  condition: selection

Elenchi e mappe come OR / AND

La logica all'interno di una selezione segue due regole:

  • Un elenco di valori associato a un campo equivale a OR: è sufficiente che corrisponda un valore qualsiasi.
  • Una mappa con più campi equivale a AND: devono corrispondere tutti i campi.

Di seguito, Image corrisponde a uno dei due eseguibili e anche User deve essere uguale a SYSTEM.

detection:
  selection:
    Image|endswith:
      - '\\net.exe'
      - '\\net1.exe'
    User: 'SYSTEM'
  condition: selection

L'espressione condition

condition combina le selezioni denominate tramite la logica booleana. È qui che si esprimono filtri ed esclusioni.

Gli operatori includono and, or, not, le parentesi e aggregazioni come count(). È inoltre possibile usare 1 of selection* / all of selection* per fare riferimento a gruppi di identificatori accomunati dallo stesso prefisso.

detection:
  selection:
    EventID: 4625
  timeframe: 5m
  condition: selection | count() by SourceIp > 10

Esclusione del rumore

Per sopprimere le attività legittime note, definisca un identificatore separato e lo sottragga nella condizione con not. In questo modo la logica dannosa rimane leggibile e le esclusioni sono esplicite.

In questo caso, la regola si attiva quando rundll32 avvia una connessione di rete, tranne nel caso di un processo di aggiornamento legittimo noto.

detection:
  selection:
    Image|endswith: '\\rundll32.exe'
  filter_legit:
    ParentImage|endswith: '\\MicrosoftEdgeUpdate.exe'
  condition: selection and not filter_legit

Metadati per il triage

Oltre alla logica, le regole efficaci contengono metadati che aiutano i responsabili della risposta ad agire rapidamente e gli ingegneri a mantenere la copertura.

  • level — informational, low, medium, high, critical
  • tags — tecniche ATT&CK, ad esempio attack.t1059.001
  • falsepositives — eventi benigni noti che possono attivare la regola
  • references — report sulle minacce o documentazione
  • author e date

La compilazione di questi campi richiede pochi minuti e può far risparmiare ore durante un incidente.

Regole di correlazione

Le regole basate su un singolo evento non possono esprimere attacchi composti da più fasi. Le regole Sigma di correlazione combinano nel tempo più regole di base per rilevare sequenze e pattern.

Tra i tipi supportati ci sono event_count (N corrispondenze in un intervallo), value_count (valori distinti, ad esempio molti utenti con tentativi di accesso falliti) e temporal (prima la regola A, poi la regola B). Ciò consente, per esempio, di rilevare un accesso riuscito subito dopo una raffica di tentativi falliti.

name: bruteforce_then_success
correlation:
  type: temporal
  rules: [failed_logins, successful_login]
  group-by: [SourceIp, TargetUser]
  timespan: 10m

Conversione per un backend

Con sigma-cli si converte una regola nel linguaggio di query di destinazione. Una pipeline di elaborazione associa i nomi dei campi Sigma allo schema reale.

L'output è una query pronta per la distribuzione, che è possibile incollare o inviare tramite API.

sigma convert -t splunk -p sysmon \
  -f default rule.yml

# Example output (Splunk SPL):
# Image="*\\powershell.exe" CommandLine="*-enc*"

Verifica rapida

Verifichi la propria comprensione della logica di rilevamento di Sigma.

Riepilogo

Ora è possibile creare regole Sigma portabili:

  • logsource seleziona i log e le mappature dei campi applicabili
  • Le selezioni sono criteri campo-valore denominati (i campi equivalgono ad AND, gli elenchi di valori a OR)
  • I modificatori come contains, endswith, all e re definiscono più precisamente la corrispondenza
  • condition combina le selezioni con and/or/not, filtri e aggregazioni
  • Gli identificatori filter separati sottraggono il rumore legittimo noto
  • I metadati (level, tags, falsepositives) velocizzano il triage
  • sigma convert compila la regola per il backend SIEM

Nel prossimo passaggio, queste regole verranno associate alle tecniche degli avversari tramite MITRE ATT&CK.

Domande Frequenti

La lezione «Scrivere regole Sigma» è gratuita?

Sì — il testo completo di «Scrivere regole Sigma» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cyber Security Academy, passa a CoddyKit PRO. Il corso Cyber Security Academy include 4 lezioni in totale.

Cosa imparerò in «Scrivere regole Sigma»?

Sintassi portabile per le regole di rilevamento. Eserciti Cyber Security Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cyber Security Academy?

Non è richiesta alcuna esperienza precedente. Cyber Security Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Scrivere regole Sigma»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cyber Security Academy?

Sì. Ogni lezione Cyber Security Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Principi della detection-as-code
  2. Scrivere regole Sigma
  3. Mappatura su MITRE ATT&CK
  4. Test e ottimizzazione dei rilevamenti
← Torna a Cyber Security Academy