Paranoid Android: Versa2le Protec2on For Smartphones
Transcription
Paranoid Android: Versa2le Protec2on For Smartphones
Paranoid Android: Versa.le Protec.on For Smartphones Georgios Portokalidis Joined work with: Philip Homburg and Herbert Bos/Vrije Universiteit Amsterdam, The Netherlands Kostas Anagnostakis/Niometrics R&D, Singapore Why Protect Smartphones? • They are used to: – Do things we used to do with computers – Store sensi.ve data – Perform calls – As e-‐wallets • They include various sensors (GPS, accelerometer, compass, etc.) • Large codebases, and many users 12/10/10 ACSAC 2010 2 Can We Use Exis.ng Solu.ons? • Network intrusion detec.on and preven.on – Smartphones are highly mobile and connected (3G, WiFi, Bluetooth, IR) • Firewalls – Client-‐side bugs, and malicious downloads • Host anomaly detec.on – Consumes resources, inaccurate • An.virus scanners – Consumes resources, slow, inaccurate 12/10/10 ACSAC 2010 3 Our Goals • Create a mechanism that enables mul.faceted security with fixed overhead – Including support for heavyweight mechanisms like dynamic taint analysis (DTA) • Enable backup and recovery of device data • AZackers cannot disable the checks • Determine if such an architecture is efficient for applica.on on smartphones 12/10/10 ACSAC 2010 4 Our Approach …. • Faithfully replicate smartphone execu.on in remote servers • Apply security checks on replicas 12/10/10 ACSAC 2010 5 Recording and Replaying in a Nutshell • Record nondeterminis.c inputs • Use a network proxy to avoid recording incoming data • Compress recorded data • Transmit data to replica • Replay recorded inputs at the replica 12/10/10 ACSAC 2010 6 Synchroniza.on • Issues: – Transmi`ng data requires power – Connec.vity can be lost • Opportunis.c data transmission to server • Data are stored on the device – We use tamper-‐evident storage based on rolling hashes: key′= HASH(key) 12/10/10 ACSAC 2010 7 Security Server • We can apply any detec.on technique that does not interfere with the replicated execu.on – System call profiling, file scanning, DTA, etc. • The same as applying the check on the device • Checks can be added transparently • A server can host mul.ple replicas 12/10/10 ACSAC 2010 8 Marvin: A Paranoid Android Prototype • Plaeorm – Android OS 1.6 – HTC G1 developer phone • User space implementa.on – Rapid prototyping – Portable – Using ptrace() 12/10/10 ACSAC 2010 9 Implementa.on Issues • Scheduling and shared memory – We use determinis.c scheduling – Alterna.ves • Kernel space determinis.c scheduling • Concurrent-‐read-‐exclusive-‐write (CREW) protocol • IOCTLS – Used exis.ng descrip.ons from the QEMU user space emulator – Manually added Android related ones 12/10/10 ACSAC 2010 10 Security Server • Replica hosted on Android QEMU emulator • File scanning using ClamAV Applica.ons – Detects viruses stored in the file system • DTA-‐enabled QEMU Android OS QEMU emulator – Detects memory corrup.on aZacks 12/10/10 ACSAC 2010 11 Data Genera.on Rate for Various Tasks 64B/s 12/10/10 121B/s Data generated by various tasks 12 Performance • Idle opera.on and performing calls – CPU load and baZery life are not affected • During intensive usage like browsing – CPU load average increased by ≈15% – BaZery consump.on increased by ≈30% 12/10/10 ACSAC 2010 13 User Space Tracing: Lessons Learned • Recording in user space is slow • The recording component spends 65% of the .me receiving events from the kernel – ptrace & waitpid • Could a kernel space implementa.on do beZer? – Intercep.ng the read() system call in user space is ≈25x slower than doing so in the kernel – We are working on a kernel implementa.on 12/10/10 ACSAC 2010 14 Conclusions • Smartphones are valuable targets, and they will be under aZack • Current security solu.ons are not sufficient for security sensi.ve organiza.ons • Outsourcing security is feasible, and can provide mul.faceted security 12/10/10 ACSAC 2010 15