通过应用程序映射执行路径
ID |
---|
WSTG-INFO-07 |
总结
在开始安全测试之前,了解应用程序的结构至关重要。如果不彻底了解应用程序的布局,就不可能进行全面的测试。.
测试目标
- 映射目标应用程序并了解主要工作流。
如何测试
在黑盒测试中,测试整个代码库非常困难。这不仅是因为测试人员无法通过应用程序看到代码路径,还因为测试所有代码路径将非常耗时。协调此问题的一种方法是记录发现和测试的代码路径。
有几种方法可以测试和测量代码覆盖率:
- 路径Path - 通过应用程序测试每条路径,其中包括每个决策路径的组合和边界值分析测试。虽然这种方法提供了彻底性,但可测试路径的数量随着每个决策分支呈指数级增长。
- 数据流Data Flow (or Taint Analysis) -通过外部交互(通常是用户)测试变量的分配。重点介绍整个应用程序中数据的流、转换和使用。
- 争用Race - t测试操作相同数据的应用程序的多个并发实例。
应与应用程序所有者协商方法的选择以及每种方法的使用程度。此外,可以采用更简单的方法。例如,测试人员可以向应用程序所有者询问他们特别关注的特定功能或代码部分,并讨论如何访问这些代码段。
为了向应用程序所有者演示代码覆盖率,测试人员可以首先在电子表格中记录从爬取应用程序(手动或自动)中发现的所有链接。然后,测试人员可以更仔细地查看应用程序中的决策点,并调查发现了多少条重要代码路径。然后,这些应记录在电子表格中,其中包含发现路径的URL,散文和屏幕截图描述。
自动爬虫
自动爬虫是一种用于自动发现特定站点上的新资源 (URL) 的工具。它以要访问的URL列表开始,称为种子,这取决于蜘蛛的启动方式。虽然有很多爬虫工具,但以下示例使用 Zed 攻击代理 (ZAP)Zed Attack Proxy (ZAP)::
图 4.1.7-1:Zed 攻击代理屏幕
ZAP提供各种自动爬取选项,可以根据测试人员的需求利用这些选项:
工具
引用
-代码覆盖率 Code Coverage