使用 IBM Security AppScan 进行自动化 Web 应用程序漏洞扫描

本文使用两个示例解释了如何使用 IBM Security AppScan Standard Edition 对 Web 和 Web 服务应用程序进行自动的安全漏洞测试。作者还设定了一些示例场景来探讨监管合规性报告功能。

Bhargav Perepa, WebSphere 架构师和认证的 IT 专家, IBM

Bhargav PerepaBhargav Perepa 是位于华盛顿特区的 IBM Federal Software Group 的 WebSphere 架构师和 IT 专家。他曾经是 IBM Austin WebSphere Development Lab 的 WebSphere 开发人员,并在 IBM 芝加哥积累了一些 Smalltalk 和 C++ 开发经验。Bhargav 拥有芝加哥伊利诺伊理工学院计算机科学硕士学位,以及奥斯汀市德克萨斯大学的 MBA 学位。


developerWorks 投稿作者

Sujatha Perepa, 软件客户端架构师, IBM

作者照片Sujatha Perepa 是华盛顿特区的 IBM Federal Sales and Distribution 的一名软件客户端架构师。她是一位高级认证 IT 架构师,国家安全和司法以及各州政府部门的首席架构师。Sujatha 的例行工作是为各联邦机构处理和建议各种安全解决方案。她拥有应用电子方面的双学位和信息系统方面的 MBA 学位(芝加哥 Stuart 商学院)。



2012 年 11 月 26 日

下载试用版:IBM® Security AppScan 标准版  |  Web 应用安全与 AppScan 工具包
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

随着全球连接性日益增加,安全风险也在增加

据 IBM® X-Force® 2011 年中趋势与风险报告称,2011 年可谓是 “安全隐患年”,因为在 2001 的上半年就报告了大量的高端安全隐患,其数量可谓史无前例。全球范围内更为互联化、智能化和仪表化且不断扩展的网络世界导致各种风险和危险日益增加,同时管理企业和基础架构方面的网络安全攻击也变得更复杂,更困难。

该报告表明,在 2011 年的上半年,所有漏洞中有 37% 是 Web 应用程序漏洞。无法保护 Web 应用程序的安全可能导致损失惨重,包括财务方面和应用程序的性能方面。大部分基于 Web 的威胁都源自于允许 SQL 注入、跨站脚本 (XSS)、危险的会话信息等的源代码中的代码差异。如果没有执行严格的安全质量保证措施,浏览器的安全性也会轻松受到破坏。如需概览目前的应用程序安全情况,可以下载此报告(请查看 参考资料 中的链接)。

IBM® Rational® AppScan® 产品系列可自动对 Web 应用程序(Web 服务和 Web 2.0)和富 Internet 应用程序(JavaScript、Ajax 和 Adobe Flash)的 Web 漏洞随时进行安全测试。通过扫描应用程序、确定各种漏洞、生成差异报告,并在 Web 上部署应用程序之前提供补救建议,这种可以随时进行的安全测试方法在应用程序的开发到测试阶段都能提供帮助。

IBM Security AppScan 的各个版本可以满足大中小型开发团队的需求,为您提供了全面的选择范围:

  • Source Edition 专为协助开发团队而定制,在 AppScan Enterprise 的基础上添加了源代码分析和静态应用程序安全测试 (SAST)。
  • Enterprise Edition 是一个通过治理、协作和安全智能实现应用程序安全测试和风险管理的企业级解决方案。
  • AppScan Tester Edition 是一个动态的应用程序安全测试 (DAST) 解决方案,专为使用 Rational Quality Manager 将应用程序安全测试集成到 QA 环境中而设计。
  • Standard Edition 是一个关键的桌面安全测试工具,主要设计用于实现 Web 漏洞评估自动化。它可生成静态和动态漏洞分析并提供相应的修复建议。

在本文中,我们将探讨 IBM Security AppScan Standard Edition V8.5 的功能,执行自动的 Web 和 Web 服务应用程序安全测试和漏洞测试。我们还会探讨其监管合规性报告功能,这是自动化 Web 和 Web 服务应用程序安全测试和漏洞测试的一部分。

为了探讨 AppScan Standard Edition v8.5 的功能,我们将使用 PlantsByWebSphere v8.0.0.1(Ajax 版本),该应用程序作为一个示例包括在 WebSphere Feature Pack for Web 2.0 and Mobile 版本 1.1.0 中。图 1 显示了该应用程序的启动屏幕。

Plants by WebSphere 示例应用程序:Gardens of Summer

图 1 的大图

注意:
有关此示例应用程序的详细信息,请参阅 参考资料 部分中的链接。

IBM 提供了 PlantsByWebSphere 及其源代码。该示例应用程序是我们的安全性和漏洞测试练习的理想候选程序,因为它符合应用编程接口 (API) 的要求并且在其设计要求中就没有要求具有强大的安全性。IBM 在其交付的源代码中明确地提供了免责声明。您可轻松配置该示例,并且在探讨 AppScan 的功能时,也可以轻松地重现本文中解释的各个操作步骤。

