Cos'è e come funziona un antivirus

Aperto da Eraser, 01 Novembre 2003, 20:01:41

Discussione precedente - Discussione successiva

0 Utenti e 1 Visitatore stanno visualizzando questa discussione.

Eraser

Ho voluto scrivere questo testo poiché l'ho considerato molto importante per chi vuole capire come funziona un antivirus e quali sono le varie tecniche che le case antivirus utilizzano per far fronte ai continui attacchi dei virus, che si moltiplicano giorno dopo giorno.

-------------------------------------------------------------------------------------
Innanzitutto: che cos'è un antivirus? Un antivirus è un programma capace di individuare, bloccare e cercare di rimediare ai danni procurati da un virus informatico.
Cosa è un virus informatico? Un virus informatico è un particolare programma capace di autoreplicarsi e di diffondersi in maniera totalmente, o quasi, trasparente. (come effetti secondari un virus può anche fare danni, ma questo tralasciamolo per ora :) )
Come fa il virus a replicarsi? Copia parte del suo codice negli altri files presenti nel sistema colpito. I ricercatori di virus non dovettero fare altro che analizzare i files infetti e trovare la stringa comune a tutti, quello era il codice del virus. Inserirono la stringa in un programma, il quale non faceva altro che ricercare nei files quella determinata stringa. Se c'era una corrispondenza tra la stringa che avevano nei database e una stringa nel file, significava che il file era infetto. Il gioco era semplice.
Gli sviluppatori di virus si sono accorti di questo fatto e hanno complicato un pochino le cose ;)
Una scansione usando un database di signatures è possibile solamente se il virus è in forma non criptata. E siccome lo scopo del virus è di replicarsi in modo totalmente trasparente, ecco che i virus writers cominciarono a criptare i virus in modo tale che uno scanner di stringhe non poteva piu trovare una corrispondenza nei files infetti. Questi virus polimorfici cambiano forma ogni volta che il virus infetta un nuovo file, in modo tale che il loro codice risulti "confuso" agli scanner.
Quando il virus viene attivato, prima di tutto viene attivato un engine di decrypt che decripta il virus, il quale ha la possibilità di fare quello che vuole in modo totalmente trasparente.
Per far ciò, l'engine di decrypt deve essere un file eseguibile valido, cioè riconosciuto dal sistema operativo.
In alcuni casi un software antivirus è capace di rilevare le signatures di alcuni engine di decrypt in modo tale da scoprirli.
Comunque, sapendo ciò, i virus writers cominciarono e offuscare il codice aggiungendo del codice falso, e usando istruzioni differenti per fare le medesime cose. Il virus aggiunge così istruzioni supplementari quali jumps tra istruzioni valide, o codice vario che sembra buono, ma in realtà non serve a nulla. Se il codice non è modificato in modo tale da confonderlo totalmente, è ancora possibile trovare tra i files infetti una signature che può identificare il virus, o un "numero magico" che non cambia tra le varie versioni del virus.
La tecnologia euristica viene usata quando la scansione attraverso le signatures non rivela nessun problema. Se l'euristica indica che il file è sospetto, questo viene isolato in una zona virtuale protetta (sandbox) che emula un sistema operativo base. Il virus crede di essere nel sistema infetto e comincia la sua opera di decrypt. una volta decriptato il codice viene scansionato con una scansione delle signatures per cercare di identificare il virus. Se viene identificato un virus, l'esecuzione della sandbox termina e il virus viene riconosciuto.
I virus writers, però, ne sanno una più del diavolo e inventano i virus metamorfici. Questo tipo di virus cambia la struttura del corpo del virus e l'engine di decrypt, rendendo impossibile una scansione di signatures. Un esempio è il virus W32.Simile, il quale usa un engine di decrypt polimorfico che cambia continuamente dimensione e locazione delle infezioni. Ciò avviene in questo modo: l'engine disassembla il virus in una forma intermedia, lo comprime rimuovendo codice superfluo e modifica il codice del virus riordinando le istruzioni che lo compongono. Successivamente l'engine aggiunge al codice del virus codice inutile in modo random. Infine riassembla il codice intermedio ed è pronto per infettare nuovi computers. In aggiunta al danno di solito c'è anche la beffa e il virus può a volte far comparire una message box. (dipende dalle varianti del virus)
Questo tipo di virus viene eseguito nella sandbox e viene monitorato il suo comportamento. Nei casi dove l'emulazione non trova niente di infetto, né attraverso l'analisi delle signatures, né attraverso l'analisi del comportamento, l'ultima chance rimane nell'analisi on-the-fly.
Per la scansione on-the-fly (letteralmente al volo), i software antivirus controllano le API di windows e gli interrupts del DOS che servono a caricare ed eseguire programmi. Quando il programma è in esecuzione, il software antivirus è consapevole della situazione e scansiona il file con le signatures, o attraverso comportamenti statici. Se risulta pulito, l'applicazione è autorizzata all'esecuzione, ma sotto il controllo dell'analisi euristica, la quale controlla le API e gli interrupts alla ricerca di chiamate di sistema potenzialmente dannose, come per esempio scrivere o cancellare files, o accedere alle funzioni di e-mail o smtp. Appena il programma effettua una chiamata del genere, vengono analizzati i comportamenti sospetti e se il programma effettua una serie di azioni sospette, l'antivirus lo blocca segnalandolo come possibile virus.

Conclusioni:
Come potete vedere, nessun metodo di identificazione è utilizzabile in modo positivo in tutti i casi. L'identificazione di un virus è molto spesso accompagnata da una combinazione di molti tests e di molte tecniche. Lo scopo dei ricercatori è di individuare in ogni nuovo virus una caratteristica che lo contraddistingua che possa essere incorporata nel prodotto antivirus per una scansione veloce e sicura.
Nessun antivirus è infallibile. I virus writers stanno diventando sempre piu ingegnosi, e i virus sempre piu complessi. E' una gara costante tra i virus writers e i ricercatori di antivirus per essere sempre uno un passo piu avanti dell'altro.

fonte:extremetech
(grazie a hunter)

-------------------------------------------------------------------------------



Ciao

Eraser :cool:

Ciao

Donald :cool:

Powered by Voodoo5 5500