3.2 基于HMM的安全态势评估模型
一般情况下,网络攻击通常由多个步骤组成,而且下一个攻击步骤的实施仅依赖前一个攻击步骤的结果,这与HMM中的状态转移特性相对应。
当攻击者进行某步攻击时,必会产生相应的报警事件,不同的攻击步骤产生的报警事件之间是相互独立的,这与HMM中状态所产生的观察符号相对应,HMM中不同状态产生的观察符号是相互独立的。
由上面的分析可知,网络攻击可以采用HMM进行刻画,每个攻击步骤对应HMM的状态,攻击步骤的转移对应状态的转换,而攻击的检测结果,即报警事件则对应于HMM中的可观察符号。由此可见,可以采用HMM来描述网络系统受到攻击后的状态转换过程,并通过可观察的参量(观察符号)对其安全状态进行评价。
网络系统是由各种计算机组成的集合体,计算机是网络系统中最重要的资产。下面首先建立各个计算机系统(简称为主机)的安全态势Markov模型,然后根据各个主机的风险状况给出网络系统风险状态的定量评价。
1.HMM中的状态分别对应主机中的安全状态
假定主机有N种不同的安全状态,则HMM的状态集合为S={S1,S2,…,SN},Si描述主机的某一安全状态。随着时间的推移,主机的状态会不断发生变化,这一变化过程可用状态序列Q={q1,q2,…,qT}来描述。
2.HMM中的观察符号分别对应每个报警事件
假定安全检测系统产生M种不同的报警事件,则HMM的观察符号集合为V={v1,v2,…,vM},其中vk对应第k个报警事件。与状态序列变化相对应的即为观察符号序列,可表示为O={O1,O2,…,OT},Oi∈V。
从以上描述可以看出,HMM内在地刻画了主机的安全状态。对于管理人员,他无法直接得到系统的安全状态,唯一可以看到的是产生的各种报警事件(HMM的观察符号),即只有通过报警事件才能推断出系统所处的安全状态。而HMM内在的隐含状态及外在的观察符号,完全彻底地模拟了这一过程。
假设规定每个主机有四种安全状态,如表3.3所示。由此设主机的状态S={N,P,A,C},分别对应上述四种状态,任意时刻某一主机可能处于其中状态之一,而且任何两个状态之间都可以直接相互转换,各个状态间转换的可能性由状态概率矩阵来描述。
表3.3 主机安全状态集
系统评估模型如图3.4所示。
为了构造HMM模型,定义三元组(TranPar,ObsPar,PiPar),其中:
TranPar是对象状态转移概率分布矩阵,可记为:
PiPar为网络的初始安全状态概率分布,记为:
ObsPar为观测矩阵,记为:
图3.4 安全态势的HMM模型
有几种方法估计实际对象的矩阵TranPar和ObsPar。
(1)参考安全专家意见。
(2)使用已有产品或实验系统中的统计数据结果。
(3)使用学习算法训练模型,如EM算法等。
其中学习算法能更好地估计矩阵TranPar,其自适应性能也更佳。初始状态的分布可以使用已有的安全评估方法获得,比如定期的安全扫描等方式获得。
如果安全状态的HMM模型已经定义好,则根据给定的网络攻击序列Y={y1,y2,…,yT}和HMM的参数,就可以计算出当前主机处于各种安全状态的概率分布。记t时刻安全状态分布为:
且满足:=1,1≤t≤T。
根据隐马尔可夫模型可以计算出主机安全状态的概率分布,从而判断主机在某一个时刻最可能处在哪个安全状态下。为了表达直观,将安全状态由定性描述转变为定量描述,引入“风险代价”的概念,它表示每台/每类主机处在某个状态下的风险代价。记为C={CN,CP,CA,CC}={c1,c2,c3,c4}。例如C={10,15,25,50},表明如果一台主机的风险值在1到10之间表示很可能被探测到了,在10到15之间表示已经遭受到了攻击,如果超过25表示攻击已经比较严重了,如果风险值超过50表示已经被攻克了,由本例可知,可以将主机状态的定性分析转化为定量分析。在当前主机处于各种安全状态的概率分布已知的情况下,可利用下列公式计算主机当前风险值:
对于预测序列O1O2…OT作为HMM模型的输入,可以计算出t时刻的主机风险值,从而可以得到时间1-T间的全部量化后的风险值序列:
如果一个网络中有多主机,可以通过主机风险的累加得到整个网络的风险值:
将网络风险视为主机风险的累积结果的计算方法能较好地反映主机风险的变化对整体网络安全态势变化的影响。也可以考虑更多的因素来计算整体的网络风险值,例如网络拓扑、主机之间的依赖关系、风险传播模型等,本章没有讨论这些问题。
通过下列公式可以计算网络的平均风险值: