APP下载

基于隐马尔科夫模型的信息安全评估*

2020-07-19谭平嶂滕鹏国

通信技术 2020年6期
关键词:信息系统概率观测

谭平嶂,滕鹏国,李 丹

(中国电子科技集团公司第三十研究所,四川 成都 610041)

0 引言

随着信息技术的发展和网络的普及,越来越多的信息系统联入网络,为人们的生产生活带来了极大便利,同时也扩大了信息系统和信息的安全风险。随着信息系统能力和复杂程度的提高,各种网络威胁日新月异,安全威胁的形态也逐步向广域化、组织化及复杂化的特点发展演进[1-2]。在网络高度发展,联通能力不成为障碍的情况下,信息安全成为制约信息化的主要瓶颈。对系统安全性的担忧,直接影响了一些业务的网上运营和数据共享。

由于网络攻击事件层出不穷,信息系统的管理者和维护者逐步建立了风险意识和安全防范意识。因此,在一些重点领域的信息化建设中,人们往往投入大量资金开展网络和系统安全防护建设[3-4],但是仍然对系统的安全性感觉“不托底”。对安全的主要困惑体现于如下4 个方面。

(1)虽然系统中已经采用了很多防控措施,并部署了很多安全防护设备,但是仍不能确定系统是否足够安全,是否有效解决了安全问题,是否存在遗漏或安全死角,以及如何更有效地确保系统安全性。

(2)当前系统的配置和部署,能够在何种程度上保护系统的安全,不清楚系统安全防护强度有多大以及需要多大。

(3)安全防护系统运行中,面临威胁攻击时,众多安全防护设备如防病毒、主机监控、IDS 等上报了很多告警信息,但无法确定威胁攻击的严重程度,对整个系统的正常运行影响有多大,带来的安全风险又有多大,当前的安全防护体系是否能够有效抵御,是否需要采取应急措施。

(4)如何进行安全风险定位,若感觉系统运行不正常如何界定威胁的影响范围。在大量的告警、日志等信息中,很难进行高效准确的风险定位和影响因素的关联性分析,从而难以对威胁攻击进行及时有效的防范和处理。

针对信息系统的拥有者而言,上述困惑的本质在于安全性是系统内在的一个较为抽象的概念,也是一个和网络威胁对抗相对的概念。组成安全性的要素往往不能够直接测量或采集,安全性评估与通过信息系统或安全防护设备采集的指标往往脱节。例如:安全防护装备采集的告警信息一般是网络攻击的直接特征信息,但不能直接反应系统的安全状态以及判断能否抵御当前的攻击。同时,安全性涵盖系统组成和运用模式当中多种要素的叠加,单一指标难以判定系统整体的安全性。因此,引入隐马尔科夫模型,通过打通可测量指标与系统安全性之间的联系,建立一个信息安全风险的评估体系,对系统的安全性进行整体描述,帮助信息系统的拥有者和管理者能够整体评估当前系统的安全性。

1 隐马尔科夫模型的描述

隐马尔科夫模型(Hidden Markov Model,HMM)简称HMM 模型[5-7],是通过观测值求解隐藏状态变化的模型,通过双重的随机模型描述状态与观测值对应关系。在隐马尔可夫模型中,隐藏状态虽不直接可见,但影响状态的某些变量则是可见的。由于每一个状态在可能输出的符号上都有概率分布,从而可以建立隐藏状态和观察值的统计模型,通过可观测到的数据,预测不可观测到的数据。

假定系统有一个状态值序列X={x1,x2,x3,x4,x5,…,xt},其观测值序列为Y={y1,y2,y3,y4,y5,…,yt}。在每个时间点上观测到的情况仅仅和当前的隐藏状态变量有关(即y1和x1相关,y2和x2相关,…),而隐藏状态变量X是无法观测的,这就是HMM 模型,如图1 所示。

图1 隐马尔科夫模型

假定其中隐藏状态变量序列X具有N种取值,表明该系统具有N个状态,状态集合S记为S={s1,s2,s3,…,sN}。观测值Y具有M种取值,表明该系统观测值有M个取值,观测值集合O记为O={o1,o2,o3,…,oM}。

一个HMM 模型一般由3 个部分组成,记为λ={A,B,Π}

(1)状态转移概率矩阵A维度为N×N可表示为任意两个状态之间转移概率形成的矩阵,记为A={aij},或者:

aij表示序列X从状态si转移到sj的概率,其中:

(2)观测概率矩阵B维度为N×M表示发射概率及每个状态下观测值的概率,记为B={bi(k)}。bi(k)表示序列Y在状态si时观测值ok的概率,其中:

(3)初始状态概率向量Π,维度为N×1。记为Π={πi},πi表示初始时状态为si的概率,其中:

