PDA

View Full Version : Miniguida: cosa è e come funziona un antivirus?


eraser
20-07-2003, 22:21
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)

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

nel prossimo post ci sarà una analisi abbastanza esauriente della tecnologia euristica ;)

Ciao

Eraser :cool:

Pola
21-07-2003, 00:42
Bravo, Eraser!:mano: ;)

eraser
21-07-2003, 11:20
:flower: :D

AlbioB
21-07-2003, 14:10
grande Era! ;)

rsuter
21-07-2003, 17:10
Complimentoni Eraser!
Ora posta pure nel nostro forum questo link! :D

eraser
21-07-2003, 18:17
naturalmente tra qualche giorno ci sarà anche una analisi approfondita della tecnologia euristica ;)

buglis
15-10-2003, 09:12
Originariamente inviato da eraser

E' una gara costante tra i virus writers e i ricercatori di antivirus per essere sempre uno un passo piu avanti dell'altro.



Eraser :cool:


ma non sono la stessa cosa???:D

eraser
15-10-2003, 14:05
Originariamente inviato da buglis
ma non sono la stessa cosa???:D

si c'è anche questa ipotesi :D :D :D

MrOZ
31-10-2003, 04:32
Originariamente inviato da eraser
naturalmente tra qualche giorno ci sarà anche una analisi approfondita della tecnologia euristica ;)


... è da 1 po' ke la stiamo aspettando :D :D :D :D :D

... mi auguro ke gli HWinit Labs nn l'abbiano persa (l'analisi) :sofico:

... (x' la trebisonda manco l'hanno mai vista :D )

eraser
31-10-2003, 15:46
mi sembrava che non interessasse a nessuno e non l'ho messa :O

Ciao

Eraser

HWInit Labs (:sofico: )

MrOZ
31-10-2003, 16:17
Nn l'hai messa x' nn interessava a nessuno, x' nn ce l'hai :D , x' nn l'hai ancora tradotta :D :D o x' nn vuoi rubare tempo alle tue prolungate pennichelle quotidiane???? :D :D :D

eraser
31-10-2003, 20:50
no, tradotto è tradotto :D mi sono sempre scordato di postarlo :D :D :D

automatic_jack
01-11-2003, 18:02
Originariamente inviato da eraser
mi sembrava che non interessasse a nessuno e non l'ho messa :O


Io sono interessato...e molto anche ;)

Ciao :D

raxas
05-11-2003, 02:26
Originariamente inviato da eraser
mi sembrava che non interessasse a nessuno e non l'ho messa :O

Ciao

Eraser

HWInit Labs (:sofico: )

pure a me interessa :D , la prima parte è davvero esplicativa ed utile,
Grazie.
Ciao :)

automatic_jack
20-11-2003, 12:59
up...:D

eraser
20-11-2003, 19:28
appena ho un attimo di tempo la posto :) non mi sono dimenticato di voi :)

AlbioB
20-11-2003, 22:56
certo :O non si è dimenticato di noi :sofico:

chi ci crede? :rotfl:

automatic_jack
20-11-2003, 23:35
Originariamente inviato da eraser
appena ho un attimo di tempo la posto :) non mi sono dimenticato di voi :)

:yeah:

Bico Bico
11-01-2004, 21:31
Originariamente inviato da eraser
appena ho un attimo di tempo la posto :) non mi sono dimenticato di voi :)

bhè? sono passati due mesi. quanto dura 'sto attimo? :what: :D

rsuter
11-01-2004, 23:14
Ahhahahah, bhè sapete, lui è mooolto impegnato....:sofico:

eraser
12-01-2004, 12:45
scusatemi veramente, ho avuto alcuni problemi :D

giuro che entro domani posto tutto :D

MrOZ
12-01-2004, 12:51
Originariamente inviato da eraser
scusatemi veramente, ho avuto alcuni problemi :D



...sì speriamo ke i tuoi problemi mentali tu li abbia curati...

...ma ne dubito seriamente :D :D :D

rsuter
12-01-2004, 13:14
Originariamente inviato da eraser
scusatemi veramente, ho avuto alcuni problemi :D

giuro che entro domani posto tutto :D

E come funziona un antivirus contro quello che hai in signature?LOOOLL :sofico:

buglis
12-01-2004, 13:22
Originariamente inviato da rsuter
E come funziona un antivirus contro quello che hai in signature?LOOOLL :sofico:
oh ciao raf ti ricordi di me??

un po di OT non fà mai male!!:D

eraser
12-01-2004, 13:30
Originariamente inviato da rsuter
E come funziona un antivirus contro quello che hai in signature?LOOOLL :sofico:

quello che ho in sign non viene individuato da nessun antivirus :D

eraser
12-01-2004, 13:31
Originariamente inviato da MrOZ
...sì speriamo ke i tuoi problemi mentali tu li abbia curati...

...ma ne dubito seriamente :D :D :D

:mad: :mad: :D :D :D

