ChartCenter ——为您的K8s之旅保驾护航

一、背景

Kubernetes(k8s)是一个基于容器技术的分布式架构领先方案,为容器化应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。近些年来,Kubernetes迅速成为了容器编排的事实上的开源标准,能够实现应用程序部署流程的标准化和重用,提高了开发人员的生产力,并加快了云原生应用程序的采用。

当然,随着Kubernetes应用的复杂度越来越高,大家也需要新的工具来支持快速可靠的容器应用集群的配置、部署与管理工作。Helm就是这样的工具,也是CNCF官方推荐的项目,它为开发人员提供了将应用程序打包为Helm Chart的能力。通过一个命令或单击几下鼠标,用户就可以基于Helm Chart为开发测试或生产环境安装Kubernetes应用程序。大多数流行的CI/CD工具集都可以通过Helm Chart获得。

在我们之前的文章《重大福利,JFrog发布面向社区的免费安全的HelmChart中央存储库ChartCenter》中,我们介绍了JFrog发布的ChartCenter(https://chartcenter.io/),这是一个面向社区以及开发人员的免费的公共 Helm Charts中央存储库。 除了提供Helm Charts的公共服务之外,ChartCenter还能够向使用者展示每个Helm Chart部署的容器镜像中存在哪些已知的安全漏洞,从而揭示这些公共Chart中隐藏的风险,并提供减轻这些风险的建议。

二、Kubernetes应用中的安全漏洞

K8s应用作为一个整体,对外提供统一的服务,而Helm Chart为容器化集群提供了一个整体的封装,包含了其所有的容器镜像、部署配置等等内容。通常,K8s应用的Helm Chart都引用了多个Docker镜像,即包括应用本身,也可以是应用运行所需的init容器和sidecar容器。而每一个镜像,其包含的镜像层或依赖镜像,都可能引入安全风险。如下图所示:


在美国国家漏洞数据库(NVD)中,通过公共常见漏洞和暴露(CVE)列表展示了很多容器镜像中发现的安全漏洞。随着容器和K8s的广泛引用,我们发现,容器相关的漏洞和风险不但没有下降,在NVD上注册的CVE的数量和严重性反而急剧地增加,如下图所示:


(图片来源:美国国家标准技术研究院)

如何才能知道你的Kubernetes应用及Helm Chart中包含了哪些镜像,以及这些镜像是否包含已知的安全漏洞?ChartCenter为您提供了便捷的方法。

三、ChartCenter展示CVE

JFrog的ChartCenter为社区提供了一个便利的途径,可以通过UI在众多公共存储库提供的数千个Helm Chart中进行搜索。但是,ChartCenter不仅仅是这些Chart的目录,而是由Artifactory提供支持,是一个包含了不可变版本的Helm Chart的存储库。用户的Helm CLI可以从这个免费的单一可信源中获取所需的公共Helm Chart。


除了提供不可变版本的Helm Chart,ChartCenter还基于JFrog Xray提供的深度递归安全扫描能力,对Helm Chart依赖的所有容器镜像进行漏洞分析,并在UI中显示了与这些镜像相关的CVE。这样,用户在使用和部署任何K8s应用之前,都可以轻松了解并评估其安全风险。


ChartCenter默认显示中、低和未知严重性的漏洞详细信息,而由维护人员控制为社区提供的高危严重性漏洞信息的详细程度。

四、减轻风险说明

虽然让用户知道其K8s应用中存在安全漏洞是件好事,但这还不是全部,大家还希望能够了解如何减轻这些风险。比如,可以通过引用另一个组件来减轻某一依赖项的安全风险;可以通过建议的配置来消除危险;也可能您的应用并没有使用到易受攻击的功能,因此发现的风险并不是一个真正的威胁。

我们相信,在ChartCenter公开您的Helm Chart,也意味着您也可以公开发表自己的看法。因此,JFrog为Helm Chart的安全减轻说明提出了新规范,并邀请大家来提供内容。

为鼓励大家的参与,在Helm

Chart的维护者将至少一个高危级别CVE的减轻说明提交给ChartCenter之前,ChartCenter不会显示该Chart的高危级别的安全漏洞。

这使得Helm Chart的作者可以在Chart加上有关CVE的注释,从而使得用户知道是否以及何时需要关注这些漏洞,或者是否可以减轻相关的风险。它可以帮助维护者在分析CVE时说“是,但是。。。”,并与Chart的用户进行相应的交流。

五、如何注释Helm Charts

为了提供安全减轻说明,ChartCenter里的Helm Charts包含了一个security-mitigation.yaml文件,该文件可以包含以下任何或所有信息:

⭐Chart使用者的总体(摘要)减轻信息

⭐每个CVE,每个受影响的组件和版本的减轻信息

⭐在Wiki或网页上外部托管的减轻信息的网站URL

⭐外部托管的减轻文件的URL

例如,以下的security-mitigation.yaml文件为Helm Chart rimusz/security-sample-chart提供了摘要和单独的CVE减轻信息:

schemaVersion: v1

summary: Security mitigation information for this application is tracked by the security-mitigation.yaml file that's part of this Helm chart.

mitigations:

  - cves:

      - CVE-2019-1010022

    affectedPackageUri: helm://rimusz/security-sample-chart

    affectedVersions: <= 0.1.5

    description: This security mitigation information for CVE-2019-10100 applies to the specified affectedVersions of charts.

  - cves:

      - CVE-2019-11888

    affectedPackageUri: docker://docker.io/rimusz/security-sample-app

    affectedVersions: <= 0.1.1

    description: This CVE is applicable for applications running on Windows. This application currently doesn't support Windows OS, hence this CVE does not impact our users.

当您向ChartCenter提供漏洞减轻注释文件时,至少要引用一个高危级别的CVE。该文件将包含在ChartCenter中,并将高危级别CVE的信息提供给Chart的使用者。

该文件由ChartCenter处理,所关联的CVE将显示相应的减轻说明,如下图:


单击图标,可以显示全部的说明,如下图:


六、总结

ChartCenter不但为广大的K8s用户提供了集中的不可变版本Helm Chart的存储、查询和使用能力,还能够展示Chart中依赖的容器镜像所包含的已知安全漏洞。除此之外,ChartCenter提供的风险减轻说明机制,也为Helm Charts的维护者和用户提供了很好的途径,来更好地描述和了解如何减轻Helm Charts的安全风险。

目前,该减轻说明系统还是一个提议,根据社区的反馈,仍会持续修订。有关更多技术细节,请参考我们在GitHub上的规范(https://github.com/jfrog/chartcenter/blob/master/docs/securitymitigationspec.md)。

同时,我们也邀请您尝试通过security-mitigation.yaml来维护您的公共Helm Charts,并提出宝贵意见。欢迎您通过chartcenter@jfrog.com提供反馈。



欢迎观看JFrog杰蛙每周二在线课堂,点击报名:

https://www.bagevent.com/event/6643470

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342