什么叫灰盒测试?

最近看书时老是看到“灰盒测试”。

黑盒测试、白盒测试和灰盒测试的基本概念

1. 黑盒测试
黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于软件确认测试。"黑盒"法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。"黑盒"法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。

2. 白盒测试
白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。
"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。

3. 灰盒测试
灰盒测试,确实是介于二者之间的,可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。
灰盒测试结合了白盒测试盒黑盒测试的要素.它考虑了用户端、特定的系统知识和操作环境。它在系统组件的协同性环境中评价应用软件的设计。
灰盒测试由方法和工具组成,这些方法和工具取材于应用程序的内部知识盒与之交互的环境,能够用于黑盒测试以增强测试效率、错误发现和错误分析的效率。
灰盒测试涉及输入和输出,但使用关于代码和程序操作等通常在测试人员视野之外的信息设计测试。

----------------------------------------------------------------------------------------

参考资料:作者:Aken

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-01
Web应用安全测试技术经过多年的发展,目前业界常用的技术主要分为三大类。
SAST(静态应用程序安全测试,Static Application Security Testing),该技术通常在编码阶段分析应用程序的源代码或二进制文件的语法、结构、过程、接口等来发现程序代码存在的安全漏洞,主要是开发阶段被大家熟知的白盒代码审计类技术。SAST作为开发阶段引入的白盒静态分析技术,需要从语义上理解程序的代码,依赖关系,配置文件,相比于黑盒漏扫技术,白盒技术介入开发阶段更早,可以更好的辅助程序员做安全开发,可通过IDE插件形式与集成开发环境结合,实时监测代码漏洞问题,漏洞发现及时,修复成本更低。另一方面居高不下的误报率,一定程序降低工具的实用性,可能需要花费更多时间来清除误报,而不是修复漏洞。不仅要区分不同的开发语言,还需要支持使用的web程序框架,如果sast工具不支持某个应用程序的开发语言和框架,测试也会受到阻碍。
DAST(动态应用程序安全测试,Dynamic Application Security Testing),该技术在测试或运行阶段分析应用程序的动态运行状态,主要是运营阶段被大家熟知的黑盒漏洞扫描技术。它模拟黑客行为对应用程序进行动态攻击,分析应用程序的反应,从而确定该 Web 应用是否易受攻击。DAST 是一种黑盒安全测试技术,是目前应用最广泛、使用最简单的一种 Web应用安全测试方法,安全工程师常用的工具如 AWVS、AppScan 等就是基于 DAST原理的产品。
IAST(交互式应用程序安全测试,Interactive Application Security Testing),它是 Gartner 公司提出的一种新一代交互式应用程序安全测试方案,通过服务端部署 Agent 探针、流量代理/VPN 或主机系统软件等(目前悬镜安全已全部支持),收集、监控 Web 应用程序运行时函数执行、数据传输,并与扫描器端进行实时交互,高效、准确的识别安全缺陷及漏洞,同时可准确确定漏洞所在的代码文件、行数、函数及参数。某种程度上,IAST 是综合 DAST 和 SAST 技术优势的一种运行时灰盒安全测试技术。近实时检测、误报率极低、可定位到代码行数、展示污点调用过程等等,同时也支持测试AJAX页面、CSRF Token页面、验证码页面、API孤链、POST表单请求等环境。IAST插桩模式在完成应用程序功能测试的同时即可以实时完成安全测试,且不会受软件复杂度的影响,适用于各种复杂度的软件产品。不但可以检测应用程序本身的安全弱点,还可以检测应用程序中依赖的第三方软件的版本信息和包含的公开漏洞。整个过程无需安全专家介入,无需额外安全测试时间投入,不会对现有开发流程造成任何影响,符合敏捷开发和DevOps模式下软件产品快速迭代、快速交付的要求。
以上信息来源悬镜安全报告
相似回答