Summary of Bringing balance to the force Dynamic analysis of AAF

admin 2022年3月18日00:40:29评论73 views字数 2266阅读7分33秒阅读模式

本文发表于 Network and Distributed Systems Security (NDSS) Symposium 2021,第一作者是来自亥姆霍兹信息安全中心的Dawoud


一、背景

随着安卓系统的大量使用,安卓应用框架的安全性在保护用户隐私和系统安全的过程中起着越来越重要的作用。因此,如何研究和分析框架是否安全就成了许多研究人员的研究重点。在已有的研究中,许多工作成功发现框架中的诸如文档不完整、再次授权和访问控制不一致等问题。

然而当前已有的工作大多也有许多局限性。比如说很多工作中使用了静态分析的方法,然而静态分析的以下几个缺陷使得它无法对复杂的代码进行全面分析:

    • 无法解出运行时的实时参数,所以要么遍历整个路径,要么随机性的猜一个最佳路径。

    • 为了得到准确的结果,静态测试需要对代码和设计模式有很深的理解。

    • 考虑到运算的开销,静态测试往往需要在准确性和开销中做平衡。

    • 安卓框架处理系统服务和测试服务间IPC通讯的时候也存在很多困难。


同时,本文中也提到了目前的唯一一篇动态测试的工作,作者认为该工作存在以下几个问题,所以已经过时:

    • 只检测遇到的第一个权限,忽视非权限的检查,需要编辑源码,在生成输入时需要许多人工操作,低api覆盖,因为无法分离噪音导致假阳性高,同时忽视原生代码。
    • 随着安卓系统的更新,一些安全政策已经改变。


考虑到上述已有工作的局限,基于当前工作的安全应用的工作效果也会受到影响。因此,本文提出了一种新的分析模型——DYNAMO。


二、模型设计与实现
    1. 究特点和贡献

      与其他致力于研究和发现新动态测试方法的工作不同,DYNAMO 聚焦于如何选择和使用合理的动态分析技术,在不同安卓版本下,对应用的安全政策进行分析在复现、验证和延申已有工作的同时,本文对比了实验结果与已有工作的结果,并分析了产生差异的原因,从而带给开发者有价值的动态+静态测试反馈。

    2. 具体实现

      Summary of Bringing balance to the force Dynamic analysis of AAF

      如上图所示,本文提出的模型主要有三部分组成:Testing Service、Instrumentation Server和Testing Manager。Testing Service主要负责生成输入,调用api并生成调用结果。Instrumentation Server负责报告缺失的安全检查和代码覆盖率,同时根据Testing Manager的需求,操作改写方法的行为。而testing manager则主要负责系统设置,收集信息的部分。

    3. 本文解决了哪些研究难题

      1. 如何找到系统api的入口并调用他们通常是此类研究会遇到的困难之一,在本文中,研究人员使用反射来获取ServiceManager里的binder,随后收集相应method 的 signatures和Linux PIDs

      2. 如何让模型合理的选取被测api同时规避偏见也是许多工作的重点,在本文中,研究人员使用同时运行同一个安卓版本的多个设备,在同一个api列表中,每个设备锁定并运行一个api,并将相应信息储存为对应的文件。

      3. 成有效的输入往往是测试时的难题之一,本文在从之前的步骤中获得相关签名后,从签名中获取输入类型,随后给每个java基础类型赋一个人工生成的种子列表,接着系统会依据静态分析,来精炼种子从而节省运行开销,最后,系统会对种子列表做笛卡尔积,生成种子集用来进行测试。在后续测试中,模型会结合种子集与预定义的策略不断迭代测试,直到没有新的安全检查被报告。

      4. 使用代码覆盖率来作为检验模型效果的工具是此类工作的常用手段,然而如何对覆盖率进行量化常常会成为实验能否成功的关键,在本文中,研究人员使用WALA工具进行可达性分析,从而得到method可达性的结果,使用method-coverage来作为code coverage的代表。

      5. 在构建反馈信道时,模型对目标api使用method可达性分析,收集stack traces,输入和输出信息并喂给分析模块。

      6. 考虑到不同安全检测之前的关系和顺序往往也会影响测试的效果,如何获取这样的关系也是这类研究的难点。在本文中,模型通过冒充root和system UIDs等方式,学习和观测api的行为,从而获取此类关系。

三、实验和结果

本文通过不同的设备、系统版本构建了多个测试环境。在这些实验环境中完成测试后,实验结果显示,DYNAMO在多项指标中均超过已有工具的结果,尤其在AppOPs这项中显著超越了它的对比对象Arcade。

       Summary of Bringing balance to the force Dynamic analysis of AAF        

随后,研究人员对于实验结果进行了进一步的分析,他们首先在具有permission re-delegation vulnerability的88个api中选择了33个进行分析,发现其中5个有discrepancy的问题。

接着,在对api访问控制的分析中,研究人员发现了5个未受保护的敏感api以及65个在安卓6和10上权限配置错误的api。

在对安卓版本10.0.0.r27的开发文档的分析过程中,研究人员从499个被测api中发现了有66个api存在权限映射不完整的情况,同时还有9个api存在错误。


四、本文局限
    1. 因为无法人工手动分析所有的实验结果,所以实验的实际FN率无法确定

    2. 受制于动态测试的性质,实验耗时无法避免

    3. 测试备均需root同时处于debug模式


复旦白泽战队

一个有情怀的安全团队

还没有关注复旦白泽战队?

公众号、知乎、微博搜索:复旦白泽战队也能找到我们哦~


Summary of Bringing balance to the force Dynamic analysis of AAF

 

编辑:郭明达

排版:LC


原文始发于微信公众号(复旦白泽战队):Summary of Bringing balance to the force Dynamic analysis of AAF

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月18日00:40:29
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Summary of Bringing balance to the force Dynamic analysis of AAFhttps://cn-sec.com/archives/831459.html

发表评论

匿名网友 填写信息