Un nuovo approccio basato su reti neurali potrebbe cambiare il volto delle rilevazioni di codice malevolo nel prossimo futuro.

I malware rappresentano la principale minaccia degli ambienti digitali, per via della loro natura malevola e subdola nel condurre attacchi contro i sistemi che infettano. Tecniche per mitigare i danni da infezione e incrementare la sicurezza online sono state sviluppate nel corso degli anni, ma i cyber criminali hanno sempre trovato nuovi metodi per aggirarle. Basti pensare che solo nel 2023 si è registrata l’insorgenza di oltre 450.000 nuovi malware su base giornaliera e oltre 100 milioni su base annuale.

neural network malware detection 2024

Il codice malevolo che li compone si annida in pattern specifici, residui di un software, o file di uso comune, per nominarne alcuni. Tuttavia, con l’espandersi e l’affermarsi dell’intelligenza artificiale, un nuovo approccio per la sicurezza informatica ha iniziato a prendere piede: una tecnica di rilevamento basata su deep learning.

Ma come dico sempre: andiamo con ordine e affrontiamo per gradi l’argomento.

  1. Come avviene l’analisi antimalware?
  2. Una panoramica sul Deep Learning
  3. Riconoscimento di immagini e classificatori
  4. Come si può creare un’immagine con pattern malevolo?
  5. Come funziona su larga scala?

Come avviene l’analisi antimalware?

Le tecniche di analisi antimalware sono solitamente suddivise in due categorie ben precise: statiche e dinamiche.
Un’analisi statica prevede la ricerca di pattern malevoli all’interno di un’applicazione senza che questa sia effettivamente eseguita.
I file e i dati che la compongono vengono prima decriptati e in seguito scomposti in vettori di caratteristiche, i quali rappresentano il contenitore del pattern malevolo.
Antivirus e antimalware più convenzionali impiegano il metodo della firma per la rilevazione dei malware.
Questo si basa sul confronto tra il pattern malevolo rilevato nell’applicazione sotto analisi e quello presente all’interno del suo database. Tale metodo, però, non è completamente sicuro, in quanto basta un minimo cambio di pattern da parte del malware per mascherarsi agli occhi del software analizzatore.
L’analisi dinamica, invece, prevede l’esecuzione diretta dell’applicazione in un ambiente virtuale controllato, in modo che si possa osservare il suo comportamento e rilevare potenziali pattern malevoli.

In generale gli esperti di cybersecurity e i ricercatori IT impiegano un approccio ibrido, ovvero una combinazione delle analisi statiche e dinamiche per il rilevamento di nuovi pattern malevoli.
Tuttavia, la crescita esponenziale delle varianti malware rappresenta una grossa sfida per le soluzioni antimalware e quelle discusse poc’anzi non sono in grado di rilevare in maniera certa il polimorfismo rapidissimo dei pattern malevoli. Ecco perché si è pensato di tentare un approccio completamente diverso, che potrebbe rappresentare un punto di svolta.

Una panoramica sul Deep Learning

Nel mondo moderno le tecniche di apprendimento automatizzato, o di machine learning, sono alla base di molti sistemi che impieghiamo quotidianamente.
Dai motori di ricerca, al filtraggio e alla raccomandazione di contenuti sulle piattaforme online più utilizzate, fino a giungere ai nostri smartphone.

Il machine learning essenzialmente permette di:

  • Identificare automaticamente oggetti ed elementi in un’immagine;
  • Trascrivere una registrazione vocale in un testo;
  • Selezionare gli interessi gli interessi di un utente in base alla sua attività online;
  • Definire una serie di risultati pertinenti alla ricerca di un utente;

Il deep learning è il culmine delle tecniche di approfondimento automatizzato.
Si tratta di una diretta evoluzione del machine learning e implica l’utilizzo di un insieme di reti neurali organizzate in un determinato numero di strati, ciascuno dei quali si occupa di elaborare e calcolare valori specifici da passare allo strato successivo. In questo modo l’informazione finale diventa sempre più completa e rapida man mano che nuovi set di dati vengono elaborati nel tempo.

In questo modo si viene a creare un sistema che è in grado di apprendere in maniera automatica la corretta rappresentazione dei modelli di informazione e risolvere al tempo stesso risolvere problemi senza la necessità di una fase di pre-processing: cosa espressamente richiesta dalle tecniche basate su machine learning.

Attualmente il deep learning è utilizzato principalmente nella realizzazione dei modelli di intelligenza artificiale, per i motivi descritti poc’anzi.
Per un uso più vicino all’utente e non puramente accademico, o uso proprietario, la tecnica trova applicazione in:

  • Classificazione di immagini;
  • Riconoscimento della lingua parlato e conseguente elaborazione;
  • Guida autonoma con riconoscimento di segnaletica stradale, pedoni e ostacoli;
  • Traduzione in tempo reale dei contenuti in streaming (detta anche tecnica di video captioning);
  • Sistemi di sicurezza, come videocamere di sorveglianza con riconoscimento facciale;
  • Diagnosi mediche per identificare subito l’insorgere di cellule tumorali;

