Mobile Oss Analysis Report for the Computer Security Exam at the Politecnico Di Torino
Total Page:16
File Type:pdf, Size:1020Kb
Mobile OSs analysis Report for the Computer Security exam at the Politecnico di Torino Alessio Canepa (207687) Andrea Marcelli (209051) tutor: Andrea Atzeni June 2015 1 Indice 1 Introduzione6 1.1 Il mercato dei dispositivi mobili...........................6 1.2 Il problema della sicurezza..............................6 1.2.1 Differenze tra sicurezza su mobile e su fisso.................7 1.2.2 Obiettivi di un attacco............................8 1.2.3 Canali di attacco...............................9 1.2.4 Esempio di malware: SimpLocker, un ransomware per Android...... 10 1.2.5 Proteggersi dagli attacchi.......................... 13 1.3 Il modello dell'analisi di sicurezza.......................... 14 1.4 Conclusioni...................................... 15 2 Ubuntu Touch 17 2.1 Modalit`adell'analisi di sicurezza........................... 17 2.2 Introduzione...................................... 18 2.2.1 Poca integrazione tra S.O. mobili e fissi................... 18 2.2.2 Convergenza.................................. 18 2.3 Architettura...................................... 19 2.3.1 LXC - Linux Container............................ 19 2.3.2 Mir....................................... 20 2.3.3 Unity 8.................................... 20 2.3.4 Applicazioni.................................. 21 2.4 Modello di sicurezza del sistema operativo..................... 23 2.5 Tecniche di confinamento delle applicazioni..................... 23 2.5.1 La necessit`adi confinare le applicazioni in Ubuntu............. 23 2.5.2 Introduzione ad AppArmor......................... 24 2.5.3 AppArmor profile............................... 25 2.5.4 Policy Groups................................. 26 2.5.5 Gestione autorizzazioni: Trusted Helpers.................. 28 2.5.6 Condivisione contenuti: Content Hub.................... 29 2.6 Store.......................................... 31 2.6.1 Creazione e firma digitale delle applicazioni................ 31 2.6.2 Upload, controllo e firma digitale dello store................ 32 2.6.3 Download e verifica della firma digitale................... 32 2 2.7 Memorizzazione dati critici.............................. 33 2.7.1 GNOME Keyring e AppArmor....................... 33 2.7.2 Credenziali web: Ubuntu online accounts.................. 33 2.8 Cifratura dati utente................................. 33 2.8.1 Introduzione a eCryptfs........................... 33 2.8.2 Funzionamento di eCryptfs.......................... 34 2.9 Protezione dell'accesso................................ 35 2.10 Altri elementi di sicurezza.............................. 36 2.10.1 GSettings/dconf................................ 36 2.10.2 Display manager............................... 36 2.10.3 Environment variables............................ 37 2.10.4 Segnali tra processi.............................. 37 2.10.5 Protezione da remoto............................. 37 2.10.6 Certificati................................... 37 2.11 Vulnerabilit`anote................................... 38 2.12 Conclusioni...................................... 38 3 CyanogenMod 40 3.1 Modalit`adell'analisi di sicurezza........................... 40 3.2 Introduzione...................................... 41 3.2.1 Storia..................................... 41 3.2.2 Differenze con Android............................ 41 3.2.3 Distribuzione................................. 41 3.2.4 Device Rooted................................. 42 3.3 Tecniche di confinamento delle applicazioni..................... 42 3.3.1 Il modello Android.............................. 42 3.3.2 Gestione dei permessi............................. 43 3.3.3 Gestione privilegi di root........................... 44 3.4 Store.......................................... 45 3.5 Componenti di sicurezza aggiuntivi......................... 45 3.5.1 Whisperpush................................. 45 3.5.2 Protezione da remoto: Device Finder.................... 46 3.6 Cifratura dati utente................................. 48 3.7 Protezione dell'accesso................................ 49 3.8 Conclusioni...................................... 50 3 4 Tizen 51 4.1 Modalit`adell'analisi di sicurezza........................... 51 4.2 Introduzione...................................... 52 4.2.1 Tizen, \The OS of Everything"....................... 52 4.2.2 Storia..................................... 52 4.2.3 Le architetture supportate.......................... 53 4.2.4 Le applicazioni................................ 53 4.2.5 Strumenti di sviluppo............................. 54 4.3 Architettura...................................... 54 4.3.1 Kernel..................................... 54 4.3.2 Core...................................... 54 4.3.3 Framework Nativo.............................. 55 4.3.4 Framework Web................................ 56 4.3.5 Web Runtime................................. 56 4.4 Modello di sicurezza del sistema operativo..................... 56 4.4.1 L'utente.................................... 57 4.4.2 Le applicazioni................................ 57 4.4.3 Il sistema................................... 58 4.4.4 I principali componenti............................ 58 4.5 Tecniche di confinamento delle applicazioni..................... 59 4.5.1 Smack - Simplified Mandatory Access Control Kernel........... 59 4.5.2 Smack in Tizen................................ 62 4.5.3 UserID e GroupID.............................. 62 4.5.4 The three domain model........................... 63 4.5.5 Cynara..................................... 64 4.5.6 Commenti sul modello del controllo degli accessi in Tizen......... 66 4.5.7 Il sistema dei privilegi............................ 67 4.5.8 Firma delle applicazioni........................... 69 4.5.9 Installazione delle applicazioni........................ 70 4.5.10 Esecuzione delle applicazioni......................... 71 4.5.11 Vasum..................................... 72 4.6 Criticit`aprogettuali ed implementative delle applicazioni............. 74 4.6.1 Conversione automatica della applicazioni................. 74 4.6.2 WebGL.................................... 75 4.6.3 XSS...................................... 77 4.7 Store.......................................... 78 4 4.7.1 Il processo di revisione............................ 79 4.7.2 Connessione alla Store............................ 80 4.7.3 Store non ufficiali............................... 81 4.8 Cifratura........................................ 81 4.8.1 Cifratura applicazioni Web.......................... 81 4.9 Componenti di sicurezza aggiuntivi......................... 81 4.9.1 Tizen Key Manager.............................. 82 4.9.2 Secure Storage................................ 85 4.9.3 Content Security and Reputation Framework................ 85 4.9.4 Wifi Security................................. 88 4.9.5 Gestione dei certificati SSL.......................... 88 4.9.6 Tecniche di mitigazione degli exploit.................... 90 4.10 Protezione dell'accesso................................ 91 4.11 Vulnerabilit`anote................................... 92 4.12 Analisi Sperimentale................................. 93 4.12.1 Test Smack label............................... 93 4.12.2 Test ASLR.................................. 93 4.12.3 Test DEP................................... 94 4.13 Conclusioni...................................... 95 5 Conclusioni 96 6 Appendice 100 6.1 Memorizzazione dati critici.............................. 100 6.1.1 GNOME Keyring............................... 100 6.2 Sicurezza delle connessioni di rete.......................... 102 6.2.1 GSM...................................... 102 6.2.2 WiFi...................................... 103 6.3 Address Space Layout Randomization........................ 105 6.4 Data Execution Prevention.............................. 106 6.5 Modelli per il controllo degli accessi......................... 106 6.5.1 Discretionary access control......................... 107 6.5.2 Mandatory Access Control.......................... 107 6.6 LXC / Linux Containers............................... 107 5 1 Introduzione 1.1 Il mercato dei dispositivi mobili Il vertiginoso sviluppo tecnologico che ha caratterizzato l'ultimo ventennio ha portato diverse innovazioni, permettendo di lanciare sul mercato numerosi dispositivi innovativi. I progressi sulla \portabilit`a"della tecnologia hanno giocato un ruolo essenziale: sono nati nuovi dispositivi tascabili che hanno permesso di soddisfare la crescente necessit`adi archiviazione di dati e di connettivit`ain movimento. Il mercato dei dispositivi mobili, ha reso \portabili" gran parte delle funzionalit`afino a quel momento ristrette ai soli computer desktop, introducendo i nuovi smartphone, tablet e computer portatili, tutti dotati di caratteristiche necessarie per un costante utilizzo al di fuori dei tradizionali confini aziendali e domestici. Considerando i soli dispositivi in grado di connettersi ad internet, il loro numero ha recentemente superato quello della popolazione mondiale: i dati [1] stimano 7.3 miliardi di dispositivi contro 7.2 miliardi di persone. Di questi pi`udi 1.2 miliardi sono telefoni cellulari e il loro numero `e destinato a crescere, raggiungendo i 4 miliardi nel 2018 [2], con un forte sviluppo del mercato asiatico, soprattutto in Cina ed India. Sebbene il termine dispositivo mobile si riferisca ad un insieme di dispositivi molto vasto, come tecnologie wearable, smartphone, fotocamere ed altri, nel corso del report sar`autilizzato per indicare solo i telefoni cellulari di ultima generazione (smartphone) ed i tablet. In modo