- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通用Java反射型漏洞检测模型研究
通用Java反射型漏洞检测模型研究
【 摘 要 】 目前,Android终端上漏洞层出不穷,并且Android手机市场存在碎片化现象,漏洞难以完全修复,面临着巨大的威胁。WebView漏洞是Android系统上的一个远程执行漏洞,攻击者可以利用该漏洞非法访问目标手机,甚至进一步控制手机。论文通过研究WebView漏洞的形成机理,提出了一种静态分析和动态分析相结合的漏洞检测方案,该方案能快速检测出WebView漏洞。在此基础上,归纳出一种通用Java反射型漏洞的检测模型,该模型对于检测此类漏洞具有指导性作用。
中国论文网 /8/view-7178119.htm
【 关键词 】 Android;WebView漏洞;Java反射漏洞;检测模型
1 引言
WebView漏洞是Android系统上的一个Web应用漏洞。攻击者通过构造Web页面上的恶意脚本,绕过系统限制,获取系统API的使用权,以达到窃取用户隐私信息、远程非法控制等目的。目前,有相当数量的Android应用被证实存在此漏洞,其中包括百度浏览器、QQ客户端、微信客户端等软件,其危害性不容忽视。
2 WebView漏洞分析
WebView漏洞位于Android系统的WebView组件上,其产生的原因有两点:(1)WebView组件向Web页面提供了一个本地Java类;(2)Java是一种具有反射机制的语言,一个Java类可以通过反射,实现其他Java类的功能。如图1所示为攻击者利用WebView漏洞进行攻击的示意图。攻击者通过构造恶意脚本,利用本地Java类反射至系统API,实现诸多非授权功能。
2.1 桥梁函数分析
按照WebView组件架构设计,网页和Android系统之间采取Java类交互模式。网页通过调用系统提供的本地Java类,实现本地方法,从而提高了用户在网页端的交互性、丰富了网页的功能。Java 类交互模式是通过调用WebView组件上的addJavaScriptInterface()函数建立起来的,该函数架构起了网页和系统之间的桥梁关系,因此本文称之为桥梁函数。
桥梁函数有两个参数,第一个参数是在Android系统上实现的本地Java类的类名,该类即为WebView组件向网页提供的本地Java类;第二个参数是访问本地Java类时所须用到的入口名称。例如:myWebView.addJavaScriptInterface(Local_object,”Web_object”);即网页可以通过入口“Web_object”调用本地Local_object类。
2.2 恶意脚本绕过系统限制
恶意脚本通过调用本地Java类进入系统,并经反射绕过系统限制,获取非授权API的使用权,实现非授权功能。如图 2所示为恶意脚本的攻击流程。
Java语言允许程序在Runtime通过反射取得任何一个已知名称的class的内部信息,包括其成员变量、内部方法、父类等相关信息,并且可以在Runtime调用class的内部方法。恶意脚本通过网页调用本地Java类进入Android系统Dalvik虚拟机中的Runtime,然后利用Java反射机制,显性的调用系统API,从而实现系统功能。
如下代码:
Js2Java.getClass().forName(”android.telephony.SmsManager”).getMethod(”getDefault”,null).invoke(null,null).sendTextMessage(,null,”WebView漏洞!!”,null,null)。其中,Js2Java是WebView组件向网页提供的本地Java类。上述代码实现如下功能:通过Js2Java反射至系统的android.telephony.SmsManager类,并调用sendText Message方法,发送内容为“WebView漏洞!!”的短信
3 WebView漏洞检测
3.1 漏洞检测方案
通过结合静态分析和动态分析,能够快速、有效地检测漏洞。其中静态分析是通过研究目标软件反编译后的代码,分析其中的桥梁函数,获知其拟向网页提供的本地Java类,并将其归入可疑Java类集;动态分析是对静态分析生成的可疑Java类集进行黑盒测试,并根据系统的反馈判断是否存在漏洞。
3.2 静态分析
静态分析主要包括获取先验信息、反编译获取源代码、代码分析和建立可疑Java类集四个环节。
首先通过研究Android SDK查询先验信息,可知addJavaScriptInterface()为目标桥梁函数。接着反编译目标APK软件,获
原创力文档


文档评论(0)