2023 年 8 月 22 日 Deno Deploy 事后分析
2023 年 8 月 22 日,从 UTC 时间 07:00 开始到 08:30 结束,为 deno.com
和 deno.land
提供服务的网站遭受了 分布式拒绝服务 (DDoS) 攻击。此次攻击不仅影响了 deno.com
和 Deno Deploy 仪表板用户,还影响了通过 HTTPS URL 从 deno.land/x
或 deno.land/std
导入包的 Deno 运行时用户。
对于此次攻击对我们的基础设施造成的任何中断,我们深感抱歉。我们已采取措施以防止未来再次发生此类攻击,并将继续坚定地致力于为 Deno Deploy 以及任何依赖我们基础设施进行依赖管理的软件提供可靠的服务。
影响
在 90 分钟的时间内,Deno Deploy 管理控制台以及 deno.com
和 deno.land
网站无法访问。这也影响了我们在 deno.land/x
上的第三方模块注册表和 deno.land/std
上的标准库。无法访问注册表可能导致某些 Deno 运行时用户出现构建时错误。
依赖项已被缓存或供应商化的 Deno 应用程序未受到影响。除了 deno.com
之外,已部署并在 Deno Deploy 上运行的其他应用程序也未受到影响。
事件时间线
所有时间均为 UTC 时间,2023 年 8 月 22 日。
- 07:00 - DDoS 攻击开始
- 07:02 - 团队成员收到 deno.com 上错误升高的警报
- 07:10 - 团队成员发现正在进行 DDoS 攻击并开始调查
- 07:41 - 呼叫更多团队成员协助缓解工作
- 08:21 - 攻击得到缓解,因为冒犯性 IP 地址被阻止
- 08:29 - 团队确认系统恢复
- 08:59 - 事件正式解决
我们估计从我们的系统首次开始故障到完全恢复大约有 90 分钟的停机时间。
根本原因
针对 deno.com
发起了 DDoS 攻击,该网站托管在 Deno Deploy 上。 大量请求超出了 Deno Deploy 扩展和为此应用程序分配更多资源的能力,导致服务器错误,使得托管在 deno.com
和 deno.land
上的网页和模块不可用。
值得庆幸的是,“部署”(在 Deno Deploy 上跨项目和客户托管的应用程序版本)之间的资源隔离有效地保护了 Deno Deploy 上的其他应用程序免受重大影响。
下一步是什么?
我们意识到这次服务中断对许多 Deno 用户造成了多大的破坏,无论是在 Deploy 上还是在使用 Deno 运行时。我们正在迅速采取行动,以确保未来不再发生此类事件。
- 我们正在提高为遇到异常流量高峰的 Deno Deploy 应用程序分配额外资源的能力。
- 我们正在改进我们的随叫随到流程,以便更快、更适当地升级事件。
- 我们还认识到在事件期间需要更有效的沟通,并将确保更快地将中断报告添加到 denostatus.com。
- 更广泛地说,我们正在考虑更改我们托管 Deno 模块代码的方式,以防止
deno.com
和 Deno Deploy 上的事件影响其他 Deno 程序的依赖项管理。
再次,对于此事件可能对您的工作造成的影响,我们深感遗憾。感谢您的支持与合作,我们将在未来数月和数年内继续发展和加强 Deno 和 Deno Deploy。
如果您有其他问题或疑虑,请在此处与我们开始对话。