Applicare le best practice per le regole YARA-L 2.0
Questo documento descrive le best practice consigliate da Google Security Operations per la scrittura di regole in YARA-L 2.0.
Filtrare i valori zero
I campi potrebbero essere omessi automaticamente negli eventi su cui esegui le regole. Quando i campi vengono omessi, vengono impostati per impostazione predefinita sui valori zero.
Ad esempio, un valore stringa omesso viene impostato per impostazione predefinita su "".
Se equipari due campi omessi, entrambi potrebbero essere impostati per impostazione predefinita sui valori zero. Ciò potrebbe comportare corrispondenze non intenzionali in cui due campi corrispondono perché entrambi hanno valori zero. Puoi evitare questo comportamento specificando esplicitamente il valore zero.
Ad esempio, se hai una regola che equipara due eventi in base a due campi, è possibile che entrambi i campi siano vuoti, causando una corrispondenza:
$e1.field1 = $e2.field2
Se sia e1.field1 che e2.field2 vengono omessi nei dati, "" = "" è true, causando una corrispondenza.
Le seguenti espressioni di confronto assicurano che non venga trovata una corrispondenza perché e1.field1 e e2.field2 non includono dati:
$e1.field1 = $e2.field2
$e1.field != ""
Valori zero e regole dipendenti dall'arricchimento
Se una regola dipende da dati arricchiti che non sono ancora stati aggiornati, il valore potrebbe essere null o zero. Pertanto, è buona prassi filtrare i valori zero (controlli null) nelle regole dipendenti dall'arricchimento. Scopri in che modo Google SecOps arricchisce i dati di eventi ed entità e come utilizzare i dati arricchiti dal contesto nelle regole.
Aggiungere un filtro per il tipo di evento
Nell'esempio seguente, gli indirizzi IP di ogni evento UDM vengono confrontati con l'elenco di riferimento, consumando molte risorse:
events:
// For every UDM event, check if the target.ip is listed in
// the suspicious_ip_addresses reference list.
$e.target.ip in %suspicious_ip_addresses
Se la regola YARA-L rileva solo gli eventi UDM di un determinato tipo di evento, l'aggiunta di un filtro per il tipo di evento può contribuire a ottimizzare la regola riducendo il numero di eventi che la regola deve valutare.
events:
// For every UDM event of type NETWORK_DNS, check if the target.ip is
// listed in the suspicious_ip_addresses reference list.
$e.metadata.event_type = "NETWORK_DNS"
$e.target.ip in %suspicious_ip_addresses
Aggiungi questi filtri all'inizio della sezione degli eventi. Dovresti anche inserire i filtri di uguaglianza prima delle espressioni regolari o di altri confronti. I filtri vengono applicati nell'ordine in cui appaiono nella regola.
Per i blog della community sull'utilizzo di YARA-L, vedi:
- Nozioni di base su YARA-L
- Variabili delle regole YARA-L
- Operatori e modificatori YARA-L
- Creare una regola per eventi singoli utilizzando un'espressione regolare
- Aggregare gli eventi nelle regole
- Impostare una soglia nelle condizioni
- Navigazione nell'editor delle regole
- Opzioni delle regole YARA-L
- Creare una regola per eventi singoli - Corrispondenza di stringhe
- Creare una regola per più eventi - Unire gli eventi
- Creare una regola per più eventi - Ordinare gli eventi
- Creare una regola per più eventi - Unire e contare più volte nelle condizioni
- Creare una regola per più eventi - Finestre scorrevoli
- Introduzione ai risultati in una regola per eventi singoli
- Risultati in una regola per più eventi - Conteggi
- Risultati nelle regole per più eventi - Array
- Risultati in una regola per più eventi - Max, Min, Sum
- Risultati - Punteggio di rischio, logica condizionale e operatori matematici
- Funzioni - strings.concat
- Funzioni - strings.coalesce
- Funzioni - Rete
- Elenco di riferimento
- Elenchi di riferimento CIDR
- Elenchi di riferimento delle espressioni regolari
- Funzione stringhe - Maiuscole o minuscole
- Funzione espressioni regolari - re.regex
- Funzione espressioni regolari - re.capture
- Funzione stringhe - strings.base64_decode
- Funzione espressioni regolari - re.replace
- Guida introduttiva alla ricerca statistica
- Ricerca statistica - Più di un conteggio
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.