Web安全测试概述

发表于:2009-6-04 13:32

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing博客转载

  1. Web应用安全与系统安全

  能取得某个系统的完全使用权是黑客的终极目标,而且这也是危害性最大的漏洞,因此操作系统数据库,底层网络设备,各种系统配置和管理方面的安全是最被重视的,也是黑客们最为觊觎的。

  Web 应用的漏洞则不然,要想单独通过Web漏洞来获得相关系统的完全使用权是相当困难的。但是Web应用漏洞却是传播性最大的,而且数量最多的,一个有点恶意的人,都能非常容易的利用Web应用漏洞造成破坏。一个好奇的儿童,一个心怀不满的雇员,都能有意无意利用Web应用漏洞。某公司的调查数据说,超过 70%的攻击其实都是利用了Web应用漏洞。

  简单地说,系统漏洞会带来少而深的攻击,Web漏洞则会带来多而浅的攻击。漏洞的风险通常都是以广播度×危害度而言,不能简单地看能危害多深。试想一个网站三天两头地被人利用Web漏洞骚扰,造成商业数据丢失,业务中断,声誉受损,不比被人直接做掉强。因此,Web应用的安全在国外已经相当重视,有专门的组织,公司在专门研究和提供服务。如果对Web安全有兴趣,可以去OWASP和WASC的网站上找资料。

  2. Web应用漏洞

  现在业界对于Web应用漏洞的总结和分类太多,不同的公司都会提一套漏洞的列表,还没有形成业界的标准。其中大家对于XSS,SQL Injection都是耳熟能详,但是国内好多人一提Web安全,也只能想到这类注入的漏洞。 如果撇开Web服务器的配置管理其他外围因素,单纯从Web应用的代码出发,我觉得Web应用的漏洞可以分为四类。代码远程执行漏洞,功能逻辑漏洞,泄密漏洞和日志漏洞。

  XSS,LDAP injection,SQL Injection等各种Injection,可疑文件上传,缓冲区溢出,这些漏洞全都是因为输入中有代码,而且这些代码通过某些方式在某处以某些权限被执行。这类漏洞是大家知道最清楚的。

  而功能逻辑漏洞则是指业务流程,认证授权方面的逻辑代码有问题。试想一个普通用户可以看其他用户的工资,使用管理员的权限。或者一个流程本来要走审批这一个过程,但是居然不审批也行。这都是逻辑代码有问题,产生了安全问题。这类安全问题国内的还不太重视,但是在OWASP上已经有了相关的文档。

  泄密漏洞是指由于异常没有处理或者其他原因造成了系统信息的泄漏。比如说我就发现过,有程序员把测试帐号写在网页的注释或者脚本里。日志漏洞这个就属于比较高级的了,可能很多Web应用本身都不记日志的,但是关键操作一定要保证日志的真实有效。我原来发现过一个系统记录的日志中的用户帐号居然是来自request里面的隐藏值,换句话说,用户改掉这个值再干操作,就再也无迹可查了。

  3. 业界现状

  安全市场三大产品:防火墙,入侵检测系统和防病毒软件。安全市场三大服务,安全培训,安全评估,系统整合。上网搜搜Web应用安全,国内基本上没有这个职位。现在国内市场上对Web应用安全的总体重视度不够。有一些大型互联网公司和专做Web应用的公司可能内部会有一些人在搞这块,安全公司基本上都是系统安全和Web安全混淆的。Web应用安全单独在市场上占的份额还不多。今年奥运会,很多网站在讲安全,但是是否是注重了Web应用安全,这点很难讲,呵呵。

  在国外,Web应用安全的市场相对成熟了,有不少现成的产品。比较有名的是IBM的APP SCAN,HP的Web Inspect。这两个工具的思想都是在软件开发的生命周期内对Web应用的风险进行控制,核心功能是黑盒漏洞探测。其实原理很简单,就是自动播放很多含有测试用例的http请求,根据http的响应来提取特征,进行漏洞识别。另外其他有些专门的工具也可以针对某一个漏洞进行测试,例如sql injection,xss等。但是由于原理局限,黑盒测试工具速度快,范围广,但是误报率和漏报率都还比较高。所以人工测试是必要地补充,而代理工具是Web安全测试中必不可少的一部分。 Webscarab,paros,charles这些代理工具都能让测试人员突破Web UI的限制,去自由地建立测试用例。在自动测试和人工测试的基础上,有一些公司,会专门测试Web应用的漏洞,进而提供相关服务。

  对Web应用漏洞发现的另外一个思路是源代码审计。通过对代码进行分析,提取特征,发现代码里的风险点。商业化比较好的是fortify。当然人工审计代码也是可行的。所以国外也有一些小公司,专门提供源代码审计的服务。另外,在最近两年的Web安全会议上,基本上发表的论文也都是关于源代码审计的。我个人觉得源代码审计应该是个主流趋势。

  在 Web应用部署之后,安全产品就比较少了,我接触过的就只有siteminder和网页防篡改工具了。网页防篡改工具是深受很多人鄙视的,我就不说了。关于siteminder,我原来在论坛上发帖问过,但是没人回。可能大家都还不了解。Siteminder在国外运用的比较多,通过部署 siteminder,可以对web资源进行细粒度的访问控制,可以认为是基于URL的访问控制,而且他提供单点登录等一些IAM产品的功能。我觉得国内应该有相关的产品,可能是不够普适,知名度还不大。

  除了产品和服务外,Web软件安全架构的研究也一直都有进展,例如struts的validator,spring的acegi,owasp的esapi和 anti samy,.NET本身也带有安全特性。很多公司对于输入过滤和权限控制方面也都有自己的代码经验,只不过没有公开而已。

  根据市场风向一直是国外刮向国内这个规律(严重违反国情的除外),Web应用安全应该是比较有前景的。现在大家都在鼓吹云计算的概念,如果云计算真能普及,估计满世界都是Web应用了,那么这方面的安全就更有前景了(呵呵,幻想一下)。当然万一Web应用发生了本质性的变革,比如说http协议推倒重来,网络架构推倒重来,从底层上解决了上层的安全问题,那么……不过我相信这个世界向来都是解决一个老问题之后,会出来很多新问题。

《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • suei8423
    2010-1-04 15:11:12

    黑河测试的话可以尝试用一下iiscan,一款完全免费的Web漏洞评估平台。

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号