virus & antivirus. vittime dei virus modificarne il comportamento propagarsi rimuoverli...
TRANSCRIPT
Virus & Antivirus
Vittime Dei Virus
• Modificarne il comportamento• Propagarsi• Rimuoverli
• Modificarne il contenuto• Rimuoverli
Altri File
Eseguibili
Periferiche • Utilizzarle impropriamente.
File Eseguibili
• Header– Autore– Versione– Memoria richiesta– Checksum
• Codice (in ling. macchina rilocabile)
• Dati (costanti, buffer statici, …)
• Batch• Source Code• Object Code
Linguaggio Macchina
Interpretati
Eseguibili L. Macchina
Header4D 5A Eseguibile DOS
00 00 Versione 0.0
Dati43 49 41 4F CIAO
Codice macchina rilocabileB8 00 00 MOV AX, 0
89 1D MOV [DI], BX
40 INC AX
Eseguibili Interpretati
Tutti i file che se opportunamente interpretati possono modificare il sistema (lo stato del sistema) in maniera permanente.
Esempio:• BAT, SYS, …• C, CPP, JAVA, ASM, VBS, …• DOC, PS, …
File Non Eseguibili
Sequenze di byte che contengono una o più informazioni. L’interpretazione di queste informazioni non può attaccare il sistema.
BMP, GIF, JPG, WAV, TXT, …
Tipologie Di Virus
Modificano la FAT per nascondersi ed eseguirsi.
Sostituiscono il kernel originale con il proprio.
File Infector
Boot\MBR
Cluster
Kernel
Si attaccano agli eseguibili per replicarsi.
Modificano la boot o l’MBR del disco.
File Infector
Header
Dati
Codice
Codice Virus
Modifica:
1. Dimensione.
2. Header.
File Infector
Header
Dati
Codice
Codice Virus
Possibili difese:
1. Controllo sulla dimensione
2. Controllo su Header (checksum) e jump.
3. Controllo firma.
4. Controllo sequenza istruzioni.
File Infector
Header
Dati
Codice
Codice Virus
Problemi:
1. Autozip virus.
2. Stealth virus possono falsificare dimensione del file.
3. Firma nascosta.
4. Facili “crying wolf”
Virus Polimorfi
Usano una sequenza casuale di istruzioni che non modificano il comportamento del virus.
Ad esempio:inc ax;
dec ax;
add ax, 5;
sub ax, 5
xchg bl, bl;
jmp Dopo
Dopo:
nop;
File Infector
Header
Dati
Codice
Codice Virus
Problemi con virus polimorfi e encrypted:
1. Dimensione non costante.
2. Sequenza di istruzioni non prevedibile.
File Infector (Companion)
.exe
.com
PIPPO.COM
PIPPO.EXE
C:\>PIPPO
File Infector (Companion)
Possibili difese:1. Controllo duplicazione nomi.
2. Controllo occorrenza del nome dell’eseguibile all’interno del file “.com”
3. Controllo su tutti i file per evitare eventuali falsi allarmi.
.exe
.com
Boot\MBR Virus
Modifica:
1. Codice della boot.
2. Eventuale aggiunta di bad track.
Boot\MBR Virus
Possibili difese:
1. Proteggere dischetti in scrittura.
2. Controllo scrittura su MBR da BIOS.
3. Controllo comparsa bad track.
4. Confronto del settore di avvio con una copia collocata su un dischetto protetto.
Boot\MBR Virus
Problemi:
1. Intercettazione lettura settore di avvio.
2. Difficile stabilire se si tratta di virus o boot-manager.
Cluster Virus
Modifica:
1. FAT entry.
2. Spazio allocato su disco.
Cluster Virus
Possibili difese:
1. Copia FAT su CD-ROM.
Cluster Virus
Problemi:
1. Infinite loop su entry di file utili (es: eseguibile dell’antivirus).
2. Intercettazione lettura FAT.
Kernel Virus
Modifica:
1. Kernel.
2. Funzioni di sistema.
3. Interrupt handler.
Kernel Virus
Possibili difese:
1. Sorvegliare interrupt.
2. Controllo dimensione file kernel.
Kernel Virus
Problemi:
1. Virus inganna totalmente ogni controllo.
2. Servizi di sistema poco affidabili.
Antivirus
Per arrestare un criminale, la polizia, può andare sulla scena del delitto, prendere le impronte digitali, fare una ricerca nel database in loro possesso e infine rintracciare il malvivente.
Un antivirus può analizzare ogni file alla ricerca di una firma nota. Se questa firma compare può segnare il file come infetto.
E se il malvivente è incensurato?
E se il virus non ha una firma nota?
Antivirus
La polizia osserva il comportamento delle persone per individuare soggetti sospetti.
L’antivirus analizza il comportamento logico del programma per rintracciare sequenze di codice sospette.
E se passa una baby-sitter che gioca a “I 4 moschettieri” con un bambino… cosa facciamo? L’arrestiamo!!!?
E se un programma tenta di modificare il suo file di configurazione… cosa facciamo? Cataloghiamo il nuovo virus: “Word”!!!?
Antivirus
Classica ricerca di una stringa nota all’interno del file.
Ricerca Firma
Euristica Statica
Euristica Dinamica Esegue il file in un ambiente virtuale e sorveglia i risultati.
Confronta staticamente il comportamento di un file con quello dei virus noti.
Antivirus
• Euristica Statica– Database comportamenti.– Analisi delle routine note (unscramble, decrypt).– Controllo “firma” “comportamento”.
Antivirus
• Database comportamenti.
# BYTE SEQUENCE BEHAVIOR
001. B8 ?? 4C CD 21 Termina programma
002. B4 4C CD 21 Termina programma
003. B4 4C B0 ?? CD 21 Termina programma
004. B0 ?? B4 4C CD 21 Termina programma
…
100. B8 02 3D BA ?? ?? CD 21 Apre file
101. BA ?? ?? B8 02 3D CD 21 Apre file
Antivirus
• Controllo “firma” “comportamento”.
Cerca firma all’interno del file
Analizza il comportamento (staticamente)
Riduce il numero di “crying wolf”.
Antivirus
• Euristica Dinamica– Simulazione.– Sistemi esperti.– Stimolazione.
Antivirus
Se vogliamo sorvegliare la nostra base dall’intrusioni nemiche potremmo sorvegliare tutti i possibili percorsi di accesso.
Se abbiamo 1000 modi di accedere alla nostra base… Arruoliamo 1000 guardie!!!?
Se vogliamo sorvegliare il nostro sistema da attacchi virali, potremmo tentare di rintracciare tutti i virus noti in tutte le loro varianti.
Esistono milioni di virus… Creiamo un database di Terabyte!!!?
Antivirus
E non è finita! Siamo sicuri che le nostre guardie siano bene addestrare?
Altra idea:
Spostiamo, segretamente, la nostra base, lasciamo che il nemico entri senza problemi convinto di essere un eroe, ed una volta dentro…
Antivirus
• Simulazione
Il file sospetto viene eseguito in un ambiente virtuale.
Vengono sorvegliati tutti gli interrupt, gli accessi ai file, accessi alla memoria, …
I risultati vengono valutati per stabilire se si tratta di un programma nocivo o meno.
Antivirus
• Problemi dovuti alla simulazione:– Difficoltà proporzionale alla complessità del
sistema da simulare.– Richiesta di molto CPU time.– Comportamenti condizionati dei virus (es:
attivazione temporale).– I virus possono scoprire di agire in simulazione.
Antivirus
• Sistemi Esperti– Sistemi esperti in grado di decidere\rispondere
come farebbe un esperto di un dato dominio applicativo.
– Reti neurali per apprendimento automatico.
Antivirus
• Stimolazione
Se si vuol studiare il comportamento di una rana, non la si chiude in una vasca e si aspetta che faccia qualcosa…
…ma si stimola il suo cervello per vedere come reagisce.
Antivirus
• Stimolazione
Si stimola il virus (in simulazione) e si vede come reagisce.
Gli stimoli possibili sono svariati, molti noti, altri dipendono dalla fantasia del virus writer.
Conclusioni
• Per difendersi dai virus– Proteggere i dischetti in scrittura.– Proteggere MBR da BIOS.– Non lanciare eseguibili di provenienza dubbia.– Non lanciare eseguibili (anche se non sospetti)
senza averli prima controllati con un antivirus aggiornato.
– Aggiornare frequentemente il proprio antivirus.– Usare più antivirus.– Evitare l’utilizzo di crack o software piratato.– Porre attenzione ai file di documento, il fenomeno
macro-virus è già molto esteso!
Miti dei Virus
• Il virus più temibile si insidia nella mente dell’utente!
<<Se un virus ti colpisce, devi cancellare tutto>><<I file spediti dagli amici sono sempre sicuri>><<I virus mostrano sempre qualcosa sul video>><<Un file puo’ essere infettato solo da un solo
virus>><<Se accendi e spegni il PC 6 volte di seguito,
ammazzi tutti i virus>>…
Link Utili
www.cert.org
www.simantec.com
www.hackerzine.com
It.comp.sicurezza.virus