试论Web应用系统的安全性测试技术
2013-09-19白雪
白 雪
(辽宁省铁岭卫生职业学院 辽宁 112000)
0 引言
当前,很少有软件应用系统能够离开Web模式,并且也成为了今后软件最主要的发展方向。虽然对于软件测试还仅仅处于一个起步阶段,但是越来越多的软件公司开始重视它的存在。而一个系统质量的好坏,测试也是一项关键性因素。
1 Web常见的安全问题
1.1 常见分类
目前,Web应用汇面临诸多风险,对于其风险的分类以及安全漏洞也有很多种,本文主要是通过国外权威机构对于Web安全层次性的理解,从而将其大致分为了三个层次风险:
第一,网络边界安全:主要是网络拓扑结构、路由器、防火墙等方面的安全性问题,除了部分配置问题之外,绝大部分都涉及到系统分布、结构所造成的安全性问题;第二,Web应用程序安全:Web应用程序在提供服务时可能会存在安全性漏洞,这一些文体的出现主要是因为在变与存的时候,Web应用程序存在一定缺陷所引起的;第三,服务于系统安全:操作系统和在操作系统上运行的应用服务的安全,例如Unix/ Window等系统本身存在漏洞或者是其上的Web应用服务器安全存在问题,例如:Weblogic/Apache/IIS等应用服务器本身存在的安全性漏洞。
1.2 Web应用常见的安全缺陷
1.2.1 网络边界
(1)网络结构不够合理。作为Web应用服务的基础,如果存在网络结构不合理情况,例如:不合理的防火墙位置或者是不合理的Web应用服务器位置,都可能导致Web应用系统安全机制失去效力,导致Web应用完全暴露在外部攻击中,常见的拒绝服务攻击一般都是因为网络结构的不合理,无法对这一类型的攻击加以抵御,甚至是因为内部病毒的传播,也可能因为拓扑结构的不合适,导致病毒传播。
(2)传输层保护不够充分。传输层保护不够充分主要是在信息的传输过程中,第三方不可信的组件获取访问,也就是对于站点所传输的信息,没有使用SSL/TLS进行加密或者是加密机制存在一定问题,导致这一部分信息被非法用户获取,甚至是对通信内容加以篡改。
1.2.2 Web应用程序
(1)输入处理错误。在Web应用程序常见的弱点中,输入处理无措是常见的弱点之一,例如:缓冲区的溢出、命令执行、SQL注入等都是由于输入处理错误所造成的。在进行Web应用程序的输入处理,一般都是对输入信息加以验证、过滤、编解码等内容,如果信息验证不全面或者是代码中存在逻辑错误,就可能出现非法信息被当做了正常数据,从而通过Web应用程序进行逻辑处理,从而导致Web应用出现损害。在这一问题处理中,需要针对所有来自客户端的数据,例如:HTTP请求中所有内容、表单信息,都认为可能有安全风险的存在,只有通过检验,才能够被逻辑程序加以处理。
(2)输出处理错误。输出处理主要指的是应用程序如何产生输出数据,一般来说,错误的输出处理包含了协议错误、数据处理错误以及应用程序错误三个方面。如果信息被直接返回给访问者,就可能导致Web应用系统敏感的信息出现泄露的情况,或者是恶意攻击人员就可能通过返回的错误信息对于Web应用是否存在特定安全的问题加以判断。
(3)信息泄露;信息泄露主要是Web应用程序当中敏感的信息被非法进行访问,例如:在Web应用当中的用户设置信息、技术细节以及环境信息等方面的问题,一旦被泄露,就可能严重影响到Web应用。因此,需要采取一定的手段来防止信息泄露,一般,主要是以下几种原因导致信息泄露:注释代码当中存在敏感信息、对于合法与非法的的输入数据应用程序都有着不同的页面相应或者是应用程序出现了配置不当等情况。
(4)索引不安全;索引不安全主要指的是能够对敏感文件进行访问的过程对敏感信息进行访问,以此来判断文件的存在以及文件的具体内容,这一部分信息都是通过服务索引所获取的。针对这一个问题,有一个典型的例子,GOOGLE HACK通过搜索引擎从而获取了站点信息,就有可能将站点辈备份的代码位置获取、后台管理地址,甚至包含了数据库存放的地址。像这一类型的安全攻击就难以预防,这是因为对于合法请求、非法请求很难分开,如果想要解决这一问题,需要对权限加以控制,也可以通过robots.txt等手段避免不应泄露的信息被泄露出去。
2 Web服务安全性测试框架
Web服务系统的安全性测试框架主要分为了以下几个阶段,从下面的图1中可以看出:
图1 Web服务安全性测试框架
第一阶段主要是确定安全目标,确定威胁漏洞并且做好评级;第二阶段要求结合软件的具体需求以及威胁,从而确定好测试对象与内容,并且做好资源的分配;第三阶段的测试策略文档记录主要是做好应用系统中程序总统架构、缺陷跟踪变更以及资源需求的 控制,二测试计划主要是描述人员进度安全、测试环境以及安全测试需求等方面;在测试的执行以及报告阶段则是记录测试结果并且创建出测试报告。
3 安全性测试技术
3.1 体系安全性
测试Web应用系统的体系结构的安全性可以找出很多的漏洞,因此,也有利于提升Web应用系统的整体安全性。在设计阶段,检测并修复安全漏洞,就能够将后期出现的安全问题加以解决,并且也有利于提高安全测试的经济型。在开发阶段,充分考虑到目标部署环境的相关设计,才有利于完善Web应用系统,也有利于其安全性。
3.2 应用和传输安全
在Web应用系统设计完毕之后,对于系统当中的漏洞,就可以通过安全性测试对于可能存在的漏洞加以修复,并且完善未来的设计与创建工作。“黑箱子”的测试手段也就是在正常运行使用目标系统之后,可以通过对于Web应用系统正常运行不影响的方式进行远程的安全技术测试,通过黑客入侵的模拟,来实现在模拟攻击下目标系统的安全性测试。进行Web应用系统的安全性技术测试主要分为了应用级、传输级。应用级的安全性测试是通过检查Web应用系统的自我程序,并且找出设计当中可能存在的安全漏洞,在测试应用级上,主要包含了目录设置、在线超时、注册、登陆、备份、恢复等多个区域测试;传输级主要是针对Web应用系统的传输特殊性,测试目标主要是数据信息从客户端传输到服务器这一过程中的安全漏洞,这也有利于服务器拒绝非法访问能力的提升,传输级测试内容包含了防火墙、SSL、数据加密等。
总之,本论文主要是基于Web常见的安全问题,从而提出了常见缺陷和主要的安全性测试技术,希望能够对今后的Web应用系统的安全性测试技术提供一部分帮助。
[1] 于莉莉,杜蒙杉,张平,纪玲利. Web安全性测试技术综述[J].计算机应用研究.2012(11):56-57
[2] 朱辉.沈明星.李善平.Web应用中代码注入漏洞的测试方法[J].计算机工程.2010(10):77-78
[3] 马琳,罗铁坚,宋进亮,叶世伟.Web性能测试与预测[J].中国科学院研究生院学报.2005(04):96-97