在21世纪做生意,自动化就是问题的实质!当然,Web应用给企业带来了获得在全球范围数以百万计潜在客户的灵活性,但安全问题的威胁却日益严重。
据Acutenix,Web应用安全行业的领导者,最近的独立分析指出,所有的网络攻击中75%是在Web应用程序level进行的。此外,该公司已经表明,至少有70%的网站是在可能被黑客直接攻击的风险之下!随着越来越多重要和敏感的数据被存储在Web应用程序中,数据相关的处理也相应增加,网络应用程序的安全测试已经变得至关重要。
安全性测试是为了确保一个web应用程序有足够的能力,防止未经授权的用户访问资源和数据而执行的。在Web应用程序和其他客户端服务器应用程序,安全性测试起着至关重要的作用,因为它可以帮助你在正在进行中的网站或Web应用程序中找出漏洞或弱点。
然而,在你开始Web应用程序安全性测试之前,有几个很重要的你需要知道的有关安全测试中使用的术语。 这里是一些会经常会在Web应用程序测试中使用到的常用术语:
“漏洞”——这不过是一些Web应用程序中的弱点。其背后的主要原因可能是在应用程序中的bug。
“URL处理”——很多web应用程序通过URL来实现客户端和服务器之间的交互或者共享信息。修改URL中的某些信息可能会导致服务器不确定行为。
“SQL注入”——这不过是通过Web应用程序用户界面向服务器执行的查询中插入SQL语句的过程。
“XSS(跨站脚本)”——每当用户在web应用程序的用户界面插入HTML或其他任何客户端脚本,并且当其被其他人可见时,这被称为跨站脚本!
“欺骗”——这个意味着创造外观类似的网站或电子邮件的骗局。
一旦你熟悉了所有的名词,下一步是开始了解安全测试的不同属性。在执行安全测试的网站或Web应用程序中,有七个基本属性,涵盖了包括认证,授权,保密性,可用性,完整性,不可否认性和韧性。让我们详细了解一下它们:
认证:这不过是一个访问系统前确认访问者身份的过程。只有在成功破解验证过程的情况下才允许用户访问网站或Web应用程序。
授权:一旦用户通过认证,授权就可以用来限制用户访问基于其身份的某些功能。
保密性:这基本上是用来验证是否任何未经授权的用户和无此权限的用户都不能够访问该信息。它有助于保护来自用户的信息和资源授权。
可用性:它将检查系统是否在除了维护安全补丁和升级之外可以让授权用户随时使用。此外,系统的停机时间应尽可能短,来使系统有更高的可用性。
完整性:它保证了信息接收的传输过程中不被修改,并确认是否给不同组的用户都提供了正确的信息。
不可否认性:它追踪谁正在访问系统,那些请求被拒绝,以及其他类似时间戳,IP地址等等的细节。
韧性:它会检查系统是否有足够承受攻击的能力。这可以通过使用加密来实现。
这些都是Web应用程序安全测试的主要属性。然而,这个列表并不详尽。好了,那我们可以在安全测试执行哪些测试? 这里有一些安全测试的主要类型:
安全审计:它主要包括开发应用程序的直接检验。它还包括代码演练。
安全扫描:它涉及到扫描Web应用程序或系统和验证。在这种测试中,审计人员主要检查并找出应用程序中的缺陷。
漏洞扫描:将测试该应用程序的所有可能的漏洞。大多数时候它是利用扫描软件或应用程序来扫描漏洞。
风险评估:这是一种涉及基于损失的类型和损失发生可能性的分析和决定风险的方法。
状态评估及安全性测试:它包括了为了达到安全目的的安全检测,风险评估和道德黑客攻击的组合。
渗透测试:在该方法中,测试人员强行访问和输入被测试应用。测试人员将尝试使用一些其他的应用程序或一些组合应用程序的漏洞,来访问一个网站或系统。
道德黑客:这都是在一个网站或web应用程序的安全性测试中强行入侵外部元素。它也包括了一系列的渗透测试。
请确保您了解并记住所有在这里的介绍,来使您的Web应用程序安全测试有效且成功。希望这些信息可以帮助你成功地执行安全测试。
作者简介: Prashant Chambakara是测试自动化专家。他目前正在与TestingWhiz(为测试Web应用程序自动化的工具)合作。 Prashant喜欢参加并通过博客,文章和会议演讲活动来对测试社区做出贡献。他的Twitter名是@prashant_geek。
【英文原文:http://www.softwaretestingtimes.com/2014/01/Website-Security-Testing-Concepts.html】
{测试窝原创译文,译者:大头}
译者简介:大头,在读日本九州大学修士,计算机专业,主研究方向为文本挖掘,及自然语言处理。