分享

史上最全 Docker 安全问题回顾

 rocky_gan 2017-04-08

安全是当前容器生态系统中最重要的话题之一。在过去的一年里,Docker 团队和社区矢志开拓,Docker 团队为平台增加了更多全新的安全功能,并帮助其性能得到进一步的提升。

安全是平台的重中之重

随着各大公司越来越多地将其基础架构迁移到私有云和公共云之上,它们开始意识到安全不是一个简单的亡羊补牢问题,相反,安全从一开始就必须严肃对待,并将其整合进平台之中。

令我们倍感欢欣的是,在发布第一本 Docker 安全白皮书第一套 Docker 1.6 CIS 基准仅一年后,我们的努力通过了行业的有力检验,尤其是近期的新 Docker 1.11 CIS 基准和 Docker 引擎的功能评估,被纳入 NCC 组织(权威代码安全审计机构)的 Linux 容器强化白皮书之中。

“当前时代,我认为没理由不在 Linux 容器,或轻量级沙盒中运行 Linux应用。”

—— Aaron Grattafiori,NCC 集团白皮书作者

NCC 集团还横向考察了 LXC 2.0,Docker 1.11 和 CoreOS Rkt 1.3 的安全性能,测试了超过 13 项关键功能,并分析了这些功能在三大平台上的表现。


(来源:Understanding and Hardening Linux Containers)

解读上图 LXC 2.0,Docker 1.11 以及 CoreOS rkt 1.3 的安全对比,我们从以下两个维度入手,第一,安全性强度;第二,设定安全策略的灵活性。

首先,在安全性强度方面,CoreOS rkt 1.3 在多个维度方面暂无法与 LXC 和 Docker 相比,比如用户命名空间(User Namespace), Root 用户的 Capability 限制,cGroup 资源控制的默认配置,以及 Seccomp 系统调用的过滤清单等。当然,CoreOS rkt 1.3 也存在安全方面的亮点,比如最先支持 Hypervisor 的隔离等,而这一点我们只能寄希望于未来的 LXC 和 Docker。

而 Docker 作为最重视安全的容器技术之一,在很多方面都设置了强安全性的默认配置。其中,自然包括:容器 root 用户的 Capability 能力限制,Seccomp 系统调用过滤,Apparmor 的 MAC 访问控制,镜像签名机制等。

安全策略的灵活性,则给予用户选择安全的权利,用户可以按需灵活配置。这方面 Docker 的支持包括:用户命名空间(User Namespace),自定义 Seccomp 系统调用过滤名单,SELinux 的安全访问控制等。

—— 来自 DaoCloud 工程师孙宏亮的深度解读

在过去的一年里,Docker 集中攻克了容器安全的三大核心难题:安全认证(secure access),受信内容(secure content)和安全平台(secure platform)。上方图表中显示了这些隔离和控制功能(既可以内置于 Docker 引擎,也可在引擎外使用)的测试结果。此类功能可以让你完全信任你的初始内容,减少针对 Linux 内核的攻击平面,提高 Docker 引擎的控制性能,并最终帮助你构建(build)、发布(ship)和运行(run)更安全的应用。

Docker 去年在安全功能上的进步,一言以蔽之,尽在以下时间轴。

1

Docker 1.6

  • 内容可寻址的 Docker image(Andy Goldstein)

  • Docker Daemon 层的 ulimit 配置

2

Docker Bench:引入基于 CIS 基准的测试工具

3

Docker 1.8:Docker 内容信任机制

  • 通过UTF(The Update Framework)实现镜像签名机制和镜像验证机制

  • Docker Hub 提供的官方认证的镜像

4

Docker 1.10

  • 用户命名空间(user namespace)(Phil Estes)

  • 带默认白名单的Seccomp参数文件(Jessie Frazelle)

  • 授权插件模式(Dima Stoppel, Liron Levin)

  • 内容可寻址的镜像层储存

5

Docker 1.11

  • Docker 内容信任机制与硬件的整合

  • Docker 内容信任机制与密钥授权支持的整合

  • PID cgroup 的支持,完成容器进程数量的限制(Aleksa Sarai)

默认安全

Docker 奉行 “默认安全” 的理念。在实现这些特征时,我们还把设备外的默认配置和策略囊括进来,因此首次安装 Docker 引擎的客户用起来会更安全些,不需要掌握太多安全方面的知识。不过,如果你有不同的需求,改动策略和配置也很容易。

我们会继往开来,为全体 Docker 用户提供更多实用的功能。不过就目前来看,Docker 1.11 版本安全方面的默认策略已经足够强大,还是市面上最安全的容器平台。

作者|Diogo Monica


Docker 是一个搭建、运输和运行分布式应用的开放平台,而狄奥戈·摩尼卡是这个平台的安全主管。他曾是 Square 中的元老级人物,领导整个平台的安全团队。狄奥戈在本硕博期间都专攻计算机科学,目前在里斯本技术大学任安全研究员。他还在多家网络安全创业公司的顾问团中任职,并兼任电气和电子工程师协会(IEEE)的长期志愿者。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多