中文

软件生态系统中的技术杠杆:开发机遇与安全风险

软件工程 2021-03-08 v1

摘要

在金融中,杠杆是指从他人处借入的资产与自有资产之比。软件中存在类似情形:通过使用自由开源软件(FOSS)库,开发者借助他人的代码以小得多的自有代码库成倍扩展所提供的功能。如同在金融中一样,在软件中,当借用的收益超过集成成本时,杠杆会放大收益,但也可能放大损失,尤其是在存在安全漏洞的情况下。我们旨在理解 FOSS 生态系统中的技术杠杆水平,以及它是否可能成为安全漏洞的潜在来源。此外,我们引入两个度量指标——变更距离(change distance)与变更方向(change direction),以刻画对第三方库依赖的程度及其演化。将所提度量应用于基于 Maven 的 FOSS Java 库的 8494 个不同库版本表明,与大型库相比,中小型库(小于 100KLoC)对 FOSS 依赖的杠杆 disproportionately 更高。我们表明杠杆是值得的:被杠杆化的库在其自身代码之外提供四倍多的代码,仅在库发布时间间隔上增加 4% 的延迟。然而,具有此类杠杆的库(即我们样本中 75% 的库)与杠杆较低的库相比,存在漏洞的几率也高出 1.6 倍。我们提供了一个在线演示,用于计算以下 URL 下可用的真实世界软件库的所提度量:https://techleverage.eu/。

关键词

引用

@article{arxiv.2103.03317,
  title  = {Technical Leverage in a Software Ecosystem: Development Opportunities and Security Risks},
  author = {Fabio Massacci and Ivan Pashchenko},
  journal= {arXiv preprint arXiv:2103.03317},
  year   = {2021}
}

备注

14 pages, 5 figures, to be published in Proceedings of International Conference on Software Engineering (ICSE 2021)