- 上周“ultralytics”项目遭受供应链攻击,通过其 GitHub Actions 工作流和随后的 PyPI API 令牌泄露,8.3.41、8.3.42、8.3.45 和 8.3.46 版本受影响并已从 PyPI 移除,此次攻击未利用 PyPI 的安全漏洞。
该攻击凸显了确保软件库和开源项目构建及发布工作流安全的重要性,William Woodruff 的分析提供了详细信息。
- 从认证和可信发布者的可见性角度:尽管攻击成功,但 PyPI 在审计攻击方面表现良好,通过 Sigstore 透明日志和 PyPI 来源认证,发现第一波恶意包通过现有 GitHub Actions 工作流发布,第二波恶意发布来自未撤销的 API 令牌,利用 GitHub Actions 缓存,若工具利用发布认证记录软件来源,此类攻击将更易被发现和验证。
- PyPI 可在不影响现有用例的情况下帮助开发者实现安全配置:API 令牌可与可信发布者一起使用,GitHub 环境在使用 GitHub 可信发布者时是可选但推荐的;已为上述变化创建跟踪问题。
- PyPI 处理恶意软件方面:用户需自行审查从 PyPI 安装软件的情况,PyPI 工作人员尽力删除恶意软件,Mike Fiedler 正在开发新系统减少恶意软件安装时间;作为 Python 包索引的发布者,可通过审核工作流、锁定依赖项、使用可信发布者、禁止贡献者提交二进制文件等方式加强安全,同时遵循一般账户安全最佳实践,如使用 2FA、密码管理器等,若项目被攻击,需删除 PyPI 上的恶意版本、轮换长期密钥、保持调查人员知情。
- 感谢赞助商如 Alpha-Omega、Amazon Web Services、Sovereign Tech Fund 和 Google Open Source Security Team 对 Python 和 PyPI 安全工作的支持。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。