Docker 安全扫描

  • Chris Swan
  • 张卫滨

2016 年 5 月 15 日

话题:安全DevOps

Docker Inc 宣布正式提供 Docker 安全扫描(Docker Security Scanning)功能,之前它被称为 Nautilus 项目。这个功能的发布还伴随着 CIS Docker Security Benchmark 的更新,使其与 Docker 1.11.0 保持一致,Docker Bench工具也进行了更新,它可以检查主机和 daemon 配置是否匹配推荐的安全基准。

从 2016 年 5 月 10 日开始,Docker Cloud的私有 repo 客户能够在有限的时间范围内免费体验安全扫描的特性,并且将会迅速扩展至所有的 Docker Cloud 用户。安全扫描也将会成为Docker Datacenter的一个集成特性。扫描将会集成到“构建、传送、运行”生命周期之中,其过程会分为如下四步:

  1. 扫描基础镜像,签名并将其推送至中央仓库(在这里,系统会与Docker Content Trust集成);
  2. 开发人员添加安全的基础镜像并推送完整的应用来进行扫描。创建一份物料清单(bill of materials,BOM)并列出要修复的漏洞;
  3. BOM 达到就绪(satisfactory)状态之后,应用镜像会进行签名,这样就可以部署到生产环境了(也就是部署到配置已经得到 Docker Bench 保护的主机上,这些主机也会信任安全的 repo);
  4. 当新的漏洞添加到扫描数据库时,系统会通知 repo 中已部署镜像的问题。这样就可以创建新的镜像,有问题的容器就可以被新打上补丁的容器所替代。

安全扫描引擎能够在静态链接的二进制文件(statically linked binaries)中找到对安全至关重要的软件,如 OpenSSL,所以它不仅仅是扫描文件并创建哈希。但是,它依赖于特定语言的支持模块,因此现在还不能用于 Golang 的静态二进制文件。

据 Docker Inc 的安全主管 Nathan McCauley 介绍,扫描技术已经保护了对 Docker Hub“超过 4 亿次的 pull”请求,但是他并没有提及在这些请求中包含了多少已知有漏洞的软件。McCauley 接着说官方的 Docker 镜像将会全部使用安全扫描,他们致力于“更及时地”修复新发现的问题。

CIS Docker Security Benchmark 最初是在一年前发布的,它是与 Docker 1.6 共同使用的。McCauley 并不期望 Benchmark 会与 Docker 引擎的发布保持相同的节奏,但是 Docker Bench 工具的更新会比 Benchmark 更加频繁,以便于跟踪新的功能。

McCauley 还非常热情地介绍了 Docker Trusted Registry(DTR)基于角色的访问控制(Role Based Access Control,RBAC)功能以及 Docker Universal Control Plane(UCP)产品。基于属性的访问控制(Attribute Based Access Control,ABAC)功能可能也会推出,因为有一些客户要求该功能。这些安全功能的发布有一部分是提供给所有的 Docker 用户的,不过他们主要的关注点在于收费(premium)的产品和服务,Docker Inc 似乎专注于管理和安全功能市场,这些功能构建在大量流行的底层开源项目之上。

查看英文原文Docker Security Scanning

安全DevOps