还提供了图 2 中显示的 HelloWorld JAX-WS Web 服务应用程序,该程序已经部署到 IBM® WebSphere® Application Server v8.0.0.1 运行时,旨在进一步探讨 AppScan Standard Edition v8.5 的功能。

HelloWorld JAX-WS 应用程序的业务方法 sayHello() 接受一个 HelloReq 对象并返回一个 HelloResp,同时用个人问候消息来问候已命名的个人。HelloReq 和 HelloResp 对象包含了字符串类型属性,分别用于对名称和响应进行命名。

Enterprise Application 管理视图

Web 应用程序的自动安全测试和漏洞测试

首先,使用如图 3 中所示的 Scan Configuration Wizard 配置一次完整的、全面的 PlantsByWebSphere Web 应用程序扫描。设置扫描配置文件,以揭示此 Web 应用程序的安全漏洞之前,需要确保 WebSphere Application Server v8.0.0.1 已经运行,PlantsByWebSphere 应用程序已部署到运行时并且正在运行,如图 2 所示(pbw-ear 企业应用程序状态在 Application Status 列中显示一个绿色箭头)。

  1. 启动 IBM Security AppScan Standard Edition v8.5。
  2. 选择 File > New

此 New Scan 对话框窗口(图 3)描述了针对各种预定义模板的基于向导的扫描。

列出最近的和预定义的模板

对于此示例,我们选择了 Comprehensive 扫描,如表 1 所示,该设置指定了给定 URL 处的 Web 应用程序、自动登录(使用所需的凭据)并执行完全扫描。

  1. 启动 Scan Configuration Wizard 并指定表 1 中所列的选项。
表 1. 扫描配置选项,PlantsByWebSphere Web 应用程序
扫描扫描配置选项指定的配置
1 Predefined Template Comprehensive scan
2 Type of Scan Web application scan
3 Starting URL for Scan http://localhost:9085/PlantsByWebSphere/orderdone.jsf
4 Login Method Automatic
5 Login Credentials User name: plants@plantsbywebsphere.ibm.com
Password: plants
6 Test Policy Complete
7 Scan Start Method Start a full automatic scan

注意:
根据您的安装和设置情况,主机命、端口号和用户凭据可能有所不同。

  1. 现在选择表 2 中所列的环境设置定义。
表 2. 环境设置定义,PlantsByWebSphere
数据表示例
扫描环境设置定义指定的设置定义
1 Operating System (of site being scanned) Windows
2 Web server IBM HTTP Server
3 Application Server (if any) WebSphere
4 Type of Database (if any) DB2
5 Third-Party Component (if any) Not Defined
6 Location of Site Local
7 Type of Site Test
8 Deployment Method Internally
9 Collateral Damage Potential Low Medium
10 Target Distribution High
11 Confidentiality Requirement Medium
12 Integrity Requirement Medium
13 Availability Requirement Medium

图 4 展示了为扫描配置指定的环境定义。

New Scan

图 4 的大图

这是 Microsoft Windows 的设置。应用程序在 WebSphere Application Server 上运行并且使用 DB2 默认数据库。

  1. 让 AppScan 执行全面的安全和漏洞测试扫描。

如图 5 所示,在 AppScan 完成全面的安全和漏洞扫描后,会得到了一组安全建议,例如问题总数 (54),高 (bold exclamation in square12)、中 (bold exclamation in down arrow2)、低 (exclamation in diamond40) 和信息安全问题 (i in square0)。

各种安全问题,按严重性降序排列

图 5 的大图

可从三种不同的观点评估这些问题:

  • 安全问题
  • 补救任务
  • 应用程序数据

注意,可根据严重性来排列这些建议(升序或降序),并且有一个仪表板可用图表方式来表示各个漏洞。

  1. 单击 AppScan 桌面上的 Report 按钮生成一个全面的报告。了解 AppScan 应用程序中提供的各种报告模板。

下面所列的类别中提供了多个可自定义的报告模板:

  • Security Report 提供了一个已发现问题的列表
  • Industry Standard 报告提供了有关应用程序兼容性和不兼容性的信息
  • Regulatory Compliance 报告说明了与各种法律标准的合规情况(参阅 “注意” 内容)
  • Delta Analysis 报告包含了不同扫描之间发现的变更信息。该报告对于渐进式扫描很有用,这样可揭示已修复的漏洞、尚未修复的漏洞以及在新扫描中首次发现的漏洞。
  • Template-based 报告,您可使用模板在该报告中定义数据,并进行 Microsoft Word .doc 风格的文档格式化。

注意:
Regulatory Compliance。其中包含了 40 个或更多的合规性报告,包括 PCI Data Security Standard、Payment Applications Data Security (PA-DSS)(新)、ISO 27001 和 ISO 27002(新)以及 Basel II。

图 6 展示的示例基于 (Custom Template) 报告创建一个可自定义(报告创建者指定报告选项)的模板。

Create Report 页面,Report Type 选项卡视图

重要信息:
请参阅 下载 部分,了解此扫描生成的汇总报告:AppScanPlantsByWebSphere_Scanned_Summary_Security_Report.pdf。


