I Malware Informazioni varie • Davide Chiarella – E-mail: • [email protected] • [email protected] – Lucidi: • http://www.disi.unige.it/person/ChiarellaD • Tel. C.N.R.: 0106475226 Malware 1 - I virus. Davide Chiarella. 2 Sommario Malware • Virus • Worm • Backdoor • Cavalli di Troia Malware 1 - I virus. Davide Chiarella. 3 Malware: definizione Malware = malicious software Malicious = malizioso? maligno, nocivo Virus, worm, backdoor, Trojan horse Malware 1 - I virus. Davide Chiarella. 4 I Virus Virus: definizione 1 Un virus è un pezzo di codice in grado di replicarsi che si attacca ad altri programmi e di solito ha bisogno di interazione da parte dell’uomo per propagarsi Una delle principali caratteristiche di un virus è la sua incapacità di funzionare come un eseguibile stand-alone (stand-alone executable). Un virus infetta file che vengono definiti host (ospiti) oppure entità di più basso livello (e.g. Master Boot Sector). Un’altra proprietà è, una volta attivato, la capacità di duplicare il proprio codice senza l’aiuto di un operatore umano. Malware 1 - I virus. Davide Chiarella. 6 Virus: definizione Tuttavia per essere attivato un virus ha bisogno dell’intervento dell’uomo. Oltre a propagarsi un virus di solito compie una serie di azioni nocive al file o al sistema infettato. La parte di codice del virus che implementa questa funzionalità viene detta payload: il payload può compiere qualsiasi tipo di azione permessa al programma infettato. Esempi di payload: corruzione o cancellazione di file, invio di informazioni sensibili all’autore del virus o a chi per lui, fornire una backdoor al sistema infettato. Malware 1 - I virus. Davide Chiarella. 7 Virus: solo Windows? I virus sono multipiattaforma (cross-platform): è vero che la maggioranza dei virus sono stati pensati ed ideati per i sistemi windows, ma ritenersi al sicuro dei virus poiché si utilizza un’altra piattaforma è un grave errore. Esistono virus per piattaforme Windows, Linux, Solaris e Unix-like (non pensate solo ad eseguibili!!!). Malware 1 - I virus. Davide Chiarella. 8 Origine dei virus Impossibile comprendere pienamente i virus e le loro strategie senza una piccola infarinatura di come sono nati e come sono cresciuti. Malware 1 - I virus. Davide Chiarella. 9 Origine dei virus: Darwin Agosto 1961, Laboratori Bell. IBM 7090 mainframe. Victor A. Vyssotsky, Robert Morris Sr., and M. Douglas McIlroy creano un nuovo gioco: “Darwin: a game of survival and (hopefully) evolution”. • L’obiettivo del gioco era la sopravvivenza • Il gioco consisteva in un programma arbitro (umpire) e in una sezione di memoria prestabilita chiamata arena, dentro la quale venivano caricati due o più programmi, scritti dai giocatori. I programmi caricati potevano sondare zone di memoria uccidendo i programmi residenti in esse e reclamando lo spazio per replicarsi. Il gioco finiva dopo un tempo prestabilito o quando rimaneva solo un tipo di programma vivo Malware 1 - I virus. Davide Chiarella. 10 Origine dei virus: Darwin Lo scheduling dei processi avveniva tramite l'umpire: infatti ogni programma aveva delle celle di memoria protette che in caso di sondaggio da parte di altri programmi causavano il cambio turno a favore del programma proprietario della zona protetta. • Il gioco durò poco: qualche settimana dopo l’inizio del gioco Morris sviluppò un programma che sbaragliò tutti i contendenti. Malware 1 - I virus. Davide Chiarella. 11 Darwin.. e che ci azzecca coi virus? I programmi di Darwin furono il primo esempio di programmi auto-replicanti. Un’evoluzione del gioco originale sopravvive ancora oggi. http://www.corewars.org/ Malware 1 - I virus. Davide Chiarella. 12 Origine dei virus: PERVADE Il primo codice auto-replicante “in the wild” di cui abbiamo conoscenza fu PERVADE (John Walker, 1975. UNIVAC 1110). L’unico ospite che poteva essere “infettato” era un programma chiamato ANIMAL (John Walker). In realtà PERVADE era una routine che permetteva a qualsiasi programma che la invocasse di propagarsi in tutte le directory a lui accessibili. Ma come e perché nasce PERVADE? COMPUTER-GAME DISTRIBUZIONE Malware 1 - I virus. Davide Chiarella. 13 Origine dei virus: PERVADE ANIMAL, infatti, era l’implementazione del gioco “A che animale sto pensando?” di Walker. La sua implementazione era così perspicace che la gente incominciò a chiedergli di averne una copia (catene di decisione). C’è chi dice che Walker cercò un modo innovativo di diffondere il proprio lavoro e quindi accoppiò ANIMAL con PERVADE. PERVADE: quando veniva invocata creava un processo identico al chiamante che, mentre il programma originale continuava a svolgere il proprio compito, esaminava tutte le directory accessibili al suo chiamante. Se in queste directory non trovava una copia di se ne creava una. Malware 1 - I virus. Davide Chiarella. 14 Origine dei virus: Elk Cloner Pausa invernale1982, Mt. Lebanon High School. Apple II Rich Skrenta, studente quindicenne, crea il primo BS-virus per personal computer. Skrenta distribuiva giochi pirata, modificati per spegnere il pc dopo un certo numero di utilizzi oppure visualizzare dei messaggi offensivi a schermo. I suoi amici/conoscenti dopo un po’ di tempo incominciarono a non fidarsi più di tutto ciò che proveniva da lui. Skrenta pensò allora ad un modo per modificare i floppy disk senza aver un accesso fisico ad essi. Malware 1 - I virus. Davide Chiarella. 15 Origine dei virus: Elk Cloner Crea un programma che risiede nel boot sector dei floppy disk e che viene lanciato quando un computer viene avviato col dischetto infetto. Ogni floppy disk inserito successivamente nel pc viene infettato con il virus. Elk Cloner: The program with a personality It will get on all your disks It will infiltrate your chips Yes it's Cloner! It will stick to you like glue It will modify RAM too Send in the Cloner! Che cosa faceva il virus sui computer infettati? Ovvero che Malware 1 - I virus. Davide Chiarella. 16 payload aveva? Origine dei virus: prima definizione 1984, Toronto. Fino a questo preciso momento ancora nessuno ha utilizzato la parola virus per definire tutti i programmi di cui abbiamo parlato. Fred Cohen durante una conferenza è il primo ad utilizzare il termine e ad introdurre la prima definizione formale: “a program that can infect other programs by modifying them to include a, possibly evolved, version of itself” In realtà si dice che il termine fu associato al concetto, che Cohen aveva espresso, dal suo tutor Len Adleman…… Rivest-Shamir-Adleman Malware 1 - I virus. Davide Chiarella. 17 Origine dei virus: Brain 1986, Lahore (Pakistan). Basit and Amjad Farooq Alvi creano il primo BS-virus per MS-DOS. Viene soprannominato Brain virus poichè sovrascrive la label dei floppy con la stringa “(c)Brain”. Il virus infetta il boot sector dei floppy, spostando il bs sano e marcandolo come bad sector. Tutti i dischetti infetti hanno 3 KiB di settori danneggiati e nel BS infetto si legge la scritta: Malware 1 - I virus. Davide Chiarella. 18 Origine dei virus: Brain Welcome to the Dungeon (c) 1986 Basit * Amjad (pvt) Ltd. BRAIN COMPUTER SERVICES 730 NIZAM BLOCK ALLAMA IQBAL TOWN LAHORE-PAKISTAN PHONE: 430791,443248,280530. Beware of this VIRUS.... Contact us for vaccination... Malware 1 - I virus. Davide Chiarella. 19 Origine dei virus: Virdem 1986, contemporaneo a Brain. Anche lui un MSDOS virus. E’ però un virus dimostrativo creato da Ralph Burger per la conferenza del “Chaos Computer Club”. A differenza del suo coevo pakistano Virdem infetta file con estensione .COM Con Virdem concludiamo il nostro veloce excursus sulle origini dei virus e incominciamo a scendere più nel particolare. Di seguito vedremo una tassonomia dei virus basata sul target da infettare. Malware 1 - I virus. Davide Chiarella. 20 Meccanismi di infezione e entità ospiti Infezione di un file eseguibile Il bersaglio preferito dei virus sono i file eseguibili: infatti attaccandosi ad un file eseguibile il virus si assicura di essere attivato ogni volta che viene usato l’eseguibile. Ogni sistema operativo ha le sue tipologie di file eseguibili. Esempi: Unix: binari, script Windows: file con estensione COM, EXE, SYS, DLL, OCX, CPL e SCR Malware 1 - I virus. Davide Chiarella. 22 Companion virus 1 I companion/spawning virus o meno poeticamente i virus compagni/accompagnatori si accoppiano ad eseguibili già esistenti, in modo da sostituire l’eseguibile accoppiato al momento della chiamata. Vari metodi. 1- In Windows: exe e com con attributo hidden(Globe virus 1992). Di solito viene anche lanciato il file originale, dopo aver eseguito il malware. Qui Metodologia ancora attuale? Start -> Esegui Malware 1 - I virus. Davide Chiarella. 23 Companion virus 2 2- Unix e Windows: banale sostituzione eseguibile con relativa ridenominazione (Trilisa virus 2002). Attributo hidden al vecchio file e/o spostamento directory. Malware 1 - I virus. Davide Chiarella. 24 Overwriting virus • Un overwriting virus sovrascrive il file che infetta. Payload: cancellazione del file oltre a tutte le azioni che il virus compie. Comportamento poco “stealthy”: l’utente si accorge che qualcosa non va. Il problema per un overwriting virus non si pone: una volta eseguito è troppo tardi. Malware 1 - I virus. Davide Chiarella. 25 Prepending virus 1 Una versione più evoluta dell’ overwriting virus. Il virus inserisce il suo codice all’inizio del programma che infetta. = + Virus File ospite Virus File ospite infettato Malware 1 - I virus. Davide Chiarella. 26 Prepending virus 2 Una volta infettato il file ospite, quando il sistema operativo lancia il programma prima viene eseguito il codice del virus e poi quello del programma ospite infettato. Le operazioni sono quindi trasparenti per l’utente. L’operazione di prepending prevede uno studio del formato del file infettando, in modo da non corromperlo irrimediabilmente. I preferiti: file com (struttura molto facile) e file exe ( uno dei tanti metodi che ha utilizzato Nimda). Malware 1 - I virus. Davide Chiarella. 27 Prepending virus 3 Poiché il virus non sovrascrive il file infettato, ma lo “amplia” il recupero dei file infetti è piuttosto facile e la rilevazione risulta banale (controllo dimensioni file). Curiosità: il prepending virus Bliss era così educato che aveva l’opzione da linea di comando “--bliss-disinfect-files-please” Malware 1 - I virus. Davide Chiarella. 28 Appending virus 1 Il virus inserisce il suo codice alla fine del programma che infetta. Per essere eseguito deve però modificare la parte iniziale del programma ospite inserendo un salto. = + Virus File ospite Malware 1 - I virus. Davide Chiarella. File ospite infettato Virus 29 Appending virus 2 Il programma ospite di solito non viene corrotto. Questo tipo di infezione richiede che il virus modifichi gli header del file sia per creare un salto al suo codice sia per riflettere la nuova dimensione del file infettato e del segmento di memoria. Malware 1 - I virus. Davide Chiarella. 30 Boot-sector virus 1 Come avviene il boot di un PC? • Inizializzazione dell’hardware (BIOS) • Il BIOS non sa come caricare il sistema operativo cerca quindi il primo settore dell’HD ed esegue un piccolo programma che si trova nel Master Boot Record (MBR). e.g: Lilo e Grub • Il programma nel MBR conosce le varie partizioni presenti sull’HD e passa il controllo al boot sector della partizione desiderata (PBS = Partition Boot Sector o Volume BS o Volume Boot Record) Malware 1 - I virus. Davide Chiarella. 31 Boot-sector virus 2 • Il programma nel PBS individua i file del startup del sistema operativo e passa il controllo a loro Alcuni virus sfruttano la qualità di eseguibilità del MBR e/o del PBS: vengono detti Boot Sector virus. Ogni volta che la macchina viene accesa il codice del virus viene quindi eseguito. I BS-virus possono essere di tipo overwriting, prepending o appending. Malware 1 - I virus. Davide Chiarella. 32 Boot-sector virus 3 BIOS MBR Sequenza di Boot PBS Sistema Operativo Malware 1 - I virus. Davide Chiarella. 33 Boot-sector virus: michelangelo 1 Scoperto nel 1991, attivato il 6 marzo del 1992. Il virus era di tipo boot sector ad attivazione con payload distruttivo: il giorno 6 marzo sovrascriveva settori dell’hard disk. Come agisce Michelangelo? • Sposta l’MBR originale in un’altra parte dell’hard disk e si sostituisce ad esso • Una volta riavviata la macchina Michelangelo si carica in memoria e poi passa il controllo al MBR spostato • Se il giorno in questione è il 6 marzo(?) Michelangelo non passa il controllo al MBR, ma sovrascrive a caso settori dell’hard disk Malware 1 - I virus. Davide Chiarella. 34 Boot-sector virus: michelangelo 2 Mezzi di trasmissione dell’infezione? Scambio di hard disk fra amici??? Poco efficace come mezzo di trasmissione. Caricandosi in memoria tramite driver di basso livello del BIOS Michelangelo controlla l’inserimento di floppy nel sistema e infetta il loro Boot Sector in previsione di diffondersi su tutte le macchine che il floppy visiterà. Gli esemplari di virus che, una volta attivati, continuano a stare in memoria vengono detti memory-resident virus (virus residenti in memoria), mentre quelli che non risiedono in memoria vengono detti direct-action virus. Malware 1 - I virus. Davide Chiarella. 35 Boot-sector virus Con i nuovi sistemi operativi la virulenza di questi esemplari si è notevolmente affievolita, poiché i moderni sistemi operativi non si affidano più per l’accesso al disco a istruzioni di basso livello del BIOS, ma hanno le proprie. Di conseguenza la diffusione dei BS-virus su floppy o hd è resa più difficile: il virus rimane in memoria, ma non riesce a combinare molto quando il sistema operativo è ormai partito. Malware 1 - I virus. Davide Chiarella. 36 Boot-sector virus L’unica occasione di agire la ha prima che il sistema operativo venga avviato: può quindi attivare il suo payload in questo istante distruggendo i dati sul disco o corrompendo il PBS. La corruzione del PBS impedisce al sistema operativo di avviarsi in modo consono e porta, di solito, al mancato avvio dell’intero sistema. Malware 1 - I virus. Davide Chiarella. 37 Macro Virus 1 I virus infettano tutti i file che possono eseguire del codice, quindi con l’avvento dei file che supportano l’inclusione di codice eseguibile i virus si sono evoluti in macro-virus. Per citare alcuni di questi tipi di documenti: file MS Office suite, StarOffice, OpenOffice, AutoCAD etc. Malware 1 - I virus. Davide Chiarella. 38 Macro Virus 2 Vediamo un esempio di come un macro-virus agisce. MS Word. Un virus deve assicurarsi di essere eseguito dal suo ospite, preoccupazione non banale in un documento. Quando viene utilizzato un documento word fa affidamento su particolari subroutine che vengono attivate in momenti ben precisi. Malware 1 - I virus. Davide Chiarella. 39 Macro Virus: subroutine e Melissa Document_Open(): eseguita all’apertura del documento Document_Close(): eseguita quando si chiude un documento AutoExec(): eseguita all’avvio di Word AutoClose(), FileExit(): chiusura di un documento AutoExit(): chiusura di Word AutoOpen(), FileOpen(): apertura documento AutoNew(), FileNew(): creazione nuovo documento FileSave(): salvataggio documento Queste due in particolare sono state utilizzate dal virus Melissa nel 1999. Malware 1 - I virus. Davide Chiarella. 40 Macro Virus: Melissa Melissa, dopo aver infettato il pc, infetta il file Normal.dot: il file in questione viene caricato ad ogni creazione di un nuovo documento word, poiché contiene il template di default con i relativi valori (ampiezza margini, font etc.). Così Melissa ogni volta che veniva creato un documento veniva caricato in memoria (grazie al .dot) e poi si copiava nel documento legandosi alla subroutine Document_Close(). Ogni nuovo documento era vettore di contagio. Malware 1 - I virus. Davide Chiarella. 41 Macro Virus: Laroux Infezione 1996. Laroux infetta documenti Excel. L’analogo del Normal.dot in Excel è Personal.xls Sfrutta la subroutine auto_open() per caricarsi automaticamente in memoria. Una volta in memoria il virus esegue la sua macro check_files() per infettare altri file. Malware 1 - I virus. Davide Chiarella. 42 Macro Virus: Triplicate o Tristate 1 Infezione 1999. In Excel tutti i file che si trovano nella directory C:\Program Files\Microsoft Office\Office12\XLSTART Vengono aperti all’avvio di Excel. Il principio rimane sempre lo stesso: assicurarsi la sopravvivenza tramite l’esecuzione automatica del proprio codice. Triplicate però pensava in grande…. Malware 1 - I virus. Davide Chiarella. 43 Macro Virus: Triplicate o Tristate 2 Infatti fu il primo macro virus ad infettare varie tipologie di documenti, unendo varie strategie. • Infettava i file Excel creando nella directory di Startup un file chiamato Book1.xls • Infettava i file Word copiando il suo codice nel Normal.dot • Infettava i file PowerPoint copiando il suo codice nel file “Blank Presentation.pot” ( Blank.pot) I suoi bersagli primari erano i Template della Suite Office, in Vista C:\Program Files\Microsoft Office\Templates\1040 Malware 1 - I virus. Davide Chiarella. 44 Macro Virus: Triplicate o Tristate 3 Tutte le presentazioni Powerpoint erano veicolo di infezione. Non solo! Su ogni slide della presentazione creava un rettangolo trasparente dell’esatta dimensione della slide che attivava il suo codice. Malware 1 - I virus. Davide Chiarella. 45 Macro Virus: mutazioni involontarie 1 Una particolarità dei macro virus è la possibilità di mutazioni, quando un file viene infettato da due specie differenti. Ovviamente devono essere compatibili per riuscire a convivere (e.g.utilizzo di macro diverse). Questi incroci o mutazioni, quando riuscite, creano non pochi problemi agli antivirus, poiché dall’analisi dei file infetti potrebbe non risultare la stessa signature! Malware 1 - I virus. Davide Chiarella. 46 Macro Virus: mutazioni involontarie 2 Virus 1 Virus 2 Document_Open() Cancella_File() Document_Open() Invia_File() Virus 3 Document_Open() Invia_File() Cancella_File() File ospite Malware 1 - I virus. Davide Chiarella. 47 Multipartite virus L’obiettivo dei virus è la sopravvivenza: quelli che non riescono a replicarsi scompaiono. Le mutazioni dei macro virus sono un ottimo esempio di come la sopravvivenza viene garantita agli esemplari che dimostrano più adattabilità, anche se non voluta. Questa adattabilità può essere anche ottenuta tramite la fusione di più tecniche di infezione: i virus che possono infettare differenti tipi di ospiti (file eseguibili, boot sector, documenti, driver di perififeriche) vengono detti multipartite virus. Malware 1 - I virus. Davide Chiarella. 48 Multipartite virus: Navrhar Per citarne uno: Navrhar 1997. Sfruttava la macro di Word AutoOpen() e infettava anche i driver di periferiche. Al successivo riavvio del sistema tramite i driver di periferiche si collocava in memoria per poi intercettare ogni tentativo di salvataggio di file word. Come lo possiamo definire? Prima fase: direct action macro virus Seconda fase: memory resident boot-sector virus Malware 1 - I virus. Davide Chiarella. 49 Scripting virus Scripting virus: utilizza tecniche di appending o prepending su script (perl, php, python, VBS). Sono molto diffusi. VBS.Beast e PHP.Pirus Anna Kournikova worm Love bug worm (ILOVEYOU) Se non puoi sfruttare le debolezze del sistema, sfrutta le debolezze di chi lo usa. Malware 1 - I virus. Davide Chiarella. 50 Source code virus Sono virus che infettano tutti i sorgenti che trovano sulla macchina ospite. #include <stdio.h> main () { printf(“Addio mondo!”); } #include <stdio.h> #include <virus.h> main () { virus(); printf(“Addio mondo!”); } Malware 1 - I virus. Davide Chiarella. 51 Meccanismi di propagazione Meccanismi di propagazione dei virus Fino ad ora abbiamo visto come si comportano i virus una volta attivati e come identificano dove nascondersi. Tuttavia un virus che rimane confinato in un singolo computer presto finirà tutti i possibili bersagli. Un virus ha bisogno di propagarsi in nuovi sistemi, ma al contrario dei worm, manca di un meccanismo autonomo di infezione. Malware 1 - I virus. Davide Chiarella. 53 Periferiche rimuovibili 1 Fin dagli albori dell’informatica i virus hanno sfruttato la tendenza dell’uomo a condividere dati. Ergo il primo metodo di diffusione di infezioni virali sono state le periferiche rimuovibili: • Floppy ( alcuni AV avvisano quando si lascia un floppy inserito alla chiusura della macchina) • CD e DVD • Chiavi USB • Schede di memoria (Flash, XD, SD etc.) Malware 1 - I virus. Davide Chiarella. 54 Periferiche rimuovibili 2 Boot sector virus: utilizzano floppy, cd e dvd (poco pratici) e penne usb File Virus: floppy, cd e dvd (con scambio di documenti infetti o per negligenza dei fornitori [Chernobyl Virus e driver lettore CD Yamaha]), chiavi USB e schede di memoria Virus che infettano eseguibili, documenti e script: virus di tipo appending, prepending, overwriting, macro, scripting, source code etc. Malware 1 - I virus. Davide Chiarella. 55 E-mail Con la crescita e lo sviluppo di Internet l’e-mail è uno dei mezzi più popolari per scambiarsi informazioni. Inizialmente l’e-mail era solo in plain-text quindi il solo modo per utilizzarla come mezzo di diffusione era tramite gli allegati, con l’avvento delle mail in HTML le cose non sono migliorate. Non dimentichiamo che le epidemie più pericolose sono state causate da malware che si diffondevano tramite e-mail con un loro motore di posta: questo comportamento tuttavia è più caratteristico dei worm Malware 1 - I virus. Davide Chiarella. 56 Download: Melissa 1 Il Web permette di scaricare ormai qualsiasi tipo di file su qualsiasi argomento: ovviamente questo fatto non è passato inosservato ai Virus Writer. Melissa (mass mailing macro virus/worm,1999) sfruttò questa caratteristica a suo vantaggio. Per la diffusione iniziale sfruttò la social engineering: sul newsgroup alt.sex fu postato un documento word (List.DOC) contenente una lista di 80 siti porno con relativi username e password per accedervi. Malware 1 - I virus. Davide Chiarella. 57 Download: Melissa 2 Una volta infettato il computer si diffondeva via email utilizzando però il motore di Outlook spedendosi ai primi 50 indirizzi di posta. Nella sua prima versione non aveva un payload nocivo per la macchina, ma risultò fatale per molti mail-server, che a causa dell’alto traffico di mail furono vittime di un vero e proprio attacco DoS (Denial of Service). Nelle versioni successive il payload fu reso più nocivo facendo cancellare al virus file critici per il sistema (Windows). Malware 1 - I virus. Davide Chiarella. 58 Directory condivise Le directory condivise/file condivisi sono un altro mezzo di diffusione dei virus. Infatti i virus possono ricercare sul sistema infetto (se è un server ancor meglio) le directory condivise e infettare i file li presenti o replicarsi al loro interno. Altri virus possono invece ricercare le directory di default dei programmi peer-to-peer (Kazaa, Gnutella, E-donkey, Fasttrack) e replicarsi con nomi appetibili (crack, liste di password etc etc). Malware 1 - I virus. Davide Chiarella. 59 Difese Conosci il tuo nemico…. Fino ad ora abbiamo visto come agiscono i virus: con queste conoscenze siamo pronti quindi a ergere le nostre difese. La diversità dei virus ci fa capire che non esiste una regola unica per la difesa: l’approccio deve essere strutturato. Ovviamente queste difese possono essere impiegate anche contro altri tipi di malware diversi dai virus Malware 1 - I virus. Davide Chiarella. 61 … e prendi le tue contromisure Come possiamo agire quindi? • Installazione di un Antivirus • Configuration Hardening (rendere il sistema più ostico ai malware) • Educare gli utenti Malware 1 - I virus. Davide Chiarella. 62 Antivirus Primo passo: installare un antivirus. Un compito semplice? Fino a quando si è a casa la scelta è semplice e di poca spesa… ma in un ambiente più strutturato? Malware 1 - I virus. Davide Chiarella. 63 Antivirus: dove? 1 …. …. …. Malware 1 - I virus. Davide Chiarella. 64 Antivirus: dove? 2 • Computer degli utenti • File server • Mail Server • Application Server • Border firewall • Palmari La scelta ideale sarebbe su tutti. Ma performance e budget suggeriscono di restringere il campo…. Malware 1 - I virus. Davide Chiarella. 65 Antivirus: aggiornamenti Un antivirus non aggiornato è come un fucile senza pallottole: inefficace. A cosa serve l’aggiornamento? Durante l’aggiornamento l’antivirus scarica un database contenente le nuove signature dei virus appena scoperti. Un antivirus, quando controlla un file per vedere se è infetto, confronta il file con un database di stringhe di byte, ognuna rappresentante univocamente un virus. Questa stringa è chiamata signature o firma. Malware 1 - I virus. Davide Chiarella. 66 Antivirus: signature 1 Un esempio di signature all’interno di un file eseguibile potrebbe essere la seguente. Malware 1 - I virus. Davide Chiarella. 67 Antivirus: signature 2 Questa metodologia ha però una grave pecca: riconosce solo i virus che son già stati catalogati dai vendor degli antivirus e necessita di un continuo aggiornamento da parte vostra o dei vostri utenti. Inoltre tutte le eventuali mutazioni di un virus primigenio necessitano anch’esse di firme. Ne risulta che i moderni antivirus hanno un ritardo intrinseco nell’individuare i nuovi virus: questa mancanza, di solito, viene supplita con l’integrazione di altre metodologie quali l’anomaly detection Malware 1 - I virus. Davide Chiarella. 68 Antivirus: anomaly detection 1 L’anomaly detection negli antivirus crea un modello del comportamento di un file non infetto basato su alcuni attributi. Ad ogni attributo viene associato un valore, se il file dimostra di avere alcuni attributi la cui somma supera una certa soglia viene identificato come virus. ES: • Il file cerca di accedere al boot sector • Il file cerca tutti i documenti contenuti in una data directory • Il file scrive su di un eseguibile • Il file cerca di cancellare il contenuto o parte del contenuto del disco Malware 1 - I virus. Davide Chiarella. 69 Antivirus: anomaly detection 2 L’anomaly detection risulta utile solo se l’antivirus riesce ad identificare questi comportamenti sospetti prima che avvengano (dopo è troppo tardi). Gli antivirus soddisfano questo requisito emulando un processore che esegue le istruzioni del programma. E’ un task difficoltoso emulare in questo modo anche i file di tipo documenti e gli emulatori non sono privi di errori: per questo motivo l’anomaly detection viene attualmente integrata con la tecnica di identificazione basata su signature. Malware 1 - I virus. Davide Chiarella. 70 Verifica di integrità 1 I virus infettando i file li modificano: di conseguenza un possibile modo per identificarli è cercare i file che son stati modificati da un certo momento in poi. I passi da compiere sono: • Creare delle fingerprint (checksum o hash) dei file che devono essere monitorati e conservarle in un database • Quando si controlla il pc in cerca di virus comparare le fingerprint dei file con quelle conservate precedentemente • In caso si riscontrino delle diversità lanciare un allarme Malware 1 - I virus. Davide Chiarella. 71 Verifica di integrità 2 Il metodo è utile per controllare file di sistema che di solito non devono subire modifiche (dll o binari), ma risulta poco utile per file di tipo documento o per quelli che subiscono spesso modifiche. Un po’ di flessibilità nel controllo aggiusta la mira dell’antivirus: ad esempio che un documento di testo subisca delle modifiche è una cosa normale, che vengano cambiate anche le sue macro è qualcosa che si può definire sospetto. Malware 1 - I virus. Davide Chiarella. 72 Irrobustimento del sistema 1 (configuration hardening) L’obiettivo del configuration hardening è rendere il sistema meno prono ad infezioni seguendo alcune linee guida. • Principio del minimo privilegio (per gli amici POLP, Principle Of Least Priviledge): l’accesso a dati e programmi deve essere limitato ai file di cui l’utente ha strettamente bisogno • Minimizzazione del numero di componenti attivi sul sistema: è inutile tenere servizi attivi se non se ne ha bisogno. Malware 1 - I virus. Davide Chiarella. 73 Irrobustimento del sistema 2 (configuration hardening) • Agire su eventuali programmi calamita: ad esempio in Microsoft Word disabilitare le macro Malware 1 - I virus. Davide Chiarella. 74 Educare gli utenti 1 Fattore importante nella lotta ai virus è educare gli utenti. Senza questo passo la vostra rete non sarà mai al sicuro dai virus: nella maggior parte dei casi un infezione virale scoppia perché un utente ha attivato inavvertitamente un file infetto. Alcuni principi base da far seguire possono essere: • Non disabilitare i meccanismi di difesa del pc (antivirus, i settaggi delle macro in Word) Malware 1 - I virus. Davide Chiarella. 75 Educare gli utenti 2 • Non aprire allegati nelle mail di cui non è certa la provenienza e/o di cui non si conosce il formato. Non aprire allegati che sono file eseguibili. • Non scaricare ed installare programmi da fonti esterne alla vostra rete • Non connettersi col proprio computer di casa alla rete dell’azienda • Imparare a riconoscere i sintomi di una infezione virale (il computer va lento, va in stato critico, email mai spedite di ritorno rifiutate da mailserver) Malware 1 - I virus. Davide Chiarella. 76 La lotta per la sopravvivenza: tecniche di auto-preservazione dei malware Stealthing Con il termine Stealthing indichiamo tutti i metodi che un malware utilizza per celare la sua presenza nel sistema infetto. • La cosa più semplice: attributo hidden. • I malware cercano di intercettare la richiesta dell’antivirus di analizzare il file infetto e ne presentano uno sano. • Rallentare il proprio rate di infezione dei file, così da non rallentare il sistema ospite Malware 1 - I virus. Davide Chiarella. 78 Polimorfismo Polimorfismo è il processo attraverso il quale del codice malevolo modifica la sua apparenza per sventare la sua identificazione: in questo processo però esso non altera le sue funzionalità. Il codice può assumere varie forme, ma tutte con la stessa funzione. Con questa tecnica il virus si cambia dinamicamente ogni volta che va in esecuzione: cambiando il suo codice le signature prese dal codice iniziale non valgono più. Malware 1 - I virus. Davide Chiarella. 79 Polimorfismo: come? 1 La tecnica più semplice per raggiungere questo risultato può essere cambiare il nome delle sue variabili e subroutine prima di infettare un nuovo ospite. Per complicare le cose questi nomi possono essere anche scelti a caso (niente è mai per caso, però…). Un altro modo è cambiare l’ordine delle istruzioni nel suo codice, ovviamente preservando il risultato e le sue funzionalità. Malware 1 - I virus. Davide Chiarella. 80 Polimorfismo: come? 2 Si possono anche aggiungere istruzioni che non fanno niente, a parte cambiare la signature ;-) Ad esempio aggiungendo al codice queste due righe (supponendo di avere una viariabile i): i=i+1; i=i-1; Un’altra tecnica polimorfica è crittografare tutto il codice tranne la parte necessaria alla decrittazione: il virus utilizza chiavi pseudo casuali per crittografarsi. Dopo essersi crittografato nasconde la chiave all’interno del suo codice, sempre in modo pseudo causale. Puo far di meglio? Cambiare il look del suo motore crittografico con le tecniche precedenti. Chi è interessato il primo motore di mutazione per newbies è uscito nel 1992: MtE. Malware 1 - I virus. Davide Chiarella. 81 Metamorfismo Il metamorfismo porta il concetto di polimorfismo leggermente più in là, dove nessun uomo è giunto prima… Il metamorfismo muta il virus e muta leggermente anche le sue funzionalità. Il metodo si assicura di farlo in modo da non far perdere virulenza al virus (al massimo di aumentarla!). Malware 1 - I virus. Davide Chiarella. 82 Disattivazione dell’antivirus 1 Quale modo migliore c’è di autopreservarsi che disabilitare l’antivirus? Il virus di solito possiede una lista di processi sgraditi nel suo codice, che ben sa appartenere agli antivirus in commercio. Una volta entrato nel sistema il virus per prima cosa uccide questi processi e poi incomincia il suo lavoro. Un altro metodo è bloccare l’accesso ai domini che appartengono a case produttrici di antivirus, così da impedire l’aggiornamento delle signature. Malware 1 - I virus. Davide Chiarella. 83 Disattivazione dell’antivirus Un virus può anche modificare il registro di sistema in modo da rendere alcuni programmi, resi sicuri precedentemente, focolai di infezione. Ad esempio cambiare i settaggi macro di Word, cambiando una chiave nel registro di Windows. Tutto questo ovviamente può accadere se il virus non è stato ancora individuato e schedato tramite signature o l’antivirus non è aggiornato. Malware 1 - I virus. Davide Chiarella. 84