在正式开始安全测试以前,理解应用程序的结构是非常重要的。如果没有通透地理解应用的布局情况,往往也无法彻底完成测试。
建立目标应用程序结构图,并理解其主要工作流程。
在黑盒测试中,测试整个代码路径是非常困难的。不仅仅因为测试者对于应用代码路径毫无所知,而且即使知道,测试所有的代码路径也是非常耗时的。一直折中的办法是将发现的和测试的代码路径记录下来。
有一些办法来实施测试和测量代码覆盖率:
权衡使用哪种测试方法应该和应用所有者进行协商。更简单的方法应该被采纳,包括询问应用所有者他们特别关心的是什么功能或代码段以及如何到达这些代码段。
黑盒测试
为了向应用所有者证明代码覆盖率,测试者可以使用数据表来记录所有发现的链接(手动或自动)。然后测试者可以更仔细观察应用的决策点,并调查发现了多少重要的代码路径。把发现的这些路径的URL,截图描述等也记录进数据表。
灰盒/白盒测试
在灰盒/白盒盒测试中向应用所有者保证有效的代码覆盖率要容易得多。提供和被询问到的信息足以保证代码覆盖最小要求被满足。
自动蜘蛛抓取
蜘蛛机器人是自动发现特定网站新资源(URL)的工具。提供一系列的访问URL(叫做种子页面)给蜘蛛作为爬行起点。有许多的蜘蛛机器人工具,下面的例子使用 Zed Attack Proxy (ZAP) :
ZAP 提供如下自动抓取特性,可以根据测试者的需求,按需进行选择:
白皮书