Penetapan fungsi ke placeholder

Didukung di:

Di YARA-L, proses penggunaan fungsi untuk memproses data dan menyimpan hasilnya disebut penetapan fungsi ke placeholder. Variabel placeholder (ditandai dengan $) digunakan untuk merepresentasikan titik data tertentu yang diekstrak dari peristiwa UDM dan sumber data lainnya. Fungsi kemudian dapat beroperasi pada kolom peristiwa ini, atau kombinasi kolom, dan hasil operasi ini ditetapkan ke variabel placeholder untuk digunakan di bagian lain kueri, seperti bagian match, condition, dan outcome.

  • Fungsi: YARA-L menyediakan fungsi metrik, yang dapat melakukan kalkulasi atau transformasi data pada kolom peristiwa.

  • Variabel placeholder: Ini adalah Variabel, yang ditandai dengan tanda dolar di depannya (seperti $user, $ip), yang dapat menyimpan nilai yang berasal dari kolom peristiwa atau output fungsi. Variabel ini ditentukan di bagian events dan dapat digunakan di seluruh aturan.

  • Penetapan: Output fungsi ditetapkan ke variabel placeholder.

Batasan

Ada dua batasan saat menggunakan penetapan fungsi ke placeholder:

  1. Setiap placeholder dalam penetapan fungsi ke placeholder harus ditetapkan ke ekspresi yang berisi kolom peristiwa.

    Contoh yang valid

    $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)
    

    Contoh tidak valid

    $ph1 = strings.concat($e.principal.hostname, "foo")
    $ph2 = strings.concat($ph1, "bar") // $ph2 has NOT been assigned to an expression containing an event field.
    
  2. Panggilan fungsi harus bergantung pada tepat satu peristiwa. Namun, lebih dari satu kolom dari peristiwa yang sama dapat digunakan dalam argumen panggilan fungsi.

    Contoh yang valid

    $ph = strings.concat($event.principal.hostname, "string2")

    $ph = strings.concat($event.principal.hostname, $event.src.hostname)

    Contoh tidak valid

    $ph = strings.concat("string1", "string2")

    $ph = strings.concat($event.principal.hostname, $anotherEvent.src.hostname)

Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.