IBM Rational Insight 是一种全面的项目度量解决方案,它提供了从各种类型的数据源中抽取、转化并存储历史数据(ETL)的能力,同时还可以通过可视化的报表自动客观地展示项目的进度和状态。IBM ">Security AppScan Standard (以下简称 Security AppScan )是一种自动化 Web 应用程序与服务安全性测试引擎,能够连续、自动地审查 Web 应用,发现 Web 应用中存在的安全问题,并生成包含修订建议的行动报告。本文描述了如何结合这两种产品,以直观、可视化的方式展示所测试的 Web 应用各个版本的安全问题趋势。
前言
IBM Rational Insight 是一种全面的项目度量解决方案,它提供了从各种类型的数据源中抽取、转化并存储历史数据(ETL)的能力,同时还可以通过可视化的报表自动客观地展示项目的进度和状态。Security AppScan 是一种自动化 Web 应用程序与服务安全性测试引擎,能够连续、自动地审查 Web 应用,发现 Web 应用中存在的安全问题,并生成包含修订建议的行动报告。
Security AppScan 提供了一些简单的 Birt 报表来展示扫描结果,但是它只针对 Web 应用程序当前正在扫描的版本,而不能显示趋势性报表,即无法显示 Web 应用程序在多个版本间的安全问题的趋势图。Rational Insight 作为一款专业的报表设计工具,它提供了存储历史数据的 ETL 能力,同时支持包括趋势图在内的更多类型的报表。Security AppScan 提供将问题扫描结果导出为 XML 文件的功能,而 Rational Insight 从版本 1.1 开始支持以纯粹的 XML 文件作为数据源,不需要额外的 XML 数据格式定义,这使得集成 Rational Insight 和 Security AppScan 这两种产品成为可能。
为了生成 Web 应用不同版本的安全问题趋势,传统的做法需要为每个版本的扫描结果 XML 文件创建单独的 XDC 文件,在 ETL 定制部分又需要每个 XDC 文件创建几乎重复的工作项,这造成了大量冗余的工作,不利于后期维护。本文将介绍一种简单有效的集成这两种产品的方法,用户只需要做一次定制,大大减少了后期的维护工作量,方便快捷地生成 Web 应用的安全问题趋势报表。
本文中涉及到 Rational Insight 中 ETL 的定制,ETL 的定制本身比较复杂,在 IBM DeveloperWorks 上有关于 ETL 定制的系列文章,读者可以参考。由于篇幅限制,本文假设读者对于 ETL 定制过程已经有了一定的了解,将着重介绍本文中关键的定制过程。另外,本文示例所用的软件版本是 Rational Insight 1.1 和 Security AppScan Standard 8.5,但是同样适用于 Rational Insight 1.1 后期的版本以及其他 Security AppScan 版本。
通过 AppScan 扫描发现 Web 应用安全问题
在 AppScan 中新建一个项目,选择扫描模板(如常规扫描),扫描类型(如 Web 应用扫描),输入扫描 Web 应用的 URL,录制登陆过程(通常需要输入登陆的用户名和密码),最后开始扫描,扫描完成后将显示 Web 应用按严重性分类的安全问题个数,以及每个安全问题的详细说明和建议的修复方法。如图 1 所示。鉴于本文并不是描述如何使用 Security AppScan 的,这部分内容请参考 Security AppScan 的相关文档。
扫描结果可以导出为各种类型,如 PDF, XML 等等,单击"文件"菜单 ->"导出"->"导出为 XML",将结果导出为 XML 文件,XML 片段如图 2 所示。为了便于接下来 ETL 定制过程,我们做如下规定:(1)将扫描结果文件命名为:Web 应用名称 _ 版本号,如果 Web 应用还在开发周期中,版本号为内部版本号,一般以日期编号表示;(2)将 Web 应用的所有扫描结果存在同一个目录下面。
图 1. AppScan 扫描 Web 应用
图 2. 扫描结果 XML 片段