网络安全是国家安全的核心组成部分,关乎国家安全命脉,如何度量网络安全也成为亟需解决的问题。现阶段,攻击方式多样化,如何评估网络安全风险还有待解决。此外,还存在公开数据集的指标复杂繁多问题,度量大规模网络随节点增加,攻防过程中产生的路径更多,不利于计算。
国内外对网络攻防的度量已有一定的研究,对网络攻防的模型化方法主要有攻击树模型、攻击图模型和攻防博弈模型等。攻击树模型有Burke[1]提出的把网络攻击行为和路径构建成一个树状结构。攻击图有基于描述逻辑的形式化模型来分析TCP/IP网络抵御攻击的能力[2]。对于博弈模型,Lye等[3]提出了一个基于博弈论的安全事件分析方法,尹发等[4]提出了有攻防博弈性的链式行动的推演系统,姜伟等[5]提出了基于攻防博弈模型的网络安全测评,对网络攻防策略和成本收益进行了建模计算。这些方法很好地搭建了模拟网络攻防模型,但没能评估攻击防御中产生的安全风险。虽然基于攻击图或者攻防博弈的方法,可以较好地衡量网络安全态势的实时攻防过程[6],但是大多数存在路径爆炸的问题,网络节点多导致计算的复杂度与时间成本过高。
在网络攻防的评估中,对于网络的攻击效能,有建立层级结构模型来衡量网络攻击效果的方法[7],还有评价网络性能借鉴信息论的熵评估网络攻击效果[8],以及基于灰色理论的对效能进行灰色定权聚类评估,该方法以灰色系统理论为基础,采用层次分析法算法进行网络攻击指标权值的计算[9]。层次分析法方便人为设定,故而主观性较强,而且这些方式不能很好地评估动态的攻防过程。
此外,有结合微分流形评估网络系统安全的方法,将网络系统抽象为一个微分流形在高维上细致刻画网络状态[10]。文[11]将微分流形应用到网络系统的攻防计算中,并给出相关概念的定义和原理,为后续的深入研究奠定了基础。此外,通过Lie群来度量网络系统风险,Lie群的微分运动特征可以刻画物理空间中网络攻击行为的路径,对网络的攻防对抗过程描述进行了定义,较好地解决了动态攻防过程中系统状态的改变与风险的度量问题[12]。通过结合微分流形来衡量攻防效用评估网络安全,能使网络安全评估不再依赖于传统拓扑路径,从而使计算结果具有更好的完整性和计算可扩展性,弥补了传统度量方式的不足。但是对于将测得的大量指标进行降维的方面,仍需要深入研究,需要尽量去除影响小的指标以降低算法成本开销,故本文提出一种基于聚类和主成分分析法结合微分流形度量网络安全的方法。
1 度量方法 1.1 网络攻防效用度量方法的模型本文提出的网络攻防效用度量方法的模型结构如图 1所示。此网络攻防效用度量方法整流程如下:通过检测工具收集网络系统安全的指标数据,获取指标项和测量值;每个时刻的指标组合可以表示出攻防过程中的网络状态,构建网络拓扑结构。由于大部分工具采集到的指标维数较高,存在一定的相关性,并且不是所有指标在网络攻防度量中都是必须的,因此需要指标降维。
本方法使用聚类与主成分分析法结合的方式对指标降维,聚类将指标相似度高的聚集到同一个簇中,作为度量指标的一个方面;在每个度量方面中,通过主成分分析法筛选指标,将得到的特征值作为指标权重。根据降维的指标和网络拓扑结构构建拓扑关系矩阵,形成流形空间。对拓扑关系矩阵结合指标权重,通过效用函数计算安全效用。对效用函数积分得到攻防效用的风险值,从而对网络安全风险进行评估。
1.2 基于主成分分析的指标筛选方法目前网络安全公开数据集的指标数量不一,有的较为繁多,如KDD 99数据集[13]有30个指标,CIC2017数据集[14]有85个指标,ISCXURL2016数据集[14]有80个指标等。其中部分指标具有一定的相关性,部分指标对攻防效用的计算影响较小,且样本数量多时属性的维数激增,高维空间会提高计算复杂程度,所以需要指标降维,以降低复杂度,提高效率。
本文采用聚类和主成分分析法对指标维数进行约简。聚类将具有一定相关性的指标划分为各个方面,主成分分析针对每个方面的指标进行降维并得到相应权重,最终得到重要程度较高并且尽可能覆盖多个方面的指标集合。
1) 对收集到的指标数据通过极差变换法进行无量纲化处理,将其分为正向性指标和负向性指标,进行min-max归一化。由于各个度量指标的量纲不同,数据范围有很大的差距,直接用来评估可能会导致结果有很大差异,所以需要对各指标的原始数据预处理。对系统的n次测量,可得每一指标所形成的集合{qim},(m=1, 2, …, n),其中存在最大值最小值,qi为当前测量值。
对于正向性指标,无量纲化处理结果如下:
$ {z_i} = \frac{{{q_i} - \max \left\{ {q_i^m} \right\}}}{{\max \left\{ {q_i^m} \right\} - \min \left\{ {q_i^m} \right\}}}. $ | (1) |
对于负向性指标,无量纲化处理结果如下:
$ z_{i}=\frac{\max \left\{q_{i}^{m}\right\}-q_{i}}{\max \left\{q_{i}^{m}\right\}-\min \left\{q_{i}^{m}\right\}}. $ | (2) |
其中:qi为某项指标的一个样本值;max{qim}、min{qim}分别为同一指标不同样本中的最大值和最小值;zi为处理结果,即指标实际值与阈值的比作为指标的规范化值。
2) 对归一化的指标集进行聚类操作,将其分为若干互不相交的子集,每一个子集成为一个“簇”,可作为指标的一个度量方面。使用DBSCAN密度聚类的方式聚类。方法是将归一化的指标中具有一定密度的集合划分为多个簇。划分后簇内相似度较大, 而簇间相似度较小,最终生成r个簇,即指标集可以分为r个度量方面的指标集合即{Rr}。
3) 在每个度量方面Rr中使用主成分分析法,得到该方面的主成分指标集合,并进行权重的分配。n次测量形成的指标数据集在聚类后得到的r个指标集合{Rr},对于以其中一个集合Ri共有k项指标为例,建立线性矩阵Xi,
$ \begin{aligned} &\boldsymbol{X}_{i}=\left[\begin{array}{cccc} x_{11} & x_{12} & \cdots & x_{1 k} \\ x_{21} & x_{22} & \cdots & x_{2 k} \\ \vdots & \vdots & \vdots & \vdots \\ x_{n 1} & x_{n 2} & \cdots & x_{n k} \end{array}\right]=\\ &\left(\boldsymbol{X}_{i 1}, \boldsymbol{X}_{i 2}, \cdots, \boldsymbol{X}_{i k}\right), \boldsymbol{X}_{i j}=\left[\begin{array}{c} x_{1 j} \\ x_{2 j} \\ \vdots \\ x_{n j} \end{array}\right],\\ &(j=1,2, \cdots, k). \end{aligned} $ | (3) |
(1) 由于步骤2对测量值进行了归一化,故而此处不用再进行中心化,只需计用指标Xij的规范化值zi,对k维随机变量Xi建立协方差矩阵D(Xi)如下:
$ \begin{aligned} &\boldsymbol{D}\left(\boldsymbol{X}_{i}\right)=\\ &\left[\begin{array}{cccc} \operatorname{cov}\left(\boldsymbol{X}_{i 1}, \boldsymbol{X}_{i 1}\right) & \operatorname{cov}\left(\boldsymbol{X}_{i 1}, \boldsymbol{X}_{i 2}\right) & \cdots & \operatorname{cov}\left(\boldsymbol{X}_{i 1}, \boldsymbol{X}_{i k}\right) \\ \operatorname{cov}\left(\boldsymbol{X}_{i 2}, \boldsymbol{X}_{i 1}\right) & \operatorname{cov}\left(\boldsymbol{X}_{i 2}, \boldsymbol{X}_{i 2}\right) & \cdots & \operatorname{cov}\left(\boldsymbol{X}_{i 2}, \boldsymbol{X}_{i k}\right) \\ \vdots & \vdots & \vdots & \vdots \\ \operatorname{cov}\left(\boldsymbol{X}_{i k}, \boldsymbol{X}_{i 1}\right) & \operatorname{cov}\left(\boldsymbol{X}_{k}, \boldsymbol{X}_{i 2}\right) & \cdots & \operatorname{cov}\left(\boldsymbol{X}_{i k}, \boldsymbol{X}_{i k}\right) \end{array}\right]. \end{aligned} $ | (4) |
(2) 用特征值分解方法求协方差矩阵的特征值和特征向量。
(3) 对特征值从大到小排序记为λiq, (q=1, 2, …, k),其对应的特征向量记为Uiq, (q=1, 2, …, k)。
(4) 按照指标值对结果的贡献值筛选变量,并为其分配权重。
通过式(5)遍历计算第a(a≤k)项特征值对整体结果的贡献率,由于其表达了该指标的重要程度,故而将其作为该项指标的权重w;
$ w=C_{i a}=\frac{\lambda_{a}}{\sum\limits_{p=1}^{k} \lambda_{i p}}. $ | (5) |
通过式(6)遍历计算前a(a≤k)项特征值对整体结果的累计贡献率,取ACia≥0.85时前a项变量即为其筛选具有重要性的主成分指标{cam}, (m=1, 2, …, n)。
$ A C_{i_{a}}=\frac{\sum\limits_{\frac{p=1}{k}}^{a} \lambda_{i p}}{\sum\limits_{p=1}^{k} \lambda_{i p}}. $ | (6) |
将前a项特征向量记为Uiq, (q=1, 2, …, a)组成特征向量矩阵P,将数据转换到该a个特征向量构建的新空间中,即N=PXi。
2 基于微分流形的风险演化模型 2.1 构建流形空间通过Lie群变化[15]将网络系统转换为流形空间。网络系统拓扑结构是网络基本属性,可表示为G(V, E),V是节点集合,E为边集合。网络系统中设备可看作节点,将此n个节点集合记为Vn。n个节点所产生的拓扑关系记为En,其中i、j为n个节点在链路上相互有连接关系的节点。
Lie群作为微分变换群,拥有在群的操作下保持光滑结构的特性。对于网络系统,可以通过微分流形的几何性质[16]来描述数据,用群的代数性质来进行数据分析[12]。网络系统可以表述为Lie群,原因如下:
1) 网络系统中指标和拓扑关系可以组成矩阵。主机与链路关系可以建立起网络的拓扑矩阵,矩阵元素为主机和链路上的指标风险值,其映射即矩阵。
2) 网络系统构成的矩阵是一般线性群。网络的风险函数构成的网络拓扑关系图是n×n矩阵。每一个元素在矩阵中是实数R的子集。指标之间至少可以找到2个元素互不相关,则矩阵的行列式不为零。因此,由指标的函数和指标对应关系产生的矩阵是一般线性群。
3) 一般线性群是Lie群。矩阵元素是变量的多项式相乘,而多项式函数是可微可导的,因此群运算是可微的。同时又因为一般线性群是群,该Rn2空间是光滑流形。一般线性群满足Lie群的定义,因此一般线性群是Lie群。
因此,网络系统可以表示为Lie群,Lie群可以描述网络系统安全状态的变换。
在网络系统中,每个时刻都会有网络状态,一段时间内的指标变化,可以表示网络状态的改变。网络攻防过程中,攻击路径上的节点状态会发生改变,改变的结果就是整体网络系统的风险安全。节点与链路用节点指标代数表示,即nodeIij,其中i、j是节点个数和在节点上的指标个数;以及arcIij,其中i、j是边个数和在边上的指标个数。从而构建出网络的拓扑结构矩阵Q,各个状态组成了Lie群状态模型[12]。
2.2 计算单个设备或者链路的风险值和攻防效用利用Lie群变换,将网络系统从Euclidean空间变换为Riemannian流形;其中,网络系统中的各设备变换为Riemannian流形中的各个点,各设备的指标变化值变换为Riemannian流形对应点的坐标,各设备之间的调用关系变换为Riemannian流形对应点之间的距离[12]。具体流程如下:
首先,计算某一个设备或者链路中,当前时刻与前一时刻的归一化指标的差值,即为其2个时刻第i指标的变化量ΔIi。然后利用光滑函数yij=
$ d\left(i_{t}, i_{t+\Delta t}\right)=\sum\left(-\lg \left(y_{i j}^{a}\right)+\lg \left(y_{i j}^{b}\right)\right). $ | (7) |
其中
攻防过程产生的攻击效用和防御效用,共同作用改变网络状态。在每一时刻,攻防效用可为每个设备节点上攻击效用与防御效用的差值Un(t),形成n维的效用函数u(t)。在该流形的切空间上计算单个节点根据时间变化产生攻击路径的风险变化量:
$ r_{n}(t)=\sum\limits_{i=1}^{k} w \times d\left(i_{t}, i_{t+\Delta t}\right). $ | (8) |
其中:w为之前步骤计算的指标权重,k为单个设备和链路上的指标总数量。
2.3 计算整体攻防效用的风险总值根据网络拓扑结构与单个风险值构建每一时刻t的网络系统的风险矩阵R(t)。对角线上为节点设备的风险值,非对角线为节点间链路的风险值。
$ \boldsymbol{R}(t)=\left[\begin{array}{cccc} r_{1}(t) & r_{12}(t) & \cdots & r_{1 n}(t) \\ r_{21}(t) & r_{2}(t) & \cdots & r_{2 n}(t) \\ \vdots & \vdots & \vdots & \vdots \\ r_{n 1}(t) & r_{n 2}(t) & \cdots & r_{n}(t) \end{array}\right]. $ | (9) |
对效用函数和风险矩阵进行乘积运算,将时间作为积分域进行积分,得到整体的攻防效用风险总值R,通过最终的风险值R来评估网络安全,R表示如下:
$ R=\int_{t_{1}}^{t_{2}} u(t) R(t) \mathrm{d} t, \quad t \in\left[t_{1}, t_{2}\right]. $ | (10) |
使用CIC2017数据集进行实验。该数据集有完整的网络拓扑,网络中有12台主机、防火墙、DNS服务器、攻击机和网络交互。此数据集中也有多种攻击,涵盖的攻击包括基于Web的攻击、暴力破解、DoS、DDoS、渗透测试、Heart-bleed、僵尸网络和端口扫描。本实验选取其中的9台设备、6种攻击进行模拟。
3.2 实验过程1) CIC2017数据集采集到的85个指标中77个指标是数据类指标,对其进行降维。用正常数据通过聚类和主成分分析进行降维,主成分分析后为筛选的指标分配权重。最终得到的主要指标有:流量速度中的每秒正向转发数据包数,数据包数量中的ACK的数据包数,数据包中的正向标头使用的总字节数,数据包传输时间中的正向发送的2个数据包之间的总时间等。
2) 将网络拓扑结构映射到流形空间,根据其中的关联关系构建出拓扑结构矩阵Q对角线上为第i节点,第i行第j列的值为1的项为第i, j行节点之间存在链路关系。
根据式(7)计算某时刻单个节点和链路的攻防效用风险值,以时间为星期四的XSS攻击为例,计算对应位置的风险值,风险矩阵R表示如下:
由于此时攻防效用可以认为没有发生变化,故而攻防效用函数u(t)各项为1,然后通过式(9)计算得到最终的风险值48,可知风险较低。
经过对数据集中所有风险进行计算后,结果如表 1所示。
攻击时间 | 攻击类型 | 风险值 |
Monday | Benign(Normal human activities) | 0 |
10:18-10:20 a.m. Tuesday | FTP patator | 487 |
2:09-2:11 p.m. Tuesday | SSH patator | 327 |
9:21-9:23 a.m. Thursday | Brute Froce | 1 350 |
10:16-10:18 a.m. Thursday | XSS | 48 |
3:56-4:16 p.m. Friday | DDos LOIT | 1 205 |
1:55-1:57 p.m. Friday | portscan | 0 |
值越高则存在的风险越大,可认为300以上存在风险。受到攻击后的风险值会高于正常时的风险值。表中攻击低于风险标准,如postscan等,是因为其攻击行为的特征不够明显。由于数据集中只衡量了流量的变化,故而XSS等攻击得分也较低。本文算法考虑了动态攻击时产生的风险,而对静态安全指标考虑较少。
4 结论本文提出的网络攻防效用的度量方法,动态地评估攻防过程中网络风险,可对常见的公开数据集进行度量与评估。将相关性强的指标聚类,以及采用主成分分析法对数据集的繁多指标进行降维,以降低后续算法的开销与复杂度。之后使用微分流形的方式对网络攻防过程进行建模,通过在时间维度上效用风险的计算最终得到整体网络系统的风险值,从而达到评估的效果。最后通过实验验证了方法的有效性,与网络安全状态的实际情况基本一致。本文方法尚存在不足。评估网络系统安全时主要针对攻防过程动态变化时的风险,对存在静态风险未能很好的计算。因此,接下来工作将在攻防效用与静态度量结合的方面深入研究。
[1] |
BURKE D A. Towards a game theory model of information warfare[D]. Dayton: Air force Institute of Technology, 1999.
|
[2] |
ZAKERI R, JALILI R, SHAHRIARI H R, et al. Using description logics for network vulnerability analysis[C]//International Conference on Networking, International Conference on Systems and International Conference on Mobile Communications and Learning Technologies. Morne, Mauritius: IEEE, 2006: 78-83.
|
[3] |
LYE K W, WING J M. Game strategies in network security[J]. International Journal of Information Security, 2005, 4(1-2): 71-86. |
[4] |
尹发, 艾中良. 基于攻防行动链的网络对抗推演系统[J]. 计算机与现代化, 2019(2): 107-111, 117. YIN F, AI Z L. Network confrontation deduction system based on offensive and defensive action chain[J]. Computer and Modernization, 2019(2): 107-111, 117. (in Chinese) |
[5] |
姜伟, 方滨兴, 田志宏, 等. 基于攻防博弈模型的网络安全测评和最优主动防御[J]. 计算机学报, 2009, 32(4): 817-827. JIANG W, FANG B X, TIAN Z H, et al. Evaluating network security and optimal active defense based on attack-defense game model[J]. Chinese Journal of Computers, 2009, 32(4): 817-827. (in Chinese) |
[6] |
张恒巍, 李涛, 黄世锐. 基于攻防微分博弈的网络安全防御决策方法[J]. 电子学报, 2018, 46(6): 151-158. ZHANG H W, LI T, HUANG S R. Network defense decision-making method based on attack-defense differential game[J]. Acat Electronica Sinica, 2018, 46(6): 151-158. (in Chinese) |
[7] |
鲜明, 包卫东, 王永杰, 等. 网络攻击效果评估导论[M]. 长沙: 国防科技大学出版社, 2007. XIAN M, BAO W D, WANG Y J, et al. Introduction to network attack effectiveness evaluation[M]. Changsha: National Defense Science and Technology University Press, 2007. (in Chinese) |
[8] |
王永杰, 鲜明, 王国玉, 等. 计算机网络攻击效能评估研究[J]. 计算机工程与设计, 2005, 26(11): 2868-2870, 2901. WANG Y J, XIAN M, WANG G Y, et al. Study on effectiveness evaluation of computer network attacks[J]. Computer Engineering and Design, 2005, 26(11): 2868-2870, 2901. (in Chinese) |
[9] |
邹海洋. 基于灰色系统理论的网络攻击效果评估[J]. 电脑知识与技术, 2011, 7(4): 795-799. ZOU H Y. Evaluation of the attack effect of the network based on grey system theory[J]. Computer Knowledge and Technology, 2011, 7(4): 795-799. (in Chinese) |
[10] |
胡昌振, 刘臻, 单纯, 等.基于微分流形的网络状态模型构建方法和状态评估方法: 2018106493246[P]. 2018-12-11. HU C Z, LIU Z, SHAN C, et al. Differential manifold-based network state model construction and state assessment: 2018106493246[P]. 2018-12-11. (in Chinese) |
[11] |
HU C Z. Calculation of the behavior utility of a network system:Conception and principle[J]. Engineering, 2018, 4(1): 78. |
[12] |
赵小林, 陈全保, 薛静锋, 等.一种基于Lie群的网络系统风险度量方法: CN108777641A[P]. 2018-11-19. ZHAO X L, CHEN Q B, XUE J F, et al. A network system risk measurement method based on Lie group: CN108777641A[P]. 2018-11-19. (in Chinese) |
[13] |
IRVINE. KDD Cup 1999 Data[DS/OL].[2019-08-10]. http://kdd.ics.uci.edu/databases/kddcup99/kddcup99.html.
|
[14] |
Canadian Institute for Cybersecurity. Intrusion detection evaluation dataset (CICIDS2017).[DS/OL].[2019-08-10]. https://www.unb.ca/cic/.
|
[15] |
LEE J M. Smooth manifolds[M]. New York: Springer, 2013.
|
[16] |
史忠植, 胡宏. 基于微分流形的神经计算[J]. 计算机研究与发展, 1994, 31(8): 28-32. SHI Z Z, HU H. Neural computing based on differential manifold[J]. Computer Research and Development, 1994, 31(8): 28-32. (in Chinese) |