如果网络中的所有计算机都使用相同的操作系统,会不会更安全?

信息安全 网络 操作系统
2021-08-13 15:59:38

如果所有的电脑都使用同一个操作系统,攻击者只需要关注一个操作系统,会不会不安全?

4个回答

2003 年,@Stake 的 Dan Geer 发表了一篇关于这个主题的开创性论文 - Cyber In security: The Cost of Monopoly令人惊讶的是(考虑到他当时受雇于微软)他直接进入阵营,声称多样性对安全至关重要(强调我的):

不管主题是什么——计算、发电和防空——生存能力就是为失败做准备,以便在失败中幸存下来。生存能力,无论是作为一个概念还是作为衡量标准,都建立在两个支柱之上:重复供应和分散风险......

...冗余几乎没有能力防止级联故障;如果攻击可以覆盖所有计算机,那么拥有更多具有相同漏洞的计算机将无济于事。相反,防止级联故障是风险分散的领域——也就是说,使用不止一种计算机或设备,不止一种品牌的操作系统,这反过来又保证了攻击的有效性将受到限制。这一基本原则确保,就像种植不止一种作物的农民一样,我们这些依赖计算机的人不会在下一次疫病袭来时看到他们全部失败。从金融到农业再到电信,几乎所有社会部门都广泛接受这种多样化。

(他继续得出结论,微软是一个威胁,因为它引入了单一文化;结果证明,这对他在微软来说是一个职业限制举措。)


在评论中,@Johnny 建议这是一个凭证主义者的答案。虽然我选择在这里引用一位受人尊敬的专业人士写得很好的论文,但我这样做是因为它反映了我在计算机和安全行业 20 多年的经验。(哎呀,这几乎看起来像是次要的凭证主义。但我只是说我是在引用而不是鹦鹉学舌)。

例如,3 层(web/app/db)架构很久以前就在安全方面成为一种被广泛接受的改进,因为不同功能之间的分离有助于加强安全性。在这种情况下,我的经验是,在设置异构系统(例如,带有 MySQL-on-Linux 后端的 IIS)的额外工作和当攻击(或补丁!)引入中断时多样性的额外好处之间存在权衡。堆栈。而且我后悔遇到更大的问题的次数比我后悔的额外工作要多:)

处女领域流行病——要么因为你没有对网络进行分段,要么因为你使用相同的密码,或者你只有一个 [DNS/Hosting/Network] 提供商,或者因为你在任何地方都使用相同的操作系统- 一切都结束得很糟糕。

如果所有系统都相同,则可以预测可能出现的问题以及如何修复和修补。减轻您知道的问题变得容易得多。例如,如果网络全是 Windows,管理员只需了解 Windows 风险并为单一系统类型部署缓解措施。

如果您混合使用这些系统,那么管理员需要将该混合保护到相同的保护级别。你引入了很多未知数和很多不确定性,这增加了风险。是的,有些系统可能会比其他系统更安全,但从整体角度来看,相同的东西越多,保护就越容易、更便宜和更可靠。

更多样化的系统使感染更难传播。 *

较少多样化的系统使感染更难开始。**

因此,如果您的故障情况是您的所有系统都被感染(例如,如果您需要保证正常运行时间),那么使用多个操作系统会有所帮助(如果操作正确)。如果您的故障场景是您的一个系统被感染(例如,如果您是一家拥有敏感文件的律师事务所),那么使用多个系统会造成损害。


* 攻击者已知的单个安全漏洞可能允许破坏运行相同操作系统的许多或大多数机器。

**攻击者已知的任何操作系统上的单个安全漏洞将足以允许破坏具有该漏洞的机器之一。


这个答案忽略了对具有固有不同攻击面的机器(例如 Unix 网络服务器、Cisco 路由器、Windows 工作站)使用不同操作系统的可能性,因为此时答案变得更加复杂。

正如 schroeder 指出的那样,管理这样一个网络的安全性需要做更多的工作。

但即使管理多样化的网络不是问题,人类仍然是每个系统中最薄弱的环节。如今,社会工程学非常有效,Linux 机器上的人可以像 Windows 机器上的人一样容易被诱骗放弃他们的登录凭据。

即使您的所有用户都精通安全性并且从不上当任何技巧,该网络仍然无法实际使用。用户将用于实际工作的大多数软件可能不适用于多个操作系统。

即使您的所有软件都是跨平台的,您仍然不会更安全。黑客将开始编写跨平台恶意软件。

这是可行的,但只是不值得。