技术问答:如何看待容器的安全性

发布时间: 2019-09-20

  【IT168云计算】为促进Docker、Kubernetes等技术的交流传播,同时帮助用户更全面地了解时速云产品及其应用,时速云每周四晚8:30-9:00在用户微信群进行产品、容器技术相关的直播分享和现场答疑。以下整理自9月24日第五期答疑内容,由时速云 联合创始人 杨乐分享。

  Docker容器技术发展如火如荼,相关的安全技术也在不断往前推进。我们也在继续探索容器技术应用与安全的问题,这个主题从传统安全角度出发,希望能给大家带来一些思考和讨论。

  在云时代,小区垃圾楼层撤桶困难重重 深圳这个区的撤桶率服务上云已经非常普遍。而安全渗透攻击技术的自动化程度也到了很高水平,受攻击的目标变多,同时攻击者技术手段变高,使我们云端服务的安全环境变的不可预测。

  按传统的云端部署方式,比如云台服务器+数据库+web+nginx模式,当出现安全告警时, 我们可以按部就班,升级内核、打补丁、升级服务等,基本上一切从容。

  当我们将容器技术应用到部署运维时,打包迁移都是围绕docker, image,这种方式避免了我们在复制运行环境时发生漂移。而在没有处理惯例或者指引的情况下出现安全告警时,这种新的方式带来了新的安全性挑战。

  传统攻击目标我们把它看成一个城池或城堡,容器是城池里的房间。传统方式通过信息收集、漏洞发现、渗透入侵等阶段进行系统渗透。

  而从容器角度,从房间里边探知里面的信息,这些信息跟城池本身有一定的关联性或者是相似形,从而获取整个系统结构的秘密。

  在渗透行为进行的过程中,漏洞对于后续的入侵过程尤为重要。反过来,对企业来说如何及时发现和处理系统漏洞是服务安全的重要部分。

  无论是哪种漏洞类型,总会有一个生效周期。产品发布后,渗透人员发现漏洞,到提交漏洞库,或者0day无补丁漏洞。

  厂商被通知或自行发现后进行补丁升级,然后是用户升级,更新软件或镜像,最后修补完成。从渗透人员发现漏洞到厂商升级并发布补丁,这段时间属于0day, 危害较大。

  对应厂商升级,传统方式和容器有些不同,传统厂商,对相应服务维护升级比较及时,安全性较高。但对容器来说,限于基础镜像安全性,镜像来源也不同,现阶段对镜像的维护升级水平也参差不齐,安全性不可预测。

  大概看一下国外牛人做的一些统计,说Docker Hub上官方的容器镜像有超过30%的数量,包含高风险的安全漏洞,其中有ssh的heartbleed和 bash破壳漏洞。如果对普通用户提交的镜像,这个比例超过40%,抽样误差在3%。

  第一组数据看起来还是很可怕的,因为高风险的镜像还是人们经常下载的镜像。然后第二组今年创建的image高危的镜像到40%,高危和中等能到75%,这个也可能是因为今年Docker活跃用户突增,镜像push数量大涨,并且镜像安全质量良莠不齐。最后一组是标有latest的,是image最近更新版,降了不少,这个也是说版本更新会解决一些问题。同时也是给我们提示,镜像最好用latest的,同时经常更新。

  这个图是统计了非官方的镜像所用的package的数量对比,从这个图上看到排前三的是bash apt openssl , 这个估计是由于很多镜像用ubuntu基础镜像来的,也就是为什么镜像的漏洞里 bash ssh的占得比例比较大的原因。

  这几个是docker本身的问题,1.6.1版本的漏洞,基本上属于提权漏洞,只要通过精心设计的镜像就能够exploit。

  除了这些CVE,Docker使用过程中也存在一些安全隐患。比如磁盘限额问题,docker本身没有这个功能,如果多租户模式下,某一个应用把磁盘给沾满了,消耗尽了,会严重影响其他容器应用的运行,需要通过辅助手段来解决。再就是超级权限—privileged, 它会赋予容器所有主机的root能力同时挂载所有设备。大家都知道,一般情况下不推荐使用。

  Capability用于限制容器所拥有的能力,也就是执行某些系统操作的权限,也可以根据需要对容器的能力进行增减。Namespace为每个容器提供隔离的系统运行环境,包括pid, network, uts, ipc, mount。Cgroup主要用于对容器所使用的资源进行限制,包括cpu,memory。技术措施上,对权限和资源进行限制,用cap-drop的方式来削减能力,利用cgroup来为容器添加cpu,和memory限制。这些对Docker比较了解的用户来说,应该耳熟能详了。

  通过这些安全机制与参数设置,我们对docker本身能有一个基本的安全操控。Docker社区也在为自身的安全不断的努力。

  首先,在开源社区,为代码贡献者指定了代码提交的指导原则,在开发过程中减少bug和漏洞,提高产品质量。同时定期对产品进行渗透测试,及时审计安全漏洞。并开放了相应平台,鼓励安全渗透人员提交漏洞。官方也提供了检测工具,专门为docker的部署运行环境做安全风险初评。

  我认为对于使用者来说,应对容器安全问题,应该具有传统的安全思维同时采用新的技术手段。

  除了上文中的具体安全设置,对于容器应用来说,策略上同样是三方面来实施:1.定期渗透测试,安全审计(同docker社区做法));2. 尽量采用image的正规镜像来源,相对于传统安全,容器安全受质疑很大程度上是在于镜像的维护及升级,因此在镜像源头保证安全和及时更新;3.及时升级容器服务,比如采用rollingupdate的方式对跑服务的容器进行升级等方式。

  最后,虽然在安全上仍然存在问题,但我们看到,docker在开源社区的关注度、活跃度很高,贡献者也很多,大家群策群力,众人拾柴的情况下,docker容器技术的发展必然会越来越完善。存在的问题也会被逐步克服。

  随着这项技术逐渐被大众接受并应用,云端容器应用逐渐会更广泛,再加上渗透安全人员对docker也慢慢熟悉,在未来一段时间内,docker的安全问题会有一个集中突增的时间。但随后docker进步与升级,再加上镜像安全机制的完善,安全问题也会随之慢慢减少。

  答:貌似更新了。当然,这些仅仅是对于docker的运行环境配置参数等进行的安全初评。要想对整个自身的系统服务进行检测,要用专用的渗透工具。

  答:公开的镜像可以任意pull,除了程序自动验证,解析dockerfile能知道来源。

  答:对,所以docker的态度就是,我把我的代码质量把好关,时常给自己体检。而镜像问题就用策略防御。

  后记:第五期的话题有点重,在当前以docker为代表的容器技术发展过程中,容器安全还属于探索阶段,时速云以最开放的态度,将自身的见解与努力分享呈现给用户,致力于带来更多的思考与讨论,创造一个良好的发展氛围,推进容器技术的全面发展。有兴趣参与每周四晚8:30-9:00时速云产品、容器技术相关答疑的用户朋友请联系微信xiaoqingshuyeah。欢迎留言告知您想了解的问题或对时速云产品的体验感受,我们会第一时间回复您。


现场报码室| 香港正版挂牌| 香港马会开奖结果直播| 香港六和采开奖结果| www.0584.com| www.662466.com| 香港三肖中特期期准| www.235005.com| 曾道人一码中特| 开奖结果| 今晚六合开奖结果| 一肖中特免费公开资料|