编译:奇安信代码卫士团队

谷歌指出,本周一发生的全球认证系统故障由影响谷歌 User ID Service 的自动配额管理系统的一个漏洞引发。

全球大宕机导致用户无法登录账户,且所有的云服务均无法认证。由此造成的直接结果是,用户无法访问 Gmail、YouTube、Google Drive、Google Maps、Google Calendar 和谷歌的其它多个服务,时间持续了近1个小时。

在宕机期间,用户无法通过 Gmail 应用发送邮件或无法通过桌面客户端的 POP3 接收邮件,而 YouTube 访客收到出错信息称 “服务器出现问题 (503)—— 轻触重试。”

影响和根因

谷歌解释称,“在2020年12月14日周一03:46到04:33(美国/太平洋时间)期间,所有谷歌用户账户的凭据颁发和账户元数据查找功能均失败。结果,我们无法验证用户请求已认证且在几乎所有认证流量中出现 5xx 错误。大多数认证服务遭受了类似的控制台影响:所有谷歌 Cloud Platform 和谷歌 Workspace APIs 和 Consoles 中的出错率提升。”

问题产生的根因是谷歌的中央身份管理系统的能力下降,而这是由影响自动配额管理系统的一个 bug 引发的。结果导致谷歌用户请求出现问题,所有认证尝试显示错误。

全球身份管理系统

谷歌 User ID Service 中存储着所有谷歌账户的唯一标识符,同时管理着 OAuth 令牌和 cookie 的认证凭据。它还在分布式数据库中存储着用户账户数据,通过使用 Paxos 协议协调认证过程中的更新。

由于 User ID Service 服务检测到过时数据后,出于安全考虑拒绝请求,因此所有面向客户且要求获得谷歌 OAuth 访问权限的服务,在该服务开始出现问题并发放过时的标识符后均无法使用。

谷歌在问题概览报告中指出,“谷歌使用不断演进的自动化工具套件管理分配给各种服务的多种资源。在 User ID Service 迁移到新的配额系统过程中,10月份做出改进,在新的配额系统注册 User ID Service,但之前的部分配额系统被遗留在不正确地将 User ID Service 使用情况报告为0的地方。现有的关于执行配额限制的宽限期延迟了该影响,最后最终失效,触发自动化配额系统减少了 User ID 服务的配额并最终触发该事故。“ 虽然启动了安全检查以阻止未规划的配额更改,但它们无法正确响应单个服务加载零报告的场景。谷歌指出,”结果,账户数据库的配额减少,阻止 Paxos 写入。不久之后,大多数读操作过时,从而导致认证查询过程出现错误。”

谷歌表示,这起大规模宕机事件也对该公司的内部用户和工具带来影响,从而延迟了调查进程和状况更新报告。

一天宕机两次的 Gmail 服务

Gmail 还在一天内遭受了两次宕机事故,受影响时长共计大约7小时。谷歌在另外一份报告中指出,“出错信息表明邮件地址不存在,因此受影响邮件发送不成功。受影响的发件人可能收到了由中间服务SMTP 生成的回弹邮件。在一些情况下,回弹邮件中应用了完整的 SMTP 错误信息。这些信息的行为依赖于连接谷歌 SMTP 服务的外部 SMTP 客户端。”

这二次宕机的原因在于正在迁移更新 Gmail SMTP 站内服务的底层配置系统,“在这次迁移中发生的配置变化改变了一个服务选项的格式化行为,从而使其不正确地向谷歌 SMTP 站内服务提供了一个无效域名而非 “gmail.com” 域名。结果,该服务不正确地将某些以 “@gmail.com”结尾的邮件地址转换为并不存在的邮件地址。谷歌指出,“当 Gmail 用户账户服务检查了这些每个并不存在的邮件地址时,该服务无法检测到合法用户,从而导致出现 SMTP 错误代码 550。”

原文链接

https://www.bleepingcomputer.com/news/google/google-explains-the-cause-of-the-recent-youtube-gmail-outage/

声明:本文来自代码卫士,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。