Introduzione ai virus Davide Fabris Vincenzo Glave [email protected] [email protected] Corso di Sicurezza delle reti e dei calcolatori 1 Il malcode (malicious code) Una sequenza di codice progettata per danneggiare intenzionalmente un sistema o i dati che contiene o comunque alterare il suo normale funzionamento, all’insaputa dell’utente. 2 Categorie di malcode worm macro virus virus trojan horse malcode (hoax) applet ActiveX html 3 Virus Un malcode che: infetta altri file o dischi per replicarsi; altre caratteristiche: può danneggiare file o sistemi; può manifestarsi all’utente; può fare niente di tutto questo; 4 Worm Un malcode che: non necessita di un host da infettare; tipicamente si diffonde tramite Internet (email, chat channels, file sharing, etc); può sfruttare vulnerabilities nei sistemi per infettarli e/o danneggiarli; 5 Trojan horse Un malcode che: si finge un’applicazione lecita; viene eseguito intenzionalmente dall’utente; oltre al normale funzionamento esegue operazioni dannose all’insaputa dell’utente (tipicamente apre una backdoor) sfruttando le vulnerabilities dei sistemi; nella versione “pura” non si replica; 6 Macro-virus Le macro sono sequenze di istruzioni progettate per semplificare ed automatizzare delle procedure all’interno di programmi (Word, Excel, etc). Il macro virus consiste di una o più macro maligne, scritte in un linguaggio di programmazione per macro e allegate ad un documento. Si replica infettando altri documenti 7 Hoax Altrimenti noto come pseudo virus, è un falso allarme. Può essere intenzionale e spingere l’utente a danneggiare inconsapevolmente il proprio sistema. 8 Malcode naming Nome: una stringa di testo contenuta nel codice o la località dove è stato scoperto CARO naming convention: Type o platform Family name Group name Variant Esempio: Win32.Sobig.F 9 Storia dei virus 1983. Viene coniato il termine “computer virus” “A computer program that can affect other computer programs by modifying them in such a way as to include a (possibly evolved) copy of itself.” 10 Storia dei virus: Brain Nome: Brain Tipo: virus Data di diffusione: 1986 dal Pakistan O.S. attaccabili: sistemi DOS Effetti dell’infezione: replicazione Metodo di diffusione: boot sector infector Altre caratteristiche: Memory resident 11 Sequenza di boot da HD power on BIOS Codice all’interno di un chip ROM Esegue test e inizializzazione dell’hardware (POST) Carica in memoria il Master Boot Record e la Partition Table che si trovano nel primo settore del disco MBR OS boot L’MBR localizza sulla Partition Table la prima entry bootable L’MBR localizza il settore che contiene l’OS boot code (il partition boot sector) e lo carica in memoria 12 Boot-infecting virus (1) Boot da floppy Il virus (o il suo loader) si trova sul primo settore del floppy ... Il BIOS carica in memoria ed esegue il primo settore del floppy (quello che pensa essere il boot sector) Il virus è in memoria: ora deve infettare il PC. 13 Boot-infecting virus (2) Boot sector infector: Il virus è in memoria e può infettare altri floppy ... Il virus individua sull’HD l’OS boot sector, lo sposta e scrive al suo posto il proprio codice o una parte di esso (un loader) Il virus esegue l’OS boot sector originale reboot Il BIOS carica in memoria ed esegue l’MBR L’MBR carica in memoria ed esegue il virus boot sector 14 Boot-infecting virus (3) Partition table infector: Il virus è in memoria e può infettare altri floppy ... Il virus individua sull’HD la partition table e modifica l’indirizzo dell’OS boot sector per farlo puntare al proprio codice Il virus esegue l’OS boot sector originale reboot Il BIOS carica in memoria ed esegue l’MBR L’MBR carica in memoria ed esegue il virus boot sector 15 Boot-infecting virus (4) MBR infector: L’MBR carica in memoria ed esegue l’OS boot sector ... Il virus individua sull’HD l’MBR, lo sposta e scrive al suo posto il proprio codice o una parte di esso (un loader) Il virus è in memoria e può infettare altri floppy Il virus carica in memoria ed esegue l’MBR originale reboot Il BIOS carica in memoria ed esegue il virus al posto dell’MBR 16 (Non) memory resident virus Un virus non residente in memoria (transient) rimane attivo per un intervallo di tempo limitato durante il quale effettua le sue operazioni e poi termina. Un virus residente in memoria (resident) rimane attivo in memoria anche dopo l’esecuzione dell’host infetto e intercetta eventi di sistema in corrispondenza dei quali effettua le sue operazioni Più facile da implementare Meno efficace Più efficace Più difficile da implementare Più difficile da estirpare 17 Storia dei virus: Jerusalem Nome: Jerusalem.1808 Tipo: virus Data di diffusione: 1987 dall’Italia O.S. attaccabili: sistemi DOS Effetti dell’infezione: si attiva ogni venerdì 13 e cancella ogni programma mandato in esecuzione. Metodo di diffusione: file infector (.exe, .com) Altre caratteristiche: Memory resident Prepender 18 File-infecting virus (1) File execution Il virus è incorporato in un file eseguibile (host file) Una volta arrivato sul PC ... ... ... viene eseguito quando (e se) il file viene eseguito 19 File-infecting virus (2) Transient virus: ... Il virus cerca i file eseguibili non infettati e li infetta Il virus cede il controllo al programma host e termina 20 File-infecting virus (3) Memory resident virus: ... Il virus cede il controllo al programma host e rimane residente in memoria Il virus intercetta system calls per individuare potenziali host e replicarsi. 21 Tecniche per infettare gli host Overwriting virus Parasitic virus Appending virus Prepending virus Inserting virus Cavity virus Companion virus 22 Overwriting virus Program file header Program file header Virus code E’ la tecnica più semplice L’host file è danneggiato e inutilizzabile 23 Parasitic virus Si inserisce all’interno dell’host file modificandone la struttura. L’host file non è danneggiato e rimane utilizzabile, almeno parzialmenteil virus può cedergli il controllo. La modifica della struttura del file richiede di conseguenza anche la modifica dell’header. Tipi di parasitic virus: Appending virus Prepending virus Inserting virus Cavity virus 24 Appending virus Program file header Program file header Virus code 25 Prepending virus Program file header Program file header Virus code 26 Inserting virus Program file header Program file header Virus code 27 Cavity virus Program file header spazio inutilizzato Program file header Virus code 28 Companion virus Non modificano l’host file. 1° tipo (tipico di DOS) Host file: nomehost.exe 2° tipo (funziona con tutti gli OS) Host file: infezione Virus: nomehost.com Quando l’utente digita il nome del file senza specificare l’estensione, in realtà l’OS esegue il virus nomehost.exe infezione Host file: nomehost.ext Virus: nomehost.exe Quando l’utente digita il nome del file anche specificandone l’estensione, in realtà l’OS esegue il virus 29 Routine utilizzabili Per infettare e danneggiare i sistemi, i virus possono: Accedere direttamente all’hardware Utilizzare BIOS Interrupt routines Utilizzare le System Calls dell’OS. 30 Storia dei virus: Stoned Nome: Stoned.Standard Tipo: virus Data di diffusione: 1987 Effetti dell’infezione: visualizza il seguente messaggio: “Your PC is now stoned! LEGALIZE MARIJUANA!”, visibile nell’MBR; può sovrascrivere una parte dei dati. Metodo di diffusione: MBR infector. Altre caratteristiche: Memory resident 31 Storia dei virus: Christma Exec Nome: Christmas Tree Exec Tipo: trojan horse Data di diffusione: Dicembre 1987 Effetti dell’infezione: si finge una cartolina di Natale e, una volta eseguito, si autospedisce a tutti gli indirizzi della rubrica provocando un Denial of Network. Metodo di diffusione: via e-mail. 32 Storia dei virus: Internet Worm Nome: Internet Worm Tipo: worm Data di diffusione: 1988 dal MIT O.S. attaccabili: Unix (Berkeley v4) Effetti dell’infezione: Ricerca nel sistema indirizzi di host locali e remoti. In alternativa li genera casualmente Per penetrare negli host remoti utilizza: Dictionary attack sulle password Buffer overflow sul servizio di finger. Trap-door su sendmail. Provoca DoS e DoN. Metodo di diffusione: via Internet. 33 Differenze Trojan/Worm Entrambi non infettano altri files I Trojan non prevedono un meccanismo di diffusione I worm contengono codice che gli permette di diffondersi in maniera efficace Molto spesso tendono a cooperare: un worm è spesso un trojan e un trojan viene spesso diffuso come worm(la differenza è quindi molto sottile) 34 Tipi di Trojan/Worm Remote Administration Backdoor Network redirect Distributed attack Denial of Service Password stealers Keyloggers 35 Remote Administration Il più pericoloso e dannoso Consente all’hacker di avere il pieno controllo del computer infetto Composto da due parti distinte: Server memorizzato ed eseguito sull’host da infettare Client utilizzato dall’hacker per contattare il lato server Esempi: BackOrifice, Subseven 36 Backdoor(1) Tecnica meno sofisticata del RAT Tutti i RAT sono Backdoor ma non tutti i backdoor sono RAT Il controllo da parte dell’hacker non è totale. Il worm/Trojan si limita solo ad effettuare quello per cui è stato progettato Provvedono solitamente ad installare un servizio TCP (demone) fasullo sull’host da attaccare e a comunicare all’hacker l’indirizzo IP della macchina compromessa 37 Backdoor(2) Esempio di backdoor trojan “tHing”: Si copia all’interno del file Netlog1.exe e modifica il System.ini Attende che il computer infetto sia on line per notificarlo all’hacker con il messaggio “Victim is online” inviato attraverso ICQ Finchè il computer compromesso resta on-line l’hacker puo’ effettuare l’upload e l’esecuzione di file 38 Network redirect Utilizza gli host compromessi come ponte per effettuare l’attacco ad un determinato host Rende molto difficile risalire all’host che ha generato un determinato attacco Utilizzato anche per rendere più complicato il lavoro di filtraggio dei firewalls 39 Distributed attack(1) Si diffonde rapidamente sul maggior numero di macchine possibile Prima di effettuare l’attacco di massa attende l’ordine dell’hacker L’attacco non è diretto alle macchine infettate Gli host infetti vengono congiuntamente utilizzati per attaccare uno specifico obiettivo 40 Distributed attack(2) Esempio “Win32.TrinZombie”: Si diffonde via e-mail e si camuffa dietro un innocuo giochino Apre la porta 34555 e attende comandi dall’hacker Una volta attivato invia in continuazione pacchetti corrotti (malformed) ad un determinato host L’host target spenderà tutto il suo tempo a tentare di rispondere ai pacchetti UDP ricevuti arrivando progressivamente al collasso 41 Denial of Service Spesso utilizzato in combinazione con altre tecniche Tenta di impedire agli utenti l’accesso ad un determinato servizio Puo’ causare il collasso dell’host infettato riempiendo il disco locale di migliaia di files Puo’ utilizzare l’host compromesso come base per causare un Dos ad un host target prefissato (sommergendolo di richieste quali ad esempio mail, ping, pacchetti ICMP,UDP ecc.) Esempio di Dos può anche essere il mailbombing 42 Password Stealer Progettato per catturare le password inserite dall’utente Memorizza le password in chiaro contenute all’interno della cache Crea falsi messaggi di errore e invita l’utente a inserire nuovamente la password Esempio: DUNPassword Attende che il computer effettui una connessione di accesso remoto Effettua una finta disconnessione ed invita l’utente ad inserire la password Salva la password e la invia all’hacker via e-mail 43 Keylogger Solitamente parte di Worm/Trojan più complessi Memorizza tutti i caratteri digitati all’interno di un file solitamente criptato Il file giunge all’hacker via e-mail oppure utilizzando altre tecniche (RAT) Grazie alle ridottissime dimensioni passa molto spesso inosservato 44 Storia dei virus: Michelangelo Nome: Stoned.Michelangelo Tipo: virus Data di diffusione: 1991 Diffusione: bassa Effetti dell’infezione: Si attiva il 6 Marzo di ogni anno (data di nascita di Michelangelo) e distrugge i dati, sovrascrivendo vari settori del disco fisso. Metodo di diffusione: MBR infector. Altre caratteristiche: Memory resident 45 Storia dei virus: Concept Nome: WM.Concept Tipo: macro virus Data di diffusione: 1996 O.S. attaccabili: MS Windows Effetti dell’infezione: Grazie alla macro AutoOpen viene eseguito automaticamente. Si replica utilizzando la macro FileSaveAs. Metodo di diffusione: documenti di MS Word. Altre caratteristiche: E’ il primo virus scritto per MS W ord 46 Macro virus (1) Facile da scrivere, dato che i linguaggi per macro sono ad alto livello. Cross-platform, tra i sistemi compatibili con l’applicazione che supporta le macro. Residente in memoria, finché l’applicazione è in esecuzione. Di più facile distribuzione, dato che inserito all’interno di documenti spesso condivisi tra gli utenti (doc Word,fogli Excel, etc...) 47 Macro virus (2) Il virus si trova sotto forma di (auto)macro all’interno di un documento che supporta le macro. L’applicazione viene eseguita Il macro virus viene caricato in memoria L’applicazione viene infettata, in modo che ad ogni riavvio il macro virus venga eseguito. Il macro virus infetta ogni altro documento utilizzato L’automacro viene eseguita 48 Macro virus (3) Es: Microsoft Word Normal.dot Il global template caricato in memoria ad ogni avvio di MS Word. Se infettato, il macro virus viene caricato in memoria ad ogni avvio di MS Word Infezione della applicazione Startup directory Ogni template memorizzato in tale directory viene caricato in memoria all’avvio dell’applicazione Un macro virus memorizzato in tale directory viene caricato in memoria all’avvio dell’applicazione 49 Storia dei virus: Melissa Nome: W 97M.Melissa Tipo: macro virus Data di diffusione: 1999 Diffusione: alta O.S. attaccabili: MS W indows Effetti dell’infezione: Utilizza MS Outlook per autospedirsi ai primi 50 indirizzi della rubrica. Si replica anche infettando i nuovi documenti creati con MS Word. Disabilita la protezione per le macro. Quando il numero del giorno è uguale al numero dei minuti scrive una frase dei Simpson Metodo di diffusione: documenti di MS W ord, e-mail attachment. Altre caratteristiche: E’ il più famoso e diffuso virus scritto per MS Word 50 Storia dei virus: I Love You(1) Nome: VBS.LoveLetter Tipo: worm Data di diffusione: 2000 dalle Filippine Diffusione: elevata O.S. attaccabili: MS W indows Effetti dell’infezione: Si replica spedendosi agli indirizzi contenuti nella rubrica di MS Outlook. Si replica attraverso la chat mIRC. Infetta i file con estensione .vbs. Infetta altri tipi di file, sovrascrivendoli e aggiungendo l’estensione .vbs. Metodo di diffusione: e-mail attachment, mIRC. Altre caratteristiche: Ne esistono innumerevoli varianti (più di 80). E’ un VBScript. 51 Storia dei virus: I Love You(2) Technical details Il worm effettua copie di sé su disco e fa in modo che vengano eseguite ad ogni startup dell’OS, creando nuove chiavi all’interno del registro in HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\ HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\ Tenta di forzare il download di un password stealer e di installarlo, modificando la start page di Explorer per farla puntare ad una pagina web contenente il trojan horse. Sovrascrive i file .jpg con il proprio codice e poi aggiunge l’estensione .vbs Sovrascrive i file con estensione .vbs, .vbe, .js, jse, .css, .wsh, .sct, .hta e poi ne modifica l’estensione in .vbs Nasconde i file .mp3 e .mp2, e utilizza i loro nomi come nomi per le proprie copie, aggiungendo l’estensione .vbs 52 Storia dei virus: I Love You(3) Technical details Il worm crea un file html contenente lo script stesso. Se è presente un client mIRC, il file SCRIPT.INI viene sovrascritto, in modo da spedire il file html via IRC. Utilizza poi MS Outlook per spedirsi via e-mail a tutti gli indirizzi della rubrica. 53 Windows Hooks Permettono di installare nel sistema una routine(hook callback procedure)in grado di monitorare gli eventi prima che questi raggiungano i processi Per ciascun tipo di hook viene tenuta una lista di puntatori alle hook callback procedures installate dalle applicazioni Le hook callback procedures vengono eseguite in sequenza LIFO quando occorre l’evento associato 54 Storia dei virus: Code Red(1) Nome: Codered Tipo: Worm Data di diffusione: Agosto 2001 Diffusione: medio-alta O.S. Attaccabili: web servers con Microsoft IIS Effetti dell’infezione: Causa instabilità al sistema ospite e tende a saturare la banda disponibile (genera molti thread!!) DoS verso siti web. Metodo di distribuzione: HTTP request 55 Storia dei virus: Code Red(2) Si diffonde come HTTP request effettuando un buffer overflow che gli permette di ottenere il controllo del sistema. Non si salva sull’host infettato ma si inserisce e viene eseguito direttamente dalla memoria Controlla la presenza del file “NotWorm” sul sistema da attaccare, se viene trovato il worm si disattiva Altrimenti, a seconda della data corrente e del linguaggio utilizzato nel sistema ha comportamenti differenti 56 Storia dei virus: Code Red(3) Data di sistema antecedente al 20 Data compresa tra il 20 e il 27 Genera un elevato numero di thread (fino a 600) per attaccare nuovi host, forgiando gli indirizzi IP. Tenta un attacco DoS al sito www.whitehouse.gov Altrimenti I thread non vengono eseguiti ma vengono posti in uno stato di “sleep” infinito 57 Storia dei virus: Klez (1) Nome: W32.KLEZ Tipo: worm, virus Data di diffusione: Novembre 2001 Diffusione: alta O.S. Attaccabili: Tutti gli O.S. Microsoft tranne Win 3.11 Effetti dell’infezione: Infetta il sistema con il virus W 32.ElKern.3326 Si replica via e-mail. Modifica i file contenuti su disco rendendoli di lunghezza 0. Metodo di distribuzione: e-mail attachment 58 Storia dei virus: Klez (2) Technical details Tenta di disabilitare eventuali antivirus caricati in memoria, terminando il loro processo. Si copia nella directory di sistema e modifica il registro per avviarsi allo start-up dell’OS. Infetta il sistema con il virus W 32.ElKern.3326, un file infector. Ispeziona le risorse di rete cercando quelle condivise allo scopo di copiarsi in esse. Si spedisce come allegato via e-mail a tutti gli indirizzi trovati, eventualmente forgiando il mittente. Sfrutta una ben nota vulnerabilità di MS Internet Explorer che gli permette di essere eseguito anche se l’utente non ha aperto l’allegato. 59 La vulnerabilità di IE (1). Riguarda le e-mail in formato html. Esse vengono aperte da Internet Explorer (IE) anche se si sta utilizzando Outlook o Outlook Express. Nelle mail in formato html, IE deve gestire anche gli allegati. Gli allegati vengono solitamente codificati all’interno della mail secondo lo standard MIME (Multipurpose Internet Mail Extension). MIME richiede che per ciascuno di essi debba essere specificato anche il tipo, affiché il corrispondente programma possa aprirlo. 60 La vulnerabilità di IE (2). Le versioni di IE fino alla 5.5 gestiscono in modo non corretto alcuni tipi di allegati poco usati. Se nel codice MIME di una mail con un allegato eseguibile viene forzato come tipo dell’allegato uno di quelli gestiti male da IE, quando la mail viene visualizzata esso viene eseguito automaticamente senza avvisare l’utente (anche se la mail viene visualizzata nel pannello di preview). Dalla versione 6 di IE il problema è stato risolto. 61 Nuova vulnerabilità di IE! Già sfruttata dal trojan/worm QHost. IE 5.01, IE 5.5, IE 6.0 (anche per Windows Server 2003) Causa l’esecuzione automatica di codice arbitrario, all’insaputa dell’utente. Può essere sfruttata all’interno di siti web o di e-mail in formato html. Patch e dettagli 62 Storia dei virus: Badtrans(1) Nome: W32.Badtrans.B@mm Tipo: Worm Data di diffusione: Novembre 2001 Diffusione: alta O.S. Attaccabili: Tutti gli O.S. Microsoft tranne Win 3.11 Effetti dell’infezione: Tenta di replicarsi rispondendo a tutti i messaggi non letti presenti nella casella di posta in arrivo e a tutti gli indirizzi email trovati nei file .htm(l) e .asp Installa un keystroke logger trojan Metodo di distribuzione: e-mail attachment 63 Storia dei virus: Badtrans(2) Technical details: Contiene una sequenza di bit che controlla e modifica il suo comportamento Crea il file kern32.exe contenente il worm all’interno della directory Windows o System a seconda della sequenza di bit di controllo Salva nel sistema il file Kdll.dll utilizzata per installare nel sistema un keyboard-hook Crea il key-log file 64 Storia dei virus: Badtrans(3) Si attiva ogni volta che viene aperta una finestra e ne esamina il titolo Se il titolo contiene i caratteri LOG(LOGon),PAS (PASsword), REM(REMote),CON(CONnection),TER(TERminal), NET(NETwork) abilita la procedura di keylogging per 60 secondi Salva la password catturata all’interno del file di key-log Tenta di inviare il file di log ad uno degli indirizzi e-mail prestabiliti 65 Storia dei virus: Badtrans(4) Rileva il momento in cui diventa attiva una connessione di accesso remoto e tenta di replicarsi rispondendo a tutte le e-mail non ancora lette Effettua la ricerca di indirizzi email anche nei file *.ht* e *.asp L’allegato infetto ha una prima estensione .doc .mp3 o .zip e una seconda estensione .pif o .scr (Es. News_Doc.MP3.scr) Tiene traccia delle e-mail spedite all’interno del file protocol.dll in modo tale da non inviare 2 mail allo stesso indirizzo 66 Storia dei virus: Badtrans(5) Prima di spedire le mail aggiunge un carattere “_” all’indirizzo del mittente Aggiunge il valore “Kernel32 kern32.exe” alla chiave di registro HKEY_LOCAL_MACHINE\Software\Microsoft \Windows\CurrentVersion\RunOnce 67 Storia dei virus: Bugbear(1) Nome: W 32.Bugbear@mm Tipo: W orm Data di diffusione: Settembre 2002 Diffusione: elevata O.S. Attaccabili: Tutti gli O.S. Microsoft Effetti dell’infezione: Replicandosi continuamente tende a saturare le risorse dei server di posta Puo’ consentire l’accesso remoto non autorizzato alle macchine compromesse Termina i processi relativi ad antivirus e firewall Metodo di distribuzione: e-mail attachment e risorse di rete accessibili da un computer già infetto 68 Storia dei virus: Bugbear(2) Technical details: Copia se stesso come %system%\???.exe dove ??? sono lettere scelte dal worm Inserisce se stesso nella directory di Startup in modo tale da essere sempre eseguito all’avvio del S.O. Crea all’interno della directory di sistema 2 files .dat criptati Uno dei quali contiene informazioni per l’accesso alla componente di backdoor Crea all’interno della directory di sistema 3 files .dll criptati Uno dei quali viene utilizzato per installare una hook procedure all’interno della hook chain e monitorare ogni messaggio proveniente dalla tastiera Crea 4 differenti thread e li avvia 69 Storia dei virus: Bugbear(3) Thread1 Disattiva antivirus e firewall Si attiva ogni 30 secondi ed è responsabile della terminazione dei processi relativi ad antivirus e firewall Thread2 Replica il worm attraverso e-mail Preleva indirizzi e-mail dalla cartella inbox e dai file con estensione .mmf .nch .mbx .eml .tbb .dbx .ocs Ottiene l’indirizzo e-mail e il nome del server SMTP utilizzato dall’utente corrente Invia il worm a tutti gli indirizzi email trovati utilizzando anche come mittente un indirizzo email valido L’allegato contenente il worm ha estensione .scr .pif .exe L’email non necessariamente sfrutta la debolezza presente nello header MIME che porta all’auto esecuzione dell’allegato 70 Storia dei virus: Bugbear(4) Thread 3 Crea una backdoor sul computer Apre la porta 36794 e si mette in ascolto di eventuali comandi provenienti dall’hacker Tra i possibili comandi ci sono la cancellazione di files, la terminazione di processi, la copia di files, il trasferimento dei files contenenti (in forma criptata) tutti i caratteri digitati sulla tastiera dall’utente ottenuti grazie all’hook installato, l’elenco delle risorse di rete raggiungibili 71 Storia dei virus: Bugbear(5) Thread 4 Replica il worm attraverso la rete Ottiene la lista delle risorse di rete accessibili Tenta di salvare il worm all’interno della directory di startup del sistema remoto Puo’ causare il cattivo funzionamento anche di stampanti e altre periferiche di rete 72 Storia dei virus: Slammer Nome: W32.SQLExp.Worm Tipo: Worm Data di diffusione: Gennaio 2003 Diffusione: medio-alta O.S. Attaccabili: Tutti gli O.S. Microsoft tranne Win 3.11 Attacco utilizzato: buffer-overflow su MS SQL Server 2000 Effetti dell’infezione: Tende a paralizzare la rete Internet Metodo di distribuzione: Porta UDP 1434 73 Storia dei Virus: Sobig(1) Nome: W 32.Sobig.F Tipo: W orm Data di diffusione: Agosto 2003 Grado di diffusione: elevato O.s. Attaccabili: tutti i sistemi Microsoft ad eccezione di W in 3.11 Effetti dell’infezione: tende a saturare i server di posta e puo’ rivelare all’autore del virus informazioni confidenziali quali ad esempio password di sistema Metodo di distribuzione: e-mail attachment Caratteristiche della mail: Mittenteselezionato casualmente tra tutti gli indirizzi email trovati sul computer infetto anche all’interno di file con estensione .wab .dbx .htm .html .eml .txt Destinazionetutti gli indirizzi email trovati all’interno dei file 74 Attachmentestensione .pif o .scr Storia dei Virus: Sobig(2) Technical details: 2. Copia se stesso come %W indir%\winppr32.exe 3. Crea il file %W indir%\winstt32.dat 4. Aggiunge il valore "TrayX"="%W indir%\winppr32.exe /sinc“ alla chiave di registro “HKEY_LOCAL_MACHINE\SOFTW ARE\Microsoft\W indows\Cur rentVersion\Run” 5. Aggiunge il valore "TrayX"="%W indir%\winppr32.exe /sinc“ alla chiave di registro “HKEY_CURRENT_USER\SOFTW ARE\Microsoft\W indows\Curr entVersion\Run” 6. Scopre e infetta ogni computer presente sulla stessa rete del pc infetto utilizzando le W indows API 75 Storia dei Virus: Sobig(3) Note: In grado di effettuare sotto determinate condizioni il download e l’esecuzione di file arbitrari sul computer infetto (auto update del worm o creazione di sistemi “zombie”) Per questo motivo contiene una lista di indirizzi IP di server Condizioni x il download: Il giorno della settimana deve essere venerdi’ o sabato L’ora(secondo l’UTC Time) deve essere compresa tra le 7 e le 10 pm Come effettua il download: Ottiene l’ora utilizzando il protocollo NTP(Network Time Protocol) contattando alla porta UDP 123 uno dei server preposti al servizio 76 Invia un pacchetto alla porta UDP 8998 di un suo server che gli Storia dei virus: Blaster(1) Nome: W 32.Blaster.W orm Tipo: W orm Data di diffusione: Agosto 2003 Diffusione: elevata O.s. Attaccabili: W indows 2000 W indows XP Effetti dell’infezione: Tenta di effettuare un DOS contro il sito W indows Update Puo’ causare il crash della macchina su cui risiede Apre una shell remota nascosta Metodo di distribuzione: Porta TCP 135,444 porta UDP 69 (!No mail!) 77 Storia dei virus: Blaster(2) Background: RPC(RemoteProcedureCall): protocollo utilizzato da un’applicazione per richiedere un servizio ad un computer residente in un altro computer DCOM(DistribuitedComponentObjectModel): protocollo che consente la comunicazione diretta fra componenti software attraverso una rete 78 Storia dei virus: Blaster(3) Technical details: Utilizza la tecnica di buffer overflow sul servizio RPC dell’interfaccia DCOM ed ottiene il controllo del computer Forza il computer attaccatto ad effettuare il download del file msblast.exe e a salvarlo nella directory %windir%\system32 Esegue il file scaricato • Aggiunge il valore “windows auto update”=“msblast.exe” alla chiave di registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run • Genera un indirizzo IP e tenta di attaccare il computer con quell’indirizzo • Manda dati alla porta TCP 135 del computer remoto per exploitare la debolezza presente nell’RPC • Utilizza Cmd.exe per creare una shell nascosta in ascolto sulla porta TCP 4444 • Si mette in ascolto sulla porta UDP 69 e tenta di infettare i computer che effettuano richieste • Se la data corrente è compresa tra il 16 e fine mese per i mesi da Gennaio ad Agosto o se il mese corrente è compreso tra Settembre e Dicembre tenta di effettuare un DoS verso il sito WindowsUpdate 79 Anti-virus (1) Programma che ha la capacità di individuare e spesso rimuovere malcode all’interno del sistema. Sistema Anti-virus malcode 80 Anti-virus (2) Terminologia: Scan l’attività di individuazione del virus in base a certe sue caratteristiche. Falso positivo un oggetto non infetto considerato infetto dallo scanner. Falso negativo un oggetto infetto considerato non infetto dallo scanner. 81 Anti-virus (3) Tipi di scan: signature scan; checksum scan integrity checking; heuristic scan. 82 Signature scan Si basa su sequenze costanti di codice all’interno dei virus noti (signatures - firme), in grado di identificarli. Per identificare i virus, l’anti-virus ricerca le firme all’interno degli host passibili di infezione. Positivo L’host è quasi certamente infettato dal virus corrispondente alla firma trovata Risultato della ricerca Negativo Gli host non sono infettati dai virus le cui firme sono state cercate, ma NON è detto che non siano infettati da altri virus. 83 Checksum scan In pratica è un integrity check: l’anti-virus calcola inizialmente delle checksums per ogni host sensibile; durante lo scan, poi, vengono ricalcolate le checksums e confrontate con quelle memorizzate. Positivo L’host non è stato modificato dal momento del calcolo della prima checksum Risultato del confronto Negativo L’host è stato modificato, probabilmente da un virus Un vantaggio è che le checksums sono tipicamente più piccole delle firme. 84 Heuristic scan Avvalendosi di statistiche, l’anti-virus ricerca nel sistema codice avente struttura, caratteristiche e/o comportamento tipico dei malcode. Vantaggi Non richiede la signature dei virus e quindi funziona anche con i virus nuovi. Svantaggi Il risultato è probabilistico. 85 Modalità di scan On demand: richiesto dall’utente Scheduled: ad intervalli predefiniti Incoming new file: solo i nuovi file ed eventualmente solo quelli aventi predefinite estensioni On the fly: ogni qual volta si esegue qualsiasi azione su qualsiasi oggetto più sicuro, ma più pesante 86 Anti-virus (4) Antivirus scanning engine Database contenente le firme dei virus Database contenente le istruzioni su come rimuovere i vari malcode Solo questi componenti vengono aggiornati 87 Meccanismi di difesa dei virus Rendono più arduo il lavoro degli antivirus Mirano ad allungare il tempo di vita dei virus Tra i meccanismi più efficaci: Encryption Polimorfismo Entry point changer Stealth armor 88 Ciclo di vita dei virus Il virus viene creato Il virus infetta alcuni pc e viene inviato alle case antivirus La casa antivirus estrapola la “firma” del virus Aggiunge successivamente la firma al database che poi distribuisce L’antivirus riconosce ora il virus e il meccanismo di diffusione viene rallentato 89 Encryption(1) Il codice del virus viene continuamente modificato in modo tale da non contenere stringhe di bytes costanti Header Codice Virus+Codice file Host Plaintext facilmente rintracciabile Header Routine di Decrypt Senza encryption Con encryption Codice Virus+Codice file Host Criptati 90 Encryption(2) Il file host criptato non puo’ essere eseguito Sistema infetto Il file host viene decriptato prima di Essere eseguito Il file host viene nuovamente criptato Sistema infetto 91 Polimorfismo Tecnica più efficace dell’encryption Anche la sezione di virus adibita al processo di decrypt/encrypt varia casualmente Varia la chiave utilizzata per cifrare Varia il numero di bytes cifrati Varia il posto nel quale viene memorizzata la routine di decrypt all’interno del file La parte fissa è così piccola che non può essere utilizzata come firma dagli antivirus produrrebbe troppi falsi positivi!! 92 Entry point changers(1) Non modificano l’indirizzo dell’entry point all’interno dell’header del file host Non vengono eseguiti all’avvio del file infetto Posizionano l’entry point del virus in un’area qualsiasi del codice del file host Vengono eseguiti solo al verificarsi di determinate condizioni che possono anche avvenire raramente 93 Entry point changers(2) Header JMP Host file code Header JMP Host file code Virus Code Virus Code 94 Stealth Contengono codice addizionale appositamente progettato per eludere gli antivirus e i controlli effettuati dall’utente (dimensione dei file, processi attivi, ecc…) Esempio Brain reindirizza le richieste di visionare il boot sector infetto al boot sector originale salvato alla fine del disco 95 Armor Contengono codice addizionale atto a scoraggiare eventuali tentativi di disassemblaggio, tracciatura o analisi del virus Esempi Se tra i processi attivi viene riscontrata la presenza di un debugger viene bloccata la tastiera Puo’ essere inserito del codice in grado di mandare in loop i debugger 96 Reference Malicious Mobile Code - Virus Protection for Windows, Roger A. Grimes, ed O’ Reilly. Security in Computing, Charles P. Pfleeger, Shari Lawrence Pfleeger, ed Prentice Hall http://www.viruslist.com/eng/viruslistbooks.html http://www.cknow.com/vtutor/ http://www.symantec.com http://www.mcafee.com http://www.f-secure.com 97