Web应用安全风险评估研究
2011-12-27谢彦彬
潘 恒,谢彦彬
(1.中原工学院,郑州450007;2.郑州市计算机网络安全评估重点实验室,郑州450007)
Web应用安全风险评估研究
潘 恒1,2,谢彦彬1,2
(1.中原工学院,郑州450007;2.郑州市计算机网络安全评估重点实验室,郑州450007)
针对Web应用程序中存在的漏洞问题,提出了符合Web应用安全特点的风险评估方法,给出了具体的评估流程及算法,并在此基础上对Web应用安全风险值进行了模糊处理,从而使评估结果更加准确.
Web应用安全;风险评估;模糊处理
随着互联网技术的迅猛发展,越来越多的关键业务依赖于Web应用技术.然而随着Web应用安全威胁的增加,这些关键业务的安全性也受到了严重挑战.
Web应用安全威胁的产生有多方面因素.一方面,Web的开放性使得Web应用本身的漏洞威胁容易被黑客利用;另一方面,Web应用代码的不规范性也导致Web应用本身在安全性方面容易出现各种漏洞.因此,作为Web应用安全的基本问题,漏洞威胁成为Web应用安全研究的重要对象之一.本文首先就Web应用安全中的SQL注入等安全漏洞问题进行了详细分析,在此基础上提出了Web应用安全风险评估流程和评估算法.
1 Web应用安全漏洞
目前,常见的Web应用安全威胁有SQL注入、跨站脚本漏洞、跨站请求伪造、缓冲区溢出、目录遍历、远程文件包等.下面介绍几种典型的 Web应用安全威胁.
1.1 SQL注入漏洞
SQL注入是指向服务器端提交一段提前构造的具有攻击性的SQL语句,这些语句可以改变程序的原始执行结果,实现攻击者的意图[1].SQL注入的基本思想是:在用户输入中插入一些特殊符号,使系统构造出来的SQL语句在执行查询功能时,要么改变查询条件,要么附带执行攻击者插入的SQL语句,最终达到攻击的目的.
SQL注入存在于网页中各种用户数据提交的地方,攻击者主要通过HTTP协议以表单、Server变量、Cookie等方式将SQL注入语句提交到服务器,进而达到攻击的效果.由于SQL注入攻击技术难度不高、危害大且普遍存在的特点,使得SQL注入漏洞在整个Web应用安全漏洞中所占比重较高.
1.2 跨站脚本漏洞
跨站脚本漏洞是指将恶意数据或代码插入到远程HTML代码的Web页面中,普通用户认为该页面是安全的,但浏览器下载该页面时,浏览器将解释执行带有恶意的嵌入脚本,导致用户受到攻击[2-3].跨站脚本漏洞按其形成原因主要分为3种:反射型跨站脚本漏洞、存储型跨站脚本漏洞和基于DOM的跨站脚本漏洞.
从某种程度上说,跨站脚本漏洞是在Web应用程序中发现的最为普遍的漏洞.攻击者可以利用跨站脚本漏洞盗取被攻击者的Cookie等隐私信息,读取本地敏感文件,访问系统剪切板,监视键盘记录,进行DDOS攻击,甚至可以扫描本地其他计算机等.
1.3 跨站请求伪造漏洞
跨站请求伪造本质上是Web应用开发过程中的安全漏洞.在网站实现中,没有足够强的校验手段;攻击者可利用网站对用户浏览器所发出的HTTP请求的信赖,达到攻击的目的[4].跨站请求伪造成功的前提条件是:攻击者知道用户访问的Web服务器信息,诱使用户点击恶意网站的链接;用户可以自动通过身份验证或者已经通过身份验证;网站验证用户提交的数据时不检查HTTP Referrer信息的真伪;攻击者事先构造好所有的FORM数据项.
1.4 缓冲区溢出漏洞
缓冲区溢出是一种很典型的软件漏洞,它是指攻击者向Web应用程序发送超长恶意数据,使程序处理这些数据时,超过预设缓冲区范围,从而导致数据溢出等后果[5].缓冲区溢出可以出现在Web服务器中,也可以出现在Web应用程序中.在不同的位置出现缓冲区溢出,会造成不同的后果.比如,若某个邮件服务器存在这种漏洞,当用户向该服务器发送带有恶意代码的邮件时,攻击者可以轻而易举地获取Root用户权限.
2 Web应用安全风险评估流程及算法
2.1 Web应用风险评估流程
制定合理的Web应用安全风险评估流程是实施Web应用安全风险评估的前提.风险评估涉及技术、资产和管理等诸多方面,是一个复杂的综合过程.限于篇幅,本文仅从技术,主要是从Web应用安全漏洞分析的角度考虑如何评估Web应用程序的安全.本文采用定量与定性相结合的方法分析Web应用安全风险评估.首先采用定性方法识别系统存在的漏洞,然后采用定量方法设定漏洞损害度级别和权重.图1所示为Web应用安全风险评估流程图.
2.2 SQL注入漏洞检测方法
在Web应用安全风险评估流程中,漏洞的检测必不可少,它是影响风险评估结果的一个重要环节.针对不同的Web应用安全漏洞,具体的检测方法也不同.下面以SQL注入漏洞为例,介绍一下Web应用安全漏洞的检测方法.
SQL注入漏洞的检测方法主要有2种:基于异常反馈信息的检测方法和经典的1=1、1=2测试方法.2.2.1 基于异常反馈信息的检测方法
基于异常反馈信息的检测方法是向Web应用程序进行异常输入,从而造成Web服务器出错,通过分析反馈的错误信息,可以推断出 Web应用程序的信息,从而方便攻击者进一步构造SQL注入语句,以达到攻击Web应用程序的目的.因此,如果Web应用程序的服务器在异常输入的情况下产生错误报告,并且可以检测到这些异常信息,则测试者可以认为该注入点存在SQL注入漏洞.
图1 Web应用安全风险评估流程图
2.2.2 经典的1=1、1=2测试方法
并不是每台服务器的IIS都会把具体的错误报告返回到客户端.比如,在某个Web应用程序中包含cint(参数)之类的语句,即使注入没有成功,但服务器仍然会报错,只是具体的报错信息被统一设置为:“处理URL时服务器出错,请联系管理员进行处理”.另外,如果程序员对程序中的特殊字符进行过滤,也无法检测出注入漏洞.比如,程序员把单引号过滤掉,则在使用单引号进行测试时,就无法检测到SQL注入漏洞.
在上述情况之下,就应该使用经典的1=1、1=2测试方法.首先,构造测试方案.例如,以数字型参数作为传入参数的判断方法,测试方案如下:
①1http://seca.zzti.edu.cn/Detail.aspx?id=1;
②2http://seca.zzti.edu.cn/Detail.aspx?id=1 and 1=1;
③3http://seca.zzti.edu.cn/Detail.aspx?id=1 and 1=2.
发送测试方案请求,根据返回的结果判断该Web应用是否存在SQL注入漏洞.
2.3 基于漏洞的Web应用风险评估算法
系统风险级别有两条基本评估原则:①木桶原理.即木桶盛水多少取决于木桶中高度最低的木板的高度.Web应用系统受攻击的可能性和程度主要取决于系统中风险级别最高的漏洞;②当多个漏洞同时存在时,不能将系统风险级别简单等同于风险级别最高的漏洞带来的风险,而是要综合考虑系统中多个漏洞组合出的新风险级别.[6]具体操作时,定义漏洞特征库的漏洞匹配规则,通过这些规则确定存在多个漏洞时系统的综合风险级别.例如,假设 “ASP源代码泄漏”漏洞的风险值为3,该漏洞的风险级别为中,当系统仅存在这一种漏洞时,攻击者可以获取一些关于服务器的机密信息,如登录网站时的用户账号和密码.再如,假设系统仅存在另一种“远程提升用户权限”漏洞,该漏洞的风险值也是3,风险级别也为中.若系统同时存在上述两种漏洞时,攻击者就可以利用 “远程提升用户权限”漏洞先将 “ASP源代码泄漏”漏洞中的普通用户权限提升为系统用户权限,进而对系统进行操作,达到破坏系统的目的.这种组合后的情况使得系统的风险值变高,显然不能简单地依据这两个漏洞的风险级别来把组合漏洞风险判定为中级,必须依照它们的组合漏洞风险级别进行重新评估.
根据上述原则,本文在充分考虑系统漏洞相互组合关系的基础上,设计出新的Web应用安全风险评估算法.具体算法如下:
依照第一条评估原则:针对系统中检测出的所有漏洞,选择漏洞风险值最高者暂时作为系统风险值.
输入参数:
漏洞流行度级别P1i:第i个漏洞被公开和利用的程度;
漏洞容易度P2i:利用第i个漏洞的难易程度,即所要求的工具质量和技术水平;
漏洞损害度P3i:利用第i个漏洞时所造成的影响;
漏洞冒险度P4i:利用第i个漏洞时攻击者被发现的难易程度以及惩罚轻重;
漏洞流行权重W1i:第i个漏洞的流行度在漏洞风险值评定中所占比重;
漏洞容易权重W2i:第i个漏洞的容易度在漏洞风险值评定中所占比重;
漏洞损害权重W3i:第i个漏洞的损害度在漏洞风险值评定中所占比重;
漏洞冒险权重W4i:第i个漏洞的冒险度在漏洞风险值评定中所占比重.
中间参数:漏洞风险值Mi,即第i个漏洞的风险值.
输出参数:Web应用安全风险值M.其计算公式如下:
依照第二条评估原则,首先分析不同Web应用安全漏洞之间的关系,根据多种漏洞同时存在于某种特定环境中时系统的危险程度(用风险值来表示)来建立漏洞组合风险匹配库,然后利用系统中检测出来的漏洞与漏洞组合风险匹配库中的匹配规则进行匹配操作.如果有一条规则匹配成功,则取该匹配规则所对应的风险值作为系统新的风险值;如果有多条规则匹配成功,则取这些匹配规则所对应的风险值中最大者作为系统新的风险值.此方法的数学表示形式如下:
用Nj表示根据漏洞组合风险匹配库中的匹配规则得到的第j(j=1,2,3,…,n)个系统风险值,用N 表示该类风险值的最大值,即 N=MAX{N1,N2,…,Nj,…}.
最后,比较得到的两个系统风险值M和N,将较高的风险值作为系统的最终风险值,即R=MAX{M,N}.
3 风险值模糊处理
目前,利用风险计算公式得到的风险值评估算法,多是精确量化Web应用安全风险,即计算出具体的系统风险值.这种算法忽略了评估中存在的不确定因素.本文采用模糊数学中的相关理论对风险值进行模糊处理.
集合论中使用特征函数来表述元素和集合的关系,即当元素x属于集合U时,特征函数值为1,否则为0.若集合U中存在一定程度上属于或者不属于该集合的元素,那么这种集合就称为模糊集合.“隶属度”可以清晰地表示元素与模糊集合的关系,即对于论域中的每一个元素a,都在闭区间[0,1]上存在一个对应的数字指标,用来表示a相对于模糊集合A的隶属程度,并用μA(a)来表示,称为元素a对模糊集合A的隶属度.因此,我们引入如下定义:
定义:假设论域为X,u为X中的元素.对于任意一个元素u∈X,给定如下的映射:u→μA(u)∈[0,1],则称“序偶”组成的集合A={u|μA(u)}为X 上的模糊集合.其中,∀u∈X,μA称为模糊集合A 的隶属函数,μA(u)称为u对A 的隶属度[7].
显然,μA(u)值越大,表示u对A 的隶属度越高;μA(u)=0时,表示u不属于A;μA(u)=1时,表示u肯定属于A.
本文引用文献[8]中的九级梯形隶属度函数对风险值R进行模糊处理.其中,通用梯形模糊数为A=(a,b,c,d;v),0<v<1,a,b,c,d 均为实数.通用梯形模糊数可表示为:
其中,九级梯形隶属函数所对应的九级风险级别分别为 Absolutely-Low、Very-Low、Low、Fairly-Low、Medium、Fairly-High、High、Very-High、Absolutely-High.比如:当u=0.76时,u的取值范围决定了其隶属度应该在梯度为六级或者七级的隶属函数中得到.下面给出文献[8]中九级梯形隶属函数方法的第六梯度和第七梯度的隶属函数:
由上述公式可以看出:当u=0.76时,风险值对第六级的隶属度为1,对第七级的隶属度约为0.67,而对其他等级的隶属度为0,可见,它偏向第六级,风险等级可描述为Fairly-High.Fairly-High就是风险值经过模糊处理后的最终风险级别.
4 结 语
目前,对于Web应用安全的研究还局限于漏洞分析和检测,对于Web应用安全评估的研究也比较少.本文分析了Web应用安全威胁,在此基础上专门针对Web应用安全风险评估进行研究,对Web应用安全风险值进行模糊处理,使评估结果更加准确,为 Web应用的安全维护提供了指导.
[1] 高少杰.SQL注入攻击防御方法研究[D].昆明:云南大学,2010.
[2] 邱勇杰.跨站脚本攻击与防御技术研究[D].北京:北京交通大学,2010.
[3] Wikipedia org.Cross-site Scripting[EB/OL].[2011-10-16].http://en.wikipedia.org/wiki/Cross-site_scripting,2011.
[4] 褚诚云.跨站请求伪造攻击:CSRF安全漏洞[J].程序员,2009(1):98-100.
[5] 徐亮.基于网络的Web应用程序漏洞检测系统研究与实现[D].长沙:国防科学技术大学,2005.
[6] 雷航.漏洞检测与风险评估技术研究[D].成都:成都电子科技大学电子技术学院,2005.
[7] 潘宏伟.基于模糊层次分析法的信息安全风险评估研究[D].南京:南京师范大学,2007.
[8] 唐慧林.基于模糊处理的系统风险评估方法研究[D].郑州:中国人民解放军信息工程大学,2005.
Research of Web Application Security Risk Assessment
PAN Heng1,2,XIE Yan-bin1,2
(1.Zhongyuan University of Technology,Zhengzhou 450007;2.Zhengzhou Key Lab of Computer Network Security Assessment,Zhengzhou 450007,China)
There are many vulnerabilities problems in the Web application of the programs.In this paper a risk assessment method according to the features of the web application security is put forward.A specific assessment process and algorithm is given,In order to make the risk assessment accurate,a Fuzzy treatment to the evaluation value is performed.
Web application security;risk assessment;Fuzzy processing
TP393
A
10.3969/j.issn.1671-6906.2011.06.011
1671-6906(2011)06-0053-04
2011-10-21
潘 恒(1977-),女,河南新乡人,副教授,博士.