Codice malizioso Alfredo De Santis Dipartimento di Informatica Università di Salerno [email protected] http://www.dia.unisa.it/professori/ads Maggio 2014 Codice “malizioso” Dopo una violazione del sistema, un intruso potrebbe installare del codice per sottrarre dati riservati muovere attacchi verso altre macchine Tale codice può anche sostituire comandi di sistema 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 1 Codice “malizioso” Altro metodo per l’installazione o esecuzione di software malizioso su una macchina indurre un utente/amministratore a scaricarlo dalla rete ed eseguirlo (anche inconsapevolmente) Un’applicazione tipica di questo approccio sono i Virus Programmi che penetrano in un programma ospite modificandolo, per riprodursi e danneggiare dati e/o programmi 2 Il termine “Virus” David Gerrold, 1972 Nel libro “When Harlie Was One” viene descritto un programma chiamato virus creato da uno scienziato pazzo 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 Antivirus Vaccine creato dall’inventore a scopo di lucro 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 " 3 Software Malizioso 4 Virus e simili Backdoor Punto di accesso segreto in un programma sfruttabile per acquisire l’accesso al sistema Utilizzate dai programmatori per test e debug di programmi Attivate con particolari sequenze di input Bomba logica Codice incluso in un programma legittimo Configurata per esplodere in particolari condizioni Una volta innescata, può compiere azioni dannose Zombie Programma che assume segretamente il controllo di altri computer in rete I computer “controllati” sono usati per attacchi che non consentono di identificare il responsabile Esempio: DoS (Denial of Service) 5 Virus e simili Cavallo di Troia Programma apparentemente legale che contiene istruzioni che realizzano funzioni non richieste dell’utente (anche dannose) Worm Programma che si ricopia su reti di computer sfruttando bug del sistema operativo Non necessita di un programma portatore Virus Porzioni di codice autoreplicante Boot virus, macrovirus, etc… 6 Virus: Classificazione o Innocui o Non alterano le operazioni del computer o Il risultato della loro propagazione comporta solo una diminuzione dello spazio libero sul disco o Non dannosi o La loro influenza si manifesta solo con una diminuzione dello spazio libero sul disco, col mostrare grafici, suoni o altri effetti multimediali 7 Virus: Classificazione o Dannosi o Possono causare problemi alle normali operazioni del computer o Cancellazione di alcune parti dei file o Molto dannosi o Provocano danni difficilmente recuperabili o Distruzione dei programmi o Cancellazione di informazioni vitali per il sistema o Formattazione di porzioni del disco 8 Ciclo di vita di un virus Creazione Fase in cui lo sviluppatore progetta, programma e diffonde il virus Incubazione Il virus controlla che il file o il sistema da infettare sia libero da infezioni Infezione Se l'infezione non è attiva sullo stesso sistema, allora il virus infetta il file e di conseguenza il sistema 9 Ciclo di vita di un virus Attivazione Al verificarsi delle condizioni previste il virus viene attivato 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) Riconoscimento Viene individuata la stringa di riconoscimento del virus Estirpazione Il virus viene eliminato dal sistema mediante un antivirus 10 Un semplice virus program V := { goto main; subroutine infetta_eseguibile := {loop: file := scegli _file_eseguibile; if (file già infetto) then goto loop else aggiungi_V_inizio_file;} subroutine danneggia := {esegui il danno} subroutine controlla_condizione_trigger := {restituisci true se vale la condizione} main: programma principale := { infetta_eseguibile; if (controlla_condizione_trigger) then danneggia; } } 11 Un virus a compressione program CV:= { goto main; subroutine infetta_eseguibile := {loop: file := scegli _file_eseguibile; if (file già infetto) then goto loop else comprimi file; aggiungi_CV_inizio_file;} main: programma principale := { infetta_eseguibile; espandi file; esegui file non compresso;} } 12 Un virus a compressione 13 Virus polimorfici Il codice del virus viene crittografato Serve per aggirare la ricerca di stringhe note da parte di antivirus Vari livelli di polimorfismo • Oligomorfi (stessa routine) • Strettamente polimorfi (routine random) Motore polimorfico • Cripta il virus con una chiave casuale • La chiave è conservata nel virus • Inserisce nella routine di cifratura istruzioni casuali (garbage) per confondere l’antivirus • Alla replicazione, sceglie una chiave differente 14 Macrovirus Virus scritti come macro di applicazioni utente Macro: insieme di istruzioni usate per automatizzare compiti Possono essere eseguiti all’atto dell’apertura di un documento Esempi: Melissa e I Love You Scritti in VBS Si trasmettono via E-Mail Accedono e modificano il file registro di Windows 15 Melissa Individuato nel marzo del 1999 In tre giorni, 100000 computer infettati Un sito ricevette 32000 copie di Melissa via email in soli 45 minuti… Nato per: Replicarsi sotto Office97 Infettare i documenti Word 97 e successive versioni Spedire sue copie attraverso messaggi di posta elettronica usando Microsoft Outlook 16 Melissa: diffusione 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 17 Come funziona Melissa L'allegato, una volta aperto, svolge due azioni: 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 18 Come funziona Melissa Supponiamo che l'infezione sia avvenuta alle ore 8:08 a.m. Se l'8 agosto successivo si scrive un documento Word… 19 I Love You Il mese di Maggio del 2000 è stato segnato dalla comparsa del virus "I Love You“ In pochi giorni, oltre 50 milioni di computer infettati Danni provocati: oltre 10 milioni di dollari 20 I Love You: diffusione Arriva tramite una e-mail contenente un file con estensione VBS come allegato (il virus) 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 21 Come funziona I Love You Si propaga tramite e-mail, inviando messaggi infetti da computer dove è stato precedentemente eseguito Usa Microsoft Outlook per spedire se stesso a tutti gli indirizzi contenuti nella rubrica Quando viene eseguito Si spedisce via email Si installa nel sistema Sviluppa azioni distruttive Scarica ed installa un cavallo di troia 22 Come funziona I Love You 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 Si ricopia nella directory system di Windows con il nome di WINFAT32.EXE Rimette come pagina iniziale una pagina bianca (about:blank) 23 Come funziona I Love You Il virus cerca nelle sottodirectory di tutti i drive i file con estensione: 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 Nasconde i file originali e crea nuovi file contenenti il suo codice ma con estensione VBS aggiunto al nome completo di tutti i file 24 Worm Votati principalmente alla diffusione Danneggiamento o sottrazione di dati Rallentano fino a bloccare il computer ospite Possono intasare una rete locale con le loro “spore” 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) 25 Difendersi dai virus La migliore contromisura è la prevenzione Bisogna poter svolgere le seguenti attività Rilevamento Identificazione Rimozione 26 Software Anti-Virus Prima generazione scanner che identificano virus in base alle signature (struttura e configurazione) Seconda generazione usano euristiche per ricercare segni di infezione eseguono il controllo dell’integrità Terza generazione identificano i virus in base alle loro azioni non richiedono elenco di signature Quarta generazione pacchetti che combinano diverse tecniche antivirus 27 Denial of Service Attacco che impedisce l’uso legittimo di un servizio Metodi consumo larghezza di banda consumo delle risorse sfruttamento errori programmazione modifica tabelle di instradamento 28 Denial of Service Vari tipi di attacchi Smurf/Ping Broadcast Fraggle Attack Syn Flooding 29 Denial of Service: Smurf/Ping Broadcast Idea: inviare un messaggio ECHO (con protocollo ICMP) all’indirizzo di broadcast di una rete inserendo come mittente l’indirizzo della vittima (spoofing) La vittima viene sommersa di messaggi di risposta 30 Denial of Service: Fraggle Attack Idea: Come l’attacco Smurf/Ping Broadcast, ma usa il protocollo UDP La vittima viene sommersa di messaggi di risposta di tipo ECHO REPLY o UNREACHABLE 31 Esempio di DoS: Smurf/Ping Broadcast e Fraggle Attack 32 Denial of Service: Syn Flooding Sfrutta le debolezze dell’handshake di TCP La comunicazione su B non termina finchè A non risponde o al timeout della connessione B deve mantenere in memoria le info sulla connessione 33 Denial of Service: Syn Flooding Se B deve tenere in memoria molti pacchetti, il servizio per sovraccarico non risponde si blocca blocca l'intera macchina sulla quale è ospitato 34 Denial of Service: Syn Flooding Come fare? Sostituire l'indirizzo di A (di ritorno) del pacchetto con uno inesistente B non riesce a contattare il finto chiamante e si blocca o risponde in tempi inaccettabili 35 Distributed Denial of Service Stesso approccio del DoS ma usa più punti di ingresso contemporaneamente L’attacco non parte dagli host dell’hacker ma da sistemi di aziende ignare e strutture pubbliche Su queste macchine (slave) viene installato e lanciato un programma per attivare un processo zombie che resta in attesa di un comando di attivazione 36 Distributed Denial of Service Minaccia seria per le aziende Nel 2001 più di 12000 attacchi contro oltre 5000 obiettivi, tra cui Amazon e Hotmail 37 Bibliografia Cryptography and Network Security by W. Stallings (2005) cap. 19 Tesina di Sicurezza su reti Virus 38 Domande?