2

实现容器安全管理的优秀实践

 1 year ago
source link: https://netsecurity.51cto.com/article/707011.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
实现容器安全管理的优秀实践-51CTO.COM
实现容器安全管理的优秀实践
作者:安全牛 2022-04-20 12:08:17
本文列举了管理容器漏洞风险的优秀实践和相关工具,如果企业采用这些工具、实施优秀实践,同时遵循行业优秀指导,就有可能在容器安全使用方面更接近理想状态。

828377d833c1179cd2499212fb7822d3f90a13.jpg

随着Docker、Kubernetes技术的成熟,容器也成为时下最火的开发理念之一。它是云原生概念的重要组成部分,正迅速成为云原生生态系统中部署计算和工作负载的不二选择。云原生计算基金会(CNCF)最新的云原生调查显示,96%的组织在积极使用或评估容器和Kubernetes。众所周知,容器作为应用的包装形式,能够以更轻量化、更小开销的方式运行,具有可移植性、一致性和效率高等优势特点,但其并非没有安全问题。

确保容器安全是一项复杂的活动,就像网络安全一样,需要结合人员、流程和技术,其中人员安全是最关键的。对于那些希望转向使用容器的组织来说,应提升现有员工的技能,并引入拥有必要技能的其他人才,确保云原生运营模式的安全性。以下列举了管理容器漏洞风险的最佳实践和相关工具,如果企业采用这些工具、实施最佳实践,同时遵循行业最佳指导,就有可能在容器安全使用方面更接近理想状态。

将容器安全与云安全密切关联

首先有必要了解容器在云环境中的作用和关系。云原生生态系统通常包括事关云安全的云、集群、容器和代码。每一层建立在下一层之上,任何一层不安全都会影响其下面的层,比如部署在不安全容器上的应用程序,会受到容器的影响。云端、Kubernetes集群或应用程序本身的漏洞都可能带来各自的问题。鉴于容器存在的状态(比如作为镜像或运行中的容器),以及可能放置在容器中的层和代码比较多,确保容器安全绝非易事。CNCF的白皮书《云原生安全》可以帮助读者更好地了解云原生应用程序、容器及其生命周期。

加强容器可移植性防护

虽然容器最显著的优势特点之一是可移植性,但这也是缺点。如果漏洞混入容器后分发,无异于将漏洞分发给使用该镜像的所有人,还可能将其运行的任何环境置于险境,因为它们通常在多租户架构中运行。这意味着,广泛可用和共享的容器镜像与其他问题(比如开源代码、IaC)一样令人担忧,所有这些都可能带来漏洞。此外,容器常常由外部开发人员而不是传统的IT团队构建,然后再分发给企业。在此背景下,实施最佳的安全编程和容器安全实践是一个好的开端。

及时扫描容器是否存在漏洞

作为安全左移潮流的一部分,应在管道部署活动期间扫描容器。目前,一些基本的做法是扫描持续集成/持续部署(CI/CD)管道中的容器,以防止漏洞进入到运行时生产环境。发现管道中容器存在的漏洞,可防止漏洞被引入到生产环境并被不法分子利用。相比修复生产环境中的漏洞,这么做效率更高、风险更小、成本更低。市面上既有Anchore和Trivvy之类的开源工具,也有Snyk等主流安全厂商提供的商业工具。

不过,扫描管道中的容器镜像并非灵丹妙药。因为容器镜像常常存储在存储库中,而且一旦部署到生产环境就处于运行状态,所以扫描这两种环境下的镜像才是关键。新漏洞经常出现,因此如果仅仅从存储库提取之前扫描过的镜像、不重新扫描就部署,可能会忽视自上次扫描以来已发布的新漏洞。生产环境中存在的漏洞同样如此,如果企业的访问控制机制很糟糕,对处于运行状态的容器进行了更改,就很容易出现漏洞,因此需要识别运行中容器存在的漏洞,并通知相应员工做出适当的响应,以便调查、干预。

使用容器镜像签名

保护容器工作负载的另一个关键活动是镜像签名。大家都熟悉美国中情局(CIA)的网络安全三要素:机密性、完整性和可用性。容器镜像签名主要是确保容器镜像的完整性。它可以确保所使用的容器镜像没有被篡改,值得信任。这可以在注册库中完成,也可以作为DevOps工作流程的一部分来完成。

在容器镜像签名方面,有几种工具可选。最值得注意的工具之一是Cosign,它支持镜像签名、验证和存储,还支持各种选项,比如硬件、密钥管理服务(KMS)、自带的公钥基础设施(PKI)等。如今,市面上也出现了无密钥签名选项,受到Chainguard等创新团队的追捧。无密钥签名实际上支持使用短期密钥的功能,这种密钥只在签名活动期间有效,与身份相关联。

为容器镜像开列软件组件清单

容器同样存在软件供应链安全问题,许多组织纷纷为容器镜像开列软件材料清单(Software Bills Of Materials,简称“SBOM”)。Anchore的Syft工具就是个典例。Syft让组织可以为容器镜像开列SBOM,作为CI/CD工作流程的一部分,帮助组织深入了解在容器生态系统中运行的软件,并随时做好准备以应对可能发生的安全事件。

过去很难获得这样的高可见性,但现在情况有所不同,许多组织更关注软件供应链安全,并遵循美国白宫和相关政府机构的指导,比如《网络安全行政令》。同时,关注安全开发实践的呼声越来越高,NIST等组织发布了更新版的《安全软件开发框架》(SSDF),该框架要求组织在存档和保护软件版本等活动中使用SBOM。在此背景下,软件供应链中组件具有了高可见性。

除了为容器镜像开列SBOM外,企业还要做好证明,NIST在《软件供应链安全指南》中就有相应的规定。NIST要求做好向SSDF证明的工作,这要求使用SBOM。还有进一步执行SBOM的创新方案(比如Syft),使用in-toto规范支持SBOM证明。这种证明方法让签名者可以证明SBOM准确地表示容器镜像的内容。

参考链接:https://www.csoonline.com/article/3656702/managing-container-vulnerability-risks-tools-and-best-practices.html


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK