你好,游客 登录 注册 搜索
阅读新闻

干货来啦!带你初探Docker逃逸

[日期:2019-06-17] 浏览次数:

  Docker是当今使用范围最广的开源容器技术之一,具有高效易用的优点。然而如果使用Docker时采取不当安全策略,则可能导致系统面临安全威胁。

  本期安仔课堂,ISEC实验室的张老师将为大家介绍不同环境下,Docker逃逸至外部宿主机的情况。

  特权模式于版本0.6时被引入Docker,允许容器内的root拥有外部物理机root权限,而此前容器内root用户仅拥有外部物理机普通用户权限。

  使用特权模式启动容器,可以获取大量设备文件访问权限。因为当管理员执行docker run privileged时,Docker容器将被允许访问主机上的所有设备,并可以执行mount命令进行挂载。

  当控制使用特权模式启动的容器时,docker管理员可通过mount命令将外部宿主机磁盘设备挂载进容器内部,获取对整个宿主机的文件读写权限,此外还可以通过写入计划任务等方式在宿主机执行命令。

  6.最终我们可以通过访问容器内部的/abc路径来达到访问整个宿主机的目的:ls /abc

  Linux内核自版本2.2起引入功能(capabilities)机制,打破了UNIX/LINUX操作系统中超级用户与普通用户的概念,允许普通用户执行超级用户权限方能运行的命令。

  其中使用docker.sock进行通信为默认方式,当容器中进程需在生产过程中与Docker守护进程通信时,容器本身需要挂载/var/run/docker.sock文件。

  本质上而言,能够访问docker socket 或连接HTTPS API的进程可以执行Docker服务能够运行的任意命令,以root权限运行的Docker服务通常可以访问整个主机系统。香港赛马会官排位表

  竞争条件意为任务执行顺序异常,可能导致应用崩溃或面临攻击者的代码执行威胁。利用该漏洞,攻击者可在其目标系统内提升权限,甚至获得root权限。VDSO就是Virtual Dynamic Shared Object(虚拟动态共享对象),即内核提供的虚拟.so。该.so文件位于内核而非磁盘,程序启动时,内核把包含某.so的内存页映射入其内存空间,对应程序就可作为普通.so使用其中的函数。

  在容器中利用VDSO内存空间中的“clock_gettime() ”函数可对脏牛漏洞发起攻击,令系统崩溃并获得root权限的shell,且浏览容器之外主机上的文件。

  郑重声明:中国IT研究中心网站刊登/转载此文出于传递更多信息之目的 ,并不意味着赞同其观点或论证其描述。中国IT研究中心不负责其真实性 。

  触宝大数据2019Q1海外应用市场报告: “轻量级”应用易渗透下沉市场

  你的城市吸引力指数如何?百度地图慧眼发布《2019年第一季度中国城市活力研究报告》

  汇桔网与青岛市达成战略合作 加快赋能中小企业知识产权与科创服务创新升级

  微软2019BlueHat首度来华:360半年247次漏洞致谢再创“高光时刻”