加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

Web压力测试及测试工具分析

发布时间:2022-10-24 13:33:22 所属栏目:安全 来源:转载
导读: 摘 要:随着互联网的普及与互联网技术的成熟,以电子商务、社交网络为代表的Web应用成为互联网行业的核心应用。这类应用的分布式部署、多客户并发访问、处理相对集中在服务器端的特点使其测

摘 要:随着互联网的普及与互联网技术的成熟,以电子商务、社交网络为代表的Web应用成为互联网行业的核心应用。这类应用的分布式部署、多客户并发访问、处理相对集中在服务器端的特点使其测试不同于一般应用程序的测试。该文介绍了Web应用程序压力测试的相关概念、测试流程及同时对压力测试工具对比分析,为测试人员选取适当的工具提供参考。

关键词:Web测试 安全测试 安全测试工具

中图分类号:TP31 文献标识码:A 文章编号:1672-3791(2015)04(b)-0022-02

随着Web2.0、社交网络、网络支付等等一系列新型的互联网产品的诞生,基于Web环境的应用越来越广泛,越来越多的重要数据都存储在Web应用上,Web业务的迅速发展也引起黑客们的强烈关注。黑客利用SQL注入、跨站式脚本攻击、跨站点伪造请求等方式,得到Web服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害。因此对于Web应用程序测试来说,使用Web安全测试工具,进行安全测试可以最大限度的发现安全漏洞、消除安全隐患。

1 基本概念

1.1 安全性测试

所谓安全性测试是有关验证应用程序的安全服务和识别潜在安全性缺陷的过程。安全性测试并不最终证明应用程序是安全的,而是要提供证据表明,在面对敌意和恶意输入的时候,应用仍然能够充分地满足既定需求。

1.2 Web安全性测试

Web安全测试就是使用多种工具,来模拟和激发Web应用活动。完整的Web安全性测试可以从部署结构、输入验证、身份验证、配置管理、敏感数据保护、会话管理、参数操作、异常管理、审核和日志记录等几个方面入手。

2 安全隐患

2.1 SQL注入攻击

所谓SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。

2.2 跨站式脚本攻击

跨站脚本攻击(Cross Site Scripting)是一种经常出现在web应用中的计算机安全漏洞,它允许恶意Web用户将代码植入到提供给其他用户使用的页面中。XSS攻击分成两类,一类是来自内部的攻击,主要指的是利用程序自身的漏洞,构造跨站语句,另一类则是来自外部的攻击,主要指的自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。

2.3 跨站点请求伪造

跨站请求伪造(Cross-site request forgery),是一种依赖web浏览器的、对网站的恶意利用,通过强迫访问主体的采用浏览器的方式向已登陆的Web应用系统发送一条伪造的HTTP请求,包括受害者会话信息、身份信息等内容,从而导致相关的应用程序认定该请求是受害者本人所发出的合理请求。

2.4 无效的认证及会话管理

对应用程序的访问者的认证及会话管理,在执行过程中常常发生各种问题。导致攻击者通过数据包抓取、重放攻击等手段,获取到密码、密钥、会话授权,从而盗取用户身份。

2.5 不安全对象的直接引用

当某种内部私有对象的引用被公开时,例如一个文档、目录服务结构等关键信息时,可能发生这种情况。由于缺乏对访问者的身份检查、访问控制检查或其它安全保护措施,攻击者们能够利用这些引用信息对那些未获授权的数据进行访问。

2.6 安全配置错误

好的安全保障体系需要一套经过精心定义及部署的设置方案,其对象包括应用程序、系统框架、应用程序服务、页面服务、数据库服务以及运行平台等。上述这些设定应该被精确地定义、执行和保存,然而事实上大多数情况下,用户会直接使用安全保障系统的默认设置,而其中有许多项目并未被正确配置,包括全部软件的及时更新以及应用程序所要调用的全部代码库。

2.7 敏感数据明文传递

许多Web应用程序,在信息传输、存储时,并未采用加密或散列方法来保护这些敏感内容,例如用户口令、证件号码、信用卡信息等。攻击者们可以窃取或修改这些数据,从而冒用受害者身份、进行信用卡诈骗或其它犯罪行为。

2.8 URL伪造

