Categorie
Blog

YARA rules: uno strumento contro il malware

Cosa sono le regole YARA?

Le regole Yara (acronimo che sta per Yet Another Recursive Acronym) sono uno strumento sviluppato da Victor Alvarez, distribuito all’interno di Kali Linux e viene attualmente utilizzato dagli analisti di sicurezza (e da team di cyber security come Security Architect srl) per la ricerca di pattern malevoli all’interno di file eseguibili o testuali.

Volendo fare un’analogia, si potrebbe pensare ad esso come il comando grep di Linux, che sfrutta le espressioni regolari per ricercare porzioni di testo. Nel caso di YARA, il matching viene effettuato sulla base di regole precompilate contenenti ciascuna diversi pattern e diverse regole logiche per determinare se un file sia malevolo o meno.

La popolarità di questo strumento è talmente vasta che moltissimi produttori di antivirus lo utilizzano quale motore di analisi dei file.

Per approfondimenti lasciamo qui la documentazione ufficiale.

Come funzionano le regole YARA?

Le regole YARA sono come un pezzo di linguaggio di programmazione, funzionano definendo un numero di variabili, patterns, che contengono schemi trovati in un campione di malware.

Quando si analizza un pezzo di malware, i security analyst identificheranno modelli e stringhe univoci all’interno del malware che consentiranno loro di decidere a quale gruppo di minacce e a quale famiglia di malware è attribuibile il campione. Creando una regola YARA da diversi campioni, samples, della stessa famiglia di malware, è possibile identificare più campioni tutti associati forse alla stessa campagna o allo stesso autore della minaccia.

Nel nostro caso le regole YARA possono essere utilizzate come strumento di prevenzione dal cyber crime e risposta agli incidenti per rilevare file binari dannosi all’interno di un’organizzazione.

Quando si utilizzano?

YARA è estremamente popolare all’interno della comunità infosec, il motivo è che ci sono una serie di casi d’uso per l’implementazione di YARA rules:

  • Identificare e classificare i malware
  • Trovare nuovi samples basati su modelli specifici
  • Gli Incident Responder implementano regole YARA per identificare i dispositivi compromessi
  • L’implementazione proattiva di regole YARA personalizzate può aumentare le difese di un’organizzazione e migliorarne la security posture generale.

YARA rules: qualche elemento da sapere

Per costruire una regola YARA utile, dovrai conoscere i vari elementi che possono essere utilizzati per costruire la tua regola personalizzata.

Metadati

I metadati non influiscono su ciò che cercherà la regola YARA, ma forniscono informazioni utili sulla regola stessa.

  • Autore: nome, indirizzo e-mail, handle di Twitter.
  • Data: data di creazione della regola.
  • Versione: il numero di versione della regola per il monitoraggio delle modifiche.
  • Riferimento: collegamento a un articolo o download del campione, utilizzato per fornire informazioni pertinenti sul malware che la regola è progettata per rilevare.
  • Descrizione: una breve panoramica dello scopo della regola e del malware che mira a rilevare.
  • Hash: un elenco di hash di esempio utilizzati per creare la regola YARA.
Stringhe

È comune trovare stringhe uniche e interessanti all’interno di un campione di malware, queste sono l’ideale per costruire una regola YARA. Per definire una stringa all’interno di una regola, la stringa stessa deve essere dichiarata come variabile.

  • $a=”string from malware sample” – (stringa dal campione di malware)

Oltre a dichiarare una stringa, possiamo anche aggiungere modificatori dopo la stringa dichiarata per perfezionare la ricerca. Per es:

  • $a=”malwarestring” fullword – Questo modificatore corrisponderà a una parola esatta. Ad esempio, “www.malwarestring.com” restituirà una corrispondenza, ma “www.abcmalwarestring.com” non la restituirà.
  • $a=”malwarestring” wide – Corrisponde alle stringhe unicode separate da byte nulli, ad esempio “w.w.w… m.a.l.w.a.r.e.s.t.r.i.n.g… c.o.m.”
  • $a=”malwarestring” wide ascii – Ciò consentirà la corrispondenza della regola su caratteri unicode e ascii.
  • $a=”MalwareString” nocase – la regola corrisponderà alla stringa indipendentemente dalle maiuscole e minuscole.
Condizioni

