zoukankan      html  css  js  c++  java
  • 有容云-容器安全,六招解决

    引言 : 容器是把双刃剑,一方面,它可以标准化应用的运行环境,实现DevOps,应用版本快速迭代,随需弹性伸缩。另一方面,它是一种全新的技术,对云计算生态从计算、存储、网络都产生了新的技术变革,如仅只是将容器作为工具替代应用打包或运行的方式,将会对系统造成较大的风险。

    容器技术近几年的热度不言而喻,2016年是Docker的生产年,有很多公司将容器和容器平台从研发环境也搬上了生产环境。无论的开发还是运维人员都非常认可容器技术。

    同时,容器也是把双刃剑,一方面,它可以标准化应用的运行环境,实现DevOps,应用版本快速迭代,随需弹性伸缩。另一方面,它是一种全新的技术,对云计算生态从计算、存储、网络都产生了新的技术变革,如仅只是将容器作为工具替代应用打包或运行的方式,将会对系统造成较大的风险。

    那么如何保证在生产环境中安全的使用容器,且能更大程度发挥容器快速分发、弹性伸缩、灵活部署等特性呢? 本文将分享一些docker的安全实战经验和使用建议。

    在有容云的丰富客户实践中,遇到过各种安全问题,列出主要问题如下:

    • 容器引擎运行造成宿主机系统崩溃

    • 镜像存在漏洞风险,容器规模越大,对生产环境产生影响越大

    • 容器root权限运行,无法进行同主机下多容器隔离

    • 容器中挂载宿主机目录,对主机目录的更改导致宿主机崩溃或异常

    如果您也遇到以上问题,建议仔细阅读本文。

    从容器云平台的搭建框架和使用来看,大致分为三个步骤,如下图所示:

    1、容器云平台的搭建。包括管理结点、主机结点的角色配置,镜像仓库的搭建与配置等。

    2、管理员通过页面访问,对环境进行配置和部署。

    3、运维或应用部署人员将应用运行在容器云平台之上。

    基于此步骤的描述,我们再来审视下这个过程中可能会出现的安全隐患:

    1、镜像仓库的安全问题

    2、镜像传输的安全隐患

    3、主机环境的配置

    4、管理结点和主机结点的传输

    5、管理界面的访问和配置

    6、应用之间的隔离

    第一招

    镜像仓库的安全

    应用运行依赖的镜像都从镜像仓库中获取,故需保证镜像仓库的安全。可能出现的隐患包括:

    • 隐患:

    1、镜像仓库链接被钓鱼,百度搜索引发的各种钓鱼故事大家已经熟知,这里不再详述,一旦被链接到恶意网站,下载伪装的镜像,对应用的风险也是不用多说的。

    2、镜像仓库中镜像随意下载和流传。

    3、或将镜像tag标识为重要版本,将其上传到镜像中覆盖已有版本。

    • 有容云解决方案:

    1、镜像仓库配置CA证书,提供HTTPS访问。

    2、对用于生产环境中的镜像不用latest版本。

    3、对镜像仓库进行合理规划,进行项目划分,对用户进行明确的权限控制。

    4、及时清理不用的镜像。

    第二招

    镜像制作和传输

    • 隐患:

    1、对基于公网基础镜像生成的镜像,利用公网镜像的漏洞进行攻击。

    2、对某些公开的镜像、Dockerfile或启动命令,获取其公司内部数据,如数据库链接、用户名和密码。

    3、镜像pull传输过程中篡改镜像内容。

    • 有容云解决方案:

    1、按照文章《Docker运维之最佳实践-上篇》中建议的进行镜像的制作。

    2、切勿为了方便,将重要访问数据,如数据库链接、访问密钥等打包进镜像中。

    3、镜像pull和push过程都进行镜像签名,保证镜像完整性。

    4、镜像上传时,和定期对镜像仓库中的镜像进行漏洞扫描。

    第三招

    主机环境的配置

    • 隐患:

    1、通过容器对宿主机上的系统文件或关键数据进行修改或删除,导致主机系统崩溃。

    2、通过容器获取主机的root权限,或主机上其他应用权限,从而操控主机。

    • 有容云解决方案:

    1、容器平台设置用户权限,不允许root操作。

    2、对容器映射主机的目录做限制。

    第四招

    管理结点和主机结点的传输

    • 隐患:

    1、截获管理结点和主机结点访问的API接口,直接操作主机结点。

    2、直接调用主机结点上的daemon标准接口,进行容器和镜像的删除和配置操作。

    • 有容云解决方案:

    1、管理结点和主机结点之间通过HTTPS和token进行访问。

    2、主机结点上限制远程访问。

    第五招

    管理界面/API的访问

    • 隐患:

    通过浏览器token截获访问API接口,对平台进行恶意操作。

    • 有容云解决方案:

    1、对访问token设置时限。

    2、对不同的用户或场景生成不同的key进行API访问。

    3、管理的web服务器端配置CA证书,通过HTTPS访问。

    第六招

    应用之间的隔离

    • 隐患:

    1、通过在平台上创建新的容器,在容器中操作其他容器提供的API接口。

    2、恶意攻击容器,通过不断占用容器资源(CPU/内存/磁盘/网络/会话等)来导致主机上其他容器无法正常使用。

    • 有容云解决方案:

    1、通过制定相关策略限制容器之间的互访。

    2、容器运行时配置相应配额上限,避免无限使用主机资源。

  • 相关阅读:
    终端设备 tty,pty,pts 概念与文件描述符的联系
    Nginx – access_log格式及配置
    Nginx – rewrite 配置 URL重写及301跳转原理图
    nginx命令启动及选项
    nginx-web身份验证
    nginx_server_location对客户资源的辨别规则
    利用Session防止表单重复提交
    归并排序
    Cookie/Session的机制与安全
    HTTP Cookie Session
  • 原文地址:https://www.cnblogs.com/youruncloud/p/6743692.html
Copyright © 2011-2022 走看看