今天我们宣布 Docker Security Scanning(Docker安全扫描,原名项目鹦鹉螺)全面上市。Security Scanning 目前以一个服务附加在 Docker Cloud 私有仓库和位于Docker Hub的官方仓库。Security Scanning 为您的docker镜像积极地进行风险管理和提供详细的安全配置,并简化软件合规性。Docker Security Scanning 会在您的镜像部署之前进行二进制级别的扫描,提供详细的物料清单(BOM),列出所有的层和组件,持续进行漏洞监控,当发现新的漏洞时提供通知的服务。
当您考虑到现代软件的供应链,这通常包括一些不同的开发场景和跨时区的公司里面的IT团队,栈和基础设施去构建、交付和运行应用。应用开发团队最主要的关注点是构建一个最好的应用,并且以尽可能快地交付给客户。然而,软件供应链并不会让开发者停止开发的工作,这是一个持续的循环和迭代,包括与团队共享代码和迁移环境。Docker让应用光滑移植并且默认运行在安全的平台,以确保安全的访问和对安全内容容量的控制。Docker Security Scanning 通过提供在docker镜像内深度搜索以及组件的安全配置去交付安全的内容。此信息在应用的生命周期每个阶段都是有效的。让我们深入了解Docker Security Scanning的细节然后看看它是怎么工作的。
Docker Security Scanning 已经在 Docker Cloud(并将在Docker Datacenter)使用,当一个新的镜像推送到仓库时会触发一系列的事件。其服务包括一个扫描触发器,扫描器,一个数据库,插件框架和CVE数据库的验证服务。
当用户/发行商推送一个镜像到Docker Cloud仓库时,Docker Security Scanning的服务会启动。扫描器服务获取到镜像然后将它分离成相应的层和组件。然后这些组件将被送到验证服务跟多个CVE数据库包的名称和版本进行对比,还会对包的内容进行二进制级别的扫描。
最后一点尤为重要,因为这种方式可以确保这个包已经正确的声明。
docker镜像是由多个层构成,每一层可能会有很多的组件/包,每一个包都有相应的名称和版本号。当漏洞报告给CVE数据库时,他们被链接到一个包名和特定的版本号。
许多服务都是直接用包名在存储着有问题的包的数据库的做简单的检查。仅此是不够的,因为它并不能保证回答“什么东西在我的容器中运行?”这个问题。除了检查包的名称,Docker Security Scanning 还对每一层进行二进制级别分析,并且把每个二进制下隐含的标记与已知的内容和版本相匹配,同时会交叉引用已知漏洞的数据库的内容 。这让我们能发现不仅在标准BOM(即列出的组件的dpkg -l或安装yum的列表),还有每一个静态链接库来正确识别那些库中已经打过补丁并且回滚到之前有问题的某个版本的组件。
这种方法降低了了之前报告中未经包版本更改但已经修复问题和防止如果有人故意重命名坏包进行分发的情况下的误报率。
为了帮助保护你,Docker Security Scanning 包含对范围广泛的操作系统,包括所有主流的Linux发行版和Windows Server,语言文字和二进制文件的支持。
一旦所有层扫描结束并返回了结果,每一个镜像和标签的详细的BOM将被产生并存储在Docker Security Scanning 的数据库。返回的结果将被发送到Docker Cloud,将连同每一个扫描过的仓库的标签的BOM展示到UI层。
扫描镜像的能力提供了给定时间点的洞察力。Docker Security Scanning 迈出很大的一步以通过持续的监控和通知来确保您的镜像保持安全。Docker Security Scanning 的数据库储存着详细的镜像BOM以及相应所有组件的漏洞。当一个漏洞被报告到中央的CVE数据库时,Docker Security Scanning 检查我们的服务数据库去查看哪些镜像和标签包含了受到影响的包并通过邮件提醒仓库的管理员。
这些通知包括漏洞本身相关的信息,列出了那些包含漏洞的仓库和标签。有了这些信息后,通过了解哪些漏洞影响了哪些软件,审查漏洞的严重程度,制定正确的解决方案,IT团队可以主动管理软件合规性。
Docker Security Scanning 是Docker工作流上一个令人兴奋的附加产品,帮助企业构建、交付和运行安全软件。和Content Trust(内容真实)相结合后,您可以保证您的软件做你所说的工作,而不会被恶意篡改。
举个例子,官方仓库从 DockerCon EU in Nov 2015 已经开始使用Security Scanning 去处理他们的漏洞配置,修复问题和协同Content Trust分发已更新的镜像。这个特性让Docker可以和上游合作伙伴上合作,为您提供更好更安全的镜像。
Docker Security Scanning 目前可以在Docker Cloud上的私有仓库计划给用户有限时间的免费试用。无论是不是镜像的提交者,你都可以在登录后查看到在Docker Hub的官方镜像的扫描结果。Security scanning 很快将拓展到Docker Datacenter 和 Docker Cloud 的公共仓库用户。
在Docker Cloud体验:
要尝试此功能,请转到 帐户设置>计划 并选择复选框。一旦被激活,每一个私有仓库最近三个标签将被扫描,并将24小时内由此产生BOM展示在标签部分。随后,Docker Security Scanning 将在您每次推送时扫描您的镜像标签。
下面的截图显示了5个私有仓库计划的用户的计划页。选择加入到Docker Security Scanning 的复选框出现在计划概要的底部。