中文

OriginPruner:利用方法来源进行引导式调用图修剪

密码学与安全 2024-12-13 v1 软件工程

摘要

大多数静态程序分析都依赖调用图(Call Graph,CG),包括安全漏洞的可达性分析。静态调用图通过保守估计确保严格性,但导致图的规模膨胀和不精确。最近的研究采用机器学习模型修剪假边,提高CG的精度。然而,这些模型需要高测试覆盖率的真实程序才能有效泛化,且推理成本高昂。本文提出OriginPruner,一种新型调用图修剪技术,利用方法来源(method origin,即方法签名首次在类层次结构中引入的地方)。通过融合局部性分析(localness analysis)所揭示的方法交互范围的见解,OriginPruner能够自信地识别并修剪与这些来源方法相关的边。我们的关键发现表明:(1)主导性的方法来源(如 Iterator.next)对CG规模影响显著;(2)这些来源方法的派生方法主要是局部的,能够在不影响后续过程分析的前提下安全修剪;(3)OriginPruner在保持安全应用(如漏洞传播分析)CG严格性的同时,显著减少CG规模;(4)OriginPruner引入的计算开销最小。这些发现凸显了利用类型系统领域知识以更有效方式修剪调用图的潜力,为静态程序分析的未来工作提供了有前景的方向。

关键词

引用

@article{arxiv.2412.09110,
  title  = {OriginPruner: Leveraging Method Origins for Guided Call Graph Pruning},
  author = {Amir M. Mir and Mehdi Keshani and Sebastian Proksch},
  journal= {arXiv preprint arXiv:2412.09110},
  year   = {2024}
}