在这种情况下,虚拟化是否提供了更高的安全性?

信息安全 虚拟化 打开bsd
2021-08-23 19:59:29
  • A: 运行带有 httpd 和 smtp 服务器的 OpenBSD 机器?

对比

  • B:运行 OpenBSD 机器作为虚拟化主机,QEMU 有两个来宾 OpenBSD 系统:一个用于 smtp,一个用于 httpd。

问:哪种解决方案提供更高的安全性?乍一看,我可以认为虚拟化是另一层安全性,所以它更好..然后换个想法……是不是虚拟化增加了另一层复杂性,所以又增加了一层安全漏洞?

更新到“B”:不,smtp 和 httpd 来宾无法通过 layer3 相互通信。QEMU

可能的攻击:从脚本小子到花费几个月才能进入服务器的安全研究员。仅使用静态 html 页面,不使用 cgi/php,并且 smtpd 服务器是 OpenSMTPD。不使用不需要的端口,即使 SSHD 正在侦听非面向 Internet 的接口。

4个回答

虚拟化提供了一些隔离层。在您的“B”情况下,如果(例如)SMTP 服务器中有一个可远程利用的漏洞,那么利用它的攻击者可能会完全控制运行该 SMTP 服务器的虚拟机,但他仍然会“在外部” " 的其他两台机器(带有 Web 服务器的来宾和主机)。这可能有助于遏制违规行为。但是,这种隔离与您在系统之间使用的通信渠道有关:例如,如果 Web 服务器代码能够发送电子邮件,那么我想它有办法与其他系统通信。也可能存在一些共享文件层次结构。此外,声称现有的虚拟化软件提供了“完美”的隔离也未免过于大胆:安全漏洞允许从客人逃脱,

这(像往常一样)是一种权衡:VM 带来了额外的包容性,但没有什么“完美”(具体机器无法实现完美),并且以一些开销为代价:将机器分成三个将意味着更多的 CPU 使用(不多),更多的 RAM 使用(大量)和更多的磁盘使用(更多或更多,取决于系统之间进行了多少“共享”)。更重要的是,使用三个系统而不是一个,您增加了复杂性,这是众所周知的安全问题。您现在拥有三个系统,而不是一个系统需要管理。这增加了系统管理的成本。

简短的回答:虚拟化解决方案更安全。

HTTP 和 SMTP 服务器可能会暴露在 Internet 中并容易受到攻击。大多数 HTTP 和 SMTP 服务器本身都具有良好的近期历史,几乎没有远程漏洞,尽管仍然可能存在零日漏洞。此外,HTTP 服务器暴露了 PHP/CGI/其他脚本中的应用程序缺陷。根据您的应用程序内容,HTTP 服务器可能面临更高的攻击风险。

一个理想的安全属性是黑客闯入 HTTP 服务器,他们无法访问 SMTP 服务器(反之亦然)。尽管 OpenBSD 有很好的本地权限提升漏洞历史,但您的配置也很重要,而且大多数安全架构师认为攻击者可以访问低权限的 Unix 帐户,他们可以进入 root。

人们普遍认为,虚拟化可以为您提供更强的包容性。曾有来宾到主机漏洞的实例,但少于本地权限提升漏洞。因此,这种安排将安全地分离您的两个服务。

实际上,我在一个为社区团体提供电子邮件和托管服务的个人项目中遇到了这个问题(http://unfinished.org.uk/),用户可以上传自己的 PHP 脚本,因此 Web 服务器受到攻击的风险很高。由于邮件更为重要(这些网站大多是宣传册),因此使用虚拟化将它们分开是很有意义的。

但是,您的情况可能会有所不同。如果您只托管自己创作的静态内容,则 HTTP 服务器不会受到攻击的高风险。在这种情况下,好处是微不足道的,并且可能不值得设置虚拟化的麻烦。

我不相信虚拟化会增加更多的安全性。这样的应用程序可以被 chroot (OpenBSD) 或将每个应用程序放入自己的监狱 (FreeBSD)。我会选择最简单的解决方案,因为它越简单,你就越能理解你在做什么,而且可能在心理上你也不太依赖分离(虚拟化)。保护服务器的安全更为重要,因为一旦出现漏洞,就为时已晚。

简短的回答:虚拟化更安全。

让我们将漏洞分为四种:

  1. OS vulns - 在这种情况下,两种解决方案 - 您的所有机器/信息都被暴露。
  2. httpd vulns - 如果您使用虚拟化,则仅暴露 http 服务器,如果两者都在同一系统上运行,则都暴露。(1到虚拟化)
  3. smtp vulns - 如果你使用虚拟化,只有 smtp 服务器被暴露,如果两者都运行在同一个系统上都暴露。(1 到虚拟化)
  4. 虚拟化漏洞(例如:VM 网络驱动程序中的漏洞) - 如果同时使用暴露的 VM。(1 反对虚拟化)

由于服务器更容易受到攻击,因此用于虚拟化的 2 更为相关。

当然,您应该考虑管理时间和服务器成本,但如果安全是唯一的考虑因素 - 使用虚拟化。