Skip to main content
QUICK REVIEW

[论文解读] On the Computational Complexity of Satisfiability Solving for String Theories

Susmit Jha, Sanjit A. Seshia|ArXiv.org|Mar 16, 2009
Web Application Security Vulnerabilities参考文献 26被引用 8
一句话总结

本文分析了与软件安全相关的字符串约束理论的计算复杂度,证明即使是小型且实用的片段也属于NP完全问题。本文论证了采用'字节展开'(byte-blast)方法的合理性——即通过位向量编码将字符串约束转化为位向量公式,从而利用现成的SMT求解器实现高效求解,使安全关键型字符串处理应用的可 scale 验证成为可能。

ABSTRACT

Satisfiability solvers are increasingly playing a key role in software verification, with particularly effective use in the analysis of security vulnerabilities. String processing is a key part of many software applications, such as browsers and web servers. These applications are susceptible to attacks through malicious data received over network. Automated tools for analyzing the security of such applications, thus need to reason about strings. For efficiency reasons, it is desirable to have a solver that treats strings as first-class types. In this paper, we present some theories of strings that are useful in a software security context and analyze the computational complexity of the presented theories. We use this complexity analysis to motivate a byte-blast approach which employs a Boolean encoding of the string constraints to a corresponding Boolean satisfiability problem.

研究动机与目标

  • 识别并形式化高阶编程语言(如C和Java)中常用于安全相关程序分析的字符串谓词和函数的核心集合。
  • 分析由此产生的字符串理论中各种片段的计算复杂度,特别关注其NP完全性。
  • 推动并证明一种字节展开方法的合理性,该方法将字符串约束编码为位向量逻辑,以利用现有的SMT求解器实现高效的可满足性求解。
  • 探索专为字符串约束设计的抽象-精化技术,例如长度抽象和位置抽象,以提升实际安全应用中的可扩展性。

提出的方法

  • 基于C和Java中常见的字符串操作和谓词(包括extract-i-j和contains-at-position-i)定义一个字符串理论。
  • 通过使用布尔编码原理将3-CNF SAT问题归约到字符串约束,证明该理论中非平凡片段的NP完全性。
  • 构建字符串约束到位向量逻辑的布尔编码,其中字符串变量表示为位向量,操作通过逻辑约束进行编码。
  • 采用两步归约:首先归约为包含基本操作的核心字符串理论,再归约为位向量逻辑,从而可使用现有的SAT/SMT求解器(如STP或Z3)。
  • 提出抽象技术——长度抽象和位置抽象——以指导求解器并减少实际安全分析中的搜索空间。
  • 集成受先前SMT工作启发的抽象-精化循环机制,利用未满足核心(unsat cores)对字符串约束的过度近似和不足近似进行精化。

实验结果

研究问题

  • RQ1在软件安全中使用的字符串理论的实际片段中,可满足性求解的计算复杂度是什么?
  • RQ2基于SAT的字节展开方法是否能通过将字符串约束归约为位向量逻辑,有效求解字符串约束?
  • RQ3extract-i-j和contains-at-position-i等操作的存在如何影响字符串约束求解的复杂度?
  • RQ4诸如长度抽象和位置抽象等抽象-精化技术是否能在实践中提升字符串约束求解的可扩展性?
  • RQ5是否存在即使不包含并集或星号操作的字符串逻辑片段,仍然保持NP完全性?

主要发现

  • 多个小型且实用的字符串理论片段(如包含extract-i-j和contains-at-position-i的片段)被证明是NP完全的。
  • 即使不包含并集或星号操作,NP完全性结果依然成立,表明复杂度源于基本字符串操作本身,而非仅由正则语言的表达能力引起。
  • 从3-CNF SAT到字符串约束的归约表明,求解这些字符串片段的难度等同于求解一般SAT问题,从而确立了NP难性。
  • 由于底层问题的NP完全性,将字符串约束编码为位向量逻辑的字节展开方法被证明是一种可行且有效的策略。
  • 提出了长度抽象和位置抽象等抽象技术,作为在实际安全分析中引导求解器并减少搜索空间的实用手段。
  • 本文表明,其理论中可表达的约束与HAMPI中的约束并不完全可比,因为其理论包含HAMPI基于正则语言框架无法表达的位置特定谓词。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。