Patch2QL:利用自动生成的静态分析规则发现开源软件供应链中的同源缺陷
密码学与安全
2024-01-31 v2 软件工程
摘要
在开源软件(OSS)生态系统中,存在一个复杂的软件供应链,上下游开发者广泛借用和重用代码。这导致重复缺陷、缺失修复和传播问题广泛发生。这些问题被统称为同源缺陷,其规模和威胁尚未得到广泛关注和系统研究。软件成分分析和代码克隆检测方法无法覆盖供应链场景中的各种变体问题,而代码静态分析,即静态应用安全测试(SAST)技术,则难以针对特定缺陷。在本文中,我们提出了一种通过自动生成SAST规则来检测OSS中同源缺陷的新技术。具体而言,它通过结构比较以及从控制流到数据流的分析,从代码的补丁前和补丁后版本中提取关键语法和语义信息,并生成匹配这些关键元素的规则。我们实现了一个名为Patch2QL的原型工具,并将其应用于C/C++的基础OSS。在实验中,我们在最流行的上游软件中发现了7个具有中等到严重程度的新漏洞,以及大量潜在的安全问题。在分析供应链中的下游项目时,我们发现了大量具有代表性的同源缺陷,阐明了该问题带来的威胁。此外,与通用SAST和基于签名的机制相比,生成的规则在发现所有同源缺陷变体方面表现更优。
引用
@article{arxiv.2401.12443,
title = {Patch2QL: Discover Cognate Defects in Open Source Software Supply Chain With Auto-generated Static Analysis Rules},
author = {Fuwei Wang and Yongzhi Liu and Zhiqiang Dong},
journal= {arXiv preprint arXiv:2401.12443},
year = {2024}
}