Mobile devices such as smart phones, tablet, or smart watches are increasingly important for connecting to digital services: live and message communication, producing and consuming media, web access, etc. However, securing these devices is hard not only because of the complexity of their hard- and software stack, but also because of usability concerns that are different to standard desktop/laptop type systems: screens and (on-screen) keyboards are smaller, the individual interactions with those device are both much shorter and far more frequent, and users are often multi-tasking during their interactions. Therefore, new approaches to security are required for mobile devices.
This course looks at Android security concepts in terms of those already established in the standard platform as well as new concepts and techniques appearing in the Android ecosystem.
In this seminar, current research results will be discussed with a focus on the open Android platform. In addition to lecture-style blocks at the beginning of the course, students will be given research papers and independent research/reading exercises to independently work through. Grading will be based on seminar papers and presentations at the end of the seminar block.
Update: List of paper/presentation topics (group sizes vary between 2 and 4 students per topic)
- [2-3] SEAndroid
- [2-3] Certificate pinning on Android OS and apps
- [2-3] Android keystore in Android M
- [2-3] TrustAgent API and Google SmartLock implementation
- [2-4] Xposed and Cydia Substrate frameworks and modules
- [2-4] Android M runtime permissions vs. Xprivacy
- [1-3] Biometric authentication on Android M
- [2-3] Disk encryption (dm-crypt) and verified boot (dm-verity)
- [2-3] Rooting of Android devices (Note: this includes all major OEM manufacturer devices and security-oriented firmware variants)
- [3-4] Multi-user and Android for Work support compared with OEM variants (e.g. Samsung Knox)
- [1-2] Device owner vs. Device administrator concepts
- [2-4] Reversing apps: tool support and representative cases
- [1-4] Exploit mitigation techniques: ASLR, XN, DEP, etc. (history of mitigation techniques by Android versions, can use e.g. Chapter 12 of Android Hacker's Handbook as starting point until Android 4.4)
- [3-4] Stagefright and Integer overflows as a problem class
- [2-3] Finding vulnerabilities with Fuzz testing (cf. Chapter 6 of Android Hacker's Handbook)
- [1-2] History of public exploits for Android (cf. Chapter 8 of Android Hacker's Handbook)
Seminar papers + presentations