赵静,谷鹏飞,何亚南,延霞
(1. 深圳信息职业技术学院计算机学院,广东 深圳 518172;2. 中广核工程有限公司 核电安全监控技术与装备国家重点实验室,广东 深圳 518000)
入侵检测[1,2]通过监控、分析网络和系统的行为来发现是否存在违反安全策略的行为和被攻击的迹象。与建立防火墙来防止攻击的被动防御方式不同,入侵检测可以提前检测出攻击行为并进行主动防御,但是这依赖于低误报率和高分类精度。入侵检测技术可以分为误用检测和异常检测[3]。传统的异常检测方法采用统计分析、机器学习等方法,使用网络数据的统计特征训练模型来区分异常行为。该方法虽然可以识别未知攻击,但是模型不够精确导致高误报率。协议异常检测[4,5]是异常检测的一个新技术,该技术根据RFC(Request For Comments)文档对协议建模,建立的模型准确度高,比传统的异常检测模型更易于建立。
条件随机场[6]在计算机视觉处理[7]、数据处理[8]和图像处理[9]等领域的序列数据分析中得到了广泛的应用,但在入侵检测领域还处于初始阶段。Gupta等人[10]研究了条件随机场,提出层次式入侵检测系统(Layer-Based Intrusion Detection System,LIDS),层次式方法极大的减少了计算成本,提高了算法的检测效率,与其它检测方法相比,对U2R类攻击的检测率提高了34.8%,对R2L类攻击的检测率提高了34.5%。Guo Yi[11]等人利用条件随机场构建了一个分类模型,该模型可以分类未标记的网络流量,以推断是否存在针对BGP会话的LDoS攻击,并达到了很好的检测效果。
本文给出了基于CRF的协议异常检测模型的训练和检测过程,旨在使用该模型区分攻击和正常网络数据,并在DARPA 1999年的数据集上进行训练和测试,最后给出结果和分析。
其中w~v表示w和v是G中的相邻节点,边集合E表示结点之间的关系,那么(X, Y)为一个条件随机场[6]。在给定观测序列X的条件下,标记序列Y的联合分布为:
公式(2)给出了CRF模型的数学表达式,从中可以看出节点i处的后验概率包含,同时利用了节点i和与i相邻节点的标记,因此CRF能够表达上下文信息。不同于马尔科夫随机场(Markov Random Field,MRF),CRF不需要考虑各个特征的分布,因此还具有利用多个特征的能力。
在协议异常检测中,将网络数据包作为观测序列X,每个数据包Xi对应一个标记yi,标记该数据包是正常还是异常,每个数据包有两个特征:Flag和Frequency,如图1所示。
图1 用条件随机场描述特征之间的关系Fig.1 Relationships between features represented by CRF
(1) 观测序列X:每个观测序列对应一个连接,序列中Xi与连接中的数据包一一对应,观测序列的长度等于所对应连接的长度N,
(3) 特征集合F:我们选取数据包的标志位和其频率分布作为特征进行建模,F=(Flag, Frequency),Flag表示数据包的标志位,,Frequency表示该标志位在所属连接中出现的频率,
特征矩阵M:M是N× 2阶的矩阵,第i行为数据包Xi的特征值,元素(i, j)表示数据包Xi的第j个特征的取值,。当yi=0时,第i行的特征值置0。
我们在实验中使用DARPA 1999数据集,首先根据端口号分离各个协议数据,然后提取网络数据包Xi首部中的标志位,并按照[12]给出的数据包首部量化方法将标志位转化为十进制数字,得到的数字为Xi的标志位特征值。然后计算该标志位在所属连接中出现的频率,作为Xi的频率分布特征值。
以FTP协议为例,图2给出FTP数据中一个连接的示例。该连接对应观测序列和标记序列,在训练阶段置yi=1。量化每个数据包首部的标志位得到标志位特征Flag=(1,3,2,6,2,2,6,6,34,2,34,2),通过计算每个标志位的频率分布,进而得到频率特征Frequency=(1,1,3,3,3,3,2,2,1,1,1,1)。
图2 FTP数据连接的示例Fig.2 An example of FTP connections
为了更好的描述标志位之间的联系,我们使用滑动窗口(ω= 7)代替连接的实际长度来计算某个标志位的出现次数,从而反映标志位的上下文信息,其中ω=7是一个完整连接的最短长度。表1给出观测序列X的特征矩阵M。
表1 观测序列X的特征矩阵Tab.1 Feature matrix M
计算CRF模型参数时,我们采取L-BFGS训练算法(Limited-memory Broyden-Fletcher-Goldfarb-Shanno, L-BFGS)[13],L-BFGS已被证明适合于处理大规模问题,因此在入侵检测中处理海量网络数据时有一定的优势。L-BFGS只要求提供似然函数的一阶导数,使用以前的梯度和修正值来近似曲率值的二阶方法。给定训练数据的一组样本集合,对数-似然函数可以表示为:
训练过程如图3所示,具体的训练算法如下:
步骤2.计算梯度向量∆θ:
如果k<K,取出一个训练序列Xk,k=k+1;否则,转(3)。
根据Xk构建CRF模型,用θ计算前向向量α和后向向量β,修正∆θ。
用公式(3)计算对数似然函数L(θ)。
图3 CRF模型的训练过程Fig.3 The training process of CRF models
步骤3.计算参数向量θ:将梯度向量∆θ和L(θ) 代入L-BFGS算法器,得到修正后的θ。当满足L-BFGS算法的停止条件或超过最大迭代次数时,转步骤4;否则转步骤2。
步骤4. 输出θ。
图4给出了具体的检测过程,包括如下五个步骤:
步骤1. 根据端口号对网络数据进行分离,得到所需的协议数据流。
步骤3. 量化连接中数据包的标志位,并计算出现频率,生成特征矩阵M。
对观测序列中每个数据包Xi,模型都给出标记Yi,因此对观测序列X对应的连接计算D':
其中n为连接中被标记为正常的数据包的个数,N为连接中数据包总数。
步骤5. 设定阈值K,比较阈值K和D'。如果,则该连接是正常的,否则是异常行为。
图4 CRF模型的检测过程Fig.4 The detection process of CRF models
我们采用DARPA 1999检测数据集对以上检测方法的性能进行了实验,用查准率(Precision),查全率(Recall),准确度(Accuracy),F度量(F-Value)和误报率作为衡量标准,并且这些衡量标准在计算时不需要考虑训练和检测数据集的大小,定义如下:
其中TN是被模型分类为正常的正常数据,TP是被模型分类为异常的异常数据,FN是被模型分类为正常的异常数据,FP是被模型分类为异常的正常数据,β用来衡量查准率和查全率,在本实验中设为1。FPR表示误报率。
表2 FTP协议的CRF模型实验结果Tab.2 The experimental results of CRF model for FTP
表2给出了FTP协议的CRF模型对不同种攻击的实验效果,其中CRF对DoS类攻击的检测效果最好,准确度达到了98.58%,查准率和查全率分别为97.86%和96.32%,F度量的值为97.08%,误报率不到1%;其次是对Probe类攻击的检测,多数衡量标准的取值都达到了90%以上,查全率89.43%,误报率达到了1.19%;CRF模型对R2L类攻击的检测率要小于其它两种攻击,误报率也达到了2.84%。R2L攻击是入侵者非法获取系统的信息,冒充有效账户进入系统的一系列行为,检测这种攻击需要同时检测数据的网络特征和主机特征,但在本实验中我们只对网络数据进行检测,因此对此类攻击的检测效果低于其它两类攻击。
表3 CRF模型的实验结果Tab.3 The experimental results for CRF models
表3给出了三种协议的CRF模型对不同种攻击的实验效果,三种CRF模型对检测数据的正确分类达到90%以上,其中FTP协议的CRF模型的准确度最高,达到97.16%;FTP协议和HTTP协议的CRF模型能够有效检测到异常数据,并且将正常数据判断为异常的情况较少,使得精确度都达到92%以上;FTP协议的CRF模型将正常数据判断为异常的情况最少,误报率是1.5%,该模型对异常数据的正确判断能力也要高于其它两种模型,查全率达到92.22%;HTTP协议和SSH协议的CRF模型虽然准确度都达到90%以上,但是误报率也超过了8%,说明模型对正常数据的分类能力要低于FTP协议的CRF模型。总之,FTP协议的CRF模型的性能要高于其它两种协议的模型。因为在训练和检测数据集中,FTP协议数据最多,包含的攻击数据在种类和数量上也高于其它两种协议数据,因此在训练和检测时,FTP协议的CRF模型的各种性能普遍高于其它两种协议。
表4 CRF模型和HMM的检测率Tab.4 The detection rate for the two detection models
表4给出了三种协议的CRF模型和HMM模型的检测率,从中可以看出,三种协议的CRF模型的检测率都要高于HMM模型的检测率。在训练HMM模型时,对于FTP协议HMM只需模拟1,2,3,6,34这五个可见状态,而建立HTTP协议和SSH协议的HMM模型时则分别增加可见状态8(RST)和38(FIN+PSH+ACK),但是这两个状态在连接中出现概率远远小于其它几个状态,所以HMM模型准确性也随之降低。这导致了FTP协议的HMM模型的检测率要高于其它两种协议。
图5 一个HTTP协议的连接示例Fig. 5 An example of HTTP connections
图5所示给出了训练数据中一个HTTP协议的连接片段,对应的标志位特征序列为(SYN,ACK+PSH, ACK, ACK+FIN)和(SYN, ACK, RST, ACK,ACK+FIN)。为便于解释,设状态1,状态2,状态3和状态4为中间状态(实际上并不存在)。从SYN通过ACK可到达状态1和状态2,那么P(1|ACK, SYN)= P(2|ACK, SYN) = 0.5。状态转移到1或2时,因为训练数据中出现过多次ACK+PSH,RST很少出现,那么在HMM中从状态2转移到状态4的概率要远远大于从状态1转移到状态3的概率。而且HMM为有向图模型,在用Viterbi算法推导到当前状态为止的最佳路径时,不考虑之后的状态及其标记概率。但CRF模型有效利用多个特征,同时考虑标志位特征和其出现频率,并加入远距离约束,避免了HMM的独立性假设;采用无向图模型,对整个标记序列求解联合概率,在整个序列范围内归一化,较HMM具有更合理的数学理论基础,同时也避免了因求解局部观察值概率所带来的标记偏置问题。
本文介绍了条件随机场的基本概念和原理,提出一种基于条件随机场的协议异常检测模型。这种方法将连接中的数据包作为观测序列,量化数据包首部的标志位,计算标志位在连接中的出现频率作为观测序列的两个特征,模型的训练和检测使用DARPA 1999年的数据集,实验结果验证了所建立模型的准确性,同基于隐马尔科夫模型的检测方法相比,提出的方法在各个衡量标准上都要高于后者。