G.O.S.S.I.P 阅读推荐 2022-05-06

admin 2022年5月7日00:11:42评论63 views字数 2209阅读7分21秒阅读模式

今天我们为大家介绍一篇即将在USENIX Security 2022会议上发表的研究论文FRED: Identifying File Re-Delegation in Android System Services,这篇论文关注的是Android系统中文件重新委派(file re-delegation)过程中的敏感文件泄漏漏洞,这些漏洞允许第三方应用程序使用系统UID或GID读写敏感文件或敏感目录中的信息。

G.O.S.S.I.P 阅读推荐 2022-05-06

Android平台基于Linux构建,继承了传统的基于Unix的系统调用、文件系统和访问控制。除此之外,Android的许多核心功能被分解为单独的服务组件和系统守护进程,在系统的框架层中提供了抽象接口,允许第三方应用程序间接访问受保护的资源,从而实现安全访问。然而,由于Android系统中跨进程通信(RPC)入口点经常相互调用,当执行的环境权限发生变化时,可能会产生经典的confused deputy问题,从而导致了本文所述的file re-delegation漏洞。

作者在前人工作的基础上,提出了FRED框架,希望半自动化挖掘存在re-delegation问题的系统服务间接敏感文件访问行为,这个过程中主要难点和挑战之处包括:

  • 开发人员会使用各种不同的文件访问API

  • 开发人员采用多种方法构建文件路径,很难全面分析所有这些方法

  • 开发人员会通过JNI调用native code(来访问文件)

为了提取给定RPC入口点访问的所有可能文件路径,FRED从文件打开方法到RPC入口点对文件路径进行了数据流分析。由于无法通过静态分析确定完整的文件路径,FRED采用正则表达式以匹配敏感文件路径。对于native code,作者使用angr从所有公开的库函数遍历CFG,以识别对jniRegisterNativeMethods的调用。为了能够得到敏感文件的路径,FRED在设备上以root用户身份执行adb shell ls-laRZ来提取这些信息。然后,FRED通过解析符号链接处理文件系统信息,从而避免循环路径。FRED在re-delegation分析过程中确定了一组用于手动检查的候选RPC入口点。其中包括系统文件的re-delegation分析,带有映射到Android权限的GID文件和目录的re-delegation分析。

FRED的实现方式如下:

  1. 从RPC入口点遍历调用图,找到访问文件的方法(例如java.io.FileInputStream)。

  2. 从文件路径参数执行数据流分析,从常量字符串或RPC参数确定其值。然后将这些文件的访问控制策略与RPC入口点的访问控制策略进行比较。

下图展示了FRED的静态分析过程

G.O.S.S.I.P 阅读推荐 2022-05-06

为了能够确定文件相关方法,作者分析给出了文件路径作为libc文件方法时的参数的四个数据流路径:

G.O.S.S.I.P 阅读推荐 2022-05-06

论文的实验主要包括了如下部分:

  • 确定文件的访问方法

  • 识别可访问的敏感文件

  • re-delegation过程分析

  • 人工分析

  • 其他可选方案:动态执行分析、符号执行

实验在AOSP Pixel 3a、Google Pixel 3a、Samsung S20三类手机上进行。作者对不同设备的文件访问方法进行了分析整理,如下图所示:

G.O.S.S.I.P 阅读推荐 2022-05-06

在实验中,文件路径提取程序生成了7331个中间表达式,通过忽略2927个RPC入口点,减少到462个唯一的正则表达式。通过正则表达式匹配敏感文件路径以及预定义的方式,尽可能减少了需要手工检查的可能的漏洞点。表3显示了这一结果:

G.O.S.S.I.P 阅读推荐 2022-05-06

表4描述了不同的归约方法删除的中间表达式的数量。如表4所示,中间表达式之所以明显减少,是由于有41个预先定义的方法,而这些方法是安全的,可以直接排除。

G.O.S.S.I.P 阅读推荐 2022-05-06

表5显示了中间表达式转换为正则表达式时与任何安全敏感文件路径都不匹配的数量:

G.O.S.S.I.P 阅读推荐 2022-05-06

表6列出了作者发现的漏洞。作者将re-delegation漏洞分为三类:1. 读写文件中数据的能力;2. 暴露文件中或有关文件的数据;3. 拒绝服务

G.O.S.S.I.P 阅读推荐 2022-05-06

其中具体地:

  • 读写数据:1-5号漏洞使第三方应用程序能够读写敏感文件中的数据。其中1-4号漏洞允许第三方应用程序操作AccountManagerService管理的多个文件的数据。5号漏洞则存在于DropBoxManagerService中,允许任何调用方清除系统日志信息,而这些信息可能隐藏着攻击证据。

  • 数据泄漏:6-10号漏洞为敏感数据可能泄漏给第三方应用程序。

  • 拒绝服务:11-12号漏洞可能导致本地临时拒绝服务。这两个漏洞都是三星固件独有的,都存在于BlockchainTZService中。

本文研究工作的一些不足之处在于,作者基于ACMiner以及soot进行了上述研究,而ACMiner作为一款静态分析程序,在native code、运行时修改、反射、动态代码等方面存在局限性,因此或许可以从其他框架或者动态分析的角度完成更加深入的分析。此外,作者提到,由于无法捕获RPC入口点允许安全访问敏感文件的所有方式,FRED只能依靠手动检查来识别不正确的file re-delegation,在这部分,或许可以使用动态分析来增强本文的工作。

代码:https://github.com/wspr-ncsu/fred(目前还没上传~)

论文PDF:https://www.usenix.org/system/files/sec22summer_gorski.pdf


原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 阅读推荐 2022-05-06

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月7日00:11:42
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   G.O.S.S.I.P 阅读推荐 2022-05-06http://cn-sec.com/archives/982359.html

发表评论

匿名网友 填写信息