在开始安全测试之前,了解应用程序的结构至关重要。如果没有彻底了解应用程序的布局,那么它将被彻底测试是不合适的。
测试目标
映射目标应用程序并了解主要工作流程。
如何测试
在黑盒测试中,测试整个代码库非常困难。不仅因为测试人员没有通过应用程序的代码路径的视图,而且即使他们这样做,测试所有代码路径也会非常耗时。协调这一点的一种方法是记录发现和测试的代码路径。
有几种方法可以用于测试和测量代码覆盖率:
- 路径 - 通过应用程序测试每个路径,该应用程序包括每个决策路径的组合和边界值分析测试。虽然这种方法提供了彻底性,但可测试路径的数量随着每个决策分支呈指数增长。
- 数据流(或污点分析) - 通过外部交互(通常是用户)测试变量的分配。重点介绍在整个应用程序中映射数据的流程,转换和使用。
- Race - 测试操作相同数据的应用程序的多个并发实例。
应该与应用程序所有者协商关于使用什么方法以及每种方法的使用程度的权衡。也可以采用更简单的方法,包括询问应用程序所有者他们特别关注的功能或代码部分以及如何访问这些代码段。
黑盒测试
为了向应用程序所有者演示代码覆盖率,测试人员可以从电子表格开始,并记录通过应用程序(手动或自动)发现的所有链接。然后,测试人员可以更仔细地查看应用程序中的决策点,并研究发现了多少重要的代码路径。然后应在电子表格中记录这些内容,其中包含所发现路径的URL,散文和屏幕截图说明。
灰/白盒测试
使用灰色和白色框测试方法,确保应用程序所有者有足够的代码覆盖率。由测试人员征求并提供给测试人员的信息将确保满足代码覆盖的最低要求。
例
自动蜘蛛
自动蜘蛛是一种用于自动发现特定网站上的新资源(URL)的工具。它首先是要访问的URL列表,称为种子,这取决于Spider的启动方式。虽然有很多Spidering工具,但以下示例使用Zed攻击代理(ZAP):
ZAP提供以下自动爬行功能,可根据测试仪的需求进行选择:
- 蜘蛛网站 - 种子列表包含已为所选网站找到的所有现有URI。
- Spider子树 - 种子列表包含已找到并存在于所选节点的子树中的所有现有URI。
- Spider URL - 种子列表仅包含与所选节点对应的URI(在站点树中)。
- Spider all in Scope - 种子列表包含用户选择为“In Scope”的所有URI。