Ecco come un modello di deep learning “vede” il malware

L'immagine è presa da un precedente lavoro di Li Chen, una ricercatrice che ha partecipato allo studio, intitolato
L'immagine è presa da un precedente lavoro di Li Chen, una ricercatrice che ha partecipato allo studio, intitolato "Deep Transfer Learning for Static Malware Classification". Essa è una rappresentazione grafica di diversi file come visti dall'algoritmo. In rosso le regioni che il modello ritiene non siano utili alla classificazione, in verde invece quelle che contribuiscono alla decisione dell'AI.

Grazie a una collaborazione fra Microsoft e Intel è nato il progetto STAMINA (STAtic Malware-as-Image Network Analysis), dove con una tecnica innovativa è possibile convertire il malware in un’immagine per poi farlo analizzare da un classificatore AI.

Alla base della ricerca la scoperta che dai file binari convertiti in immagini è possibile estrarre pattern che consentono a una rete neurale di classificarli come malevoli o innocui. In questo progetto Microsoft ha messo a disposizione una parte della sua vasta libreria di malware – 2,2 milioni di file infetti raccolti anche grazie ai programmi di sicurezza endpoint presenti praticamente in ogni PC – mentre il classificatore deep transfer learning si basa su una ricerca di Intel.

Il metodo in realtà è semplice: il codice malevolo (virus, trojan, ecc) viene anzitutto convertito in una serie di pixel, che vengono successivamente assemblati in un’immagine a scala di grigi. Data la grandezza dell’immagine (che può contenere anche miliardi di pixel) essa viene ridotta a dimensioni accettabili senza che questo impatti sui risultati della classificazione. Infine le immagini sono analizzate con il metodo del deep learning da una rete neurale precedentemente addestrata su immagini di malware e di file innocui.

I risultati, come sempre accade nella sicurezza informatica, variano a seconda di quanta sensibilità si vuole assegnare al classificatore. Un approccio conservativo consente di far riconoscere alla rete neurale l’87,05% di malware (ciò vuol dire che quasi il 13% del malware non viene visto) con lo 0,1% di falsi positivi (file innocui ma erroneamente considerati malevoli). Un approccio più aggressivo consente all’intelligenza artificiale di riconoscere il 99,66% di malware ottenendo però il 2,58% di falsi positivi.

Se trent’anni nella cybersecurity mi hanno insegnato qualcosa è che nessuno vuole un prodotto che abbia il 2,58% di falsi allarmi (e se vogliamo dirla tutta anche il 13% di falsi negativi è un’enormità). Le aziende ogni giorno hanno a che fare con milioni di file – solo il mio PC ne contiene oltre mezzo milione – e il 2,58% di falsi positivi significa che potenzialmente decine di migliaia di file su ogni PC verrebbero visti come malware. Per fortuna oggi la stragrande maggioranza dei file non deve essere esaminata in maniera approfondita (si punta molto al confronto dell’hash con le whitelist nel cloud) ma anche così i risultati poco entusiasmanti metterebbero questa tecnica fuori mercato.

Sappiamo però che la sicurezza è fatta a strati, quindi è possibile impiegare un sistema del genere assieme a tutta una serie di controlli più tradizionali: una buona sinergia fra i vari metodi dovrebbe migliorare la sicurezza delle macchine, salvaguardandole dai troppi falsi allarmi. Nelle loro conclusioni i ricercatori affermano di avere allo studio ottimizzazioni alla piattaforma affinché sia veloce e usi poche risorse, al fine di non impattare troppo sull’operatività degli utenti.

Qui è disponibile lo studio completo con tutti i dettagli (in pdf): STAMINA Deep Learning for Malware Protection

Mi sono appassionato all'intelligenza artificiale da quando ho potuto vedere all'opera i primi sistemi esperti negli anni '80. Già dal 1989 mi occupavo di cybersecurity (analizzando i primi virus informatici) ma non ho mai smesso di seguire gli sviluppi dell'AI. Dopo la laurea in Management ho conseguito una specializzazione in Business Analytics a Wharton e una certificazione Artificial Intelligence Professional da IBM. Sono socio fondatore del chapter italiano di Internet Society, membro dell’Associazione Italiana esperti in Infrastrutture Critiche (AIIC), della Association for the Advancement of Artificial Intelligence (AAAI) e dell’Associazione Italiana per l’Intelligenza Artificiale (AIxIA). Partecipo ai lavori della European AI Alliance della Commissione Europea e del Consultation Forum for Sustainable Energy in the Defence and Security Sector della European Defence Agency. Questo blog è personale.