知识卡片

收到坏配置时应保持旧状态而非采用新数据

普通读书笔记卡 · 1647

内容

服务收到格式错误、为空或截断的配置数据时,最安全的默认行为是继续维持之前配置正常工作,同时 发出警报,直到有人批准采用新数据。2005年 Google 全球 DNS 系统因文件权限错误收到一份空配置, 系统直接接受并为全部请求返回 NXDOMAIN,持续6分钟;2009年一份格式正确但内容错误的配置(病毒 URL列表被误替换为只有”/“)导致整个互联网都被标记为病毒网站。教训:格式正确不等于内容合理。

参考来源

- 位置:《SRE:Google运维解密》附录B《生产环境运维过程中的最佳实践》"配置文件和二进制文件的验证"一节(源文件:_epub-src/OEBPS/Text/0013.xhtml) - 结论依据:原文明确"我们发现,最安全的方式是在服务收到新数据之后,仍然维持之前的配置运行,直到某个人来批准采用新数据",并给出2005年DNS空配置和2009年病毒URL列表两个真实事故案例。 - 原始内容:2005年,Google全球DNS负载/延迟均衡系统由于文件权限错误的原因,收到了一份空数据。该服务接受了空配置文件,为全部Google DNS请求返回了NXDOMAIN结果,故障持续了6分钟……2009年,一份错误的(但是格式正确的)数据导致Google将整个Web都标记成病毒感染网站。