- presentazione del sito
- Registrazione
- Eventi, mostre, convegni ed iniziative segnalate dalle aziende
- Recensioni ed articoli
- Le Mailing Lists
- La rivista Pc Ciechi
- Wiki
- Chi siamo
- Donazioni
- Un progetto degno di nota: Wintalbra
- Come navigare in questo sito
- rss
- Bancomat Accessibili sul territorio nazionale
- Contattaci
- I sostenitori di SpazioAusili
evoluzione dei virus e scansione antivirus.
fonte originale:
massimiliano martines su uic h.e., 19\08\2008, h. 19.27.
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 :) )
Ed ora, un po' di pubblicità
: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.