天创培训:您身边的信息安全培训专家!
技术中心
使用 IBM Security AppScan 进行自动化 Web 应用程序漏洞扫描

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

 

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

据 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 应用程序
扫描扫描配置选项指定的配置
1Predefined TemplateComprehensive scan
2Type of ScanWeb application scan
3Starting URL for Scanhttp://localhost:9085/PlantsByWebSphere/orderdone.jsf
4Login MethodAutomatic
5Login CredentialsUser name: plants@plantsbywebsphere.ibm.com
Password: plants
6Test PolicyComplete
7Scan Start MethodStart a full automatic scan

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

  1. 现在选择表 2 中所列的环境设置定义。

表 2. 环境设置定义,PlantsByWebSphere
数据表示例
扫描环境设置定义指定的设置定义
1Operating System (of site being scanned)Windows
2Web serverIBM HTTP Server
3Application Server (if any)WebSphere
4Type of Database (if any)DB2
5Third-Party Component (if any)Not Defined
6Location of SiteLocal
7Type of SiteTest
8Deployment MethodInternally
9Collateral Damage PotentialLow Medium
10Target DistributionHigh
11Confidentiality RequirementMedium
12Integrity RequirementMedium
13Availability RequirementMedium

图 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 服务应用程序
扫描选项指定的扫描配置选项
1Predefined templateComprehensive scan
2Type of scanWeb service scan
3Location of WSDL servicehttp://localhost:9085/HelloWorld_V1/HelloWorld_V1_HelloWorld_V1HttpService
4Generic service clientTest 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 了解有关的详情。

这两行参数已突出显示

结束语

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

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

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