Virus & Antivirus
Vittime Dei Virus Eseguibili Altri File Periferiche Modificarne il comportamento Propagarsi Rimuoverli Altri File Modificarne il contenuto Rimuoverli Periferiche Utilizzarle impropriamente.
File Eseguibili Linguaggio Macchina Interpretati Header Autore Versione Memoria richiesta Checksum Codice (in ling. macchina rilocabile) Dati (costanti, buffer statici, …) Linguaggio Macchina Interpretati Batch Source Code Object Code
Codice macchina rilocabile Eseguibili L. Macchina Header 4D 5A Eseguibile DOS 00 00 Versione 0.0 Codice macchina rilocabile B8 00 00 MOV AX, 0 89 1D MOV [DI], BX 40 INC AX Dati 43 49 41 4F CIAO
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 BMP, GIF, JPG, WAV, TXT, … 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 File Infector Boot\MBR Cluster Kernel Si attaccano agli eseguibili per replicarsi. Boot\MBR Modificano la boot o l’MBR del disco. Cluster Modificano la FAT per nascondersi ed eseguirsi. Kernel Sostituiscono il kernel originale con il proprio.
File Infector Modifica: Header Codice Dati Codice Virus Dimensione.
File Infector Possibili difese: Header Codice Dati Codice Virus Controllo sulla dimensione Controllo su Header (checksum) e jump. Controllo firma. Controllo sequenza istruzioni. Header Codice Dati Codice Virus
File Infector Problemi: Header Codice Dati Codice Virus Autozip virus. Stealth virus possono falsificare dimensione del file. Firma nascosta. Facili “crying wolf” Header Codice Dati Codice Virus
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 Problemi con virus polimorfi e encrypted: Header Codice Dimensione non costante. Sequenza di istruzioni non prevedibile. Header Codice Dati Codice Virus
File Infector (Companion) 2 2.exe C:\>PIPPO 2.com PIPPO.COM PIPPO.EXE
File Infector (Companion) Possibili difese: Controllo duplicazione nomi. Controllo occorrenza del nome dell’eseguibile all’interno del file “.com” Controllo su tutti i file per evitare eventuali falsi allarmi. 2.exe 2.com
: Boot\MBR Virus < Modifica: Codice della boot. Eventuale aggiunta di bad track. : <
: Boot\MBR Virus < Possibili difese: Proteggere dischetti in scrittura. Controllo scrittura su MBR da BIOS. Controllo comparsa bad track. Confronto del settore di avvio con una copia collocata su un dischetto protetto. : <
: Boot\MBR Virus < Problemi: Intercettazione lettura settore di avvio. Difficile stabilire se si tratta di virus o boot-manager. : <
2 > > Cluster Virus Modifica: FAT entry. Spazio allocato su disco. > >
Cluster Virus Possibili difese: Copia FAT su CD-ROM. >
> Cluster Virus Problemi: Infinite loop su entry di file utili (es: eseguibile dell’antivirus). Intercettazione lettura FAT. >
2 J N Kernel Virus ;<,78> Modifica: Kernel. Funzioni di sistema. Interrupt handler. J N ;<,78>
N Kernel Virus ;<,78> Possibili difese: Sorvegliare interrupt. Controllo dimensione file kernel. N ;<,78>
N Kernel Virus ;<,78> Problemi: Virus inganna totalmente ogni controllo. Servizi di sistema poco affidabili. N ;<,78>
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 Ricerca Firma Euristica Statica Euristica Dinamica Classica ricerca di una stringa nota all’interno del file. Euristica Statica Confronta staticamente il comportamento di un file con quello dei virus noti. Euristica Dinamica Esegue il file in un ambiente virtuale e sorveglia i risultati.
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 vogliamo sorvegliare il nostro sistema da attacchi virali, potremmo tentare di rintracciare tutti i virus noti in tutte le loro varianti. Se abbiamo 1000 modi di accedere alla nostra base… Arruoliamo 1000 guardie!!!? 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…
: : 2 Antivirus Simulazione Il file sospetto viene eseguito in un ambiente virtuale. 2 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