一种基于行为图的Android恶意软件检测方法和技术与流程

文档序号:16579058发布日期:2019-01-14 17:48阅读:664来源:国知局
一种基于行为图的Android恶意软件检测方法和技术与流程

本发明涉及一种基于行为图的android恶意软件检测方法和技术,属于计算机安全技术。



背景技术:

随着智能手机的快速发展,如今移动平台已成为恶意软件聚集的主要目标。据腾讯安全2017年度互联网安全报告,移动端病毒中流氓行为和资源消耗占比超80%。移动设备上保存着几乎所有的个人数据信息,在当前的大数据时代,这些用户资料对于非法人员来说具有相当的吸引力。android平台的开放性使得谷歌无法对应用进行有效监管,应用程序开发的低门槛和分发渠道的多样性也给不法分子提供了极大的便利,给用户也带来了很大的困扰。

android平台生态复杂多样,手机安全形势一如既往地严峻,移动安全软件的检测方法也相对单一,通常采用签名校验和特征检测等方式,恶意应用利用加密等方式使代码变形后可以很容易躲避检测。

对于android恶意软件的检测,现有的技术主要分为特征码检测技术以及非特征码检测技术。其中特征码检测技术是一种基础的检测方法,被绝大多数的安全软件所采用,该技术是被作为一种基础的检测方法,也就是进行第一次过滤。特征码检测技术能够迅速识别特征码库中已经有了其特征码的恶意代码类型。非特征码技术也在不断的完善发展当中,现有的技术主要有基于行为分析的恶意行为检测技术、技术启发式分析的恶意行为检测技术、沙盒技术等等,这些技术一般都要用到虚拟化相关的技术。

上述的传统恶意行为检测方法都存在一些缺点,其中基于特征码检测技术的实时性很差,不能检测新型的恶意代码类型,而非特征码技术也存在效率低下,准确度偏低的缺点。更重要的是,针对某一类检测方法往往只对某一特定的攻击有效,并不能有效识别各种恶意行为。

同时,没有一种检测软件能够实时有效快速对一个新应用的恶意性进行准确判定,因此能够实时有效快速对一个新应用的恶意性进行准确判定,设计一个适用的恶意应用检测系统成为了一个迫切需要研究的问题。



技术实现要素:

本发明的目的在于改善现有检测方法检测的准确率较低、基于图结构的检测方法存在特征提取不完善以及基于批处理学习的检测方法不能有效地适应新增加的恶意软件类型等弱点,提供一种基于行为图的android恶意软件检测方法和检测模型,采用以静态分析为主,动态分析辅助的检测方式。本发明提出一种基于上下文的同构子树图核,从构建的行为图中提取上下文相关的结构化特征信息。相比于一般的图核函数,该方法提取的特征信息更能够准确地表示应用程序的行为,提高了特征的可靠性,对恶意代码具有更好的识别率。

按照本发明提供的技术方案,所述基于行为图的android恶意软件检测模型包括四个模块,依次是预处理模块、特征提取模块以及分类模块。其中预处理模块对程序样本进行预处理,构建原始的程序内控制流图,为特征提取模块提供服务,特征提取模块为模型的主要部分,其主要功能是根据构建出的几种行为表示图计算出对应的核函数,完成特征提取的工作,最后分类模块将几个基核进行组合学习对正常应用和恶意应用进行分类。

所述的基于行为图的android恶意软件检测方法从应用程序的程序内控制流图中提取上下文相关的特征信息,这种特征提取方法能够从图数据中提取更加丰富的特征集来表示应用的行为,关键的部分为特征提取和训练多核分类器,主要分为三步进行:首先,构建几种程序行为表示图;然后,使用本文基于同构子树图核提出的上下文同构子树图核分别从四个行为图中提取上下文相关的结构化特征信息;最后,利用在线多核学习方法生成多核分类器。

本发明中检测模型设计最为重要的是特征提取部分,这个环节涉及到关键的特征提取方法。由于常用的特征提取方法不能从图结构数据中提取出更有效的特征信息,所以需要提出一种更有效的特征提取方法。

所述的android恶意行为检测模型中行为表示图的构建主要分为以下两个方面进行:a)通过对程序样本的静态反编译处理,将应用程序转化为简化的程序内控制流图,从简化的程序控制流图中构建生成三个代表程序特定行为的行为图:安全敏感api行为图(敏感api行为)、数据流行为图(数据流行为)、dalvik指令行为图(dalvik指令行为);b)使用污点分析技术对系统提供的api的参数进行标记,记录被标记的数据传播路径,将该传播路径作为应用程序的动态行为图。

