Python 软件包索引(PyPI)推出了一项名为 “项目隔离”(Project Quarantine)的功能,在增强 Python 生态系统安全性方面迈出了重要一步。PyPI 管理员兼安全工程师 Mike Fiedler 在一篇博文中详细介绍了这一举措,该举措引入了一种结构化方法来降低恶意软件包带来的风险。
通过 PyPI 散布恶意软件一直是一个反复出现的挑战,威胁者利用该平台的广泛影响力来锁定目标用户。以前,PyPI 管理员依赖于完全删除被标记的项目,这种做法虽然有效,但往往具有破坏性且不可逆转。菲德勒解释说:“这些移除的影响可能是破坏性的,而且移除几乎是不可逆转的。”
项目隔离 ,是一项旨在弥合安全性和用户可访问性之间差距的功能。它能让管理员将可疑项目置于隔离状态,使其在 PyPI 简单索引中不可见,并阻止其安装。在管理员进一步调查的同时,这一主动措施限制了潜在威胁的暴露。
项目隔离功能为项目引入了一种新的生命周期状态,当项目被标记为具有潜在危害时,就会被标记为 “隔离”。据 Fiedler 称,实施过程遵循一套明确的要求:
- 处于 “隔离 ”状态的项目将从索引中隐藏,无法安装。
- 项目所有者不能修改被隔离的项目。
- 管理员、安全研究人员和项目所有人都能看到被隔离项目的状态。
- 管理员可以根据需要清除、重新隔离或删除项目。
这种方法的一个显著灵感来源于 PEP 592 中描述的 “yank ”功能,但有一个关键区别:yanked 版本仍可安装,而被隔离的项目则完全被阻止。
自 8 月份推出以来,该功能在处理恶意软件报告方面发挥了重要作用。Fiedler 分享说:“隔离功能一直在使用,PyPI 管理员将 ~140 个报告的项目标记为隔离。”在一个值得注意的例子中,一个项目最初因包含混淆代码而被标记,但在 PyPI 管理员的宣传下,项目所有者改正了违规行为,因此该项目被清除。
费德勒在博客中还强调了管理界面的简洁性,它有助于在非工作时间快速做出决策。这一功能与 PyPI 减少恶意项目公开访问时间窗口的目标不谋而合。
项目隔离的未来包括进一步简化流程的自动化计划。Fiedler 概述了一个潜在的系统,该系统可以根据收到的恶意软件报告的数量和可信度自动隔离项目。例如:
- 来自 “观察者”(使用测试版 API 端点的安全研究人员)的两份或更多报告。
- 一份 “观察者 ”报告和一份非 “观察者 ”报告。
这些措施旨在减少管理员的工作量,同时确保对威胁采取及时行动。其他增强功能也即将推出,如实时通知和提高管理界面的可见性。
通过为管理员提供灵活而强大的工具来管理被标记的项目,PyPI 能够更好地保护用户的安全。正如费德勒指出的那样:“缩短恶意项目/重放/文件可供最终用户成为受害者的时间窗口是一项改进,它进一步降低了恶意行为者使用 PyPI 作为其传播方式的动机。”
发表评论
您还未登录,请先登录。
登录