黄迎春, 牟鑫明
(1.沈阳理工大学 信息科学与工程学院, 辽宁 沈阳 110159; 2.东北大学 计算机科学与工程学院, 辽宁 沈阳 110169)
目前,指挥信息系统呈现面向服务架构(SOA)的发展趋势[1-2]。SOA以服务和共享为核心,基于开放的标准和协议,具有松散耦合、支持应用系统高效整合和业务流程随需应变等特点[3-4]。然而指挥信息系统在服务共享和开放的同时引入了更多的不安全因素,增加了被攻击的风险。由于指挥信息系统在应用层采用通用的运行时环境、跨平台异构系统间的数据共享和服务调用规范,因此存在访问数组越界、不信任应用程序提升权限、内存分配、程序集加载、异常处理、资源管理等安全风险。攻击方针对系统服务订阅、查询、发布等过程,通过截取、监听、接入、重置、转义、仿冒、重放、拒止、接管等攻击方法,有可能造成信息系统的服务资源毁伤和信息欺骗[5-7]。
如何评估指挥信息系统应用层攻击效能是非常重要的。传统的攻击效能评估方法往往假设目标系统具有确定性,在已知目标系统的网络、主机和应用环境下,建立评估模型,定性或定量计算攻击效能,然而由于目标系统复杂性、动态性和非合作特性导致其网络、主机和应用环境的不确定性和不完备性,攻击效能评估往往难以与目标系统变化保持同步。鉴于指挥信息系统应用层攻击效能评估的复杂性,其评价过程涉及模糊因素,引入模糊数学理论进行攻击效能评估呈现研究趋势[8],具体包括通过改进层次分析法确定评估指标权重[9]、建立灰色评估模型[10]、引入多属性决策机制改进评估方法等[11-12]。上述研究方法一般针对单一攻击方法,如:分布式拒绝服务(DDoS)攻击、简单对象访问协议(SOAP)泛洪攻击等建立评估模型,适用性范围小;在采用综合评判方法时,存在赋权方法主、客观取舍问题以及指标因素隶属函数经验固化问题。
为解决指挥信息系统应用层攻击效能评估存在的指标体系、赋权方法、隶属函数和评估算法问题,本文建立3级指挥信息系统应用层攻击效能评估指标体系,提出双因子主观、客观赋权方法确定各层评估指标因素权重,采用人工神经网络技术建立具有学习能力的评估指标因素隶属函数,设计基于模糊综合评判的攻击效能评估算法,实现单一攻击方法攻击效能的模糊评估和多种攻击方法攻击效能的模糊排序。
建立指挥信息系统应用层攻击3级评估指标体系(评估指标树),如表1所示。表1中,Ui、Uij为指标树的分支结点指标因素,uijk为指标树终端结点指标因素,i=1,2,j=1,2,3,k=1,2,3,4. 由于3个层次指标数量分别为2、5、17,因此记作2+5+17指标体系。对指挥信息系统应用层攻击后,按照攻击目标可分为对应用基础层的攻击和对应用服务层的攻击,因此,1级评估指标包括对应用基础层的攻击效能指标和对应用服务层的攻击效能指标。
表1 评估指标体系
对应用基础层的攻击包括被动攻击和主动攻击。被动攻击一般采用窃取应用系统信息的方法,通过截取进出应用系统的信息或非法读取应用系统中的存储信息,破坏应用系统信息的机密性。主动攻击一般通过入侵应用系统,实现破坏应用系统数据和功能的目的。
在对应用基础层的攻击效能1级指标下建立应用提权效能和功能毁伤效能2级评估指标。应用提权效能是实现对应用系统攻击的“因”,它是指入侵应用系统的时效和获取的操作权限。在应用提权效能指标下建立3个3级指标:应用提权等级、提权成功时间和权限稳定时间。应用提权等级是指入侵应用系统成功后获取的操作权限;提权成功时间是指获取入侵权限所需的时间;权限稳定时间是指获取权限的稳定持续时间。功能毁伤效能是实现对应用系统攻击的“果”,它是指获取权限后对应用系统攻击的效能。在功能毁伤效能指标下建立4个3级指标:信息资源毁伤、应用系统瘫痪、业务功能欺骗和应用系统接管。信息资源毁伤是指对应用处理的信息资源破坏效能;应用系统瘫痪是指攻击造成应用系统可用性毁伤程度;业务功能欺骗是指攻击造成的欺骗效能度量;应用系统接管是指攻击实现对主机系统控制的程度。
对应用服务层的攻击是指从服务角度破坏业务应用的正常进行,包括对服务的机密性、服务的完整性、服务的可用性、服务的不可否认性和服务鉴别的攻击。
在对应用服务层的攻击效能1级指标下建立对服务机密性的攻击效能、对服务完整性的攻击效能和对服务可用性的攻击效能2级评估指标。在对服务机密性的攻击效能下建立3个3级指标:信息重要程度、信息正确比率和信息提取时间。信息重要程度是指攻击获取的服务数据信息关键性等级;信息正确比率是指实际获取信息量对预期获取信息量占比;信息提取时间是指信息获取的时效性度量。在对服务完整性的攻击效能下建立4个3级指标:破坏成功时间、篡改成功比率、仿冒成功比率和拒止成功比率。破坏成功时间是指攻击造成服务完整性破坏的时效性度量;篡改成功比率是指实际篡改攻击成功的次数对篡改总次数的占比;仿冒成功比率是指实际仿冒攻击成功的次数对仿冒总次数的占比;拒止成功比率是指实际拒止攻击成功的次数对拒止总次数的占比。在对服务可用性的攻击效能下建立3个3级指标:服务降级程度、服务终止程度和服务欺骗程度。服务降级程度是指攻击造成的服务质量下降程度度量;服务终止程度是指攻击造成服务失效结果度量;服务欺骗程度是指攻击造成服务欺骗效果度量。
评估权重计算方法对于评估结果的影响至关重要。目前,确定评估指标权重的方法可分为主观赋权法和客观赋权法。主观赋权法根据决策者对各指标的主观重视程度赋权,主要有专家法[13]和层次分析法[14-15];客观赋权法根据指标样本值差异程度进行赋权,主要有变异系数法和均方差法。为兼顾主观赋权法和客观赋权法的优点,提出一种双因子主观、客观赋权计算方法,该方法建立基于专家法、层次分析法、变异系数法和均方差法的统一赋权函数。
定义1W=[w1,w2,…,wt]定义为归一化指标权重向量,其中w1+w2+…+wt=1,t为指标数量;WA、WD、WV、WS分别定义为专家法、层次分析法、变异系数法和均方差法的归一化指标权重向量。
定义2双因子主观、客观赋权函数定义为
W(α,β)=F(αβWD+α(1-β)WA+
(1-α)(WV+WS)/2),
(1)
式中:函数F(·)表示向量归一化运算;α为1级赋权偏好因子,β为2级赋权偏好因子,0≤α≤1, 0≤β≤1.
双因子主观、客观赋权函数具有如下性质:
1) 若α=0,则W(0,β)=F((WV+WS)/2),表示完全采用客观赋权;
2) 若0<α<0.5,表示偏好客观赋权;
3) 若α=0.5,则W(0.5,β)=F(βWD/2+(1-β)WA/2+ (WV+WS)/4),表示主观、客观平均赋权且权衡专家法和层次分析法的2级赋权偏好因子β可调;
4) 若0.5<α<1,表示偏好主观赋权;
5) 若α=1,则W(1,β)=F(βWD+(1-β)·WA),表示完全采用主观赋权;
6) 若β=0,则W(α, 0)=F(αWA+(1-α)·(WV+WS)/2),表示采用专家法、变异系数法和均方差法综合赋权;
7) 若0<β<0.5,且α>0,表示在主观赋权时偏重层次分析法;
8) 若β=0.5,则W(α, 0.5)=F(α(WD+WA)/2 +(1-α)(WV+WS)/2),表示4种赋权方法平均赋权;
9) 若0.5<β<1,且α>0,则表示在主观赋权时偏重专家法;
10) 若β=1且α<1,则W(α, 1)=F(αWD+(1-α)(WV+WS)/2),表示采用层次分析法、变异系数法和均方差法综合赋权;
11) 若β=1且α=0,则W(1, 0)=F(WA),表示完全采用层次分析法赋权;
12) 若β=1且α=1,则W(1, 1)=F(WD),表示完全采用专家法赋权。
将(1)式方法称作双因子主客观赋权法,该方法通过引入2级主观、客观赋权偏好因子α和β统一了专家法、层次分析法、变异系数法和均方差法,提高评估权重计算方法的综合性。
基于模糊映射和综合评判原理[16-18],在建立多级评估指标集的基础上,提出攻击效能模糊综合评判方法。该方法采用提出的双因子主观、客观赋权函数计算各级指标集的权重向量,基于各指标特征采用反向传播(BP)神经网络算法设计指标因素隶属函数,建立攻击效能综合评估模型,实现指标单因素评估和模糊综合评估。
为明确评估指标因素与结果之间的关系,下面给出单因素模糊评估定义。
定义3单因素模糊评估定义为因素集U={u1,u2,…,um}到备择集(评判集)V={v1,v2,…,vn}的模糊映射:
f:U→Ψ(V),
ui|→(ri1,ri2,…,rin),
(2)
式中:ri1,ri2,…,rin为因素ui对备择集的模糊评判值;m为因素数,n为评判结果等级数。
从指挥信息系统应用层攻击效能评估需求出发,评估可分为单一攻击方法和多种攻击方法攻击效能评估。单一攻击方法的攻击效能评估须给出备择集评判等级,多种攻击方法的攻击效能评估需给出它们之间攻击效能的排序。下面给出表1所述评估指标体系的攻击效能模糊综合评估算法。
算法1单一攻击方法的攻击效能模糊综合评估算法步骤如下:
1)将指标因素划分为:U={U1,U2},U1={U11,U12},U2={U21,U22,U23},U11={u111,u112,u113},U12={u121,u122,u123,u124},U21={u211,u212,u213},U22={u221,u222,u223,u224},U23={u231,u232,u233}。
2)建立备择集V={v1,v2,…,vn}。
3)建立评估指标树终端结点uijk的隶属函数。
4)采用双因子主观、客观赋权函数计算各级指标归一化权重向量:A=(a1,a2),A1=(a11,a12),A2=(a21,a22,a23),A11=(a111,a112,a113),A12=(a121,a122,a123,a124),A21=(a211,a212,a213),A22=(a221,a222,a223,a224),A23=(a231,a232,a233),其中ai、aij、aijk为指标树终端结点指标因素权值,i=1,2,j=1,2,3,k=1,2,3,4.
5)计算指标树终端指标因素uijk的评估结果向量
Rijk=(rijk1,rijk2,…,rijkn) ,
(3)
式中:rijkl为指标因素uijk对备择集V的模糊评判值,l=1,2,…,n.
6)进行第1层次模糊综合评判。对指标树中终端结点进行单因素模糊评判,待评指标因素集为Uij的评判矩阵,即
(4)
采用3级指标权重向量
Aij=(aij1,aij2,…,aijm),
(5)
进行加权平均,计算第1层综合评估向量
Bij=Aij*Rij=(bij1,bij2,…,bijn),
(6)
式中:*采用Zadeh算子为
(7)
∧、∨分别表示集合的取小、取大运算。
7)进行第2层次模糊综合评判。首先构造指标树中第2级指标的评判矩阵
我妈基本不会对我发火,记忆中只有一次。那时候我刚上幼儿园,有一天放学,我忘记给小书包拉上拉链,一路蹦蹦跳跳地回了家,书包里的小本子啊铅笔啊都给抖落光了。第二天早上去上学的时候,我才发现书包是空的。我妈当时噌的一下火就上来了,狠狠骂了我一顿。
(8)
式中:p为2级指标数量。采用2级指标权重向量
Ai=(ai1,ai2,…,aip),
(9)
进行加权平均,计算第2层综合评估向量
Bi=Ai⊗Ri=(bi1,bi2,…,bin),
(10)
式中:⊗采用Einstein算子为
(11)
8)进行第3层次模糊综合评判。首先构造指标树中第1级指标的评判矩阵
(12)
式中:q为1级指标数量。采用1级指标权重向量
A=(a1,a2,…,aq),
(13)
进行加权平均,计算第3层综合评估向量
B=A⊗R=(b1,b2,…,bn),
(14)
式中:⊗采用Einstein算子为
(15)
9)计算归一化评估结果向量
(16)
式中:
(17)
(18)
算法2多种攻击方法的攻击效能模糊综合评估算法步骤如下:
1)设攻击方法的数量为s,调用算法1分别计算每种攻击方法的评估结果向量和模糊评判等级,计算模糊评判等级向量
(19)
和评估结果矩阵
(20)
(21)
式中:n1,n2,…,ns为整数序列1,2,…,s的一个排列。
n1>n2>…>ns,
(22)
否则执行步骤3.
(23)
式中:m1,m2,…,ms为整数序列1,2,…,s的一个排列,则输出攻击方法的排序结果为
m1≥m2≥…≥ms.
(24)
算法1中,对于指标树终端结点的第1层次模糊综合评判,无论是权重向量集还是指标因素评判结果集均为模糊集,因此采用Zadeh算子M(∧,∨)能更好地体现模糊评判特点。对于第2、第3层次模糊综合评判,只有权重向量集是模糊集,因此采用Einstein算子M(·,+)使计算结果更符合评估特点。
基于表1所示的评估指标体系,按照算法1和算法2的步骤,建立攻击效能综合评估模型,如图1所示。
图1 攻击效能综合评估模型Fig.1 Comprehensive evaluation model of attack effectiveness
由于攻击目标的系统结构和状态是很难确定的,因此只能在模拟敌方能力的目标系统上进行攻击评估测试,导致在输入不明确状态下确定指标隶属函数是很困难的。针对该问题,本文应用BP神经网络算法建立指标隶属函数[19],先建立近似的隶属函数,然后通过学习逐步修改,使之完善。
评估指标隶属函数的构建采用N+M+L结构的3层BP神经网络,即输入层神经元(节点)个数为N,隐含层神经元(节点)个数为M,输出层神经元(节点)个数为L.
应用(25)式确定隐含层节点M:
(25)
式中:a为1~10之间的常数。
隐含层的传递函数采用S型函数:
(26)
输出层的传递函数采用线性函数:
f(x)=x.
(27)
根据网络实际输出
(28)
和期望输出dk计算网络总体误差
(29)
并采用方程组(30)式进行网络权值修正:
(30)
式中:η为学习速率;xi是神经网络的(实际)输入,i=1,2,…,N;yj是隐含层的输出,即为输出层的输入,j=1,2,…,M;ok为网络输出,k=1,2,…,L;δk为误差修正项;vij、wjk分别为输入层到隐含层和隐含层到输出层的权值。
不同于一般神经网络的训练和测试过程,本文的训练、测试数据集合除了来自于传统的网络层、应用层攻击数据集外,还来自于对物理系统的攻击测试与评估数据,从而通过持续改进提高模拟输入和输出数据非线性关系的模型精度。为了进一步提高基于神经网络算法指标隶属函数的精确性,基于近年来发布的国家信息安全漏洞库(CNNVD)和国际安全漏洞库(CVE)中缓冲区错误、结构化查询语言(SQL)注入、权限许可与访问控制、信息泄露、路径错误、跨站脚本、安全特征问题等与应用层相关的部分漏洞进行了攻击数据的采集和测试。为避免训练时间过长导致评估周期过长,首先对数据进行去除冗余及规范化处理;其次采用Matlab提供的newff、train和sim神经网络工具箱函数确定初步的指标隶属函数的参数与系数;最后结合新发布的漏洞和攻击方法进行增量训练,并对增量训练后产生的新模型再进行回归测试与拟合,即通过初步建立原型模型→增量训练→回归测试与拟合→更新模型的螺旋式改进方法缩短学习过程的迭代时间。
双因子主观、客观赋权方法通过改变赋权偏好因子α和β计算指标因素集的权重,设某次评估分别采用专家法、层次分析法、变异系数法和均方差法计算出的权重向量为
图2 归一化权重向量Fig.2 Normalized weight vector
特别地,完全采用客观赋权时,W(0,0.5)=(0.20,0.30,0.31,0.19);完全采用主观赋权时,W(1.0,0.5)=(0.22,0.28,0.28,0.22);当折中主观、客观赋权时,W(0.5,0.5)=(0.21,0.29,0.30,0.20)。实验结果表明,双因子主观、客观赋权方法即兼顾了主观、客观赋权方法的特点,又体现了赋权向量具有模糊属性的特点,具有很好的综合性。
3.2.1 单一攻击方法评估
采用文献[20]中的SOAP泛洪攻击样本数据进行单一攻击方法效能评估实验,通过双因子主观、客观赋权方法进行赋权,对于3级评估指标集分别采用W(0,0.5)、W(1.0,0.5)和W(0.5,0.5)函数计算各级评估指标的权值向量值:A11=(0.37,0.26,0.37),A12=(0.21,0.29,0.29,0.21),A21=(0.32,0.37,0.31),A22=(0.20,0.28,0.27,0.23),A23=(0.31,0.30,0.39),A1=(0.43, 0.57),A2=(0.31,0.38,0.31),A=(0.46,0.54)。
指标树终端结点指标隶属函数采用BP神经网络算法计算。各隶属函数的备择集V={v1,v2,v3,v4}采用4级评判等级,其中v1=“优”、v2=“良”、v3=“中”、v4=“差”,即输出层节点数个数为L=4;由应用层攻击领域知识提取输入层的节点数N=1;权衡计算量与计算精度,选取常数a=10;由(25)式计算得到BP神经网络模型结构为1-12-4.
基于评估指标树,采用算法1对SOAP泛洪攻击方法进行3层模糊综合评判,分别计算评判矩阵R11、R12、R21、R22、R23、R1、R2值后,计算第1级指标的评判矩阵为
与文献[20]方法比较,本文提出的双因子赋权法兼顾主观、客观赋权优点,比单纯采用客观熵值法赋权更加综合;建立的2+5+17 3级评估指标体系比基于CPU利用率、内存利用率、网络带宽利用率、恢复时间、服务效果的单层指标体系更完整;与经验法确定的面向SOAP泛洪攻击固定系数分段线性隶属函数相比,基于BP神经网络训练建立隶属函数通过训练学习具有持续改进能力,可适用于多种应用层攻击方法进行评估。
3.2.2 多种攻击方法评估
为了测试多种攻击方法评估效能,选取典型应用层攻击方法进行评估验证。应用层攻击具有未经授权,破坏应用程序、应用程序的用户或由应用程序管理数据的行为特征。选取具有代表性的注入攻击、DDoS攻击、缓冲区溢出攻击3种攻击方法进行验证。注入攻击采用了SQL注入、XML路径语言(XPATH)注入、跨站点脚本(XSS)注入攻击方式; DDoS攻击采用了流量型、连接型和特殊协议缺陷型攻击方式;缓冲区溢出攻击采用了活动记录、函数指针和长跳转缓冲区攻击方式。
在以SOAP、Web 服务描述语言(WSDL)、统一描述发现与集成(UDDI)为核心技术构成的SOA指挥信息系统上进行了攻击评估实验,采用算法2计算评估结果矩阵
表2 攻击效能隶属度
表2是根据3种攻击方法的原理和效能建立的经验隶属度结果,该结果与算法2计算的结果保持一致,说明了算法2的有效性。将本文评估方法与文献[21]攻击效能3层动态评估模型和评估算法进行实验对比,也取得了一致性的评估结论。相比于其他模糊评估法和灰色评估法,本文针对指挥信息系统应用层攻击建立了具体的指标体系,提出的双因子主观、客观赋权方法具有更好的综合性,相比于灰色评估方法经验固化的线性隶属函数,采用BP神经网络模型能够基于历史经验数据训练建立非线性指标因素隶属函数,具有持续改进能力。
本文在研究指挥信息系统应用层攻击方法的基础上,建立了指挥信息系统应用层攻击效能模糊综合评估方法,理论与实验分析结果表明:
1)与传统评估方法相比,面向指挥信息系统应用层攻击建立的2+5+17 3级评估指标体系更完整。
2)与熵值法相比,双因子主观、客观赋权法综合专家法、层次分析法、变异系数法和均方差法,提高了评估权重计算方法的综合性。
3)应用BP人工神经网络理论建立模糊隶属函数,能够通过持续改进提高模拟输入和输出数据非线性关系的模型精度,提高了评估方法的适用性。
4)提出的模糊综合评估算法可实现单一攻击效果的模糊量化和多种攻击的模糊排序,能够更好地针对指挥信息系统的应用层攻击方法进行有效评估。