An Empirical Study of Web Resource Manipulation in Real-world Mobile Applications

栏目: 编程工具 · 发布时间: 5年前

内容简介:出处:USENIX Security 2018作者:Xiaohan Zhang, Yuan Zhang, Min Yang, Xiaofeng Wang, Long Lu, Haixin Duan单位:School of Computer Science, Fudan University, Shanghai Institute of Intelligent Electronics & Systems, Shanghai Institute for Advanced Communication and D

出处:USENIX Security 2018

作者:Xiaohan Zhang, Yuan Zhang, Min Yang, Xiaofeng Wang, Long Lu, Haixin Duan

单位:School of Computer Science, Fudan University, Shanghai Institute of Intelligent Electronics & Systems, Shanghai Institute for Advanced Communication and Data Science, Shanghai Key Laboratory of Data Science, Fudan University, Indiana University Bloomington , Northeastern University , Tsinghua University

原文链接: https://www.usenix.org/system/files/conference/usenixsecurity18/sec18-zhang_0.pdf

文章概述

如今,移动App已经成为用户访问Web服务的主要方式。安卓和iOS都提供了丰富的操作Web资源的API,方便开发者在App内部集成Web服务。之前一些学者的工作已经指出了这些API存在的攻击面,也提出了一些防御的机制,但它们都没有给出实际场景下的攻击案例,也没能评估这类攻击所能造成的影响,而这正是这篇文章关注的重点。文章中,作者定义了Web资源的cross-principal manipulation(XPM)问题,实现了XPMChecker这一自动化分析工具,并使用它对Google Play上80694个App进行分析,发现49.2%的Web资源操作都属于XPM,4.8%的App中存在XPM行为,并且超过70%的XPM行为都是针对一些著名的站点。此外,作者还发现有21个App存在明显的恶意行为,如窃取、滥用用户的Cookies、收集用户登录凭证、伪装用户进行登录等。作者也确认了类似的威胁在iOS App中也是存在的,而大多数的Web服务网站尚未意识到这种威胁的存在。

操作Web资源(Web resource manipulation)

1. WebView

在移动平台,开发者将不同的Web服务集成到同一App中,可以给用户提供更丰富、强大的功能。为了方便集成,Android和iOS都提供App内置Web浏览器的功能来呈现Web内容。这种浏览器在安卓端就是WebView,在iOS端则为UIWebView/WKWebView(下文统称WebView)。在WebView的基础上,移动平台还为开发者提供了丰富的操作Web资源的API来提供更多的功能。比如,安卓和iOS都有evaluateJavascript这一API,允许App在Web页面插入JavaScript代码并返回结果。

2. XPM(Cross-Principal Manipulation)

A. 安全隐患

安卓和iOS系统对操作Web资源的API缺乏基于来源的访问控制,也就是说只要是来自App内部的代码都可以通过这些API操作Web资源。举个例子,某一App在WebView中加载了“www.facebook.com” ,那么它就可以使用evaluateJavascript这一API在Facebook界面运行JavaScript代码,获取用户数据。 通过一个实际场景的例子,我们可以了解对Web资源缺乏访问控制所带来的安全问题。如下图所示,有两个App A和B。A是Facebook官方App,B是一个聊天App Chatous。在B中集成了Facebook登录的SDK,用户可以使用Facebook账号登录。在这两个App中有三个 Java 类(C1、C2、C3)使用了WebView来加载www.facebook.com 页面,同时使用CookieManager.getCookie这一API获取cookies。对于C1、C2,它们读取cookies的行为很正常,但Chatous作为用户、Facebook之外的第三方,也尝试获取用户的cookies,这一点是非常可疑的。通过人工的分析,作者发现Chatous滥用Facebook的cookies收集Facebook用户的信息。 An Empirical Study of Web Resource Manipulation in Real-world Mobile Applications

B. 问题定义

受Web平台同源策略的启发,作者定义了移动平台的XPM问题:定义App所操作的Web资源所属方为WP(Web Principal),操作Web资源的代码所属方为AP(App Principal),在某一次App操作Web资源时,如果AP!=WP,则认为是一次XPM,XPM给用户带来安全威胁。作者认为App是不可信任的,其中存在两类攻击者:App本身及其集成的三方库。

C. Web资源相关API

基于所操作的Web资源对象的不同,作者总结了安卓和iOS平台常用的四类API,具体如下表所示: + 本地存储 + 网页内容 + 网址 + 网络流量 An Empirical Study of Web Resource Manipulation in Real-world Mobile Applications

XPMChecker设计与实现

