
Se ti sei mai imbattuto in articoli su cyberattacchi o sicurezza informatica, potresti aver sentito nominare YARA. Magari in qualche commento tecnico di analisti o ingegneri informatici. Ma cos’è esattamente?
YARA è uno strumento open-source sviluppato da Victor Manuel Alvarez durante la sua attività presso VirusTotal (oggi parte del gruppo Alphabet, la holding che controlla Google). È disponibile per Windows, Linux e macOS, ed è pensato per aiutare i ricercatori nella classificazione e identificazione dei malware grazie a un potente sistema di regole.
Può essere integrato con Python, tramite un’estensione dedicata, e usato in contesti automatizzati o in fase di risposta a incidenti, come accaduto con il famoso attacco WannaCry.
🛠 Perché usare YARA?
Con la quantità crescente di file e malware da analizzare, strumenti come YARA sono fondamentali perché:
- Permettono di scrivere regole personalizzate per identificare pattern sospetti.
- Possono cercare stringhe, metadati e strutture binarie in milioni di file.
- Sono flessibili e adatti sia per analisi locali che per integrazioni in sistemi più complessi.
Un esempio d’uso concreto? Cercare file che contengano la stringa "Microsoft Corporation"
ma che non siano realmente firmati da Microsoft, un classico segnale di falsificazione.
Installare Yara su Linux
wget https://github.com/VirusTotal/yara/archive/v3.6.0.tar.gz
tar xvfz v3.6.0.tar.gz
cd yara-3.6.0
Installare Yara su Windows

