Hacker News 中文摘要

RSS订阅

PyPI 防范域名复活攻击 -- PyPI Preventing Domain Resurrection Attacks

文章摘要

PyPI为防止域名复活攻击,现已检查过期域名,以阻止攻击者通过购买过期域名并利用密码重置功能接管PyPI账户。自2025年6月起,PyPI已取消超过1800个与过期域名关联的邮箱验证,显著减少了这一供应链攻击的风险,提升了账户安全性。

文章总结

标题:防止域名复活攻击 - Python 包索引博客

主要内容:

Python 包索引(PyPI)现已实施检查过期域名的措施,以防止域名复活攻击。这种攻击属于供应链攻击的一种,攻击者通过购买过期域名,利用密码重置功能接管 PyPI 账户。自 2025 年 6 月初以来,PyPI 已在其关联域名进入过期阶段时,取消了超过 1,800 个电子邮件地址的验证状态。虽然这不是一个完美的解决方案,但它关闭了一个重要的攻击途径,使得大多数交互看起来完全合法。

背景:

PyPI 用户账户与电子邮件地址相关联,而电子邮件地址又绑定到域名。如果域名未续费,可能会过期,其他人可以购买这些域名。在 PyPI 账户注册过程中,用户需要通过点击发送到注册邮箱的链接来验证其电子邮件地址。一旦域名过期,攻击者可以注册该域名,设置电子邮件服务器,发出密码重置请求,并获取与该域名关联的账户访问权限。

域名过期时间框架:

域名注册商通常遵循一个宽限期,然后才会删除域名。PyPI 使用 Domainr 的 Status API 定期查询任何给定域名的状态,并根据响应采取行动。目前选择的时间间隔为 30 天,因为在这个时间段内,域名很可能仍处于续费宽限期或赎回期,可以在域名被释放或易手之前做出反应。

PyPI 行动:

在 2025 年 4 月的初始批量检查期之后,PyPI 将每天检查使用中的域名的状态变化,并更新其内部数据库。如果域名注册进入赎回期,PyPI 将取消之前验证的电子邮件地址的验证状态,并不会向已取消验证的地址发出密码重置请求。

对最终用户的建议:

如果您的 PyPI 账户只有一个来自自定义域名的已验证电子邮件地址,请添加另一个来自知名域名(如 Gmail)的已验证电子邮件地址。在 PyPI 账户恢复过程中,PyPI 可能会要求提供其他证明,通常是通过用户控制的其他服务。如果这些服务使用相同的电子邮件地址,恢复过程可能看起来是合法的。确保在这些服务上也设置了双因素认证(2FA),以防止潜在的账户接管。

总结:

虽然这些更改并非万无一失,但它们降低了域名复活攻击导致账户被接管的可能性。感谢 Fastly 的 Eric Case、Ruby Central 的 Samuel Giddins 以及 OpenSSF 软件仓库安全工作组的合作指导,以及 Alpha-Omega 的持续支持,使得这一努力成为可能。

评论总结

评论主要围绕域名过期和互联网身份管理问题展开,观点如下:

  1. 域名过期对代码库的影响

    • 评论1提到Golang中域名作为包源的问题,指出域名过期可能导致代码库无法更新,并举例Google成功锁定过期域名的情况。
      引用: "when I contacted Google about a developer who had passed before their domain expired, and they were able to lock out the domain from pulling anything new into their cache."
      中文: "当我联系Google关于一位开发者去世后域名过期的问题时,他们成功锁定了域名,阻止了缓存中的新内容。"
  2. 互联网身份管理的不足

    • 评论2指出互联网缺乏长期强加密身份管理,尽管已有解决方案(如Metamask),但用户不愿安装此类工具。
      引用: "All of this because we still haven’t solved durable long-term strong cryptographic identity on the internet."
      中文: "这一切都是因为我们仍未解决互联网上长期强加密身份管理的问题。"
  3. 域名和账户回收的潜在问题

    • 评论3提到域名和账户回收的复杂性,尤其是电子邮件地址与身份紧密绑定,回收后可能引发问题。
      引用: "What happens when Google, Microsoft, or anyone else recycles unused accounts?"
      中文: "当Google、微软或其他公司回收未使用的账户时会发生什么?"
  4. 基于域名的命名空间问题

    • 评论4批评了Maven风格的基于域名的命名空间,认为这是主要问题之一,并呼吁更好的命名空间解决方案。
      引用: "this was one of the major problems with doing maven style domain based namespacing"
      中文: "这是Maven风格基于域名的命名空间的主要问题之一。"
  5. 不同国家域名的过期政策差异

    • 评论5质疑域名过期模型是否适用于所有国家域名(如.de、.uk),而不仅仅是.com域名。
      引用: "What about .de, .uk and countless other country domains, each having its unique expiration policy?"
      中文: ".de、.uk等无数国家域名各有其独特的过期政策,模型是否适用于它们?"

总结:评论者普遍关注域名过期和互联网身份管理的挑战,涉及代码库安全、账户回收、命名空间设计以及不同国家域名的政策差异等问题。