Scalable Defect Detection via Traversal on Code Graph

2024年06月12日
  • 简介
    在软件工程中,早期检测缺陷和漏洞一直是一个挑战。静态分析是一种无需执行代码的技术,已成为解决这一挑战的关键策略。在最近的进展中,基于图形的表示法,特别是代码属性图(CPG),因其对代码结构和语义的全面描述而受到关注。尽管取得了进展,但现有的基于图形的分析工具仍然面临性能和可伸缩性问题。主要瓶颈在于CPG的大小和复杂性,使得分析大型代码库效率低下且消耗内存。此外,当前工具使用的查询规则可能过于具体。因此,我们介绍了QVoG,这是一个基于图形的静态分析平台,用于检测缺陷和漏洞。它使用压缩的CPG表示来维护合理的图形大小,从而增强了整体查询效率。基于CPG,它还提供了一种声明性查询语言来简化查询。此外,它还采取了一步机器学习来增强漏洞检测的通用性。对于由100万行及以上代码组成的项目,QVoG可以在约15分钟内完成分析,而CodeQL需要19分钟。
  • 作者讲解
  • 图表
  • 解决问题
    静态分析在软件工程中的缺陷和漏洞检测存在性能和可扩展性问题,尤其是基于图的表示方法,如Code Property Graph (CPG),在处理大型代码库时效率低下、内存消耗大。
  • 关键思路
    本论文提出了一种基于压缩CPG表示的图形静态分析平台QVoG,通过简化查询语言和引入机器学习方法提高了缺陷和漏洞检测的泛化性。
  • 其它亮点
    QVoG能够处理100万行以上的代码库,在15分钟内完成分析,比CodeQL快4分钟。论文还开源了QVoG的代码和数据集,并通过实验验证了其在缺陷和漏洞检测方面的有效性。
  • 相关研究
    近期相关研究包括:1. CodeQL:一种基于查询的静态分析工具;2. Joern:一个开源的CPG分析平台;3. Semmle:一种基于语义的代码分析工具。
许愿开讲
PDF
原文
点赞 收藏
向作者提问
NEW
分享到Link

提问交流

提交问题,平台邀请作者,轻松获得权威解答~

向作者提问