阻止所有输出连接是否可以保护我们免受服务器攻击?

阻止所有输出连接是否可以保护我们免受服务器攻击?

假设一个黑客找到了一种在我的容器中执行漏洞的方法,他可以在其中执行任何代码(例如,他使用 HTTP 协议上传了一个 bash 文件)。让我们让它变得更危险:他的 bash 文件以 root 权限执行。

我想知道我该如何阻止他在那里做任何操作。在容器外的防火墙中阻止所有输出连接(例如在 kubernates 层)可以完成这项工作吗?

他将无法与他的机器建立任何连接:SSL、websocket 连接,也无法从容器初始化的任何其他连接。

他不会从他的 bash 文件中获取任何输出信息,因此他将完全失明。他能做的最糟糕的事情是rm -rf /<any standard unix directory>,但如果每个文件都在单独的沙盒容器中处理,则所有其他上传过程都不会受到影响。

您觉得如何?您还看到了哪些其他选择?

答案1

不会。这只会阻止传出连接。由于您的服务器正在提供某些内容,因此它或多或少必须允许任何一个传入或传出连接。攻击者可以利用其中任意一种 - 尽管方式不同。

如果同时阻止传入和传出连接,通常会极大地提高安全性,但也会对可用性产生一定的影响。

您的问题表明了一种常见的误解。安全不是按下按钮。如果是,每个人都会按下那个按钮。安全是一个挡在攻击者面前的过程。通常,纵深防御是个好主意 - 设置多重屏障。

阻止传出连接可能会减轻影响,因为它不允许攻击者使用该机器作为跳转主机 - 但它不会阻止取得使用权。

沙盒和使用可破坏容器也是如此:仍然可以获得访问权限,但影响会减少 - 至少在隔离有效的情况下。升级到容器之外的情况并不罕见。当然,你可以采取缓解措施来减少攻击面,例如无根 docker。但最终还是要回到纵深防御:找出攻击,实施缓解措施,涂抹,冲洗,重复。

相关内容