Google Adds New Kernel-Level Protections For Android
Measures include kernel memory controls and features to reduce attack surface.
July 28, 2016
Google yesterday rolled out new security measures for protecting Android’s Linux kernel against malicious attacks and other threats.
One set of measures is designed to provide memory level protections while the other is designed to reduce the overall attack surface of Android’s Linux kernel.
Jeff Vander Stoep, a member of the Android Security team, said the new memory protections are focused on ensuring that the integrity of the Linux kernel is maintained even if there are vulnerabilities in it.
“One of the major security features provided by the kernel is memory protection for userspace processes in the form of address space separation,” Stoep wrote on Google’s Security Blog.
User space is the area in an operating system kernel where applications execute. User-space processes are segmented and have only restricted access to memory so as to minimize the potential for applications to interfere with each other and cause problems like crashing a system.
“Unlike userspace processes, the kernel’s various tasks live within one address space,” Stoep said. As a result, a vulnerability anywhere in the kernel has the potential to impact other, unrelated portions of the system’s memory, he said.
Google’s new memory protection measures are designed to mitigate this threat. They include a new kernel memory segmentation feature with access restrictions for each segment that is similar to those found in the user space area. Another new feature restricts the kernel space from directly accessing memory in the user space. “This can make a number of attacks more difficult because attackers have significantly less control over kernel memory that is executable,” Stoep wrote.
Google’s new measures for reducing the kernel’s overall attack surface include removing some code and removing access to certain entry points to the kernel.
Nougat Nixes 'Perf' Access
Starting with Android Nougat--the next version of the operating system--Google will block access by default to a kernel feature called "perf" that lets developers perform performance measurement and certain other tasks at the kernel level. While perf serves a valuable purpose for developers, it adds “unnecessary attack surface” for most Android users, Stoep said. Developers who need access to the functionality would be able have it by enabling certain settings, said.
Starting with Android Nougat, Google will also restrict the number of so-called input/output control commands that are available to applications to minimize the kernel’s attack surface. Most of the vulnerabilities that have been reported in Android’s Linux kernel have been in drivers that are accessible via input/output control commands, according to Stoep.
The new measures add to a slew of ongoing projects that Google currently has underway to protect the Linux kernel, which Android relies on for tasks like enforcing mandatory access control over processes, automatic policy creation, and limiting the actions that privileged processes can take.
Examples of some of the other projects include the Kernel Self Protection Project and two separate projects for helping fuzzers more easily identity the root cause of kernel level crashes.
With Android devices increasingly being used in enterprise settings, Google has a lot at stake boosting the security of the operating system. A report by Hewlett-Packard Enterprise earlier this year identified Android as the second most heavily targeted operating system last year after Windows and also the platform with the second most number of vulnerabilities in it after Windows.
Related stories:
About the Author
You May Also Like