现代软件系统通常由多种编程语言混合构建(如 Python 与 C、Java 与 C 的交互),这种跨语言架构会因语言间的语义差异和隐式交互引入难以察觉的漏洞。传统静态分析器受限于不同语言语义的异构性,往往无法有效建模跨语言的数据流;动态分析方法则受限于测试输入的覆盖率,难以发现深层或隐晦的缺陷。针对这一空白,论文提出 PolyFlow——一个神经符号(neuro-symbolic)框架,将大语言模型(LLM)与静态分析协同结合,用于跨语言信息流(数据流)的静态推理。其核心思路是:首先基于给定多语言系统的控制流表示,利用 LLM 识别由复杂语言特性(如指针别名、回调、异常路径、隐式类型转换等)造成的隐式流事实,从而增强基础程序表示;随后在增强后的表示上传播数据流,实现跨语言边界的信息流分析。为克服 LLM 固有的 token 限制、幻觉等问题,PolyFlow 采用静态分析指导的作用域裁剪、上下文管理和逐条事实校验,并引入多 LLM 专家小组进行协商式验证,提高结果的可靠性。作者在真实世界的 Python-C 和 Java-C 混合系统上开展实验,结果表明 PolyFlow 在成本效益上具有优势,且优于多种现有基线(包括纯静态分析、纯 LLM 方法以及动态测试),并成功发现了所有基线均遗漏的未知跨语言漏洞。该研究的主要贡献包括提出首个结合 LLM 与静态分析的跨语言信息流分析框架、设计多 LLM 协商验证机制,以及在真实系统上验证其有效性和实际漏洞发现能力。适合软件安全研究人员、静态分析工具开发者以及关注多语言供应链安全的蓝队工程师阅读。
💡 推荐理由: 跨语言信息流漏洞常被单一语言分析工具遗漏,PolyFlow 展示了一种用 LLM 增强静态分析来发现此类隐蔽漏洞的新范式,对多语言应用的安全审计具有直接参考价值。
🎯 建议动作: 研究跟进