Glass Box 并不仅仅是 AppScan 的一个新的特性,而是代表了一种全新的思想,将动态分析技术与传统的 AppScan 黑盒测试技术结合起来,对 Web 应用程序进行代码级别的分析,给出更精确的分析结果,从而更有效的帮助客户保护好自己的网站。
Glass Box 是 IBM Security AppScan Standard Edition(以下简称 AppScan)8.5 版本以后引进的一个新的组件,是对 AppScan 的一个比较大的改进。Glass Box 引进了运行时分析的技术,通过部署在服务器端的代理,在探索和测试阶段搜集 Web 应用程序信息,并进行分析,进而反馈给 AppScan,使 AppScan 更有针对性的进行探索和扫描,提高了扫描的精确性,并有利于发现更多的漏洞。Glass Box 并不仅仅是 AppScan 的一个新的特性,而是代表了一种全新的思想,将动态分析技术与传统的 AppScan 黑盒测试技术结合起来,对 web 应用程序进行代码级别的分析,给出更精确的分析结果,从而更有效的帮助客户保护好自己的网站。
本文首先简单介绍了 AppScan Glass Box 的技术架构,然后介绍了在 AppScan 8.5 中 Glass Box 在 Windows XP 下使用效果。Glass Box 支持 WebSphere、Tomcat、JBoss 等多种应用服务器,本文选择的 Web 服务器为大家常见的 Tomcat 7.0。
技术架构
Glass Box 可分为客户端和服务端。客户端又可分为 GlassAPI 和 Glass Box 引擎服务,GlassAPI 用于和服务器端通信,获取服务端返回的问题信息;Glass Box 引擎服务基于预定义的验证规则,对获取到的服务端进行分析,判断是否存在漏洞。服务端通过代理程序搜集服务器端信息,包括 Web 应用程序运行时信息(根据预定义的特征匹配规则)、源代码信息、配置文件信息、操作系统信息、数据库信息和 Web 服务器信息等,并将搜集到的信息返回给客户端。
图 1. Glass Box 技术架构图
配置及使用
打开扫描配置面板,可对 Glass Box 进行配置。点击 Glass Box 面板中的添加按钮,可添加 Glass Box 代理程序。
图 2. Glass Box 代理程序定义
代理程序的用户名和密码分别为安装 Glass Box 时设定的用户名和密码,如需要修改密码,可运行 AgentCredentials.bat <username> <password> ,或直接修改位于 GBootStrap\WEB-INF 目录下的 users.xml 文件,重启 Tomcat 后生效。用户可添加多个 Glass Box 代理程序,但 AppScan 同一时间只能使用其中的一个。添加代理程序成功后,可对 Glass Box 进行设置,选中"在探索阶段使用 glass box ",可发现更多的隐藏的 URL;选中"在测试阶段使用 glass box",可发现更多的漏洞和提供更详细的漏洞信息。配置成功后,AppScan 右下角状态栏将显示"Glass box 扫描:已启用"。
Glass Box 配置成功后,需要对 Web 应用程序重新扫描。需要注意的是,由于 Glass Box 对 URL 的解析问题,扫描本地网站需要配置虚拟域名,即起始 URL 不能是“http://localhost/myproject”, 而应该是“http://mysite/myproject”。Glass Box 目前仅支持 Java 项目。本文所选用扫描网站是 IBM AppScan 开发人员提供的 AltoroJ 项目。