在t时刻状态分布表示为rt={ rt(i)},1≤i≤N,状态的分布概率公式为
然后引入一个代价向量C,代表一台主机在每个状态的安全态势值,那么,可以将主机状态的定性分析转化为定量分析。如C={1,10,20,100},表示该主机在每种状态下的风险,可以利用公式计算主机当前的安全态势值为
如果一台主机的安全态势值在1~10之间表示很可能被探测到了,在10-20之间表示已经遭受到了攻击,如果超过20表示攻击已经比较严重了。假设一个网络中有L台主机,则很容易得到整个网络的安全态势值
3.2基于约束前向后向算法的可信度估计
前向后向算法可用于在给定观察值序列的条件下计算所有可能的状态序列的概率。在CRFs中需要定义一个作相应修改的“前向变量”ai(si),递归定义如下
为了估计所识别出主机状态的可信度,对前向后向算法作如下约束:每条路径均应经过满足约束C=(st,st+1?)的子路径,其中,st∈C或者是一个正约束(该序列应该经过st),或者是一个负约束(该序列不应经过st)。在主机状态识别中,约束C对应于被识别出的主机状态,C中的正约束表示主机状态的内部状态,而负约束则主机状态的边界。在约束前向后向算法中,同样前向变量值也应该满足约束C,基于CRFs的模型,对所有的sq∈C,定义相应的约束前向变量
式中si≈sq表示s。满足约束sq,如果a’t+1(si)是一个约束前向变量,
就是约束格(1attice)的值,则对一个主机状态识别的可
信度可表示为z’0的归一化,即
4仿真实验与结果分析
实验数据采用重放Lincoln实验室的DARPA 2000数据集,CRFs模型训练和测试工具采用开源工具CRF++0.53P。
4.1评测指标
检测精度(Accuracy)=正确分类的样本数/总样本数;
精确率(Precision)=TP/(TP+FP),其中,TP表示正例被判断为正确的样本数,FP表示反例被判断为正确的样本数;
召回率(Recall)=TP/(TP+FN),其中,FⅣ表示正例被判断为错误的样本数;F值=(2×Precision×Recall)/(Precision+Reedl)。
4.2特征参数的选择
通过对DARPA 2000数据集格式的分析和网络安全威胁度算法计算得到的攻击的网络安全威胁度,在实验中主要采用了如表2所示的特征。由于网络攻击行为具有连续性,即数据的相邻状态具有相关性,因此,把CRFs模型的特征属性表示为二值特征函数的形式。
4.3特征参数的训练方法
CRFs的训练目标是在给定一个训练数据集,D={(O,l)^1,?,(0,l)^i,?,(0,l)^N}的条件下,最大化训练集的对数似然(log—likelihood)
式中的第二项是用于提供平滑处理的特征参数的高斯先验值,a^2表示先验方差。本文使用L—BFGS算法实现对目标函数的优化求解。
4.4实验结果分析
本文利用实际的IDS数据来检测本方法的有效性。Lincoln实验室的DARPA 2000数据集是在一个拥有4个c类子网的网络中采集流量得到的。这些数据已经被SnortIDS和USTAT主机IDS处理成为攻击报警数据。该数据集包含了监视子网172.16.112.0/24,172.16.113.0/24,172.16.114.0/24和
172.16.115.0/24的两台Snort IDS产生的攻击报警信息,主要攻击对象是172.116.115.20,172.16.112.50和172.16,112.10这3台主机。在处理DARPA2000数据的时候,对于同一个Signature ID的攻击,如果在一个
较短的时间内,认为其产生的威胁相同。通过重放DARPA2000报警和构造相关主
机信息,利用网络安全威胁度算法计算得到的测试结果如图1所示。
从图中可以看到,真正对网络具有很大风险的攻击数目其实很少,例如:Threat值为7的攻击仅仅有18个,达到8的只有3个,大部分是Threat为3的攻击,共有330个。但是少量的攻击对网络造成了较大的影响,例如:3个高威胁度的攻击就攻破了3台主机,因此,通过Threat值的计算,准确地发现了高风险的攻击。
使用CRFs模型对主机所处的状态进行分类。首先,按照CRF++模型工具的需要对数据进行格式化,然后,选取部分DARPA2000数据进行标注,作为CRFs模型的训练数据,把其他的数据作为测试数据进行实验。分别进行了2次实验,第1次实验选取了数据的部分特征属性进行训练和测试,选取的特征属性有:ConnTime,ServieeType,Sour.eeIP,TargetlP,Protocol,ConnCount,Threat,第2次实验使用了如表2全部的特征属性。2次实验结果如表3所示。表3
从表3中可以看出:特征属性的选取和属性相关性的设置是否恰当能够提高CRFs模型的精度,同时也表明选择的特征属性是合适的。
为了表明CRFs模型的有效性,分别用支持向量机(SVM)模型和HMM模型对相同的数据进行了测试,实验结果如表4所示。
相关推荐: