Antivirus: sulle tracce dei malware, anche con tecniche euristiche

antivirus tecniche euristiche malware

antivirus tecniche euristiche malware

L’antivirus è uno strumento fondamentale nella nostra “vita informatica” quotidiana, analizzando i file del nostro computer grazie soprattutto a tecniche euristiche ci permette di individuare potenziali malware prima che possano fare danni ingenti. Tuttavia, ci capita spesso di approcciarci a questo programma vedendone soltanto il cruscotto grafico, senza pensare a quello che in realtà c’è sotto. Anzi, il più delle volte ci sembra soltanto una perdita di tempo far fare la scansione del sistema alla ricerca di potenziali software che potrebbero compromettere la nostra sicurezza. Ma come fa nella pratica un antivirus a dirci se un programma è malevolo? Esistono alcune tecniche consolidate che possono essere combinate per aumentare la capacità di analisi, fra queste:

  • Analisi statica, dove si confrontano le “firme” dei virus che già si conoscono con il codice de-compilato del programma analizzato;
  • Sandbox, ovvero degli ambienti isolati, realizzati ad-hoc, che permettono di far girare il software sospetto per capire il suo comportamento e sulla base delle azioni decidere se classificarlo come malevolo o meno;
  • Metodi euristici, che cercano di predire la bontà o meno di un’applicazione tramite delle stime rispetto a modelli predefiniti.

Queste tre tecniche base possono più o meno essere combinate da ciascun produttore per ottenere risultati diversi (e sperabilmente più performanti) nella ricerca di software malevolo.

Tecniche semplici ma ormai ben affinate

L’analisi statica (conosciuta anche come metodo basato sulla firma) utilizza la firma dell’eseguibile, sua caratteristica intrinseca, e la compara con un database di firme provenienti da malware già noti. Come è facile intuire il vantaggio principale è che, nel caso di una corrispondenza, saremo certi che quel file è malevolo per via dell’impronta tipica già rilevata per quel tipo di virus. D’altro canto, la più grande difficoltà è avere un database sempre aggiornato che sarà, naturalmente, a carico del produttore mantenere. Questo si traduce in una notevole deficienza in termini di identificazione di minacce non ancora note proprio perché non analizzate e poco diffuse.

Mantenere un database di firme dei malware è una delle maggiori responsabilità del produttore.
Mantenere un database di firme dei malware è una delle maggiori responsabilità del produttore.

L’altro approccio molto ben consolidato è l’utilizzo di sandbox che, come dicevamo, sono macchine virtuali isolate. Il loro isolamento garantisce che potenziale software pericoloso possa essere eseguito senza particolari impatti e anzi se ne possa valutare il comportamento così da capire come classificarlo. Questa modalità è estremamente efficace per analizzare quali danni è in grado di provocare il software oggetto di analisi ma, di fatto, non aumenta la nostra capacità di previsione verso potenziali malware. Inoltre, l’utilizzo di macchine virtuali è poco pratico nell’uso quotidiano quando abbiamo spesso fretta di aprire documenti, installare applicazioni o decomprimere archivi ma forse più adatto ad un uso di laboratorio dove si possono fare ricerche e analisi più avanzate.

Le tecniche euristiche contro i malware

La terza tecnica è quella basata sui metodi euristici che cercano di predire la bontà o meno del file analizzato. Che cos’è un’euristica? Generalmente, in ricerca operativa un metodo euristico è un algoritmo in grado di arrivare a una soluzione buona (non necessariamente ottima, ovvero la migliore che potremmo produrre) in tempi più brevi rispetto a un metodo classico. Questo approccio è particolarmente efficace per i cosiddetti problemi NP-Completi, cioè problemi particolarmente complessi che richiederebbero tempi di risoluzione e capacità computazionale troppo elevati ma che possono trovare una risposta con questi algoritmi.

I metodi euristici sono utilizzati per classificare i file nella corretta categoria.
I metodi euristici sono utilizzati per classificare i file nella corretta categoria.

Nella realtà degli antivirus con tecniche euristiche si intendono soprattutto metodi di Machine Learning che hanno l’obiettivo di classificare un dato file nella categoria dei virus oppure dei file attendibili. L’analisi si basa specialmente su alcune caratteristiche tipiche come: le chiamate di sistema o ad API, l’analisi del grafo del flusso di controllo, così come, a più basso livello l’analisi degli operational code, cioè i codici a livello macchina che identificano l’operazione che dovrà essere eseguita.

In base alla tecnica di classificazione usata (tipo Naïve Bayes) e al raffinamento degli algoritmi di classificazione usati otterremo una predizione tanto più rispondente alla realtà. Inoltre, l’approccio euristico è particolarmente valido nei casi di virus polimorfici, che cioè sono in grado di cambiare il loro codice. L’algoritmo è in grado di valutare una corrispondenza anche parziale nel codice applicativo che consente di attivare i necessari allarmi e mettere in guardia l’utente dal potenziale pericolo. Il più grande svantaggio, invece, sta proprio nella difficoltà di predire con certezza un virus e potenzialmente generare falsi positivi che inficiano sulla normale operatività di noi utenti.

Antivirus a confronto

Fin dall’inizio di questa analisi abbiamo detto come questi programmi siano di fatto ancora piuttosto ignoti agli utilizzatori finali. Tuttavia, recenti studi come quello guidato dal gruppo del Politecnico di Milano mirano a far luce nelle diverse implementazioni tramite inferenze basate sui risultati ottenuti analizzando uno stesso malware con diversi applicativi. Il framework che hanno realizzato permette di capire il comportamento degli antivirus in presenza di diversi applicativi valutandone la capacità di risposta ma soprattutto l’applicazione di una tecnica piuttosto che un’altra.

In conclusione, quindi, questi strumenti estremamente affascinanti per gli amanti della sicurezza informatica rimangono ancora piuttosto oscuri ma abbiamo sempre più conoscenze per valutarne le capacità e le tecnologie. Magari in un futuro non troppo lontano avremo anche uno standard aperto che consenta di allineare le tecnologie e fornire strumenti sempre più efficaci. D’altronde il motto “Security through obscurity” è fortemente sconsigliato per garantire alti livelli di sicurezza nei nostri sistemi!