如果我想获取一些不受信任的代码并在容器中运行它,只要容器作为非root非sudo用户运行,它是否可以安全地完成?做这样的事情有哪些潜在的安全隐患?
我很确定今天有生产应用程序这样做(CI系统,可运行的pastebins),但他们是否幸运没有一个坚定的攻击者或者这在生产系统中是否合理?
解决方法 从Docker v1.12开始,如果一个容器作为非root用户运行并启用了用户名称空间,则恶意行为者需要执行两级权限升级才能成为主机上的root用户:>从容器内的非root用户升级到root用户
>将容器中的root用户升级到主机上的root用户
因此,如果不受信任的代码作为非root用户在Docker容器内运行,攻击者在主机上成为root就会稍微困难一些,因为我们在容器内添加了一个额外的root步骤.与使用root权限运行容器相比,这是安全性方面的唯一优势.
如果通过两个安全层进行权限提升,则以下内容应有助于限制攻击面:
>具有不同信任级别的工作负载(更具体地说,在此上下文中为docker容器)应通过使用覆盖网络遵循最小权限原则彼此隔离.
>在强制模式下启用可用的Linux安全模块(例如SELinux,AppArmor)
参考文献:
>在容器内运行非root权限:https://groups.google.com/forum/#!msg/docker-user/e9RkC4y-21E/JOZF8H-PfYsJ
>覆盖网络:https://docs.docker.com/engine/userguide/networking/get-started-overlay/
>用户名称空间:https://docs.docker.com/engine/security/security/#/other-kernel-security-features
以上是内存溢出为你收集整理的作为非root用户在Docker容器中运行不受信任的代码有哪些潜在的安全问题?全部内容,希望文章能够帮你解决作为非root用户在Docker容器中运行不受信任的代码有哪些潜在的安全问题?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)