码迷,mamicode.com
首页 > 系统相关 > 详细

Docker selinux

时间:2016-05-11 11:22:44      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:

最大的问题就是Linux的一切都不是命名空间 (namespaced). 现在, Docker使用5个命名空间来改变系统的进程: 进程, 网络, Mount, 主机名,共享内存.

虽然有给用户一定的安全级别, 但无法像KVM实施全面的安全保护. 在KVM环境下进程不直接和主机的内核交互.它们也不访问内核的文件系统如/sys和/sys/fs, /proc/*

设备结点是用于和VMs 内核交互的,而不是主机.因此, 想要越过VM来扩展特权级别, 进程要去攻击VM内核,找到HyperVisor的弱点,打破SELinux的控制(sVirt),最终攻击主机的内核.

当你运行在一个容器里时,你就已经直接可以和主机的内核打交道了.

没有被当成命名空间的主要的内核子系统如:

  • SELinux
  • Cgroups
  • /sys下的文件系统
  • /proc/sys ,  /proc/sysrq-trigger ,  /proc/irq ,  /proc/bus

没有被当成命名空间的设备:

  • /dev/mem
  • /dev/sd*  文件系统设备
  • 内核模块

如果通过一个特权进程对以上的某个模块通信或攻击的话,你就拥有了整个系统.

Docker selinux

标签:

原文地址:http://www.cnblogs.com/SZLLQ2000/p/5480908.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!