Assegnazione della funzione al segnaposto
In YARA-L, il processo di utilizzo delle funzioni per elaborare i dati e archiviare il risultato è chiamato assegnazione da funzione a segnaposto. Le variabili segnaposto (indicate con $) vengono utilizzate per rappresentare punti dati specifici estratti dagli eventi UDM e da altre origini dati. Le funzioni possono quindi operare su questi campi evento o su combinazioni di campi e i risultati di queste operazioni vengono assegnati alle variabili segnaposto per l'utilizzo in altre parti della query, ad esempio le sezioni match, condition e outcome.
Funzioni: YARA-L fornisce funzioni di metrica che possono eseguire calcoli o trasformazioni dei dati sui campi evento.
Variabili segnaposto: si tratta di variabili, indicate da un segno di dollaro precedente (ad esempio
$user,$ip), che possono contenere valori derivati da campi evento o output di funzioni. Sono definiti nella sezioneeventse possono essere utilizzati in tutta la regola.Assegnazione: l'output della funzione viene assegnato a una variabile segnaposto.
Limitazioni
Esistono due limitazioni quando si utilizza l'assegnazione di funzioni ai segnaposto:
Ogni segnaposto nell'assegnazione della funzione al segnaposto deve essere assegnato a un'espressione contenente un campo evento.
Esempi validi
$ph1 = $e.principal.hostname $ph2 = $e.src.hostname // Both $ph1 and $ph2 have been assigned to an expression containing an event field. $ph1 = strings.concat($ph2, ".com")$ph1 = $e.network.email.from $ph2 = strings.concat($e.principal.hostname, "@gmail.com") // Both $ph1 and $ph2 have been assigned to an expression containing an event field. $ph1 = strings.to_lower($ph2)Esempio non valido
$ph1 = strings.concat($e.principal.hostname, "foo") $ph2 = strings.concat($ph1, "bar") // $ph2 has NOT been assigned to an expression containing an event field.La chiamata di funzione deve dipendere da esattamente un evento. Tuttavia, è possibile utilizzare più di un campo dello stesso evento negli argomenti della chiamata di funzione.
Esempio valido
$ph = strings.concat($event.principal.hostname, "string2")$ph = strings.concat($event.principal.hostname, $event.src.hostname)Esempio non valido
$ph = strings.concat("string1", "string2")$ph = strings.concat($event.principal.hostname, $anotherEvent.src.hostname)
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.