| 首页 产品介绍 热点讨论 历史回顾 资料下载 相关推荐 | 使用 Rational AppScan 保证Web应用的安全性
2 、 注入缺陷
目前的Web应用中,绝大多数都会向用户提供一个接口,用来进行权限验证、搜索、查询信息等功能。比如一个在线银行应用,首先会有对注册客户进行身份验证的登录界面,在正确登录后,会提供更多交互功能,如根据客户的银行卡号信息,查询客户的最近交易、转账细节等。这些都是注入缺陷的最佳利用场景。所谓注入缺陷,就是在上述场景中,用户输入的数据被当做命令和查询的一部分,送到后端的解释器中解释执行。如果用户的输入是正常合法的,Web应用自然会返回正常合理的结果,但是,如果恶意攻击者,利用输入数据可被后台执行的原理,偷梁换柱,使用非法的输入,脆弱的Web应用会怎样呢?
下面我们举一个例子来说明注入缺陷是如何进行的。在一个交易网站中,用户必须输入产品 ID 号才可以查看该产品的详细信息。为了实现这个需求,通常会用 SQL 语句查询数据库来实现。开发人员在编写应用程序时,可能会使用如下的 SQL 语句来实现上述目的(这里仅为示例):
1) Select * from products where product_id = ` + 用户输入的 ID + ` 这里的 products 是数据库中用来存放产品信息的表,+号表示 SQL 语句需要和用户输入的真实 ID 进行拼接。如果用户输入 325 ,则该语句在执行时变为:
数据库会将 ID 为 325 的产品信息返回给用户。
2) 在界面上,需要用户输入产品 ID 的地方,黑客会输入如下数据:
可以看到,黑客并没有输入正常合法的产品编号。
3) 通过黑客的非法输入,需要执行的 SQL 语句变为:
可以看出, SQL 语句的意义就完全改变了,当产品 ID 为空或者 1 = 1 时,返回产品所有信息,而 1 = 1 是永远成立的条件,因此,黑客并没有输入任何产品编号,就可以返回数据库中所有产品的详细信息。
通过这个例子,我们可以看出,注入缺陷是风险非常高的安全漏洞,一旦Web应用中给用户提供了需要其输入数据的接口,就有可能遭到攻击,将后台的数据完全暴露在用户的面前。
上述说明的 “ 跨站点脚本攻击 ” 和 “ 注入缺陷攻击 ” ,是目前Web应用中比例最高的两种攻击手段,按照 OWASP 的项目排序,还有如下八种风险性较高的攻击方法:
在这里,我们就不过多的讨论这几种安全隐患,可以使用 3.1 节中提供的链接得到更多的描述信息。
功能和性能,往往是我们衡量应用是否满足需求的指标,但是,对于载体为 Internet 的特殊应用-Web应用而言,安全性也是必要的考量标准,皮之不存,毛将焉附?如果失去了安全性,即使功能再完备、性能再可靠的Web应用,一旦遭到黑客的攻击和破坏,一切都失去了意义。因此企业,尤其是提供Web应用的企业,一定要加强对应用安全的重视程度。
针对目前Web应用安全性不高的现状, IBM Rational 提出了构筑安全Web应用的解决方案。
加强全员应用安全性意识
一个根本、底层的战略手段就是加强企业全员的应用安全意识。正如前面所阐述过的,对于应用而言,无论是开发人员、测试人员、质量管理人员还是项目经理、企业高层,都会对其功能和性能做更多的关注,这也是由于早期应用多为 C/S 架构的应用,安全问题并不突出。但是在当今的环境,就不得不将安全作为应用质量的基础。 图 5 中功能、易用性、可靠性、性能、可支持性,是由 Rational Unified Process (RUP)定义的 FURPS 质量模型,它告诉我们应用的质量需要从这几个方面着手衡量,对于Web应用,就必须将安全性作为质量模型的基础条件。
要加强全员应用安全意识,就需要对每一个相关角色落实安全要求。
1) 对于需求分析、设计人员而言,是否已将产品的安全性考虑到产品的需求设计中,从而保证在项目初期,安全因素已被关注; 2) 对于开发人员,在应用中实现了身份认证等安全功能,并不意味着在编程中已考虑到了应用安全性,它们还必须掌握Web应用安全编程规范等技术; 3) 对于测试人员,验证了应用的 FURPS ,不能保证产品已具备安全性,还需要借助其他工具或平台,对应用的安全隐患,进行自动化的扫描,得出全面的安全性报告; 4) 对于质量管理人员,产品的质量过关,也不等于产品已经安全可靠,他们和测试人员一样,需要借助工具,掌握Web应用全面的安全隐患汇总和分析。
在企业全员都具有了应用安全意识之后,必须将该意识贯彻到项目的具体工作之中,除了要求每个人具备严谨认真、不断学习的态度之外,还需要借助先进的工具,对开发的Web应用进行自动化的安全隐患发现、分析、报告、提供修复意见等工作,建立人工检查和自动化工具配合的完整保障措施。 IBM Rational AppScan ,正是这样一种Web应用自动化诊断工具,下面我们对其进行简单的介绍。
Rational AppScan ,是对Web应用和WebServices 进行自动化安全扫描的黑盒工具,它不但可以简化企业发现和修复Web应用安全隐患的过程(因为这些工作,以往都是由人工进行,成本相对较高,但是效率却非常低下),还可以根据发现的安全隐患,提出针对性的修复建议,并能形成多种符合法规、行业标准的报告,方便相关人员全面了解企业应用的安全状况。图 6 说明了 AppScan 在软件开发生命周期中的各个阶段,都可以协助安全隐患的诊断。
AppScan DE (AppScan 开发版)可以作为多种平台的插件,这些平台包括 Eclipse 、 WebSphere 、 Visual Studio 、 JBuilder ,协助开发人员对编写的模块进行自我安全诊断。图 7 是 AppScan DE 作为 Visual Studio 插件使用的示例。
原文地址:http://www.ibm.com/vrm/newsletter_10104_2516_57211_email_DYN_1IN/xchen94266440
|


