Virus e antivirus, l'eterna lotta fra il bene e il male

Virus e antivirus, l'eterna lotta fra il bene e il male

Virus e antivirus, temi caldi del panorama informatico fin dagli anni 80, giunti ai giorni nostri assumendo via via sempre più importanza e causando preoccupazioni molto spesso fondate. Analisi tecnica e breve cronistoria dell'eterna lotta fra il bene e il male all'interno dei nostri PC

di pubblicato il nel canale Sicurezza
 

Antivirus: scansione on-demand - parte 1

Come accennato precedentemente possiamo considerare la scansione on-demand come la parte manuale di un software antivirus, la parte che richiede l'intervento dell'utente per poter funzionare. Due sono le tecniche per individuare un virus informatico: attraverso le firme digitali e attraverso l'euristica.

Analizziamo per prima quella che risulta essere la tecnica più datata ma comunque tuttora la più sicura, ovvero la scansione per mezzo di signatures, o firme virali. Abbiamo ormai capito che un virus non è nient'altro che un software come lo sono tanti altri, quindi un insieme di righe di codice che, compilato, diviene codice macchina. Per poter identificare un virus si è dunque pensato di cercare all'interno del file infetto una serie di bytes riconducibili con certezza la presenza di quel determinato virus.

Quindi un ricercatore di una società di antivirus deve prendere il file infetto dal virus, disassemblarlo (cioè leggerne il codice macchina interpretato, per una seppure lieve facilitazione nella comprensione) e cercare all'interno una sequenza di bytes che sia propria del virus, cioè che solo quel virus ha e nessun altro programma esistente al mondo.

Esempio: "Quella persona è un ladro perché ha il passamontagna!", cioè riconoscere il ladro per un segno caratteristico. Come è facile capire, non è un compito semplice quello di riuscire a trovare una sequenza di bytes tale da non incorrere in falsi positivi, cioè in programmi che hanno la stessa sequenza all'interno del proprio codice senza però essere dei virus informatici.

Non necessariamente infatti un tizio con il passamontagna e la pistola deve essere un ladro, bisogna anche considerare il contesto in cui si trova.

Quindi un software antivirus non controlla esclusivamente la presenza della sequenza di bytes all'interno dei file, ma prende in considerazione molti altri parametri, tipo la locazione di dove dovrebbe trovarsi la specifica sequenza. Molte signatures fanno dunque uso dei cosiddetti bookmarks, cioè forniscono al software antivirus non solo la sequenza di bytes da cercare ma anche la locazione dove cercare.

Parte della signature del virus Stoned

Codice Assembler relativo alla signature del virus Stoned

Per avere una certezza assoluta che il file sia infetto, alcuni ricercatori ricorrono a più di una sequenza per identificare un preciso malware, prese in zone differenti del file. Questo è il meccanismo che sta alla base della scansione attraverso le signatures, anche se in molti casi viene altamente ottimizzato per evitare di sovraccaricare troppo il pc o comunque per evitare ridondanze di codice o troppi accessi di lettura/scrittura nei files.

Di conseguenza si utilizzano dei filtri da applicare prima della scansione: è inutile cercare per esempio macro viruses in un file .EXE o .COM. Kaspersky Antivirus per esempio non fa uso di sequenze di bytes, ma di checksum calcolati in specifiche zone del file - solitamente due - che coprono uno l'intero codice del file mentre il secondo solo una piccola parte del codice. Se uno dei due è presente nei database di Kaspersky Antivirus e viene individuato, previo calcolo, in un file, scatta l'allarme WARNING - possibile file infetto - mentre se vengono riconosciuti entrambi i checksum il file è infetto.

 
^