Nel sempre crescente panorama delle minacce informatiche, la sicurezza dei dati e dei sistemi è diventata una priorità assoluta per organizzazioni di ogni dimensione. Per condividere informazioni come indicatori di compromissione (IoC) che permettono di individuare rapidamente file malevoli all’interno del network di una organizzazione, sempre più ricercatori si affidano alle Yara Rules. Queste regole personalizzate e flessibili svolgono un ruolo fondamentale nell’individuazione tempestiva delle minacce informatiche consentendo alle organizzazioni di proteggere i propri dati e i propri sistemi. In questo articolo, esploreremo in dettaglio cosa sono le Yara Rules, come funzionano e perché sono diventate uno strumento indispensabile nella caccia alle minacce informatiche.
Nel mondo della cybersecurity, per cercare di creare un mondo ideale senza malware, la condivisione delle informazioni è di fondamentale importanza. Infatti, esistono tante grosse aziende di ricercatori e analisti indipendenti che analizzano e fanno reverse engineering sui malware tutto il giorno, scrivono Yara Rules da poi condividere con la community.
Possiamo intendere le Yara Rules come una raccolta di indicatori (IoC) all’interno di un costrutto IF, questo perché alla fine non avremo altro che in risposta un True o un False sul match della regola verso un file.
Analizziamo insieme una Yara Rules
Per capire meglio com’è strutturato questo fantastico strumento, di seguito, riportiamo una regola presa dalla community:

La regola presa in esempio è stata scritta per identificare un particolare tipo di minaccia di tipologia RAT (Remote Access Trojan). Nella sezione “meta” vediamo come sono presenti metadati necessari per identificare cosa la regola individua, da chi è stata scritta, e in oltre possiamo notare tre sha256 differenti rappresentanti i sample presi in campione per scrivere la regola.
Nella seconda sezione “strings” troviamo invece quelle che possiamo definire variabili che, a tutti gli effetti, rappresentano gli IoC. Prendiamo ad esempio $x1 = “Nuclear Explosion.g.resources” fullword ascii.
Le parole in grassetto rappresentano una keyword, questa garantisce che la condizione ritorni True solo se, la stringa, appare nel file delimitato da caratteri non alfanumerici. Ad esempio, la stringa, non ritornerebbe True con la frase “TheNuclear Explosion.g.resources” ma corrisponderebbe con “Nuclear Explosion.g.resources.exe”.
Prendiamo, invece, la $x6 = ” Revenge-RAT 201″ wide. In questo caso la keyword è wide, usata per cercare stringhe codificate con due byte per carattere, cosa tipica di molti binari eseguibili (ad esempio, il carattere R in hex sarebbe semplicemente 52, se invece utilizziamo la keyword “wide” essa cercherà per qualcosa simile a questo: 52 00 …).
Infine, come ultima sezione della Yara abbiamo la “conditions”. Qui è definito il costrutto IF, quello che restituirà a tutti gli effetti True oppure False.
Analizzando questa sezione riusciremo a comprendere meglio che tipo di condizioni sono necessarie all’interno di un file affinché questo possa essere ricondotto alla tipologia di RAT di cui stiamo facendo hunting:
- uint16(0) == 0x5a4d -> Questa condizione indica che il file deve essere un eseguibile.
- (filesize < 500KB and 1 of ($x*) ) -> Questa condizione indica che la regola effettua il match se la dimensione dell’eseguibile è minore di 500kb ed è presente almeno una stringa $x.
- or ( 3 of them ) -> Infine, questa parte indica che la regola può essere soddisfatta anche se l’eseguibile è più grande di 500KB se sono presenti almeno tre stringhe.
Per completare questa introduzione alle Yara Rules lasciamo di seguito il link alla documentazione ufficiale che vi permetterà di approfondire ulteriormente: https://yara.readthedocs.io/en/stable/.
MALCAT – The Binary File Dissector
Ora che vi abbiamo presentato questo fantastico strumento per l’analisi malware, dobbiamo anche cominciare ad utilizzare queste regole nella pratica. Seppur ci siano tanti metodi per utilizzarle il metodo preferito da 8BitSecutity è senza dubbio l’utilizzo di MalCat.

MalCat è un relativamente nuovo strumento, molto potente, per l’analisi statica dei malware; attualmente si trova ancora in fase di sviluppo e progredisce rapidamente, potete trovare l’ultima versione e il sito web ufficiale qui.
Tra le varie fantastiche funzioni di questo tool, come la visualizzazione dell’hex, il disassembler, la funzione di Threat Intelligence (quest’ultima purtroppo non disponibile nella versione free) e la possibilità di lanciare script Python direttamente sul sample in analisi, è anche presente la possibilità di importare Yara Rules che verranno lanciate automaticamente sull’eseguibile in analisi.
Visto che per imparare bisogna provare e sperimentare, di seguito apriamo il sample “4d01656b8804c29b13f7ae7f210a0c0f” tramite MalCat.
Appena aperto l’eseguibile ci ritroviamo subito questa schermata riassuntiva: Nel quadrato verde troviamo i vari metadati del sample, nel rosso invece vediamo le Yara Rules da noi importate che hanno effettuato il match sul sample.

Vediamo che nella sezione “Odd” sono presenti un bel po’ di Yara Rules che effettuano il match sul sample, queste regole sono già presenti all’interno di MalCat nel momento in cui voi lo installerete. Invece, in “Other” appariranno tutte quelle da voi importate ed alcune relative al compiler o packer (argomento che tratteremo meglio in seguito in una mini-analisi).
Proviamo ora ad andare a visualizzare uno dei match individuati dal software, guardiamo, ad esempio, la Yara Rules che ricerca la creazione di Schedule Task da parte di un sample:

Vediamo come semplicemente cliccando su una delle Yara, Malcat ci mostrerà il relativo match all’interno della visualizzazione hex:

Questo può risultare molto comodo in situazioni in cui serve anche sapere in quale sezione dell’eseguibile si trova il match; ad esempio: se stiamo cercando una dll cosiddetta “patched”, è possibile che a un libreria legittima sia stata aggiunta una parte di codice malevolo; in questo caso, individuare dove è stata “appesa” la parte malevola, per un ricercatore, è un informazione molto rilevante.
Conclusioni e Documentazione
Con questo abbiamo terminato la nostra introduzione alle Yara Rules, lasciamo per comodità qui di seguito i link relativi alla documentazione Yara e MalCat. Infine, in caso non abbiate letto la nostra guida su come creare un ambiente protetto per la Malware Analysis, vi invitiamo a recuperare l’articolo che troverete in calce.
- Documentazione Yara Rules
- Sito ufficiale Malcat
- 8BitSecurity: Guida alla creazione di un ambiente protetto per l’analisi malware: dalle sandbox all’Internet Simulation






