Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

Draco: A System for Uniform and Fine-grained Access Control for Web Code on Android

论文下载

Webview的安全问题是android安全研究种的热门领域,根本问题在于系统提供的webview相关功能没有指定类似浏览器中的同源策略一样的安全策略,导致其他来源的web code执行的时候权限没有被限制,从而产生了安全问题。web code本质上类似于第三方库的代码,webview上不能完全去除非可信来源的代码,所以为了保障权限不被滥用,最好的办法就是控制其权限。

对比以前的Webview相关的工作,主要问题在于粒度较粗,不能控制域名对某种接口的访问权限。作者引用了一个攻击的论文,文章利用XSS的方式攻击了使用支持HTML5的PhoneGap app,之前所有的防御方式都无法阻挡这个类型的攻击。

作者提出了一种对于web code的细粒度访问控制。修改了android的Chromium系统app,实现这一个机制完善的访问控制系统,开发者只需要在原有的apk上添加一些权限规则,就可以防止其他来源的webcode访问apk的敏感资源。

Fig

作者提到,Webview中有问题的方面主要有三种:

  • 一种是JavaScript interface,暴露的js接口可以被恶意的web code调用
  • 一种是event handlers,例如onJsAlert(), onJsPrompt() and onJsConfirm()等回调函数
  • 一种是HTML5 APIs,通过html5的接口可以访问地理位置等个人信息。

作者举了三个需求例子,给出了Draco需要添加的规则 – CVS Caremark,医疗处方相关,需要根据不同的domain设置不同的JavaScript interface使用权限

Fig

  • Job Search by Indeed, 找工作的搜索引擎,需要取消非indeed.com的code使用JavaScript interface的权限。

Fig

  • MyStore example. 电商平台,商家提供产品链接以及各种描述信息,需要细粒度的控制每一个商家的interface调用权限,针对性开放html5的地理位置权限。

Fig

policy模型

Fig

框架模型

Fig

Fig

Evaluation

  • CVS Caremark 和 Job Search apps都是真实的APP,将他们放在真机中运行确实能够阻止不被授权的访问。
  • decompilation 60 to 90s
  • statically analyze 6s
  • The Parsing module a few miliseconds
  • Permission parsing < 1ms