Università degli Studi di Milano Malware Aristide Fattori [email protected] Introduzione Malware Sequenza di codice progettata per danneggiare intenzionalmente un sistema, i dati che contiene o comunque alterare il suo normale funzionamento, all’insaputa dell’utente A. Fattori Malware 3 replicazione autonoma no replicazione replicazione Tipologie di malware Virus Worm Dialer Root-kit Spyware Trojan horse necessita ospite Keylogger nessun ospite dipendenza da ospite A. Fattori Malware 4 Virus Virus replicazione autonoma necessitano di un ospite in cui inserirsi riproduzione attraverso la diffusione dell’ospite riproduzione payload A. Fattori infezione Malware 6 Virus replicazione autonoma necessitano di un ospite in cui inserirsi riproduzione attraverso la diffusione dell’ospite • • • • riproduzione payload A. Fattori File eseguibili Boot sector Script Documenti infezione Malware 6 Virus replicazione autonoma necessitano di un ospite in cui inserirsi riproduzione attraverso la diffusione dell’ospite • • • • La parte non relativa all’infezione (@FORMAT C: /AUTOTEST) riproduzione payload A. Fattori File eseguibili Boot sector Script Documenti infezione Malware 6 Virus Esempio “alto livello” DEMO A. Fattori Malware 7 Tecniche di infezione File infection File infection companion sovrascrittura inserimento in testa/coda/cavity entry point obfuscation (EPO) A. Fattori Malware 8 Tecniche di infezione File infection Companion Virus sfruttare la precedenza dei .com sui .exe (es, notepad.com e notepad.exe) sfruttare l’ordine con cui un eseguibile viene cercato nel path (es, $PATH=/usr/local/bin:/usr/bin:/bin:...) meno efficace quando si usa la GUI A. Fattori Malware 8 Tecniche di infezione File infection Sovrascrittura parte del codice dell’ospite è sostituito con quello del virus l’ospite non funzionerà più correttamente (⇒ rimozione impossibile) A. Fattori Malware 8 Tecniche di infezione File infection Parasitic virus: inserimento in testa virus entry programma infezione entry ...gramma pro... A. Fattori Malware 8 Tecniche di infezione File infection Parasitic virus: inserimento in coda entry programma infezione programma virus entry modifica delle prime istruzioni dell’ospite o dell’entry point nel caso di eseguibili “complessi” (es, PE, ELF, . . . ) è necessario aggiornarne le strutture A. Fattori Malware 8 Tecniche di infezione File infection Cavity virus jmp <virus> entry entry programma infezione ...rogramma virus cavità p... alcuni virus (e.g. W95/CIH) sono in grado di ripartire il proprio codice tra più cavità (fractionated cavity virus) A. Fattori Malware 8 Tecniche di infezione EPO: Entry Point Obfuscation & Code Integration EPO Modifiche all’entry point originale di un programma sono facilmente identificabili: A. Fattori Malware 9 Tecniche di infezione EPO: Entry Point Obfuscation & Code Integration EPO Modifiche all’entry point originale di un programma sono facilmente identificabili: joystick@arya:~$ readelf -h /bin/ls ELF Header: Class: ELF64 ... Entry point address: 0x4046d4 A. Fattori Malware 9 Tecniche di infezione EPO: Entry Point Obfuscation & Code Integration EPO Modifiche all’entry point originale di un programma sono facilmente identificabili: il virus ritarda il passaggio del controllo al suo codice sovrascrive una chiamata a funzione modifica la import table A. Fattori Malware 9 Tecniche di infezione EPO: Entry Point Obfuscation & Code Integration EPO Modifiche all’entry point originale di un programma sono facilmente identificabili: il virus ritarda il passaggio del controllo al suo codice sovrascrive una chiamata a funzione modifica la import table Code Integration Disassembla il codice eseguibile del file vittima, si inserisce nel codice e lo ri-assembla. (W95/Zmist) A. Fattori Malware 9 Tecniche di infezione Device infection Infezione di device removibili File autorun.inf [autorun] open=Knight.exe open icon=Knight.exe,0 shellexecute=Knight.exe open shell=auto action=Disk Knight(Protection Against Mobile Disk Viruses) shell\auto=&Auto shell\auto\command=Knight.exe open shell\open=&Open shell\open\command=Knight.exe open shell\explore=E&xplore shell\explore\command=Knight.exe open shell\find=S&earch... shell\find\command=Knight.exe open ... A. Fattori Malware 10 Tecniche di infezione MBR Infection MBR Porzione dell’hard disk che contiene il codice responsabile dell’avvio del sistema operativo. un virus può modificarlo per venire eseguito prima del sistema operativo stesso molto difficile da individuare tecnica vecchia (1986-: (c)Brain, Stoned, Michelangelo, Junkie, Tequila, . . . ) sta “tornando di moda” (2007: Rustock bootkit, 2008: Trojan.Mebroot, 2010: TDL 1-4) A. Fattori Malware 11 Worm Worm non necessitano di un ospite propagazione autonoma attraverso la rete capacità di propagarsi in sistemi altrui sfruttando delle vulnerabilità capacità di propagarsi via mail A. Fattori Malware 13 Worm Componenti locator: identifica nuove potenziali vittime propagator: ottiene controllo della vittima e ci si trasferisce life-cycle manager: controlla attività worm payload: DoS, furto credenziali, spam, . . . A. Fattori Malware 14 Worm Locator Indirizzi mail parsing rubrica outlook pattern matching su file cache internet explorer Network share Condivisione file e directory senza protezione: identifica gli share nella rete locale e ci si copia uno dei vettori più sfruttati Login remoto RSH, SSH, telnet, . . . attacchi bruteforce A. Fattori Malware 15 Worm Locator (2) Scanning Ricerca di nuove vittime nella rete locale o su internet: scansione della rete locale ∀ target ⇒ ricerca servizi vulnerabili lista di target pre-compilata (e.g., router con vuln note) uso di motori di ricerca per trovare macchine vuln (google-dorking) A. Fattori Malware 16 Worm Propagation: email-based Propagator Dopo il recupero di indirizzi mail, il worm invia copie del suo body agli indirizzi recuperati. Tecniche di social engineering: I I I I uso di temi “hot” (e.g., partite di calcio, catastrofi, reality) contraffazione indirizzi mittente pornografia ... Tecniche di hiding: I I I nascondere l’estensione (.exe ⇒ .jpeg) URL che punta all’eseguibile ... Vulnerabilità nel motore HTML del mail client Queste tecniche hanno impatto significante sui provider di posta (molto traffico) ma non sono molto efficaci. Perché? A. Fattori Malware 17 Worm Propagation: exploit-based Caratteristiche sfrutta vulnerabilità dei target (note o meno) non richiede interazione ⇒ propagazione molto veloce Anatomia di un attacco 1. exploit ⇒ remote code execution 2. download da origine o da web del body 3. nuova installazione A. Fattori Malware 18 Morris Worm Robert Morris Jr. - 1988 Primo worm in grado di causare problemi seri. Sfrutta 3 vulnerabilità per propagarsi: 1. RCE in sendmail 2. buffer overflow in fingerd 3. bruteforce su RSH Tramite la vuln esegue un piccolo snippet di codice che trasferisce il corpo del worm sulla vittima. The Internet Worm - Eugene H. Spafford http://security.dico.unimi.it/sicurezza1112/papers/ spafford89_crisis.pdf A. Fattori Malware 19 Slammer Worm ??? - 2003 Sfrutta vulnerabilità nota di MSSQL1 2000 Servers. Non contiene payload dannoso ma la sua velocità di propagazione causa gravi problemi. 1. SW bersaglio permette ai client di inviare una req per trovare un db 2. richiesta ⇒ pacchetto udp max 17 byte null terminated 3. buffer overflow, 376 byte per shellcode 4. shellcode: (1) genera IP (2) prova a attaccarlo (3) goto 1 Macchina infetta con 100Mbps di banda → 30000 scan/s Inside the Slammer Worm - Moore et al. http://cseweb.ucsd.edu/~savage/papers/IEEESP03.pdf 1 A. Fattori Microsoft SQL Malware 20 Stuxnet ??? - 2010 Primo malware che attacca sistemi industriali (SCADA). 1. Infetta sistemi Windows tramite 4 0-day + removable device 2. infetta software di controllo degli SCADA 3. infetta il device stesso e ne compromette il funzionamento Riflessioni: 4 0-day diversi == $$$ A. Fattori Malware 21 Stuxnet ??? - 2010 Primo malware che attacca sistemi industriali (SCADA). 1. Infetta sistemi Windows tramite 4 0-day + removable device 2. infetta software di controllo degli SCADA 3. infetta il device stesso e ne compromette il funzionamento Riflessioni: 4 0-day diversi == $$$ molto targettizzato A. Fattori Malware 21 Stuxnet ??? - 2010 Primo malware che attacca sistemi industriali (SCADA). 1. Infetta sistemi Windows tramite 4 0-day + removable device 2. infetta software di controllo degli SCADA 3. infetta il device stesso e ne compromette il funzionamento Riflessioni: 4 0-day diversi == $$$ molto targettizzato firmato con certificato compromesso W32.Stuxnet Dossier - Symantec http://goo.gl/lakj3 A. Fattori Malware 21 Worm - Tecniche di propagazione alternative Tecniche di propagazione Rogue Antivirus A. Fattori Malware 23 Tecniche di propagazione Rogue Antivirus A. Fattori Malware 23 Tecniche di propagazione Rogue Antivirus A. Fattori Malware 23 Tecniche di propagazione Drive-by-download Osservazioni: 1. Lo scenario è cambiato, la maggior parte delle attività sono su web. 2. Molte vulnerabilità trovate nei browser. 3. (1) + (2) == worm che si diffondono via web A. Fattori Malware 24 Tecniche di propagazione Drive-by-download Osservazioni: 1. Lo scenario è cambiato, la maggior parte delle attività sono su web. 2. Molte vulnerabilità trovate nei browser. 3. (1) + (2) == worm che si diffondono via web Come? 1. crea (o compromette) un sito per ospitare exploit 2. exploita i browser vulnerabili che visitano il sito 3. scarica il codice del worm sulla vittima A. Fattori Malware 24 Tecniche di propagazione Remote exploit + drive-by-download A. Fattori Malware 25 Tecniche di propagazione Remote exploit + drive-by-download link a JS maligno nel sito exploit MS06-014 + MS07-004 download keylogger/backdoor ∼ 3 giorni prima del Super Bowl! A. Fattori Malware 25 Malware Generators A. Fattori Malware 26 Contromisure Contromisure Detection signature-based Come funziona? Database di signature Un’applicazione che contiene una signature nota viene considerate infetta A. Fattori Malware 28 Contromisure Detection signature-based Come funziona? Database di signature Un’applicazione che contiene una signature nota viene considerate infetta Codice applicazione A. Fattori Malware 28 Contromisure Detection signature-based Come funziona? Database di signature Un’applicazione che contiene una signature nota viene considerate infetta Signature A. Fattori Malware 28 Contromisure Detection signature-based Come funziona? Database di signature Un’applicazione che contiene una signature nota viene considerate infetta + A. Fattori + Malware 28 Contromisure Detection signature-based Come funziona? Database di signature Un’applicazione che contiene una signature nota viene considerate infetta A. Fattori + + + + Malware 28 Contromisure Detection signature-based Come funziona? Database di signature Un’applicazione che contiene una signature nota viene considerate infetta A. Fattori + + + + + + Malware 28 Tecniche di self-defense Packing Codice maligno nascosto da 1+ layer di compressione/cifratura Decompressione/decrifratura a run-time A. Fattori Malware 29 Tecniche di self-defense Packing Codice maligno nascosto da 1+ layer di compressione/cifratura Decompressione/decrifratura a run-time Malicious code A. Fattori Malware 29 Tecniche di self-defense Packing Codice maligno nascosto da 1+ layer di compressione/cifratura Decompressione/decrifratura a run-time Unpacking routine A. Fattori Malicious code Malware 29 Tecniche di self-defense Packing Codice maligno nascosto da 1+ layer di compressione/cifratura Decompressione/decrifratura a run-time Unpacking Unpacking routine routine A. Fattori Malicious code Malware 29 Tecniche di self-defense Packing Codice maligno nascosto da 1+ layer di compressione/cifratura Decompressione/decrifratura a run-time Unpacking Unpacking routine routine Malicious code Problema ∼ 80% del malware è “packed” 200 famiglie di packer, 2000 varianti Backlog di ∼ 90 famiglie Fonte: Symantec, 2008 A. Fattori Malware 29 Tecniche di self-defense Polimorfismo Mutazione #1 Mutazione #2 Mutazione #3 Problema: la routine di packing può essere rilevata A. Fattori Malware 30 Tecniche di self-defense Polimorfismo Mutazione #1 Mutazione #2 Mutazione #3 Problema: la routine di packing può essere rilevata Idea: variare la routine di packing ad ogni infezione A. Fattori Malware 30 Tecniche di self-defense Polimorfismo Mutazione #1 Mutazione #2 Mutazione #3 Problema: la routine di packing può essere rilevata Idea: variare la routine di packing ad ogni infezione La semantica della routine rimane sempre la stessa A. Fattori Malware 30 Tecniche di self-defense Polimorfismo Mutazione #1 Mutazione #2 Mutazione #3 Problema: la routine di packing può essere rilevata Idea: variare la routine di packing ad ogni infezione La semantica della routine rimane sempre la stessa Contromisure Emulazione Algorithmic detection A. Fattori Malware 30 Tecniche di self-defense Metamorfismo “Metamorphics are body-polymorphics” (Igor Muttik) A ogni infezione muta l’intero corpo del malware Mutazione #1 A. Fattori Mutazione #2 Malware Mutazione #3 31 Tecniche di self-defense Metamorfismo “Metamorphics are body-polymorphics” (Igor Muttik) A ogni infezione muta l’intero corpo del malware Come funziona? Codice malware 1. Analizza il proprio codice 2. Identifica dei blocchi 3. Applica mutazioni A. Fattori Malware 31 Tecniche di self-defense Metamorfismo “Metamorphics are body-polymorphics” (Igor Muttik) A ogni infezione muta l’intero corpo del malware blocco1 blocco2 Come funziona? blocco3 1. Analizza il proprio codice blocco4 2. Identifica dei blocchi blocco5 blocco6 3. Applica mutazioni blocco7 blocco8 A. Fattori Malware 31 Tecniche di self-defense Metamorfismo “Metamorphics are body-polymorphics” (Igor Muttik) A ogni infezione muta l’intero corpo del malware blocco1 blocco2 Come funziona? blocco3 1. Analizza il proprio codice blocco4 2. Identifica dei blocchi blocco5 blocco6 3. Applica mutazioni blocco7 blocco8 A. Fattori Malware 31 Tecniche di self-defense Metamorfismo “Metamorphics are body-polymorphics” (Igor Muttik) A ogni infezione muta l’intero corpo del malware blocco1 blocco6 Come funziona? blocco3 1. Analizza il proprio codice blocco9 2. Identifica dei blocchi blocco5 blocco2 3. Applica mutazioni blocco10 blocco8 A. Fattori Malware 31 Tecniche di self-defense Metamorfismo “Metamorphics are body-polymorphics” (Igor Muttik) A ogni infezione muta l’intero corpo del malware Problema Analizzatore di codice particolarmente complesso Sviluppare un motore metamorfico è molto difficile A. Fattori Malware 31 Tecniche di self-defense Malware emulators mov xor inc int %ax, $0xcafe; %ebx, %ebx; %ecx; $0x2e; inst37 %r6 , $0xcafe; inst15 %r2 , %r2 ; inst24 %r11 ; inst4 $0x2e; Programma originale VM Programma offuscato 1. Codice del malware trasformato in bytecode 2. Bytecode interpretato a run-time da una VM 3. Bytecode mutato ad ogni infezione A. Fattori Malware 32 Tecniche di self-defense Malware emulators mov xor inc int %ax, $0xcafe; %ebx, %ebx; %ecx; $0x2e; inst37 %r6 , $0xcafe; inst15 %r2 , %r2 ; inst24 %r11 ; inst4 $0x2e; Programma originale VM Programma offuscato 1. Codice del malware trasformato in bytecode 2. Bytecode interpretato a run-time da una VM 3. Bytecode mutato ad ogni infezione Sembra complicato? A. Fattori Malware 32 Tecniche di self-defense Malware emulators A. Fattori Malware 32 Tecniche di self-defense Contromisure Signature-based detection è troppo debole Verso tecniche più “semantiche” A. Fattori Malware 33 Tecniche di self-defense Contromisure Signature-based detection è troppo debole Verso tecniche più “semantiche” Soluzioni Analisi dinamica Granularità a livello di system call Panda TruPrevent, AVG Identity Protection, NovaShield, ThreatFire, . . . Problemi Performance Falsi positivi Information leakage A. Fattori Malware 33 Strumenti anti-malware di nuova generazione Analisi statica impraticabile o troppo onerosa Analisi dinamica in ambienti emulati A. Fattori Malware 34 Strumenti anti-malware di nuova generazione Analisi statica impraticabile o troppo onerosa Analisi dinamica in ambienti emulati Esempi Anubis CWSandbox BitBlaze A. Fattori Malware 34 Strumenti anti-malware di nuova generazione Analisi statica impraticabile o troppo onerosa Analisi dinamica in ambienti emulati Esempi Anubis CWSandbox BitBlaze Come funzionano? 1. Esecuzione dell’applicazione sospetta in un emulatore 2. Monitoring dell’esecuzione (VM introspection) 3. Rilevamento di comportamenti maligni A. Fattori Malware 34 Rilevamento VM Red-pill Programma in grado di rilevare se eseguito all’interno di un emulatore (o virtualizzatore) CPU EMU Fonte: A fistful of red-pills (R. Paleari, L. Martignoni, G. Fresi Roglia, D. Bruschi) A. Fattori Malware 35 Rilevamento VM Red-pill Programma in grado di rilevare se eseguito all’interno di un emulatore (o virtualizzatore) void main() { redpill = ‘‘\x08\x7c\xe3\x04...’’; if (((void (*)())redpill)()) { // Eseguito su CPU fisica return CPU; } else { // Eseguito su CPU emulata return EMU; } } Fonte: A fistful of red-pills (R. Paleari, L. Martignoni, G. Fresi Roglia, D. Bruschi) A. Fattori Malware 35 Malware Domande? Aristide Fattori [email protected] Università degli Studi di Milano A. Fattori Malware 36