Elementi di Sicurezza e Privatezza Lezione 17 Malware Chiara Braghin Obiettivo di oggi • Definizione di malware • Come infettano gli host • Come si nascondono • Come si propagano • Come rilevarli • Credits: Elie Bursztein 1 Cosa è un malware? • Malware = Malitious + Software w software progettato per interferire con il normale funzionamento del computer, causando danni più o meno gravi w un insieme di istruzioni che vengono eseguite su di un computer e gli fanno fare qualcosa che l’attaccante vuole che faccia. 2 A cosa serve? Rubare informazioni personali Cancellare file Rubare i numeri seriali del software Usare il tuo computer come relay (ripetitore) • Click fraudolenti • • • • 3 Un esempio • Christians On Facebook • Il “web master” ha subito un attacco nel marzo del 2009 w Postato un messaggio di fede islamica w Conseguenza: persi più di 10 000 membri 4 The Malware Zoo • Virus • Worm • Trojan horse • Backdoor • Spyware • Rootkit • Scareware • Adware • Dialer • Rabbit 5 Virus • A program that can infect other programs by modifying them to include a, possibly evolved, version of itself. • Fred Cohen, 1983 • Parti di codice che si diffondono copiandosi all'interno di altri programmi, o una particolare sezione del disco fisso, in modo da essere eseguiti ogni volta che il file infetto viene ancora aperto. Si trasmettono mediante lo spostamento del file infetto 6 Tipi di virus • Polimorfico: virus mutuante che mantiene sempre uguale la cosiddetta "impronta virale", ovvero la sequenza di byte che identifica in maniera univoca un virus • Metamorfico: cambia dopo ogni infezione 7 Trojan horse • Software che, oltre ad avere delle funzionalità lecite, utili per indurre l'utente ad utilizzarli, contiene istruzioni dannose che vengono eseguite all'insaputa dell'utilizzatore. • Non possiede funzioni di auto-replicazione, quindi per diffondersi deve essere consapevolmente inviato alla vittima.! 8 Worm • Un programma che non ha bisogno di infettare altri file per diffondersi, perché modifica il sistema operativo della macchina ospite in modo da venire eseguito automaticamente. In genere tenta di replicarsi usando Internet, spedendo copie di se stesso ad altri host. ! 9 Virus vs Worm vs Trojan • Le parole vengono usate come sinonimi, ma non sono esattamente la stessa cosa: • In comune: programmi maliziosi che possono infettare il computer • Differenze: w Virus: attaccato ad un file eseguibile, non riesce a infettare il computer a meno che non venga eseguito o aperto il programma (richiede un’azione umana) w Worm: una sotto-classe di un virus che ha la capacità di trasmettersi senza interazione umana w Trojan: non si riproduce infettando altri file e non si replica in modo autonomo 10 Backdoor • Una backdoor (porta sul retro) è una tecnica per bypassare la normale autenticazione ottenendo accesso non autorizzato al sistema, a volte in modo non visibile • Può essere un programma installato (e.g., Back Orifice), oppure una modifica di un programma esistente o un dispositivo hardware. 11 Rootkit • I rootkit solitamente sono composti da un driver e, a volte, da copie modificate di programmi normalmente presenti nel sistema. Non sono dannosi in sé, ma hanno la funzione di nascondere, sia all'utente che a programmi tipo antivirus, la presenza di particolari file o impostazioni del sistema. • Vengono quindi utilizzati per mascherare spyware e trojan. 12 Scareware • Scareware è un termine che identifica diverse classi di scam software, spesso con benefici limitati, venduto a consumatori per motivi di marketing w Spyware: software usato per raccogliere informazioni dal sistema su cui sono installati e per trasmetterle ad un destinatario interessato. Le informazioni carpite possono andare dalle abitudini di navigazione fino alle password e alle chiavi crittografiche di un utente. w Adware o advertising-supported software: software che presenta all'utente messaggi pubblicitari durante l'uso, a fronte di un prezzo ridotto o nullo. Causa rallentamenti del PC: 13 30 anni di malware 14 • From: Malware fighting malicious code, 2004 Storia • • • • • • • • • • • • • • • 1981 First reported virus : Elk Cloner (Apple 2) 1983 Virus get defined 1986 First PC virus MS DOS 1988 First worm: Morris worm 1990 First polymorphic virus 1998 First Java virus 1998 Back Orifice 1999 Melissa virus Melissa spread by email and share 1999 Zombie concept Knark rootkit made to demonstrate the first 1999 Knark rootkit ideas 2000 Love bug Love bug vb script that abused a weakness in Outlook 2001 Code Red Worm 2001 Kernel Intrusion System Kernel intrusion by optyx gui and efficent hidding mechanims 2001 Nimda worm 15 2003 SQL Slammer worm Numero di malware signature Symantec report 2009! 16 Ripartizione di malware Panda Q1 report 2009! 17 Metodi di infezione Cosa infettare? • • • • • File eseguibili File interpretati Kernel Servizi Master boot record (MBR) 19 Overwriting malware Malware! Targeted! Executable! Malware! • I virus contaminano attaccandosi o sostituendosi ad una porzione di codice" 20 Prepending malware Malware! Malware! Targeted! Executable! Infected host! Executable! 21 Appending malware Malware! Targeted! Executable! Infected! host! Executable! Malware! 22 Cavity malware Malware! Targeted! Executable! ! Malware! ! Infected host! Executable! 23 Multi-Cavity malware Malware! Malware! Targeted! Executable! Malware! Malware! 24 Esempio: Auto start (1) • Cartella auto-start: w C:\Documents and Settings\[user_name]\Start Menu\Programs\Startup • Win.ini: basic settings usate nel boot time w run=[backdoor]" or "load=[backdoor]". • System.ini: carica I driver dei vari dispositivi e delle shell w shell=”myexplorer.exe” • Wininit • Config.sys: configura i componenti hw di un PC 25 Esempio: Auto start (2) • Assegnare un’estensione nota (.doc) al malware • Modificare un registry key • Aggiungere il task nel task scheduler • Eseguirlo come servizio 26 Esempio: Unix autostart • Init.d w contiene una serie di script per avviare/ terminare vari servizi del sistema • /etc/rc.local w In esecuzione alla fine di tutti i livelli di boot multi-user • .login .xsession • Crontab: contiene istruzioni del demone cron nella forma: ``run this command at this time on this date'' w crontab -e w /etc/crontab 27 Esempio: Document based malware • MS Office • Open Office • Acrobat 28 Userland rootkit • Un rootkit è un programma progettato per controllare il comportamento di una certa macchina w In genere viene utilizzato per nascondere la presenza illegittima di una backdoor o di altri malware • Userland toolkits hanno come obiettivo le applicazioni utenti piuttosto che il sistema stesso w Eseguono § login § sshd § Passwd w Nascondono attività del tipo § ps § netstat § ls § find 29 Subverting del Kernel • • • • • Kernel task Cosa nascondere! Gestione dei processi ➡ Processi! Accesso ai file Gestione della memoria ➡ File ! ➡ Traffico della rete ! Gestione della rete ! ! 30 Tecniche di subverting • Kernel patch • Loadable Kernel Module • Kernel memory patching (/dev/kmem) 31 Metodi di propagazione Cartelle condivise 33 Tramite mail 34 • from pandalab blog Esempio: a San Valentino ... • Waledac malicious domain from pandalab 35 blog Altro esempio 36 Symantec 2009! Fake codec 37 Fake antivirus 38 • from pandalab blog Hijack del browser 39 • from pandalab blog File P2P • Richiesta popolare • Il 35.5% sono malwares (Kalafut 2006) 40 Rilevazione Anti-virus • Analizzano il comportamento del sistema • Analizzano i binari per decidere se si tratta di un virus • Tipi: w Scanner w Real time monitor 42 Anti-virus: Impossibility result • Non è possibile cotruire un perfetto rilevatore di virus/malware (Cohen) 43 Virus signature • Trovare una stringa che possa identificare un virus • Generare una specie di fingerprint 44 Euristiche • Analizzare il comportamento w Accessi alla rete w Apertura di file w Tentativi di cancellazione di file w Tentativi di modifica del boot sector 45 Checksum • Calcolare la checksum per w Binary originali e non-malware w File di configurazione • Rilevare modifiche confrontando i checksum 46 Sandbox analysis • Eseguire gli eseguibili in una VM • Osservare: w File activity w Network w Memory 47 Altri esempi Adware 49 BackOrifice • Defcon 1998 • Nuova versione nel 2000 50 Netbus • Un programma per controllare da remoto un PC running Microsoft Windows • Creato nel 1998 e non bene accetto perché visto come una possibile backdoor • Nel 1999, NetBus usato per mettere foto pedopornografiche (3500) nel PC di lavoro di Magnus Eriksson, uno studente di legge della Lund University 51 Browser Toolbar ... 52 Toolbar again 53 Worm, again • Un worm è un software che si autoreplica e che ha come obiettivo il diffondersi nella rete w In genere sfrutta vulnerabilità note di servizi molto usati w Può causare grossi danni § Lanciare attacchi DDOS § Accesso a informazione sensibile § Causare confusione modificando informazione sensibile 54 Costo di alcuni worm attack • Morris worm, 1988 w Infettate circa 6,000 macchine § 10% dei computer connessi a Internet w ~ $10 million in downtime e cleanup • Code Red worm, July 16 2001 w Discendente diretto del worm Morris w Infettati 500,000 server § Programmati per andare in modalità infinite sleep il 28 luglio w ~ $2.6 billion di danni • Love Bug worm: $8.75 billion w Statistics: Computer Economics Inc., Carlsbad, California55 Click fraud 56