从隐马尔科夫模型定义中可以看出,该模型中通过状态转移矩阵描述了隐藏状态变量之间的转移概率,通过观测矩阵描述了系统内部状态与外部观测值之间的对应概率。结合初始状态概率,能够计算出各种内部状态序列出现的概率以及各状态与观测值之间的关系。在安全性评估中,由于安全状态是内在的、无法读取的,而人们感兴趣的是如何通过能够观测的数据计算出信息系统当前的安全状态。因此,可以将安全状态抽象为系统的状态序列,将信息系统和安全防护设备的一些采样读数作为观测序列,从而建立一个隐马尔科夫模型,通过观测序列计算隐藏状态序列出现的概率,从而实现对系统安全状态的评估。

2 安全评估模型的建立

对信息系统进行安全性评估和安全建设时,针对信息系统的安全性,需要具有以下的认识。

(1)安全性是有条件的,是信息系统在一定条件下对任意可能攻击破坏承受能力的总和。任何信息系统在安全建设或管理中需要接受信息安全的不完备。

(2)安全性是相对的,是攻防双方博弈对抗的综合结果,没有100%安全。对于一个信息系统而言,不可能解决完所有的安全威胁后系统再开始运行。安全的规划和建设需要与系统运用效率取得平衡。

(3)风险是永远存在的。在信息系统业务运行过程中,安全风险始终如影随形。安全运维保障处理威胁攻击不能频繁打断业务的正常运行,需要在系统运行中对各类攻击具有一定的容忍度。

因此,信息系统安全评估是系统建设的重要组成部分。通过对信息系统安全状态的实时评估,能够及时掌握系统的安全状态和面临的危险程度,通过调整防控策略最大限度降低系统风险,保障系统正常运行。信息安全评估的内容与方法有别于一般传统领域,需要在信息攻防对抗实践过程中逐步确立、发展和完善。一个静态的模型不足以支持对发展变化的网络威胁进行持续跟踪,因此建立的评估模型需要具备动态自适应的特性。实践中采用HMM模型描述系统安全状态与观测值的映射关系,通过机器学习对模型中的参数进行训练不断迭代更新参数,使得评估模型逐步完善,并能够适应外部环境的不断变化。

假定一个HMM 模型为λ={A,B,Π},在安全评估前先要通过参数确定来完成模型的建立。

2.1 隐藏状态变量取值范围的设置

首先从系统安全性的角度建立系统的状态取值范围。这些状态值的设定应该都能够反映当前系统安全的内在状态。由于信息系统是由各个组件以及组件之间的不同联结方式共同组成,因此信息系统存在的安全风险不仅与组件有关,还受组件之间联结的影响,同时各状态之间能够进行相互转化。这里从系统本身的安全属性来定义状态的取值范围。选择的状态取值范围应是表示系统的主要安全状态,而过多的状态设定会造成评估的计算量过大。因此,可设置隐藏状态变量取值范围S={s1,s2,s3,…,sN},定义的状态值说明如表1 所示。

表1 隐藏状态变量取值范围状态值说明

2.2 观测值取值范围的设置

观测值是能够在系统中直接读取的、确定的信息。在安全评估中,可以采用系统中部署的安全防护装备的告警信息、日志以及信息系统自身的管理运维日志等进行表示。具体的采集信息由系统建设中安全防护系统的部署与安全策略的配置情况决定。常用观测值读取的类型主要包括防火墙类设备、入侵检测类设备、防病毒软件、主机监控软件、服务器的系统日志、核心业务软件工作日志以及云平台的运行日志等。在安全防护的评估中,任意一种单一设备的信息是无法完整反映整个系统的安全性,需要通过对多个设备信息的采集反映安全状态的变化。每个设备产生的信息都是各自独立的,形成多个随机序列,因此通过将每个设备的观测值作为一组观测序列形成多个评估模型,逐一采样计算后对结果进行综合再得到最后的安全性评估结果。假定有v个设备作为观测序列采集对象,每个采集对象的观测值有M个不同的观测值,记为:

2.3 评估模型参数的确定

不同系统面临的环境不同,各状态之间的转移概率是没有固定的经验值确定的,而隐藏状态与观测值之间的发射概率也不完全相同。因此,状态转移矩阵和观测概率矩阵需要每个系统单独动态构建,并通过机器学习的方式对其进行持续修正,以达到最佳效果。

如果得到多组足够长的隐藏状态、观测值序列{(x1,y1),(x2,y2),…,(xD,yD)},就可以使用最大似然来求解模型参数。但是,实际上状态信息X是隐藏状态变量,不能够直接得到状态序列,往往只能够得到观测序列Y。因此,需要从多组可观测序列中求出合适的状态序列分布。通常采用期望最大化算法(Expectation-Maximum,EM)通过观测序列得出HMM 模型的模型参数。

EM 算法使用启发式迭代方法,首先猜想或随机化模型中的参数(EM 算法的E 步),即随机初始化当前模型参数为λ*,其中λ={A,B,Π}。随后基于观测数据和隐藏数据一起进行极大化对数似然,求解模型参数(EM 算法的M 步),得到更新的模型参数λ。

联合分布P(Y,X|λ)基于条件概率P(X|Y,λ*)的期望表达式为:

极大化式(6),然后得到更新后的模型参数如下:

然后进行多轮的E 步和M 步的迭代,直到模型λ的参数值收敛为止。通过多次迭代学习,确认了模型λ的参数,即表明建立了内部安全状态与外部观测值的关系,从而能够通过观测值序列得出系统安全状态的最大可能性。

