面向克隆即拥有复用分析的源文件集搜索
软件工程
2017-04-28 v1
摘要
克隆即拥有(clone-and-own)方法是软件开发人员复用源代码的一种自然方式。为了评估被克隆组件的已知缺陷和安全漏洞如何影响某个应用,开发人员和安全分析师需要识别该组件的最初版本,并理解克隆组件与原始组件的差异。尽管开发人员可能在版本控制系统和/或目录名称中记录原始版本信息,此类信息往往不可用或不完整。在本研究中,我们提出一种代码搜索方法,其以一组源文件作为输入,从软件生态(即现有软件包版本的集合)中提取所有包含相似文件的组件。我们的方法采用基于 b-bit minwise hashing(b位最小哈希)技术的高效文件相似度计算。我们使用聚合文件相似度对组件进行排序。为评估该工具的有效性,我们分析了 Firefox 和 Android 源代码中的 75 个克隆组件。该工具约两小时即从 Debian GNU/Linux 软件包中的 1000 万文件中报告出原始组件。根据源代码仓库中记录的 ground truth,提取列表前五个组件的召回率为 0.907,而使用 SHA-1 文件哈希的基线召回率为 0.773。
引用
@article{arxiv.1704.08395,
title = {Source File Set Search for Clone-and-Own Reuse Analysis},
author = {Takashi Ishio and Yusuke Sakaguchi and Kaoru Ito and Katsuro Inoue},
journal= {arXiv preprint arXiv:1704.08395},
year = {2017}
}
备注
14th International Conference on Mining Software Repositories