Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

The Misuse of Android Unix Domain Sockets and Security Implications

论文下载

摘要

在本文中,作者针对Unix domain sockets(Android LocalSocket和跨层通信)的安全性进行了讨论和研究,并开发了一套半自动化工具,利用鉴别socket的地址、认证过程、数据流分析等技术检测和分析相关的安全漏洞。

背景

Fig

SInspector

Fig

  • 对APP的检查:首先检测APP是否含有Intnet权限、Java的API使用,native中API的使用。然后分析socket的安全性。每一次都如果有socket的连接,均会产生相应的文件。这个过程会检查系统产生的Socket文件是否是安全的,包括访问权限、配置和文件路径。然后检查认证过程中PID UID GID是否匹配。最后用程序分析的方式检查那些APP是否真的执行了那些含有Unix Domain Sockets的代码。
  • 对于系统服务的分析:采用动态分析的方式,收集runtime date。然后,Connection Tester模拟正常的client连接这些server,如果socket是安全的,就会拒绝这种连接。
  • 对于上述检测出来的可能有问题的APP、系统服务,人工验证。

RESULTS

  • 选取了google play中14,644个APP,3,734 (25.5%)用了Unix domain sockets。APP平均2,502秒一个,系统服务平均39秒一个。

Fig

Case study

  • 一键root工具:由于基于FILESYSTEM的socket在这种模式下的权限是全部可读可写可执行,任何app都可以在需要root的app发送自己的信息给su之前截获,恶意APP可以阻止或者授权APP获取root。
  • ES文件浏览器:在root模式下,没有检查client的合法性,任何APP可以读取隐私文件和受到保护的系统文件。
  • OpenVPN:由于文件权限没设置好,任何APP都可以通过OpenVPN的管理界面获取管理权限DOS。
  • LG手机用来初始化wifi的服务system/bin/atd:没有检查client的合法性,任何具有inet权限的APP可以通过这个系统服务出厂化手机。
  • LG手机的/system/bin/time_daemon:只检查了client的包名是否包含comm.timeservice,可以绕过。
  • Bluetooth

建议

  • 操作系统级的:默认的ABSTRACT很不安全,强行改变默认的模式或者更加细粒度的SEAndroid策略。
  • 从framwork层面解决。