互联网自由与开放技术基金 - Trail of Bits 博客
Trail of Bits 高度重视互联网自由,而开放技术基金(OTF)是我们实现这一目标最珍视的合作伙伴之一。我们的核心价值观聚焦于具有积极社会影响的高价值工作。OTF 红队实验室致力于为保护隐私、确保互联网开放访问且免受审查的软件提供审计服务。作为红队实验室的骄傲成员,我们已针对多个对互联网自由至关重要的软件产品开展了大量合作。以下是我们的具体工作内容。
PyPI 的安全与可用性改进
2019 年,我们通过 OTF 与 Changeset Consulting 和 Kabu Creative 合作,对支撑 Python 软件包索引(PyPI)的代码库 Warehouse 进行了安全性和可用性改进。截至 2024 年,PyPI 在 Python 生态系统中的关键地位不言而喻:拥有超过 50 万个项目和 75 万名项目维护者,每日软件包下载量超过 10 亿次。
我们对 PyPI 的改进工作主要从四个角度展开:
- 在 PyPI 上实施强大多因素认证(MFA)方法,包括 TOTP 和 WebAuthn
- 为 PyPI 添加可限定范围的 API 令牌,使项目维护者能够摆脱不安全的用户名/密码对进行软件包发布
- 为 PyPI 用户和项目添加审计事件功能,方便维护者审查在其账户和项目上执行的安全敏感操作
- 对 PyPI 的 Web 界面进行可访问性和国际化增强,包括符合 W3C 网页内容无障碍指南
这些改进是 PyPI 现代化工作的重要组成部分。可限定范围的 API 令牌和现代 MFA 方法使 PyPI 成为软件包索引安全实践的早期"黄金标准",其他主要索引在明确其安全性和可用性优势后也相继添加了 WebAuthn 和可限定范围 API 令牌。
总体而言,这些改进帮助提升了互联网最关键软件包生态系统的安全标准,同时证明索引可以在不损害用户和开发者正常工作流程的情况下实施安全增强变更。
审计 PyPI 及其部署基础设施
2023 年,我们从保障角度再次介入 PyPI:在 8 月和 9 月期间,我们审计了与 PyPI 及其部署基础设施相关的多个代码库:
- 构成 PyPI 前后端主体的 Warehouse 代码库
- 为 PyPI 运行时服务提供类 Heroku 部署基础的 cabotage
此次审计历时 10 个工程师周,共发现 29 个问题,包括一些可能泄露私有账户状态或危害 PyPI 运行时服务完整性的问题。审计结束时我们进行了修复审查,确认 PyPI 维护者已满意地修补或缓解了所有发现的问题。
审计结果验证了 PyPI 的开发理念:对自动化测试、代码检查和质量保证的重视意味着发现的低级错误相对较少,大多数问题出现在代码库中各个服务可能以非预期方式交互的部分。我们认为这值得其他软件包生态系统借鉴,特别是在供应链安全普遍受到关注的当下。以测试和自动化质量保证形式进行的预防措施,在审计时价值连城。
OpenArchive 的 Save 应用(iOS 和 Android 版)
人权活动家、记者和民间社会组织都需要一种既能保护隐私又能避免数据丢失和篡改的媒体保存与共享方式。OpenArchive 的 Save 应用为这些多样化用户群体提供了将照片和视频安全上传到共享存储提供商的方法,可选使用 Tor 匿名化网络并包含验证媒体文件真实性的加密签名。我们最近对 iOS 和 Android 版的 Save 应用进行了两次代码审查。
基于包含具有广泛审查权限的恶意国家行为者的威胁模型,我们的顾问通过动态测试和代码审查评估了 Save 应用。OpenArchive 在我们合作后的几个月内迅速改进了应用的安全性和设计,包括进行了大量重构。这些更新有助于防御社会工程学攻击,保护本地存储的媒体和凭证免遭窃取,并确保数据在敌对对手运营的网络中安全传输。我们还提供了指导,帮助 OpenArchive 未来更好地利用可用的加密工具。
未来展望
了解 OTF"社区、协作与好奇心"的愿景后,我们期待将模糊测试和持续测试的基础带入未来的合作。毕竟,我们经常发现一些在开发早期使用正确的安全工具很容易发现,但却在整个软件生命周期中未被察觉的问题。本着协作精神,我们将持续测试的经验总结编入了新的《测试手册》,供所有人免费使用。
除了有效的测试技术,互联网自由还需要可靠的软件开发生态系统来支持开源开发。我们与 PyPI 相关的工作整体提升了 Python 生态系统的安全状况,并欢迎在其他领域继续开展此类工作的机会。