专注docker安全:Security Scanning
| 导读 | Docker毫无疑问是近期运维同学们的热点话题,Docker安全也由此倍受重视,Docker Security Scanning 是一款Docker镜像扫描的安全工具,目前已经在Docker Cloud投入使用。 |
今天我们宣布 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 的复选框出现在计划概要的底部。

我们很高兴这个,我们让每一位私人仓库计划的客户免费试用三个月。
如果你有一个Docker Hub 账户并且从来没有试过Docker Cloud,别担心,相同的登录凭证在Docker Cloud同样可用。原生的集成保证你的Docker Hub 仓库能在 Docker Cloud 的“Repositories” 部分展示。私有仓库计划提供5个私有仓库,每个月 $7 的服务已经可以在Docker Cloud 上享受了。
专注docker安全:Security Scanning的更多相关文章
- Spring Boot2.0:使用Docker部署Spring Boot
一.Spring Boot项目添加 Docker 支持1.在pom.xml中添加 Docker 构建插件 <plugins> <!-- Docker maven plugin --& ...
- springboot整合docker部署(两种构建Docker镜像方式)--2019-3-5转
原文:https://www.cnblogs.com/shamo89/p/9201513.html 项目结构 package hello; import org.springframework.boo ...
- springboot整合docker部署(两种构建Docker镜像方式)
项目结构 package hello; import org.springframework.boot.SpringApplication; import org.springframework.bo ...
- 【云计算】实战-五个Docker监控工具的对比
[实战]五个Docker监控工具的对比 阅读目录 Docker Stats命令 CAdvisor Scout Data Dog Sensu Monitoring Framework 总结 这篇文章作者 ...
- docker监控
[编者的话]这篇文章作者是Usman,他是服务器和基础架构工程师,有非常丰富的分布式构建经验.该篇文章主要分析评估了五种Docker监控工具,包括免费的和不免费的:Docker Stats.CAdvi ...
- docker之DockerSwarm的了解
这次一起了解下docker Swarm,什么是dockerSwarm. 什么是docker Swarm 产品背景 使用docker的流程,ssh到一台服务器,运行docker命令来运行本机的docke ...
- Spring Boot Security配置教程
1.简介 在本文中,我们将了解Spring Boot对spring Security的支持. 简而言之,我们将专注于默认Security配置以及如何在需要时禁用或自定义它. 2.默认Security设 ...
- CNCF LandScape Summary
CNCF Cloud Native Interactive Landscape 1. App Definition and Development 1. Database Vitess:itess i ...
- BlackArch-Tools
BlackArch-Tools 简介 安装在ArchLinux之上添加存储库从blackarch存储库安装工具替代安装方法BlackArch Linux Complete Tools List 简介 ...
随机推荐
- php 读取文件的几种方法
文件操作的三个步骤,打开,操作,关闭.$fopen=fopen(路径,方式),fwrite($fopen,写入的字符串);fclose($fopen). 其中打开方式有如下几种方式: 模式 描述 r ...
- C# HttpWebRequest提交数据方式浅析
C# HttpWebRequest提交数据方式学习之前我们先来看看什么是HttpWebRequest,它是 .net 基类库中的一个类,在命名空间 System.Net 下面,用来使用户通过HTTP协 ...
- git 命令的学习
我们在安装好gitlab 之后就是怎么使用它了,这里我选择http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b806 ...
- 【转】变量的声明和定义,从C到编译原理到C++,再到Java
基础学了太久,时间一长有些东西就可能记得不太清楚,俗话说得好,"好记性不如烂笔头",所以把基础中的基础-变量的声明和定义,从C到编译原理到C++,再到Java用烂笔头记录下来 最早 ...
- 【BZOJ 3545】【ONTAK 2010】Peaks & 【BZOJ 3551】【ONTAK 2010】Peaks加强版 Kruskal重构树
sunshine的A题我竟然调了一周!!! 把循环dfs改成一个dfs就可以,,,我也不知道为什么这样就不会RE,但它却是A了,,, 这周我一直在调这个题,总结一下智障错误: 1.倍增的范围设成了n而 ...
- .net架构设计读书笔记--第二章 设计体系结构
第五节 探索领域架构 一.领域驱动设计的价值与意义 最初在java中使用,.net要晚些才引入.领域驱动设计出现之初的争议.一个向导,少走弯路 1. 我们真的需要DDD吗? DDD并不适用于每个软 ...
- 进化策略-python实现
ESIndividual.py import numpy as np import ObjFunction class ESIndividual: ''' individual of evolutio ...
- BZOJ4196 软件包管理器
Description Linux用户和OSX用户一定对软件包管理器不会陌生. 通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖 ...
- [NOIP2008] 提高组 洛谷P1155 双栈排序
题目描述 Tom最近在研究一个有趣的排序问题.如图所示,通过2个栈S1和S2,Tom希望借助以下4种操作实现将输入序列升序排序. 操作a 如果输入序列不为空,将第一个元素压入栈S1 操作b 如果栈S1 ...
- android:sharedUserId 获取系统权限
最近在做的项目,有好大一部分都用到这个权限,修改系统时间啊,调用隐藏方法啊,系统关机重启啊,静默安装升级卸载应用等等,刚开始的时候,直接添加权限,运行就报错,无论模拟器还是真机,在logcat中总会得 ...