中文

CENTRIS:一种精确且可扩展的修改版开源软件复用识别方法

软件工程 2021-02-12 v1 密码学与安全

摘要

开源软件(OSS)因在软件开发中提供便利与效率而被广泛复用。尽管益处明显,未受管理的 OSS 组件可能引入诸如漏洞传播与许可证违规等威胁。然而遗憾的是,由于被复用的 OSS 大多经过修改且嵌套,识别复用的 OSS 组件是一项挑战。本文中,我们提出 CENTRIS,一种精确且可扩展的修改版 OSS 复用识别方法。通过分割 OSS 代码库并仅检测 OSS 中唯一部分的复用,CENTRIS 能够在存在嵌套 OSS 组件的情况下精确识别修改版 OSS 复用。为可扩展性,CENTRIS 消除了冗余代码比对,并利用哈希函数加速搜索。当我们将 CENTRIS 应用于 10,241 个广泛使用的 GitHub 项目(包含 229,326 个版本及 800 亿行代码)时,观察到修改版 OSS 复用是软件开发中的常态,其发生频率比精确复用高出 20 倍。尽管如此,CENTRIS 以平均每个应用不到一分钟的时间,以 91% 准确率和 94% 召回率识别复用的 OSS 组件,而近期一种未考虑修改与嵌套 OSS 复用的克隆检测技术的准确率仅勉强达到 10%、召回率 40%。

关键词

引用

@article{arxiv.2102.06182,
  title  = {CENTRIS: A Precise and Scalable Approach for Identifying Modified Open-Source Software Reuse},
  author = {Seunghoon Woo and Sunghan Park and Seulbae Kim and Heejo Lee and Hakjoo Oh},
  journal= {arXiv preprint arXiv:2102.06182},
  year   = {2021}
}

备注

To appear in the 43rd International Conference on Software Engineering (ICSE 2021)