eraser
12-01-2004, 15:01
Il termine EURISTICA deriva dal greco "Heuristikein" che significa "scoprire". L'analisi euristica è la seconda arma fondamentale nell'arsenale di un antivirus e permette di individuare virus non ancora conosciuti.
La tecnologia euristica basa la sua analisi su vari fattori quali la grandezza di un file, la sua struttura, il comportamento del codice per individuare le probabilità di una possibile infezione.
É una tecnologia che va usata attentamente perché non fornisce risultati sicuri: se l'analisi della signature dà una certezza sulla infezione di un file, l'analisi euristica basa tutta la sua filosofia sulla probabilità.
Attualmente le società produttrici di antivirus sostengono che la tecnologia euristica riesce ad individuare il 70/80% dei nuovi virus, un risultato più che buono visto la complessità del problema.
Uno scanner antivirus basato sull'euristica va alla ricerca di centinaia di comportamenti che un virus potrebbe usare e per ogni comportamento sospetto assegna un livello di pericolosità.
Tra i comportamenti più sospetti, da bandiera rossa, ci potrebbero essere per esempio il codice per controllare la data, oppure la lettura della rubrica di Outlook. É ovvio che anche un programma innocuo potrebbe avere queste funzioni, ed è per questo che lo scanner euristico non si basa solo su un solo comportamento sospetto individuato, ma fa una stima di tutti quelli che trova all'interno di un file. Quando si raggiunge un certo numero di comportamenti sospetti individuati, il file viene riconosciuto come un possibile virus.
Di solito quando in uno scanner antivirus viene attivata la modalità euristica, viene data la possibilità di scegliere il livello di sensibilità della scansione euristica. Aumentando o diminuendo questo livello si abbasserà la soglia oltre la quale un file viene individuato come possibile virus. Aumentandola si avrà una percentuale di probabilità più alta di individuazione di un virus, ma anche una percentuale più alta di possibilità di beccare una falso positivo, o meglio di un file che viene individuato come virus ma che in realtà non lo è.
La tecnologia euristica può essere utilizzata anche in maniera inversa: a volte è più veloce cercare di identificare un file che probabilmente NON contiene un virus invece che un file che contiene un virus.
Per esempio il virus W32.Simile ha una grandezza variabile dai 32k ai 130k, dunque un file grande 25k non potrà mai contenere questo virus.
Esistono due tipi di euristica: statica e dinamica.
L'euristica statica funziona allo stesso modo della scansione delle signature, solo che non controlla la signature ma i comportamenti.
Ogni comportamento è una sequenza di codici. L'esempio mostra tre metodi per cancellare un registro:

Codice Assenbler ====> Opcode

XOR AX,AX ====> 31C0
SUB AX,AX ====> 29C0
MOV AX,0 ====> B80000

Come si può vedere, ognuno di questi opcode rappresenta un comportamento. Così lo scanner antivirus controlla nel codice del file se è presente una di queste sequenze di codice e, se lo trova, sa che quel file cancella il registro AX.
L'euristica dinamica invece fa uso della CPU per individuare un file infetto. Non scansiona più il codice del file alla ricerca di opcode sospetti. Lo scanner antivirus lancia il file in una sorta di computer virtuale, una sandbox (zona protetta) all'interno dell'antivirus e ne analizza il comportamento. Un esempio può essere un'applicazione che una volta lanciata cerca altri files eseguibili e tenta di modificarli.


_________________________________________________________________

Con questo paragrafo si conclude l'analisi del funzionamento dell'antivirus. ovviamente non vuole essere una guida completa al funzionamento di un antivirus, ma solo qualche appunto che magari potrà essere d'aiuto a qualcuno per capire meglio che cos'è una signature o che cos'è la scansione euristica.

http://www.hwinit.net/modules/sections/index.php?op=viewarticle&artid=20

Ciao

Eraser :)

Bico Bico
13-01-2004, 23:14
thanks, molto interessante ;)

automatic_jack
18-01-2004, 00:09
Complimneti per la guida Eraser,

la reputo davvero molto interessante...

Grazie e...:cincin:

The Lenny
05-04-2004, 03:32
qui ci vuole l'applauso x eraser!!!!
ma, se ti dico che al 99% ho beccato un worm(piccolo e tenero blaster..)in un aggiornamento di un noto(e a pagamento) anti?

eraser
05-04-2004, 12:35
mandami maggiori info in pvt :)

Bugs Bunny
10-06-2006, 14:14
complimenti molto interessante.

Demonius
09-01-2007, 08:56
Veramente un'ottima guida. Avrei però due dubbi: 1)quando si parla dei virus polimorfici che sono in grado di cambiare forma ogni volta che il virus infetta un nuovo file, si intende che cambiano la stringa di codice ogni qualvolta?
2) Il virus cambia forma ogni volta che infetta un nuovo file all'interno dello stesso computer oppure in base a ogni computer che colpisce?( cioè colpendo il mio pc ha una forma poi colpendo subito dopo il pc di un altro utente assume subito un'altra forma.)
Grazie

Sisupoika
25-07-2007, 08:11
ma non sono la stessa cosa???:D

Credo che il nostro Eraser abbia omesso di dire che gli autori di Antivirus sono autori della grande maggioranza dei Virus.
Bisogna pur mantenere il mercato. :stordita: