Sintassi della sezione Corrispondenza

Supportato in:

In YARA-L 2.0, la sezione match fornisce il meccanismo per la correlazione di più eventi. Definisce la logica per raggruppare gli eventi in un'unica rilevazione collegando attributi comuni, come utenti, indirizzi IP o hash dei file, entro un limite temporale specifico.

Utilizzi la sezione match per i seguenti casi d'uso:

  • Collega due o più eventi distinti all'interno di una regola.
  • Aggrega i dati in Ricerca e nelle dashboard, ad esempio contando i tentativi di accesso non riusciti in un periodo di tempo specifico.

Definisci i criteri di correlazione

Utilizzalo per definire i criteri per questa correlazione specificando quanto segue:

  • Campi di raggruppamento (chiavi): variabili (come $user o $ip) che devono avere valori identici negli eventi (definiti nella sezione events) per attivare una corrispondenza.

  • Vincolo temporale: la finestra di durata in cui devono verificarsi gli eventi raggruppati per soddisfare la regola o l'aggregazione. In Regole, definisce la finestra di rilevamento; in Ricerca e dashboard, definisce la finestra di aggregazione o correlazione.

Confrontare i requisiti delle funzionalità

La tabella seguente descrive in dettaglio i confronti per le regole di ricerca e le dashboard.

Funzionalità Requisito delle regole Assistenza per la ricerca e le dashboard
Tipi di variabili Devono essere utilizzati i segnaposto definiti nella sezione events. Supporta sia i segnaposto che i campi UDM diretti.
Finestra temporale Definisce il confine di rilevamento. Definisce il bucket di aggregazione o correlazione.
Sintassi over <number><m/h/d> (ad esempio, 10m, 2h, 1d) over <number><m/h/d>
Limiti Min: 1m / Max: 48h Min: 1m / Max: 48h

Tipi di finestre supportati

YARA-L 2.0 utilizza diversi comportamenti di finestra per determinare come viene suddiviso il tempo e come vengono raggruppati gli eventi. Puoi raggruppare i segnaposto e i campi evento nella sezione match in base a una granularità temporale specificata utilizzando una delle seguenti finestre supportate.

Per informazioni dettagliate sui tipi di finestre supportati da YARA-L 2.0, consulta Logica di finestre di YARA-L 2.0.

Informazioni sul limite temporale

La sezione match suddivide gli eventi in gruppi in base alle chiavi di raggruppamento. La durata specificata definisce il limite temporale per ogni gruppo:

  • Inclusione: solo gli eventi all'interno della finestra vengono passati alla valutazione condition per quella corrispondenza specifica.
  • Esclusione: gli eventi al di fuori della finestra vengono ignorati per quel gruppo di corrispondenze specifico, impedendo che eventi non correlati attivino un falso positivo.

Valori pari a zero nella sezione match

Google SecOps filtra implicitamente i valori pari a zero per tutti i segnaposto utilizzati nella sezione match ("" per le stringhe, 0 per i numeri, false per i valori booleani, il valore nella posizione 0 per i tipi enumerati).

Esempio: filtrare i valori pari a zero

Il seguente esempio illustra le query che escludono i valori pari a zero.

rule ZeroValuePlaceholderExample {

events:
  // Because $host is used in the match section, the query behaves
  // as if the following predicate was added to the events section:
  // $host != ""
  $host = $e.principal.hostname

  // Because $otherPlaceholder was not used in the match,
  // there is no implicit filtering of zero values for $otherPlaceholder.
  $otherPlaceholder = $e.principal.ip

match:
  $host over 5m

condition:
  $e
}

Tuttavia, se un segnaposto viene assegnato a una funzione, le query non filtrano implicitamente i valori zero dei segnaposto utilizzati nella sezione match.

Per disattivare il filtro implicito dei valori zero, puoi utilizzare l'opzione allow_zero_values nella sezione delle opzioni. L'opzione allow_zero_values è disponibile solo in Regole.

Esempio: consenti valori zero

Il seguente esempio illustra le query che non filtrano implicitamente i valori zero dei segnaposto utilizzati nella sezione match:

rule AllowZeroValuesExample {

events:
  // Because allow_zero_values is set to true, there is no implicit filtering
  // of zero values for $host.
  $host = $e.principal.hostname

  // Because $otherPlaceholder was not used in the match,
  // there is no implicit filtering of zero values for $otherPlaceholder.
  $otherPlaceholder = $e.principal.ip

match:
  $host over 5m

condition:
  $e

options:
  allow_zero_values = true
}

Passaggi successivi

Esplora le seguenti risorse per continuare la logica YARA-L o approfondire le funzioni di query avanzate:

Sintassi e logica

Riferimenti ed esempi

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.