Sintassi della sezione Corrispondenza
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
$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 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
conditionper 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
- 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.