Best practice per YARA-L

Supportato in:

Questo documento descrive le best practice consigliate da Google Security Operations per la scrittura di regole in YARA-L.

Filtrare i valori zero

I campi potrebbero essere omessi automaticamente negli eventi in base ai quali esegui le regole. Quando i campi vengono omessi, per impostazione predefinita vengono utilizzati i valori zero.

Ad esempio, il valore predefinito di un valore di stringa omesso è "".

Se metti in equazione due campi entrambi omessi, entrambi potrebbero avere per impostazione predefinita valori pari a zero. Ciò potrebbe portare a corrispondenze indesiderate in cui due campi corrispondono perché hanno entrambi valori pari a 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 sia e2.field2 sono omessi nei dati, "" = "" è true e si verifica 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 nullo o zero. Pertanto, è buona prassi escludere i valori zero (controlli null) nelle regole dipendenti dall'arricchimento. Scopri in che modo Google Security Operations arricchisce i dati di eventi ed entità e come utilizzare i dati arricchiti dal contesto nelle regole.

Aggiungere un filtro per tipo di evento

Nell'esempio seguente, gli indirizzi IP di ogni evento UDM vengono controllati rispetto all'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 eventi UDM di un determinato tipo, l'aggiunta di un filtro per tipo di evento può contribuire a ottimizzare la regola riducendo il numero di eventi che deve valutare.

events: // Per ogni evento UDM di tipo NETWORK_DNS, controlla se target.ip è elencato nell'elenco di riferimento suspicious_ip_addresses. $e.metadata.event_type = "NETWORK_DNS" $e.target.ip in %suspicious_ip_addresses

Aggiungi questi filtri all'inizio della sezione degli eventi. Inoltre, devi inserire i filtri di uguaglianza prima di espressioni regolari o altri confronti. I filtri vengono applicati nell'ordine in cui appaiono nella regola.

Per i blog della community sull'utilizzo di YARA-L, consulta:

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