Python包管理的安全新措施
关键要点
Python包索引PyPI已启用隔离项目,旨在识别和防止恶意软件包的传播。该项目由Mike Fiedler领导,允许管理员标记潜在有害的项目以保护用户。Python的流行使其成为恶意行为者的目标,恶意代码通过看似合法的包传播。与其他开源项目如NPM相比,PyPI资源有限,面临更多安全挑战。除了隔离措施,也可通过应用扫描和开发者教育增强安全性。Python包索引PyPI的管理团队已经开始采取行动,以提升其上列出的数十万种软件包的安全性。此举旨在识别和阻止携带恶意软件的包在开源社区中传播,保护Python开发者和用户的安全。这项名为Project Quarantine的努力始于去年,为了防止恶意包的进一步传播。
项目“隔离”的介绍
该项目的相关信息在Mike Fiedler的博文中进行了描述。他是负责Python安全的唯一管理员,项目使PyPI的管理员和选定开发者能够将某些项目标记为潜在有害,从而防止它们被用户轻易安装,避免造成更大损害。

PyPI为何吸引恶意行为者
Python的流行反而使其成为了目标。PyPI目前列出了超过625000个软件包,并且每日都有新包加入,这为恶意软件作者提供了可趁之机,将他们的代码植入这些包中。随着开发者无意中传播了这些恶意代码,危害随之而来。
由于包的数量庞大,该索引一直受到恶意行为者的威胁。恶意攻击包括利用与正当包类似名称的包进行“拼写蹲点”,或者制造进一步的依赖混淆。正如Tom Callaway在2023年的博文中所述:“Python是模块化的,大多数Python应用程序依赖PyPI提供所需的核心功能依赖,而非每次都重新发明轮子。PyPI也是Python应用程序和库的主要分发点。”
“新程序员被Python吸引,因为它易于学习,这导致许多开发者并不总是考虑安全性。”安全专家Ed Woodruff对CSO表示。“在隔离措施实施之前,安全性并没有受到重视,现在我很高兴看到这个项目的领导作用。”
其他开源项目如何应对恶意行为者
与PyPI相比,其他开源项目通常拥有的新包数量较少,或者有商业机构提供资金和资源,作为“监督者”。例如,Java软件的包管理器NPM由GitHub维护,“GitHub在恶意软件筛查方面做得很出色,他们拥有世界上最优秀的安全研究人员。”Forrester Research的分析师Janet Worthington告诉CSO。
根据Jfrog安全研究副总裁Shachar Menashe的说法,NPM拥有更多的资源来预防受损包的传播。“PyPI只有四名全职管理员,Fiedler是唯一的安全专家。”即使NPM拥有密集的资源,他们每天仍会看到大约十多个恶意Java包。
加强开源项目安全的其他方法
除隔离机制之外,还有其他补充手段可以更有效地保护广泛的开源代码库。例如,多家供应商提供静态和动态应用程序扫描工具,并且有其他工具能够收集软件物料清单,增加对依赖项目的可视化。在2021年Apache Log4j漏洞暴发时,该清单的重要性被大大提升,并且这是最近关于促进更好软件安全的 [拜登行政命令](https//wwwcsoonlinecom/article/3802476/bidenwhitehousetogoalloutinfinalsweeping