一种Android混合应用代码注入的漏洞检测系统及方法技术方案

技术编号:19141174 阅读:26 留言:0更新日期:2018-10-13 08:49
本发明专利技术公开了一种Android混合应用代码注入的漏洞检测系统及方法,系统包括权限特征提取模块、数据通道特征提取模块及漏洞检测模块权限特征提取模块用于从待检测混合应用代码提取出待检测混合应用的敏感权限申请集;数据通道特征提取模块用于从待检测混合应用代码中提取出数据通道的源点集和接收点集;漏洞检测模块的第一输入端同权限特征提取模块的输出端连接,其第二输入端同数据通道特征提取模块的输出端连接,用于根据敏感权限和数据通道的源点集和接收点集,利用漏洞检测模型判定待检测混合应用是否存在漏洞代码注入。相对于传统的基于控制流和程序调用图的检测方法,具有更高的效率,分类准确率很高,具有很好的可用性。

A vulnerability detection system and method for Android mixed application code injection

The invention discloses a vulnerability detection system and method for Android mixed application code injection. The system comprises a privilege feature extraction module, a data channel feature extraction module and a vulnerability detection module for extracting sensitive privilege application sets from the mixed application code to be detected. The channel feature extraction module is used to extract the source set and the receiving set of the data channel from the mixed application code to be detected; the first input of the vulnerability detection module is connected with the output of the authority feature extraction module, and the second input is connected with the output of the data channel feature extraction module for sensitive permissions. The vulnerability detection model is used to determine whether the vulnerability code injection exists in the hybrid application to be detected. Compared with the traditional method based on control flow and program call graph, it has higher efficiency, high classification accuracy and good usability.

