将舵图安全缓解说明添加到ChartCenter

更新:截至2021年5月1日- ChartCenter中央存储库已被淘汰,所有功能已弃用。有关中心日落的更多信息,请阅读中心弃用博客文章
今年早些时候,我们推出了ChartCenter,这是我们最新的社区平台,帮助Kubernetes开发者找到舵图.这种新的免费Helm中央存储库在构建时考虑了图表的不可变性——这意味着即使原始数据源宕机,赫尔姆图表的每个版本和ChartCenter中的每个版本都将始终可用。随着HelmHub被弃用,不可变性变得尤为重要——许多可以在那里找到的图表和版本继续存在于ChartCenter上,每个版本都包含丰富的元数据舵图依赖关系,应用程序版本,Helm版本,以及有多少其他图表正在使用此版本。
ChartCenter的主要功能之一是免费漏洞信息.对于每个图表版本,ChartCenter都使用JFrog x光来扫描漏洞,然后计算CVE得分高,中,低,和未知使用CVSS 2评级。
ChartCenter中显示的漏洞
CVE(常见漏洞和暴露)列表是由国土安全部(DHS)网络安全与信息保障办公室(OCSIA)赞助的已报告漏洞的公开列表。许多网络安全公司使用CVE以及其他更专有的数据库来帮助组织清楚地了解他们的问题。CVE通过为给定的漏洞或暴露创建标准化标识符,使跨组织共享关于已知漏洞的信息更加容易。CVE使组织能够为评估其安全工具的覆盖率设置基线。CVE的通用标识符帮助组织了解每个工具涵盖了什么,以及它们在多大程度上适合您的组织。
通过导航到每个图表页面上的安全选项卡,用户可以看到漏洞的详细信息,包括CVE ID、描述、组件和问题所在的图像。

缓解笔记
当我们测试这个安全特性时,我们从不同的社区成员那里得到了反馈,这些漏洞中有许多是在图表维护者无法控制的第三方组件中,如果我们让维护者能够向最终用户提供一些cve实际影响应用程序的上下文,那就更好了。
为了达到正确的平衡,并为图表维护者和用户提供工具来授权他们的决策,我们创建了一个功能,我们称之为“缓解笔记”。虽然许多工具如ClaireOS和DockerHub也免费提供容器扫描,但JFrog的ChartCenter是第一个在一个视图中轻松查看所有内容的地方,并在UI上提供这些信息,使用户能够通过多个版本的图表查看这些问题。这让我们意识到,正确的做法是为组织提供一些方法,让他们与用户就图表的安全性进行交流。
这个问题促使我们为执掌图表维护人员,使他们能够直接在ChartCenter UI上吸引用户。这个解决方案还需要继续向图表用户提供关于整个应用程序安全性的透明度。保持这种平衡是一场有趣的冒险。我们首先向公众持续提供所有中等、低和未知的CVE详细信息,但只有社区用户注册并登录到我们的中心,才能访问高漏洞数据。
提供维护说明
为cve提供缓解可以使用security-mitigation.yaml文件。一旦用户向我们提供了这些信息,就会在安全选项卡上的每个CVE旁边出现一个图标。

当你点击图标时,你会看到这样的提示:

缓解及谘询例子
如果你是一个刚开始为用户提供这类建议的开发人员,只要知道有很多公司可以提供这样的例子。许多这样的公司都有自己的减排流程安全漏洞在他们的代码中,有时他们在他们的网站上建立一个专门的页面或门户来提供这些信息。下面是一些使用公司标准缓解建议来处理安全风险的企业的例子,以及对其策略的简要概述。这些示例可以用于您自己的安全缓解。
Drupal: Drupal的安全团队管理安全咨询公告,通知网站所有者Drupal核心或贡献的项目中报告的安全问题。他们的建议还为开发人员提供了补救该问题所需的步骤。了解更多Drupal的安全咨询过程.
微软:微软有一个可利用性指数:微软评估与微软安全更新相关的每个重要或严重程度的漏洞的潜在可利用性,然后将可利用性信息作为每月微软安全更新详细信息的一部分发布。如果在发布详细信息后,微软认为可利用性指数评估需要进行更改,它将更改评估并通过技术安全通知通知客户。你可以看到这是什么样子这个例子。
ChartCenter缓解YAML
一旦YAML文件填写完毕,您就可以将该文件包含在Helm图表的下一个版本中,我们将把您的缓解说明添加到ChartCenter UI中。或者,你也可以给我们发邮件security-mitigation.yaml只要你能证明你是Helm Chart的所有者(即你的电子邮件包含在图表的存储库信息中),你就可以直接文件。
安全缓解规范支持3个用例:
- 生产者提供总体和/或特定CVE缓解信息的能力。
- 生产者能够将安全性指向外部托管在wiki或网页上的缓解网站。
- 生产者指向外部托管的能力
security-mitigation.yaml文件。

| 场 | 描述 | 类型 |
总结 |
适用于所有图表版本的整体缓解摘要 | 文本 |
securityAdvisoryUrl |
链接指向外部托管的缓解信息,如wiki、网页等。 | url |
useMitigationExternalFile |
真正的意思security-mitigation.yaml托管在其他地方。False表示当前文件的内容表示安全缓解信息。默认值:false |
真/假 |
mitigationExternalFileUrl |
如果设置为true,则此参数指向外部托管的urlsecurity-mitigation.yaml |
url |
应对:cf |
正在为其提供缓解说明的cve名单。 | CVE-YYYY-NNNN |
缓解措施:cves: affectedPackageUri |
指示为其提供安全缓解措施的包Uri。目前我们只支持两个包uri: 码头工人 |
uri |
缓解:cves: affectedVersions |
SemVer约束聪明人/ semver用于Chart.yaml用于kubeVersion,指定哪些版本应该使用缓解信息。 |
例如:“> 1.2.x .” |
缓解措施:cves:描述 |
CVE级别的缓解说明。 | 文本描述 |
下一个步骤
如果您是一名图表维护者,请了解更多有关如何做到这一点的信息在我们的用户界面中激活缓解提示功能.然后填写security-mitigation.yaml文件。如有任何其他问题,请电邮至chartcenter@m.si-fil.com。
