查找约束满足问题的半影


12

测试系统或模型的安全性时,已经多次提出以下问题。

动机:软件安全缺陷通常不是由于有效输入引起的错误,而是由于无效输入导致的错误,该输入足够接近有效输入以通过许多直接的有效性检查。典型的例子当然是缓冲区溢出,在这里输入是合理的,只是输入太大。编译器和其他工具可以通过修改堆栈和堆的布局以及其他混淆技术来帮助解决这些问题。一种替代方法是从源代码本身中消除问题。一种称为模糊测试的技术使输入的程序接近预期的输入,但在某些地方却不合理(整数或字符串字段的值较大)。我想从更正式的角度理解模糊测试(作为示例)。

假设有效输入的空间由约束描述。让中号是集合这样的约束,即解的 中号= { 中号| Φ },其中中号是可能的输入的空间中。ΦMM={mM | mΦ}M

我正在寻找描述以下概念的工作:

  • MMMmM 中号中号mΦ MM

  • 放宽约束的方式到使得首先和是,从某种意义上说,的句法半影。Φ ' Φ Φ ' Φ '¬ Φ ΦΦΦΦΦΦ¬ΦΦ

我选择“ Penumbra”来描述这个概念。它可能被称为其他名称。

我从数学形态学中找到了灵感 ,因此找到了视觉上的隐喻,但两个世界是相距遥远的。那里有什么有用的工作吗?还是在粗糙的世界中?

谁能阐明?


这个问题本身确实很有趣,但是在大多数时候,人们的兴趣不是建立半影(我不知道是一个更“正式”的名称),而是在于避免软件篡改攻击(例如通过修改进行的攻击)的混淆技术。输入)。这种技术通过用其他东西充斥程序来隐藏程序行为的核心。例如,您可以通过将原始程序与对特定实例上的NP难题的解决方案进行硬编码的程序交织在一起来构建程序。
Sylvain Peyronnet

确实是这样。我暗示了称为模糊测试的方法。
戴夫·克拉克

顺便说一下,CSP =约束满意度问题。
MS Dousti

Answers:


6

约束满足问题(CSP)的优化变体上的大部分注意力都集中在满足一定数量的约束(MAX-CSP)上,或者在布尔型的情况下,重点是选择分配尽可能多的变量值为1( MAX-ONES,也有MIN-ONES。

相反,您要问的是一个可以称为MAXIMUM PARTIAL CSP的变体。至少可以追溯到1960年代末,对此进行了研究,但我不知道它有一个固定的名称。这是一个自然的问题,希望有更多的工作进行调查。感谢您为这个问题提供另一个潜在的应用程序!

  • Ambler,AP和Barrow,HG和Brown,CM,Burstall,RM和RJ Popplestone,多功能计算机控制组装系统,人工智能,6 129–156,1975。doi:10.1016 / 0004-3702(75)90006- 5

一组变量值分配称为部分分配。可以将变量值赋值编写为(变量,值)元组。这样,部分分配就是从变量到值的简单函数。 道具是不违反任何约束的部分分配。同样,道具不包含某些约束(作为子集)禁止的部分分配。

表达优化问题的一种方法如下。

最大部分CSP:
输入: CSP实例
输出: prop标准:最大化| f |f
|f|

在具有变量的实例中,显然,基数将是一个解决方案。可能存在基数最大为大型道具,这些道具未包含在任何解决方案中。n n 1nnn1

在您提出的术语中,具有最大基数的一组道具构成了半影,甚至可能还有一些额外的回旋余地(因此基数至少为)。d k dkdkd

您问题的第二部分似乎也很有趣,但是我不知道有任何与此相关的工作。


脚注:“ prop”一词来自我的论文;它旨在传达这样的想法,即部分分配是正确的,并且它们支持解决方案集。这与nogood相反,nogood是描述不能扩展到解决方案的部分分配的公认术语。“ nogood”一词是由Richard Stallman和Gerald Sussman在1976年提出的,当时RMS仍然是AI研究人员,而不是软件自由主义者。

  • Stallman,Richard M.和Sussman,Gerald Jay,《计算机辅助电路分析系统中的正向推理和依赖关系的回溯》,麻省理工学院人工智能实验室备忘录,第380号,1976年。(PDF
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.