【技术实现步骤摘要】
一种Android混合应用代码注入的漏洞检测系统及方法
本专利技术属于移动安全和漏洞检测领域,更具体地,涉及一种Android混合应用代码注入的漏洞检测系统及方法。
技术介绍
随着互联网技术的发展和移动终端的便携性,智能手机受到越来越多的欢迎。与此同时,为了保证用户日常生活和娱乐的需求,开发人员也在开发越来越多的应用,以GooglePlay为首的应用市场给人们提供各种各样的应用,例如社交、购物、游戏、拍照和新闻。但是智能手机带来的安全问题也越加严重,用户的隐私数据(地理位置、通信录、账号密码)也会暴露在手机中,成为恶意用户的攻击目标。市场调研结果显示,截止到2017年第四季度,AndroidOS的市场份额占比86.1%,远高于占比12.1%的IOS。但是也正因为它的开放性,Android平台的安全问题也愈加严峻。腾讯安全联合实验室2017年第一季度手机安全报告指出,随着智能手机的广泛使用和Android平台的恶意程序制作成本降低,Android病毒包共增加465万,同比增长21.42%。在不同的操作系统平台上,开发人员需要基于系统开发不同程序语言版本的应用程序。为了解决这一难题,一种基于标准Web技术的混合应用引起了越来越多开发者的关注,这些混合应用使用了HTML5、CSS和JavaScript等技术,具有良好的开发便捷性和跨平台移植性。但是所有操作系统本身是不支持JS和HTML的,为了能够展示HTML5用户界面和执行JavaScript代码,这个应用程序就需要嵌入Web浏览器组件(Android中称为WebView,IOS中称为UIWebView)。Android混合应用集成了PhoneGap、AppMobi、Mosync等混合应用框架。这样,这些应用程序能够调用本地Java代码并且能够访问系统资源。虽然混合应用具有良好的跨平台移植性,但是这种使用嵌入式的网页浏览器的技术打破了安卓操作系统针对Web浏览器的沙箱保护机制,在访问外来资源的同时可能会引起一定的安全问题,并且程序的JavaScript代码容易受到代码注入攻击,导致用户的数据的泄露等一系列安全隐患。在Web网站中,这种攻击被称为跨站脚本攻击,攻击者能够将恶意JS代码潜入到链接、数据库或者表单中。如果服务器没有识别出这些攻击代码,当这些数据被加载并且在浏览器中展示时,JS引擎就会执行这些恶意代码。对于这些基于PhoneGap等框架的混合应用来说,当用户使用WiFi、蓝牙、二维码和SMS等通道接受外部数据时,恶意代码也能够通过这种交互方式注入到设备中,从而实现攻击手段。现有技术中,对于Android混合应用代码注入漏洞检测的方法基本停留在传统的静态分析,在传统的静态检测技术中,由于混合应用接收外界数据的通道、能够触发恶意脚本的API很多,构建出来的函数调用图分析起来很复杂,当APK文件很大或者要检测的APK数量很多时,函数漏洞调用序列查找效率很差,并且可能会漏掉一些异步函数调用。
技术实现思路
针对上述缺陷,本专利技术提供一种Android混合应用代码注入的漏洞检测系统及方法,旨在解决现有的漏洞检测系统通过构建函数调用图找到漏洞攻击途径实现漏洞检测,导致现有的漏洞检测方法复杂的技术问题。为实现上述目的,作为本专利技术的另一方面,本专利技术提供一种Android混合应用代码注入的漏洞检测系统,包括:权限特征提取模块,用于从待检测混合应用代码提取出待检测混合应用的敏感权限申请集;数据通道特征提取模块,用于从待检测混合应用代码中提取出数据通道的源点集和接收点集;以及漏洞检测模块,其第一输入端同权限特征提取模块的输出端连接,其第二输入端同数据通道特征提取模块的输出端连接,用于根据敏感权限和数据通道的源点集和接收点集,利用漏洞检测模型判定待检测混合应用是否存在漏洞代码注入;其中,漏洞检测模型通过对无漏洞混合应用代码的特征和有漏洞混合应用代码的特征进行学习后获得,特征包括敏感权限申请集和数据通道的源点集及接收点集。优选地,权限特征提取模块包括第一数据预处理单元和输入端同第一数据预处理单元的输出端连接的敏感权限特征提取单元;第一数据预处理单元用于从待检测混合应用代码中提取出配置应用代码,敏感权限特征提取单元用于根据预设敏感权限集从待检测混合应用代码的配置应用代码中提取出敏感权限申请集。优选地,数据通道特征提取模块包括第二数据预处理单元及输入端同第二数据预处理单元的输出端连接的通道首末点提取单元;第二数据预处理单元用于将用于实现应用界面和业务逻辑代码根据调用关系分解为多个代码片,通道首末点提取单元用于从每个代码片中提取出插件函数作为代码片数据通道的源点,将触发插件所传输数据中脚本代码的API作为代码片数据通道的接收点,并将所有代码片的代码数据通道的源点和接收点合并作为数据通道的源点集及接收点集输出。优选地,数据通道特征提取模块还包括输出端同第二数据预处理单元的输入端连接的数据过滤单元,用于从实现应用界面和业务逻辑代码中剔除插件库函数代码、JQuery的API函数代码注释代码以及混淆代码。作为本专利技术的另一方面,本专利技术提供一种Android混合应用代码注入的漏洞检测方法,包括如下步骤:步骤S110:从待检测混合应用代码的配置应用代码中提取出待检测混合应用的敏感权限申请集;从待检测混合应用代码的实现应用界面和业务逻辑代码中提取出数据通道的源点集和接收点集;步骤S120:根据敏感权限申请集和数据通道的源点集和接收点集,利用漏洞检测模型判定待检测混合应用是否存在漏洞代码注入;其中,漏洞检测模型通过对无漏洞混合应用代码的特征和有漏洞混合应用代码的特征进行学习后获得,特征包括敏感权限申请集和数据通道的源点集及接收点集。优选地,步骤S110中根据预设敏感权限集从配置应用代码中提取出敏感权限申请集;其中,预设敏感权限集为根据WebView中的JavaScript代码访问移动设备资源时使用的插件API和权限申请之间的对应关系获得。优选地,步骤S110通过如下子步骤获得数据通道的源点及接收点:步骤S111:根据相互调用关系将用于应用界面和业务逻辑代码进行代码分片处理,输出分片代码;步骤S112:根据预设插件集从分片代码中提取插件函数特征,作为分片代码数据通道的源点,提取触发插件传输数据中脚本代码的API特征,作为分片代码数据通道的接收点;步骤S113:将所有分片代码数据通道的源点和接收点合并作为数据通道的源点集及接收点集输出;其中,预设插件集为移动设备与外界或者本地其他应用的数据传输需要使用的插件。优选地,在步骤S111之前还包括如下步骤:从待检测混合应用代码的实现应用界面和业务逻辑代码中剔除插件库函数代码、JQuery的API函数代码注释代码和混淆代码。通过本专利技术所构思的以上技术方案,与现有的检测技术相比,本专利技术具有以下的有益效果:1、本专利技术提供的漏洞检测系统,提取出混合应用中敏感权限、数据通道的源点及接收点,作为漏洞检测特征,利用机器学习方法获得漏洞检测模型;通过从待检测混合应用代码中提取特征,利用漏洞检测模型,能够对混合应用进行有效漏洞检测。2、本专利技术提供的漏洞检测系统,通过数据过滤单元从实现应用界面和业务逻辑代码中剔除插件库函数代码、JQuery的API函数代码注释代码以及混淆代本文档来自技高网
...

