AppScan使用说明

前言

  1. 没有安全知识基础的少年,可以先阅读之前的安全入门的文章:安全测试入门
  2. 工具文章合集:安全测试工具简介
  3. 其实AppScan的使用是比较简单的,根据它的操作指引就能完成一次比较基础的扫描,也能发现很多Web服务的问题。

我们做安全扫描的目的是什么?

AppScan简介

关于AppScan

HCLAppScan Standard 是 HCL AppScan 应用程序安全测试套件的渗透测试组件,用于测试 Web 应用程序和服务。它具有识别安全漏洞的前沿方法和技术,可帮助保护应用程序免受网络攻击的威胁。

HCLAppScan Standard 是动态分析工具,通过使用类似于黑客使用的方法攻击应用程序,在运行时评估应用程序安全性。测试结果包括从应用程序清单到详细攻击流量的一系列丰富数据,系统可以重现这些数据以进行验证和修复。可以在 UI 中检查和处理这些数据,也可以采用各种格式导出这些数据,以便在其他工具中共享。

HCLAppScan Standard有自己的用例库,版本越新用例库越全(用例库越全面,对漏洞的检测较全面,被测试系统的安全性则越高)

AppScan 扫描包含两个主要阶段:探索和测试。针对每个阶段,下表提供了理解哪些服务器端和客户机端技术可能会影响扫描的准则以及需要配置的情况。

服务器端技术 客户机端技术
探索阶段 任何不影响客户机的服务器端技术(如使用的特定数据库)不会以任何方式影响扫描。只要 AppScan 配置正确,很多影响客户机的机制(如会话管理)都不会限制扫描。例如,Web 服务器和应用程序服务器影响管理会话标识的方式,AppScan 必须能够跟踪这些标识。很多常见会话标识已预定义或可以由 AppScan 自动检测,不需要其他配置。但是,某些定制机制可能仍需要其他配置。AppScan 特别支持 WebSphere Portal 定制 URL。WSP 对 URL 的编码方式使其在显示时很难跟踪。AppScan 会解码这些 URL,以理解这些 URL 并对其进行调优。 AppScan 使用完全嵌入式浏览器,它自动支持所有主要技术 (HTML5),包括许多常用的 JavaScript 框架,例如 Angular、React 和 JQuery。如果自动探索阶段因特定技术而丢失页面,或由于实现阻挡自动探索而丢失页面,可以在自动探索之后,测试阶段之前,通过手动探索将这些页面添加到扫描。
测试阶段 AppScan 旨在测试应用程序而不是其支持技术,因此它们不会影响测试。再次考虑数据库:AppScan 的 SQL 注入测试套件与所用的数据库无关。它还可以为第三方测试(常见漏洞测试)提供特定测试。 客户机端 JavaScript 漏洞使用嵌入式浏览器进行测试。同样使用 Black-Box (DAST) 方法实施测试。对浏览器环境进行控制,并按原样执行 JavaScript 以显示漏洞。AppScan 支持现代浏览器所支持的所有执行方法。

安装需求

硬件 最低需求
处理器 Core 2 Duo 2 GHz(或同等处理器)
内存 4 GB RAM
磁盘空间 30 GB
网络 1 NIC 100 Mbps(针对具有已配置 TCP/IP 的网络通信)
软件 详细信息
操作系统 支持的操作系统( 仅 64 位版本): Microsoft® Windows® 服务器 2019:Essentials 和 Standard Microsoft Windows Server 2016:Standard 和 Datacenter Microsoft Windows Server 2012:Essentials、Standard 和 Datacenter Microsoft Windows Server 2012 R2:Essentials、Standard 和 Datacenter Microsoft Windows 10:Pro 和 Enterprise Microsoft Windows 8.1:Pro 和 Enterprise
浏览器 Microsoft Internet Explorer V11推荐:Internet Explorer V11.0.9600.18537,更新 V11.0.38 KB3203621
许可证 在其机器上没有本地许可证的用户在使用 AppScan 时需要与其许可证秘钥服务器进行网络连接。对于需要连接到 HCL 许可证服务器的 HCL 浮动许可证,需要因特网连接。
其他 Microsoft .NET Framework 4.7.2可选:Microsoft 用于定制报告模板的 Word 2013、Word 2016。

