L’evoluzione dei sistemi antiviru

L’antivirus rappresenta la prima linea di difesa contro le minacce informatiche: per questo, da sempre, la regola di base della sicurezza informatica è l’installazione e il continuo aggiornamento del software di controllo installato sul proprio computer. Tra le tante soluzioni disponibili sul mercato, però, non è affatto semplice scegliere qual è il migliore per le nostre esigenze. Ecco quindi una breve guida ragionata per imparare tutti i segreti degli antivirus, capire come funzionano e acquisire quindi le competenze giuste per scegliere i migliori.

 

Cosa sono gli antivirus

Con la nascita dei computer sono comparsi – quasi immediatamente – i virus, nella prima metà degli Anni 80 (fu Fred Cohen, nel suo saggio Computer Viruses – Theory and Experiments del 1984 a definire per la prima volta il concetto di “virus informatico”). Nella maggior parte dei casi erano veicolati attraverso i floppy disk, che in quei tempi rappresentavano il principale mezzo per lo scambio dei dati. Non molto tempo dopo sono arrivati gli antivirus, dando inizio all’eterna lotta tra guardie (analisti e ricercatori di sicurezza) e ladri (criminal hacker) che da sempre caratterizza il mondo dell’informatica.
Il primo prodotto del genere fu messo in commercio dall’azienda tedesca G Data nell’anno 1987 e successivamente da John McAfee.Negli anni sia i virus sia gli antivirus si sono enormemente evoluti, ma fin da allora fu subito chiaro che sarebbe stato impossibile per qualsiasi antivirus riuscire a riconoscere tutti i possibili virus che continuamente nascevano e si modificavano.
Oggi il termine antivirus è spesso sostituito da quello di antimalware, che è sostanzialmente un suo sinonimo in quanto il termine malware (crasi delle parole “malicious software”) include in modo estensivo qualunque tipo di software dannoso, tra cui anche i virus.
Antivirus e antimalware sono in pratica software finalizzati alla rilevazione e alla successiva eliminazione dei vari tipi di codici malevoli.
Nell’accezione “software malevoli” sono compresi, oltre ai virus, una grande varietà di malware (spyware, keylogger, trojan, adware, ransomware, rootkit, worm e via dicendo). Non li tratteremo in questa sede, soffermandoci invece sui software antimalware utili per contrastarli.

Come funzionano gli antivirus

Capire come funzionano gli antivirus è utile anche per comprenderne i limiti. I primi antivirus eseguivano un controllo sostanzialmente “meccanico” basato sul controllo della firma dei virus (si definiscono appunto “signature-based”). La “signature” (firma) viene generata attraverso un algoritmo di hash e, per la sua univocità, è paragonabile ad un’impronta digitale che individua in modo univoco un file. Si parla infatti di “fingerprint”. Con questo funzionamento erano in grado di rilevare i virus noti, perché già presenti nel loro database delle definizioni dei virus, ma non potevano intercettare i nuovi attacchi, perché non ancora classificati. Ogni nuovo virus deve essere prima individuato e analizzato al fine di determinarne la firma e quindi aggiunto all’elenco dei virus noti. Gli aggiornamenti dei database vengono inviati agli utenti, con una frequenza che – a seconda del fornitore – può essere giornaliera o addirittura di più volte al giorno. Questa metodologia di rilevazione è inevitabilmente in ritardo, perché ci sarà sempre una finestra temporale (magari anche di un solo giorno…) entro la quale l’antivirus non sarà in grado di riconoscere il malware. Questo problema è ulteriormente aggravato dal fenomeno del polimorfismo, ampiamente utilizzato dagli attaccanti. A questi non occorre costruire un malware ex novo, basta modificare la firma di quello esistente. Un malware polimorfo è in grado di cifrare la propria firma ogni volta in un modo diverso, così da apparire diverso in ogni attacco. In pratica il malware trasforma un blocco di codice in un altro blocco di codice con le stesse funzionalità del precedente, ma con una fingerprint differente. I primi virus polimorfi sono comparsi all’inizio degli Anni 90. Uno dei malware polimorfi più noti – e dannosi – è stato Emotet, un banking trojanidentificato per la prima volta dai ricercatori di sicurezza nel 2014. Si diffonde principalmente attraverso e-mail di spam contenenti file JavaScript malevoli.
Grazie al polimorfismo, l’efficacia degli antivirus si riduce in misura importante: secondo uno studio di Malwarebytes (2017) un antivirus tradizionale non riesce a proteggere l’utente in quasi il 40% degli attacchi malware.
In conclusione: il metodo di rilevamento delle minacce basato sulla firma è utile, ma ha un’efficacia limitata. Per questo motivo gli antimalware moderni utilizzano anche metodi più innovativi, che puntano all’analisi dei comportamenti dannosi. In questo modo riescono a individuare attacchi non ancora noti. Questa tecnica è definita analisi euristica.
In altre parole, paragonando gli antivirus ad un’indagine di polizia, quelli tradizionali individuano il criminale perché hanno la sua impronta digitale, quelli euristici riescono a capire che è un criminale – anche se non l’hanno mai visto prima – perché lo perquisiscono e gli trovano un’arma oppure lo vedono compiere azioni sospette.