Prima di tutto scarichiamo uno dei pacchetti che troviamo su questo link https://www.dropbox.com/sh/umip8ndplytwzj1/AADdLRsrpJL1CM1vPVAxc5JZa?dl=0 nel formato che preferiamo e facendo attenzione a selezionare l’architettura giusta (32bit o 64bit: se abbiamo dei dubbi, tasto destro del mouse sul pulsante Start -> Sistema e scrolliamo fino a trovare Tipo di Sistema). Come possiamo notare tra i download possiamo anche trovare l’estensione per python.Mettiamo d’aver deciso di scaricare il file .zip: apriamolo e spostiamo i file yara64 e yarac64 (o yara32 e yarac32 se abbiamo l’architettura di 32bit) in una cartella sul nostro pc, magari, su Desktop così da non doverla andare a cercare ovunque successivamente.
Apriamo, quindi, il nostro Command Promt (andando sulla ricerca di Windows, in basso a sinistra, accanto al simbolo Start). Qui, dovremo individuare il luogo in cui la cartella che abbiamo messo sul nostro computer di Yara si trova. Il comando per accedere alla cartella dove si trova Yara sarà cd seguito dal nome della cartella. Se, come suggerito, l’abbiamo spostata sul nostro Desktop basterà quindi scrivere cd Desktop per accedervi.
cd nome-cartella
Dopo che sei entrato nella cartella giusta con il comando cd
, prova a vedere se YARA funziona davvero. Digita:
yara64.exe --version
(se hai il 64 bit, altrimenti usa yara32.exe
).
Se ti appare il numero di versione, significa che hai fatto tutto bene e YARA è pronto all’uso!
Se vuoi evitare di dover sempre andare nella cartella dove hai messo YARA, puoi aggiungere quel percorso alle variabili d’ambiente di Windows così puoi lanciarlo da qualsiasi posto:
- Cerca “Variabili d’ambiente” nel menu Start e apri “Modifica le variabili d’ambiente di sistema”.
- Clicca su “Variabili d’ambiente”.
- Seleziona la voce
Path
sotto “Variabili di sistema” e clicca su “Modifica”. - Premi “Nuovo” e aggiungi il percorso della cartella dove hai messo YARA.
- Dai OK a tutto e chiudi.
Installare Yara su Mac OS X
Se invece usi Mac, sei fortunato, è più semplice. Ti basta aprire il Terminale e scrivere:
brew install yara
Se non hai Homebrew, puoi installarlo da https://brew.sh/. In un attimo YARA sarà pronto da usare.
Primi passi ed esempi pratici di regole con Yara
1. REGOLA BASE
Ora che YARA è installato correttamente, possiamo iniziare a creare regole più interessanti per identificare file sospetti, potenzialmente pericolosi o semplicemente con caratteristiche ben definite.
Per esempio, crea un file chiamato test_rule.yar
con questo contenuto:
rule ExampleRule {
strings:
$a = "MZ"
condition:
$a at 0
}
Questa regola cerca file che iniziano con “MZ”, tipico degli eseguibili Windows.
Per testarla su un file chiamato sample.exe
, apri il prompt e scrivi:
yara64.exe test_rule.yar sample.exe
Se il file corrisponde, YARA ti dirà quale regola ha trovato.
2. RILEVARE MALWARE CON UNA STRINGA NOTA
Supponiamo di voler identificare un file che contiene la stringa "Hacked by XxMalwarexX"
, nota per essere associata a un malware.
rule MalwareStringaNota
{
strings:
$msg = "Hacked by XxMalwarexX"
condition:
$msg
}
Questa regola scansiona: yara64.exe MalwareStringaNota.yar sospetto.exe
per trovare quanto sopra indicato.
3. RICONOSCERE UN MALWARE TRAMITE PIÙ STRINGHE
Un malware può essere identificato da più stringhe caratteristiche. YARA permette di usare condizioni flessibili.
rule MalwareMultiStringa
{
strings:
$s1 = "keylogger"
$s2 = "password_dump"
$s3 = "connect_to_cc"
condition:
2 of ($s*)
}
Il 2 of ($s*)
indica che almeno 2 delle stringhe devono essere trovate affinché la regola venga attivata.
4. RICERCARE METADATI SPECIFICI (PER ES. STRINGA MICROSOFT FASULLA)
Questa regola cerca file che dichiarano di essere Microsoft, ma non lo sono veramente (non firmati).
rule FintaMicrosoft
{
meta:
description = "File che afferma di essere Microsoft ma non è firmato"
strings:
$company = "Microsoft Corporation"
condition:
$company
}
In uno scenario reale, si potrebbe integrare con un sistema che verifica la firma digitale, ma YARA da sola può almeno segnalare la presenza del nome sospetto.
5. RILEVARE FILE DI WANNACRY (BASATO SU INDICATORI NOTI)
rule WannaCry
{
meta:
description = “Rileva varianti note del ransomware WannaCry”
author = “ChatGPT”
strings:
$a = “WanaDecrypt0r”
$b = “taskdl.exe”
$c = “mssecsvc.exe”
condition:
any of ($a, $b, $c)
}
6. ESEGUIRE UNA SCANSIONE RICORSIVA SU UNA CARTELLA INTERE
YARA da riga di comando non supporta nativamente la scansione ricorsiva, ma puoi usare uno script:
for %f in (C:\scansione\*) do yara64.exe test_rule.yar %f
Su Linux/macOS:
find ./cartella -type f -exec yara test_rule.yar {} \;
- Testa sempre le tue regole prima di applicarle in produzione.
- Usa commenti e metadati per rendere leggibili le regole.
- Scrivi regole specifiche ma non troppo rigide, altrimenti potresti perdere varianti del malware.
- Combina stringhe testuali, esadecimali e condizioni complesse per maggiore accuratezza.
🔧 Suggerimenti per scrivere regole efficaci
- Testa sempre le tue regole prima di applicarle in produzione.
- Usa commenti e metadati per rendere leggibili le regole.
- Scrivi regole specifiche ma non troppo rigide, altrimenti potresti perdere varianti del malware.
- Combina stringhe testuali, esadecimali e condizioni complesse per maggiore accuratezza.
Conclusione
YARA è uno strumento potentissimo, ideale per chi si occupa di sicurezza informatica o vuole semplicemente indagare file sospetti. Sebbene all’inizio possa sembrare ostico – soprattutto se non hai mai usato la riga di comando – una volta capito il meccanismo ti renderai conto della sua flessibilità e potenza.
Abbiamo visto come installarlo, come testarlo e come scrivere le prime regole. Da qui in poi puoi personalizzare YARA con regole avanzate o persino integrarlo con Python per automatizzare analisi malware e threat hunting.
Buona caccia! 🧑💻🔎
Lascia un commento