自动扫描如何运作

本主题说明扫描的“阶段”和“过程”之间的区别。

“AppScan 全面扫描”包含两个阶段:探索和测试。尽管扫描过程的绝大部分对于用户来说实际上是无缝的,并且直到扫描完成几乎不需要用户输入,但理解其后的原则仍然很有帮助。

探索阶段

在第一个阶段中,AppScan 通过模拟 Web 用户单击链接和填写表单字段来探索站点(Web 应用程序或 Web Service)。这就是“探索”阶段。

AppScan 将分析它所发送的每个请求的响应,查找潜在漏洞的任何指示信息。AppScan® 接收到可能指示有安全漏洞的响应时,它将自动基于响应创建测试,并通知所需验证规则,同时考虑在确定哪些结果构成漏洞以及所涉及到安全风险的级别时所需的验证规则。

在发送所创建的特定于站点的测试之前,AppScan 将向应用程序发送若干格式不正确的请求,以确定其生成错误响应的方式。之后,此信息将用于增加 AppScan 的自动测试验证过程的精确性。

测试阶段

在第二个阶段,AppScan 将发送它在探索阶段创建的数千个定制测试请求。它使用定制验证规则记录和分析应用程序对每个测试的响应。这些规则既可识别应用程序内的安全问题,又可排列其安全风险级别。

扫描阶段

在实践中,“测试”阶段会频繁显示站点内的新链接和更多潜在安全风险。因此,完成探索和测试的第一个“过程”之后,AppScan 将自动开始第二个“过程”,以处理新的信息。如果在第二个过程中发现了新链接,那么会运行第三个过程,依此类推。

完成配置的扫描阶段数(可由用户配置;缺省情况下为四个阶段)之后,扫描将停止,并且完整的结果可供用户使用。

自动扫描流程图解

下图说明了自动扫描流程的阶段和过程。请注意,此过程不需要用户进行任何操作,但是您在 AppScan 日志中可能会遇到对操作的引用。

image

AppScan使用

一、 安装软件及许可

安装前请阅读:安装需求

注意: Microsoft .NET Framework 4.7.2为必备软件

AppScan下载地址: AppScan10.0.7.zip

安装页面都是中文页面,大家按照指引安装即可。

安装许可证:

注意:之前安装过的建议先卸载,把对应下载目录下的文件清理干净了,在安装新版本。

成功安装AppScan后,将AppScanSDK.dll、HclLicenseProvider.dll放置于AppScan安装目录下与原文件进行替换即可。

二、最佳实践

A. 基本工作流程图

image

1. 如果在生产环境测试不要使用Admin账号或者具有管理员级别访问权的测试帐户。

2. 扫描生产环境时,选择扫描策略的时候需要谨慎,对于所有侵入式的策略需要确认清楚后在勾选✔。

B. 使用扫描向导

如果关闭了初始的扫描向导,可以在文件按钮下新建扫描向导

  1. 在起始URL中填入需要测试的域名(填登录域名就行)

image

  1. 推荐使用记录方式

image

  1. 根据需要选择测试策略

image

  1. 根据需要选择测试优化

image

  1. 启动扫描

image

C. 扫描配置

  1. 我们可以使用配置来扩充扫描向导无法完成的配置。

image

  1. 使用-其他服务器和域–扫描包含多个域名的服务或多个域名跳转的服务

image

  1. 使用环境定义–提高性能和准确性

image

  1. 多步骤操作–如ERP2.0这种需要多次跳转的

image

  1. 通过配置不同测试策略来满足我们不同的测试场景

image

D. 评估扫描结果

  1. 在仪表盘页面可以看到本次扫描的一个整体情况

image

  1. 在数据页面可以看到探索的页面和发送的请求

image

  1. 问题页面可以看到本次扫描的详细问题描述

image

  1. 最终可以通过报告按钮生成本次扫描对外使用报告

