基于HTTP行为图的恶意软件检测方法与流程

文档序号:17211376发布日期:2019-03-27 10:49阅读:162来源:国知局
基于HTTP行为图的恶意软件检测方法与流程

本发明属于网络安全技术领域,涉及基于http行为图的恶意软件检测方法。



背景技术:

基于web的服务越来越多地用于诸如社交网络或云计算的互联网应用中。另外,由于网络安全威胁的增加,系统管理员通过关闭向内的端口来保护他们的网络,并允许通过选定诸如http的协议进行传出通信。因此,http是内部安全威胁的潜在通信媒介。

当复杂的或新的模型恶意软件产生合法的http流量并且与正常软件具有相似的行为时,通过监视http流量区分正常和恶意活动变得更加困难,然而分析http活动对于恶意检测仍是有价值的过程。网络犯罪分子或互联网蜘蛛利用网络技术作为通信媒介,隐藏恶意软件(恶意软件)或各种非法活动。基于http的恶意软件感染的计算机,受到以下两种情况的控制:例如发送垃圾邮件或从秘密服务器下载shell代码,基础架构可以指示执行恶意的http活动。

正常情况下,http流量可以分为两类:人流量和非人流量,非人流量又叫自动流量。当用户使用正常的网页浏览器(例如internetexplorer...)访问他们想要或需要的网站时,会产生人流量,流量类型的特点是访问的网站以用户所知,他们知道他们将得到什么样的数据/信息。相反,来自自动软件的非人为流量的特点是访问的网站不被用户所知,产生非人为流量的自动软件大致可以分为三类:防病毒升级,邮件客户端,浏览器工具栏等常用软件;广告软件,间谍软件,笑话程序等灰色软件;基于http的机器人,特洛伊木马等恶意软件,这些自动软件无需用户意图便访问不知情的服务器。当恶意软件产生合法的http流量,并且定期生成请求时,正常和恶意活动与http流量的区别变得越来越困难。

目前存在的正常软件和恶意软件检测的方法主要是特征匹配,对变种恶意软件以及未发现的新型恶意软件,由于缺少特征样本,所以检测效率低下。

因此,本发明提出了一种基于http行为图的恶意软件检测方法。



技术实现要素:

本发明的目的在于:提供了基于http行为图的恶意软件检测方法,解决了当前许多恶意软件可产生合法的http流量,并且定期生成请求,导致分辨正常软件和恶意软件难度加大,分类效果较差的问题。

本发明采用的技术方案如下:

基于http行为图的恶意软件检测方法,包括以下步骤:

步骤1:收集恶意软件和良性软件产生的http流量;

步骤2:使用收集的流量建立对应http的行为树状图;

步骤3:提取行为树状图每个节点的特征,生成特征树状图;

步骤4:基于神经网络的graphembedding算法,将特征树状图转换为特征向量;

步骤5:利用模型对特征向量进行训练和测试,得到检测模型m;

步骤6:利用检测模型m完成恶意软件的检测。

进一步地,所述步骤2中的行为树状图包括根节点、子节点和边;

所述根节点是检测主机的源ip;

所述子节点是一个http请求,包括http请求包和http应答包,分别记录了http的请求内容和应答内容,所述http请求还包括host,connection,user-agent和referer的内容;

所述边是根节点以下的所有节点的产生原因,记录了这个节点与其父节点的关系。

进一步地,所述步骤3的具体步骤如下:

步骤3.1:提取步骤2中行为树状图每个节点的特征,所述特征包括请求资源类型,是否是dga域名,请求与返回是否一致,是否是重定向,是否是连续重定向,路径上的连续重定向数量和节点深度;

步骤3.2:用每个节点的特征代替节点原本内容,生成特征树状图。

进一步地,所述步骤4的具体步骤如下:

步骤4.1:基于神经网络的graphembedding算法,计算步骤3的特征树状图中每个顶点的嵌入特征μv;

步骤4.2:计算嵌入特征μv的向量之和μg:

步骤4.3:将μg变换为特征向量φ(g)后输出。

进一步地,所述步骤5的具体步骤如下:

步骤5.1:将特征向量φ(g)划分为训练集和测试集;

步骤5.2:利用bp神经网络模型对步骤5.1的训练集进行训练,使用反向传播进行bp网络权值更新和graphembedding网络权值更新,得到临时检测模型m1;

步骤5.3:利用临时检测模型m1对步骤5.1的测试集进行测试,得到测试误差k;

步骤5.4:测试误差k若满足预先设定的期望值θ,则输出最终检测模型m;否则,返回步骤5.2,修改bp神经网络模型的参数,重新对训练集进行训练,再得到新的临时模型m2,直到测试误差k满足预先设定的期望值θ为止。

更进一步地,所述步骤5.4中预先设定的期望值θ为90%。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

1.基于http行为图的恶意软件检测方法,首先根据收集的已知恶意或良性软件的http流量,将收集的流量建成http行为树状图,然后提取行为树状图中每个节点的特征来生成特征树状图;再利用graphembedding算法将特征树状图转换为特征向量,最后将特征向量输入bp神经网络模型进行训练,构建一个基于http行为图的恶意软件检测分类器,本方法可检测出能产生合法的http流量的恶意软件,可轻易分辨出正常软件和恶意软件,分类效果好,分类精度高。

2.本发明中采用行为图的方法进行恶意软件和正常软件的检测,未使用特征匹配的方式,不需要软件特征即可实现恶意软件检测,克服了传统检测方法的缺点,对于变种以及新型的恶意软件都有一定的检测效果。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图,其中:

图1是基于http行为图的恶意软件检测方法的流程图;

图2是本发明实施例一中步骤2的行为树状图;

