APP下载

基于贝叶斯攻击图的网络安全风险评估方法

2018-09-06王增光李进东

装甲兵工程学院学报 2018年3期
关键词:贝叶斯攻击者静态

王增光, 卢 昱, 李进东

(1. 陆军工程大学石家庄校区装备指挥与管理系, 河北 石家庄 050003; 2. 69225部队, 新疆 和静 841300 )

随着信息技术的不断发展,网络攻击手段日益多样化,各种安全问题层出不穷,如何确保网络安全是当前备受关注的问题。传统基于检测的网络安全防护手段仅能在攻击发生后进行被动防御,无法从根源上解决网络安全问题[1]。网络安全风险评估能够主动评估目标网络中的安全风险和安全威胁,为实施网络安全防护提供有力保障[2]。

为了准确评估网络中的安全风险,学者们基于不同的理论对网络安全风险评估方法进行了研究:鲁颖欣等[3]通过模糊隶属度理论选取网络脆弱性指标,实现了对网络安全风险的定量评估,但在评估过程中没有考虑网络攻击行为;谢丽霞等[4]在考虑网络攻击行为的情况下,提出了基于攻击图的网络安全风险评估方法,但在评估过程中没有考虑攻击者的攻击意图;马春光等[5]将攻击意愿融入到贝叶斯攻击图的动态推理模型中,通过攻击意愿的计算解决了评估过程中攻击路径选择的问题,但在计算网络节点概率时只考虑了属性节点存在“与”的情况,与网络实际运行情况不符。

以上网络安全风险评估方法在一定程度上解决了网络安全风险量化评估的问题,但存在评估过程中考虑网络实际运行情况不全面的问题。为此,笔者在前人研究工作的基础上,提出一种基于贝叶斯攻击图的网络安全风险评估方法,为网络安全风险评估研究提供一种新的思路。

1 贝叶斯攻击图建模

攻击图可以分为状态攻击图和属性攻击图2种。属性攻击图能够从攻击者的角度展示网络受到组合攻击的情况,能够避免状态攻击图研究过程中的状态爆炸问题[6]。因此,本文将贝叶斯理论与属性攻击图相结合,形成贝叶斯攻击图对目标网络进行建模。

贝叶斯攻击图是一个无环有向图,可以定义为一个七元组BAG=(S,A,E,T,∂,P1,P2),具体如下:

1)S=Sextenal∪Sinternal∪Sterminal,为贝叶斯攻击图中节点属性的集合。其中:Sextenal={Sj∈S|∃Si∈S,P(Si,Sj)>0},为外部攻击者攻击起始属性状态节点的集合,P(Si,Sj)为节点属性Si成功转移到节点属性Sj的概率;Sinternal={Sj∈S|∃Si,Sk∈S,P(Si,Sj)>0∧P(Sj,Sk)>0},为攻击过程中属性状态节点的集合;Sterminal={Si∈S|∃Sj∈S,P(Si,Sj)>0},为最终攻击目标的最终属性状态节点的集合。节点属性的取值具有二态性,即Si的取值为0或1:当Si=0时,表示攻击者不具备某种攻击资源或访问权限;当Si=1时,表示攻击者具备某种攻击资源或访问权限。

2)A={Ai|i=1,2,…,n},为攻击图中原子攻击的集合。原子攻击反映了资源属性之间的关系,是指利用网络漏洞从前驱节点属性状态Spre成功进入后继节点属性状态Snext的转移方式。

3)E={Ei|i=1,2,…,n},且Ei∈(Spre,Snext),为攻击者所选择的攻击策略,对应攻击图中边的集合。

4)T表示属性状态节点与父节点之间的关系。根据网络运行的实际情况,父子节点之间的依赖关系可以分为AND和OR两种,如图1所示[7]。

5) ∂为攻击者的攻击意图,用于表示攻击者选择某种攻击策略的可能性。

6)P1为攻击图中节点属性的先验概率,每个节点属性的先验概率可以通过当前节点与其父节点的条件概率之积进行计算。

7)P2为攻击图中节点属性的后验概率。

2 贝叶斯攻击图中概率计算

2.1 原子攻击成功的概率

