Sintassi della sezione Match
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, all'interno di 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 nella 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
$usero$ip) che devono avere valori identici negli eventi (definiti nella sezioneevents) 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 Regole di ricerca e Dashboard.
| Funzionalità | Requisito delle regole | Assistenza per ricerca e dashboard |
|---|---|---|
| Tipi di variabili | Devi utilizzare 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 windowing per determinare come viene suddiviso il tempo e come vengono raggruppati gli eventi. Puoi raggruppare i campi evento e i segnaposto 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 windowing di YARA-L 2.0.
Comprendere il 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 trasmessi alla valutazione
conditionper quella corrispondenza specifica. - Esclusione: gli eventi al di fuori della finestra vengono ignorati per quel gruppo di corrispondenza 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: filtra i valori pari a zero
Il seguente esempio illustra le query che filtrano 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 è 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 pari a 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 a utilizzare la logica YARA-L o approfondire le funzioni di query avanzate:
Sintassi e logica
Riferimenti ed esempi
- Espressioni, operatori e costrutti utilizzati in YARA-L 2.0
- Funzioni in YARA-L 2.0
- Creare regole di rilevamento composite
- Esempi: query YARA-L 2.0
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.