论文标题
香肠:Android中UNIX域插座的安全分析
SAUSAGE: Security Analysis of Unix domain Socket Usage in Android
论文作者
论文摘要
Android操作系统目前是世界上最受欢迎的移动操作系统。 Android基于Linux,因此继承其功能,包括其过程间通信(IPC)机制。这些机制是通过过程使用的,可以相互通信,并在Android中广泛使用。尽管已经对特定于Android的IPC机制进行了广泛的研究,但尽管在高度特权的系统守护程序的IPC中起着至关重要的作用,但尚未对UNIX域插座进行全面检查。在本文中,我们提出了一种有效的新型静态分析框架香肠,以研究这些插座的安全性能。香肠考虑在Android安全模型中实现的访问控制策略,以及守护程序二进制文件实施的身份验证检查。这是一个完全静态的分析框架,专门设计用于大规模分析Android系统守护程序中的Unix域插座。我们使用此框架来分析跨越Android版本7-9的八个流行智能手机供应商的200个Android图像。结果,我们发现了多个访问控制错误配置和不安全的身份验证检查。我们的显着调查结果包括在高度特权的高通系统守护程序中旁路的许可和一个未受保护的插座,该插座允许不信任的应用程序可以设置系统上其他流程的计划优先级,尽管实施了强制性的SELINUX策略。最终,我们的分析结果令人担忧。除Android开源项目(AOSP)外,所有供应商都有访问控制问题,允许一个不受信任的应用程序通过硬件制造商或供应商自定义引入的UNIX域插座与高度特权的守护程序进行通信。
The Android operating system is currently the most popular mobile operating system in the world. Android is based on Linux and therefore inherits its features including its Inter-Process Communication (IPC) mechanisms. These mechanisms are used by processes to communicate with one another and are extensively used in Android. While Android-specific IPC mechanisms have been studied extensively, Unix domain sockets have not been examined comprehensively, despite playing a crucial role in the IPC of highly privileged system daemons. In this paper, we propose SAUSAGE, an efficient novel static analysis framework to study the security properties of these sockets. SAUSAGE considers access control policies implemented in the Android security model, as well as authentication checks implemented by the daemon binaries. It is a fully static analysis framework, specifically designed to analyze Unix domain socket usage in Android system daemons, at scale. We use this framework to analyze 200 Android images across eight popular smartphone vendors spanning Android versions 7-9. As a result, we uncover multiple access control misconfigurations and insecure authentication checks. Our notable findings include a permission bypass in highly privileged Qualcomm system daemons and an unprotected socket that allows an untrusted app to set the scheduling priority of other processes running on the system, despite the implementation of mandatory SELinux policies. Ultimately, the results of our analysis are worrisome; all vendors except the Android Open Source Project (AOSP) have access control issues, allowing an untrusted app to communicate to highly privileged daemons through Unix domain sockets introduced by hardware manufacturer or vendor customization.