知识卡片

叠加多个各自独立审计的安全层,比依赖单一的强安全层更难被攻破

专业/工作

内容

JPC完全用Java写成、跑在JVM沙箱里,这意味着攻击者想要突破它,必须同时找到两个漏洞:JPC自身代码里的漏洞,以及这个漏洞恰好能对接上正在使用的那个具体JVM版本里的漏洞——而且这两层通常由完全不同的公司各自独立维护和审计,各自的安全性一直在被单独地检验和加固。这和只依赖一层”足够强”的安全边界完全不同:单一防线一旦被攻破就是全线失守,而多层独立防线要求攻击者同时集齐多把不同厂商打造的钥匙,其中任何一层的独立加固都会让整体防线变得更难攻破。这提示一个安全架构的设计思路:与其把所有赌注押在一层”绝对不会被攻破”的防御上,不如把系统拆成多个各自独立审计、彼此互不依赖的信任边界,安全性来自于层与层之间的组合,而不是任何单独一层的完美。

参考来源

《架构之美》第9章《JPC:一个纯Java的x86 PC模拟程序》