对于模糊测试和黑盒测试的理解

黑盒测试

黑盒测试也称 功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把 程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在 程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于 程序外部结构,不考虑内部 逻辑结构,主要针对 软件界面和软件功能进行测试。
黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。

以上是度娘的概念,简单来说,黑盒测试就是在不知道程序具体内容的情况下,按规定内的数据(格式)输入,检查是否能达到预期的经过程序正常处理的效果,找到出现非预期结果的那些错误。(一般不会穷举,所以没找到并不等于完全安全)


黑盒测试的主要作用:

黑盒测试法注重于测试软件的功能需求,主要试图发现下列几类错误。
1.功能不正确或遗漏;
2.界面错误;
3.输入和输出错误;
4. 数据库访问错误;
5.性能错误;
6. 初始化和 终止错误等。


模糊测试

模糊测试( Fuzzing),是一种通过向目标系统提供非 预期的输入并监视异常结果来发现 软件漏洞的方法。

主要是通过输入大量数据,发现程序中存在的问题。可以通过使程序某些内容溢出出现异常,或者输入的是程序规定的范围内的数据结果出现异常,从而找出程序的bug。

模糊测试的实现是一个非常简单的过程:
1、准备一份插入程序中的正确的文件。
2、用随机数据替换该文件的某些部分。
3、用程序打开文件。
4、观察破坏了什么。

可以用任意多种方式改变该随机数据。例如,可以将整个文件打乱,而不是仅替换其中的一部分,也可以将该文件限制为 ASCII 文本或非零 字节。不管用什么方式进行分割,关键是将大量随机数据放入应用程序并观察出故障的是什么。

引入背景:

模糊测试(fuzz testing)是一种安全测试方法,他介于完全的手工测试和完全的自动化测试之间。为什么是介于那两者之间?首先完全的手工测试即是渗透测试,测试人员可以模拟黑客恶意进入系统、查找漏洞,这对测试人员的要求比较高。能力强的测试人员可以发现比较多或者高质量的安全性问题,但是如果测试人员的能力不够,可能就不能找到足够多、威胁大的安全漏洞。所有渗透测试对人员能力的依赖性强,成本高,难以大规模的实施。

但是想用完全的自动化来实现渗透测试也不可行,同一套测试用例和方法不可能不加修改的就用在不同的产品上,因为各个产品的需求、实现、功能等等都不一样。测试过程中还需要测试人员的介入来分析结果、判断漏洞等等。那么,这种情况下我们就可以引入模糊测试。

(参考于 点击打开链接)

具体实例如下,希望不久能动手尝试。
模糊测试实例

以上仅为我的初识见解,深入学习之后定会回来更新。

你可能感兴趣的:(信息安全基础)