Riconoscimento di immagini e classificatori

Come abbiamo potuto constatare nel paragrafo precedente, il deep learning si sta facendo rapidamente strada nella nostra quotidianità.
Non solo queste tecniche si sono rivelate utili in svariati ambiti, ma si sono anche dimostrate capaci di sorpassare le performance umane sotto molteplici aspetti. Di certo una di quelle più interessanti è la classificazione delle immagini.

I classificatori basati su deep learning sono istruiti mediante l’apprendimento diretto, piuttosto che con algoritmi task-based.
Ciò significa che la macchina impara a riconoscere determinati pattern presenti nelle immagini, in modo da poter comprendere cosa queste rappresentino senza l’intervento umano. Con questo metodo, il sistema diviene in grado di estrarre informazioni e classificare i dati in maniera automatica.
I primi strati della macchina diventano capaci di riconoscere i bordi di un’immagine, mentre i successivi si occupano di combinare i dati ottenuti da questi, sino ad ottenere una rappresentazione quanto più comprensiva e completa possibile.

Partendo da questo presupposto, ricercatori accademici ed esperti di cybersecurity si sono posti una domanda: se un’immagine fosse trasformata in un malware?

Come si può creare un’immagine con pattern malevolo?

La distinzione tra un’immagine contenente un pattern malevolo e di una innocua, avviene mediante una classificazione binaria. Quando un dataset viene creato, ogni singolo file viene convertito in un’immagine 256×256 in scala di grigi, con ciascun pixel che ha un valore compreso tra 0 e 255. Gli step del processo sono i seguenti:

  • L’algoritmo legge 8 bit alla volta per file;
  • Gli 8 bit sono trattati come numeri binari e convertiti nel loro corrispettivo numero intero;
  • Il numero ottenuto è trasformato in un valore pixel;

Una volta che tutte le immagini sono state generate, queste vengono conservate in cartelle separate per distinguere i pattern malevoli, da quelli benigni. Ciò avviene a seguito di un confronto condotto con veri malware, in modo da fornire al sistema un quadro quanto più esaustivo di come si dovrebbe presentare un pattern malevolo creato intenzionalmente.

Le immagini che presentano un pattern benigno vengono etichettate come tali e salvate in una locazione separata da quelle etichettate come malevoli.

L’operazione porta alla creazione di un dataset che permette alla macchina di distinguere e di apprendere autonomamente la distinzione tra i due pattern appena creati. È stato stimato che la macchina è in grado di apprendere la distinzione tra immagine malware e immagine benigna dopo 15 cicli di training, con un errore sistematico pari allo 0.02% al termine dell’ultimo ciclo.

Come funziona su larga scala?

Il dataset che si è venuto a creare è solo un piccolo esempio di ciò che è possibile realizzare con un metodo di deep learning. I ricercatori e gli esperti di AI hanno in seguito dato vita ad un vero e proprio framework di tipo ibrido, che combina tecniche di deep transfer learning e machine learning convenzionale per la rilevazione di malware.

Esso funziona nel seguente modo:

  1. Gli algoritmi di deep transfer learning estraggono le caratteristiche nascoste dall’ultimo strato del modello di deep learning e subito dopo i modelli basati su machine learning vengono impiegati per l’individuazione di discrepanze fra input e output. In questo modo la macchina è in grado di apprendere in maniera autonoma come condurre i task di reverse engineering per il software in analisi.
  2. Il framework genera un image-based PE dataset, trasformando eseguibili sia malevoli, che innocui di Windows in immagini RGB. Seguono confronti con 15 modelli di deep transfer learning, in modo da individuare il pattern tipico dei malware e incrementare al tempo stesso il proprio modello di autoapprendimento.
  3. Il risultato dell’analisi viene quindi fornito all’utente, mentre la macchina valuta autonomamente l’efficacia e l’efficienza dei propri modelli, classificando al tempo stesso i vari malware rilevati.

In conclusione

Il deep learning applicato alla rilevazione dei malware è senza dubbio un metodo molto interessante che porterà a risultati concreti nel prossimo futuro, in quanto capace di apprendere rapidamente la configurazione di un pattern e le sue modifiche anche minime.
Tuttavia, bisogna considerare che allo stato attuale è un metodo molto dispendioso in termini economici, visti il costante aggiornamento e la valutazione periodica dei modelli di apprendimento da sottoporre al sistema. Inoltre, va considerata anche l’evoluzione dei malware stessi, in grado di adattarsi sfruttando tecniche di ingegneria sociale.
Allo stato attuale l’approccio ibrido con tecniche di analisi statiche e dinamiche con un accenno di machine learning, rimarrà lo standard.

Ma in futuro è possibile che il deep learning rappresenterà l’unica soluzione per l’individuazione di malware, complice una riduzione consistente dei costi di sviluppo e di mantenimento.