[发明专利]基于动态行为依赖图的Android恶意软件分类方法有效
申请号: | 201610119003.6 | 申请日: | 2016-03-02 |
公开(公告)号: | CN105653956B | 公开(公告)日: | 2019-01-25 |
发明(设计)人: | 王蕊;林子敏;代朋纹;张道娟;武传坤;操晓春 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F21/53 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙) 11200 | 代理人: | 邱晓锋 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 动态 行为 依赖 android 恶意 软件 分类 方法 | ||
1.一种基于动态行为依赖图的Android恶意软件分类方法,其步骤包括:
1)在沙盒中执行Android应用并提取其动态行为信息,包括框架层接口调用行为和行为间的依赖关系;
该步骤1)在自定义的Dalvik虚拟机中运行Android应用,得到其相应的动态行为信息,包括以下子步骤:
1-1)在Dalvik虚拟机运行过程中,Java指令解释过程被掌管,当函数调用指令被解释执行时,判断是否为一个框架层接口调用行为,如果是,则函数内的指令行为进一步被分析,用于记录行为之间的依赖关系;
1-2)搜集所有的系统框架层DEX函数库的文件指纹,以便区分普通函数调用和框架层接口调用行为;
1-3)在框架层接口函数执行过程中,执行沙盒进一步记录其中指令操作的数据依赖关系;
2)根据提取的动态行为信息,将Android应用模型化为行为依赖图;
3)将构建的行为依赖图进行优化,然后将行为依赖图划分为更小尺寸的行为子图,每个Android应用被表示为一个行为子图集合;
4)从已知的Android恶意软件族中分别挑选多个样本进行第1)-3)步操作,并从得到的所有行为子图中通过图匹配技术挑选部分行为子图作为特征;
5)对已知的Android恶意应用族样本和正常Android应用样本分别进行第1)-3)步操作,得到一系列的行为子图集,然后通过比较第4)步选择的基本特征,将每一个Android应用表示为一个特征向量,进行模型训练;
6)将未知的Android应用利用步骤5)训练所得的分类器,实现对未知Android应用的分类。
2.如权利要求1所述的方法,其特征在于,步骤2)所述行为依赖图是有向图,图中的节点是指APP整个生命周期间调用的接口函数,边是指函数节点之间的数据依赖关系。
3.如权利要求1所述的方法,其特征在于,步骤3)对构建的行为依赖图进行优化和划分,具体过程如下:
3-1)选择关键函数,合并重复节点,删除冗余边,以优化复杂的行为依赖图;
3-2)将行为依赖图划分成子图,以使得关键的恶意行为不会被正常行为所掩盖。
4.如权利要求3所述的方法,其特征在于,所述选择关键函数的方法为:预先在恶意软件和正常软件中计算函数的调用频率,如果一个函数在恶意软件中调用的频率高于在正常软件中调用的频率,则将其作为关键函数;所述合并重复节点的方法为:将相互依赖的节点、依赖于同一节点的两个点合并成一个节点;所述删除冗余边的方法为:对于依赖关系:A依赖于B,B依赖于C,则存在很大的概率推导出A依赖于C,如果存在A依赖于C,将该冗余边删除;所述的划分子图的步骤为:首先在行为依赖图找到所有的叶子节点;然后递归针对每一个叶子节点寻找其所有的祖先节点;最后,每个叶子节点和它的祖先节点构成一个行为子图。
5.如权利要求1所述的方法,其特征在于,步骤4)中,当同一个行为子图至少同时出现在同一族的两个恶意Android应用样本中时,该行为子图被挑选作为一个子图特征;所述图匹配技术通过图的编辑距离来衡量两个子图的匹配程度,即当两个子图相似度达到一定程度时,即认为两个行为子图是同一子图。
6.如权利要求1所述的方法,其特征在于,步骤5)对已知的Android恶意应用族样本和正常应用样本利用步骤1)-4)将每一个应用构建为一个0与1的特征向量,然后对这些特征向量利用支持向量机进行模型训练,生成分类器。
7.如权利要求1所述的方法,其特征在于,步骤6)对未知的Android应用首先构建其相应的特征向量,然后利用生成的分类器进行分类。
8.如权利要求1所述的方法,其特征在于,还包括步骤7)即验证与评估步骤,该步骤利用步骤5)训练出的模型对现实环境中大量APP进行测试和评估,并且模拟三种攻击场景进行验证,所述三种攻击场景包括:代码加密攻击,线程划分攻击,垃圾代码注入攻击。
9.一种采用权利要求1所述方法的基于动态行为依赖图的Android恶意软件分类系统,其特征在于,包括:
Android应用执行沙盒模块,用于执行Android应用并提取其动态行为信息,包括框架层接口调用行为和行为间的依赖关系,然后根据动态信息构建动态行为依赖图;
行为依赖图处理模块,用于优化复杂的行为依赖图结构,并将行为依赖图划分成子图;
特征的自动提取模块,用于从恶意软件动态行为依赖图中提取相似的子图结构,将至少被两个恶意软件共同拥有的相似子图结构作为分类时的基本特征;
模型训练模块,用于训练含有恶意软件和正常软件集合的训练样本,生成分类器,用于对未知APP的分类;
未知APP分类模块,用于利用模型训练模块所得的分类器,实现对未知Android应用的分类。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610119003.6/1.html,转载请声明来源钻瓜专利网。