Le regole YARA sono un modo per identificare malware (o altri file) creando regole che cercano determinate caratteristiche. YARA è stato originariamente sviluppato da Victor Alvarez di Virustotal ed è utilizzato principalmente nella ricerca e rilevamento di malware. È stato sviluppato con l’idea di descrivere modelli che identificano particolari ceppi o intere famiglie di malware.
Sintassi
Ogni regola deve iniziare con la parola regola, seguita dal nome o dall’identificatore. L’identificatore può contenere qualsiasi carattere alfanumerico e il carattere di sottolineatura, ma il primo carattere non può essere una cifra. Esiste un elenco di parole chiave YARA che non possono essere utilizzate come identificatore perché hanno un significato predefinito.
Condizione
Le regole sono composte da diverse sezioni. La sezione condizione è l’unica richiesta. Questa sezione specifica quando il risultato della regola è true per l’oggetto (file) in esame. Contiene un’espressione booleana che determina il risultato. Le condizioni sono espressioni booleane di progettazione e possono contenere tutti i soliti operatori logici e relazionali. Puoi anche includere un’altra regola come parte delle tue condizioni.
Strings
Per dare un significato alla sezione condition avrai anche bisogno di una sezione strings. Le sezioni stringhe è dove è possibile definire le stringhe che verranno cercate nel file. Diamo un’occhiata a un esempio facile.
rule vendor
{
strings:
$text_string1 = "Vendor name" wide
$text_string2 = "Alias name" wide
condition:
$text_string1 or $text_string2
}
La regola mostrata sopra è denominata vendor e cerca le stringhe “Vendor name”e” Alias name”. Se viene trovata una di queste stringhe, il risultato della regola è vero.
Esistono diversi tipi di stringhe che puoi cercare:
- Esadecimale, in combinazione con wild-card, salti e alternative.
- Stringhe di testo, con modificatori: nocase, fullword, wide e ascii.
- Espressioni regolari, con gli stessi modificatori delle stringhe di testo.
Ci sono molte condizioni più avanzate che puoi usare, ma sono al di fuori dello scopo di questo post. Se vuoi saperne di più puoi trovarlo nella documentazione di YARA.
Metadati
I metadati possono essere aggiunti per aiutare a identificare i file che sono stati raccolti da una determinata regola. Gli identificatori dei metadati sono sempre seguiti da un segno di uguale e dal valore impostato. I valori assegnati possono essere stringhe, numeri interi o un valore booleano. Si noti che le coppie identificatore / valore definite nella sezione metadati non possono essere utilizzate nella sezione condizioni, il loro unico scopo è quello di memorizzare informazioni aggiuntive sulla regola.
Sommario
YARA è uno strumento che può essere utilizzato per identificare i file che soddisfano determinate condizioni. È principalmente in uso dai ricercatori di sicurezza per classificare il malware.
Collegamenti
Rilevamento basato sulla firma con YARA
Documentazione più recente di YARA
YARA: Modo semplice ed efficace per sezionare il malware
Gli screenshot sono stati realizzati utilizzando Yara Editor di Adlice Software
Pieter Arntz