原子攻击成功的可能性与进行原子攻击时漏洞被利用的难易程度有关。原子攻击成功的概率可以通过漏洞被成功利用的概率来体现,一般采用美国标准与技术研究院提供的漏洞评分系统(Common Vulnerability Scoring System,CVSS)来进行量化,主要依据攻击途径(Access Vector,AV)、攻击复杂度(Access Complexity,AC)和身份认证(AUthentication,AU)3个方面来实现[8]。根据CVSS评分体系,原子攻击成功的概率P(Ei)定义如下:

P(Ei)=PAV×PAC×PAU。

(1)

式中:PAV、PAC、PAU分别为AV、AC、AU评分值。

2.2 攻击意图的量化

在对目标网络进行攻击时,不同攻击方式所获得的攻击收益具有很大的差别。因此,在攻击者完全理性的情况下,总会选择最有利的攻击方式对目标网络实施攻击[5,9]。攻击者的攻击意图∂(Ei)可以通过所选择的攻击策略Ei面临的攻击压力Apress(Ei)和获得的攻击收益Aprofit(Ei)来体现。

Apress(Ei)是指攻击者执行攻击策略Ei进行一次原子攻击时所面临的风险,主要包括执行攻击策略所付出的代价和成本2个方面。其中:执行攻击策略所付出的代价与原子攻击本身的价值和攻击损失有关;执行攻击策略的成本与执行攻击时的操作代价和攻击执行成功所需的时间有关。以上影响攻击代价和成本的因素统称为攻击压力影响因子,其量化可以参照CVSS中对弱点的量化标准进行。根据攻击压力影响因子所处的等级以及对应的权值进行综合,最终得到攻击压力的量化值。

Aprofit(Ei)是指执行一次攻击策略Ei所获得的收益。攻击收益只与执行完攻击策略后的最终状态有关,并不能重复获得相同的攻击收益。根据网络的实际运行情况,对执行完攻击策略后的最终状态进行分级,形成具有偏序关系的不同等级,结合专家意见,对每个等级赋予不同的权值,该值即为攻击者能获得的终态属性所对应的收益。

攻击者的攻击意图可以通过攻击压力与攻击成功情况下获得收益的比值来体现,比值越大,则该策略被执行的可能性越小;反之,则该策略被执行的可能性越大。综上所述,攻击策略的压力与收益比值λ定义如下:

(2)

攻击者以攻击策略Ei进行攻击的攻击意图∂(Ei)定义如下:

(3)

当∂(Ei)=0时,攻击压力不小于攻击成功所获得的收益,攻击者不可能选择该攻击策略;当∂(Ei)=1时,攻击压力为0,即攻击者执行该攻击策略时不会带来任何攻击损失,则攻击者应优先选择该攻击策略;当0<∂(Ei)<1时,攻击者会选择攻击意图较大的攻击策略。

2.3 局部条件概率

局部条件概率体现了某个属性状态节点受到攻击威胁的可能性,与其父节点到该节点的原子攻击有关。攻击者采用攻击策略Ei由父节点向子节点进行攻击时,状态成功发生转移的概率Pstatus(Ei)与攻击者的攻击意图∂(Ei)和原子攻击成功的概率P(Ei)有关,即

Pstatus(Ei)=P(Ei)×∂(Ei)。

(4)

Par(Sj)表示属性节点Sj的父节点集合,根据父子节点的依赖关系不同,局部条件概率的计算可以分为以下2种情况:

1) 当父子节点的依赖关系为AND时,

(5)

2) 当父子节点的依赖关系为OR时,

(6)

2.4 先验概率

为了准确地评估网络的安全状况,需要求出贝叶斯攻击图中各个属性状态节点的可达概率,即根据父节点的情况推算出子节点的先验概率。先验概率的计算主要用于网络风险的静态评估。对于∀Sj∈Sinternal∪Sterminal,节点Sj的先验概率

(7)

2.5 后验概率

在贝叶斯攻击图中,结合入侵检测系统检测到的攻击事件,属性节点可以分为证据集和更新集2类。证据集表示已被检测到的被攻陷的属性状态集,即Sevidence={Si∈S|Si=1};更新集表示需要基于贝叶斯推理公式进行更新的属性状态集,即Supdate=S-Sevidence。对于∀Sk∈Supdate,Sm∈Sevidence,更新集中属性状态节点的可达概率通过

(8)

进行更新。其中,

(9)

(10)

3 基于贝叶斯攻击图的风险评估

基于贝叶斯攻击图的风险评估的总体架构如图2所示,主要包括静态风险评估和动态风险评估2部分。在静态风险评估中,根据目标网络的实际情况,生成初始攻击图,而后根据原子攻击成功的概率和攻击者的攻击意图来计算属性状态节点的状态转移概率,结合属性状态节点的父子节点的关系,通过先验概率评估目标网络的静态安全风险。在静态风险评估的基础上,通过后验概率对静态贝叶斯攻击图中的属性状态进行更新,从而实现动态风险评估。

3.1 静态风险评估

静态风险评估是对目标网络的潜在风险进行评估,一般适用于未投入使用的网络系统,算法1展示了其攻击图生成过程。

算法1:SRAM_BAI(AG,q)。

输入:攻击图AG=(S,A,E,T),攻击图中初始节点S1的先验概率q根据专家意见进行赋值。

输出:静态风险评估攻击图SBAI=(S,A,E,T,P1)。

Step1:初始化静态风险评估攻击图SBAI中的参数;将攻击图AG中属性节点、攻击节点、边及其关系复制到静态风险评估攻击图SBAI中。

Step2:利用式(1)计算SBAI中每条边对应的原子攻击成功的概率P(Ei),根据式(2)、(3)计算攻击者的攻击意图∂(Ei)。

Step3:对于SBAI中的每个节点,当节点为攻击初始节点时,P(S1=1)=q或P(S1=0)=1-q;当节点为其他节点时,通过式(4)计算基于攻击策略Ei进行攻击时的状态转移概率Pstatus(Ei)。

Step4:根据状态转移概率,结合父子节点的依赖关系,计算节点的局部条件概率,当父子节点的依赖关系为AND时,利用式(5)进行计算;当父子节点的依赖关系为OR时,利用式(6)进行计算。

Step5:利用式(7)计算属性节点Sj的先验概率P(Sj),并复制到P1中。

Step6:重复Step1-5,直至得到完整的攻击图。

3.2 动态风险评估

在实际运行的网络系统中,网络的安全条件和安全因素随着时间的推移会不断发生变化。因此,在对其进行网络安全风险评估时,必须考虑到网络中的动态因素[10]。在这种情形下,基于先验概率的风险评估的准确性会降低。因此,需要对静态贝叶斯攻击图中属性状态节点的可达概率进行更新,以便更加准确地评估动态条件下的网络安全风险。算法2展示了动态攻击图的生成过程。

算法2:DRAM_BAI(SBAI)。

输入:静态风险评估攻击图SBAI=(S,A,E,T,P1)。

输出:动态风险评估的贝叶斯攻击图DBAI=(S,A,E,T,P1,P2)。

Step1:初始化动态风险评估攻击图DBAI中的参数,将静态风险评估攻击图SBAI中属性节点、攻击节点、边及其关系、先验概率复制到动态风险评估攻击图DBAI中。

Step2:结合检测到的某次攻击事件,找出静态风险评估攻击图中属性状态为0的所有属性节点,即筛选出贝叶斯攻击图中的更新集。

Step3:对于静态风险评估攻击图中的每个属性节点Sj,如果该节点没有父节点,则P(Sj)=1,由此找出静态风险评估攻击图中属性状态为1的所有属性节点。

Step4:对于属性节点Sj的父节点Sk∈Par(Sj),当Sk的属性状态为0时,通过式(8)对Sk的可达概率进行更新,并将计算结果复制到P2中,将Sk的属性状态更新为1,重复此步骤,直至每个父节点的属性状态为1。

Step5:将Sk从父节点集合Par(Sj)中移出,并作为子节点,重复Step4对Sk的父节点进行属性状态更新。

Step6:更新父节点集合Par(Sj),直至计算到根父节点。

