浅谈容器安全之镜像和启动用户

   其实我们所使用的所有计算设备和程序都并非是绝对安全的,就比如现在比较流行的Docker,其实在某些层面也是存在一定隐患的,今儿就谈谈容器最基础的安全问题。

1、镜像问题

   容器的镜像大多数会来源于互联网公共仓库,非常方便,下载回来即可使用。而这部分来源的镜像又有谁做过安全扫描和安全检查?镜像中会不会存在严重的系统漏洞?这都是未知数,而且有没有恶意的人做了手脚我们也无法得知。所以大多数情况下我们更应该定制自己的base images(基础镜像),尽可能的精简,能不要的都不要。

参考:

https://raw.githubusercontent.com/docker/docker/master/contrib/mkimage-yum.sh

如果你使用了一个来路不明的镜像,那么下面的实例有可能会是你的下场,即使不是这种入侵方式,如果在镜像内嵌入了一个反链接程序(为什么是反链接?因为大多数企业的防火墙都是对外部访问内部有无数的过滤规则,而内部出去却宽松的很),只要启动容器就会连接到外面的某个IP,然后窃取数据。总之会有N多的方式等着你中招,所以镜像的构建是最最最基础的一个环节。

2、容器内敏感的启动用户

容器镜像无论是下载的还是自建的,都会面临同样一个问题,就是启动容器内进程的用户往往都是root,至少目前我在大多数生产环境中看到的还是这样(应用程序往容器里一丢,管你用什么账户启动,但是默认都是root啊!),其实这个道理就和物理机或者虚拟机上启动进程的用户是同一个道理。

如果应用程序存在漏洞可以被溢出攻击或者其他方式利用,那么获得的权限就是root权限,这个在容器内也是一样的,一个简单的实验,证明这个问题:

root启动的容器内进程:(演示漏洞CVE-2017-538) 

通过远程调用,我获得到容器内的ps 进程,并且启动者是root。

浅谈容器安全之镜像和启动用户

当前id显示的用户也是root,充分说明漏洞是和进程的启动账户有关系。

浅谈容器安全之镜像和启动用户

然后,试试删除功能,指令已经执行。

 

浅谈容器安全之镜像和启动用户

再次读取的时候已经无法找到文件了,如果这是其他文件呢?是共享卷的日志呢,又或者是数据卷呢?

 

nobody启动的容器内进程

浅谈容器安全之镜像和启动用户

进程是nobody账户启动的。 

然后确认id用户,是nobody账户。

测试删除,没有成功。

 

实验到这里已经充分说明,容器内的启动账户依然是我们需要注意的高危事项,其实如果能调用到这一步,破坏力可想而知,比如挂掉你的容器,删除你共享卷数据,如果你又恰巧集成了安装源,vim,gcc什么的,那就全乎了。有人说破坏是在容器内,对其他的影响不大?其实在我们不知道的或者没有涉足的技术里,一个容器内的root,为什么这么确定他无法逾越namespace呢?

更多入侵者进来不是为了破坏,而是为了数据窃取,你能给他的权限越小,工具越少,那么对方的难度就会越大,所以尽可能的使用普通账户启动容器内进程,尽可能的自己构建基础镜像,将基础镜像精简到最小。

原创文章,作者:EBCloud,如若转载,请注明出处:https://www.sudun.com/ask/33336.html

Like (0)
EBCloud的头像EBCloud
Previous 2024年4月2日 下午3:28
Next 2024年4月2日 下午3:28

相关推荐

  • 如何选择最适合你的SEO服务?

    你是否曾经被SEO服务这个词吸引过?或许你听说过它,但并不知道它的具体含义;或许你已经了解了SEO服务的定义,但却不知道为什么要选择它。无论你是哪种情况,都不要着急,因为在这篇文章…

    行业资讯 2024年3月20日
    0
  • 回调函数概念,什么叫做回调函数

    软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才 返回,它是一

    2024年6月2日
    0
  • 如何做到网站更新的快速响应?

    互联网时代,网站的更新速度对于企业来说已经变得至关重要。但是如何做到网站更新的快速响应?这似乎成为了一个难题。那么,什么是网站更新的快速响应?为什么它如此重要?如何选择适合的云服务…

    行业资讯 2024年4月6日
    0
  • fineprint如何在windows中打印?

    FinePrint如何在Windows中打印?今天,我们将带您探索一款神奇的软件——FinePrint。或许您对这个软件还不熟悉,但它却拥有令人惊叹的功能。它能够为您节省大量的纸张…

    行业资讯 2024年4月11日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注