Web 应用安全利器:IBM Rational AppScan(部分摘抄)

原文链接:

第一部分:https://www.ibm.com/developerworks/cn/rational/r-cn-appscanusage/

第二部分:https://www.ibm.com/developerworks/cn/rational/r-cn-appscan2/

 

Web 应用安全现状

很多开发人员对 Web 安全有着片面的认识,认为只要建立了防火墙,设置了入侵检测系统,部署了网络安全工具,Web 应用的安全就可以高枕无忧了。的确,通过以上措施确实可以从网络以及系统层面增强 Web 应用的安全性,但它片面强调了硬件的作用却忽视了 Web 应用本身的安全问题。对于存在缺陷的应用来说,再多的防护措施也将形同虚设。Web 安全是各种因素的综合体,涵盖了网络、操作系统、应用服务器以及 Web 应用本身的安全问题,任何方面的缺失都会将应用暴露于黑客的攻击之下。著名统计机构Gartner的报告称发生在网络上的攻击当中,大约 75% 是针对 Web 应用的;而另外一项统计数据更是让人不安,约 67% 的 Web 程序是存在安全缺陷的

开放 Web 应用安全组织 OWASPOpen Web Application Security Project)发布了2010年 Web 应用十大安全缺陷,与上一榜单相比:注入缺陷(Injection flaws)位列榜首,跨站脚本攻击(Cross Site Scripting) 退至第二;错误安全配置(Security Misconfiguration)与非法链接跳转(Unvalidated Redirects and Forwards)首次上榜,分列第六,第八位;恶意文件执行(Malicious File Execution)与信息泄露/异常处理 (Imformation Leakage and Improper Error Handling)跌出前十。

为使读者对 Web 安全问题有所了解,在此只对 SQL Injection(注入缺陷的一种)进行简单介绍,如果读者感兴趣可以学习本文的参考资料或者访问 OWASP 官方网站以获得更多信息。对于用户登录来说,大多数程序都会使用如下的 SQL 语句对用户名和密码进行验证:

1

SELEECT * FROM user_table WHERE user_name = '' AND password = ''

通常情况下上述 SQL 语句可以对用户账号进行有效的检测,但是如果用户输入的账号信息为:用户名 'or 1 = 1--;密码 test,那么登陆程序拼接出的 SQL 语句将变为:

1

SELEECT * FROM user_table WHERE user_name = '' or 1 = 1--' AND password = 'test'

数据库在执行 SQL 语句时会将 "--" 后面的内容作为注释忽略掉,其结果是上述 SQL 语句永远返回真,一个非法的用户获得了网站的登录权限。为了防止此类问题我们通常会对用户输入数据的合法性进行校验,同时使用 预编译语句将用户输入作为参数传递到SQL语句中。

Rational AppScan 初识

Web 安全检测主要分为两大类,分别是白盒检测和黑盒检测。白盒工具通过分析应用程序源代码以发现问题,而黑盒工具则通过分析应用程序运行的结果来报告问题。Rational AppScan(以下简称 AppScan)属于后者,它是业界领先的 Web 应用安全检测工具,提供了扫描、报告和修复建议等功能。为使本文达到更好的效果,在继续文本前读者最好先从 developerWorks 网站下载并安装 Rational AppScan 试用版(参见参考资料),安装完成后导入证书激活产品。证书的有效期为 30 天,授予了使用产品全部功能的权限,但是用户只可以扫描本机(localhost)或者 Rational AppScan 测试站点(http://demo.testfire.net)上部署的应用程序。需要说明的是登录 http://demo.testfire.net 站点的用户名和密码为:jsmith / Demo1234,该登录账号在后面的章节中会用到。

开始一次扫描

扫描就是 AppScan 对站点进行测试以发现安全漏洞的过程,首先它会对站点进行一次 Explore(其行为与网络爬虫类似)过程,从某一起始 URL 开始通过页面间的链接不断探索,直到站点的所有页面都被访问或者达到某设定的最大值。在 Explore 的同时,AppScan 会分析每一个发现的页面并确定是否需要对其进行测试。如果需要,AppScan 将根据设定的测试策略(后面章节有对测试策略的详细介绍)为其创建测试用例,测试用例的数量由测试策略包含的规则集决定。Explore 完成后,AppScan 将根据 测试用例对站点进行测试并分析站点的响应信息以发现安全缺陷。AppScan 引入了 扫描工程 的概念对安全扫描进行管理,通过 扫描工程 用户可以配置各种参数、保存扫描结果等。
 

 

 

你可能感兴趣的:(Web安全)