[论文解读] Neuro-Symbolic Execution: The Feasibility of an Inductive Approach to Symbolic Execution
本文提出了神经符号执行(NeuEx),一种将符号执行与神经网络相结合的新方法,以克服约束表达能力和可扩展性的局限。通过使用可微分神经约束学习复杂变量关系,并利用SMT与梯度优化联合求解混合符号-神经约束,NeuEx成功为14个缓冲区溢出程序中的13个生成了利用代码,且在73个基准程序的神经符号约束中实现了100%的求解率。
Symbolic execution is a powerful technique for program analysis. However, it has many limitations in practical applicability: the path explosion problem encumbers scalability, the need for language-specific implementation, the inability to handle complex dependencies, and the limited expressiveness of theories supported by underlying satisfiability checkers. Often, relationships between variables of interest are not expressible directly as purely symbolic constraints. To this end, we present a new approach -- neuro-symbolic execution -- which learns an approximation of the relationship as a neural net. It features a constraint solver that can solve mixed constraints, involving both symbolic expressions and neural network representation. To do so, we envision such constraint solving as procedure combining SMT solving and gradient-based optimization. We demonstrate the utility of neuro-symbolic execution in constructing exploits for buffer overflows. We report success on 13/14 programs which have difficult constraints, known to require specialized extensions to symbolic execution. In addition, our technique solves $100$\% of the given neuro-symbolic constraints in $73$ programs from standard verification and invariant synthesis benchmarks.
研究动机与目标
- 解决符号执行在处理程序变量之间复杂、无法表达的关系时的局限性。
- 克服符号执行中SMT求解器在非线性或字符串密集型操作下存在的可扩展性与表达能力限制。
- 支持对符号执行原生不支持的代码组件进行分析,例如黑盒或专有函数。
- 开发一种通用的约束求解框架,整合归纳学习与演绎推理,用于程序分析。
- 证明使用神经网络近似复杂程序行为的可行性,而无需预定义约束模板。
提出的方法
- Neuro-Symbolic Execution 通过学习接口,从具体的测试执行中学习变量关系的神经网络表示。
- 将约束表述为符号表达式(来自SMT)与神经网络输出(来自学习模型)的合取。
- 混合约束求解器结合SMT求解与基于梯度的优化,以检查混合符号-神经约束的可满足性。
- 框架使用可微分神经网络,以支持反向传播与梯度计算,用于约束满足与输入优化。
- 该方法通过从观察到的程序行为学习,无需源代码或语言特定规则,支持白盒与黑盒分析。
- 利用神经网络的通用逼近特性,建模复杂、非线性的关系,这些关系在标准SMT理论中难以表达。
实验结果
研究问题
- RQ1神经网络能否有效学习并表示那些在符号约束中无法表达的复杂非线性变量关系?
- RQ2结合SMT与基于梯度优化的混合约束求解器能否高效求解混合符号-神经约束?
- RQ3神经符号执行在生成具有复杂约束的缓冲区溢出漏洞利用方面,能否优于传统符号执行?
- RQ4该框架在标准验证与不变式合成基准上的泛化能力如何?
- RQ5缺乏预定义约束模板是否能提升约束推理在程序分析中的灵活性与适用性?
主要发现
- Neuro-Symbolic Execution 成功为14个缓冲区溢出程序中的13个生成了有效利用代码,这些程序因复杂约束而对传统符号执行构成挑战。
- 该框架在73个标准基准程序(来自验证与不变式合成)中成功求解了100%的神经符号约束,展现出高可靠性与覆盖率。
- 混合求解器有效结合了SMT求解与基于梯度的优化,实现了在高维输入空间中复杂约束的高效搜索。
- 该方法通过学习标准SMT理论无法表示的关系(如非线性或基于字符串的函数),在表达能力上优于传统符号执行。
- 该方法无需预定义约束模板,能够从测试数据中学习任意函数关系,显著提升灵活性与适用性。
- 使用可微分神经网络支持梯度计算,从而实现对复杂约束组合的高效输入优化。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。