【技术保护点】
1.一种Android混合应用代码注入的漏洞检测系统,其特征在于,包括:权限特征提取模块(110),用于从待检测混合应用代码提取出待检测混合应用的敏感权限申请集;数据通道特征提取模块(120),用于从待检测混合应用代码中提取出数据通道的源点集和接收点集;以及漏洞检测模块(130),其第一输入端同权限特征提取模块(110)的输出端连接,其第二输入端同数据通道特征提取模块(120)的输出端连接,用于根据敏感权限和数据通道的源点集和接收点集,利用漏洞检测模型判定待检测混合应用是否存在漏洞代码注入;其中,漏洞检测模型通过对无漏洞混合应用代码的特征和有漏洞混合应用代码的特征进行学习后获得,特征包括敏感权限申请集和数据通道的源点集及接收点集。

【技术特征摘要】
1.一种Android混合应用代码注入的漏洞检测系统,其特征在于,包括:权限特征提取模块(110),用于从待检测混合应用代码提取出待检测混合应用的敏感权限申请集;数据通道特征提取模块(120),用于从待检测混合应用代码中提取出数据通道的源点集和接收点集;以及漏洞检测模块(130),其第一输入端同权限特征提取模块(110)的输出端连接,其第二输入端同数据通道特征提取模块(120)的输出端连接,用于根据敏感权限和数据通道的源点集和接收点集,利用漏洞检测模型判定待检测混合应用是否存在漏洞代码注入;其中,漏洞检测模型通过对无漏洞混合应用代码的特征和有漏洞混合应用代码的特征进行学习后获得,特征包括敏感权限申请集和数据通道的源点集及接收点集。2.如权利要求1所述的漏洞检测系统,其特征在于,权限特征提取模块(110)包括第一数据预处理单元和输入端同第一数据预处理单元的输出端连接的敏感权限特征提取单元;第一数据预处理单元用于从待检测混合应用代码中提取出配置应用代码,敏感权限特征提取单元用于根据预设敏感权限集从待检测混合应用代码的配置应用代码中提取出敏感权限申请集。3.如权利要求1或2所述的漏洞检测系统,其特征在于,数据通道特征提取模块(120)包括第二数据预处理单元及输入端同第二数据预处理单元的输出端连接的通道首末点提取单元;第二数据预处理单元用于将用于实现应用界面和业务逻辑代码根据调用关系分解为多个代码片,通道首末点提取单元用于从每个代码片中提取出插件函数作为代码片数据通道的源点,将触发插件所传输数据中脚本代码的API作为代码片数据通道的接收点,并将所有代码片的代码数据通道的源点和接收点合并作为数据通道的源点集及接收点集输出。4.如权利要求3所述的漏洞检测系统,其特征在于,数据通道特征提取模块(120)还包括输出端同第二数据预处理单元的输入端连接的数据过滤单元,用于从...

【专利技术属性】
技术研发人员:李瑞轩涂建伟汤俊伟韩洪木辜希武张婧代德顺
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1