2. 中国科学院大学 计算机应用技术系, 北京 100049;
3. 中国信息安全测评中心, 北京 100085
2. University of Chinese Academy of Sciences, Beijing 100049, China;
3. China Information Technology Security Evaluation Center, Beijing 100085, China
随着科学技术的发展以及信息时代的到来,科技取得了瞩目的成绩,并以前所未有的速度改变人们的生活,然而另一方面这也让更多的人迷惘于现实世界的复杂,因此出现了很多与复杂系统有关的问题。从组织细胞到社会人群,从食物网到生态网,从大型电力网络到全球交通网络,从科研合作网络到各种经济、政治、社会关系网络等,可以看出这是一个充满着各种各样复杂系统的世界[1, 2]。
一个典型的复杂系统可以视为由许多结点与连接结点之间的边所组成。其中,结点用来代表真实系统中不同的个体,而边则用来表示个体间的关系。通常2个结点之间具有某种特定的关系则连一条边,反之则不连边[3],例如计算机网络(如图1所示)、 电力网络、社会关系网等[4]。
显然,在信息技术发展与信息网络系统广泛应用的同时,对复杂系统安全的风险评估变得尤为重要,是保障信息系统安全运行的关键[5]。
现有的信息安全评估标准虽然都强调了风险评估的必要性,要求以系统的风险分析为核心,通过评估系统的安全属性来判断信息系统的安全等级是否符合要求[6]。但这些标准及其方法,通常采用问卷式调查给出不同风险域在安全管理方面存在的漏洞和安全等级,进而给出策略建议,这将使对于信息系统风险分布规律的认识大多停留在专业人员和专家的个人认识上[7, 8]。
风险评估专家系统在保证风险评估结果可信度的前提下,不仅可以将技术人员从繁杂的资产统计、风险评估工作过程中解脱出来,而且可以完成一些人力无法完成的工作,如网络或主机中漏洞的发现等。另外,在历史数据存储、积累和专家知识分析、提炼等方面,风险评估专家系统也具有诸多优势,可以极大地减少专业顾问的负担,为各种形式的风险评估(如自我评估、检查评估等)提供有力支持[9]。
因此,研发一套简捷、 使用方便的基于知识的复杂系统风险评估专家系统,用于现场收集信息系统数据并且对复杂系统的整体风险进行自动评估,显得十分有意义。
1 复杂系统定义复杂系统[10]是一类子系统数量大、种类多,相互之间有非常复杂的非线性关联关系的信息系统[11]。复杂系统构成要素一般包括: 资产、威胁、脆弱性、系统拓扑结构。其各个构成要素定义如下:
1) 资产。对系统具有价值的事物,利用A表示资产的集合。以图1中的信息系统为例,主机(Host)、 服务器(Server)、 路由器(Router)为该系统中的资产。设S为系统中资产所有状态的集合,定义映射W:A×S→R,W (a,s) 表示资产a在状态s时的价值。
2) 威胁。可能对资产造成损害的因素,利用T表示所有威胁的集合。如图1中的复杂系统所面临的威胁可能有缓冲区溢出攻击、恶意代码、人员操作失误等[12]。在本文中令η (t|a,s) 来表示某一段时间内处于状态s的资产a爆发原发性威胁t∈T的概率。
3) 脆弱性。能被威胁利用的、存在于资产上的弱点,与结点状态以及受到的威胁有关,用V表示所有脆弱性的集合。如图1所示,复杂系统的脆弱性可能包括操作系统漏洞、应用程序漏洞、硬件弱点、 start_art.html漏洞等[13]。记β (v|a,s,t) 表示威胁t作用在处于状态s的资产a上时,利用资产a的脆弱性v的概率,且满足:
$\sum\limits_{v \in V}^{} \beta $(v|a,s,t) ≤1.
(1)
式(1)表示威胁作用在处于状态s的资产a上时,利用该状态下所有脆弱性v的概率之和不超过1。式(1)等于1的情况为状态s的所有脆弱性都有可能作用成功; 式(1)小于1的情况为处于状态s时存在不能作用成功的脆弱性。
4) 系统拓扑结构。系统间的资产因访问关系而形成的网络结构,TSG=G(A,E)来描述,其中A为图的结点集合,A中的一个元素表示复杂系统中的一个资产,E=A×A为边的集合,E中的任一元素均为一个关于2个资产的二元组〈ai,aj〉,其中ai,aj∈A且ai≠aj,边〈ai,aj〉用于表示2个资产ai,aj(ai≠aj)间存在的访问关系[14]。
复杂系统各个构成要素之间的关系如图2所示。资产拥有脆弱性,脆弱性暴露资产缺点,脆弱性是资产本身的属性。威胁会利用资产的脆弱性对资产造成损害,单纯的脆弱性本身不会对资产造成损害,资产间相互连接构成系统拓扑结构[15]。
2 风险评估专家系统算法理论根据复杂系统所定义的组成元素,以及对整个复杂系统进行风险评估所需的模型支持,风险评估专家系统逻辑结构应包括3个核心模块: 资产状态转移、威胁传播、风险评估。每个模块所涉及到的算法如本文2.1至2.4节所述。
2.1 资产状态转移复杂系统在运行过程中,威胁t作用在处于状态s的资产a后,使得资产a以一定概率从原状态向其他状态s′转变的过程称为资产状态转移[10]。威胁t作用于资产a后,a向哪些状态转移依赖于如下3个因素: 1) a的当前状态; 2) 作用于资产的威胁t; 3) 威胁t作用于资产a时所利用的脆弱性v。
设威胁每次作用于资产时只能利用资产的一个脆弱性,若威胁对资产作用成功,则资产的状态将转移到没有到达过的一个新状态(即资产状态转移过程不会出现环路)。记δ (s′|a,s,t,v) 表示资产a处于状态s时,t利用a的脆弱性v作用于a后,a的状态由s转移到s′的概率,满足
$\sum\limits_{s' \in S}^{} \delta {\rm{(}}s'|a,s,t,v{\rm{)}}$
当一个威胁t作用在处于状态s的资产a时,该威胁t将会以概率β v|a,s,t 利用资产的脆弱性v对资产造成影响。若威胁t对资产的脆弱性v作用成功,则资产a的状态s将以状态转移概率 $\delta (s'{\rm{|}}a,d,t,v)$转移到s′。因此,一个威胁t作用在处于状态s的资产a,导致其状态转移到s′的概率 ρ (s′|a,s,t) 表示为: 资产a处于状态s时,威胁t利用资产在该状态下的每一种脆弱性v的概率 β (v|a,s,t) 与威胁t利用资产在该状态下的每一种脆弱性v作用于a导致其状态转移到s′的概率$\delta (s'{\rm{|}}a,d,t,v)$ 的乘积之和。也即
$\rho (s'|a,s,t)$=$\sum\limits_{v \in V}^{} \beta {\rm{(}}v|a,s,t {\rm{)}}\delta {\rm{(}}s'|a,s,t,v{\rm{)}}{\rm{.}}$
(2)
系统中的资产转移到某个状态后引发新的威胁作用于相邻资产的过程称为威胁传播[10],如图3所示即为2个资产之间的一种威胁传播形式。
在图3中,处于状态s1的资产a4受到威胁t3作用后,a4的状态将有可能转移到状态as或as。如果a4的状态转移到as后,则处于状态as的资产a4将有可能向处于状态 as的相邻资产a1发出at、 at或at这3种威胁,a1在受到不同的威胁后将会发生不同的状态转移。从图中可以看出,处于状态as的资产受到威胁at作用后,其状态将转移到as; 受到威胁at作用后,其状态将转移到as; 受到威胁at作用后,其状态将转移到as或as。
威胁的传播依赖于复杂系统的拓扑结构,且威胁在传播的过程中,一个威胁导致资产a状态发生转移后,可能引发哪些威胁作用于相邻资产a′与如下两个因素有关: 1) a转移后的状态
因此,当处于状态s的资产a受到威胁t作用时,发生状态转移s→s′后,向相邻资产发出威胁t′的概率φ $(t'|a,s,t)$ 表示为: 资产a受到威胁t作用时的状态转移概率ρ $(s'|a,s,t)$与资产转移到状态s′后向相邻资产发出威胁t′的概率ξ $(t'|a,s')$ 的乘积组成,即
$\varphi (t'|a,s,t) = \sum\limits_{s' \in S}^{} \rho (s'|a,s,t)\xi (t'|a,s')$
(3)
对于任一复杂系统,威胁在传播的过程中,都可以将系统里面的结点A= a0,a1,…,an 划分为3类(为便于表示,以下均将“资产”称作“结点”):
活动结点(active node,AN): 当前时刻受到了威胁作用,并且将产生的新威胁向外传播的结点;
死结点(inactive node,IAN): 已经被威胁作用过的结点,且不再被威胁再次作用;
可激活结点(activatable node,ATN): 网络中还未受到威胁作用过的结点。
此外,假设威胁在传播的过程中,复杂系统中的结点还应具有如下特征:
1) 每个资产所拥有的状态S={s0,s1,…,sm}种类有限,脆弱性V= v0,v1,…,vN 种类有限,且每种状态可以传播多种威胁T={t0,t1,…,tM},但每种威胁一次只能作用于资产的一个脆弱性。
2) 一个结点发生原发性威胁tε后,由该原发威胁直接或间接引发的一系列其他威胁在网络的传播过程中,不会有其他原发性威胁发生。
3) 每时刻,活动结点只向相邻的可激活结点传播威胁,当威胁传播成功后,该活动结点立即变为死结点,将不再被威胁作用,而受到威胁作用的可激活结点成为了下一时刻的活动结点。
4) 处于状态s的活动结点a受到威胁t作用后,将以相同概率$\varphi (t'|a,s,t)$ 向所有相邻可激活结点传播威胁t′。
5) 同一时刻不存在多个威胁同时作用于同一个结点,但允许一个资产发出的威胁同时作用于多个相邻可激活结点。
6) 当系统中不存在活动结点时,威胁传播结束。
在复杂系统的工作过程中,由原发性威胁 tε所导致的传播性威胁t′在系统拓扑结构中传播时有如下3种情况:
1) 威胁t′发出失败,威胁传播到此终止。该情况表明此次爆发的原发威胁 tε只导致了复杂系统中的一个资产受到威胁作用。
2) 威胁t′发出成功,但对相邻可激活结点作用失败,威胁传播到此终止。该情况表明此次爆发的原发威胁 tε仍旧只导致了复杂系统中的一个资产受到威胁作用。
3) 威胁t′发出成功,且对相邻可激活结点作用成功。该情况表明受到原发威胁 tε作用的结点a状态转移后发出了新的威胁t′并成功作用于相邻可激活结点,若受到威胁t′作用成功的结点继续发出威胁作用于其他相邻结点,不断重复这一过程,直到威胁传播在某一结点终止,便形成了一条多结点威胁传播路径。
2.2.1 威胁传播树的定义对于任一复杂系统拓扑结构图TSG=G(A,E)(其中A={a1,a2,…,an})而言,在有限时间序列Θ=(1,2,…,n-1)上,从初始时刻1开始,原发性威胁 tε作用于图中的某一结点a1(这里不妨设为a1。为方便描述,以下所涉及的ai、 ti均表示在时刻i时的活动结点与该时刻的活动结点发出的威胁,并不指代具体的结点名称和威胁名称,仅表示时间顺序关系),结点a1受到威胁作用成功后将发出新的威胁 at并通过有向边〈a1,a ′ 1 〉由a1向其相邻可激活结点a′ 1传播; 在下一时刻(即时刻2),威胁 at作用于结点a2(这里a2=a ′ 1 ,因为在i时刻的活动结点ai与i-1时刻威胁作用成功的可激活结点a ′ i-1 是同一个结点),若作用成功,a2又将发出新的威胁 at并沿着有向边〈a2,a′ 2 〉由a2向其相邻可激活结点a′ 2传播,重复此过程,直到在某一时刻i∈Θ时,所有活动结点ai∈AN(由于在i-1时刻,活动结点ai-1发出的威胁有可能同时作用于多个相邻可激活结点a ′i-1 ,因此在i时刻有可能存在多个活动结点ai∈AN)不再发出威胁或所发出的威胁对其相邻可激活结点均没有作用成功为止,威胁传播结束。
在以上过程中所形成的各相邻死结点间的有向边E= 〈a1,a′ 1〉,…,〈an-1,a ′ n-1 〉 以及每条有向边上的威胁序列Γ=(at,…,tn-1)所组成的有向无环图称作威胁传播树。其中,受到原发性威胁tε作用的结点称作树根; 受到威胁作用后不再发出新的威胁或所发出的新威胁对其相邻可激活结点没有作用成功的结点称作树叶。因此,一棵高度为h(0<h< |A| )的威胁传播树可定义为
$Tr(E,\Gamma {\rm{) = }}\left\{ {{t_\varepsilon },(\bigcup\limits_{ai \in AN} {} \bigcup\limits_{{{a'}_i} \in {B_i}} {(\left\langle {{a_i},{a_i}^\prime } \right\rangle ,{t_i})} )} \right\}.$ | (4) |
设复杂系统拓扑结构定义为TSG=G(A,E)(结点集A中的元素个数为n),威胁传播树按其高度h做如下划分: 高度为0的威胁传播树(单个结点),高度为1的威胁传播树,…,高度为n-1的威胁传播树。
由2.2节所描述的复杂系统威胁传播所具有的特征5)可知,在任一时刻i∈Θ,活动结点ai发出的威胁可以同时作用于多个相邻可激活节点,结合前面生成威胁传播边的过程可知,如果ai的相邻可激活结点集Ai的元素个数为 |Ai| ,且ai可发出的威胁种类数为Nt,则威胁传播边(〈ai,a ′ i 〉,ti)的形式有Nt·2 | Ai| -1)种,显然在每个时刻威胁传播树边的数量均以2 |Ai| 的指数级规模增长,从而也导致了威胁传播树的数量规模也呈现该指数级增长。因此,为降低威胁传播树规模,在威胁的传播过程中对威胁传播树的生成进行如下两步采样操作。
1) 在威胁传播过程中,对每时刻活动结点的转移状态进行采样。
在时刻i∈Θ,威胁 ti-1(ti-1∈Γ)作用于结点ai(初始状态为s),若结点ai受到威胁 ti-1作用成功,那么该结点的状态s将会以概率ρ $\left( {s'{\rm{|}}{{\rm{a}}_i},s,{t_{i - 1}}} \right)$ 转移到状态s′。在2.1节的资产状态转移描述中,资产的状态转移是一个逐步恶化的过程,这里用 d(sik)表示资产ai当前状态sik(j表示当前状态的可选转移状态编号)的恶化程度,状态的恶化程度越高,其d( ·)值越大。设ai的状态集S中的元素已根据d( ·)值升序排列,显然,ai(当前状态sik)的转移状态sik的取值范围为S={sik,si(j+1),si(j+2),…,si(j+m)}(其中sik=sik表示状态没有发生转移,视为一种特殊的转移状态),且它服从概率分布sik~ G (s′),其中:
G s′=(s'ik) =ρ (sik|ai,sik,ti-1).
(5)
在式(5)中,sik,sik∈S,这里sik表示结点ai受到威胁作用前的状态,sik表示结点ai受到威胁作用后的转移状态,且sik可以取值sik表示状态没有发生转移。
因此,根据式(5)计算得到结点ai(当前状态sik)的所有可能转移状态sik的概率分布值 G ( ·)={ G (sik),G (si (j+1) ),…,G (si(j+m))},利用 G ( ·)中的元素将连续区间[0,1]映射为m+1个子区间,使满足: 第1个子区间长度为 G (sik),第2个子区间长度为 G (si (j+1) ),…,第m+1个子区间长度为 G (si(j+m))。
然后,从均匀分布u~Uniform[0,1]中获取一个样本u,观察样本u落入到哪一个子区间,样本u落入区间所对应的随机变量sik就是结点ai的转移状态。至此,对结点转移状态的采样过程结束,采样算法1描述如下。
Function: GetTransitionState(ai) |
Input: the currentactive node ai. |
Output: the transition state,sik,of ai. |
Get the current statesij and possible transition state {sij , |
si(j+1),…,si(j+m)} about ai; |
Compute G (·) presented in Eqs. (5) for each element in |
{ |
Divide continuous interval [0, 1] into m+1 different sub- |
intervals according to G (·) ; |
Take a sample u from the uniform distribution: u~ |
Uniform[0, 1]; |
for each G (sik)∈ G (·) do |
if u lands in sub-interval G (sik) then |
Let transition state ofai be sik; |
break ; |
end if |
end for |
return transition state,sik,of ai; |
2) 在威胁传播过程中,对每时刻产生的威胁传播边进行采样。
根据2.2.1节中威胁传播树的定义,在时刻 i∈Θ,当威胁 ti-1(ti-1∈Γ)作用于结点ai(初始状态为s)时,若结点ai受到威胁 ti-1作用成功,那么该结点的状态s将会以概率ρ $\left( {s'{\rm{|}}{a_i},s,{t_{i - 1}}} \right)$,s,ti-1 转移到状态s′,然后该结点再以概率φ $\left( {s'{\rm{|}}{a_i},s,{t_{i - 1}}} \right)$ 向ai的相邻可激活结点集Ai(这里Ai=
p((〈ai,a'i〉,ti))=φ(ti| ai,s,ti-1 )×$\prod\limits_{{a_i}^\prime \in {B_i}} {\sum\limits_{{v_k} \in V}^{} \beta } \left( {{{\rm{v}}_k}{\rm{|}}{a_i}^\prime ,s,{t_i}} \right)$×$\prod\limits_{{a_i}^{\prime \prime } \in {C_i}} ( 1 - \sum\limits_{{v_k} \in V}^{} \beta {\rm{(}}{{\rm{v}}_k}{\rm{|}}{a_i}^{\prime \prime },s,{t_i}))$ | (6) |
在式(6)中,Ai=Bi∪Ci,其中Bi表示从结点ai发出威胁并作用成功的相邻可激活结点集,Ci表示从结点ai发出威胁但作用不成功的相邻可激活结点集,V表示结点的脆弱性集。
通过步骤1)在时刻i∈Θ对ai的转移状态进行采样后,ai将会转移到一个确定状态,在该状态下活动结点ai向其相邻可激活结点a'i∈Ai发出威胁 ti∈Ti(Ti表示ai在某一状态下发出的威胁集),若ti对a'i作用成功则形成威胁传播边(〈ai,a'i〉,ti)。因此,在i时刻,由活动结点ai发出的所有可能的威胁传播边为Ei={ $\bigcup\limits_{{t_i} \in {T_i}} {\bigcup\limits_{{a_i}^\prime \in {A_i}} {} } $(〈ai,a'i〉,ti)},且每种威胁传播边的概率可通过式(6)计算得到。显然,E中的元素服从概率分布 〈ai,a'i〉,ti ~ H (e),其中:
H (e= (〈ai,a'i〉,ti)) =p ((〈ai,a'i〉,ti)) .
(7)
令ej= (〈ai,a'i〉,ti) (其中ej∈Ei,j=0,1,…,|Ei|),根据式(7)可计算得到,在时刻i∈Θ,活动结点ai与其相邻可激活结点a'i之间的威胁传播边ej的概率分布值 H (·)={$\bigcup\limits_{j = 0}^{{\rm{|}}{{\rm{E}}_i}{\rm{|}}} {} $ H (ej)}(其中j=0表示ai与Ai中的结点之间没有形成任何威胁传播边,即ai发出的威胁对Ai中的任何一个结点都没有作用成功,其概率为 H (e0) =1- ${\sum\limits_{j = 1}^{{\rm{|}}{{\rm{E}}_i}{\rm{|}}} {} }$ H (ej)),利用 H (·) 中的元素将连续区间[0, 1]映射为 |Ei| +1个子区间,使满足: 第1个子区间长度为 H (e0) ,第2个子区间长度为 H e1 ,…,第 |Ei| +1个子区间长度为 H (e |Ei|) 。然后,从均匀分布u~Uniform [0,1]中获取一个样本u,观察样本u落入到哪一个子区间,样本u落入区间所对应的随机变量ej就是当前时刻活动结点ai与其相邻可激活结点a'i之间的威胁传播边 〈ai,a'i〉,ti 。至此,对威胁传播边进行采样的过程结束,采样算法2描述如下。
Function: GetPropagationEdge(ai,s) |
Input:the current active node ai,and the state,s,sending |
threat ti. |
Output: the threat propagationedge (〈ai,a'i〉,ti). |
GetAi,the adjacent activatable node set about |
ai; |
Get threat setTi according to the state s of active |
node ai; |
for each a′i∈Ai do |
for each ti∈Ti do |
Computep((〈ai,a'i〉,ti)) presented in Eqs. |
(6); |
P←P∪p(〈ai,a'i〉,ti); |
end for |
end for |
Compute H(·) presented in Eqs. (7) for each |
element in P; |
Divide continuous interval [0,1] into| H (·) | |
different sub-intervals according to H (·) ; |
Take a sampleu from the uniform distribution: u |
~Uniform [0,1]; |
for each H (〈ai,a'i〉,ti)∈ H (·) do |
if u lands in the sub-interval H (〈ai,a'i〉, |
ti) then |
e←(〈ai,a'i〉,ti); |
break; |
end if |
end for |
return e; |
在威胁的传播过程中,通过算法1和2对当前时刻活动结点的转移状态及其发出的威胁所形成的威胁传播边分别进行采样后,迅速地降低了威胁传播树的规模,提高了威胁传播树的生成速度。因此,对任一复杂系统拓扑结构图TSG=G(A,E)(其中A={a1,a2,…,an})而言,从某一时刻原发性威胁tε作用于TSG中的某一个结点开始,在有限时间序列Θ= 1,2,…,n-1 上生成威胁传播树的算法3如下所述。
Function: CreateThreatPropagationTree(TSG,ar) |
Input: the topologystructure TSG=G(A,E),and the tree |
root ar∈A. |
Output: the threat propagationtree Tr. |
a1←ar,Θ← 1,2,…,A -1 ; |
s← GetTransitionState (a1); |
if s==Null then |
return Null; |
end if |
e←GetPropagationEdge(a1,s); |
if e==Null then |
e← (〈a1,a1〉,tε ); |
Tr← {tε,〈 |
return Tr; |
end if |
Tr←{tε,e}; |
for i=2 to |Θ| do |
Get the current active node setAN; |
Ei←null; |
for each ai∈AN do |
s← GetTransitionState (ai); |
if s==Null then |
continue; |
end if |
e← GetPropagationEdge (ai,s); if e≠Null then |
Tr←Tr∪e; |
end if |
Ei←Ei∪e; |
end for |
if each e ∈Ei is Null then |
The threat propagation is over; |
break ; |
end if |
end for |
return Tr; |
通过算法3可知,执行该算法一次至多会产生一棵威胁传播树,因此在时间序列Θ上,若以相同结点作为威胁传播树的根节点,多次模拟该过程(多次执行该算法),便可以得到规模可控的威胁传播树集合ψ={Tr1,Tr2,Tr3,…},并且所获得的威胁传播树集合ψ中的元素(威胁传播树)将服从一定的概率分布,进而可以利用集合ψ中的威胁传播树对复杂系统的风险进行估计。
2.3 风险评估一定时间段内,复杂系统中所有受到威胁作用的资产结点的期望损失之和称为系统风险。因此,系统风险的计算应包括两个方面[10]: 威胁传播树的产生概率,威胁传播树中各资产结点的价值损失。
2.3.1 威胁传播树的概率计算一定时间段内复杂系统风险发生的概率,即是计算在该时间段内威胁传播所形成的每棵威胁传播树Tr所出现的概率P(Tr)。在2.2.1节中,威胁传播树被定义为二元组Tr (E,Γ) ,其中E= {〈a1,a′ 1〉,…,〈an-1,a ′ n-1 〉} 为连结各死结点间的有向边集合,Γ=(at,…,tn-1)为E中各条边上所传播的威胁序列。由于威胁在复杂系统中作用于结点具有时间先后顺序,故可将组成Tr (E,Γ) 中所有边的结点描述为一个结点序列Λ=Λi∪Λn,其中i(i<n)表示威胁作用的结点序列编号,Λi= a1,a2,…,ai 为非叶结点序列,Λn为叶结点序列,a1为根结点; 同理,在Tr (E,Γ) 上传播的威胁描述为一个威胁序列Γ=Γi∪Γn,其中i<n表示威胁序列编号,Γi= tε,at,at,…,ti 为原发性威胁 tε和非叶结点发出的威胁所组成的序列,Γn为叶结点发出的威胁序列,tε直接作用于根结点a1。结点序列Λ与威胁序列Γ有着一一对应关系: 威胁 ti(≠tε)是由结点ai所发出的。威胁在传播过程中,设Bi表示从结点ai发出威胁并作用成功的相邻可激活结点集,Ci表示从结点ai发出的威胁没有作用成功的相邻可激活结点集,Ai(Ai=Bi∪Ci)表示结点ai的所有相邻可激活结点集。因此,结合威胁在复杂系统中传播过程的描述及其所形成的威胁传播树的定义,可将威胁在复杂系统中传播时所形成的威胁传播树Trj的概率P(Trj)描述如下:
P(Trj)=η(tε|a1,s)·$\prod\limits_{{a_i} \in {\Lambda _i},{t_i} \in {\Gamma _i} - {t_\varepsilon }}^{} {} $ [φ(ti ai,s,ti-1 )×$\prod\limits_{{a_i}^\prime \in {B_i}}^{} {\sum\limits_{{v_k} \in V}^{} {} } $ (vk| a'i ,s,ti)×$\prod\limits_{{a_i}^\prime \in {C_i}}^{} {(1 - \sum\limits_{{v_k} \in V}^{} \beta } $(vk| a'i ,s,ti)×$\prod\limits_{{a_n} \in {\Lambda _n}}^{} {[\sum\limits_{{t_n} \in {\Gamma _n}}^{} {} } $(φ(tn| an,s,tn-1 )×$\prod\limits_{{a_n}^\prime \in {\Lambda _n}}^{} {(1 - \sum\limits_{{v_k} \in V}^{} \beta } $ (vk| a ′n,s,tn)))+(1-$\sum\limits_{{t_n} \in {\Gamma _n}}^{} \varphi $ (tn| an,s,tn-1 ))],(2≤n≤|A|). | (8) |
在式(8)中,η(tε|ai,s)为威胁传播树Trj(Λ,Γ)的根结点ai爆发原发性威胁的概率; ∏[φ · ∏∑β · ∏(1-∑β)]为威胁传播树中所有非叶结点的威胁传播概率,即任一结点的发出威胁概率φ乘以所有作用成功的相邻结点概率∏∑β与作用不成功的相邻结点概率∏(1-∑β); ∏[∑ φ ·∏(1-∑β))+(1-∑φ)]为威胁传播树中所有叶结点的威胁传播概率,由于叶结点为威胁传播的终止结点,威胁在每一个叶结点上终止传播有两种可能情况: 1) 威胁已向相邻可激活结点发出,但是没有作用成功,其概率为∑(φ·∏(1-∑β)); 2) 威胁没有向相邻可激活结点发出,其概率为1-∑φ,因此每个叶结点的威胁传播概率∑ φ ·∏(1-∑β))+(1-∑φ)的乘积即为威胁传播树中所有叶结点的威胁传播概率。在式(8)中,当n=1,也即威胁传播树Trj只有一个结点时,公式演化为
P(Trj)=η(tε|ai,s)·[$\sum\limits_{{t_i} \in {\Gamma _i} - {t_\varepsilon }}^{} {} $ (φ(ti| ai,s,tε )·$\prod\limits_{{a_i}^\prime \in {\Lambda _i}} {(1 - \sum\limits_{{v_k} \in V}^{} {\beta ({v_k}{\rm{|}}{a_i}^\prime ,s,{t_i})))} } $+$1 - \sum\limits_{{t_i} \in {\Gamma _i} - {t_i}}^{} {\varphi ({t_i}{\rm{|}}{a_i},s,{t_\varepsilon }))]} $ | (9) |
在式(9)中,由于当前威胁传播树只有一个结点,即根结点ai也是叶结点,在公式中不存在非叶结点的传播概率,因此威胁传播树的形成概率只需计算根结点的原发性威胁的发生概率与叶结点的传播概率之积。
2.3.2 资产结点的价值损失期望威胁在复杂系统中传播时,如果原发性威胁作用的结点不同,或每个活动结点发出的传播性威胁不同,即便是具有相同结构的威胁传播树,其结点所产生的价值损失也将不同,而且结点的损失还与结点被威胁作用后的转移状态有关。显然,在计算威胁传播树中的资产结点的价值损失时,必需同时考虑威胁传播树Tr中单个资产结点a受到威胁t作用时的状态转移(s→s′)概率ρ( s′|a,s,t ),以及状态转移所造成的结点价值损失ΔW(其中: ΔW=W (a,s) -W (a,s′) )。因此,一棵威胁传播树所带来的系统期望价值损失表述为威胁传播树中所有受到威胁作用的结点的状态转移概率与其状态转移所造成的价值损失之积的累加和,即对于任意一棵威胁传播树Trj,期望价值损失L(Trj)计算如下:
L Trj =$\sum\limits_{a \in \Lambda }^{} \rho $ (s′|a,s,t) (W (a,s )-W( a,s′) ). | (10) |
复杂系统中资产数量庞大,原发性威胁在不同资产上的发生概率不尽相同,而且即便是同一个资产上的相同原发性威胁也有可能产生不同的威胁传播树。因此,对于任一复杂系统拓扑结构图TSG=G(A,E)(其中A={a1,a2,…,an})而言,在有限时间序列Θ= (1,2,…,n-1) 上,威胁T={at,at,…,tM}作用在该拓扑结构所对应的复杂系统的结点上时,将产生出一棵威胁传播树Tr。若复杂系统经历由多个时间序列Θ所组成的时间段,则将可能产生出多棵威胁传播树而形成威胁传播树集合ψ={Tr1,Tr2,Tr3,…}。
2.3.3 系统风险评估根据系统风险的定义可知,任意一棵威胁传播树Trj的期望风险 R(Trj 可表示为该棵威胁传播树的期望损失L Trj 与形成该棵威胁传播树的概率 P(Trj 之积,即
R(Trj)=P(Trj)·L Trj . | (11) |
在式 (11)中,每棵威胁传播树所带来的期望价值损失L Trj 可通过式(10)计算得到,而形成任意一棵威胁传播树Trj(Λ,Γ)的概率 P(Trj 则可根据式(8)或式(9)计算得到。因此,复杂系统风险R(A,T)即为威胁传播树集合ψ中所有威胁传播树的期望风险之和,即
R (A,T) =$\sum\limits_{Tr \in \psi }^{} {} $R(Trj).
(12)
通过算法3并结合式(12)便能计算出复杂系统在一段时间内所面临的系统期望风险。因此,在时间序列Θ= (1,2,…,n-1) 上,对于任一复杂系统拓扑结构图TSG=G(A,E)(其中A={a1,a2,…,an})而言,威胁T={at,at,…,tM}作用在该拓扑结构所对应的复杂系统上时,所产生的系统风险的计算过程可描述为如下算法4。
Function: ComputeExpectedRisk(TSG,ar ) |
Input: the system topology structure TSG=G(A,E),the |
tree root ar∈A |
. Output: R A,T ,the expected risk of TSG=G(A,E) |
ψ←null; |
for i=1 to samplingNum do |
Tri←CreateThreatPropagationTree(TSG,ar); |
Compute expected loss value L Trj presented in Eqs. |
(10); |
Compute the expected risk R(Trj) presented in Eqs. |
(11); |
ψ←ψ∪Tri; |
end for |
Fo r each Tr∈ψ,compute R A,T presented in Eqs. |
(12); |
return R A,T ; |
通过前面对复杂系统风险评估专家系统各模块所需算法的叙述可知,在风险评估专家系统的所有模块中,资产状态转移与威胁传播模块是整个系统的核心部件,该模块直接关系到风险评估专家系统能否实现对复杂系统的整体风险做出准确的评估。如图4所示。
3.1 专家系统逻辑结构由图4所示的专家系统逻辑结构可知,在模型求解的过程中,系统通过信息采集模块将子模型求解所需的信息采集到子模型求解模块中,为各个子模型的求解提供必要的信息准备; 在该模块中,主要是通过录入复杂系统中各结点的拓扑结构关系,以及复杂系统各节点的属性信息来起到对复杂系统进行直观表达操作的功能。然后,再启动各个子模型求解模块进行求解,各个子模型求解所得结果汇集到风险评估总模型求解模块进行整个复杂系统的风险评估,最后通过风险评估结果输出模块将复杂系统风险评估结果返回给用户[16]。
3.2 专家系统知识库设计与实现根据第2节中风险评估算法理论的叙述,在中科院计算所智能信息处理重点实验室智能科学组研发的面向对象知识处理系统(object-oriented knowledge processing system,OKPS)[17]的基础上开发出了复杂系统风险评估专家系统。
OKPS由两部分组成,即知识获取和管理工具(KAMT),以及面向对象推理机(OOIE)。前者为知识工程师提供高效地建立、扩充和维护专家系统的工具,它采用面向对象知识表示方法,分层次地向知识工程师展示知识库的全部结构,采用可视化的手段辅助知识工程师构造知识库,同时还隐藏了知识库到数据库这一存贮映射过程的实现细节; 后者通过人机交互界面为专家系统最终用户提供解释和执行专家系统中推理规则的机制。
在复杂系统风险评估专家系统的研发过程中,资产状态转移、威胁传播、风险评估3个模块所涉及到的相关算法(如算法1-4)均在OKPS中实现,并以知识规则的形式存放于知识库中(如图5所示) 。
将模块算法利用OKPS以知识规则的形式存于知识库中,可以方便用户以添加、删除和修改知识库中知识的方式对相应模块算法进行维护,并结合知识发现的结果动态更新模块算法,从而高效地建立、扩展和维护专家系统的知识库。
3.3 专家系统主界面设计与实现OKPS只是为专家系统进行风险评估时提供评估算法的底层执行环境,而在整个评估过程中所用到的数据信息的获取与反馈则是由风险评估主界面通过人机交互的形式给予提供(风险评估主界面如图6所示)。
在图6所示的风险评估主界面中,系统提供了两种途径进行风险评估: 新建评估,历史信息。新建评估主要是针对一个新的复杂系统进行评估时提供的相关操作; 历史信息主要是用以前评估过的复杂系统进行历史信息的回顾。
在新建评估操作中,系统提供了两种信息录入方式: 手动录入,自动生成。手动录入主要针对已有复杂系统拓扑结构、人工输入复杂系统拓扑结构的相关属性信息(结点数量、状态数量、威胁数量、脆弱性数量、结点连接关系)。风险评估操作员录入复杂系统拓扑相关信息后,只需点击“保存图信息”与“开始评估”按钮,评估系统将会自动将相关数据信息提交给底层OOIE以执行风险评估算法。风险评估算法执行结束后,OOIE将会自动返回执行结果到系统主界面。同理,自动生成方式是为了对复杂系统风险评估进行模拟而设计的,用户在录入信息的过程中只需录入结点数量、状态数量、威胁数量、脆弱性数量,而结点连接关系则是由系统根据“选择拓扑图的种类”自动生成(这里“选择拓扑图的种类”提供了完全图与非完全图两种类型),接下来的评估过程与手动录入方式相同。
3.4 风险评估结果显示在3.3节中,无论是进行“新建评估”操作,还是进行“历史评估”的回顾,通过OKPS底层返回的 计算结果均以统一的格式显示在风险评估结果界面(如图7所示)。
图7所显示的是针对一个8结点复杂网络系统(网络拓扑结构如图6所示)进行风险评估的结果。可以很清楚地看到,当原发性威胁作用于结点6时,应该先保护结点6的所有相邻结点{3,4,5,7}; 但是在实施保护策略时,若根据结点的攻击频率作为结点保护力度的衡量指标,则给出一个合理的资源保护分配方案为: 在结点6的所有相邻结点{3,4,5,7}中,结点7受到威胁攻击的频率最高(几乎达到结点{3,4,5}的2倍),因此应该实施最强的保护力度,且应该以相对于结点{3,4,5}的2倍保护力度进行保护。在结点{3,4,5}的保护策略中,结点4的保护力度应该略大于结点{3,5},对于结点{3,5}应施以相同的保护力度。
综上分析,从图7所示的风险评估结果与结点攻击频率可以很容易得到整个复杂网络的安全状态的定量分析结果: 系统期望风险,系统结点攻击频率。本文直接将系统期望风险用作描述系统安全状态值,系统期望风险是映射于[0,1]区间的,显然系统期望风险越大,则安全隐患越高。因此,根据系统期望风险可以直接定量评判出当前复杂网络的安全状态。系统结点攻击频率用于指导制定系统资源保护策略,结点攻击频率越高,则投入的保护资源将会越多。
4 结 论本文设计研发的复杂系统风险评估专家系统能够对一个典型复杂系统在一定时间段内的系统风险进行客观正确的评估,且相对于文[10]所设计的风险评估方法在运行时间效率和风险评估结果方面更具有优越性。在实际环境中,由于影响复杂系统威胁传播行为的因素繁多而复杂,且复杂系统本身也具有多样性、复杂性等特点,无论是现有的研究理论还是工程系统都还没有达到完全揭示其传播规律、精确估算其风险损失、控制其传播的程度。因此,无论是在理论研究还是在工程系统研发上,还有许多方面需进一步的研究与探索。
[1] | Deshpande H, Bawa M, Garcia-Molina H. Streaming live media over a peer-to-peer network [R]. 2001. |
[2] | Jannotti J, Gifford D K, Johnson K L, et al. Overcast: Reliable multicasting with on overlay network [C]//Proceedings of the 4th Conference on Symposium on Operating System Design & Implementation—Volume 4. Berkeley: USENIX Association, 2000: 14-14. |
[3] | Rejaie R, Ortega A. PALS: Peer-to-peer adaptive layered streaming [C]//Proceedings of the 13th International Workshop on Network and Operating Systems Support for Digital Audio and Video. New York: ACM, 2003: 153-161. |
[4] | Tran D A, Hua K A, Do T. Zigzag: An efficient peer-to-peer scheme for media streaming [C]//INFOCOM 2003. Twenty-Second Annual Joint Conference of the IEEE Computer and Communications. Piscataway: IEEE Societies, 2003, 2: 1283-1292. |
[5] | Castro M, Druschel P, Kermarrec A M, et al. SplitStream: High-bandwidth multicast in cooperative environments [J]. ACM SIGOPS Operating Systems Review, 2003, 37(5): 298-313. |
[6] | Horvath A, Telek M, Rossi D, et al. Dissecting pplive, sopcast, tvants [J]. submitted to ACM Conext, 2008. |
[7] | Vu L, Gupta I, Liang J, et al. Mapping the PPLive network: Studying the impacts of media streaming on P2P overlays [Z]. 2006. |
[8] | Jia J, Li C, Chen C. Characterizing PPStream across internet [C]//Network and Parallel Computing Workshops, IFIP International Conference on. Piscataway: IEEE, 2007: 413-418. |
[9] | Su X, Chang L. A measurement study of PPStream [C]//Communications and Networking in China, Third International Conference on. Piscataway: IEEE, 2008: 1162-1166. |
[10] | Douceur J R. The sybil attack [M]//Peer-to-Peer Systems. Springer Berlin Heidelberg, 2002: 251-260. |
[11] | Singh A. Eclipse attacks on overlay networks: Threats and defenses [C]//IEEE INFOCOM. Piscataway: IEEE, 2006. |
[12] | 邹维, 张缘, 张建宇, 等. DHT 网络 eclipse 攻击 [J]. 清华大学学报: 自然科学版, 2011, 51(10): 1306-1311.ZOU Wei, ZHANG Yuan, ZHANG Jianyu, et al. Survey of eclipse attacks on DHT networks [J]. J Tsinghua Univ: Sci & Technol, 2011, 51(10): 1306-1311. (in Chinese) |
[13] | Liang J, Kumar R, Xi Y, et al. Pollution in P2P file sharing systems [C]//INFOCOM 2005. 24th Annual Joint Conference of the IEEE Computer and Communications Societies. Piscataway: IEEE, 2005, 2: 1174-1185. |
[14] | Adar E, Huberman B A. Free riding on Gnutella[J/OL]. First Monday, 2000, 5(10): http://firstmonday.org/ojs/index.php/fm/article/view/792/701<%3B/Hu96. |
[15] | Feldman M, Papadimitriou C, Chuang J, et al. Free-riding and whitewashing in peer-to-peer systems [J]. Selected Areas in Communications, IEEE Journal on, 2006, 24(5): 1010-1019. |
[16] | Seedorf J. Security issues for p2p-based voice-and video-streaming applications [M]//iNetSec 2009–Open Research Problems in Network Security. Springer Berlin Heidelberg, 2009: 95-110. |
[17] | Dhungel P, Hei X, Ross K W, et al. The pollution attack in P2P live video streaming: Measurement results and defenses [C]//Proceedings of the 2007 Workshop on Peer-to-Peer Streaming and IP-TV. New York: ACM, 2007: 323-328. |
[18] | Meier R, Wattenhofer R. ALPS: Authenticating live peer-to-peer live streams [C]//Reliable Distributed Systems, IEEE Symposium on. Piscataway: IEEE, 2008: 45-52. |
[19] | Borges A, Almeida J, Campos S. Fighting pollution in p2p live streaming systems [C]//Multimedia and Expo, IEEE International Conference on. Piscataway: IEEE, 2008: 481-484. |
[20] | Yang S, Jin H, Li B, et al. The content pollution in peer-to-peer live streaming systems: Analysis and implications [C]//Parallel Processing, 37th International Conference on. Piscataway: IEEE, 2008: 652-659. |
[21] | Yang S, Jin H, Li B, et al. A modeling framework of content pollution in Peer-to-Peer video streaming systems [J]. Computer Networks, 2009, 53(15): 2703-2715. |
[22] | Li Y, Lui J. Stochastic analysis of a randomized detection algorithm for pollution attack in P2P live streaming systems [J]. Performance Evaluation, 2010, 67(11): 1273-1288. |
[23] | Li D, Wu J, Cui Y. Defending against buffer map cheating in DONet-like P2P streaming [J]. Multimedia, IEEE Transactions on, 2009, 11(3): 535-542. |
[24] | Gheorghe G, Cigno R L, Montresor A. Security and privacy issues in P2P streaming systems: A survey [J]. Peer-to-Peer Networking and Applications, 2011, 4(2): 75-91. |
[25] | Conrotto E, Leonardi E. NAPA-WINE Project[EB/OL]. (2014). http://www.napa-wine.eu. |
[26] | Kamvar S D, Schlosser M T, Garcia-Molina H. The eigentrust algorithm for reputation management in p2p networks [C]//Proceedings of the 12th International Conference on World Wide Web. New York: ACM, 2003: 640-651. |
[27] | Xiong L, Liu L. Peertrust: Supporting reputation-based trust for peer-to-peer electronic communities [J]. Knowledge and Data Engineering, IEEE Transactions on, 2004, 16(7): 843-857. |
[28] | Damiani E, di Vimercati D C, Paraboschi S, et al. A reputation-based approach for choosing reliable resources in peer-to-peer networks [C]//Proceedings of the 9th ACM Conference on Computer and Communications Security. New York: ACM, 2002: 207-216. |