•Corso di Sicurezza su Reti •18/06/2004 Codice malizioso Codice “malizioso” ØDopo una violazione del sistema, un intruso potrebbe installare del codice per Ø sottrarre dati riservati Ø muovere attacchi verso altre macchine Alfredo De Santis ØTale codice può anche sostituire comandi di sistema Dipartimento di Informatica ed Applicazioni Ø Sostituzione di sendmail con una nuova versione che memorizza in un file i messaggi inviati dall’utente Ø Sostituzione di ls con una nuova versione che non visualizza il file creato dal sendmail fasullo Università di Salerno Alfredo De Santis - DIA – Università di Salerno Codice “malizioso” Il termine “Virus” ØDavid Gerrold, 1972 ØAltro metodo per l’installazione o esecuzione di software malizioso su una macchina Ø Nel libro “When Harlie Was One” viene descritto un programma chiamato virus creato da uno scienziato pazzo Ø indurre un utente/amministratore a scaricarlo dalla rete ed eseguirlo (anche inconsapevolmente) Ø Il computer infettato provava a contattare un altro computer via telefono Ø Entrava in quel sistema e lo infettava con una sua copia Ø Si infiltrava nel software di sistema e lo rallentava fino a renderlo inutilizzabile ØUn’applicazione tipica di questo approccio sono i Virus Ø Antivirus Vaccine creato dall’inventore a scopo di lucro Ø Programmi che penetrano in un programma ospite modificandolo, per riprodursi e danneggiare dati e/o programmi Alfredo De Santis - DIA – Università di Salerno 1 ØFred Cohen Ø Il primo a definire in modo formale il concetto di virus Ø "... a program that can infect other programs by modifing them to include a possibly evolved copy of itself " 2 Ciclo di vita di un virus Alfredo De Santis - DIA – Università di Salerno 3 Ciclo di vita di un virus ØAttivazione ØCreazione Ø Al verificarsi delle condizioni previste il virus viene attivato Ø Fase in cui lo sviluppatore progetta, programma e diffonde il virus ØPropagazione Ø Il virus propaga l'infezione, riproducendosi e infettando sia file nella stessa macchina che altri sistemi (tramite scambio di dischi, connessioni via modem o collegamenti in rete) ØIncubazione Ø Il virus controlla che il file o il sistema da infettare sia libero da infezioni ØRiconoscimento ØInfezione Ø Viene individuata la stringa di riconoscimento del virus Ø Se l'infezione non è attiva sullo stesso sistema, allora il virus infetta il file e di conseguenza il sistema ØEstirpazione Ø Il virus viene eliminato dal sistema mediante un antivirus Alfredo De Santis - DIA – Università di Salerno 4 Alfredo De Santis - DIA – Università di Salerno 5 •1 •Corso di Sicurezza su Reti •18/06/2004 Virus: Classificazione Virus: Classificazione o Dannosi o Innocui o Possono causare problemi alle normali operazioni del computer o Non alterano le operazioni del computer o Il risultato della loro propagazione comporta solo una diminuzione dello spazio libero sul disco o Cancellazione di alcune parti dei file o Molto dannosi o Non dannosi o Provocano danni difficilmente recuperabili o La loro influenza si manifesta solo con una diminuzione dello spazio libero sul disco, col mostrare grafici, suoni o altri effetti multimediali o Distruzione dei programmi o Cancellazione di informazioni vitali per il sistema o Formattazione di porzioni del disco Alfredo De Santis - DIA – Università di Salerno 6 Virus e simili Kevin Mitnich, 1986 Ø Programma apparentemente legale che contiene istruzioni che realizzano funzioni non richieste dell’utente (anche dannose) Ø Progettò un cavallo di Troia che infettò Ø Nove università Ø Quindici compagnie della Silicon Valley Ø Nove siti Arpanet Ø Tre laboratori governativi Ø Etc… ØWorm Ø Programma che si ricopia su reti di computer sfruttando bug del sistema operativo Ø Non necessita di un programma portatore Ø Il virus sostituiva il programma di accesso alla rete con una sua copia modificata ØVirus Ø Porzioni di codice autoreplicante Ø Boot virus, macrovirus, etc… Ø Restituiva al suo autore login e password dell'utente che si stava identificando in quell'istante 8 Worm Alfredo De Santis - DIA – Università di Salerno 9 Boot Virus ØVotati principalmente alla diffusione ØInfettano il Boot Sector di un floppy o il Master Boot Record degli hard disk Ø Danneggiamento o sottrazione di dati Ø Rallentano fino a bloccare il computer ospite Ø Possono intasare una rete locale con le loro “spore” Ø MBR copiato su un altro settore del disco Ø Virus copiato nell’MBR Ø Se più grande del settore sono usati altri settori marcati BAD Ø Alcuni esempi Ø Il worm di Morris (novembre 1988) Ø Code Red (luglio 2001), Nimda (settembre 2001) Ø SQL Slammer (gennaio 2003), SoBig (agosto 2003), MsBlaster (agosto 2003) Ø Sasser (aprile 2004), Gaobot (aprile 2004) Alfredo De Santis - DIA – Università di Salerno 7 Cavallo di Troia ØCavallo di Troia Alfredo De Santis - DIA – Università di Salerno Alfredo De Santis - DIA – Università di Salerno ØBoot da disco infetto Ø Viene letto il Boot Sector (contente il virus), copiato in memoria ed eseguito Ø Virus setta i vettori di interrupt Ø Carica il vero Boot sector e gli trasferisce il controllo 10 Alfredo De Santis - DIA – Università di Salerno 11 •2 •Corso di Sicurezza su Reti •18/06/2004 Macrovirus Melissa ØVirus scritti come macro di applicazioni utente ØIndividuato nel marzo del 1999 Ø Macro: insieme di istruzioni usate per automatizzare compiti Ø In tre giorni, 100000 computer infettati Ø Un sito ricevette 32000 copie di Melissa via email in soli 45 minuti… ØPossono essere eseguiti all’atto dell’apertura di un documento ØNato per: ØEsempi: Melissa e I Love You Ø Replicarsi sotto Office97 Ø Infettare i documenti Word 97 e successive versioni Ø Spedire sue copie attraverso messaggi di posta elettronica usando Microsoft Outlook Ø Scritti in VBS Ø Si trasmettono via E-Mail Ø Accedono e modificano il file registro di Windows Alfredo De Santis - DIA – Università di Salerno 12 Melissa: diffusione 13 Come funziona Melissa L'allegato, una volta aperto, svolge due azioni: ØArriva come allegato di una email Ø Oggetto: "Important message from (mittente)...". Ø Body: “Here is that document you asked for…don’t show anyone else” Ø list.doc, documento Word, che contiene il macrovirus Melissa Alfredo De Santis - DIA – Università di Salerno Alfredo De Santis - DIA – Università di Salerno 14 Come funziona Melissa ØDiffusione Ø Spedisce il documento infetto ai primi 50 indirizzi nella rubrica ØInfezione Ø Disabilita la finestra di avvertimento per lo stato delle macro e la protezione macro di Word Ø Si mostra quando il valore della data corrisponde al valore dell'ora Alfredo De Santis - DIA – Università di Salerno 15 I Love You Il mese di Maggio del 2000 è stato segnato dalla comparsa del virus "I Love You“ ØSupponiamo che l'infezione sia avvenuta alle ore 8:08 a.m. ØSe l'8 agosto successivo si scrive un documento Word… ØIn pochi giorni, oltre 50 milioni di computer infettati ØDanni provocati: oltre 10 milioni di dollari Alfredo De Santis - DIA – Università di Salerno 16 Alfredo De Santis - DIA – Università di Salerno 17 •3 •Corso di Sicurezza su Reti •18/06/2004 I Love You: diffusione Come funziona I Love You ØArriva tramite una e-mail contenente un file con estensione VBS come allegato (il virus) ØSi propaga tramite e-mail, inviando messaggi infetti da computer dove è stato precedentemente eseguito ØIl messaggio originale è il seguente: Ø The Subject: ILOVEYOU Message test: kindly check the attached LOVELETTER coming from me. Attached file name: LOVE-LETTER-FORYOU.TXT.vbs Alfredo De Santis - DIA – Università di Salerno ØUsa Microsoft Outlook per spedire se stesso a tutti gli indirizzi contenuti nella rubrica ØQuando viene eseguito Ø Ø Ø Ø 18 19 Il virus cerca nelle sottodirectory di tutti i drive i file con estensione: ØI Love You modifica l'URL della pagina iniziale del browser ØIl nuovo URL punta ad un sito Web contenente il cavallo di troia WIN-BUGSFIX.EXE ØAl prossimo riavvio del browser, il virus scarica il cavallo di troia ØAl prossimo riavvio di Windows, il cavallo di troia prende il controllo del sistema Ø VBS, VBE, JS, JSE, CSS, WSH, SCT e HTA Ø Crea un nuovo file con nome originale ed estensione VBS cancellando quello precedente Ø JPG e JPEG Ø Esegue le stesse operazioni precedenti ma aggiunge l'estensione VBS al nome completo di ciascun file Ø MP3 Ø Si ricopia nella directory system di Windows con il nome di WINFAT32.EXE Ø Rimette come pagina iniziale una pagina bianca (about: blank) Ø Nasconde i file originali e crea nuovi file contenenti il suo codice ma con estensione VBS aggiunto al nome completo di tutti i file 20 Difendersi dai macrovirus Ø Nelle applicazioni Office, controllare che sia selezionata la voce Macro virus protection Alfredo De Santis - DIA – Università di Salerno Alfredo De Santis - DIA – Università di Salerno Come funziona I Love You Come funziona I Love You Alfredo De Santis - DIA – Università di Salerno Si spedisce via email Si installa nel sistema Sviluppa azioni distruttive Scarica ed installa un cavallo di troia Alfredo De Santis - DIA – Università di Salerno 21 Difendersi dai macrovirus Ø Aprendo un documento contenente macro possiamo scegliere se attivare o disattivare le macro incluse 22 Alfredo De Santis - DIA – Università di Salerno 23 •4 •Corso di Sicurezza su Reti •18/06/2004 Difendersi dai macrovirus Ø Se non si è certi dello scopo o della funzione di tali macro, si consiglia di disattivarle sempre Ø In questo modo si impedirà l'esecuzione dei virus macro rendendoli innocui Ø Il virus viene attivato solo se Ø si apre il documento allegato e si sceglie di attivare le macro Ø la protezione da virus macro è disattivata Alfredo De Santis - DIA – Università di Salerno 24 Self-Reproducing Executable File (SREF) Alfredo De Santis - DIA – Università di Salerno 25 Programma Auto-replicante che produce in output una copia esatta del suo codice sorgente compilazione(File Sorgente) = Eseguibile esecuzione (Eseguibile) = File Sorgente compilazione(File Sorgente) = Eseguibile esecuzione(Eseguibile) = Eseguibile 26 Metodi di risoluzione Alfredo De Santis - DIA – Università di Salerno 27 Metodo Leggi/Scrivi Legge i dati contenuti nel file sorgente e li riproduce in output: Ø Self-Reproducing Executable File (SREF) Ø leggi/scrivi Ø Self-Reproducing Program (SRP) while (non hai letto tutti i dati dal file sorgente/eseguibile) { leggi i dati dal file sorgente/eseguibile; scrivi in output i dati letti; } Ø leggi/scrivi Ø ricostruzione intrinseca Alfredo De Santis - DIA – Università di Salerno ØUtilizzare/installare software solo se di provenienza fidata ØMicrosoft e Sun hanno proposto alcuni sistemi per la certificazione (mediante firma digitale) dell’affidabilità di ActiveX ed Applet ØMolti Anti Virus possono verificare la presenza di file infetti anche quando questi sono giunti sul sistema come allegati di posta elettronica Self-Reproducing Program (SRP) Eseguibili Auto-replicanti la cui esecuzione produce in output una copia esatta del file eseguibile stesso. Alfredo De Santis - DIA – Università di Salerno Difendersi dai virus 28 Alfredo De Santis - DIA – Università di Salerno 29 •5 •Corso di Sicurezza su Reti •18/06/2004 Vincolo del Metodo Leggi/Scrivi per SRP Ricostruzione intrinseca Ø La ricostruzione del file sorgente è intrinseca al codice sorgente stesso Disporre a run-time del file sorgente da copiare ØSi utilizzano delle stringhe costanti opportunamente formattate Alfredo De Santis - DIA – Università di Salerno 30 Alfredo De Santis - DIA – Università di Salerno Esempio del Metodo in Linguaggio C 31 Printf printf(stringa di controllo, lista dei parametri); Utilizzeremo le seguenti potenzialità della funzione printf fornita dal linguaggio C Ø Fornisce output opportunamente formattato Ø Permette di stampare un elenco di parametri di lunghezza arbitraria Ø Permette di controllare la stampa attraverso semplici specifiche di conversione (o formati) Esempio: %c formato per stampare il valore di un’espressione come un carattere La stringa di controllo contiene una specifica di conversione per ogni parametro Alcune specifiche di conversione: Ø %d (conversione ad intero) Ø %c (conversione a carattere) Ø %s (conversione a stringa) Esempio: printf(“Esempio %d %c della funzione %s.”, 1, ‘ a’ , “printf”); Output: Esempio 1 a della funzione printf. Alfredo De Santis - DIA – Università di Salerno 32 Alfredo De Santis - DIA – Università di Salerno 33 Esempio del Metodo in Linguaggio C char*f="char*f=%c%s%c;main(){printf(f,34,f,34);}"; main ( ) codice ASCII { 34 à ” printf( f, 34, f, 34 ); } printf("char*f=%c%s%c;main(){printf(f,34,f,34);}", 34, f, 34 ); Esecuzione della printf ed output: char*f= “char*f=%c%s%c;main(){printf(f,34,f,34);}”;main(){printf(f,34,f,34);} Alfredo De Santis - DIA – Università di Salerno 34 •6