题图摄于黄花水长城
阅读导航
一、Harbor v1.2 镜像仓库发布镜像扫描功能
二、镜像扫描功能原理
三、镜像扫描演示视频
四、Harbor征文活动送T-Shirt等纪念品,含平板电脑、Kindle等大奖
五、Kubernetes用户大会Harbor管理镜像的分享(有福利)
(本文发布时,Harbor在Github上已获得2828颗星:https://github.com/vmware/harbor)
开源企业级镜像仓库 Harbor v1.2 新增了镜像漏洞扫描的功能,可以帮助用户发现容器镜像中的安全漏洞,及时采取防范措施。该功能推出后,很受用户的欢迎。本文介绍这个功能的原理和使用方式,并附演示视频。更详细的使用说明,可参考 Harbor 的用户文档:
https://github.com/vmware/harbor/blob/master/docs/user_guide.md
容器镜像本质上是一系列静态文件的集合,也是容器应用运行的时候可见的文件系统。镜像扫描就是遍历所有镜像中的文件系统,逐个检查软件包(Package)是否包含安全漏洞。这个过程有点像我们电脑里面的扫病毒软件做的事情,把电脑的所有文件进行分析,和已知病毒数据库的病毒指纹特征做对比,从而发现病毒的踪迹。
集成了漏洞扫描之后的Harbor架构图
在 Harbor 中,我们集成了开源项目 Clair 的扫描功能,可从公开的 CVE 字典库下载漏洞资料。CVE 是 Common Vulnerabilities and Exposures 的缩写,由一些机构自愿参与维护的软件安全漏洞标识,记录已知的漏洞标准描述及相关信息,公众可以免费获取和使用这些信息。全球共有77个机构参与维护不同软件的 CVE 库,例如:VMware 维护着 VMware 产品的 CVE 库,红帽维护着Linux 上的 CVE 等等。容器镜像基本上涉及的是 Linux 操作系统上的软件,因此镜像扫描需要参考 Linux 相关的 CVE 库,目前 Harbor(Clair)使用的CVE 源有:
1
Debian Security Bug Tracker
2
Ubuntu CVE Tracker
3
RedHat Security Data
4
Oracle Linux Security Data
5
Alpine SecDB
在 Harbor 1.2 中,每个镜像的菜单可以启动对该镜像的扫描任务。任务结束后,从界面上看到彩色的结果条提示镜像的漏洞概况。红、橙、黄和绿四种颜色分别代表漏洞不同的严重程度。
如果把鼠标移到结果条上,会显示多少个软件包有已知的漏洞,以及它们的级别是怎样的,非常直观明了。
点击镜像的tag,还能列出漏洞的详细名称和各种信息。
为了方便操作以及减少对前台 Registry 的影响,Harbor 可以设置每天定时(如晚上11点)启动全局扫描的任务。
用户还可以设定漏洞阀值 (threshold),如果镜像的漏洞级别超过了这个阀值,镜像将无法下载。例如,假设定义了“高”的阀值,如果发现某镜像内含有危险程度为“高”的安全漏洞,将拒绝所有对该镜像的拉取请求。注:阀值功能已在 vSphere Integrated Containers 1.2 中实现,开源版的 Harbor 将在 v1.3 中提供界面设置能力。
Harbor的镜像扫描功能需要在安装时增加 --with-clair 选项,详细步骤可以参考github上的文档:
https://github.com/vmware/harbor/blob/master/docs/installation_guide.md
下面视频由 Harbor 核心开发工程师邹佳录制,演示了镜像漏洞扫描的功能。