黑盒、白盒和灰盒测试的基本概念?
黑盒、白盒和灰盒测试的基本概念
1. 黑盒测试
黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于软件确认测试。“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。
2. 白盒测试
白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。
“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。
3. 灰盒测试
灰盒测试,确实是介于二者之间的,可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。
灰盒测试结合了白盒测试盒黑盒测试的要素。它考虑了用户端、特定的系统知识和操作环境。它在系统组件的协同性环境中评价应用软件的设计。
灰盒测试由方法和工具组成,这些方法和工具取材于应用程序的内部知识盒与之交互的环境,能够用于黑盒测试以增强测试效率、错误发现和错误分析的效率。
灰盒测试涉及输入和输出,但使用关于代码和程序操作等通常在测试人员视野之外的信息设计测试。
渗透测试是红盒测试吗
渗透测试是红盒测试吗:渗透测试是通过模拟来自恶意的黑客或者骇客攻击,以评估计算机系统或者网络环境安全性的活动。从渗透测试的定义我们能够清楚的了解到渗透测试它是一项模拟的活动,主要的目的是进行安全性的评估,而不是摧毁或者破坏目标系统。简单来说,其实渗透测试就是模拟黑客攻击,测试系统安全性的活动。
渗透测试有哪些
渗透测试分为两种基本类型,白盒测试和黑盒测试。
1、白盒测试
也被称为白帽测试,是指渗透测试者在拥有客户组织所有知识的情况下所进行的测试。
使用白盒测试,需要和客户组织一起工作,来识别出潜在的安全风险。
白盒测试的最大好处是测试者将拥有所有的内部知识,并可以在不需要害怕被阻断的情况下任意地实施破坏。
而白盒测试最大的问题在于无法有效地测试客户组织的应急响应程序,也无法判断出他们的安全防护计划对检测特定攻击的效率。
白盒测试适用于时间比较紧急,或是特定的渗透测试环境,如情报收集并不在范围之内的测试场景。
2、黑盒测试
模拟一个对客户组织一无所知的攻击者所进行的渗透攻击。
经过授权的黑盒测试是设计成为模拟攻击者的入侵行为,并在不了解客户组织大部分信息和知识的情况下实施的。
黑盒测试可以用来测试内部安全团队检测和应对一次攻击的能力。
黑盒测试比较费时,同时对技术要求比较高。在安全业界的渗透测试眼中,黑盒测试能更逼真地模拟了一次真正的攻击过程。
黑盒测试依靠测试人员的能力探测获取目标系统的信息,作为一次黑盒测试的渗透测试者,通常不需要找出目标系统的所有安全漏洞,而只需要尝试找出并利用可以获取目标系统访问权代价最小的攻击路径,并保证不被检测到。
软件测试和渗透测试有什么区别?
首先,测试对象不同
软件测试测试对象主要是程序、数据或文档;渗透测试的测试对象主要为网络设备、主机操作系统、数据库系统和应用系统。
其次,测试内容不同
软件测试主要工作内容是验证和确认,发现软件中的缺陷或者不足,然后把发现的问题整理成报告并分析出软件质量的好坏。
渗透测试主要包括:黑盒测试、白盒测试和灰盒测试。主要做的工作有:
信息收集、端口扫描、权限提升、远程溢出攻击、WEB应用测试、SQL注入攻击、检测页面隐藏字段、跨站攻击、Cookie利用、后门程序检查、第三方软件误配置等等
最后,测试原则不同:
软件测试原则:测试应该尽早进行;软件测试应该由第三方来负责;设计测试用例时应考虑到合法的输入和不合法的输入以及各种边界条件;应该充分注意测试中的群集现象;对错误结果要进行一个确认过程;制定严格的测试计划;妥善保存测试计划、测试用例、出错统计和最终分析报告。
渗透测试原则:测试验证时间放在业务量最小的时间进行;测试执行前确保相关数据进行备份;所有测试在执行前和维护人员进行沟通确认;在测试过程中出现异常情况时立即停止测试并及时恢复系统;对原始业务系统进行一个完全的镜像环境,在镜像环境上进行渗透性测试。
看携程网的数据丢失,了解什么是渗透测试
1、黑箱测试
黑箱测试又被称为所谓的“Zero-Knowledge Testing”,渗透者完全处于对系统一无所知的状态,通常这类型测试,最初的信息获取来自于DNS、Web、Email及各种公开对外的服务器。
2、白盒测试
白盒测试与黑箱测试恰恰相反,测试者可以通过正常渠道向被测单位取得各种资料,包括网络拓扑、员工资料甚至网站或其它程序的代码片断,也能够与单位的其它员工(销售、程序员、管理者……)进行面对面的沟通。这类测试的目的是模拟企业内部雇员的越权操作。
3、隐秘测试
隐秘测试是对被测单位而言的,通常情况下,接受渗透测试的单位网络管理部门会收到通知:在某些时段进行测试。因此能够监测网络中出现的变化。但隐秘测试则被测单位也仅有极少数人知晓测试的存在,因此能够有效地检验单位中的信息安全事件监控、响应、恢复做得是否到位。
渗透性测试的概念
软件工程中使用的一种技术,主要用来发现软件漏洞。和系统证实一样是发现漏洞的基本技术。
渗透性测试能够发现软件中未知的漏洞,但是不能确保某一漏洞是否不存在。渗透性测试的基本方法包括:黑盒、白盒、灰盒。
0条大神的评论