为了实现大规模的App分析,作者实现自动化分析工具XPMChecker,如下图所示,该 工具 由三个部分组成: + 静态分析器

静态分析器基于Soot和FlowDroid,首先解析APK文件,构建inter-procedure control flow graph(ICFG),并通过遍历ICFG定位操作Web资源操作点。然后基于观察出的一些模式(下图所示),提取出所操作的URL、相关代码签名、包名等上下文信息,并存储到数据库中。
![](8.png)
  • 主体标识器
    • Web Principal 利用URL标识Web Principal,对于短URL和IP地址,动态加载它们或者使用DNS查询。
    • App Principal 主要是区别代码中主体App代码和三方库代码。使用静态分析器获取的代码签名,并基于三方库代码会出现在不同App中这一发现,对不同的Web资源操作点进行WP和AP的标识。
  • XPM分类器 确定Web Principal与App Principal是否相同,但存在一些情况,如Web Principal为facebook,而App Princiapl被简写为fb,这些情况下会发生误判。作者将该问题转化为:利用搜索引擎搜索Web Principal和App Principal,利用bag-of-words模型对返回内容进行处理,并通过返回内容的相似性(仅关注每一个单词出现的频率)来确定二者的相似性,并设置相似性的阈值(阈值的设置需要进行进一步的实验)。

An Empirical Study of Web Resource Manipulation in Real-world Mobile Applications

实验评估

作者从Google Play中下载了84712个App,使用XPMChecker进行分析。运行环境为安装CentOS 7.4 64位操作系统的64核、188GB内存的工作站。实验开启九个进程并行分析,并为每个App设置20分钟的时间限制。所有App的分析共花费233个小时,平均每一App花费10秒钟。XPMChecker的静态分析模块成功分析了80694(95.3%)个App,其余App或者运行超时,或者是Soot和FlowDroid对其分析失败。 An Empirical Study of Web Resource Manipulation in Real-world Mobile Applications + 针对静态分析器,作者人工分析了50个App,发现其中存在36个Web资源操作点,而静态分析器只成功标记了其中的33(91.7%)个,因为复杂的字符串编码、多层的函数调用等原因,静态分析器在分析其余三个Web资源操作点时都没能成功提取URL。 + 针对主体标识器和XPM分类器,作者选取了1200个Web资源操作点,对于其中的1000个,尝试不同的阈值以取得误报率和漏报率之间的平衡。确定了阈值后,使用剩下的200个进行测试,结果如下图所示:

![](https://loccs.sjtu.edu.cn/gossip/images/2018-12-11/4.png)

XPM分类

为了更深入地了解这些XPM行为,作者又人工分析了存在XPM行为的88个库、100个App。其中88个库涵盖了63.6%的XPM行为。 An Empirical Study of Web Resource Manipulation in Real-world Mobile Applications 通过分析,作者发现: + 大多数的XPM行为对于提高移动端用户的易用性都是有必要的 + 一些XPM行为不安全地实现了OAuth隐式授权(implicit grant flow) + 存在一些恶意的XPM行为,作者也选取了200个App进行人工分析,发现其中21个存在恶意的XPM行为,同时安卓和iOS平台都存在这种情况。

+ 在OAuth中模仿可依赖方
+ 窃取用户凭证
+ 窃取、滥用Cookies
  • 恶意的XPM行为影响大量用户,21个App的安装量最高有131220000,最低有29885000。

其他发现

  • 大多数Web服务提供商还没有意识到Web资源操作存在的风险,也不能有效地防止用户访问WebView中的敏感页面。 An Empirical Study of Web Resource Manipulation in Real-world Mobile Applications
  • 完全隔离WebView不适用于大多数的App
  • 操作Web资源的API必须要有细粒度的访问控制

总结

文章重点对安卓平台的XPM行为进行了研究,在自动化分析的基础上也加入了很多人工分析,对XPM行为的安全性研究非常深入。不过可能受限于篇幅,作者在文中经常提及iOS端也有类似的XPM行为,却一直没有给出相关的案例进行进一步的说明与解释。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

不止情感设计

不止情感设计

陈华 / 电子工业出版社 / 2015-5-21 / 59.00

本书着眼于“设计&心理”两个主要的维度,围绕“创新式思维2.0”(共情—移情—定义—构思—建模—测试)的模式,分析如何“理解一款好的产品设计”、“如何了解用户需求”、“如何从需求来定义产品”的几个步骤,由浅入深地介绍设计师通过洞察和理解用户内在需求来指导产品创新和设计的理念。一起来看看 《不止情感设计》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试