许多Web应用程序在跳转到那些受控访问资源之前,都会检查访问者的URL。应用程序应该在每次接收到页面访问请求时,都进行一次这样的检查,否则攻击者们将可以通过伪造URL的方式随意访问这类隐藏页面。

2.9 传输层数据完整性保护

应用程序常常无法实现对网络通信内容完整性的验证、加密、保护等功能。当这种情况发生时,应用程序有时会选择支持那些低强度的加密算法、使用过期的或者无效的验证信息,或者是无法正确应用这些安全保障功能。

2.10 未经验证的转发与重定向

页面应用程序经常将使用者的访问请求重新指向或转发至其它网页和网站上,并使用不受信任的数据来定位目标页面。如果没有正确的验证机制在此过程中加以制约,攻击者完全可以将受害者的访问请求重新指向到钓鱼类或其它恶意软件网站上,或者将访问转发至未经授权的页面。

3 常用测试工具

3.1 SQL Inject Me

SQL Inject Me是检测SQL注入攻击的一种常用工具,它是火狐浏览器的附加组件,通过它可以检测全部架构或选中的参数所能受到的各种攻击方式,或者是检测该工具中预设的九种常见攻击类型。当在工具中选定攻击方式后,再执行SQL Inject Me,则该工具的运行状况,包括通过在选项中添加或删除字符串的方式进行攻击。

3.2 ZAP

Zed攻击代理(简称ZAP),通常用来检测跨站式脚本攻击,它是一款“易于使用的,帮助用户从网页应用程序中寻找漏洞的综合类渗透测试工具”。ZAP包含了拦截代理、自动处理、被动处理、暴力破解以及端口扫描等功能,同时包含了蜘蛛搜索功能。

3.3 HackBar

HackBar是火狐浏览器插件,可以模拟若密钥保护及散列保护。主要用来检测不具备SSL/TLS的保护的访问会话。如果应用系统对会话ID,采用MD5码或是SHA1散列形式的密码所保护,可以采用HackBar方式进行模拟,检测是否通过中间人攻击或是通过XSS漏洞获取到会话ID。HackBar在对Base64,各种URL以及HEX的编码及解码方面也非常实用。

3.4 Burp

Burp是一款Web应用程序安全漏洞分析工具,可以对路径及目录浏览过程进行监测。Burp同样可以作为一款代理软件来使用;跟ZAP类似,只要在FoxyProxy上进行相应设置即可。启动Burp,然后将你的浏览器指向要访问的目标地址。通过WebGoat,我们能够检测到是否有规避路径的资源被非授权访问。

3.5 Tamper Data

Tamper Data是检测CSRF攻击的一种常用工具,它是火狐浏览器的附加组件。在检测GalleryApp时,可使用Tamper Data来测定该GalleryApp是否在将所有参数提交给后台脚本时会容易受到CSRF攻击。

3.6 Watobo

Watobo可以使专业的安全人员能够以高效且半自动化的方式对应用程序配置的安全性进行评估。Watobo是以代理工具的角度运行的,并且需要调用Ruby中的部分内容,需要在测试环境中安装Ruby解释程序。将FoxyProxy进行设置,以使其将网络数据流通过8081端口导入Watobo,并完成最终分析。

3.7 Nikto/Wikto

Wikto是具备Windows图形用户界面的Nikto程序。通过Nikto或是Wikto能够检测Web应用程序对访问者的URL进行查询之后才向那些被保护的链接及按钮提交请求当然不错,但如果应用程序并没有在每次接到类似的访问请求时都进行监控,那么攻击者们将能够获取到这些应用程序所调用的隐藏页面。

3.8 Calomel

Calomel是对SSL连接及安全等级等信息进行验证的工具,它是火狐浏览器的附加组件。Calomel能够检测SSL的加密强度,并通过颜色来进行标识;并能够对SSL证书的真伪、状态、内容、自签名等细节进行查询。

3.9 Watcher

Watcher是Chris Weber开发的 Fiddler 附加组件,只支持IE内核浏览器测试,它在被动分析方面优势明显。使用Watcher同时还需要运行Fiddler,Watcher将会以被动状态提供对网络数据流的监视及报警功能。

3.10 其他综合测试工具

