IT学习网 - 爱学习 - 最具影响力综合资讯网站 -- 中国IT界的领航者!
热门关键字:      88888  as  xxx
站外
广告
站外
广告

Understanding and Defending the Binder Attack Surface in And

发布时间:2017-01-10 17:40文章来源:互联网文章作者: 佚名点击次数:
论文下载 密歇根大学 Huan Feng and Kang G. Shin 最近几年诸多CVE都是与binder相关,但都是以之为入口点,没有真正讨论过binder的安全。 作者发现这种攻击的本质在于攻击者可以直接通过操控binder接口来给系统服务注入错误,而系统并没有对数据来源做到很好

论文下载

密歇根大学 Huan Feng and Kang G. Shin

  • 最近几年诸多CVE都是与binder相关,但都是以之为入口点,没有真正讨论过binder的安全。
  • 作者发现这种攻击的本质在于攻击者可以直接通过操控binder接口来给系统服务注入错误,而系统并没有对数据来源做到很好的鲁棒性。
  • 为了解答这个问题,作者调查了98个google的服务,以及72个三星的服务,以及137个造成崩溃的漏洞。发现数据的校验仅仅在binder的客户端的API上做了,在binder的服务端并没有。例如没有通过public API暴露的RPC参数,以及后续针对这些参数的(反)序列化都没有保护。证明binder的信任边界出错了,这主要由于Android提供了AIDL能够帮助开发者自动生成接口。
  • 作者开发了bindercracker,用来fuzz binder的漏洞,并能够7倍于单纯的黑盒测试效果。并提供了系统及的诊断工具用来binder攻击。

Fig

  • 攻击模型为 APP开发者可以任意构造binder客户端,来调用系统服务端的binder。

Fig

人工审查了binder的漏洞,结果为

Fig

  • 漏洞大多由于由于数据检查发生在调用Public API上,而对于直接对binder发送的数据没有做校验。
  • 包括攻击者可以
    1. 直接给没有通过public API暴露给开发者的RPC方法传参,
    2. 以及有些RPC虽然暴露给public API,但检查也在public API之前,直接调用这些RPC也能导致崩溃
    3. 利用序列化和反序列化过程中校验不严格,直接修改序列化过的数据,导致服务端反序列化的崩溃。

例如IAudioFlinger提供了RPC方法REGISTER_CLIENT,这个方法只会被系统中间层调用,并没有暴露给开发者,所以对于这个RPC的参数,系统服务就不会校验。如果直接通过对binder driver发送一个空参数,就能让这个服务崩溃。系统开发者直接认为RPC接口是外部无法访问的,这个假设是错误的。

这些错误都因为系统开发者认为的信任边界是错误的,他们认为客户端的public API是开发者唯一可以调用的。这种假设也是因为Android提供的AIDL会自动生成代码,帮助开发者完成binder通信,序列化等,事实上,开发者或者攻击者可以完全不需要使用AIDL,而自己手动调用binder和RPC。

Fuzz工具开发

  • 主要问题在于参数的复杂性,以及input可能来自别的binder的output。
  • bindercracker开发了两个组件:
    • 一个记录组件,作为系统中的一部分,收集binder通信的信息
    • 而fuzz组件作为用户层的APP,用来重放和改变记录下来的binder通信内容。

记录组件在binder通信的序列化过程中进行插桩,可以动态的监控到所有的参数类型和结构,并记录下依赖关系。然后fuzz组件通过对最外部的那次通信数据进行修改来fuzz。主要通过修改binder_transaction_data结构体中数据来进行Fuzz。首先需要找到binder的对应系统服务和具体的RPC方法的关系,这个可以通过解析代码和动态的方式找到对应关系。其次是控制一次binder通信中的数据。

Fig

基本思路就是通过记录下来的binder通信数据可以获取数据结构和必要的依赖信息,最后精确的找到真正需要fuzz的参数数据,保持其他的都不变,只改变一个参数值,这样来fuzz。观察binder服务端的反应,如果服务端接受了数据,并且没有catch到异常导致崩溃,则认为fuzz成功。
Understanding and Defending the Binder Attack Surface in And
本文由 IT学习网 整理,转载请注明“转自IT学习网”,并附上链接。
原文链接:http://www.ourlove520.com/Article/netsafe/xitong/678681.html

标签分类:

上一篇:上一篇:【技术分享】使用Burp的intruder功能测试有csrf保护的应用程序
下一篇: 下一篇:没有了
无觅关联推荐,快速提升流量