通过开放技术基金提升互联网自由:PyPI安全审计与移动应用加固

本文详细介绍了Trail of Bits与开放技术基金合作,对Python包索引(PyPI)进行安全加固和代码审计的具体技术方案,包括多因素认证实施、API令牌范围化、审计事件添加等核心安全措施,以及对iOS/Android端Save应用的威胁建模与加密方案优化。

PyPI安全性与可用性改进

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

我们的工作涵盖四个主要方向:

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

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

审计PyPI及其部署基础设施

2023年8月至9月,我们对PyPI及相关部署基础设施的多个代码库进行了审计:

  • Warehouse:构成PyPI前后端的主要代码库
  • cabotage:为PyPI运行时服务提供Heroku式部署基础

审计历时10个工程师周,共发现29个问题,包括可能泄露私有账户状态或危害PyPI运行时服务完整性的问题。通过修复审查,我们确认PyPI维护者已满意地修补或缓解了所有发现。

审计结果验证了PyPI的开发理念:强调自动化测试、代码检查和质量保证意味着发现的低级错误相对较少,大多数问题出现在代码库中各个服务可能以意外方式交互的部分。

OpenArchive的Save应用(iOS和Android版本)

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

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

未来展望

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

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

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