图3是本发明实施例一中步骤3的特征树状图;

图4是本发明实施例一中步骤4的graphembedding算法概述图;

图5是本发明实施例一中步骤4的graphembedding网络一层迭代示例图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

基于http行为图的恶意软件检测方法,解决了当前许多恶意软件可产生合法的http流量,并且定期生成请求,导致分辨正常软件和恶意软件难度加大,分类效果较差的问题;

基于http行为图的恶意软件检测方法,包括以下步骤:

步骤1:收集恶意软件和良性软件产生的http流量;

步骤2:使用收集的流量建立对应http的行为树状图;

步骤3:提取行为树状图每个节点的特征,生成特征树状图;

步骤4:基于神经网络的graphembedding算法,将特征树状图转换为特征向量;

步骤5:利用模型对特征向量进行训练和测试,得到检测模型m;

步骤6:利用检测模型m完成恶意软件的检测;

本发明首先根据收集的已知恶意或良性软件的http流量,将收集的流量建成http行为树状图,然后提取行为树状图中每个节点的特征来生成特征树状图;再利用graphembedding算法将特征树状图转换为特征向量,最后将特征向量输入bp神经网络模型进行训练,构建一个基于http行为图的恶意软件检测分类器,本方法可检测出能产生合法的http流量的恶意软件,可轻易分辨出正常软件和恶意软件,分类效果好,分类精度高。

下面结合实施例对本发明的特征和性能作进一步的详细描述。

实施例一

本发明较佳实施例提供的一种基于http行为图的恶意软件检测方法,包括以下步骤:

步骤1:收集恶意软件和良性软件产生的http流量;

步骤1.1:使用cuckoo建立沙箱,模拟软件的真实使用环境;

步骤1.2:将收集的恶意软件和良性软件依次放入沙箱,收集恶意软件和良性软件产生的流量;

步骤1.3:将收集的alexatop10000的网站输入沙箱,依次收集alexatop10000的网站流量作为良性数据的补充;

步骤2:使用收集的流量建立对应http的行为树状图,如图2所示,所述行为树状图的每棵树代表客户端在沙箱中的http行为活动,所述行为树状图包括根节点、子节点和边;

所述根节点是检测主机的源ip;

所述子节点是一个http请求,包括http请求包和http应答包,分别记录了http的请求内容和应答内容,所述http请求还包括host,connection,user-agent和referer的内容;

所述边是根节点以下的所有节点的产生原因,记录了这个节点与其父节点的关系;

软件直接发起的http请求数据包和返回数据包作为根节点和子节点,节点的返回数据包中若包含如表1中所示的重定向标记并触发新的http流,则将新的http数据包作为节点的子节点;

表1

步骤3:提取行为树状图每个节点的特征,生成特征树状图;

步骤3.1:提取步骤2中行为树状图每个节点的特征,所述特征包括且不限于请求资源类型,是否是dga域名,请求与返回是否一致,是否是重定向,是否是连续重定向,路径上的连续重定向数量和节点深度,具体如表2所示,

表2

步骤3.2:对每个节点进行预处理,用每个节点的特征代替节点原本内容,将其中字符型特征转换成数字特征,比如请求资源类型,jpg用1替换,png用2替换,exe用3替换;生成特征树状图,如图3所示;

步骤4:基于神经网络的graphembedding算法,将特征树状图转换为特征向量;

步骤4.1:以graphembedding中structure2vec算法为基础,基于神经网络的graphembedding算法,将步骤3的特征树状图定义为g=(v,e),其中v和e分别是顶点和边的集合,

如图4和图5所示,设定每个顶点v都有特征xv,计算每个顶点的嵌入特征μv,所述嵌入特征μv的计算公式如下:

其中,n(v)是节点v的所有邻居节点,t是节点的嵌入深度,

通过计算得出包含t-hop邻居的拓扑信息和节点特征信息,初始的是0,f的计算公式为:

其中,xv是一个d维的特征向量,w1是一个d×p的矩阵,d是特征树状图中节点的特征数,p是设置的embeddingsize,σ是n层的全连接神经网络,公式如下:

其中,pi(i=1,…,n)是一个p×p的矩阵,n是嵌入深度;

通过上述公式便计算出各个节点μv(n)的值;

步骤4.2:计算嵌入特征μv的向量之和μg:

步骤4.3:将μg变换为特征向量φ(g)后输出,所述特征向量φ(g)的计算公式为:

其中,w2是一个p×p的矩阵,用来变换μg的向量;

步骤5:利用bp神经网络模型对特征向量进行训练和测试,得到检测模型m;

步骤5.1:将特征向量φ(g)划分为训练集和测试集;

步骤5.2:利用bp神经网络模型对步骤5.1的训练集进行训练,使用反向传播进行bp网络权值更新和graphembedding网络权值更新,得到临时检测模型m1;

步骤5.3:利用临时检测模型m1对步骤5.1的测试集进行测试,得到测试误差k;

步骤5.4:测试误差k若满足预先设定的期望值θ,则输出最终检测模型m;否则,返回步骤5.2,修改bp神经网络模型的参数,重新对训练集进行训练,再得到新的临时模型m2,直到测试误差k满足预先设定的期望值θ为止;所述预先设定的期望值θ为90%;

步骤6:利用检测模型m完成恶意软件的检测。

本实施例中,输入数据是http行为树状图的特征向量,输出结果是分类标签,0代表良性软件,1代表恶意软件。

本发明采用行为图的方法进行恶意软件和正常软件的检测,未使用特征匹配的方式,不需要软件特征即可实现恶意软件检测,克服了传统检测方法的缺点,对于变种以及新型的恶意软件都有一定的检测效果。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明的保护范围,任何熟悉本领域的技术人员在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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