(1)N-Stalker。

N-Stalker Web漏洞扫描器是N-Stalker公司研发的一个顶级的安全评估工具。通过与知名的N-Stealth HTTP Security Scanner及其35 000个web攻击签名数据库合并,以及正在申请专利的Web应用程序安全评估技术组件,N-Stalker Web漏洞扫描器能为你的Web应用程序彻底消除大量普遍的安全隐患,包括跨站点的脚本和SQL injection,缓冲溢出,篡改参数攻击等等。

(2)Netsparker。

Netsparker是一款优秀的SQL注入安全扫描器。Netsparker与其他综合性的Web应用安全扫描工具相比的一个特点是它能够更好的检测SQL Injection和Cross-site Scripting类型的安全漏洞。Netsparker能够显示漏洞判定的准确度、支持Ajax/Javascript、采用启发式的检测模式、支持报错注入布尔注入、支持反射型、存储型跨站脚本漏洞检测。

(3)Websecurify。

Websecurify是一款开源的跨平台网站安全检查工具,是一个强大的Web应用程序安全测试环境网站安全评测,由底层向上提供了自动和手动的脆弱性测试技术的最佳组合,能够精确的检测Web应用程序安全问题。

(4)Skipfish。

Skipfish是由google出品的一款自动化的网络安全扫描工具,该工具可以安装在linux、freebsd、MacOS X系统和windows(cygwin)。Skipfish与Nikto和Nessus等其他开源扫描工具有相似的功能,但Skipfish还具备一些独特的优点。Skipfish通过HTTP协议处理且占用较低的CPU资源,因此它的运行速度比较快。Skipfish每秒钟可以轻松处理2000个请求。

4 结语

Web应用所执行的测试中,安全测试可能是最重要的,但它却常常是最容易被忽略的。一般来说,一个Web应用包括Web服务器运行的操作系统、Web服务器、Web应用逻辑、数据库几个部分,其中任何一个部分出现安全漏洞,都会导致整个系统的安全性问题。

对操作系统来说:最关键的操作系统的漏洞,例如Unix上的缓冲区溢出漏洞、Windows上的RPC漏洞、缓冲区溢出漏洞、安全机制漏洞等等;对Web服务器来说:WEB服务器从早期仅提供对静态HTML和图片进行访问发展到现在对动态请求的支持,早已是非常庞大的系统,即使发展多年的Apache也难逃经常被发现安全漏洞的缺陷,更不要说千疮百孔的IIS了;对应用逻辑来说:根据其实现的语言不同、机制不同、由于编码、框架本身的漏洞或是业务设计时的不完善,都可能导致安全上的问题;对数据库来说:数据库注入攻击一直是数据库厂商和网站开发者的噩梦。

除此之外,安全问题还存在于管理等各个方面,不完善的管理制度、缺乏安全意识的员工都会是内部的突破口,同样,一些开发工具生成的备份文件和注释也会成为Cracker发送攻击的参考资料。

对Web的安全性测试是一个很大的题目,首先取决于要达到怎样的安全程度。不要期望网站可以达到100%的安全,即使是美国国防部,也不能保证自己的网站100%安全。

对于如何保证Web应用程序的安全,首先要了解必要的安全知识,从安全风险分析入手,选择相应的安全检测工具,查找安全隐患,弥补安全漏洞,最终达到进一步加强系统安全的目标。

参考文献

[1]霍普,等著.傅鑫,等译.Web安全测试[M].北京:清华大学出版社,2010.

[2]PC Jorgensen著.韩柯,等译.软件测试[M].北京:机械工业出版社,2002.

[3]Ron Patton著.周予滨,姚静,等译.软件测试[M].北京:机械工业出版社,2002.

[4]秦明,薛胜军.威胁建模技术在Web应用程序中的应用[J].电脑知识与技术:学术交流,2007(1).

[5]吴海燕,苗春雨,刘启新,等.Web应用系统安全评测研究[J].计算机安全,2008(4).

[6]霍汉强.Web应用系统安全问题的探究[J].大众科技,2008(3).

[7]白雪.试论Web应用系统的安全性测试技术[J].网络安全技术与应用,2013(9).

相关热词搜索: 测试工具压力测试分析Web

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!