L’analisi euristica per identificare i virus

L’euristica è un insieme di strategie, tecniche e procedimenti inventivi utile a ricercare un argomento, un concetto o una teoria adeguati a risolvere un problema (dal vocabolario Treccani). Nel caso specifico degli antivirus, è una funzionalità da utilizzare in aggiunta a quella basata sulle firme virali. L’analisi euristica utilizzata dagli antivirus consente di effettuare una scansione di un file eseguibile per analizzarne la struttura, il comportamento e gli attributi. In questo modo viene sezionato ed esaminato il suo codice sorgente. Se nel codice sono presenti istruzioni tipiche dei malware, oppure una determinata percentuale del codice sorgente corrisponde a qualcosa che è già stato individuato come malevolo, il codice viene contrassegnato come possibile minaccia. In alcuni casi, per gli antimalware più avanzati, si esegue anche una analisi euristica dinamica: il file sospetto viene eseguito in una sandbox, per determinare senza rischio se un programma è sicuro o meno. L’esecuzione in sandbox consente di capire il comportamento del software e quali minacce potrebbe portare. L’analisi euristica riesce ad essere molto efficace per identificare nuove minacce, ma può produrre falsi positivi bloccando un codice innocuo, o viceversa far passare un codice malevolo se non adeguatamente impostata. Questo problema non è presente (o lo è in misura molto minore) negli antivirus basati sulle firme, che hanno un comportamento di tipo on/off, quindi molto più automatico.

La nuova generazione di antivirus

Nonostante siano un passo avanti, anche i software di analisi euristica senza firme si sono dimostrati insufficienti ad arginare le minacce informatiche sempre più evolute. Ne abbiamo prova con l’esplosione – avvenuta dal 2013 e tuttora in corso – dei ransomware. La frequenza degli attacchi ransomware in questi anni, con obbiettivi colpiti a qualsiasi livello e gli enormi danni economici creati, ad esempio, dal famigerato WannaCry, dimostrano quanto i ransomware possono risultare molto difficili da individuare. Molto spesso vengono veicolati attraverso file “dropper”, cioè file trojan di piccole dimensioni che non contengono il codice malevolo e quindi riescono più facilmente a “passare sotto i radar” (eludendo l’antivirus). Scaricati in genere attraverso un’e-mail di phishing, una volta entrati nel sistema target sono programmati per scaricare il vero e proprio codice malevolo, connettendosi con i server C&C (Command & Control) gestiti dagli attaccanti. Per combattere questi attacchi, gli antivirus si sono evoluti diventando veri e propri “programmi di sicurezza”, che non si possono più definire solo antivirus, ma che sarebbe più corretto chiamare antimalware. La nuova frontiera della sicurezza informatica è rappresentata dall’intelligenza artificiale (AI) e dal machine learning (apprendimento automatico, ML). L’AI non si limita alla mera esecuzione di una serie limitata di controlli; al contrario, analizza determinati comportamenti e ne individua le anomalie per identificare, ad esempio, un attacco ransomware. Il machine learning è invece in grado di riconoscere comportamenti e pattern nuovi in modo da classificarli per “insegnarli” al sistema di difesa, che diventerà sempre più evoluto. Queste tecnologie rappresentano il futuro (ormai già il presente, in realtà) e sono la soluzione ideali per la sicurezza informatica, soprattutto perché i metodi basati su firma o altri metodi manuali non sono in grado di gestire il numero e la varietà di minacce attuali. Si tratta, insomma, di sistemi di sicurezza complessi, definiti IDS (Intrusion Detection System).