将Helm Chart安全缓解说明添加到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表示当前文件的内容表示安全缓解信息。默认值:假 |
真/假 |
mitigationExternalFileUrl |
如果设置为true,则该参数指向外部托管的urlsecurity-mitigation.yaml |
url |
应对:cf |
正在为其提供缓解说明的特殊环境企业名单。 | CVE-YYYY-NNNN |
应对:cf: affectedPackageUri |
指示为其提供安全缓解的包Uri。目前我们只支持两个包uri: 码头工人 |
uri |
应对:cf: affectedVersions |
SemVer约束从聪明人/ semver是用在Chart.yamlfor kubeVersion指定应该使用缓解信息的版本。 |
示例:“> 1.2.x |
应对:cf:描述 |
CVE级别的缓解说明。 | 文本描述 |
下一个步骤
如果您是一个图表维护者,请了解更多有关如何做到这一点的信息激活UI中的缓解说明功能.然后填写security-mitigation.yaml文件。如有其他问题,请发电子邮件至chartcenter@www.si-fil.com。
