如果我使用像Python3AlMountain这样的基础镜像构建一个容器,并且我将遵循docker documentation中指示的强化,那么注入和执行Python脚本是否安全?
我的意思是,如果用户要写一些危险的东西(比如使用Python函数的sudo rm -R
),那么只有容器会受到这些问题的影响,对吧?
这是一个好的实践吗?我需要执行一些小的代码片段,限制对系统,模块等的访问。
发布于 2018-10-22 22:20:21
在这里,我不会将Docker视为安全“银弹”;在将您正在运行的代码释放到您的系统之前,即使是在Docker下,您也至少需要有一些概念,即您正在运行的代码是“值得信任的”。
请记住,您需要拥有根权限才能运行docker
,否则您可以轻松地获得这些特权(docker run -v /:/host -u root ...
将允许您自由编辑主机文件系统)。如果您的应用程序确实在处理不受信任的代码,请考虑是否希望特权进程能够处理它。
除此之外,Docker容器还共享主机的内核和各种物理资源。如果存在内核权限提升错误,则运行在容器中的某些程序可能会利用此漏洞。如果您的不受信任的代码发出出站TCP调用来传送您不希望在网络上传输的数据,那么这在默认情况下是不受限制的。如果它“仅仅”使用你的CPU周期来挖掘比特币,你就无法控制它。
如果所有这些听起来对你来说是可以接受的风险水平,那么在Docker下运行某种程度上可信的代码肯定比不运行要好:你确实可以得到一些保护,防止主机上的文件和主机级别的设置(如网络配置)发生变化,特别是如果你认为你运行的代码并不是恶意的。
https://stackoverflow.com/questions/52931379
复制相似问题