随着互联网的迅猛发展,规模化、复杂化、专业化网络威胁大规模出现,影响社会稳定。通过渗透测试技术验证网络可能面临的威胁和存在的脆弱点已不能完全满足现实需求。原因在于通过测试工具辅助人工的方法模拟黑客攻击,单点寻找威胁路径,无法实现全方位的网络安全分析。大量的事实表明,网络安全问题产生的一个根本原因在于没有全面分析网络威胁,无法及时采取有效错误应对风险。目前,已有大量的研究学者对网络威胁开展针对性研究,网络威胁发现、分析、消除等方法成为目前网络安全研究的热点[1]。
网络威胁建模[2]是实现威胁分析的有效方法之一。通过对威胁架构的分析及对威胁行为的形式化描述,可以系统分析网络,彻底找出网络所有漏洞关联关系,在详细了解网络结构后,找到威胁目标内部以及外部的潜在缺陷,实现安全问题的充分发现,有助于威胁检测和攻击预警,最终选择最小代价对网络安全问题进行弥补,有效解决网络安全对抗[3-4]。
已有的网络威胁建模方法主要包括2类: 语言类和图形类[5]。其中,语言类包括响应语言(如Bro)、 关联语言(如基于事件的推理)、 事件语言(如BSM)、 报告语言(如CISL)、 漏洞语言(如CASL)和检测语言(如STATL)。图形类主要包括攻击图以及攻击树。
其中,攻击图实现复杂网络中攻击路径互连关系的建立,利用图形及数学方法实现网络状态的描述,最终实现网络攻击的刻画[6]。攻击树通过对攻击的分解,利用自底向上的方式,构建攻击路径及路径间互连关系。目前,攻击树已经成为威胁建模最为有效的方法之一,在威胁检测、攻击预警、风险评估等方面得到了广泛应用[7]。
然而,复杂网络中的网络威胁趋于复杂化、分布式、多阶段等特征使得网络威胁模型结构庞大而复杂,模型中可能存在的相似网络威胁将增加威胁分析的工作量,并产生“状态爆炸”[8],并且存在如下问题。
1) 是否有必要永无止境地改进已有的某种威胁建模方法?
2) 已有的针对某种特定类型的网络威胁而提出的分析方法,是否在分析其他类型的威胁时,具有不可逾越的缺陷?
3) 如何设计一种与具体威胁类型无关的分析方法,即在弄清楚威胁可能来自哪里、通过什么途径、利用什么技术方法、易于攻击哪些漏洞等之间的各种关系后,是否存在一种与威胁无关的通用安全性分析方法?
为了解决上述问题,本文在攻击树的基础上,从实现的角度出发,采用代数系统构建威胁对象及威胁自身的行为代数化刻画框架。
针对攻击树中的多条攻击路径,采用代数簇理论建立3类威胁相似度度量函数[9]。基于相似度度量方法,创建威胁聚合规则,即:
1) 当原攻击树中包括相似网络威胁时,需分析当前威胁路径隶属关系,构建威胁聚合规则,针对具有同构关系的威胁路径,可进行攻击路径及节点合并,实现原威胁模型优化。
2) 当新攻击产生时,判断新攻击与原攻击间相似关系,对具有同构关系的相似路径进行合并,实现威胁模型优化。 最终利用威胁建模方法等同建模威胁对象,并基于威胁相似度度量函数,实现威胁分析。整体研究框架如图1所示。
1 基本概念
攻击树利用树形结构模拟攻击方法及攻击实例,如图2所示。
其中,根节点表示最终攻击目标,各节点表示取得上级节点攻击目标的各种攻击方法,节点之间为“与”或“或”的关系,节点序号的先后表示攻击顺序,叶子节点表示在不同环境中具体事件的实例。任何攻击树都是由下列两者中的一个或者多个结构组成。
定义2 代数系统[12]。
假设K是特征为零的可计算数域,K[x]是系数在K中以x=(x1,x2,…,xn)为未定元的多项式环。P,G1,G2,H∈K[x]为多项式,如果存在{[P],[G1],[G2],[H]},其中P、G1、G2、H分别为: {p1(x1,…,xn)=0,…,ps(x1,…,xn)=0}; {g1(x1,…,xn)≥0,…,gr(x1,…,xn)≥0}; {gr+1(x1,…,xn)>0,…,gt(x1,…,xn)>0}; {h1(x1,…,xn)≠0,…,hm(x1,…,xn)≠0}; n,s≥1,r,t,m≥0; 则P表示多项式系统,{[P],[G1],[G2],[H]}表示半代数系统。在本文中,K为有理数域Q。
2 威胁行为建模威胁对象和威胁自身可基于不同的实现方式实现。从代数化的角度出发,实现方式的不同则对应的代数化转化规则不同。但是,代数化后的结果相同可统称为代数系统。对于威胁对象和威胁自身来说,生成的代数系统可分为2类:多项式代数系统和不等式代数系统。
复杂网络中,威胁对象及威胁自身实现均趋于复杂化,因此获取的代数系统结构同样趋于复杂化。为了减少单次威胁分析计算量,代数系统的分块化思路是亟待研究并解决的。
基于不同网络安全需求包括高安全需求、一般安全需求、低安全需求,可研究威胁对象及威胁自身实现的可变粒度分块规则,包括粗粒度、普通粒度、细粒度分块。
以一类基于C程序实现的威胁对象及威胁自身为例,其包含的基本数据交换过程包括变量类型定义、赋值语句及条件语句,则威胁对象及威胁自身实现分块规则如图3所示。
进行可变粒度分块后,可将每一个程序块转化为一个代数系统,基本转化规则如下。
1) 将变量取值范围拆分为一系列不等式后添加进代数系统。
2) 对于条件语句拆分为一系列不等式后添加进代数系统。
3) 对赋值语句,如对同一变量进行赋值,且等式右边均不存在该变量,则仅保留最后一条赋值语句; 如果语句右边存在一个与之前赋值语句左边未换元之前相同的变量,则将当前语句中的这一变量替换为在它之前且离它最近的一条对该变量赋值的语句中等式右边的表达式。
4) 对经过处理后的赋值语句,仅保留对输出变量进行赋值的语句,然后将等式左边的变量通过添加中间变量的方法依次进行换元后,添加进代数系统。
由于条件语句中可能存在不等式,获取的代数系统为不等式代数系统。为方便后续处理,可将可能存在的不等式均转化为等式,规则如下。
在半代数系统中,不等关系包括4类{>、≥、<、≤}。通过添加中间变元的方式,可将半代数系统中的所有不等关系均转化为等式关系,相应的转换规则可定义为:假设存在变量x,m∈R
1) 如果x>0,则存在${{x- m{}^2} \over x} =0$;
2) 如果x≥0,则存在x-m2=0;
3) 如果x<0,则存在${{x + m_{}^2} \over x} = 0$;
4) 如果x≤0,则存在x+m2=0;
其中,R表示实数域。
3 威胁相似度度量基于规则1及2,威胁对象及威胁自身实现均被转化为代数行为变迁图。其中,威胁对象图可能包含多条攻击路径及多个攻击节点。
1) 对于原威胁图来说,可能存在相似威胁行为。
2) 对于新出现的威胁,建立新威胁图后,与原威胁图间可能存在相似威胁行为。
如不对相似威胁进行合理的约简,可能造成威胁图规模愈来愈大,可能引发“状态爆炸”,增加威胁分析的难度,不利于提高威胁分析的效率。为解决此问题,本节将基于代数簇理论,构建相似度计算函数,对攻击树中具有同构关系的多个威胁行为对应的多项式代数系统进行系统关系判定。
由于威胁实现存在多样化,对应的行为代数系统均可转化成多项式代数系统。但是,多项式代数系统存在线性及非线性的区别,其对应的相似度度量方法也存在不同之处。
定义3 第1类威胁行为相似度度量。
当
$\sqrt n \times \max \left| X \right| \le {\delta \over \in }$ | (1) |
其中:ε为实际误差,δ为给定误差,maxX表示变元取值中的最大值,n为变元的个数。如果矩阵A和B的行最简形矩阵相似,则威胁行为AX=0和BX=0解相似,即威胁行为相似。此度量方法适用于威胁行为可表示为齐次线性多项式代数系统。
定义4 第2类威胁行为相似度度量。
当
$\max \left| X \right| = 1{\rm{ 且 }}\sqrt n \times \in \le \delta ,$ | (2) |
或者
$\sqrt n \times \max \left| X \right| \le {\delta \over \in }.$ | (3) |
如果矩阵A和B行最简形矩阵相似,则威胁行为AX=0和BX=0解相似,即威胁行为相似。此度量方法适用于威胁行为可表示为非齐次线性多项式代数系统。
定义5 第3类威胁行为相似度度量。
假设2个威胁行为对应的多项式代数系统分别为
$\left\{ {\matrix{ {{p_1} = 0;} \cr {{p_2} = 0.} \cr } } \right.\left\{ {\matrix{ {{f_1} = 0;} \cr {{f_2} = 0;} \cr {{f_3} = 0.} \cr } } \right.$ | (4) |
则同时计算:
$\left\{ {\matrix{ {\max \sqrt {{p_1}^2 + {p_2}^2.} } \cr {s.t.{f_1} = 0;} \cr {{f_2} = 0;} \cr {{f_3} = 0.} \cr } } \right.\left\{ {\matrix{ {\max \sqrt {{f_1}^2 + {f_2}^2{\rm{ + }}{f^2}_3.} } \cr {s.t.{p_1} = 0;} \cr {{p_2} = 0.} \cr } } \right.$ | (5) |
如果目标函数求解结果均不大于δ,则威胁行为相似。
此度量方法适用于威胁行为可表示为非线性多项式代数系统。
4 威胁聚合上述3类代数系统相似度度量方法可实现威胁行为相似度的代数化度量,整个度量过程均可基于数据计算工具Matlab实现。在实现威胁行为相似度度量后,具有同构关系的2个威胁行为相似时,可对其中一个复杂威胁行为进行约简处理,称之为聚合。对于具体的聚合规则,可描述如下(图中节点关系上如有横线,则表示2条路径相似)。
1) 原威胁模型。
a) 2条攻击路径隶属于同一父节点,则直接约简重复路径,聚合为一条路径。
示例1优化前(下文所有图示中状态间连线上将号相同表示状态行为相同):
优化后:
b) 多条攻击路径隶属于同一父节点,因相似度度量不具备传递性,因此仅两两间聚合。
示例2优化前:
优化后:
c) 攻击路径非隶属于同一父节点,则需判断父节点上一级攻击路径间相似关系。
示例3优化前:
无法优化。
示例4优化前:
优化后:
2) 基于原威胁模型,如果存在新威胁,则在新威胁建模后,需将原模型与新模型进行聚合(下图中“+”号前为原威胁模型,“+”号后为新威胁模型)。
示例5优化前:
优化后:
示例6优化前:
优化后:
示例7优化前:
优化后:
基于威胁聚合规则,原威胁模型及增加新威胁后的威胁模型在结构上均得到了优化。
5 威胁分析在对威胁对象及威胁自身进行建模及模型优化后,基于第3类威胁行为相似度度量函数,可将威胁对象是否面临威胁的判断描述如下。
定义6 威胁分析函数。
假设威胁行为与威胁对象行为对应的多项式代数系统分别为
$\left\{ {\matrix{ {{m_1} = 0,} \cr {{m_2} = 0;} \cr } } \right.\left\{ {\matrix{ {{n_1} = 0,} \cr {{n_2} = 0.} \cr } } \right.$ | (6) |
则计算:
$\eqalign{ & \max \sqrt {{m_1}^2 + {m_2}^2} . \cr & s.t.{n_1} = 0, \cr & {n_2} = 0. \cr} $ | (7) |
如果目标函数求解结果不大于δ,则针对威胁对象来说,威胁存在;相反,威胁不存在。
此函数的原理在于:在威胁对应的代数系统满足的条件下,威胁对象对应的代数系统的解集与原点之间的距离均不大于δ,则表明威胁对象对应的代数系统关系近似成立,即威胁对象行为中存在威胁行为。
6 结 论本文从代数系统及代数簇理论的角度,提出了面向复杂网络的威胁度量及聚合方法的代数化研究框架,其目的在于优化威胁模型以减少威胁分析工作量。由于整体研究思路均采用代数理论,因此可实现处理过程的半自动化。未来为进一步减少威胁处理包括威胁建模及分析的复杂度,将在威胁结构优化的基础上研究代数化的威胁行为优化方法。
[1] | 王永杰, 鲜明, 刘进, 等. 基于攻击图模型的网络安全评估研究[J]. 通信学报,2007, 28 (3) : 29 –34. WANG Yongjie, XIAN Ming, LIU Jin, et al. Study of network security evaluation based on attack graph model[J]. Communication Technology,2007, 28 (3) : 29 –34. (in Chinese) |
[2] | 王红兵. Web应用威胁建模与定量评估[J]. 清华大学学报(自然科学版),2009, 49 (S2) : 2108 –2112. WANG Hongbin. Web application threat modeling and quantitative assessment[J]. Journal of Tsinghua University (Science and Technology),2009, 49 (S2) : 2108 –2112. (in Chinese) |
[3] | WANG Lingyu, Lslam T, LONG Tao, et al. An attack graph-based probabilistic security metric[J]. Lecture Notes in Computer Science,2008, 5094 : 283 –296. |
[4] | 何可, 李晓红, 冯志勇. 面向对象的威胁建模方法[J]. 计算机工程,2011, 37 (4) : 21 –23. HE Ke, LI Xiaohong, FENG Zhiyong. Approach to object oriented threat modeling[J]. Computer Engineering,2011, 37 (4) : 21 –23. (in Chinese) |
[5] | Bau J, Mitchell J C. Security modeling and analysis[J]. Security&Privacy,2011, 9 (3) : 18 –25. |
[6] | 贾凡, 佟鑫. NFC手机支付系统的安全威胁建模[J]. 清华大学学报(自然科学版),2012, 52 (10) : 1460 –1464. JIA Fan, TONG Xin. Threat modeling for mobile payments using NFC phones[J]. Journal of Tsinghua University (Science and Technology),2012, 52 (10) : 1460 –1464. (in Chinese) |
[7] | Sebastian R, Feng C, Christoph M. A new alert correlation algorithm based on attack graph[J]. Lecture Notes in Computer Science,2011, 6694 : 58 –67. |
[8] | Andreas C, Patrick H, Pierre-Yves S, et al. Symbolic model checking of software product lines[C]//Proceedings of the 33rd International Conference on Software Engineering. New York:ACM, 2011:321-330. |
[9] | 邓辉. 基于符号与数值混合计算的多项式变迁系统近似互模拟[D]. 北京:北京交通大学, 2014. DENG Hui. Approximate Bisimulation for Polynomial Transition Systems Based on Symbolic-numeric Computation[D]. Beijing:Beijing Jiaotong University, 2014. (in Chinese) |
[10] | 陈荣茂. 复杂网络威胁建模与检测技术研究[D]. 长沙:国防科学技术大学, 2013. CHEN Rongmao. Modeling and Detection of Sophisticated Network Threats[D]. Changsha:National University of Defense Technology, 2013. (in Chinese) |
[11] | Wang L Y, Liu A, Jajodia S. Using attack graphs for correlating, hypothesizing, and predicting intrusion alerts[J]. Computer Communications,2006, 29 (15) : 2917 –2933. |
[12] | Zhang S J, Song S S. A novel attack graph posterior inference model based on Bayesian network[J]. Journal of Information Security,2011, 2 : 8 –27. |