YARA pravidla jsou způsob, jak identifikovat malware (nebo jiné soubory) tím, že vytváří pravidla, která podívat na určité vlastnosti. YARA byl původně vyvinut Victorem Alvarezem z Virustotal a používá se hlavně při výzkumu a detekci malwaru. Byl vyvinut s myšlenkou popsat vzory, které identifikují konkrétní kmeny nebo celé rodiny malwaru.
syntaxe
každé pravidlo musí začínat slovem pravidlo, za nímž následuje název nebo identifikátor. Identifikátor může obsahovat libovolný alfanumerický znak a znak podtržítka, ale první znak nesmí být číslice. Existuje seznam klíčových slov YARA, která nelze použít jako identifikátor, protože mají předdefinovaný význam.
podmínka
pravidla se skládají z několika částí. Sekce podmínka je jediná, která je vyžadována. Tato část určuje, kdy je výsledek pravidla pravdivý pro objekt (soubor), který je předmětem šetření. Obsahuje booleovský výraz, který určuje výsledek. Podmínky jsou konstrukčně Booleovské výrazy a mohou obsahovat všechny obvyklé logické a relační operátory. Můžete také zahrnout další pravidlo jako součást svých podmínek.
Strings
Chcete-li dát podmínce význam, budete také potřebovat sekci strings. Sekce řetězce je místo, kde můžete definovat řetězce, které budou v souboru hledány. Podívejme se na jednoduchý příklad.
rule vendor
{
strings:
$text_string1 = "Vendor name" wide
$text_string2 = "Alias name" wide
condition:
$text_string1 or $text_string2
}
výše uvedené pravidlo se jmenuje vendor a hledá řetězce „Vendor name“ a „Alias name“. Pokud je nalezen některý z těchto řetězců, je výsledek pravidla pravdivý.
existuje několik typů řetězců, které můžete hledat:
- hexadecimální, v kombinaci s divokými kartami, skoky a alternativami.
- textové řetězce s modifikátory: nocase, fullword, wide a ascii.
- regulární výrazy se stejnými modifikátory jako textové řetězce.
existuje mnoho pokročilejších podmínek, které můžete použít, ale jsou mimo rozsah tohoto příspěvku. Pokud se chcete dozvědět více, najdete jej v dokumentaci YARA.
Metadata
Metadata mohou být přidána, aby pomohla identifikovat soubory, které byly vyzvednuty určitým pravidlem. Za identifikátory metadat vždy následuje znaménko rovnosti a nastavená hodnota. Přiřazené hodnoty mohou být řetězce, celá čísla nebo booleovská hodnota. Všimněte si, že dvojice identifikátor / hodnota definované v sekci metadata nelze použít v sekci podmínka, jejich jediným účelem je uložit další informace o pravidle.
shrnutí
YARA je nástroj, který lze použít k identifikaci souborů, které splňují určité podmínky. Používá se hlavně výzkumnými pracovníky v oblasti bezpečnosti ke klasifikaci malwaru.
odkazy
detekce založená na podpisu pomocí YARA
nejnovější dokumentace YARA
YARA: Jednoduchý a efektivní způsob, jak pitvat Malware
screenshoty byly provedeny pomocí Yara Editor Adlice Software
Pieter Arntz