事件回顾
4月25日,Docker Hub 发现一个数据库遭遇未经授权访问(官方原话是 unauthorized access),发现问题后他们立即采取干预措施来确保网站安全。官方表示在短暂的数据库未经授权访问期间,大约 19 万个账号的敏感数据已被泄露(大约是总用户数的 5%),这些数据包括部分用户的用户名、哈希密码,以及用于自动构建 Docker 镜像的 GitHub 和 Bitbucket Token。
解决方案
Docker 发现问题后立即向用户告知了这一消息,并通知用户重置密码(包括使用其他使用相同用户名和密码的平台)。
此外,对于使用了自动构建服务并可能受影响的用户,Docker 已撤销他们的 GitHub token 和访问密钥,并提醒他们重新连接到存储库,然后检查安全和登录日志以查看是否发生了任何异常操作,例如是否存在通过未知的 IP 地址进行任何未经授权的访问。
最新回应
今天,Docker Hub 在其官网正式回应了这一事件,表示泄露的数据来自用户的非财务性数据子集(a subset of non-financial user data)
目前正在加强整体安全流程和审核安全策略,除此之外还增加了额外的监测工具。
最后对用户的常见问题进行了解答,摘录部分如下:
问:这次事件是否影响到 Docker 官方镜像?
没有官方镜像遭受入侵,针对官方镜像我们有提供额外的安全措施,包括 git commit 上的 GPG 签名和 Notary 签名,以此来确保每个镜像的完整性。
问:如何判断是否受到这次事件的影响?
- 如果收到了 Docker 发送的关于本次事件的电子邮件,这说明可能会受到影响。
- 如果发现从 GitHub 或 Bitbucket 到 Docker Hub 的连接已经中断,说明也可能遭受影响。
- 如果收到重置密码的链接,这说明帐号的哈希密码可能已经被泄露。对于存在泄露风险的密码,我们已将其作废,并向用户发送密码重置链接来作为预防措施。
问:需要做什么?
- 对于所有 Docker Hub 用户,不需要执行任何操作来确保安全性。因为我们已将密码重置链接发送给可能泄露哈希密码的全部用户。
- 对于曾使用过自动构建服务的用户,需要重新从 GitHub 或 Bitbucket 连接到 Docker Hub。
问:是否需要在 Docker Hub 上重置密码?
不需要。对于已泄露的哈希密码,我们已将其废弃,并通过电子邮件向发送了密码重置链接。如果没有收到密码重置链接,可访问此处以重置密码(https://id.docker.com/reset-password/?service=43f17c5f-9ba4-4f13-853d-9d0074e349a7)。
问:为什么未收到通知就删除了我的 GitHub Token?
为了保护用户的数据安全,我们采取了尽快撤销 Token 的措施,同时努力采取其他措施来保护网站的安全。这些工作完成后,我们才向可能受影响的用户发去通知。
问:现在将 Docker Hub 仓库重新连接到 GitHub 仓库是否会面临风险?
不会。重新连接会创建一个新的只读部署密钥(read-only deploy key)。
问:目前无法登录 Docker Hub,是因为帐号被攻击了吗?
我们已向可能泄露了哈希密码的用户发送了密码重置链接,并作废了这些密码。请检查电子邮件箱是否收到密码重置链接。如果有任何疑虑,请联系 info@docker.com
问:从未使用过 Docker Hub 自动构建功能,为什么也收到了电子邮件?
可能你曾经将 GitHub 或 Bitbucket 连接到 Docker Hub,或者是哈希密码已经泄露。若是前者,我们已取消连接;若是后者,我们已将密码废弃并发送了密码重置链接到邮箱。
Cloning into '.'...
Warning: Permanently added the RSA host key for IP address '192.30.253.112' to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
please ensure the correct public key is added to the list of trusted keys for this repository (128)
-----------------
果然影响了 autobuild。
引用来自“ylxs90”的评论
这种网站难道不是用的Bcrypt之类的方式保存密码的么?还是说Bcrypt处理过的密码,现在也不安全了?