在测试系统或模型的安全性时,已经多次提出以下问题。
动机:软件安全缺陷通常不是由于有效输入引起的错误,而是由于无效输入导致的错误,该输入足够接近有效输入以通过许多直接的有效性检查。典型的例子当然是缓冲区溢出,在这里输入是合理的,只是输入太大。编译器和其他工具可以通过修改堆栈和堆的布局以及其他混淆技术来帮助解决这些问题。一种替代方法是从源代码本身中消除问题。一种称为模糊测试的技术使输入的程序接近预期的输入,但在某些地方却不合理(整数或字符串字段的值较大)。我想从更正式的角度理解模糊测试(作为示例)。
假设有效输入的空间由约束描述。让中号是集合这样的约束,即解的 中号= { 米∈ 中号| 米⊨ Φ },其中中号是可能的输入的空间中。
我正在寻找描述以下概念的工作:
我选择“ Penumbra”来描述这个概念。它可能被称为其他名称。
我从数学形态学中找到了灵感 ,因此找到了视觉上的隐喻,但两个世界是相距遥远的。那里有什么有用的工作吗?还是在粗糙的世界中?
谁能阐明?