[发明专利]一种快速定位Android应用软件中恶意代码或漏洞的方法在审
申请号: | 201710197887.1 | 申请日: | 2017-03-29 |
公开(公告)号: | CN107122659A | 公开(公告)日: | 2017-09-01 |
发明(设计)人: | 陈恺;王奥辉;梁瑞刚 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F21/57 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙)11200 | 代理人: | 余长江 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 快速 定位 android 应用软件 恶意代码 漏洞 方法 | ||
技术领域
本发明涉及移动终端应用安全技术领域,更具体地涉及一种快速定位Android应用软件中恶意代码或漏洞的方法。
背景技术
随着移动互联网的发展和智能终端设备的普及,针对手机病毒、盗版应用、垃圾短信、骚扰电话、移动支付等安全问题不断出现。随着移动应用数量的爆发式增长,应用漏洞层出不穷,应用的重打包更是降低了恶意代码传播的技术门槛,手机病毒、恶意软件等现象越来越普遍,遭受手机病毒侵害的用户群体也在逐渐扩大,由于手机病毒具备不易被用户察觉的特性,导致大多数用户即便遭受手机病毒侵害也毫不知情,给智能终端用户带来了极大的困扰。
由于安卓应用程序容易逆向,恶意软件呈现爬坡式增长态势。黑客可以通过反编译合法的应用程序,植入自己的恶意代码或广告信息,之后重新打包发布在第三方Android应用市场中牟取利益。这些恶意软件既扰乱了Android应用市场的正常秩序,又给用户和开发人员带来很大的威胁。
针对Android平台的恶意软件和漏洞带来了很多负面影响,包括:
1)大多数恶意软件植入了大量的广告影响了用户的正常使用,有些恶意软件甚至植入了一些隐藏的恶意代码,对用户的隐私和安全造成了威胁;
2)恶意仿冒应用剽窃了原创作者的劳动成果,侵犯了对应合法应用开发单位(开发人员)的知识产权,使其损失了广告收益和用户口碑;
3)恶意使用者利用广泛存在的应用漏洞,编写恶意脚本达到其敛财或隐私窃取目的,对用户的日常生活和财产安全带来威胁。
发明内容
针对上述问题,本发明提供一种快速定位Android应用软件中恶意代码或漏洞的方法,能够实现对Android平台上软件中存在的恶意代码或漏洞快速定位的高精准性和可扩展性。
根据以上目的,实现本发明的技术方案是:
一种快速定位Android应用软件中恶意代码或漏洞的方法,其步骤包括:
1)对已知存在恶意代码或漏洞的Android应用软件进行特征抽取,将已知存在恶意代码或漏洞的Android应用软件中每个函数生成一个特征向量,利用得到的特征向量构建恶意代码和漏洞特征库;
2)对待检测的目标Android应用软件进行特征提取,将得到的特征向量在恶意代码和漏洞特征库中进行相似性比对,当根据设定阈值判定二者相似时,则认为该目标Android应用软件存在恶意代码或漏洞;
3)通过将步骤2)检测到存在恶意代码或漏洞的目标Android应用软件与恶意代码和漏洞特征库做进一步比对,定位目标Android应用软件中恶意代码或漏洞存在的具体位置。
进一步地,步骤1)中,通过对已知存在恶意代码或漏洞的Android应用软件的Smali代码控制流进行抽取并提取每个函数中指令片段的特征,为下一步函数特征的提取做好准备。
进一步地,步骤1)中,提取各已知存在恶意代码或漏洞的Android应用软件的安装包中存在恶意代码或漏洞的具体函数的方法,生成对应的控制流程图,然后计算每个控制流程图对应的特征向量。
进一步地,所述控制流程图中的每一个节点用一个矢量<v1,v2,v3,v4,v5>及w,n来表示,v1是控制流程图中节点的序号,保证每一个节点只计算一次,v2是节点内函数的调用数量,v3是节点内API的调用数量,v4标识节点内是否存在文件读写操作,v5标识节点内是否存在网络请求,w是节点内指令的数量,n为节点个数。
进一步地,矢量<v1,v2,v3,v4,v5>中分别按照以下规则一对一的映射到其控制流程图中:
1)v1的编码按照如下规则:第一个节点的起始值为1。为保证节点编号的唯一性,如果一个节点有多个分支,优先给子节点更多的分支节点编号;如果两个分支有相同数量的子节点,优先给含有更多语句的分支节点编号;依次标注序号后直到CFG的最后一个节点。最后,我们手动添加一个终止节点到CFG的末尾。
2)v2的编码规则如下:计算节点内函数的调用数量(如节点内不存在函数调用,则v2的值置为0)。
3)v3的编码规则如下:计算节点内API的调用数量(如节点内不存在API调用,则值为0)。
4)v4的编码规则如下:判断节点内是否存在文件读写操作,如存在,则v4=1;如不存在,则v4=0。
5)v5的编码规则如下:判断节点内是否存在文件读写操作,如存在,则v5=1,如不存在,则v5=0。
进一步地,用特征向量表示由每个控制流程图计算得到的特征向量,其中:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710197887.1/2.html,转载请声明来源钻瓜专利网。