一种基于集成学习和动态分析的软件恶意行为识别方法

文档序号:191886 发布日期:2021-11-02 浏览:38次 >En<

阅读说明:本技术 一种基于集成学习和动态分析的软件恶意行为识别方法 (Software malicious behavior identification method based on integrated learning and dynamic analysis ) 是由 王丹 于 2021-07-26 设计创作,主要内容包括:本发明涉及网络安全、信息安全检测领域,具体涉及一种基于集成学习和动态分析的软件恶意行为识别方法,包括采用沙箱方法对软件进行动态分析,同时运用monkey对其进行随机点击模拟用户使用,从而提取出系统调用、网络行为、污点追踪和字符串操作作为动态特征;采用基于stacking的集成学习方法,将随机森林、支持向量机、朴素贝叶斯和k近邻进行集成,对特征向量进行训练以此产生训练模型;将待识别的恶意软件的动态特征输入完成训练的分类器,分类器完成识别;本发明采用集成学习方法规避了传统机器学习中各个分类器的优劣点,同时利用动态行为作为特征更能反映恶意行为识别的有效性。(The invention relates to the field of network security and information security detection, in particular to a software malicious behavior identification method based on integrated learning and dynamic analysis, which comprises the steps of dynamically analyzing software by adopting a sandbox method, and simultaneously randomly clicking the software by using monkey to simulate the use of a user, thereby extracting system call, network behavior, stain tracking and character string operation as dynamic characteristics; integrating a random forest, a support vector machine, naive Bayes and k neighbor by adopting a stacking-based ensemble learning method, and training a feature vector to generate a training model; inputting the dynamic characteristics of the malicious software to be identified into a classifier which completes training, and completing identification by the classifier; the invention avoids the advantages and disadvantages of each classifier in the traditional machine learning by adopting an integrated learning method, and simultaneously, the effectiveness of malicious behavior identification can be better reflected by using dynamic behavior as characteristics.)

一种基于集成学习和动态分析的软件恶意行为识别方法

技术领域

本发明涉及网络安全、信息安全检测领域,具体涉及一种基于集成学习和动态分析的软件恶意行为识别方法。

背景技术

随着信息科技的发展,软件的复杂度越来越高,人们对软件的依赖也愈发强烈。许多非法程序开发者也瞄准了这一市场,开发了许多恶意程序注入软件由此谋取巨额利润,严重侵害了用户的信息安全。传统的软件检测方法大多依赖于特征库,使得面对日益复杂的软件变得十分困难。如何有效的识别恶意软件中的恶意行为,保障用户的个人利益,这一研究成为当今的热点。国内外学者和研究组织积极投身到软件的信息安全,当下流行的技术主要集中于静态分析和动态分析,以及人工智能,许多成果对软件进行静态分析,获取多种特征以此进行机器学习,进而对恶意软件实行检测。还有部分成果利用恶意行为的特征库,提取未知软件的特征进行匹配,以此来判断是否含有恶意行为。恶意行为的识别有助于人们提高自身的个人信息安全和保障自身利益,且对当今的社会发展起着重要的作用。因此,从另一方面动态分析的角度出发,结合人工智能技术对软件进行分析,是未来应对恶意行为攻击的关键技术。

发明内容

为了有效识别软件中的恶意行为,保障用户的个人信息安全,本发明提供一种基于集成学习和动态分析的软件恶意行为识别方法,具体包括以下步骤:

S1、采用沙箱方法对软件进行动态分析,同时运用monkey对其进行随机点击模拟用户使用,从而提取出系统调用、网络行为、污点追踪和字符串操作作为动态特征;

S2、采用基于stacking的集成学习方法,将随机森林、支持向量机、朴素贝叶斯和k近邻进行集成,对特征向量进行训练以此产生训练模型;

S3、将待识别的恶意软件的动态特征输入完成训练的分类器,分类器完成识别。

进一步的,采用信息增益算法对系统调用这一动态特征进行去冗余操作,处理后的特征表示为:

Gain(D,Fd)=H(D)-H(D,Fd);

其中,Gain(D,Fd)为处理后的系统调用特征;H(D)为采用信息增益算法计算的系统调用数据样本集的信息熵;H(D,Fd)为采用信息增益算法计算的系统调用数据样本集中第d个特征属性的信息熵。

进一步的,采用信息增益算法计算的系统调用数据样本集的信息熵H(D)表示为:

其中,P(Rk)表示样本集D中类别属性的出现概率,k=1时表示类别属性为正常,k=2时表示类别属性为恶意。

进一步的,采用信息增益算法计算的系统调用数据样本集中第d个特征属性的信息熵H(D,Fd)表示为:

其中,|A|表示数据集A中特征个数;为样本集中类别属性为正常的集合的信息熵;为样本集中类别属性为恶意的集合的信息熵。

进一步的,将一个软件一个周期内变化数据作为一列构建信息矩阵,对信息矩阵进行标准化处理使其符合正态分布,处理后的特征作为网络行为特征。

进一步的,使用标记每一条数据流的source-out,将数据集中软件的所有正常样本和恶意样本数据流存入数据库,当进行未知软件行为识别与之匹配该数据流数据库,将匹配结果作为污点追踪特征。

进一步的,采用0、1映射方法对字符串操作这一特征进行处理,即含有字符串则标记为1,否则标记为0,将处理后的数据作为字符串操作的特征。

