开放技术基金推动互联网自由:PyPI安全升级与开源审计实践

本文详细介绍Trail of Bits与开放技术基金合作开展的PyPI安全增强项目,包括多因素认证实施、API令牌范围化、代码审计发现29个漏洞,以及移动端Save应用的安全评估,为软件供应链安全提供最佳实践。

开放技术基金推动互联网自由:PyPI安全升级与开源审计实践

安全性与可用性提升:PyPI的现代化改造

2019年,我们通过开放技术基金(OTF)与Changeset Consulting和Kabu Creative合作,对支撑Python包索引(PyPI)的代码库Warehouse进行了安全性和可用性改进。截至2024年,PyPI在Python生态中的关键性不言而喻:拥有超过50万个项目和75万名项目维护者,每日处理超过10亿次包下载。

我们的PyPI改进工作涵盖四个主要方面:

  1. 实施强大多因素认证(MFA):在PyPI上部署TOTP和WebAuthn形式的MFA
  2. 添加范围化API令牌:允许项目维护者放弃不安全的用户名/密码对进行包发布
  3. 增加审计事件功能:为用户和项目添加审计事件,使维护者能够审查其账户和项目上执行的安全敏感操作
  4. 增强可访问性和国际化:改进PyPI的Web UI,包括符合W3C网页内容无障碍指南

这些改进是PyPI现代化工作的重要组成部分,紧随Warehouse 2018年公测之后。范围化API令牌和现代MFA方法使PyPI成为包索引安全实践的早期"黄金标准",其他主要索引在明确其安全性和可用性优势后也相继添加了WebAuthn和范围化API令牌。

总体而言,这些改进帮助提高了互联网最关键打包生态系统之一的安全标准,同时证明索引可以在不损害用户和开发者正常工作流程的情况下实施安全增强更改。

PyPI及其部署基础设施的审计

2023年,我们重返PyPI进行安全保障工作:在8月和9月,我们审计了与PyPI及其部署基础设施相关的多个代码库:

  • Warehouse:构成PyPI前端和后端的主要部分
  • cabotage:为PyPI的运行时服务提供类似Heroku的部署基础

我们对这些代码库的审计历时10个工程师周,共发现29个问题,包括一些可能泄露私有账户状态或危害PyPI运行时服务完整性的问题。审计以修复审查结束,我们确定PyPI维护者已令人满意地修补或以其他方式缓解了所有发现。

审计结果验证了PyPI的开发理念:强调自动化测试、代码检查和QA意味着相对较少的低级错误被发现,大多数问题出现在代码库中各个服务可能以意外方式交互的部分。我们认为这值得其他打包生态系统考虑,特别是随着对供应链安全的普遍关注度上升。以测试和自动化QA形式进行的预防措施在审计时价值连城。

OpenArchive的Save应用在iOS和Android上的评估

人权活动家、记者和民间社会组织都有一个共同需求:以保护隐私同时避免数据丢失和篡改的方式保存和共享媒体。OpenArchive Save应用为这些多样化用户群体提供了将照片和视频安全上传到共享存储提供商的方法,可选择使用Tor匿名化网络并包含验证媒体文件的加密签名。

我们最近对Save应用的iOS和Android版本进行了两次代码审查。使用包含具有广泛审查权限的恶意国家行为者的威胁模型,我们的顾问通过动态测试和代码审查评估了Save应用程序。OpenArchive在我们合作后的几个月内迅速改进了应用程序的安全性和设计,包括执行大量重构。这些更新有助于防御社会工程攻击,保护本地存储的媒体和凭据免遭盗窃,并确保在敌对对手操作的网络上安全传输数据。我们还提供了指导,帮助OpenArchive未来最好地利用可用的加密工具。

未来展望

了解OTF"社区、协作和好奇心"的愿景,我们期待将我们在模糊测试和持续测试方面的基础带到未来的合作中。毕竟,我们经常发现那些在开发早期使用正确的安全工具很容易发现的问题,却在软件生命周期中未被察觉。本着协作精神,我们将关于持续测试的经验收集到新的测试手册中,供所有人免费使用。

除了有效的测试技术,互联网自由需要可靠的软件开发生态系统来支持开源开发。我们与PyPI相关的工作改善了整个Python生态系统的安全状况,我们欢迎有机会在其他领域继续这项工作。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计