一种基于深度学习的加密型僵尸网络检测系统及方法与流程

文档序号:16062436发布日期:2018-11-24 12:19阅读:172来源:国知局

本发明涉及计算机网络安全领域的加密型僵尸网络检测方法,尤其涉及一种基于深度学习的加密型僵尸网络检测系统及方法。

背景技术

僵尸网络是指由大量受恶意软件感染的联网设备组成的网络,僵尸网络的使用者通过命令和控制软件对僵尸网络进行控制,在这基础上用作分布式拒绝服务攻击、窃取数据、发送恶意邮件、获取非法权限等等。过去几年,僵尸网络攻击频发,例如以iot为主体的mirai以及其数十个变种僵尸网络,被用于分布式拒绝服务攻击、广告欺诈等非法用途,它们在越来越复杂的体系结构中不断发展,使它们的检测成为安全专家的一项非常艰巨的任务。另一方面,研究人员不断努力寻找有效的检测方法。

僵尸网络结构经历了数代变化结构类型多样,对应的检测方法也根据环境变化,从网络协议层面有最开始的irc僵尸网络检测,之后演变到http和dns等僵尸网络的检测;从僵尸网络结构上也有如p2p僵尸的检测。目前僵尸网络开始逐渐将加密技术应用到僵尸网络中,传统方法基于特征签名或明文内容的检测方式僵尸主机之间使用加密协议后检测效果急剧下降。在相关研究方面,还没有比较完备的检测加密型僵尸网络的方法。但在检测加密的恶意流量方面,思科提出了基于机器学习的检测方式,分别使用线性回归,逻辑回归,随机森林,支持向量机以及多层感知器,主要以网络流量记录中的数据,并加入了单个包长度和时间以及tls元数据作为特征。根据结果,多数机器学习检测方法检测恶意流量的准确度在80%以上。

自动编码器(ae)是一种用于学习有含义的数据的浅层前馈神经网络,由一个输入层、一个隐藏层和一个输出层构成。隐藏层的作用是重构压缩数据,如果学习的是网络流量,那么ae就会将输入的流量进行组合转换,并使其仍然保持原有特性。因此,隐藏层包含流量最显著的特征。训练通过不断优化损失函数,调整反向传播重构产生的误差完成的。堆叠自动编码器(sae)是由多个ae叠加而成的深度前馈神经网络。sae加入了表示层,前一层ae的隐藏层作为这一层ae的输入层,并不断向后堆叠。sae的模型与单个ae相比,能够学习到更加抽象的特征。最终输出层神经元计算输入实例属于一个类的概率。产生最大概率的神经元将其标签。sae主要应用于特征提取和数据分类两方面。

现有技术中存在的未解决的技术问题包括:

①传统的基于机器学习对于恶意流量的检测方法,除了学习数据以外,还需要人为选取特征,特征选取复杂、耗时、效率低下,太多的特征影响机器学习效率,太少的特征影响检测正确率。且不同的技术人员选取的特征不同,会对机器学习结果产生主观上的影响,因此机器学习得到一个合适的分类模型需要耗费很大的时间和人力成本。

②现有技术中虽然可以对恶意流量进行识别,却没有一套完整的识别目标主机是否属于僵尸网络的识别系统和方法。

因此,本领域的技术人员致力于开发一种基于深度学习的加密型僵尸网络检测系统及方法,可以很好地解决上述技术问题。本发明根据运算能力设计了合适的神经网络规模以后,通过深度神经网络sae训练出分类模型,无需人为选取所有特征,大大提高训练效率;对内容加密的网络流量进行分类,并根据目标主机与恶意攻击之间的联系进一步判断主机是否属于僵尸网络。



技术实现要素:

有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是:

①传统的基于机器学习对于恶意流量的检测方法,除了学习数据以外,还需要人为选取特征,特征选取复杂、耗时、效率低下,太多的特征影响机器学习效率,太少的特征影响检测正确率。且不同的技术人员选取的特征不同,会对机器学习结果产生主观上的影响,因此机器学习得到一个合适的分类模型需要耗费很大的时间和人力成本。

