Reusing software libraries is a pillar of modern software engineering. In 2022, the average Java application depends on 40 third-party libraries. Relying on such libraries exposes a project to potential vulnerabilities and may put an application and its users at risk. Unfortunately, research on software ecosystems has shown that the number of projects that are affected by such vulnerabilities is rising. Previous investigations usually reason about dependencies on the dependency level, but we believe that this highly inflates the actual number of affected projects. In this work, we study the effect of transitivity and granularity on vulnerability propagation in the Maven ecosystem. In our research methodology, we gather a large dataset of 3M recent Maven packages. We obtain the full transitive set of dependencies for this dataset, construct whole-program call graphs, and perform reachability analysis. This approach allows us to identify Maven packages that are actually affected by using vulnerable dependencies. Our empirical results show that: (1) about 1/3 of packages in our dataset are identified as vulnerable if and only if all the transitive dependencies are considered. (2) less than 1% of packages have a reachable call path to vulnerable code in their dependencies, which is far lower than that of a naive dependency-based analysis. (3) limiting the depth of the resolved dependency tree might be a useful technique to reduce computation time for expensive fine-grained (vulnerability) analysis. We discuss the implications of our work and provide actionable insights for researchers and practitioners.
翻译:使用软件图书馆是现代软件工程的支柱。 在2022年, 平均 Java 应用程序是现代软件工程的支柱。 在2022年, 平均 Java 应用程序取决于40个第三方图书馆。 依靠这些图书馆, 使一个项目暴露出潜在的弱点, 并可能使应用程序和用户面临风险。 不幸的是, 对软件生态系统的研究显示, 受这种弱点影响的项目数量正在增加。 以前的调查通常以依赖程度为依附性, 但我们认为, 这种高度膨胀了受影响项目的实际数量。 在这项工作中, 我们研究了中转性和颗粒度对马文生态系统脆弱性传播的影响。 在我们的研究方法中, 我们收集了3M最近3M Maven 软件包的大型数据集。 我们获得了全套软件的完全过渡性依赖性数据集, 构建了全方位的呼叫图, 并进行了可达性分析。 这种方法使我们能够确定马文的软件包实际上受脆弱依赖性影响的程度, 但是我们的经验显示:(1) 我们的数据集中大约三分之一的软件是脆弱的, 只有当所有过渡性依赖性研究人员都得到考虑时才会被确认为脆弱。 (2), 我们的软件包比1 %的罚款要小于1 mindbregraphy real revial real revitial revititution im really really really really revidududududude 。