EM 算法的求解涉及到迭代,还需要前向算法和后向算法两个基础的算法,用来求HMM 观测序列的概率。前向算法本质上属于动态规划的算法,即通过找到局部状态递推的公式,一步步从子问题的最优解拓展到整个问题的最优解。

(1)前向概率

在前向算法中,需要通过定义“前向概率”来定义动态规划的这个局部状态。前向概率是指设定某时刻t隐藏状态为si,观测状态序列为o1,o2,o3,…,ot的概率,记为at(i):

从而:

(2)后向概率

假定当时刻t隐藏状态为si,时刻t+1 隐藏状态为sj时,出现观测状态的序列为ot+2,ot+3,…,oT的概率为βt+1(j)。那么,在时刻t+1 隐藏状态为sj,观测状态的序列为ot+2,ot+3,…,oT的概率为aijβt+1(j)随后可得到时刻t隐藏状态为si时刻t+1 隐藏状态为sj时,出现观测状态的序列为ot+1,ot+2,…,oT的概率为aijbj(ot+1)βt+1(j)。把所有对应的概率加起来,可以得到观测状态的序列为ot+1,ot+2,…,oT。t时刻隐藏状态为si的后向概率记为βt(i):

(3)已知模型参数下,根据观测序列预测某时刻下特定状态的概率

对于确定的模型λ和观测序列O,在时刻t时处于状态si的概率γt(i)记为:

利用前向概率和后向概率的定义,可知:

(4)已知模型参数下,根据观测值和上一时刻预测下一时刻特定状态的概率

在时刻t处于状态si且时刻t+1 处于状态sj的概率记为:

在模型建立参数求解过程中,如果有D组长度为T的观测序列,即{Y1,Y2,…,YD}是已知的,根据EM 算法迭代计算每组训练数据产生的参数如下:

通过式(15)、式(16)和式(17)确定了模型的参数,就能够根据在安全防护设备或信息系统上获取的信息生成观测序列,通过这些观测序列计算出系统的状态序列。

3 安全状态的评估

在系统内部安全状态的评估中,通过机器学习确定模型参数,并且在获取观测值后,能对系统内部的安全状态进行评估。当已知模型λ={A,B,Π}和观测序列O={o1,o2,…,oT},求给定观测序列O条件下最可能出现的对应状态序列,要最大化即P(S*|O,λ)最大。

在HMM模型中一般采用维特比算法求解预测值。由于维特比算法是动态规划算法,因此需要找到合适的局部状态和局部状态的递推公式。在HMM 中,维特比算法定义了两个局部状态用于递推。

第一个局部状态是在时刻t隐藏状态为s所有可能的状态转移路径s1,s2,…,st中的概率最大值,记为δt(i):

第二个局部状态定义在时刻t隐藏状态为s的所有单个状态转移路径中概率最大的转移路径中第t-1 个节点的隐藏状态为Ψt(i)其递推表达式可以表示为:

有了这两个局部状态,可以从时刻0 一直递推到时刻T,直到找到最优的隐藏状态序列。计算时刻T最大的δt(i)即为最可能隐藏状态序列出现的概率。计算时刻T最大的Ψt(i),即为时刻T最可能的隐藏状态。

利用局部状态Ψ(i) 开始回溯。对于t=T-1,T-2,…,1:st=最终得到最有可能的隐藏状态序列。

针对每一种相关设备的观测值可以通过式(21)和式(22)得出隐藏的安全状态序列出现概率。但是,在一个系统中往往有多个安全防护设备协作,任一设备上报的告警和日志信息都不能完全覆盖整个系统的安全状态,因此需要将多个安全防护设备或者信息设备的运行日志作为不同的观测序列进行综合来判定系统实际的安全性。通过对每个观测序列引发的状态序列概率进行记录,得到最大可能概率的安全状态序列,最终形成综合的安全评估。

其中,K为各独立观测序列的数量。

4 结语

本文通过引入隐马尔科夫模型,建立了一种通用的信息系统安全的评估方法。该方法将信息系统的安全状态作为隐藏状态变量,将各安全防护设备或者信息系统的运行状态、日志等作为可观测序列,通过多次迭代学习建立了隐藏状态变量和观测值的映射关系,实现通过观测值来评估系统的状态。由于观测值不止一个序列,因此最终的评估结果是将多个观测值对应的状态序列进行综合实现。本文重点是介绍隐马尔科夫模型在信息安全中的评估方法应用和计算方法,对隐马尔科夫模型的数学原理未作详细描述,需要了解详细推导过程可详见参考文献的相关内容。

猜你喜欢

信息系统概率观测
第6讲 “统计与概率”复习精讲
企业信息系统安全防护
第6讲 “统计与概率”复习精讲
概率与统计(一)
概率与统计(二)
天文动手做——观测活动(21) 软件模拟观测星空
基于区块链的通航维护信息系统研究
信息系统审计中计算机审计的应用
2018年18个值得观测的营销趋势
可观测宇宙