La sezione delle stringhe definisce i criteri di ricerca che verranno utilizzati per una regola YARA, la sezione delle condizioni definisce i criteri per attivare una corrispondenza (trigger a successful match). Ci sono più condizioni che possono essere utilizzate:

  • uint16(0) == 0x5A4D – Il controllo dell’intestazione di un file è un’ottima condizione da includere nelle regole YARA. Questa condizione stabilisce che il file deve essere un eseguibile di Windows, questo perché i valori esadecimali 4D 5A si trovano sempre all’inizio dell’intestazione di un file eseguibile. Questo è invertito in YARA a causa dell’endianness.
  • uint32(0)==0x464c457f) o (uint32(0) == 0xfeedfacf) o (uint32(0) == 0xcffaedfe) o (uint32(0) == 0xfeedface) o (uint32(0) == 0xcefaedfe) – Usato per identificare i file binari di Linux controllando l’intestazione del file.
  • (#a == 6) – Il conteggio delle stringhe è uguale a 6.
  • (#a > 6) – Il numero di stringhe è maggiore di 6
  • Ecc…

Esistono, inoltre, diversi modi per specificare la condizione della dimensione del file.

  • (filesize>512)
  • (filesize<5000000)
  • (filesize<5MB)

Una volta che le stringhe sono state dichiarate all’interno di una regola, puoi personalizzare il numero di corrispondenze che devono essere trovate perché la regola identifichi un certo file come dannoso.

Es: 2 of ($a,$b,$c)
3 of them
4 of ($a*)
all of them
any of them
$a and not $b

Ove possibile, sarebbe meglio utilizzare 2-3 gruppi di condizioni per evitare di generare falsi positivi e per creare anche una regola affidabile.

Importazioni

Le importazioni sono un ottimo modo per implementare condizioni aggiuntive nelle regole YARA. Per esempio si può utilizzare l’importazione PE. L’aggiunta della sintassi “import pe” all’inizio di una regola YARA ti consentirà di utilizzare la funzionalità PE di YARA, utile se non riesci a identificare stringhe univoche.

Conclusioni

Abbiamo illustrato molto brevemente le regole YARA per iniziare a cercare nuovi campioni per l’analisi o, in alternativa, iniziare a implementare alcuni rilevamenti proattivi all’interno della tua organizzazione. Vi sono però tantissime variabili da implementare per far sì che una regola possa effettivamente rilevare con efficacia le minacce presenti sui dispositivi e sulle reti di un’azienda.

Se stai cercando di maturare la Security Posture della tua organizzazione, dai un’occhiata ai servizi di Security Architect srl e al nostro centro SOC.

scopri i nostri servizi:
Sicurezza Informatica: una necessità nel Sud Italia
Blog News

Sicurezza Informatica: una necessità nel Sud Italia

Sud Italia e cyber attack La questione della sicurezza Informatica nel Sud Italia viene raramente sviscerata. Gli attacchi informatici rappresentano ormai una sfida quotidiana che le imprese italiane devono affrontare e gestire con...
Leggi tutto
Cyber security: i rischi per le PMI
Blog

Cyber security: i rischi per le PMI

Quali sono gli errori da evitare nelle aziende e nelle start-up riguardo alla cyber security? Le PMI, spesso, non dispongono di strategie efficaci per la sicurezza informatica end-to-end. I criminali informatici ne sono...
Leggi tutto
AGCOM: dal 21 Novembre Parental Control automatico
News

AGCOM: dal 21 Novembre Parental Control automatico

Dal 21 novembre 2023 sarà obbligatoria per tutti i provider la funzione di parental control attivata per impostazione predefinita su tutte le linee intestate a soggetti minorenni Nel Gennaio di quest'anno AGCOM (Autorità...
Leggi tutto
Come proteggere i tuoi dati dall’esposizione in ChatGPT
Blog

Come proteggere i tuoi dati dall’esposizione in ChatGPT

ChatGPT e gli altri strumenti che sfruttano L'IA stanno trasformando il modo in cui pensiamo nuovi contenuti o manipoliamo le informazioni, il che può potenzialmente comportare un salto di qualità in termini di...
Leggi tutto
Security e GDPR compliant anche con applicazioni e sistemi obsoleti
Blog

Security e GDPR compliant anche con applicazioni e sistemi obsoleti

Spesso accade che le aziende continuino ad utilizzare software obsoleti per impossibilità alla sostituzione completa esponendosi a rischi per la sicurezza e inosservanza delle norme (GDPR, NIS, DL 231, ecc...). Questa situazione critica...
Leggi tutto
Perché è necessario il monitoraggio continuo della rete?
Blog

Perché è necessario il monitoraggio continuo della rete?

Bollino rosso su strade e autostrade, al via il controesodo estivo per milioni di italiani preparati al rientro in ufficio. Dai bagnasciuga alle scrivanie, la priorità delle aziende è assicurare un re-start a...
Leggi tutto
10 consigli di cyber security per viaggi di lavoro e il remote working
Blog

10 consigli di cyber security per viaggi di lavoro e il remote working

Molti smart business, start-up e organizzazioni operano ad oggi in un modello distribuito (distributed model), con filiali ed endpoint distribuiti al di fuori di un ufficio fisico. Il concetto di perimetro di rete...
Leggi tutto
Profili social hackerati: come difenderci
Blog News

Profili social hackerati: come difenderci

Profili social hackerati: in questo articolo esploreremo la sfera dei social media dal punto di vista degli hacker e della sicurezza informatica. Come possiamo evitare che qualcuno si appropri dei nostri profili social?...
Leggi tutto
LA ROBOTICA COLLABORATIVA A SERVIZIO DELLE IMPRESE: Cyber Defense delle reti OT
Eventi

LA ROBOTICA COLLABORATIVA A SERVIZIO DELLE IMPRESE: Cyber Defense delle reti OT

Security Architect srl si fa portavoce dell'importanza di estendere la sicurezza informatica anche ai sistemi di Operational Technology (Cyber Defense delle reti OT) all'interno del seminario di alta formazione Robotica Collaborativa al servizio...
Leggi tutto
Leave this field blank
Per saperne di piÙ

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *