作者简介:罗智勇(1978-),男,副教授,博士研究生.研究方向:网络安全,机器人. E-mail:luozhiyongemail@sina.com
针对预测入侵意图、发现网络漏洞困难等问题,提出了基于三层攻击图的入侵意图自动识别方法。该方法通过对底层报警数据的分析,建立了网络的三层攻击图,并通过对入侵意图的概率分析来定量攻击图。最后,通过最小关键点集生成算法来发现网络中的关键主机,从而为管理人员提供正确的网络安全策略。经验证,这种入侵意图自动识别的方法可行、有效,且具有简单易行等特点。
In order to solve the difficulties of predicting intrusion attempts and finding network vulnerability, an automatic identification method of intrusion attempts is proposed, which is based on three layers attack graph. This method builds the network's three layers attack graph based on the analysis of the underlying alarm data. Then it determines the quantitative attack graph from the analysis of the probability of the intrusion attempts. Finally, the critical host in the network is found by the generation algorithm of the minimum key point set. Thus, the manager can get the right network security policy. It is verified that the proposed intrusion identification method is feasible, effective and simple.
入侵意图识别是指在互联网中通过分析来自入侵检测系统等底层的大量报警数据,判断出入侵者的入侵目的,其本质是对攻击数据进行科学合理的分析过程[ 1]。对入侵意图的识别有助于网管人员更好地管理网络,它也是发现、分析威胁的前提,是网络安全态势感知的重要组成部分,已经成为网络安全领域的研究热点[ 2]。
意图的识别最早应用于人工智能方面。Bratman等[ 3]将意图识别用于信息决策和行为的规划;Heinze等[ 4]在心理学研究的基础上,提出意图层次化的描述方法;Tahboub等[ 5]引入了贝叶斯网络来处理意图的识别。将入侵者意图的识别应用于网络安全领域中,目前也取得了一些成果。Sheyner等[ 6]提出使用入侵检测的方式来生成攻击图,为攻击图的生成提供了参照依据。Noel等[ 7]使用攻击图连接矩阵来降低攻击图生成的复杂度。Ou[ 8]等使用模型化思想从而简化了攻击规则,缩短了攻击图生成时间。Williams等[ 9]使用NetSPA工具生成攻击图,并证明了入侵在攻击图中的可达性。苘大鹏等[ 10]将攻击图应用于网络弱点的分析过程中,并验证了其可能性。叶云等[ 11]进一步优化了攻击图生成算法,并使用概率论来分析网络的弱点问题。以上成果都是从入侵技术方面研究攻击图,而本文则从入侵意图识别方面展开研究。
本文在以往的研究基础上[ 12],提出了一种基于域层、主机层和漏洞层的三层攻击图入侵意图自动识别模型。通过实验分析,验证了该模型的可行性和正确性。
入侵意图是入侵者最初目的的描述,表现为入侵者给被入侵网络造成什么样的损失或实现什么样的目的。入侵意图识别是网络安全人员对入侵者意图的预测、分析、评估和阻断的过程,其识别模型架构如图1所示。
假设用 L表示漏洞集合,则对于任意的 l∈ L, l可形式化为一个三元组( lid, lpre, lcon)。其中, lid为漏洞 l在CVE库中的编号; lpre为利用该漏洞的先决条件集合; lcon为该漏洞被利用后带来的危害集合。
假设用 H表示保护域中主机的集合,则对于任意的 h∈ H, h可形式化为一个三元组( L, θ, NetH),其中, θ为该主机所开放的端口集合, NetH为与该主机所相连接的其他主机集合。
假设用 D表示网络中的保护域集合,则对于任意的 d∈ D, d可形式化为一个二元组( H, NetD)。其中, H为该保护域所包含的主机集合; NetD为与该保护域所相连接的其他保护域集合。
假设用 C表示主机之间的连接关系集合,则 C可形式化为一个三元组( H, Econ, θ)。其中, Econ为连接各主机之间边的集合。
入侵意图是入侵者期望实现的最终目的。假设用 I表示入侵意图集合,则对于任意的 i∈ I, i可形式化为一个四元组( iname, iAP, ipre, icon)。其中, iname为该入侵意图名称; iAP为该入侵意图入侵点; ipre为该入侵意图实现的先决条件; icon为该入侵意图实现后带来的危害。
在实际的网络入侵过程中,入侵者首先通过扫描到的漏洞信息 li入侵某保护域 di中的某主机 hi,然后从较低权限一步步获取较高权限,最终完全控制该主机 hi。当入侵者完全控制主机 hi后,通过该主机 hi继续入侵域 di中的其他主机 hj,最终控制整个域 di,然后继续入侵下一个保护域 dj,最终达到实现其入侵意图的目的。因此,三层攻击图如图2所示。
定义1 三层攻击图是一个有向图,用 G表示,则 G形式化为三元组( GD( Nd, Ed), GH( Nh, Eh), GL( Nl, El))。其中, GD( Nd, Ed)为保护域层攻击图; GH( Nh, Eh)为主机层攻击图; GL( Nl, El)为漏洞层攻击图; Nz为节点集合, Ez为边集合, z=d、 h或 l。在相应的攻击图中,若存在边 eij使得节点 ni有向连接节点 nj,则表示入侵者能利用节点 ni入侵到节点 nj,其中, eij∈ Ez, ni∈ Nz, nj∈ Nz, ni≠ nj, z=d, h, l。
三层攻击图生成算法遵循如下约束:
(1)若入侵者已获得某主机较高权限,则该入侵者不再重新获得该主机较低权限。
(2)若入侵者已经成功入侵某主机,则该入侵者不再重新入侵该主机。
(3)入侵者在实现其入侵意图的过程中,每一入侵操作都是必须的且无冗余的。
(4)入侵者获取某主机权限由低到高的顺序为None,User,Root。
算法1 三层攻击图生成算法:
Input:保护域集合D,主机集合H,各个主机的漏洞集合L,连接关系集合C。
Output:三层攻击图G。
1. for each h ∈H Do {
2. Quan = None; n = | Lh |;
3. Do{for each i∈n-1 Do for j∈(i+1,n)Do{
4. if lj×lpre ⊆ li×lcon then {
5. Add(li, lj) to Gl(Nl);
6. Add(li→lj) to Gl(El);
7. if Judge(lcon)==1 or 2 then Quan =User/Root; }}}
8. while Quan ==User/Root;}
9. Add (Gl(Nl, El)) to G;
10. for each i ∈n-1 Do for j ∈(i+1,n) Do{
11. if QuanXian(hi)==User or Root then
12. if (hi, hj, θ)∈C and (QuanXian(hj←hi)==User or Root) then{
13. Add(hi, hj) to Gh(Nh);
14. Add(hi→hj) to Gh(Eh); }}
15. Add(Gh(Nh, Eh)) to G;
16. for each i ∈n-1 Do for j ∈(i+1,n) Do{
17. d1=d(hi); d2=d(hj);
18. if d1<>d2 and hi∈Gh(Nh) then{
19. Add(d(hi)) to Gd(Nd);
20. if (hi, hj,θ)∈C and (QuanXian(hj←hi)==User or) then{
21. Add(d(hj)) to Gd(Nd);
22. Add(d(hi)→d(hj)) to Gd(Ed); }}
23. Add(Gd(Nd, Ed)) to G}
从算法1的伪代码中可分析出,该算法的时间复杂度为 O( |H|×|Lh|2)。
在三层攻击图中,入侵者成功地由一个节点入侵到另一个节点主要由漏洞的属性决定。在三层攻击图中,漏洞的属性主要有:难易度DE、隐秘度SE和收益度GA。根据复杂的网络实际运营情况,按照CVSS的推荐,本文将漏洞各个属性进行了评估和赋值,如表1所示。漏洞 l被入侵者成功利用的概率为:
式中: λ1、 λ2、 λ3为各属性在实际网络中的权值,可由网管赋值。
假设入侵者可经过 n条路径并依次利用 m个漏洞入侵主机 l获取至 q权限,则入侵者获取 q权限的概率为:
在主机层攻击图中,假设入侵者可通过 j条路径,经过 k个节点实现其入侵意图 i,则意图 i被实现的概率为:
在三层攻击图中,假设入侵者有 j条路径实现其入侵意图 i,则使用贝叶斯公式可以得出在每条攻击路径下实现其入侵意图的相对概率为:
式中: z=1,2,…, j。
相对概率表示在该条攻击路径下入侵者实现其意图的概率,因此网管可依此管理企业网安全。
定义2 攻击路径。在三层攻击图 G中,若存在一组节点,使得入侵者从开始节点 n0出发沿着这组节点能够入侵至目标节点,则由这些节点组成的路径称为三层攻击图的一条攻击路径 r,由所有攻击路径组成的集合称为攻击路径集合,记为 R。
定义3 最小关键点集。在三层攻击图 G中, G( N)为节点集合, ki为 G( N)的任意一个不包含始节点和终节点的非空子集,若攻击图 G的所有攻击路径都通过 ki中的节点,则 ki为最小关键点集 Kmin。
假设 z为集合 R的秩,即 z=|R|; ri为集合 R中的任意一条攻击路径; Si为 ri所经过的所有节点构成的集合; i=1,2,…, z。
假设 n为三层攻击图 G所有节点集合的秩,即 n=|G( N) |; ki为 G( N)的任意一个不包含始节点和终节点的非空子集; j=1,2,…, m,其中 m=
算法2 三层攻击图关键点集合生成算法
Input:三层攻击图G,攻击路径集合R。
Output:最小关键点集合Kmin。
1. for each j ∈m Do{
2. flag = “Yes”;
3. for each I ∈z Do
4. if kj∩Si == Φ then flag = “No”;
5. if flag == “Yes” then Add(kj ) to K;}
6. Kmin = Min(K);
从算法2的伪代码中可分析出,该算法的时间复杂度为 O( m×z)。
在三层攻击图中,主要通过切断入侵者攻击路径的方式来阻止其入侵的意图。因此,基于最小关键点集的入侵意图响应是经济可行的方法。
根据算法2,可以得到三层攻击图的最小关键节点集 Kmin。假设 hi为集合 K中的任意一个节点主机,则维护 hi的代价记为Cost( hi),包括人力成本、软硬件费用成本和其他成本。
根据以上分析和假设,网管人员阻断入侵意图的最优维护措施成本如式(5)所示,即维护最小关键点集所包含主机节点的成本之和:
本文采用的网络拓扑结构如图3所示。该网络由 DMZ域、 D1域、 D2域和 D3域4个域组成。在每个域中,主机可相互访问; DMZ域内的各个服务器与 D1域和 D2域内的主机可相互访问,但却禁止访问 D3域内的主机; D1域内的主机 H6和 D2域内的主机 H9可以访问 D3域内的SQL数据库服务器;D1域内的主机 H6可以访问 D2域内的主机 H7;其他跨域的访问都被禁止。
通过网络扫描软件对实验环境进行扫描,得出主机和服务器所存在的漏洞及入侵概率如表2所示。
在该网络中,SQL数据库服务器存放着大量的重要数据。因此, D3域中的主机 H12是入侵者攻击的目标,也是入侵意图所在。假设入侵者攻击主机 H12的入侵意图为 i,则调用算法1生成的三层攻击图如图4所示。
从图4中可以得出入侵者一共有12种攻击路径实现其入侵意图,如表3所示。因此,每条攻击路径被入侵者使用的概率为1/12,即 P( r) =1 /12≈0 .083。在表3中,概率 P表示每条攻击路径被成功实现的概率,根据式(3)可以得出入侵者实现入侵意图 i的概率 P( i)=1-(1-0.150)×(1-0.048)×…×(1-0.060)≈0.614。
根据式(4)得出每条攻击路径的相对概率 P( r|i),如表3所示,即 P( r1 |i) =( P1 ×P( r)) /P( i) =(0 .15 ×0 .083) /0 .614≈0 .020,…。在相对概率中, P( r1 |i) =0 .020为最大值,因此入侵者最有可能采用此攻击路径实现其入侵意图。
为了有效地阻止其入侵意图 i,调用算法2得出此网络拓扑结构的最小关键点集为( H6, H9)。分别采取措施更新主机 H6和 H9补丁,限制其访问数据库的权限,从而可有效地阻止入侵者实现其入侵意图。
在以往研究的基础上,进一步提出了一种基于三层攻击图的入侵意图识别和阻断方法。该方法通过建立三层攻击图并结合贝叶斯公式的概率分析来确定入侵者的入侵意图,通过查找网络最小关键点集来维护网络,从而有效地阻止了入侵意图的实现。未来的工作还需要更进一步地细化三层攻击图,从漏洞层来分析网络存在的风险,提高确定入侵意图的精度,更好地管理企业内部网。
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|