Android™ Security Training Course
Android Security is a two-day course focusing specifically on the various security concerns of the Android platform.
We explore Android architecture and its security model, permission system and enforcement, customizing security options, known exploits, memory protections, data protection, device management, SE-Android, as well as more exotic vectors of attack like malware and tap-jacking.
The objective of Android Security training is to give you a solid understanding of inter-workings of the Android operating system, its security model, and ways to tighten potential security holes. By the end of this class, you will be able to identify the issues, and understand how to go about securing the system and applications running on them.
This class does not cover Android application development in Java nor C programming for the lower levels.
The Android Security course is designed for security-conscious application developers and system integrators looking to tighten the security of both their devices as well as the applications running on them.
Android Overview training or any other NewCircle Android class that contains Android Overview module.
It is highly recommended that participants be familiar with basics of Java, C/C++, and Linux administration to fully take advantage of this course.
To refresh your Java skills, you can review NewCircle's Fundamentals of Java tutorial.
Additionally, knowledge of Eclipse is required. You could watch this 30-minute Eclipse tutorial to get up to speed.
Adam Breindel brings over 10 years of successes working with cutting-edge technology for small startups as well as major players in the travel, media/entertainment, financial, productivity, and consulting industries.
In addition to web sites, GUI applications, and mobile device software, Adam has also built high-volume middleware for one of the world's largest banks, and produced a new, modern integration to a 1960s-vintage mainframe app for one of the world's largest airlines.
Adam focuses on designing and coding systems in a way that yields predictable results, leverages best practices and high-productivity tools, minimizes excess code, and is fun to do. He has also spoken at tech conferences, written articles and skill assessments, and produced an open source tool for software development. Adam has enjoyed teaching large and small groups, covering topics from nuts-and-bolts Java programming to merging ideal process with real-world constraints in an organization.More about Adam Breindel...
- Overview of Android (optional)
- Overview of Android Building Blocks (optional)
- Overview of Android OS
Android Stack from the Security Perspective
- Android Linux Kernel Layer
- Early Suspend
- Low Memory Killer
- Paranoid Network Security
- Other Kernel Changes
- Android User-Space Native Layer
- Bionic (libc)
- User-space Hardware Abstraction Layer (HAL)
- Native Daemons: ueventd, servicemanager, vold, netd, rild, mediaserver, keystore, racoon, zygote, system_server, adbd, surfaceflinger, etc.
- Function libraries: libwebcore (Web Kit), V8, SQLite, libssl (OpenSSL), etc.
- Android Runtime / Dalvik Virtual Machine
- Android Application Framework Layer
- Managers and Services
- Activity Manager Service
- Package Manager Service
- Power and Alarm Manager Services
- Notification Manager Service
- Keyguard Manager Service
- Location Manager Service
- Sensor Manager Service
- Search Manager Service
- Vibrator Manager Service
- Connectivity, Telephony, and Wifi Manager Services
- Input Method and UI Mode Manager Services
- Download and Storage Manager Services
- Audio Manager Service
- Window Manager Service
- Additional Manager Services
- Android Applications Layer
- Android Built-in Applications
- Android Built-in Content Providers
- Android Built-in Input Methods
- Android Built-in Wallpapers
Android Startup from the Security Perspective
- Bootloading the Kernel
- Android’s init Startup
- Startup of daemons
- Zygote Startup
- System Server Startup
- Startup of system services
- Startup of applications
- Android Security Architecture
- Application Signing
- User IDs
- File Access
- Using Permissions
- Not-using permissions: using Intents instead
- Permission Enforcement
- Declaring Custom Permissions
- Custom Permissions by Example
- Lab: Custom Permissions
- ContentProvider URI Permissions
- Public vs. Private Components
- Intent Broadcast Permissions
- Pending Intents (Optional)
- Data protection and Encryption
- SSL and HTTPS
- JCE with BouncyCastle
- Whole Disk Encryption
- Lab: Encryption (Optional)
- How to get root: exploits
- Keeping root
- Security of Memory
- Other protections
- Tap-Jacking on Android
- Android Device Administration
- Device Administration by Example
- Lab: Device Administration
- The state of malware on Android
- Lab: Anti-malware
- SE Android / SE-Linux on Android
- Discretionary Access Control (DAC) vs. Mandatory Access Control (MAC)
- Goals of SE Android
- What SE Android can/cannot do
- Other Security Concerns
Student Testimonials [top]
Great class. Too bad didn't have time to do the exercise together. Having exercise/labs is excellent idea though. If you come up to Seattle/Bellevue, pls let us, T-Mobile Bellevue, know.
Very good balance of Android basics and security topics. As someone knowing little about either coming in, I learned a lot.