知识卡片

低依赖性组件的旧代码是把双刃剑

普通读书笔记卡 · 1453.f

内容

高可用性组件常用策略是锁定旧版本代码和配置来减少变更引入新故障的概率,但这会和安全性产生矛盾——运行六周前代码的服务如果需要紧急安全补丁,团队必须在”不打补丁但保持稳定”和”打补丁但可能引入新缺陷”之间二选一。这提示”降低依赖以提高可靠性”不是免费的,它是拿”抵御已知漏洞的能力”换来的,评估要不要采用这个策略时,得先想清楚组件本身面对新出现漏洞的暴露程度有多高。

参考来源

- 位置:《Google系统架构解密:构建安全可靠的系统》第8章《弹性设计》8.5.3节(源文件:`../OREILY动物书合辑 图灵新版/_epub-src/text/part0014_split_074.html`) - 结论依据:原文以"出于安全原因,一个高可用性的服务运行六周前的代码……然而该服务需要紧急进行安全修复,你会选择哪种风险"作为常见陷阱案例,直接展示锁定旧代码这一可靠性手段与紧急安全需求之间的冲突。 - 原始内容:出于安全原因,一个高可用性的服务运行六周前的代码(以防御最近的缺陷)。然而,该服务需要紧急进行安全修复。你会选择哪种风险:不安装修复程序,还是可能使用修复程序破坏代码?