是否可以故意创建一个易受攻击的网站来攻击托管服务提供商的服务器?
因此,在我最近提出的上述问题中,我们得出的结论是,必须通过某种控制用户权限的方式来防止一个易受攻击的网站向同一服务器上的所有其他网站敞开大门。
因此,我想知道这是如何在共享虚拟主机中实现的。这个操作系统是基于 Windows 中的 UAC 还是它在概念上是如何工作的?
我知道这可能因服务器而异,但我想了解托管服务提供商的防御选项,以了解此线程的大小。
是否可以故意创建一个易受攻击的网站来攻击托管服务提供商的服务器?
因此,在我最近提出的上述问题中,我们得出的结论是,必须通过某种控制用户权限的方式来防止一个易受攻击的网站向同一服务器上的所有其他网站敞开大门。
因此,我想知道这是如何在共享虚拟主机中实现的。这个操作系统是基于 Windows 中的 UAC 还是它在概念上是如何工作的?
我知道这可能因服务器而异,但我想了解托管服务提供商的防御选项,以了解此线程的大小。
这个问题有点宽泛,但我认为有点宽泛的答案仍然会有所帮助。答案取决于您所谈论的托管“种类”。我将在下面分解三种主要类型,但仅供参考,我使用的名称不一定是行业标准名称。然而,这些概念在所有方面都很常见:
共享主机
通过共享主机设置,许多网站在同一操作系统的同一实例下运行,并且不同的“网站”通常通过在同一系统上拥有不同的用户帐户来分离。cPanel 和 Plesk 是管理此类设置的两个常用软件系统(尽管 Plesk 也可用于管理 VPS 托管)。因此,您必须关注保护系统的两个主要方面:确保正确隔离用户帐户(请参阅 Jeoroen 的出色回答),并确保您的容器管理器(Plesk、cPanel 等...)没有任何弱点。这些工具偶尔也会有自己的漏洞,如果有人设法闯入您的容器管理软件,他们通常最终会获得对物理服务器的 root 访问权限,或者在最坏的情况下,对该系统管理的所有服务器的 root 访问权限。此外,如果您授予用户命令行访问权限,则必须担心操作系统本身存在潜在的权限提升漏洞。
VPS 主机
通过 VPS(虚拟专用服务器)托管,物理服务器本身运行某种虚拟化软件,然后运行任意数量的运行完整且独立的操作系统的“虚拟机”。管理此类设置的一些工具示例是 KVM 管理程序或 XEN 管理程序。这种设置的优点是它让最终用户(也就是托管公司的客户)可以完全控制他们自己的系统。理论上,他们可以安装他们想要的任何操作系统,拥有完全的 root/admin 访问权限,并安装/管理他们想要的任何软件。虚拟机管理程序将每个虚拟操作系统与其他虚拟操作系统分开,并彼此完全沙盒化。从理论上讲,一个受感染的主机根本不可能影响其他主机。当然在实践中,事情并不总是完美的。尽管(我相信)它更罕见且更难利用,但虚拟机管理程序本身偶尔也会有自己的漏洞,可以让恶意攻击者控制整个系统(Spectre 和 Meltdown 与虚拟机管理程序相关 - h/t phyrfox)。与其他任何事情一样,保持系统最新是关键。
专用主机
一些托管服务提供商提供专用托管,他们基本上只是为您管理硬件并提供互联网访问。他们在服务器上安装您选择的操作系统,基本上只是为您提供 root/admin 访问权限。显然,这与您的问题并没有直接关系,因为这不再是共享托管 - 没有其他人可以影响。但是,它们仍在您的网络中,因此始终必须进行适当的网络访问控制(对于所有其他托管实例也是如此)。
网络管理
编辑补充:关于网络安全的最后一点值得一提。无论您使用分片托管、VPS 托管还是专用托管,托管公司本质上都在向外部方提供内部网络访问权限。如果没有明确的访问控制,这意味着使用您的托管服务的任何人都可能扫描网络上的其他系统以查找他们自己的操作系统漏洞。例如,如果其中一个 VPS 实例可以通过网络找到其他实例并通过操作系统中的任何网络级漏洞(例如 heartbleed/永恒之蓝)。许多较大的托管公司将允许您(使用托管的人)在其网络内设置 VPC(虚拟私有云),以将您的系统与互联网和他们自己网络上的其他系统隔离开来。假设他们的网络规则实际上按承诺工作,这为最终用户提供了额外的保护自己的方法。据推测,较大的服务提供商也有积极的网络安全,可以检测来自他们自己网络内部的恶意网络流量并适当地关闭帐户。
简而言之,您需要担心的漏洞类型很大程度上取决于您的主机配置。当然,如今大型托管服务提供商(也称为无服务器基础架构)提供了一系列全新的托管选项,它们有自己完全独立的关注点列表,但我认为以上概述了您所拥有的托管类型的主要关注点头脑。
是否可以故意创建一个易受攻击的网站来攻击托管服务提供商的服务器?
是的,这绝对是可能的。由于我只在基于 Linux 的托管解决方案中体验过这种情况,因此我只能分享我在那种情况下的经验。
有几次我设法破坏了运行 DirectAdmin / Plesk 的整个共享托管服务器。
这是由于文件和文件夹权限不足,系统上的任何用户都可以读取其他用户的主目录(世界可读)以及他们的域文件夹和public_html
/private_html
子文件夹。
如果共享服务器上的某个域运行易受攻击的应用程序,例如,允许用户以非安全方式上传文件,则可以上传 Web shell。
一旦攻击者可以访问 web shell 并且文件/文件夹权限设置不正确,攻击者就可以浏览整个文件系统(当然,只要文件夹是世界可读的)。
建议尽可能严格配置文件和文件夹权限,并将漏洞仅包含在特定域中。
这是一个相当广泛的问题,它假定虚拟主机实际上确实可以充分保护您免受此问题的影响。
典型的共享虚拟主机使用:
open_basedir
以及 php 内置的类似措施。这就是为什么几乎每个共享托管服务都包含 php,但很少包含 perl、python、ruby 等的原因之一。这仍然有很大的改进空间,这是由更好的报价做出的,而被更差的报价忽略了。