2017-09-04 54 views
1

据微软文档是容器提供隔离和安全性提到窗口的Hyper-V容器不受信任的代码。考虑应用程序接受用户代码并在服务器上运行它的场景。因此,如果我们将应用程序托管在Windows服务器上的hyper-v容器上,那么我们可以放心,无论用户可以写什么,它都不会影响我们的应用程序的良好状态以及托管它的容器。运行在

我在上星期花了阅读集装箱微软的文档,但还没有找到直接回答这个查询。直到现在我明白我们的主机操作系统不会受到影响。此外,应用程序所做的所有修改都将在沙箱中捕获,因此我们的主机操作系统几乎没有风险。

回答

1

容器隔离与内核名称间距的应用程序。这意味着应用程序将共享相同的内核,并且容器内的内核级攻击运行可能会溢出该容器并影响主机的其余部分。 Docker允许各种选项将部分主机公开给容器,所以这将取决于你如何运行容器。并且开箱即用,码头工具对使用率没有限制,因此您可以通过不受信任的应用程序进行操作。

集装箱做提供比同一主机上的容器之外的一切更安全,但不太安全比,如果你每个应用程序纺了一个完全独立的VM。您需要确定您需要的安全级别,以及锁定内核和容器环境所需的时间和经验。

+0

嗨,感谢您的信息。但是我说的是hyper-v容器,所以没有与主机共享内核的问题。另外我的关注点是应用程序的好处。因此,如果我旋转虚拟机并在其中运行应用程序,那么在发生攻击时我的主机也会安全,但应用程序可能会停止运行。但是由于容器映像是不可变的,我很困惑,即使用户编写不可信的代码,我的应用程序是否会运行正常。 DOS攻击不是我打算用容器来防止的。只能被恶意代码攻击。 –

+1

如果您在与您的应用程序相同的VM或名称空间中运行代码,该代码可能会取消您的应用程序。更典型的用例是在自己的容器中单独运行不受信任的代码。恶意代码可能会对您的服务器造成DoS攻击,例如':(){:|:& };:'会打倒大多数有bash的主机。使用所有的CPU,内存或任何其他资源(如进程ID或堆栈空间)都是DoS攻击。 – BMitch

+0

我有一个机制,所有用户输入的代码将在5秒后自动终止。所以这对我们来说不是一个很大的问题。我相信任何这样的代码在最长5秒内都会有这样的效果。除此之外,我是否可以相信应用程序对所有其他攻击(如删除文件,修改注册表等)都是安全的。如果应用程序在任何有攻击的情况下继续运行,我相信我们将继续使用hyper-v容器,并将想办法阻止恶意代码等自己的容器的DoS ..... –