Extracting Insights from the Topology of the JavaScript Package Ecosystem
软件生态系统对计算和社会产生了巨大的影响,吸引了企业、研究人员和政策制定者的关注。像JavaScript节点包管理器(npm)这样的大规模生态系统就是软件项目如何容易使用包的证据。由于软件生态系统的高维性和复杂性,其分析方法受到了限制。在本文中,我们利用拓扑方法可视化软件生态系统的高维数据集。拓扑数据分析(TDA)是一种新兴的分析高维数据集的技术,它使我们能够研究数据的形状。我们生成了npm软件生态系统拓扑,通过研究其位置来揭示现有库的见解和提取模式。我们的真实世界的例子揭示了许多有趣的见解和模式,描述了软件生态系统的形状。
2017-10-02 cs.SE
A first look at an emerging model of community organizations for the long-term maintenance of ecosystems' packages
许多现代程序设计语言的最大优势之一是它们丰富的开源包生态系统。事实上,现代特定语言的包管理器使得共享可重用代码和依赖其他人(通常是完全陌生的人)编写的组件变得更加容易。然而,虽然它们使程序员更有效率,但这种做法在生态系统层面上产生了新的健康风险:当一个频繁使用的包停止维护时,所有依赖它的项目都会受到威胁。在本文中,我提出了三个问题。RQ1:这种威胁有多普遍?特别是,有多少依赖包由一个人维护(他可以随时退出)?我表明,这是一个显着比例的这种包的情况。RQ2:依赖于软件包的项目作者如何应对其维护者变得不可用?我列出了几个选项,我特别关注分叉的概念。RQ3:生态系统的程序员如何集体应对此类事件,或为它们做好准备?我给第一次看一个新兴的社区组织的长期维护包的模式,出现在几个生态系统。
2020-04-07 cs.SE
An Empirical Comparison of Dependency Network Evolution in Seven Software Packaging Ecosystems
几乎每一种流行的程序设计语言都带有一个或多个包管理器。由这样的包管理器分发的软件包形成大的软件生态系统。这些打包生态系统包含大量定期更新的包版本,并且与其他包版本有许多依赖关系。虽然打包生态系统对各自的开发人员社区非常有用,但它们面临着与规模、复杂性和进化速度相关的挑战。典型的问题是向后不兼容的软件包更新,以及依赖于已经过时或不活动的软件包的风险。本文使用libraries.io数据集对七个不同规模和年龄的包装生态系统的包依赖网络演变之间的相似性和差异性进行了定量实证分析:Cargo for Rust,CPAN for Perl,CRAN for R,npm for JavaScript,NuGet for.NET平台,Packagist for PHP和RubyGems for Ruby。我们提出了新的指标来捕捉这些依赖网络的增长,易变性,可恢复性和脆弱性,并使用这些指标来分析和比较它们的演变。我们观察到,依赖网络往往会随着时间的推移而增长,无论是在大小和软件包更新的数量,而少数软件包负责大部分的软件包更新。大多数软件包依赖于其他软件包,但只有一小部分软件包占大多数反向依赖。我们观察到一个高比例的脆弱的软件包,由于高和越来越多的传递依赖。这些发现有助于评估软件包依赖网络的质量,并通过依赖管理工具和强加的政策来改善它。
2017-10-13 cs.SE
Where to Go Now? Finding Alternatives for Declining Packages in the npm Ecosystem
本文提出一种基于 npm 生态中真实依赖迁移模式的方法,自动识别衰退软件包并推荐替代方案,实验显示替代建议准确率达 96%,且获 67% 专业 JavaScript 开发者认可。
2023-08-16 cs.SE
Detecting and Characterizing Low and No Functionality Packages in the NPM Ecosystem
本研究针对npm生态系统中低功能/无功能包的安全风险问题,完善相关定义并提出纯数据包概念,开发基于规则的静态分析检测工具,在2025年npm生态中验证其94%的准确率,为降低依赖管理中的技术债务与安全风险提供支持。
2025-10-06 cs.SE
What are the characteristics of highly-selected packages? A case study on the npm ecosystem
随着软件生态系统的普及,开源组件(称为包)的数量迅速增长。从大量的软件包中识别出高质量和维护良好的软件包是一个基本而重要的问题,因为它对各种应用程序都有好处,例如软件包推荐和软件包搜索。然而,除了在线讨论或非正式文献和访谈之外,没有任何系统和全面的工作侧重于解决这一问题。为了填补这一空白,在本文中,我们进行了混合定性和定量分析,以了解开发人员如何识别和选择相关的开源软件包。特别是,我们首先调查了来自npm生态系统的118名JavaScript开发人员,以定性地了解使包在npm生态系统中被高度选择的因素。调查结果显示,JavaScript开发人员认为,高度选择的软件包有良好的文档记录,在GitHub上获得大量的星星,有大量的下载,并且没有漏洞。然后,我们进行了一个实验,以定量验证开发人员对高选择性软件包的因素的看法。在这项分析中,我们收集和挖掘了2,527个软件包的历史数据,这些软件包分为高选择和非高选择软件包。对于数据集中的每个包,我们收集了定量数据,以呈现开发人员调查中研究的因素。接下来,我们使用回归分析来定量研究哪些研究因素是最重要的。我们的回归分析补充了我们关于精选套餐的调查结果。特别是,结果表明,高选择的软件包往往与下载次数、星级和软件包的自述文件大小相关。
2022-04-09 cs.SE
Package Dashboard: A Cross-Ecosystem Framework for Dual-Perspective Analysis of Software Packages
School of Computer Science, Peking University(北京大学计算机学院)
Package Dashboard是一个跨生态系统的软件包分析框架,通过整合元数据、漏洞信息和社区健康指标,实现全面的双视角风险评估,提升开源生态系统的透明性和可信度。
2026-09-24 cs.SE
Contrasting Third-Party Package Management User Experience
第三方包依赖关系的管理对于大多数技术堆栈至关重要,包管理器充当代理,以确保正确安装,配置或从应用程序中删除已验证的包。技术堆栈的多样性导致了数十个具有自己管理功能的软件包生态系统。虽然最近的研究表明开发人员很难迁移他们的依赖项,但通常的假设是包生态系统的使用没有任何问题。在这项研究中,我们探索了13个软件包生态系统,以了解它们的功能是否与用户的体验相关。通过研究开发人员在问答网站Stack Overflow上提出的问题的经验,我们发现开发人员的问题分为三个主题(即,包管理、输入-输出和包使用)。我们的初步分析表明,特定功能与用户体验相关。我们的工作奠定了未来的方向,以调查设计理想的包装生态系统所涉及的权衡。
2021-08-13 cs.SE
An Empirical Study on Package-Level Deprecation in Python Ecosystem
本研究通过混合方法实证调查Python生态系统中包级弃用的现状,发现开发者与用户之间存在显著差距,并提出改进弃用实践以促进包无缝交接的建议。
2024-08-19 cs.SE
TrustSECO: An Interview Survey into Software Trust
软件生态系统是世界上信任度最高的部分。在协作中,软件工程师信任生态系统中的主要枢纽,例如包管理器、存储库服务和程序设计语言生态系统。然而,这种信任经常被漏洞、勒索软件和恶意行为者的滥用所破坏。但什么是信任?在本文中,我们通过对12位软件工程师的深入访谈,探讨了他们在日常工作中如何看待信任。从采访中,我们总结出三点。首先,软件工程师在选择软件包时区分采用因素和信任因素。其次,虽然在文献中大多数技术因素被认为是主要的信任因素,软件工程师在这项研究中得出的结论是,组织因素更重要。最后,我们发现,不同类型的软件工程师需要不同的信任的看法,这是不可能的,以创建一个统一的信任的看法。保留字:软件生态系统信任,经验软件工程,TrustSECO,外部软件采用,横断面探索性访谈分析,信任感知。
2021-01-15 cs.SE
Uncovering and Mitigating the Impact of Frozen Package Versions for Fixed-Release Linux
该研究针对固定发布版Linux因镜像源演化产生的生态差距问题,分析Debian生态系统的兼容性与安全问题,提出基于原生镜像的独立依赖环境包管理方法并开发ccenv原型以弥补现有工具不足。
2024-09-12 cs.SE
How Deep Does Your Dependency Tree Go? An Empirical Study of Dependency Amplification Across 10 Package Ecosystems
Auburn University(奥本大学)
本研究通过分析10个软件生态系统的依赖放大现象,发现Maven的平均放大率显著高于其他生态系统,揭示了依赖管理对供应链安全的影响。
2025-12-12 cs.SE
Cross-Ecosystem Packages As Multilingual: Prevalence, Architecture, and Health
本研究对六个主要生态系统的六百万余包进行实证分析,发现跨生态系统包虽占少数但增长重要,识别出五种架构模式,其中代码生成和语言绑定与更高的社区活跃度相关,并为采用者、维护者和研究者提供启示。
2026-09-15 cs.DL cs.SE
Modeling Dependency-Propagated Ecosystem Impact of Changes in Maintenance Activities: Evaluating Support Strategies in the PyPI Network
fortiss GmbH(fortiss有限公司);Technical University of Munich(慕尼黑工业大学)
本文提出一种考虑依赖关系的生态系统影响模型,通过PyPI生态系统分析维护活动变化对整体状态的影响,并基于此优先支持包,对比现有支持机制和PageRank基准。
2026-08-18 cs.SE
PVAC: Package Version Activity Categorizer, Leveraging Semantic Versioning in a Heterogeneous System
本研究提出系统方法和原型工具 PVAC,通过解析语义化版本控制细节并利用三个组件对异构包管理器生态系统中的版本活动进行分类与定量评分,在 Debian 和 Ubuntu 数据集上验证了其准确性与有效性。
2025-05-31 cs.SE
Towards Using Package Centrality Trend to Identify Packages in Decline
由于其日益增加的复杂性,今天的软件系统经常通过利用库和包形式的可重用代码来构建。软件生态系统(例如,npm)是这种代码重用的主要推动者,为开发人员提供了一个共享自己代码和使用他人代码的平台。这些生态系统发展迅速:开发人员每天都添加新的软件包来解决新的问题或提供替代的解决方案,导致过时的软件包对社区的重要性下降。开发人员应该避免依赖于下降的包,因为随着时间的推移,这些包的重用率越来越低,维护频率也越来越低。然而,当前流行度度量(例如,Stars和Downloads)不适合向开发人员提供这些信息,因为它们的语义不能恰当地捕捉社区兴趣的变化。在本文中,我们提出了一种可扩展的方法,使用包在生态系统中的中心地位来识别下降的包。我们使用npm生态系统评估了我们的方法,并表明随着时间的推移,中心性的趋势可以正确区分ROC-AUC为0.9的软件包。该方法可以捕获87%的软件包下降,平均18个月前的趋势显示在目前使用的软件包流行度指标。我们在一个工具中实现了这种方法,该工具可用于增强npm指标,并帮助开发人员在重用npm中的包时避免包下降。
2021-10-19 cs.SE
A grounded theory of Community Package Maintenance Organizations-Registered Report
(a)背景:在许多程序设计语言生态系统中,开发人员越来越依赖于通过包管理器提供的外部开源依赖项。关键的生态系统包如果得不到维护,就会给依赖它们的项目和整个生态系统带来健康风险。因此,社区可以采取主动行动,通过采用需要维护的软件包来缓解问题。b)目的:我们研究的目标是探索这样的社区倡议,我们将从现在起指定为社区包维护组织(CPMO),并建立一个理论,它们如何以及为什么出现,它们如何运作以及它们对周围生态系统的影响。c)方法:为了实现这一目标,我们计划使用一种称为扎根理论的定性方法。我们已经开始采用这种方法,依靠来自几个CPMO的“现存”文件。我们提出了我们的初步结果和研究问题已经出现。我们计划通过收集适当的数据(理论抽样)来回答这些问题,特别是通过联系CPMO参与者并通过电子邮件,问卷调查或半结构化访谈来询问他们。d)影响:我们的理论应该为愿意在自己的生态系统中启动CPMO的开发人员提供信息,并帮助当前的CPMO参与者更好地了解实践的状态以及他们可以做得更好的地方。
2021-08-17 cs.SE
Analysis of Library Dependency Networks of Package Managers Used in iOS Development
本文首次分析了Swift生态系统中CocoaPods、Carthage和Swift PM的库依赖网络演化,发现Swift PM日益普及导致其他包管理器增长放缓,且总依赖数量呈增长趋势但平均数量相对较低。
2023-05-18 cs.SE
SoK: Towards Reproducibility for Software Packages in Scripting Language Ecosystems
本文系统梳理了脚本语言生态系统中软件可重现性面临的挑战,对比了编译型语言生态系统,指出现有研究稀少且聚焦单一,并明确了改进该领域可重现性的后续步骤。
2025-03-27 cs.CR cs.SE
An Empirical Study of Malicious Code In PyPI Ecosystem
本文通过构建包含 4,669 个恶意包的数据集,实证分析了 PyPI 生态中恶意代码的分类、行为特征与生命周期,揭示了其传播持久性并提出安全缓解建议。
2023-09-20 cs.SE
Understanding and Remediating Open-Source License Incompatibilities in the PyPI Ecosystem
本文对 PyPI 生态系统的许可证不兼容问题进行了大规模实证研究,揭示了其普遍性及传递依赖带来的修复挑战,并提出了基于 SMT 求解器的 SILENCE 方法,以最小成本自动推荐修复方案,已在真实软件包中验证有效。
2023-08-11 cs.SE
Bridging the Language Gap: An Empirical Study of Bindings for Open Source Machine Learning Libraries Across Software Package Ecosystems
University of Alberta(阿尔伯塔大学)
本文通过BindFind方法收集并实证研究跨13个软件包生态系统的2,436个ML库绑定,揭示其多由社区维护、版本覆盖有限且技术滞后严重,为开发者集成与后续研究提供依据。
2024-08-19 cs.LG cs.SE
A Large-scale Fine-grained Analysis of Packages in Open-Source Software Ecosystems
本研究针对开源软件生态中的包管理器,通过大规模分析5万余合法、千余恶意软件包的细粒度信息,揭示了两类包的特征差异,验证了细粒度信息对恶意包的检测价值。
2024-04-17 cs.CR cs.SE
Towards Understanding Third-party Library Dependency in C/C++ Ecosystem
第三方库(TPL)经常在软件中重用,以降低开发成本和上市时间。但是,外部库依赖性可能会在主机应用程序中引入漏洞。图书馆的依赖性问题已经引起了相当大的关注。许多包管理器,如Maven,Pip和NPM,被提议用于管理TPL。此外,大量的努力已经投入到研究语言生态系统中的依赖关系,如Java,Python和JavaScript(C/C++除外)。由于缺乏统一的C/C++包管理器,现有的研究对C/C++生态系统中的TPL依赖了解甚少,特别是在大规模的情况下。为了深入理解C/C++生态系统中的TPL依赖,本文收集了现有的TPL数据库、包管理工具和依赖检测工具,总结了C/C++项目的依赖模式,构建了一个全面而精确的C/C++依赖检测器。使用我们的检测器,我们从GitHub上包含24 K C/C++存储库的大型数据库中提取依赖关系。基于提取的依赖关系,我们提供了实证研究的结果和发现,其目的是了解第三方物流的依赖关系的特点。我们进一步讨论了C/C++依赖管理的意义以及未来软件工程研究人员和开发人员在库开发、软件组合分析和C/C++包管理等领域的研究方向。
2022-09-20 cs.SE
npm-follower: A Complete Dataset Tracking the NPM Ecosystem
针对现有NPM数据集仅含元数据、无法留存已删除包版本的局限,研究提出npm-follower数据集及爬取架构,实时归档全量包的元数据与代码,覆盖超3500万版本,可支撑安全、程序分析等领域研究。
2023-08-24 cs.SE
An Empirical Analysis of the R Package Ecosystem
在这项研究中,我们对R包生态系统进行了全面的纵向经验总结,不仅包括CRAN,还包括Bioconductor和GitHub。我们分析了20年来超过25,000个软件包、150,000个版本和1500万个文件,为软件包、版本、作者、许可证和其他重要元数据的通用指标提供了全面的统计和趋势。我们发现,生态系统的历史增长在所有指标下都是强劲的,活跃软件包的复合年增长率为29%,新版本为28%,活跃维护人员为26%。与许多类似的社会系统一样,我们发现了一些具有实际意义的高度右偏分布,包括每个软件包的发布分布,每个作者或维护者的软件包和发布,软件包和维护者的依赖程度,以及每个软件包和发布的大小。例如,前五个软件包被导入了近25%的软件包,前十个维护者支持的软件包被导入了超过一半的软件包。我们还强调了生态系统的动态性质,记录了R的增长的急剧加速和显着减速。从许可的角度来看,我们发现绝大多数软件包都是在copyleft许可下发布的,或者完全省略了许可信息。本文中的数据、方法和计算为与R和CRAN相关的公共讨论和行业决策提供了一个锚点,为未来更广泛地研究R软件生态系统和“数据科学”奠定了基础。
2021-02-19 cs.CY cs.MS cs.SE
License Incompatibilities in Software Ecosystems
当代软件的特点是重用组件,这些组件被声明为依赖关系,并从包管理器/注册中心接收,如NPM,PyPI,RubyGems,Maven Central等。在本文中,我们研究了来自七个软件包注册表(Cargo,Maven,NPM,NuGet,Packagist,PyPI,RubyGems)的所有组件之间的许可证使用和许可证不兼容性,并对GNU Affero通用公共许可证(AGPL)引起的许可证不兼容性进行了更深入的调查。我们发现,不同生态系统之间使用的许可证的相对数量不同(MIT和Apache等许可证最常见),直接许可证不兼容的数量从Cargo的2.3%到PyPI的20.8%不等,只有少量的直接许可证不兼容是由AGPL许可证引起的(最大值)。PyPI中为0.04%),但高达6.62%的Maven包违反了间接依赖的AGPL许可证。我们的研究结果表明,重用PyPI或Maven软件包的应用程序面临许可证不兼容的可能性并不太大,这可能意味着应用程序必须在分发时开源(PyPI),或者一旦它们作为Web应用程序公开(Maven)。
2022-03-03 cs.SE
Reproducibility is Not Enough: Artifact Verifiability in Decentralized-Build Package Ecosystems
Case Western Reserve University(凯斯西储大学);Purdue University(普渡大学)
本文针对四个去中心化构建包生态系统,提出基于注册表元数据的独立验证器模型,发现可验证性受元数据缺失等因素限制,提出需补充元数据缺口以实现包注册表规模的实用制品验证。
2026-08-20 cs.CR cs.SE
A Machine Learning-Based Approach For Detecting Malicious PyPI Packages
本文提出结合机器学习与静态分析的 PyPI 恶意软件包检测方法,通过检查元数据、代码、文件和文本特征,利用 stacking 集成分类器实现 0.94 的 F1-measure。
2024-12-06 cs.SE
An Empirical Comparison of Developer Retention in the RubyGems and npm Software Ecosystems
软件生态系统可以被看作是由技术组件(软件包)和维护技术组件的社会组件(开发人员社区)组成的社会技术网络。随着时间的推移,生态系统通过社会技术变化而演变,这些变化可能会极大地影响生态系统的可持续性。像开发人员流动这样的社会变化可能会导致技术退化。这激发了识别导致开发人员放弃的那些因素的需要,以便自动化识别具有高放弃风险的开发人员的过程。本文比较了两个软件包生态系统RubyGems和npm的这些因素。我们分析了他们在GitHub上托管的软件包的演变,考虑了提交方面的开发活动,以及与其他开发人员在提交、问题或拉取请求相关的评论方面的社交互动。我们分析了RubyGems和npm分别超过3万和6万开发人员的社会技术活动。我们使用生存分析来确定哪些因素与较低的生存概率相一致。我们的研究结果表明,开发人员放弃生态系统的可能性更高:不与其他开发人员进行讨论;没有很强的社交和技术活动强度;沟通或提交频率较低;并且长时间不参与技术和社交活动。这些观察结果可用于自动识别放弃生态系统的可能性很高的开发人员,从而降低与知识损失相关的风险。
2017-08-08 cs.SE
On the Effect of Transitivity and Granularity on Vulnerability Propagation in the Maven Ecosystem
重用软件库是现代软件工程的支柱。到2022年,平均每个Java应用程序依赖于40个第三方库。依赖这些库会使项目暴露于潜在的漏洞,并可能使应用程序及其用户处于危险之中。不幸的是,对软件生态系统的研究表明,受此类漏洞影响的项目数量正在增加。以前的调查通常会根据依赖关系级别来推断依赖关系,但我们认为这会大大增加受影响项目的实际数量。在这项工作中,我们研究了传递性和粒度对Maven生态系统中漏洞传播的影响。在我们的研究方法论中,我们收集了3 M最新Maven软件包的大型数据集。我们获得了这个数据集的完整的可传递依赖集,构建了整个程序调用图,并进行了可达性分析。这种方法允许我们识别实际上受到使用易受攻击的依赖关系影响的Maven包。我们的实证结果表明:(1)当且仅当所有的传递依赖都被考虑时,我们的数据集中大约1/3的包被识别为脆弱的。(2)只有不到1%的软件包在其依赖项中具有到易受攻击代码的可达调用路径,这远远低于基于依赖项的简单分析。(3)限制所解析的依赖关系树的深度可能是减少昂贵的细粒度(脆弱性)分析的计算时间的有用技术。我们讨论了我们的工作的影响,并为研究人员和从业人员提供可操作的见解。
2023-01-19 cs.SE
An Empirical Study of Yanked Releases in the Rust Package Registry
Cargo是Rust的软件打包管理器,它提供了一个yank机制来支持版本级别的弃用,这可以防止软件包依赖于yanked release。大多数先前的研究集中在代码级(即,弃用的API)和包级弃用(即,已弃用的包)。然而,很少有研究关注发布级的弃用。在这项研究中,我们调查了yank机制的使用频率和使用方式,其使用背后的原理,以及在Cargo生态系统中采用yanked release。我们的研究表明,Cargo中9.6%的包裹至少有一次被猛拉释放,并且从2014年到2020年,猛拉释放的比例不断增加。软件包所有者出于其他原因而不是撤回有缺陷的版本,例如修复不遵循语义版本控制的版本或指示软件包被删除或替换。此外,我们发现46%的软件包直接采用了至少一个yanked版本,并且yanked版本通过依赖网络传播,这导致生态系统中1.4%的版本具有未解决的依赖关系。
2022-01-27 cs.SE
Contributing Back to the Ecosystem: A User Survey of NPM Developers
本文通过对 49 名 NPM 开发者的调查发现,开发者更倾向于维护自己的包而非回馈生态系统,并据此为库生态系统的可持续性研究及工具支持提供了新方向。
2024-07-01 cs.SE
Solving Package Management via Hypergraph Dependency Resolution
针对多语言项目跨生态系统依赖难精准表达、外部软硬件依赖隐式无版本的问题,提出基于超图的形式化系统HyperRes,支持数十种包管理器转换与跨生态依赖解析,无需更换包管理器即可适配部署环境。
2025-06-12 cs.PL cs.SE
Demystifying Compiler Unstable Feature Usage and Impacts in the Rust Ecosystem
本文系统分析了 Rust 生态系统中不稳定特性(RUF)的使用与影响,提出精确提取和依赖解析技术,并开发了可恢复高达 90% 编译失败的工具。
2023-10-26 cs.SE
CHRONO-RESOLUTION: A Dependency Resolution Dataset at Release Points for npm, PyPI, and crates.io Packages
North Carolina State University(北卡罗来纳州立大学)
本文旨在借助丰富数据集助从业者和研究者分析软件包发布点的生态系统依赖图,提出构建软件生态系统包发布点依赖项解析的方法,融入漏洞数据构建CHRONO-RESOLUTION数据集并发布,以推动相关研究。
2026-07-20 cs.CR cs.SE
Understanding and Detecting Peer Dependency Resolving Loop in npm Ecosystem
本文首次系统研究 npm 生态中的 PeerSpin 无限循环问题,提出基于 Node-Replacement-Conflict 的检测技术并开发 PeerChecker 工具,在 NPM 全生态中发现 5,662 个包受影响,并开源全部实现与数据。
2025-05-20 cs.SE
A Large Scale Analysis of Semantic Versioning in NPM
本文构建大规模数据集和时间旅行依赖解析器分析NPM中语义版本控制的使用,发现正确使用时90.09%的关键更新能快速流向下游,但不完美使用会导致更新延迟。
2023-04-01 cs.SE
Cross-Ecosystem Vulnerability Analysis for Python Applications
University of Athens(雅典大学);National Infrastructures for Research and Technology(国家研究与技术基础设施);Athens University of Economics and Business(雅典经济与商业大学);ETH Zurich(苏黎世联邦理工学院);Technical University of Crete(克里特理工大学)
提出一种跨生态系统漏洞分析方法,通过内容哈希和动态分析解析供应商库,构建跨依赖边界的调用图进行可达性分析,有效减少误报和漏报。
2026-09-15 cs.CR cs.SE
A Closer Look at the Security Risks in the Rust Ecosystem
该研究针对Rust生态安全风险研究不足的问题,构建涵盖433个漏洞、300个漏洞仓库及218个修复提交的7年跨度数据集,系统分析漏洞特征、漏洞包属性及漏洞修复规律。
2023-08-29 cs.CR cs.SE
SourceBroken: A large-scale analysis on the (un)reliability of SourceRank in the PyPI ecosystem
EURECOM(欧洲通信学院);SAP;Endor Labs
SourceBroken研究发现SourceRank在PyPI生态系统中存在可靠性问题,其未能及时反映软件包删除,导致恶意与良性软件包评分重叠,URL混淆攻击显著增加。
2025-12-30 cs.CR cs.SE
DySec: A Machine Learning-based Dynamic Analysis for Detecting Malicious Packages in PyPI Ecosystem
针对 PyPI 供应链缺乏实时行为监控的问题,提出基于机器学习的动态分析框架 DySec,利用 eBPF 探针捕获安装时行为特征,高效检测恶意软件包并显著降低假阴性率。
2025-03-01 cs.CR cs.SE
University Rents Enabling Corporate Innovation: Mapping Academic Researcher Coding and Discursive Labour in the R Language Ecosystem
University of Canberra(堪培拉大学);Télécom Paris, Institut Polytechnique de Paris(巴黎电信学院,巴黎理工学院)
本文研究了学术研究者在R语言生态系统中的未被认可劳动,揭示其对企业和开源软件意识形态的影响。
2025-12-22 cs.SE
AROMA+: A Study of Factors Affecting Reproducible Builds in the Maven Ecosystem
BGSU(鲍尔格林州立大学)
本研究针对Maven生态系统可复现构建研究不足的问题,开发工具AROMA+自动获取相关信息,准确率达99.8%,实现32%软件包自动可复现,贡献部分软件包至Reproducible Central并公开数据集与工具。
2026-08-28 cs.SE
Tracing Vulnerabilities in Maven: A Study of CVE lifecycles and Dependency Networks
本文结合 Maven 依赖图分析 3,362 个 CVE 生命周期、GitHub 指标与维护者响应时间,揭示“先发布后修补”趋势及影响风险包的关键因素。
2025-02-16 cs.SE
The Import Tax: A Longitudinal Measurement of Startup Cost in the Python Ecosystem
该研究测量Python生态系统的导入启动成本,发现其呈偏态分布、增长集中于重尾,全局惰性导入虽降低成本但会导致部分包故障,为Python导入优化提供系统依据。
2026-09-03 cs.SE
Cryptographic Registry Provenance: Structural Defense Against Dependency Confusion in AI Package Ecosystems
Mashin, Inc.(Mashin公司)
提出加密注册表溯源系统,通过注册表身份签名、双重签名模型和权威命名空间绑定三层结构防御依赖混淆攻击。
2026-05-26 cs.AI cs.CR cs.SE
Interface-Variant Dynamics in Software Ecosystems: Resolver-Induced Selection and Adoption in Package Graphs
Bahçeşehir University(巴切希尔大学)
研究接口变体在分布式包图中的传播机制,通过挖掘历史、执行解析器探测并估计选择系数,发现解析器证据可预测采纳方向但无法闭环。
2026-07-01 cs.DC cs.SE
Understanding npm Developers' Practices, Challenges, and Recommendations for Secure Package Development
University of Hawai‘i at Mānoa(夏威夷大学马诺阿分校)
本研究通过调查75名npm开发者,探讨其在安全包开发中的实践、挑战及改进建议,揭示了安全工具不足、依赖项弃用等问题。
2026-01-28 cs.SE
ModuleGuard:Understanding and Detecting Module Conflicts in Python Ecosystem
本文系统研究Python生态系统中的模块冲突问题,提出基于语义和安装模拟的技术InstSimulator实现高效模块提取,并开发检测工具ModuleGuard,对PyPI和GitHub大规模分析揭示了冲突影响并提供了检测工具与指南。
2024-01-04 cs.SE
Package Managers à la Carte: A Formal Model of Dependency Resolution
University of Cambridge(剑桥大学);Jane Street(简街);Tarides
本文提出Package Calculus,通过形式化缩减展示其能统一包管理器的核心语义,为跨生态系统工具提供理论基础。
2026-07-20 cs.PL cs.SE
A Large-Scale Security-Oriented Static Analysis of Python Packages in PyPI
不同的安全问题是归档到软件生态系统并通过软件生态系统交付的开源软件包的常见问题。这些通常表现为可能导致具体软件漏洞的软件弱点。本文使用静态分析来研究Python包中的各种安全问题。该数据集基于存储在Python包索引(PyPI)中的所有包的快照。总共涵盖了超过19.7万个软件包和超过74.9万个安全问题。即使在静态分析施加的约束下,(a)结果表明安全问题普遍存在;大约46%的Python包至少存在一个问题。就问题类型而言,(b)异常处理和不同的代码注入是最常见的问题。子流程模块在这方面尤为突出。反映了软件包的一般小尺寸,(c)软件尺寸度量不能很好地预测通过静态分析揭示的问题的数量。这些结果和相应的讨论,有助于更好地理解软件生态系统中的安全问题的大规模实证研究领域。
2021-12-26 cs.CR cs.SE
An Empirical Study of Vulnerable Package Dependencies in LLM Repositories
本文实证分析 52 个开源 LLM 的第三方依赖漏洞及维护活动,并与 Python 生态系统比较,揭示漏洞披露滞后和配置文件普遍含脆弱依赖的问题。
2025-08-29 cs.CR cs.SE
On the Feasibility of Cross-Language Detection of Malicious Packages in npm and PyPI
本研究提出一种基于语言无关特征的跨语言恶意包检测方法,通过训练模型捕捉 npm 和 PyPI 中恶意包的共性,成功检测出58个未知恶意包。
2023-10-14 cs.CR cs.SE