Una degli elementi principali per creare un ambiente sicuro in termini informatici è sicuramente dotarsi di un buon antivirus, ossia un prodotto software capace di proteggere un sistema dall’eventuale malware che dovesse tentare di installarsi.
Ovviamente benché si sia soliti parlare di antivirus, esso non agisce solo contro i virus che sono uno dei tanti tipi di malware, ma più in generale contro ogni software che manifesti l’obbiettivo di :
- conquistare un accesso totale alla macchina
- rubare informazioni sensibili come le password
- criptare files o manometterli
- installare altro malware
- compromettere il sistema al fine di renderlo strumento per altri attacchi (e.g. botnet)

Quando si parla di AV (antivirus) ci si riferisce nella realtà a prodotti più o meno complessi che hanno il principale compito di individuare i malware nei file presenti sul sistema e per far questo usano moduli e tecniche differenti.
Uno di questi moduli è sicuramente lo scanner, un componente che a richiesta dell’utente o in real-time scansiona cartelle e file nel tentativo di individuare e rimuovere eventuale malware.
A volte non è sufficiente però sondare il sistema perché il malware potrebbe nascondersi all’interno di archivi compressi (.zip, .rar etc…); per poterli analizzare esistono moduli in grado di decomprimerli e analizzarli.
E ancora a volte per capire se un software è legittimo oppure è un malware l’unica via è quella di eseguirlo e per far questo in totale sicurezza alcuni prodotti antivirus utilizzano degli emulatori, moduli capaci di lanciare il malware in un ambiente virtuale per analizzarne il comportamento e capire da questo la reale natura di quel file.

Questo ci porta a chiederci come possono gli Antivirus riconoscere i virus.
La tradizionale forma di riconoscimento del malware è chiamata “Signature-Based“. Una volta scoperto il malware e le sue componenti vengono sottoposte ad un algoritmo di hash che non fa altro che generare una sequenza alfa-numerica unica, detta appunto hash, che costituisce la firma univoca di quel determinato malware. Questa firma viene caricata in un database ed ogni volta che l’antivirus identifica un file sospetto ne produrrà un hash e ne cercherà una corrispondenza nel proprio database, se la troverà avrà la certezza di trovarsi di fronte ad un malware da eliminare.
Il riconoscimento tramite hash è limitato dal fatto che un nuovo malware o un nuovo componente non avrà la propria “firma” nel database e quindi non potrà essere intercettato; allo stesso modo una minima variazione nel codice del malware genera una hash totalmente diversa da quella conservata nei database. Per ovviare a questo limite esiste una modalità di riconoscimento chiamata “euristica“, nella quale vengono prese in considerazione le azioni e i comportamenti di un software per determinare su base statistica se possono essere considerati indizi di una attività malevola in corso oppure legittimi comportamenti.

E infine i sistemi più moderni propongono l’analisi dinamica del malware ossia, come detto sopra, lasciano il presunto malware libero di girare all’interno di un sistema virtualizzato per registrare le sue attività e identificarne lo scopo.
In buona sintesi un Antivirus è il primo mattone di un muro solido contro le minacce informatiche indipendentemente dal sistema operativo che si usa, sia esso Windows, OS di Apple o l’open source di Linux perché esistono malware per tutti i sistemi e nessun sistema è più sicuro di un altro.