②现有技术中虽然可以对恶意流量进行识别,却没有一套完整的识别目标主机是否属于僵尸网络的识别系统和方法。

为实现上述目的,本发明提供了一种基于深度学习的加密型僵尸网络检测系统,包括数据收集模块、数据预处理模块、深度学习模块、评估模块,其特征在于,由所述数据收集模块收集到样本数据以后,经过所述数据预处理模块预处理数据,提供给所述深度学习模块训练并得到判定模型,所述评估模块根据所述深度学习模块得到的判定模型,对需要判定的目标主机进行僵尸网络检测,判定所述目标主机是否属于僵尸网络。

进一步地,所述数据收集模块包括恶意软件分析沙盒,在所述沙盒中执行可疑程序的二进制可执行文件,收集所述可疑程序执行过程中的流量,并对流量按照恶意程序类型进行标注,输出给所述深度学习模块,用于生成恶意攻击分类集合。

进一步地,所述数据预处理模块具有标头调整功能、数据转换功能、数据压缩功能以及数据归一化功能。

进一步地,所述评估模块包括评估函数和恶意攻击分类集合,所述评估函数和所述分类集合由所述深度学习模块生成,所述分类集合描述了目标主机与恶意行为之间的联系,所述评估函数通过计算所述目标主机在所述分类集合中的权值,判定所述目标主机是否属于僵尸网络。

进一步地,所述评估函数满足以下公式:

其中h为目标主机,e(h)为评估函数,{s1,...,sn}为恶意攻击分类集合,w(si)为某种恶意攻击类型的权值函数。

本发明还提供了一种基于深度学习的加密型僵尸网络检测方法,其特征在于,包括以下主要步骤:

步骤一、由数据收集模块收集数据并标注恶意程序类型;

步骤二、由数据预处理模块,将步骤一得到的数据进行预处理;

步骤三、由深度学习模块,将步骤二得到的预处理后的数据以及步骤一得到的恶意程序类型作为训练数据,训练得到评估函数以及恶意攻击分类集合;

步骤四、由评估模块,将步骤三得到的评估函数以及恶意攻击分类集合应用到需要判定的目标主机上,判定所述目标主机是否属于僵尸网络。

进一步地,所述步骤一具体为,通过所述数据收集模块中的恶意软件分析沙盒,执行可疑程序的二进制可执行文件,收集所述可疑程序执行过程中的流量,并对流量按照恶意程序类型进行标注。

进一步地,所述步骤二具体为,通过所述数据预处理模块,将步骤一得到的数据进行标头调整、数据转换、数据压缩以及数据归一化操作。

进一步地,所述步骤三中的所述恶意攻击分类集合描述了目标主机与恶意行为之间的联系,所述评估函数通过计算所述目标主机在所述恶意分类集合中的权值,判定所述目标主机是否属于僵尸网络。

进一步地,所述评估函数满足以下公式:

其中h为目标主机,e(h)为评估函数,{s1,...,sn}为恶意攻击分类集合,w(si)为某种恶意攻击类型的权值函数。

本发明通过深度神经网络堆叠自动编码器(sae)对标有恶意特征的程序流量进行训练学习,为自动学习恶意流量的抽象特征,而无需人为选取所有特征。使得训练模效率大大提升,得出的评估函数准确率也相应提高。进一步地,本发明根据检测所得到的结果,依据目标主机包含恶意攻击的数量、同分类中其它主机与其恶意攻击种类重叠的数量以及恶意攻击类型与僵尸网络关联性大小,来判定目标主机是否属于僵尸网络。是一套完整的主机网络检测方案。

以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

附图说明

图1是本发明的一个较佳实施例的检测流程示意图;

图2是本发明的一个较佳实施例的深度学习模块采用的神经网络结构示意图。

具体实施方式

以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。