image

三、扫描实时生产环境

通过 AppScan 扫描实时站点之前应考虑以下风险和建议。

扫描实时站点时,可使用预定义“生产站点”模板。该模板包含了特别选择的“生产站点”测试策略,以及设计用于最小化实时站点被破坏的风险或导致实际用户的“拒绝服务”风险的配置设置。

如果选择使用您自己的配置或测试策略,以下部分可帮助您有效地配置扫描。

数据库可能会被扫描期间发送的人工信息所充满

可通过采取以下预防措施来减少上述情况造成的影响:

  • 禁用自动表单填充(扫描配置 > 自动表单填充 > 第一个复选框)。这将确保 AppScan® 不会自动填写表单(从而避免提交可能会大量涌入数据库、公告牌或在线论坛系统的数据),也不会向管理员或版主帐户发送不需要的电子邮件。但是,您应该注意,这样做将限制 AppScan Standard 到达通过提交表单来访问的站点区域的能力。在此运行方式下,AppScan 将仅扫描可通过点击链接(带有或不带参数)来访问的站点区域。

  • 创建供 AppScan 使用的测试帐户。使用测试帐户可更加轻松地跟踪数据库更改(例如,确保服务实际上未被订购),并帮助站点管理员在扫描后清理站点。

创建帐户时请考虑以下建议:

  • 将数据库访问限制为仅测试记录,以便可以恢复已修改的记录。

  • 确保将删除测试帐户所创建的新纪录。

  • 确保将忽略测试帐户的采购订单(或其他交易)。

  • 如果交易具有某种影响(如处理库存时),那么仅允许对测试记录的帐户访问权。

  • 如果站点包含论坛,那么将仅允许对测试论坛的测试帐户访问权,以使真实客户不会看到在测试过程中创建的测试。

  • 如果站点具有针对不同帐户的不同特权,请设置多个具有不同特权的测试帐户。这将确保更加全面地扫描站点。

  • 请不要创建具有管理员级别访问权的测试帐户。

电子邮件泛滥风险

测试使用电子邮件通知的页面时,AppScan 会生成许多请求并可能使站点的电子邮件服务器超负荷。

以下一个或多个建议可帮助解决此问题:

  • 临时更改所测试的页面上的电子邮件地址,以便该电子邮件发送到无效的电子邮件地址。

  • 如果可行,请配置 AppScan 以从生产扫描中排除这些页面。

  • 一次仅扫描一台 Web 服务器,并避免其在扫描期间连接到 SMTP 服务器。

  • 如果决定保持启用“自动表单填写”,请将其配置为在电子邮件字段中插入唯一值,以便收件人可轻松识别由 AppScan 生成的电子邮件。

通过代理扫描

如果可能,请避免通过代理扫描。尽管支持这样的操作,但代理有时会使结果难以理解。

扫描被锁定在应用程序外的风险

某些应用程序配置为在一定数量的错误登录尝试后将用户锁定在外。如果在扫描期间发生此情况,那么 AppScan 显然将无法完成扫描。

要避免这种情况:

  • 禁用将测试发送到登录和注销页面(扫描配置 > 测试选项)。

导致应用程序故障的风险

为避免 AppScan 导致实时应用程序发生故障的风险,您可能需要停用测试策略中的侵入式测试。这将确保不会发送“拒绝服务”、“缓冲区溢出”或其他可能导致应用程序或 Web 服务器发生故障的测试。

重要: Web 应用程序通常包含只能通过侵入式测试发现的漏洞。建议您不要完全忽略侵入测试。请改为与 Web 站点所有者或管理员协作来测试应用程序是否包含这些种类的漏洞,同时或许将扫描安排在非高峰时间(应用程序可能空闲的时候)执行。

要禁用当前测试策略中的侵入测试,请执行以下操作:

打开配置 > 测试策略

单击侵入列,以将所有侵入测试分组到一起。

向下滚动侵入测试(“侵入”值为“Yes”的测试),并取消选择所有当前已选择的测试,以从扫描中将其排除。

四、官方文档

image