paperbot · PL 论文追踪

全部论文 待读 收藏

P1 Beware of the Unexpected: Bimodal Taint Analysis

警惕意外:双模态污点分析
ISSTA Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis2023匹配度 5/10 · 该论文将静态分析与机器学习结合,用于污点分析以减少误报,属于AI→PL方向,但使用的是传统ML而非LLM/Agent,且不涉及浮点程序分析或贝叶斯程序分析,与用户核心研究画像匹配度中等。引用 13 inbox
Yiu Wai Chow, Max Schäfer, Michael Pradel
crossref: 2026-09-12

AI 速览

一句话:结合静态分析与机器学习,用自然语言信息预测污点流是否意外,从而精准报告安全问题。

全局污点追踪能发现跨函数的复杂数据流漏洞,但判断哪些流可疑往往依赖约定和隐含知识,纯静态分析难以胜任:例如 API 参数名 locale 落入文件路径令人意外,而 command 传给 execaCommand 最终成为系统命令却符合预期。本文提出 Fluffy,一种双模态污点分析,将推理数据流的静态分析与概率判断流是否可疑的机器学习结合。其核心思想是让机器学习模型根据污点流中的自然语言信息(如 API 名称)预测流是预期还是意外,仅向开发者报告后者。作者给出通用框架并实例化四个学习模型,在标注数据需求与预测精度之间提供不同权衡;在 CodeQL 上实现并应用于 25 万个 JavaScript 项目,针对五类常见漏洞评估,其中四类在多个数据集上 F1 达 0.85 以上。

问题
全局污点追踪虽能发现跨函数漏洞,但准确判断哪些数据流真正可疑常依赖约定等非纯程序分析可及的信息。
方法
提出双模态污点分析 Fluffy,用机器学习模型从 API 名称等自然语言信息预测污点流是否符合预期,仅报告意外流。
评估
在 CodeQL 上实现并应用于 25 万个 JavaScript 项目,针对五类常见漏洞在多个数据集上评估,四类 F1 达 0.85 以上。
原文摘要(Abstract)

Static analysis is a powerful tool for detecting security vulnerabilities and other programming problems. Global taint tracking, in particular, can spot vulnerabilities arising from complicated data flow across multiple functions. However, precisely identifying which flows are problematic is challenging, and sometimes depends on factors beyond the reach of pure program analysis, such as conventions and informal knowledge. For example, learning that a parameter name of an API function locale ends up in a file path is surprising and potentially problematic. In contrast, it would be completely unsurprising to find that a parameter command passed to an API function execaCommand is eventually interpreted as part of an operating-system command. This paper presents Fluffy, a bimodal taint analysis that combines static analysis, which reasons about data flow, with machine learning, which probabilistically determines which flows are potentially problematic. The key idea is to let machine learning models predict from natural language information involved in a taint flow, such as API names, whether the flow is expected or unexpected, and to inform developers only about the latter. We present a general framework and instantiate it with four learned models, which offer different trade-offs between the need to annotate training data and the accuracy of predictions. We implement Fluffy on top of the CodeQL analysis framework and apply it to 250K JavaScript projects. Evaluating on five common vulnerability types, we find that Fluffy achieves an F1 score of 0.85 or more on four of them across a variety of datasets.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@inproceedings{paperbot8059,
  title = {Beware of the Unexpected: Bimodal Taint Analysis},
  author = {Yiu Wai Chow and Max Schäfer and Michael Pradel},
  booktitle = {ISSTA},
  year = {2023},
  doi = {10.1145/3597926.3598050}
}