IBM Security AppScan Glass Box:一种全新的漏洞扫描思想

发表于:2014-8-04 11:44

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:那时花开    来源:51Testing软件测试网采编

  Glass Box 是 IBM Security AppScan Standard Edition(以下简称 AppScan)8.5 版本以后引进的一个新的组件,是对 AppScan 的一个比较大的改进。Glass Box 引进了运行时分析的技术,通过部署在服务器端的代理,在探索和测试阶段搜集 Web 应用程序信息,并进行分析,进而反馈给 AppScan,使 AppScan 更有针对性的进行探索和扫描,提高了扫描的精确性,并有利于发现更多的漏洞。
  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 项目。
  通过对配置 Glass Box 前后的扫描结果进行分析,我们分析一下使用 Glass Box 的三个优势。为方便起见,本文采用默认的扫描配置(新建一个常规扫描,采用默认的扫描策略,对扫描配置的各项参数不做任何修改),并且没有对结果进行分析,排除误报的漏洞。每次扫描,结果可能会略有不同;若差别太大,则应该检查扫描配置信息,查看日志,找出问题所在。
  1. 在探索阶段通过检测出代码中不可见的参数和 cookie 信息,探索隐藏的扫描路径,提高扫描覆盖率。
  在应用程序中,有一些参数并未暴露给用户,即对用户是"不可见"的,传统的 AppScan 运行在客户端,并不能够检测到这些参数,更无法探索到相关的页面。 Glass Box 运行于探索阶段全过程,预定义一些"感兴趣"的方法(如 getParameter、Runtime.getRuntime().exec 等),并时刻检测这些方法是否运行,并进而探索出其中的参数,再根据这个参数构造扫描路径。
  2. 在测试阶段,Glass Box 可增强 AppScan 在各种漏洞类型方面的检测。
  Glass Box 通过搜集服务端信息,可减少误报率,增强 AppScan 对各种漏洞类型的检测,主要能够增强 AppScan 对注入攻击、不安全的直接对象引用、安全配置错误和不安全的加密存储等漏洞的检测。通过扫描 AltoroJ 项目可以发现,配置 Glass Box 前,共扫描出了 100 个漏洞;而配置 Glass Box 后,共扫描到了 139 个漏洞;Glass Box 增加了了大约 40% 的漏洞扫描发现数量。下表是按照 OWASP Top 10 漏洞分类方法,对使用 Glass Box 前后的扫描漏洞数量进行的对比。
  表 1. 使用 Glass Box 前后发现的漏洞数量对比
  有时候,Web 开发人员会屏蔽错误信息,比如设置一个错误页面,发生异常时直接跳转到该页面,AppScan 无法直接从 response 信息中判断是否存在漏洞。Glass Box 通过预定义的方法,搜集服务器端的信息,从而判断是否存在漏洞。
  通过扫描我们发现,未使用 Glass Box 前,AppScan 并未检测出用户登录页面的 SQL 注入漏洞(AppScan 可检测出各种类型的漏洞,未检测出该页面的 SQL 注入漏洞属于个别情况)。我们来分析一下原因。
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号