梁玲 李天河 李克臣
(信息工程大学,河南郑州 455001)
基于贝叶斯理论的Web应用系统健壮性评价算法研究
梁玲 李天河 李克臣
(信息工程大学,河南郑州 455001)
针对基于Web服务的应用系统健壮性问题,本文着重分析影响系统健壮性的主要因素,运用贝叶斯理论及方法,建立了基于Web服务的应用系统健壮性评价算法。本文给出的算法不仅可以评价基于Web服务的应用系统健壮性的整体风险,还可以对组成各功能组件存在的局部风险进行评价。通过示例表明,本算法可以有效地对基于Web服务的应用系统健壮性状态进行全面评价。
基于Web服务的应用系统;健壮性状态分析;贝叶斯理论;评价算法
基于Web服务信息应用系统(以下简称为应用系统)的应用领域已由原来传统的、小型业务系统逐渐向大型的、关键业务系统转变,而网上用户有意或无意的网络攻击方式、攻击水平也越来越高,这种增长已超越了程序开发人员所能采取的安全防御措施,因此造成了网络攻击与破坏事件层出不穷,应用系统瘫痪。为此分析、评估应用系统的健壮性问题理应受到极大重视。
应用系统的健壮性是衡量系统对破坏事件反应、容错和恢复的能力。影响应用系统健壮性的因素有:跨站脚本漏洞、注入类问题、任意文件执行、不安全的对象直接引用、跨站请求截断攻击、信息泄露、用户验证和Session管理缺陷、不安全的加密存储、不安全的通信、没有对URL(统一资源定位地址)路径进行限制等[1,2]。对应用系统健壮性评价:(1)评价破坏事件发生的可能性;(2)当破坏事件发生时系统对其反应、容错和恢复的能力。
本文将基于Web服务的信息应用系统包含的主要功能组件作为评价关键指标,并形成评价指标体系,在此基础上,根据贝叶斯理论与方法,提出计算破坏事件产生的概率算法和系统健壮评价算法[4]。
不同功能的应用系统,它组成的功能组件是不同的,但都具有用户顺利和Web站点实现交互,应用系统的一切活动都具有与后台数据库接口的功能。通常情况下,一个完整的应用系统包含以下几个核心功能组件[2]:
用户接口代码:用户接口代码是应用系统的表示层,它是将客户端和Web服务器相连的一个接口,正是用户接口代码创建了站点的可视界面,其编写方式主要以JavaScript,VB,Java,HTML以及ActiveX为主。
Web应用服务器软件:它是确保用户浏览器以及Web应用能够正常通信的组件,主要处理一些HTTP消息请求或管理组用户会话等。目前我们所用的Web站点基本上都是使用的第三方厂商提供的Web服务器,比如IIS和Apache。
前端系统:前端系统的主要作用是能够与用户接口代码和后台系统进行直接的交互,在用户接口代码传输客户端所提供的信息之后,前端系统进行及时的处理,比较具有代表性的有CGI、ASP以及JSP代码等。
后台系统:作为整个应用系统的驱动组件,它的作用是直接和数据库系统对接,处理真正的商务逻辑,Web应用系统中的后台系统一般是由客户定制而开发的。
数据库系统:在应用系统中的数据库系统主要是一些第三方的数据库软件,比如MySQL和DB2等。
因此对于一个应用系统,上述核心功能组件的健壮状态必然影响系统的健壮状态,因此必须对每个功能组件都进行相应的控制[2]。所以,应用系统健壮的关键指标主要由用户接口代码、服务器软件、前端系统、后台系统及数据库系统决定,因而有以下应用系统健壮性综合模型:
这里,R表示应用系统健壮状态,C表示用户接口代码,S表示服务器软件,F表示前端系统,B表示后台系统,D表示数据库系统。
应用系统健壮状态评价的一般过程可以用下图描述。
Web应用系统评价过程图
3.1 基础贝叶斯理论模型
于是,当事件A发生的概率P(A)>0及P(B)>0时,乘法公式通常表示为:
全概率公式:如果所有相关事件B1,B2,…,Bn,满足下述条件:
(1)事件B1,B2,…,Bn互不相容,即事件的交运算Bi∩Bj= ∅(i≠j)
贝叶斯公式[3]:对于任一事件A,如果P(A)>0,全概率公式(2)成立,则结合公式(1)有贝叶斯公式
这里,P(A|Bi)指先验概率,表示“原因”;P(Bi|A)指后验概率,表示“结果”,i=1,…,n。
3.2 基于贝叶斯理论的应用系统健壮性状态评价算法
选择应用系统健壮评价多种结论中的两个结论,记为:M1:结论1中假设发生且发生的事件,M2:结论2中假设发生且发生的事件;P(M1):M1发生的概率,P(M2):M2发生的概率[4];H:新的影响系Web系统健壮性的事件;P(M1|H):H事件下M1发生的概率;P(M2|H):H事件下M2发生的概率;P(H|M1):M1事件下H发生的概率;M2:事件下H发生的概率。
根据公式(3),得到评价公式:
对P(M1|H)和P(M2|H)的计算分析如下:
设Lu和Ld分别为评价结论可以接受的最低阀值和不能接受的最高阀值。记:P1=P(M1|H),P2=P(M2|H)。那么,有如下健壮评价结论分析方法[4]:
(1)若P1≥Lu,P2≥Lu,则P1和P2对应的评价结论M1和M2都有可能被接受,比较P1和P2的大小,较大者对应的评价结论优先被接受;(2)若P1≥Lu,P2<Ld,则P1对应的评价结论M1被接受;(3)若P1<Ld,P2≥Lu,则P2对应的评价结论M2被接受;(4)若P1<Ld,P2<Ld,则P1和P2对应的评价结论M1和M2都不能被接受,需要通过其他渠道获得更多的相关信息。
假设应用系统Ω按照功能分为n个部分B1,B2,…,Bn,每个功能部分都可能受到破坏,且受到破坏的概率分别为P(B1),P(B2),…,P(Bn)[4]。那么,有P(Bi)>0(i=1,…,n)且Bi∩Bj=∅(i≠j),
应用系统中用户接口代码C、服务器软件S、前端系统F、后台系统B和数据库D功能组件,受到破坏的概率P(C|Bi),P(S|Bi),P(F|Bi),P(B|Bi),P(D|Bi)可以由历史数据计算获得,i=1,…,n。P(C),P(S),P(F),P(B)和P(D)分别为C,S,F,B和D发生的概率,也依据相关的历史数据统计获得。
算法:给定上限Lu和下限Ld。
(1)按照上述评价方法,在已计算的P(C),P(S),P(F),P(B)和P(D)基础上,可以对应用系统健壮性分别在用户接口代码,服务器软件,前端系统,后台系统和数据库系统方面存在的破坏事件进行评价。如果发生新的破坏事件R,并且已知条件概率P(R|C),P(R|S),P(R|F),P(R|B)和P(R|D),转(2)[4]。
(2)根据(1)中的数据,计算:
计算可得到应用系统中用户接口代码,服务器软件,前端系统,后台系统和数据库功能组件受到破坏的评价结果。转(3)。
(3)应用系统健壮评价,计算:
通过上述3步计算,可以得到应用系统健壮性状态的评价结果。
设n=5,B1=C,B2=S,B3=F,B4=B,B5=D,带入上式,计算评价结果为:
假设某应用系统的用户接口代码C、服务器软件S、前端系统F、后台系统B和数据库D功能组件存在被破坏风险,且发生的概率为:P(C)=0.8,P(S)=0.5,P(F)=0.7,P(B)=0.5和P(D)=0.5,影响应用系统健壮性状态R的概率为:P(R|C)=0.6,P(R|S)=0.4,P(R|F)=0.6,P(R|B)=0.4,P(R|D)=0.5。将值带入计算公式:
(1)各功能组件被破坏风险评价。用户接口代码引起健壮风险的可能性为:
(2)应用系统整体被破坏风险评价。将用户接口代码C、服务器软件S、前端系统F、后台系统B和数据库D功能组件存在被破坏风险概率及其引起系统被破坏风险概率值带入公式计算系统的潜在风险为:
P(R)=P(C)P(R|C)+P(S)P(R|S)+P(F)P(R|F)+P(B)P(R|B)+P(D)P(R| D)=0.9
由评价结果可知:该应用系统有较大被破坏的风险,因此系统的健壮性状态较差。
本文在分析应用系统构成的主要功能组件为用户接口代码、服务器软件、前端系统、后台系统和数据库数据操作的基础上,形成了应用系统健壮性状态评价指标体系;采用贝叶斯理论,建立了应用系统健壮性评价算法。该评价算法可以对应用系统组成的用户接口代码、服务器软件、前端系统、后台系统和数据库数据操作功能组件在运行时存在被破坏风险分别进行评价,也可以对应用系统运行时整体存在被破坏风险进行评价。用示例示范了评价算法的使用,验证了算法的可信性。如果将Web系统构成的功能组件划分更小,即评价指标更细化,应用系统存在的被破坏风险即健壮性状态的评价结果将更具有参考价值。
[1]许晓冯.Web应用系统的安全威胁及其防护[J].信息化研究,2009,35(12):1-2.
[2]朱玉林.试论Web应用系统的安全性测试技术[J].电脑编程技巧与维护,2013,2:92-92.
[3]戴锋,邵金宏,王力.军事运筹学导论[M].北京:军事谊文出版社,2004.
[4]王光伟等.基于贝叶斯理论的高校财务风险评价方法[J],信息工程大学学报,2013(1):114-117.
TP391
A
1003-5168(2014)04-0010-03