由于高级持续性威胁(Advanced Persistent Threat, APT)常用于窃取企业核心资料且带来极其恶劣的影响而引起高度关注。因为APT攻击的攻击方法是对特定的攻击目标长期进行持续性网络攻击,具有极高的隐蔽性、潜伏性等特点;所以传统检测技术无法进行有效识别。目前针对APT攻击的检测方案有沙箱方案、网络异常检测方案、全流量方案这三种检测方案,然而现有的APT攻击检测方法中存在检测准确性较低、需要大量经过标记的样本等缺点。本文提出一种基于深度学习的网络入侵检测模型(DBN-SVDD),该方法利用DBN进行结构降维、提高检测效率,再利用SVDD对数据集进行识别检测。在NSL-KDD数据集的实验结果表明,该方法的检测率可以达到93.71%。该方法具有无人监督、无需大量标记样本、可以有效处理高维数据等特点,能够有效地应用于APT攻击检测中。 Advanced Persistent Threat (APT) causes high attention for it is frequently used to steal enter-prise core data and bring about extremely harsh effects. The APT attack adopts the attack mode of persistent network attack for a long time, and it has the characteristics of high concealment and latency; therefore, the traditional detection technology cannot be effectively identified. At present, the detection scheme for APT attack has three schemes: sandbox scheme, network anomaly detection scheme and full flow scheme. However, the existing APT attack detection method has low accuracy in the detection, a need for large numbers of marked samples and other shortcomings. In this paper, a network intrusion detection model (DBN-SVDD) based on depth learning is proposed by using the network intrusion detection scheme. This method uses DBN to reduce the structure dimension and improve the detection efficiency. Then, the SVDD is used to detect the data set. The experimental results of NSL-KDD dataset show that the detection rate of this method is high; the method has unmanned supervision; and it can effectively deal with high-dimensional data and so on. It can be effectively applied to APT attack detection.
刘飞帆1,李媛1,夏飞2,周静3
1武汉大学计算机学院,湖北 武汉
2国网江苏省电力公司信息通信分公司,江苏 南京
3北京汇通金财信息科技有限公司,北京
收稿日期:2017年11月12日;录用日期:2017年11月23日;发布日期:2017年11月30日
由于高级持续性威胁(Advanced Persistent Threat, APT)常用于窃取企业核心资料且带来极其恶劣的影响而引起高度关注。因为APT攻击的攻击方法是对特定的攻击目标长期进行持续性网络攻击,具有极高的隐蔽性、潜伏性等特点;所以传统检测技术无法进行有效识别。目前针对APT攻击的检测方案有沙箱方案、网络异常检测方案、全流量方案这三种检测方案,然而现有的APT攻击检测方法中存在检测准确性较低、需要大量经过标记的样本等缺点。本文提出一种基于深度学习的网络入侵检测模型(DBN-SVDD),该方法利用DBN进行结构降维、提高检测效率,再利用SVDD对数据集进行识别检测。在NSL-KDD数据集的实验结果表明,该方法的检测率可以达到93.71%。该方法具有无人监督、无需大量标记样本、可以有效处理高维数据等特点,能够有效地应用于APT攻击检测中。
关键词 :高级持续性威胁,深度学习,数据挖掘,半监督学习方法
Copyright © 2017 by authors and beplay安卓登录
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
随着全球信息化以及网络技术的迅速发展,针对特定攻击对象的有组织的高级持续性威胁(Advanced Persistent threat, APT)日益增多,带来的后果愈发严重,许多企业甚至国家的信息安全都受到严重威胁 [
APT攻击是长期的、持续性的网络攻击,攻击行为藏匿在正常行为中难以被发觉。因此,攻击检测成为APT攻击防御工作中最关键而且最困难的部分。然而,传统的攻击检测技术无法有效处理数据量极大的数据记录集。此外,传统的攻击检测技术往往只能识别检测出较为明显的异常或攻击行为,用来检测隐匿在正常行为中的APT攻击并不能得到理想的检测结果。所以,传统的攻击检测技术大多无法有效检测APT攻击 [
深度学习模型是一种多处理层的计算模型,通过组合多层非线性的简单模块来实现多层表征学习,每层都会从上一层的简单表征里学习更抽象复杂的表征,从海量高维的原始数据中识别出复杂的模型。所以,研究人员已经开始探索深度学习在网络异常检测中的应用。
目前,利用深度学习模型 [
针对数据属性数量较多、维度较高的问题,Rubinstein等人 [
根据上述分析,本文提出一种基于半监督学习的APT攻击检测方法。首先采用无监督学习的DBN [
本文组织如下:第二部分介绍基于半监督学习的网络异常检测模型,第三部分介绍相关实验步骤及实验结果分析,第四部分对本文进行总结。
2006年Hinton等人 [
DBN是一种无监督学习的方法,目前已被建议作为一个多层次分类器和降维工具。DBN多层生成模型,学习一个层的特性与未标记的数据,后提取的特征作为输入的训练下一层。这种高效的学习可以通过微调后的权重提高整个网络的性能。该方法适用于数据量大且高维的数据集,对于APT攻击的检测具有很高的实用价值。
DBN使用未标记的数据、一次学习一层特征的多层生成模型。DBN具有对于数据量庞大的数据集执行非线性维数降低的能力和对高维流形数据的学习能力,可以使用受限玻尔兹曼机(Restricted Boltzmann Machines, RBM)以多层方式高度训练。
图1. DBN结构图
在RBM中可见单元v为表示特征,隐藏单元h学习表示特征,即它将来自维度为n的输入空间的输入向量v映射到维度为 d = | h | 的特征空间里,其中 p ( v , h ) 。给定数据集 D m × n 作为输入,RBM将其映射到 X m × d 中。在RBM中,相同级别的单元之间没有连接,即可见–可见或隐藏–隐藏连接,并且图的两层用隐藏和可见单元对之间的对称权重W连接。
在原始的玻尔兹曼机器架构中,隐藏和可见向量的联合分布 p ( v , h ) 是根据能量函数 E ( v , h ) 定义的,假设输入向量是具有方差 σ 的高斯随机变量,则该高斯伯努利RBM的能量函数 E ( v , h ) 可以被获得为:
E ( v , h ) = 1 2 ∑ i ( v i − c i ) 2 − ∑ j b j h j − ∑ i , j w i , j v i h j (1)
其中 v i 和 h j 分别是具有 W i , j 的对称权重的可见v层和隐藏h层的第i和第j个单元,以及相应的偏差 c i 和 b j ,因此 p ( v , h ) 的公式如下所示:
P ( v , h ) = e − E ( v , h ) Z (2)
其中Z是称为分区函数的归一化因子,并且计算为:
Z = ∑ v , h e − E ( v , h ) (3)
联接配置的值由相对于网络参数的值 θ = ( W , b , c ) 来确定,其中b和c分别是对隐藏层和可见层的偏差。隐含层h是二进制的,并且隐藏单元是伯努利随机变量,而输入单元可以是二进制或实值。给定二元隐藏单元 h j ,由于隐藏单元之间没有连接,所以可以直接计算条件分布 P ( h | v ) :
P ( h | v ) = ∏ j P ( h j | v ) = ∏ j s i g m ( b j + ∑ i w i , j v i ) (4)
并且类似地,由于在可见单元之间没有连接,因此:
P ( v | h ) = ∏ i P ( v i | h ) = ∏ i N ( c i + ∑ j w i , j h j , σ ) (5)
其中:
S i g m ( x ) = 1 1 + e − x (6)
是逻辑S型函数和 N ( μ , σ ) 表示具有均值 μ 和方差 σ 的高斯分布。训练RBM意味着找到参数θ的值,使得能量最小化。一种可能的方法旨在最大化由其相对于模型参数的梯度估计的v的对数似然:
∂ log p ( v ) ∂ θ = E P ( h | v ) [ ∂ E ( v , h ) ∂ θ ] − E P ( v | h ) [ ∂ E ( h , v ) ∂ θ ] (7)
由于对数似然的第二项的精确计算是难以处理的,所以可以使用称为对比度发散(CD) [
∂ log P ( v ) ∂ W i , j ≈ 〈 v i h j 〉 0 − 〈 v i h j 〉 k (8)
其中 〈 。 〉 I 表示对比发散迭代I的平均值。在训练RBM之后,另一个RBM可以堆叠在第一个RBM的顶部,即隐藏单元的推断状态 X m × d 用作用于培训新的RBM的可见单位。上层可以是伯努利伯努利RBM,其中与第一层的主要区别在于二元可见单位和能量函数 [
支持向量数据描述方法(Support Vector Data Description, SVDD)是由Tax等人结合SVM方法与最小包围球而提出的一种数据描述方法。其主要思想为在高维特征空间中找寻一个尽可能将所有训练样本都包围起来的最小超球体,并以这个最小超球体的决策边界对数据进行分类和描述。由于SVDD对异常点十分敏感,所以常常用于处理异常检测等问题,且SVDD相较于SVM而言具有训练速度快等特点。
SVDD需要在高维特征空间中找寻一个尽可能将所有训练样本都包围起来的最小超球体,实际情况下数据并不是集中分布,因此往往会引入一个松弛变量 [
min R 2 + C ( ∑ i ξ i ) K (9)
其中C为一个常数,是对错误分类样本的惩罚程度,K也是用户指定的一个常数,一般情况下K = 1,并且上述问题描述应该满足约束条件:
0 ≤ R 2 + ξ i , ξ j ≤ ( x i − a ) ( x i − a ) T (10)
a为要构造的超球体的球心向量,利用其中半径的计算公式为:
R 2 = ( x u , x u ) − 2 ∑ j = 1 n α j ( x u , x j ) + ∑ i = 1 n ∑ j = 1 n α i α j ( x i , x j ) (11)
图2为DBN-SVDD模型图,该模型图分为三部分:数据预处理、DBN训练阶段、SVDD识别检测阶段。其中数据预处理分为字符型属性映射和数据属性归一化。NSL-KDD数据集的每一条数据记录有38个数字型特征和3个字符型特征,因此需要先将字符型属性映射成数字型属性。由于数据本身的定性特征没有明显的顺序,故采用哑编码进行映射。又因为特征向量中每一个特征量纲不同,取值范围不一,所以需要对数据属性归一化。
在这里我们选择开源框架keras建立DBN网络,keras是一个高层神经网络API,keras由纯Python编写而成并基于Tensorflow、Theano以及CNTK后端。keras为支持快速实验而生,能够把你的idea迅速转换为结果。
在DBN训练阶段,得到标准数据集以后,我们使用DBN模型对其降维。低层RBM进行初步降维以后再使用高层RBM从低层RBM传来的简单表征里学习更抽象复杂的表征,并反向调整权值,提取出特征优秀的数据。再将DBN处理过的数据分为训练集和测试集,提供数据记录给SVDD进行训练和识别检测,最终得到检测结果。该攻击检测方法的具体步骤如下:
步骤1:使用哑编码做字符型属性映射
步骤2:对步骤1处理过的数据属性进行归一化
步骤3:使用keras开源框架建立DBN网络
步骤4:使用DBN网络进行降维和提取优秀的特征向量
步骤5:构建SVDD网络
步骤6:对训练集进行训练
步骤7:对测试集进行仿真和测试
该实验流程如图3所示。
本文对提出的基于半监督学习的攻击检测模型进行仿真实验。采用的数据集为NSL-KDD数据集,该数据是KDDCU99的改进版,包含了KDDTrain+、KDDTrain_20percent、KDDTest+和KDDTest-21四个子数据集,其中它们分别有125,973、25,192、22,544、11,850条数据记录。
该仿真实验在Ubuntu 6.04LTS环境下进行,使用Keras神经网络库、Sklearn机器学习包构建DBN-SVDD网络,并且使用Tensorflow 0.8作为后端计算框架,DBN层数设置为2层,低层RBM将41个特征降维成13个特征,高层RBM将13个特征价格为成5个特征。测试机的配置如表1所示。
为了评价与比较相关的攻击检测模型,本文采用的是检测率和测试时间这两个性能指标。其中检测
图2. DBN-SVDD模型图
图3. DBN-SVDD实验流程图
类别 | 参数 |
---|---|
内存容量 | 8 GB |
内存类型 | DDR4 2400 |
核心 | 四核 |
CPU类型 | Intel第七代酷睿 |
固态硬盘 | 128GB SSD |
表1. 测试机详细配置
率是指检测到的异常数据样本和实际的异常数据样本的数据比率,测试时间是指测试数据所花费的时间,该指标可以反映在实际应用中模型的运行时间。
NSL-KDD数据集的每条记录都包括了三方面的特征信息,1~9为基本信息特征,10~22为内容特征,23~31为基于时间的流量特征,32~41为基于主机的流量特征 [
由于NSL-KDD每条实验记录不仅有38个数字型属性特征,还有protocol_type、service、flag这3个字符型属性特征,其中protocol_type有3种特征值,service有70种特征值,flag有11种特征值,因此我们需要将原始记录中字符型特征进行映射转换成数字型属性。本文使用哑变量(Dummy Variables) [
由于特征向量中每一个特征量纲不同,取值范围不一,所以我们需要对每个特征向量进行标准化(Standardization or Mean Removal and Variance Scaling),变换后各维特征有0均值,单位方差。也叫z-score规范化(零均值规范化)。计算方式是将特征值减去均值,除以标准差。本文在train集上做标准化后,用同样的标准化器去标准化test集。
最后,由于该数据集的攻击主要分为四类,因此我们将数据集的类标分为5类。
在前言中已经提到解决传统机器学习面临的“维数灾难”研究人员提出了使用结构降维的方法先对数据进行降维,其中常用的三种降维方法有PCA、GAB RATB、DBN。其中文献 [
前言中我们已经简要阐述了用于网络异常检测的深度学习模型有聚类模型、DBN-SVM、DBN、SVM等,由于篇幅有限,不再对这些方法进行详细的阐述。接下来本小节将要阐述实验过程,然后给出实验结果最后分析出实验结论。
本文提出的方法与其他几种深度学习的方法的对比实验结果如表2所示,使用NSL-KDD数据进行模型训练时,K-means由于是无人监督的机器学习模型,因此所需时间短,但其检测率较低。本文提出来的方法其运行时间比DBN-SVM长0.48 s,但其准确率略胜DBN-SVM,达到93.71%的准确率。
图4. 不同数据降维方法的结果对比
Methods | Acc | Test time |
---|---|---|
DBN | 86.90% | 0.76s |
SVM | 89.25% | 32.30s |
DBN-SVM | 93.14% | 7.75s |
K-means | 71.70% | 0.51s |
DBN-SVDD | 93.71% | 8.23s |
表2. 与其他深度学习方法的结果数据比较
综上可以看出,本文提出的DBN-SVDD异常检测模型,相较于其他模型具有一定的优势,具有较强的潜力。该模型有以下几种优势:1) 该模型是一种无人监督的机器学习模型,不需要大量数据标记样本适用于检测海量的数据记录;2) 该模型具有较高的检测率,且其运行时间比有监督学习短但比无监督学习强,综合检测率和运行时间具有较为优秀的应用性能;3) 该模型适用于高维数据,具有突出的降维效果。
本文提出了一个基于DBN-SVDD的攻击检测模型,其中DBN用于特征降维和提取优秀的特征向量,SVDD是用于数据分类与检测。通过NSL-KDD数据集的实验结果表明,DBN-SVDD拥有很好的分类效果,并且对数据的降维极大地提高了测试时间。同时,DBN比PCA具有更好的性能;此外,SVDD与SVM相比也具有很好的分类效果。该攻击检测模型适用于无人监督的数据量大且具有高维特征的攻击数据检测中,且具有优异的检测效果,十分贴合对APT攻击检测模型的需求。在接下来的工作中,我们将考虑如何降低该模型的性能开销,并进一步讨论如何提高该模型的检测率。总之,该模型极大地提高了入侵检测速度且具有优秀的检测效果,是一种可行的、高效的APT攻击检测模型。
刘飞帆,李 媛,夏 飞,周 静. 一种基于DBN-SVDD的APT攻击检测方法A Method of APT Attack Detection Based on DBN-SVDD[J]. 计算机科学与应用, 2017, 07(11): 1146-1155. http://dx.doi.org/10.12677/CSA.2017.711129
https://doi.org/10.1007/978-3-662-44885-4_5
https://doi.org/10.1109/ARES.2013.32
https://doi.org/10.1007/s11227-009-0338-x
https://doi.org/10.1145/1639562.1639592
https://doi.org/10.1126/science.1127647
https://doi.org/10.1162/neco.2006.18.7.1527
https://doi.org/10.1016/j.patcog.2010.12.012
https://doi.org/10.1162/089976602760128018