本发明中的特征提取方法在wl图核的基础上研究一种上下文同构子树图核,用来从函数调用图中提取上下文相关的结构化特征信息。在同构子图图核中,对节点的标签更新策略是每个节点更新后的标签为该节点标签信息和其邻接标签的组合序列。为了能够识别当前节点是否可以抵达函数入口点,对标签更新的策略进行进一步修改,设计了一个新的更新算法,算法的实现原理如下:a)遍历图中所有节点,如果需更新邻域的深度i为0,则将标签设置为原始的标签加上上下文信息;b)保存当前节点的邻接节点,获取其所有邻接节点的i-1级的标签值并保存,将当前节点i-1的标签值与保存相拼接组成当前节点新的标签值;c)将得到的标签值加上当前节点的上下文信息组成新的标签值;d)使用函数压缩标签减小标签大小,返回携带上下文信息的子树序列。

本发明的优点是:a)从静态分析和动态分析两个方面构建多种应用行为图,不同行为的互补性增加特征携带的信息量,有效提高了对恶意代码和未知类型恶意软件的检测效果;b)提出一种基于上下文的同构子树图核,从构建的行为图中提取上下文相关的结构化特征信息。相比于一般的图核函数,提取的特征信息更能够准确地表示应用程序的行为,提高了特征的可靠性,对恶意代码具有更好的识别率;c)提出一种随机组合更新的在线多核学习算法,将四种基核进行组合,调整基核在分类器中占的权重,实现了模型的自动更新,有效地提高了检测的准确性。

附图说明

图1是本发明的基于行为图的android恶意软件检测模型的架构图。

图2是本发明的检测方法中特征提取流程图。

图3是本发明的检测方法中分类器训练算法工作流程图。

具体实施方式

下面结合附图和实例对本发明做进一步的说明。本发明旨在提供一种对android恶意软件进行检测的方法和模型,对应用程序的恶意行为进行准确地识别和检测,保护系统和用户数据的安全。

本发明提供了一种新颖的检测思路,区别于主流的对恶意代码的特征码以及其行为等等进行分析的技术,这是一种基于图核的检测方法,主要优势在于提取的特征包含的信息更加完整,根据这个思路设计了一个基于行为图的android恶意软件检测模型,模型的整体架构如图1所示,主要分为了预处理模块、特征提取模块以及分类模块。其中预处理模块完成对应用程序样本的预处理,从程序的二进制文件构建程序内控制流图,特征提取模块针对处理后的程序表示图进行特征提取形成特征向量,机器学习分类模块对几类行为图的特征进行学习生成分类器。

预处理模块使用反编译工具将程序样本通过反编译的到程序源码,经过处理从源码中提取出程序内控制流图。本模块根据反编译获得的源码构建出程序内控制流图,然后通过去除无关的分支节点以及对图中每一个函数节点的入口点进行判断生成简化的程序内控制流图。

特征提取模块的主要功能是从简化的程序内控制流图中提取出应用程序的特征信息并利用向量表示,本模块利用上下文同构子树图核从ricfg图中提取特征信息。模块的个如图2所示。应用程序的简化的程序内控制流图构建完成后,通过进一步筛选生成三个特定的程序行为图:敏感行为图、数据流行为图和指令行为图。在动态行为图生成部分,通过判断函数参数中的污点数据来生成动态行为图。模块基于taintdroid针对污点传播的过程做了修改,向污点标记的数据中添加附加信息以保存污点的执行路径,在每一个执行的函数入口处对参数进行提取,判断参数中的数据是否有污点数据并记录污点信息,由于污点信息中包含了数据流过的路径,因此根据污点信息中的路径标签值来提取动态特征信息。程序表示图的特征向量形成之后,由每一个行为图的特征向量计算出对应的核矩阵用于多核学习生成分类器。

分类模块接受样本进行训练,分类器的训练流程如图3所示。首先针对每一个核函数训练生成单独的核分类器,将这些分类器的线性组合作为初始的多核分类器,利用伯努力采样规则对核函数进行采样选择合适的核函数集,比如选中了核函数a、核函数b和核函数c,然后利用对应的每个核分类器对给定的一个样本作出预测产生该核函数该轮次对应的预测值,判断此时分类器预测的结果和样本的标签是否一致,如果不一致则对该核分类器作出惩罚降低其在分类器中的权重并更新核分类器。

本发明还可以进行进一步的扩展,涉及到的几种特征信息比较单一,可以增加更为全面的特征类别,在可接受的范围内优化检测模型以提高检测效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1