two vulnerabilities in android os kernel

14
Two Vulnerabilities in Android OS Kernel Speaker: Xiaojiang Du Authors: Xiali Hei, Xiaojiang Du and Shan Lin Temple University

Upload: merrill

Post on 26-Feb-2016

56 views

Category:

Documents


2 download

DESCRIPTION

Two Vulnerabilities in Android OS Kernel. Speaker: Xiaojiang Du Authors: Xiali Hei , Xiaojiang Du and Shan Lin Temple University. 1. 1. Problem and Background. 4. 2. Goal and Contributions. Results. 5. 3. Conclusions. Methods. Outline. Problem and Background. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Two Vulnerabilities in Android OS Kernel

Two Vulnerabilities in Android OS Kernel

Speaker: Xiaojiang DuAuthors: Xiali Hei, Xiaojiang Du and Shan Lin

Temple University

Page 2: Two Vulnerabilities in Android OS Kernel

OutlineProblem and Background1.1.

Goal and Contributions2.

Methods3.

Results4.

Conclusions5.

Page 3: Two Vulnerabilities in Android OS Kernel

The Android operation system is widely used in smartphones and tablet devices.

There is no antivirus to protect the kernel of Android because its kernel is not open to security software company.

Tegra 2 CPU is a dual core and widely used in mobile devices [1]. If the driver of them has vulnerability, it will affect a lot of devices. And this kind of vulnerability is difficult to detected.

Problem and Background

Page 4: Two Vulnerabilities in Android OS Kernel

Goal and Contributions Find 0-day vulnerabilities in Android OS. One 0-day

vulnerability costs the government $30000-$60000. Also, it probably caused huge losses.

We revealed a security pitfall in the Tegra 2 CPU driver program on the Android operating system. Several severe security vulnerabilities are exposed by exploiting this pitfall.

We demonstrated how to perform system privilege escalation and denial-of-service attack using a real Samsung Galaxy Tablet.

We proposed a solution to fix the pitfall, our report to the problem has been accepted by Google.

Page 5: Two Vulnerabilities in Android OS Kernel

We examine the source codes of two packages: GTP7500 OpenSource.zip and GT-P7510 OpenSource.zip [1], and we find two vulnerabilities in the nvhost ioctl ctrl module regrdwr function in the file dev.c.

Vulnerability 1: Get user(offs, offsets) in Line 561 is used to get the offset from users. There is no boundary check on “offs”.

Vulnerability 2: Line 598: BUG ON( IOC SIZE(cmd)->NVHOST IOCTL CTRL MAX ARG SIZE). The program fails to check the size of IOC SIZE(cmd).

Methods (1)

Page 6: Two Vulnerabilities in Android OS Kernel

Fuzzy testFuzz testing is a automated or semi-automated

software testing technique. We use it to find the first the vulnerability and exploit the second vulnerability.

Methods (2)

Page 7: Two Vulnerabilities in Android OS Kernel

ADBAndroid Debug Bridge (ADB) is a command line tool

that allows your local computer to communicate with a connected Android-powered device or an emulator.

The attacker can use ADB’s push command to implant an exploit on the device, and use ADB’s shell command to launch the exploit and escalate his privilege.

After run adb get-serialno on the computer, the attack can get the serial number of a device.

Method (3)

Page 8: Two Vulnerabilities in Android OS Kernel

We conducted experiments on Android Honeycomb 3.1 using the Samsung Galaxy Tab 10.1 with Nvidia Tegra CPU.

And the results show that we can easily exploit these vulnerabilities and we can solve them with our fix methods.

We will present our results later.Note that, many android devices with Nvidia Tegra CPU suffer these vulnerabilities.

Experiments

Page 9: Two Vulnerabilities in Android OS Kernel

Android is based on a modified Linux kernel and it applies the Discretionary Access Control (DAC) on the file system level. If the uid = 0, this means that the user get root-level privilege, which is the goal of exploiting privilege escalation vulnerabilities. We can scan the kallsyms log and find the offset of the sys-setuid function. This means that we can find out the address of the sys-setuid function. We overwrite the code of setuid using newvalues[0] = 0 to get the root privilege, then setuid = 0.

Results:

Page 10: Two Vulnerabilities in Android OS Kernel

Logs for Experiment 1-Kernel privileges escalation vulnerability

Results (1):

Page 11: Two Vulnerabilities in Android OS Kernel

Result (2)Logs for Experiment 1-Kernel privileges escalation vulnerability

Uid was changed to 0 from 7d0.

Page 12: Two Vulnerabilities in Android OS Kernel

Result (3): Dos Vulnerability

Kernel was panic and system was reset.

Page 13: Two Vulnerabilities in Android OS Kernel

We presented two new vulnerabilities in Tegra driver programs located in Android kernel.

The first vulnerability can be used to escalate the kernel privileges.

The second vulnerability can be used to launch the deny of service (DoS) attack.

We successfully exploited the two vulnerabilities on several versions of Android by using a real device - a Galaxy tablet device.

Furthermore, we provided security patches to fix the two vulnerabilities and we confirmed that the patches work.

Conclusions

Page 14: Two Vulnerabilities in Android OS Kernel

Question?

ANY QUESTIONS ?