Web 服务应用程序的自动安全测试和漏洞测试

提示:
探索开放式 Web 应用程序安全项目 (OWASP) 网站对您会很有帮助,该网站提供了有关 Web 安全性的更多信息、高危漏洞的列表和修复提示等内容(请参阅 参考资料 中的链接)。OWASP 网站还有一个页面专门介绍不同类别的漏洞,如身份验证、加密、日志记录和会话管理。

现在可以配置一次完整的、全面的 HelloWorld Web 服务应用程序扫描了。开始设置新的扫描配置文件来揭示此 Web 应用程序的安全漏洞之前,请确保 WebSphere Application Server v8.0.0.1 已经运行,HelloWorld Web 服务应用程序已部署到运行时并且正在运行,如 图 2 中所示(HelloWorld_V1EAR 企业应用程序状态在 Application Status 列中显示一个绿色箭头)。

  1. 启动 IBM Security AppScan Standard Edition v8.5。
  2. 选择 File > New> Predefined Templates > Comprehensive Scan
在 General Tasks 下显示 Full Scan Configuration
  1. 启动 Scan ConfigurationWizard 并指定表 3 中所列的选项。参见图 7。
表 3. 扫描配置选项,HelloWorld Web 服务应用程序
扫描选项指定的扫描配置选项
1 Predefined template Comprehensive scan
2 Type of scan Web service scan
3 Location of WSDL service http://localhost:9085/HelloWorld_V1/HelloWorld_V1_HelloWorld_V1HttpService
4 Generic service client Test only
  1. 现在指定 表 2 中所列的环境设置定义。
  2. 让 AppScan 执行全面的安全漏洞测试扫描。

图 8 显示了成功完成扫描后的结果。完成扫描并确定问题后,AppScan 按照高、中、低或者信息严重性级别来分类这些问题,并在 4 个选项卡中展示扫描结果。这些选项卡分别是 Issue Information、Advisory、Fix Recommendation 和 Request/Response。这些选项卡中包含以下内容:有关所确定问题的详细信息、与所确定问题有关的 URL、所确定问题可能带来的风险、缓解问题或漏洞所带来的风险的建议,以及原始的请求/响应交换信息。

Issue Information 选项卡结果

图 8 的大图

运行扫描时,一个进度面板会实时显示当前的扫描阶段,以及 URL 和已完成的百分比。可以启用多阶段扫描,这样可扫描主 URL 中包含的多个 URL。此时,状态栏中显示了已访问的 URL 的状态、已扫描完成的数目等。您可以设置是自动运行这些扫描一次,还是定期运行它。

接下来使用自定义报告模板和 图 5 中显示的所选选项生成一个自定义报告。

请参阅 下载 部分,获得已生成的总结报告: AppScanHelloWorldWebService_Scanned_Summary_Security_Report.pdf


建议的扫描实践

您可以自定义这些 AppScan 应用程序配置参数,以避免因为 AppScan 使用过量内存而导致的问题,这种问题可能导致所有数据丢失:

  • PerformanceMonitor.RestartOnOutOfMemory
  • PerformanceMonitor\minScanTimeDurationForRestart
  1. 单击 Tools > Options > Advanced 选项卡。
  2. 将 Preference Name 列中所列的这两个参数的值改为:
    1. PerformanceMonitor.RestartOnOutOfMemory=True
    2. PerformanceMonitor\minScanTimeDurationForRestart=30(分钟)

这些自定义参数可在内存使用量太高时或者由于虚拟内存不足导致扫描结束时自动重新启动 AppScan。如需详细信息,请参见 参考资料 部分中的链接。

参见 图 9 了解有关的详情。

这两行参数已突出显示

图 9 的大图


结束语

您已经成功配置了 IBM Security AppScan Standard Edition v8.5 自动执行 PlantsByWebSphere Web 和 HelloWorld Web 服务应用程序安全漏洞测试。另外,还使用预配置的或自定义的报告模板成功生成了详细的漏洞和修补方法报告。参见 参考资料 部分中的链接,了解有关提高 WebSphere Application Server 运行时环境安全性的更多信息。

下载 部分包含了一个安装指南、已生成的报告、扫描导出文档、TechNote 和本文中使用的示例应用程序。

作者衷心感谢 IBM Rational 软件部应用安全与合规性市场经理 Karl Snider 提供的帮助。Karl 对本文进行了详细的技术审校,提供了一些富有建设性、有见地的意见,帮助作者提高了本文的质量和通用性。


下载

描述名字大小
Plants 汇总安全报告AppScanPlantsByWebSphere_Scanned_Summary_Security_Report.pdf148KB
Hello World 汇总安全报告AppScanHelloWorldWebService_Scanned_Summary_Security_Report.pdf148KB
IBM Security AppScan 技术说明 AppScan_TechNote.pdf88KB
Hello WorldHelloWorld_V1EAR.zip12KB

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=847308
ArticleTitle=使用 IBM Security AppScan 进行自动化 Web 应用程序漏洞扫描
publish-date=11262012