边界值分析(Boundary alue analysis),黑盒测试方法的一种,边界值分析方法根据应用的合法和非法输入区间,选择落在区间边界附近的值作为输入值来进行测试。该方法能够确保应用错误处理机制准确地接受所有合法输入值,并且能准确的过滤掉所有非法输入值。
模糊测试与边界值分析类似。
模糊测试定义为:通过向应用提供非预期的输入并且监控输出中的异常来发现软件中的故障的发方法。
用于模糊测试的模糊测试器分为两类:①基于变异(mutation-based):这类测试器通过对已有的数据样本进行变异来创建测试用例。②基于生成(generation-based):这类测试器为测系统使用的协议或是文件格式建模,基于模型生成输入并据此创建测试用例。
模糊测试的阶段
1.确定测试目标
2.确定输入向量
寻找输入向量原则:从客户端向目标应用发送任何东西,包括头、文件名、环境变量、注册表键、及其他信息,都应该被看作输入向量。
3.生成模糊测试工具 (使用自动化过程来生成数据)
4.执行模糊测试数据 (该步骤同上,必须自动化)
5.监视异常
该步骤需要根据被测应用和所采用的模糊测试类型来设置各种形式的监视。
6.判定发现的漏洞是否可能被利用
模糊测试方法
1.预生成测试用例
该方法要求首先研究特定的规约,理解该规约支持的数据结构和可接受值的范围,基于这些理解生成用于测试边界条件或是违反规约的测试用例,然后用这些测试用例来测试该规约实现的完备性。
缺点:测试用例列表中的用例被执行完,测试就只能结束。
2.随机生成输入
随机方法简单的向目标应用发送伪随机数据,期望得到最好或最坏的结果。
3.手工协议变异测试
测试者输入不正确的数据
4.变异或强制性测试
指模糊测试器从一个有效的协议样本或是数据格式样本开始,持续不断地打乱数据包或是文件中的每一个字节、字、双字或字符串。
5.自动协议生成测试
首先,对被测应用进行研究,理解和解释协议规约或文件定义。
创建一个描述协议规约如何工作的文法。测试者可以识别出数据包或者文件中的静态部分和动态部分,动态部分就是可以被模糊化变量代替的部分。随后,模糊测试器动态分析包含静态和动态部分的模板,生成模糊测试数据,将结果数据包或是文件发送给被测应用。
模糊测试局限性和展望
1.访问控制漏洞
2.设计逻辑 后面章节详细解释
3.后门
4.破坏
5.多阶段安全漏洞