Che cos'è un virus metamorfico
Un virus metamorfico è un programma che si replica da solo e che non si limita a nascondere il proprio codice, ma lo modifica. Ogni nuova copia è prodotta da un motore integrato che riscrive le istruzioni, per cui le copie hanno lo stesso comportamento ma condividono quasi nessuno schema di byte. Qui sta il punto: l'antivirus classico riconosce il malware dall'aspetto, e un virus metamorfico non ha mai due volte lo stesso aspetto.
Quello che fa una volta eseguito è un'altra questione. Il motore di mutazione è solo il travestimento, e il carico utile può essere qualunque cosa, dall'infezione dei file a un keylogger o a un canale silenzioso di esfiltrazione dei dati. Conviene ragionare così: il motore decide se può riconoscere il programma, il carico utile decide quanto le costerà.
Come si riscrive da solo
La mutazione avviene in un ciclo che il virus porta con sé, senza alcun aiuto esterno.
- 1
Lettura del proprio codice
Il motore disassembla il corpo del virus in un elenco di istruzioni che sa comprendere e modificare.
- 2
Trasformazione
Applica regole di riscrittura, come sostituire un'istruzione con una equivalente, riordinare blocchi indipendenti o inserire riempitivi innocui.
- 3
Ricostruzione
Riassembla le istruzioni modificate in un nuovo corpo funzionante, con indirizzi e salti diversi.
- 4
Infezione e ripetizione
La nuova copia viene collegata a un bersaglio e, quando viene eseguita, avvia di nuovo lo stesso ciclo.
Metamorfico e polimorfico a confronto
I due termini si confondono spesso. Un virus polimorfico mantiene lo stesso codice centrale e cambia solo l'involucro, di solito uno strato di cifratura con una chiave diversa ogni volta. Tolto l'involucro, riappare lo stesso corpo, e gli analisti hanno qualcosa di stabile da confrontare. Un virus metamorfico non ha un corpo stabile da individuare.
| Aspetto | Virus polimorfico | Virus metamorfico |
|---|---|---|
| Cosa cambia | Lo strato di cifratura e il suo decifratore | Il codice stesso del programma |
| Corpo dopo la decompressione | Identico in ogni copia | Diverso in ogni copia |
| Cosa porta con sé | Un motore di mutazione per l'involucro | Un motore che disassembla e ricostruisce il codice |
| Impegno per scriverlo | Moderato | Decisamente maggiore |
| Punto debole | Il corpo decifrato può essere confrontato | Il suo comportamento e gli schemi del motore stesso |
Tecniche di mutazione comuni
I motori metamorfici combinano un piccolo insieme di trasformazioni. Nessuna è sofisticata da sola, e l'effetto nasce dal sovrapporle nel corso delle generazioni.
- Sostituzione di istruzioni: sostituire un'istruzione con un'altra che dà lo stesso risultato.
- Riordino del codice: rimescolare blocchi che non dipendono l'uno dall'altro e correggere i salti tra loro.
- Ridenominazione dei registri: usare registri del processore diversi per le stesse operazioni.
- Inserimento di codice inutile: aggiungere istruzioni che non fanno nulla, come operazioni vuote o che si annullano a vicenda.
- Espansione e riduzione: sostituire una sequenza breve con un equivalente più lungo, o il contrario.
Perché le firme non bastano
La scansione per firme confronta un file con schemi di byte ricavati da campioni noti. Il metamorfismo attacca proprio questo presupposto, perché una nuova variante non ha alcuno schema mai registrato. Il rilevamento si sposta quindi da come appare il file a ciò che fa.
Uno strato affine è il monitoraggio dell'integrità dei file. Non riconosce affatto il virus: si accorge che un file protetto è cambiato senza che nessuno abbia autorizzato la modifica, e questo funziona qualunque sia l'aspetto del codice.
| Approccio al rilevamento | Richiede uno schema di byte noto | Vede il comportamento in esecuzione |
|---|---|---|
| Confronto di firme | ||
| Euristica statica | ||
| Monitoraggio del comportamento | ||
| Sandbox o emulazione |
Difesa a più livelli
Poiché nessun controllo singolo riconosce ogni variante, la difesa si costruisce a livelli che falliscono in modi diversi. La protezione degli endpoint basata sul comportamento, gli elenchi di applicazioni consentite e gli aggiornamenti tempestivi riducono la probabilità di infezione. La maggior parte delle infezioni inizia comunque da una persona, con un messaggio come il clone phishing o un file proveniente da un supporto rimovibile, perciò filtro della posta e regole sui dispositivi contano quanto lo scanner.
Si parta dal presupposto che prima o poi una variante verrà eseguita. Segmentazione della rete, account con privilegi minimi e backup testati limitano ciò che può toccare e la durata della bonifica.
Una scansione pulita non dimostra che la macchina sia pulita: davanti a un campione metamorfico, uno scanner a firme può solo riferire di non aver trovato nulla di noto.
Da dove iniziare
Si inizi chiedendosi fin dove potrebbe arrivare un'infezione riuscita, non come catturare ogni variante. Si faccia l'inventario degli endpoint che custodiscono dati sensibili, vi si attivi il rilevamento basato sul comportamento e ci si assicuri che modifiche insolite ai file e trasferimenti in uscita vengano notati.
L'ultima linea di difesa sono i dati stessi. Un controllo di DLP sull'endpoint, come Anexet DLP, osserva i canali da cui i dati escono, così una fuga può essere fermata anche quando il programma che l'ha avviata non è mai stato riconosciuto.
Non sempre si riconosce l'intruso, ma si può sempre osservare ciò che esce dalla porta.
