使用 Docker 的 Python 脚本沙箱

标签 python python-3.x docker

如果我使用 Python 3 Alpine 等基础镜像构建容器,我将遵循 docker documentation 中指示的强化操作。 ,注入(inject)并执行Python脚本安全吗?

我的意思是,如果用户编写一些危险的内容(例如使用 Python 函数 sudo rm -R ),那么只有容器会受到这些问题的影响,对吗?

这是一个好的做法吗?我需要执行一些小代码片段,对系统、模块等的访问权限有限......

最佳答案

我不会将 Docker 视为安全“银弹”;在将您正在运行的代码发布到您的系统之前,即使是在 Docker 下,您至少希望有一些概念:您正在运行的代码是“值得信赖的”。

请记住,您需要拥有root权限才能运行docker任何东西,否则您可以轻松获得它们(docker run -v/:/host -u root ... 将让您自由编辑主机文件系统)。如果您的应用程序确实正在处理不受信任的代码,请考虑是否需要特权进程能够处理它。

除此之外,Docker 容器还共享主机的内核和各种物理资源。如果存在内核权限提升错误,容器中运行的某些东西可能会利用它。如果您的不受信任的代码发出出站 TCP 调用来混洗您不希望出现在网络上的数据,则默认情况下不受限制。如果“仅仅”使用你的 CPU 周期来挖掘比特币,你就无法控制它。

如果所有这些听起来对您来说都是可接受的风险级别,那么在 Docker 下运行某种程度受信任的代码肯定比不运行要好:您确实获得了一些保护,以防止更改主机上的文件和主机级设置(例如网络配置) ,特别是如果您认为您正在运行的代码不是主动恶意的。

关于使用 Docker 的 Python 脚本沙箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52931379/

相关文章:

python - 皮蒙戈 : to check if we have connected to MongoDB database

python - 如何在后台运行python脚本?

python - 索引错误: list index out of range error when reversing a list

docker - 在 Ubuntu18.04 上使用 Fabric 1.4 以 "fatal error: unexpected signal during runtime execution"启动后,对等点立即退出

docker - Sonarqube从7.4社区升级到7.9 JVM错误

c# - 在 Mono 中使用 UnixSignal 会引发 System.ArgumentException

python - 你能帮我解决这个 SUDS/SOAP 问题吗?

python - 如果不满足条件,如何禁用下一个按钮 PyQt5 QWizard?

python -/usr/bin/python : bad interpreter: No such file or directory after installing python 2. 7

python-3.x - 使用整数输入的曲线拟合 Python 3.3