[论文解读] Constraint Solving with Deep Learning for Symbolic Execution
本文提出 DeepSolver,一种基于深度学习的方法,通过在集体约束解上训练神经网络来分类路径条件的可满足性,从而加速符号执行中的约束求解。与以往依赖语法或语义等价性的重用技术不同,DeepSolver 从学习到的模式中进行泛化,实现了高准确率和高效率——在分类速度和符号执行支持方面均优于 Z3 和 GreenTrie。
Symbolic execution is a powerful systematic software analysis technique, but suffers from the high cost of constraint solving, which is the key supporting technology that affects the effectiveness of symbolic execution. Techniques like Green and GreenTrie reuse constraint solutions to speed up constraint solving for symbolic execution; however, these reuse techniques require syntactic/semantic equivalence or implication relationship between constraints. This paper introduces DeepSover, a novel approach to constraint solving with deep learning for symbolic execution. Our key insight is to utilize the collective knowledge of a set of constraint solutions to train a deep neural network, which is then used to classify path conditions for their satisfiability during symbolic execution. Experimental evaluation shows DeepSolver is highly accurate in classifying path conditions, is more efficient than state-of-the-art constraint solving and constraint solution reuse techniques, and can well support symbolic execution tasks.
研究动机与目标
- 解决符号执行中约束求解的高计算成本问题,这是软件分析中的主要瓶颈。
- 克服现有约束解重用技术的局限性,这些技术要求约束之间具有语法或语义等价性。
- 探索使用深度神经网络从历史约束解中泛化以实现更快路径条件分类的可行性和有效性。
- 设计一个实用框架,将深度学习集成到符号执行中,同时不牺牲正确性或可扩展性。
- 证明深度学习可以被有效应用于符号执行工作负载,特别是在预测路径条件可满足性方面。
提出的方法
- 使用一种向量化算法将路径条件转换为固定大小的矩阵,该算法编码符号表达式和控制流结构。
- 在先前求解的路径条件数据集上训练深度神经网络(DNN),以学习区分可满足与不可满足条件的模式。
- 在符号执行过程中使用训练好的 DNN 对新路径条件进行分类,而无需调用传统约束求解器。
- 将 DNN 分类器集成到符号执行流水线中,并配备回退机制以处理误分类并确保正确性。
- 应用逻辑化简和归一化技术,以提高输入的一致性,并增强模型在多样化路径条件上的泛化能力。
- 利用现成的约束求解器(例如 Z3)生成初始训练数据,并验证 DNN 预测结果。
实验结果
研究问题
- RQ1深度学习能否有效用于预测符号执行中路径条件的可满足性?
- RQ2基于深度学习的分类在准确率和效率上与传统约束求解及约束解重用技术相比如何?
- RQ3DNN 在无需精确语法或语义匹配的情况下,能在多大程度上在多样化路径条件上实现泛化?
- RQ4DNN 方法在程序复杂度增加和路径条件多样性提升时,其可扩展性如何?
- RQ5将深度学习集成到符号执行中是否能在显著减少求解器调用开销的同时保持正确性?
主要发现
- DeepSolver 在九个真实世界 Java 程序的路径条件上实现了高分类准确率,其预测可靠性显著优于基线方法。
- 该模型通过利用学习到的模式而非精确匹配,减少了符号执行过程中约束求解器的调用次数,从而加快了分析速度。
- 与 Z3(最先进的约束求解器)和 GreenTrie(领先的解重用框架)相比,DeepSolver 在路径条件可满足性分类方面更加高效。
- 该方法展现出强大的泛化能力,能够以高精度分类训练过程中未见过的路径条件,即使这些条件在语法上与训练样本不同。
- 将 DNN 与回退机制结合,确保了正确性,使 DeepSolver 成为实际符号执行流水线中的实用选择。
- 评估结果表明,与现有技术相比,DeepSolver 在支持符号执行任务方面更为有效,特别是在路径爆炸严重且存在重复约束模式的场景中。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。