在附图中,结构相同的部件以相同数字标号表示,各处结构或功能相似的组件以相似数字标号表示。附图所示的每一组件的尺寸和厚度是任意示出的,本发明并没有限定每个组件的尺寸和厚度。为了使图示更清晰,附图中有些地方适当夸大了部件的厚度。

如图1所示,本发明是一种基于深度学习的加密型僵尸网络检测系统。包括数据收集模块1、数据预处理模块2、深度学习模块4、评估模块5。其中,评估模块5通过深度学习模块4得到的判定模型,对目标流量3进行判定,从而得到目标主机6是否属于僵尸网络的结论。

数据收集模块1为执行恶意程序来采集恶意攻击流量的样本。数据收集模块1的核心为恶意软件分析沙盒。在沙盒中执行可疑程序可以避免恶意程序直接对本机系统造成损害。通过执行可疑程序的二进制可执行文件,收集可以程序执行过程中的流量,将该流量传给数据预处理模块2,并对流量按照恶意程序类型进行标注ct,该标注将与经过预处理后的数据一起,成为深度学习模块4的训练样本。

数据预处理模块2对收集到的数据做以下一系列操作,使之成为深度学习模块4的训练样本。

移除不必要的头标:流量数据包含数据链路层的头标,对于流量特征是没有价值的信息,为了提高深度学习模块4的学习效率,首先将不必要的头标去除。

调整传输层头标:由于传输层包含tcp和udp两种协议,tcp的头标的长度为20个字节而udp为8个字节,因此在udp的头标尾部插零,使得所有传输协议的头标长度一致。

数据包位转换、压缩长度:将数据包从位转换成字节,可有效减少神经网络的输入长度,数据包长度不一致也需要补零至同一长度。

数据归一化:为了提高性能,将输入值归一化至[0,1]之间。

数据预处理模块2通过上述预处理将一条数据流量表示为一段[0,1]之间的数的序列,标记为rt,与数据收集模块1对恶意流量的标注ct匹配,将(ct,rt)作为深度学习模块4的一个训练样例。

深度学习模块4使用数据预处理模块2以及数据收集模块1结合的输入样本(ct,rt),通过深度神经网络堆叠自动编码器(sae)训练出分类模型。深度学习模块4中所使用的神经网络结构如图2所示,包括输入层41、三个隐藏层(42、43、44)以及输出层45。其中第一个隐藏层42设有200个神经元,第二个隐藏层43设有100个神经元,第三个隐藏层44设有50个神经元。每个隐藏层的神经元之间均采用全连接的方式。深度学习模块4会将输入的流量进行组合转换,并使其仍然保持原有特性。因此,隐藏层42、43、44包含流量最显著的特征。通过深度神经网络堆叠自动编码器(sae)训练,得到评估函数e(h),以及恶意攻击分类集合{s1,...,sn}。

评估模块5通过由深度学习模块4得到的评估函数e(h)与恶意攻击分类集合{s1,...,sn},对目标流量3进行评估。得到目标主机6在恶意攻击分类集合{s1,...,sn}中的分布情况,这个分布代表了主机6与其他主机在恶意行为上可能的联系。设置分类集合中的权值,可计算出评估函数值。将评估函数值与设定的阈值进行比较,从而判断目标主机6是否属于僵尸网络。

本发明的关键点之一在于评估函数e(h)的设计。评估函数e(h)的设计需要考虑三方面因素:

(1)主机h恶意攻击的数量,即包含的恶意攻击越多,为僵尸主机的可能性越大;

(2)主机h所在的分类中其他机器与其恶意攻击种类重叠的数量,即与有相同恶意攻击的主机越多,其本身为僵尸主机的可能性越大。

(3)恶意攻击类型与僵尸网络关联性大小,即使用如洪泛攻击等恶意攻击方式,为僵尸主机的可能性更大

设置主机h恶意类型集合{s1,...,sn},设置每种恶意攻击类型权值函数w(si),可以得到评估函数为:

其中h为目标主机,e(h)为评估函数,{s1,...,sn}为恶意攻击分类集合,w(si)为某种恶意攻击类型的权值函数。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

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