Gli attori malevoli sono conosciuti per essere restii al cambiamento, tant’è che esistono grandi banche dati (knowledge base) dedicate solo alla raccolta delle tattiche e delle procedute degli attaccanti, come la Mitre Att&ck.
I motori antivirus usano di base una ricerca basata su un database di firme Hash; l’hash è una funzione matematica che restituisce una stringa univoca di caratteri a partire da un determinato oggetto di un file, per determinare se un programma è già stato identificato come malevolo ma, come sappiamo bene, le firme sono facili da cambiare. Viene quindi in soccorso il Fuzzy Hash (che consiste nel rigenerare l’hash cambiando quando qualche cosa in modo da avere molti Hash di file simili). Ma, se cambiassimo completamente il programma mantenendo lo stesso comportamento?
Squadra che vince non si cambia
Secondo Blackberry sta andando di moda la traduzione di vecchi malware in linguaggi poco conosciuti, questo oltre a variare completamente la firma, rende l’analisi del malware difficoltosa da un punto di vista statico.
La semplice traduzione di un malware rende pericolose nuovamente le vecchie conoscenze, questo perché passerebbero inosservati a un semplice controllo della firma, potendo portare a termine procedure conosciute per essere sicuramente funzionanti. Una cosa possibile sarebbe usare un malware scritto con un linguaggio inusuale, per scaricare il malware scritto C in che si è sempre usato, semplificando di molto la fase di delivery.
Questo ha reso inutili gli antivirus?
Ad oggi le soluzioni di protezione per l’utente finale (Endpoint Protection) sfruttano diversi sistemi per accorgersi di un‘infezione; oltre alla firma abbiamo un'analisi comportamentale e la scansione euristica a dare una mano; più recentemente i produttori si stanno dotando di motori basati sul machine learning sempre più performanti.
Una ricerca di tipo euristico si basa su quello che possiamo definire un gigantesco costrutto “if-then-else”, cercando in analisi statica nel codice dei pattern riconoscibili e analizzandone la struttura. A volte questo tipo di analisi si svolge in una Sandbox (ricordate nei film americani si vedono in bambini giocare in giardino in qui rettangoli con la sabbia? Quella è la Sandbox, un luogo quindi dove si può giocare senza farsi male isolati dall’esterno).
La Behavourial Analisys, ossia l’analisi comportamentale, va alla ricerca di chiamate api conosciute, creazione di chiavi di registro, modifiche di file o in generale di comportamenti noti come l’innesto in punti di persistenza conosciuti, o l'evocazione di servizi insoliti, ad esempio, il servizio fax di windows (che il malware potrebbe anche aver compromesso in precedenza), oppure con nomi che somigliano molto a servizi noti, pensiamo a svch0st con uno 0 al posto della o.
Questo tipo di analisi sono soggette a sollevare qualche falso positivo per questo i vengor di soluzioni di protezione si stanno dotando di moderni modelli di classificazione e regressione basati sul machine learning.
Il fattore umano
La potenza è nulla senza controllo, quindi dotarci di motori potenti senza poter dare loro dati utili in pasto non porta a nulla. Nasce una seconda difficolta nell’analisi di questi nuovi malware: gli analisti sono abituati al linguaggio c/c++ e gli strumenti non sono in grado di analizzare programmi scritti con questi nuovi linguaggi; strumenti con cui si è lavorato per anni ora non funzionano più bisogna, quindi impararne di nuovi oltre ad avere sufficiente elasticità per imparare a leggere qualche riga di Golang al posto di c++.
Questo spinge ad allontanarsi dall’analisi statica per avvicinarsi a quella dinamica, con tutti i rischi del caso: disporre di una ambiente protetto, conoscere come simulare una rete internet senza essere connessi, non compromettere il resto dell’infrastruttura mentre si sperimenta. L’analisi dinamica è di per sé più difficile da condurre e richiede forti conoscenze nell’ambito del sistema operativo da proteggere.
Queta sferzata di vento nel mondo malware farà impennare la richiesta di analisti malware giovani al passo con i tempi, che hanno imparato come scrivere in linguaggi esotici e moderni capaci quindi di portare a termine un’analisi statica priva dei vecchi indicatori e di affrontare efficacemente l'analisi dinamica della minaccia. Se siete interessati il corso di Dynamic Malware Analisys sarà sicuramente un'esperienza stimolante!