Step7:对于更新集中的每个属性节点,重复Step3-6,对静态风险评估攻击图进行更新。

Step8:重复Step2-7,结合不同的攻击事件,达到实时评估网络安全风险的目的。

4 试验验证

4.1 试验网络场景

笔者通过搭建简单的试验网络场景来验证本文方法的可行性,网络拓扑结构如图3所示。该网络中包含了Internet区域、内网和隔离区3个部分,其中:内网由FTP服务器、数据库服务器和工作站组成;隔离区由邮件服务器和Web服务器组成;外网中攻击者通过Internet试图访问内网和隔离区。

采用OVAL漏洞扫描器对试验网络中节点进行漏洞扫描,同时结合CVSS评估系统对节点中漏洞被成功利用的概率进行计算;采用MulVAL工具生成攻击图,将网络中所有的漏洞信息、漏洞之间的关联关系、网络的连通性和配置情况等信息输入到MulVAL工具中,通过AttackGraph.pdf文件输出攻击图。试验网络的攻击图如图4所示,由攻击者、属性节点和攻击方式组成。

攻击图中各个节点的语义如表1所示。其中:Hasprivilege(192.168.1.70,user)表示攻击者具有192.168.1.70上的user权限;Vulnerability(192.168.1.70,CVE-015-1635)表示攻击者能够利用192.168.1.70上编号为CVE-2015-1635的漏洞;Attack(192.168.1.70,0-day)表示攻击者对192.168.1.70发起0-day攻击。其他节点的语义与之类似,在此不做赘述。

4.2 试验结果分析

根据贝叶斯攻击图所展示的节点之间的关系,结合试验环境中的漏洞情况,根据静态风险评估算法计算各个属性节点的先验概率。采用Snort入侵检测系统实时捕获试验网络中发生的攻击事件,当FTP服务器上已检测到攻击事件A3发生时,根据动态风险评估算法对静态风险评估攻击图中属性节点的概率进行更新,得到后验概率。攻击图中属性节点的概率如表2所示。

表1 攻击图中各个节点的语义

分析试验结果可知:节点S2,S3,…,S7的后验概率相对于静态风险评估时的先验概率明显增大,这是因为攻击事件发生在这些节点所在分支,导致节点风险增大;节点S11、S12的后验概率相对于静态风险评估时的先验概率稍微增大,这是因为这2个节点的风险值受到节点S5的影响,而S5在攻击路径上;节点S9、S10、S13、S14、S15、S16的后验概率相对于静态风险评估时的先验概率明显减小,这是因为这些节点所在分支没有攻击事件发生,导致节点风险降低;当攻击图中存在攻击事件时,必定存在初始的攻击者和攻击依赖节点,因此节点S1和S8的后验概率均为1;同时,由图4可知,节点S10的父子节点之间的依赖关系为AND,必须在S9和S16上的漏洞同时被攻击者利用的情况下,攻击事件A5才能对节点S10发动攻击,因此S10的先验概率和后验概率较其他节点偏小。

表2 攻击图中属性节点的概率

由此可见:本文提出的网络安全风险评估方法的试验结果与网络实际运行情况相符,能够对目标网络安全风险进行有效的评估。

5 结论

在充分考虑网络实际运行情况的基础上,笔者提出了一种基于贝叶斯攻击图的网络安全风险评估方法,通过搭建试验网络场景验证了该方法的可行性,结果表明:该方法能够对目标网络安全风险进行有效的评估,试验结果与网络实际运行情况相符,可为高效实施网络安全防护策略提供依据。但该方法在评估过程中没有考虑节点之间的关联性对网络安全风险的影响,下一步将对此展开研究。

猜你喜欢

贝叶斯攻击者静态
改进贝叶斯统计挖掘名老中医对肺痿的证候分型经验
基于贝叶斯博弈的防御资源调配模型研究
最新进展!中老铁路开始静态验收
静态随机存储器在轨自检算法
动得多,还要坐得少——评WHO《身体活动与静态行为指南》
基于贝叶斯定理的证据推理研究
基于贝叶斯解释回应被告人讲述的故事
猜猜他是谁
正面迎接批判
正面迎接批判