paperbot · PL 论文追踪

全部论文 待读 收藏

P2 (Partial) Program Dependence Learning

(部分)程序依赖学习
ICSE 2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE)2023匹配度 4/10 · 该论文用神经网络学习程序依赖(CFG/PDG边)并用于漏洞检测,属于机器学习辅助程序分析的邻近方向;但它使用的是传统神经网络而非LLM/Agent,不涉及浮点程序分析、贝叶斯程序分析或Agentic程序中的静态分析,因此与当前研究画像核心匹配度有限。引用 3 inbox
Aashish Yadavally, Tien N. Nguyen, Wenbo Wang, Shaohua Wang
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:提出 NeuralPDA,用神经网络学习完整与部分程序中的语句对依赖,预测 CFG/PDG 边并支持漏洞检测。

开发者论坛代码片段常因复用进入应用,但其不完整,使早期漏洞分析困难。论文提出 NeuralPDA,面向完整与部分程序的神经网络程序依赖分析工具,将语句内与语句间上下文特征融入语句表示,把依赖分析建模为语句对依赖解码,从而预测 CFG 与 PDG 边。实验在完整 Java 和 C/C++ 上取得 94.29% 与 92.46% 的综合 F-score;部分 Java 和 C/C++ 上分别为 94.29%–97.17% 和 92.46%–96.01%。用预测的 PDG* 进行方法级漏洞检测时,性能仅比使用程序分析工具生成的 PDG 低 1.1%,并从 StackOverflow 检出 14 个真实易受攻击代码片段。

问题
来自论坛的不完整代码片段因缺失上下文,难以进行早期依赖分析与潜在漏洞检测。
方法
NeuralPDA 将语句内和语句间上下文编码进语句表示,把程序依赖分析转化为语句对依赖解码任务,预测 CFG/PDG 边,并适用于完整与部分程序。
评估
在完整及部分 Java 和 C/C++ 代码上评估 CFG/PDG 边预测的 F-score,并将预测的 PDG* 用于方法级漏洞检测,与程序分析工具生成的 PDG 对比。
原文摘要(Abstract)

Code fragments from developer forums often migrate to applications due to the code reuse practice. Owing to the incomplete nature of such programs, analyzing them to early determine the presence of potential vulnerabilities is challenging. In this work, we introduce NeuralPDA, a neural network-based program dependence analysis tool for both complete and partial programs. Our tool efficiently incorporates intra-statement and inter-statement contextual features into statement representations, thereby modeling program dependence analysis as a statement-pair dependence decoding task. In the empirical evaluation, we report that NeuralPDA predicts the CFG and PDG edges in complete Java and C/C++ code with combined F-scores of 94.29% and 92.46%, respectively. The F-score values for partial Java and C/C++ code range from 94.29%-97.17% and 92.46%-96.01%, respectively. We also test the usefulness of the PDGs predicted by NeuralPDA (i.e., PDG*) on the downstream task of method-level vulnerability detection. We discover that the performance of the vulnerability detection tool utilizing PDG* is only 1.1% less than that utilizing the PDGs generated by a program analysis tool. We also report the detection of 14 real-world vulnerable code snippets from StackOverflow by a machine learning-based vulnerability detection tool that employs the PDGs predicted by NeuralPDA for these code snippets.

链接与引用

DOI 原文 · DBLP

BibTeX
@inproceedings{YadavallyNWW23,
  title = {(Partial) Program Dependence Learning},
  author = {Aashish Yadavally and Tien N. Nguyen and Wenbo Wang and Shaohua Wang},
  booktitle = {ICSE},
  year = {2023},
  doi = {10.1109/icse48619.2023.00209}
}