本发明设计了基于Stacking模型,采用元分类器以基于性能差异来组合不同类型的基分类器,采用集成学习方法规避了传统机器学习中各个分类器的优劣点,通过训练组合基分类器的优势,能提高了现有模型的泛化能力,同时利用动态行为作为特征更能反映恶意行为识别的有效性,弥补了静态检测中的对代码混淆、字节码加密的处理方式。

附图说明

图1为本发明中智能终端软件安全性评估模型示意图;

图2为本发明方法对采集的各特征数据处理示意图;

图3为本发明采用的集成学习模型示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提出一种基于集成学习和动态分析的软件恶意行为识别方法,其特征在于,包括以下步骤:

S1、采用沙箱方法对软件进行动态分析,同时运用monkey对其进行随机点击模拟用户使用,从而提取出系统调用、网络行为、污点追踪和字符串操作作为动态特征;

S2、采用基于stacking的集成学习方法,将随机森林、支持向量机、朴素贝叶斯和k近邻进行集成,对特征向量进行训练以此产生训练模型;

S3、将待识别的恶意软件的动态特征输入完成训练的分类器,分类器完成识别。

实施例

图1所示为本发明对安全性评估的模型示意图,主要采用动态分析特征和集成学习训练两个部分,因此本发明主要包含动态分析阶段和行为识别阶段。

在动态分析阶段,首先采用沙箱方法对软件进行模拟运行,本发明采用DroidBox动态分析工具,将软件数据集全部进行沙箱模型运行,以此尽可能符合正常使用规范。同时运用monkey对其进行随机点击模拟用户使用,因此多种动态特征更能反应该软件的真实性。从而提取出系统调用、网络行为、污点追踪和字符串操作等多种动态特征,下面以此对各个特征进行解释。

系统调用是操作系统内核的一部分,是操作系统为用户态进程与硬件设备进行交互的接口,通常是向内核发出明确的请求。网络行为是软件在后台运行时产生的数据流量,通常恶意软件会在软件运行过程中产生大量的异常网络连接和数据流量。污点追踪是在数据流的source进行标记,在软件运行的一系列行为后,在数据流的out处进行结束,这一行为的目的可以由一条完整的source-out数据流表示,因此分析污点追踪有助于理解软件行为。字符串操作是因此软件在开发中定义的许多字符变量和资源,可以根据软件源码得到在代码中定义的一些字符特征。

采用沙箱分析,本发明采用monkey模拟了用户点击,因此多种动态特征更能反应该软件的真实性;在得到提取出各个特征后,需要进行相应的特征处理,最后得到相应的特征向量。本发明运用多种动态行为特征,有助于提高恶意行为的识别效率。

系统调用特征,代表了用户程序和硬件设备之间的关系,网络行为特征表示了软件在连接网络时行为,污点追踪特征表示了数据点软件运行中的行为追踪,字符串操作特征代表了该软件在运行时产生的一系列行为日志。系统调用特征采用信息增益算法计算样本集D的信息熵H(D),表达式如下所示:

其中,P(Rk)表示样本集D中类别属性的出现概率。在样本集D中,计算第d个特征属性Fd的信息熵为:

其中,Ds为D的子集,根据其取值进行划分,且类别属性为R1或R2,代表正常或恶意,H(Ds)为其信息熵。根据式(1)和(2),得到样本集D中第d个特征Fd的信息增益,其计算如下:

Gain(D,Fd)=H(D)-H(D,Fd) (3)

网络行为特征中的每一列元素代表了该软件每隔一秒的变化情况。对各信息矩阵进行标准化处理使其符合正态分布。污点追踪特征使用了标记每一条数据流的source-out,将数据集中软件的所有正常样本和恶意样本数据流存入数据库,当进行未知软件行为识别与之匹配该数据流数据库。字符串操作特征中含有了大量的字符串信息,同时提取出部分敏感的特征,例如API、图片资源等,对全部的敏感字符串进行0、1映射,当含有该特征时,标记为1,不含有时则标记为0。关于各个特征的数据处理由图2所示。

支持向量机是一种二元分类模型,它以最大化最优线性超平面决策分界两个样本之间的差距。随机森林中利用了多颗决策树进行训练和预测,朴素贝叶斯以贝叶斯原理为基础,使用概率统计的知识对样本对数据进行分类,K近邻算法是在训练集中找到与某一类实例最近邻的K个实例,能对样本进行有效的划分。

选择了基分类器算法后,基于集成学习的stacking模型主要思想是对正确和错误预测概率进行堆叠以此得到性能更优的模型,利用了不同机器学习算法的优点以提升齐分类器的性能,stacking每次抽取各个不同的训练数据集合进行训练以此得到基分类器,然后将各基分类器的输出作为元分类器的输入得到最终的训练模型,即包括以下步骤:

步骤一:利用随机森林对部分特征进行训练,得到基分类器;

步骤二:利用支持向量机对部分特征进行训练,得到基分类器;

步骤三:利用朴素贝叶斯对部分特征进行训练,得到基分类器;

步骤四:利用K近邻对部分特征进行训练,得到基分类器;

步骤五:将各基分类器的预测概率作为输入,集成堆叠,从而作为新的输入训练元分类器,元分类器模型将基分类器中错误预测的内容进行优化,重新分类各权重,

步骤六:元分类器模型生成,对未知软件进行识别。

因此,利用集成学习生成的模型,对未知软件进行动态分析后生成的特征向量进行识别,可得到最后的恶意行为识别结果,即恶意和正常的输出日志报告。

在本发明中,除非另有明确的规定和限定,术语“安装”、“设置”、“连接”、“固定”、“旋转”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

8页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:工单的处理方法和装置、存储介质及电子装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!