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 come valore predefinito 0. 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 != ""

Aggiungere un filtro per tipo di evento

Nell'esempio seguente, gli indirizzi IP di ogni evento UDM vengono controllati in base all'elenco di riferimento, il che consuma 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:
  // 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. 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: