什么是容器安全性,您如何提升自己的安全性?

admin 2022年10月13日01:17:26评论37 views字数 2640阅读8分48秒阅读模式

什么是容器安全性,您如何提升自己的安全性?


容器无疑已成为部署应用程序的流行方式。这很棒,因为与部署到虚拟机相比,它们具有大量优势。其中一些优点包括便携、不可变和轻量级。您可以控制运行服务的容器内部的内容,这可以产生清晰、可审计的跟踪。
对于安全专业人员来说,这使您的工作更轻松,因为您了解正在发生的事情。保护容器并不可怕,但肯定有工作要做。
容器安全应该关注什么?
于容器安全,您需要记住的第一件事是容器仍然只是运行软件。他们仍然运行某人编写的代码,而且通常是其他人编写的。 
您想从查看构成容器映像的部分开始。您需要确保所有东西实际上都需要在那里,并且您没有任何额外的东西可能会导致未来出现问题。接下来,查看实际运行容器的内容。容器编排器有需要查看和适当锁定的部分。如果容器容易受到您不知道的东西的攻击,这将防止攻击者进入您的网络太远。 
虽然容器与虚拟机不同,但可以分析它们的漏洞并以许多相同的方式进行保护。在运行时寻找东西以确保软件安全的工具存在重叠。在容器部署之前寻找漏洞的工具也存在重叠。 
因此,无论您的情况如何,都有很多工具和供应商可以更轻松地保护您的容器。有一些东西可以帮助您监视您的系统。这有助于确保作为安全专业人员,您可以做好自己的工作并做好。

获得容器安全性提升


现在我们来了解固定容器的具体细节。首先查看正在构建的容器映像中的内容。这意味着了解您开始的任何基本映像,然后了解您的软件是如何放置在其中的。


容器由不同的层组成。每一层都来自某个地方,了解它们的构建方式和内容将确保您能够了解它们的安全性。同样,有一些工具可以帮助完成这项工作,因为手动执行此操作将是一项艰巨的任务。

使用容器镜像


帮助确保图像正确的一种方法是对容器图像进行签名并确保这些图像来自受信任的来源。这建立了一个信任系统,构建的内容可以正确部署到您的容器编排器。通过只允许已知的良好签名,您可以确保系统构建的内容与交付到生产系统中的内容相同。这样,攻击者就无法在您不知情的情况下更改图像并将其分发到您的系统内部。至少,您会意识到系统的变化。

正确的另一部分是您开始的基本图像。尽可能使用 distroless 映像会有所帮助。许多基础镜像使用标准的 Linux 发行版,如 Ubuntu、Debian 或 Fedora。这意味着它们带有许多您可以在普通 Linux 机器上找到的标准工具。对于容器,这通常远远超过运行特定软件所需的量。Distroless 镜像试图限制作为图像一部分的辅助部件的数量。
例如,他们可能会从系统中删除一个 shell(即 bash 或 PowerShell)。这将限制攻击在被利用的图像内部旋转的能力。许多攻击使用其他类型的脚本或工具,这些脚本或工具依赖于存在的 shell 来实际执行攻击者的代码。这使得攻击者的工作变得更加困难,并且可能会减慢他们的速度,让他们放弃。

验证依赖项


了解不同的层意味着您了解将您正在运行的代码位带给您的供应链。这有助于确保您免受供应链攻击,这些攻击多年来一直在增加。如果您不了解软件物料清单(SBOM) 是什么,这将是一个很好的起点。尝试并确保您的依赖项具有这些,以便您知道您的软件供应链是安全的。

查看容器不同层的扫描仪非常重要。他们可以发现许多您甚至可能没有意识到的问题和漏洞。扫描程序多年来一直在研究软件依赖关系,将其扩展到容器是很自然的。这也提醒您容器通常有许多不同的部分,您应该了解软件旁边的内容。 
另一个不时发生的错误是不小心忘记了测试或开发依赖项。始终确保在构建将要投入生产的映像时,在发布映像之前删除任何开发或测试库或数据。开发和测试库尤其有很多已知问题,这些问题在本地可能不是问题,但可能会使您不必要地暴露于一些有害的攻击。减轻这种暴露就像防止这种数据或库泄漏到您的生产环境中一样容易。

确保安全运行时


现在您的容器已准备就绪,并且您已确保这是您要运行的软件。现在让我们专注于实际运行该软件。在容器环境中正确处理的第一件事就是正确隔离所有内容。这意味着要有良好的网络策略来确保已知容器与已知端点通信。甚至可以确保您遵循零信任政策。了解网络数据的流动方式和流向对于在威胁成为严重问题之前检测到它们至关重要。

一些容易实现的目标是你的秘密。确保这些秘密不在纯文本配置文件中,而是实际上使用了编排器的秘密机制。确保这些秘密实际上存储为正在运行的容器上的文件而不是环境变量也很重要。这样,如果攻击者确实突破了容器,他们就不能只在环境变量中找到您的秘密。相反,他们需要找到文件源。同样,这是一种减慢攻击者速度的方法,让他们为系统中的重要信息工作,而不是仅仅将信息交给他们。 
接下来要看的是在容器上锁定 root。这确保了如果容器受到威胁,它们无法逃脱您的容器并实际接管容器运行所在的机器。非常小心你的容器的权限是限制攻击者控制任何东西的能力的好方法。

遵循良好的安全策略


接下来,确保您为容器编排器遵循良好的安全策略。美国军方推荐了如何保护您的 Kubernetes 集群,并提供了可遵循的良好实践。例如,除了以非 root 身份运行之外,他们还建议:

  • 确保您拥有不可变的文件系统
  • 加密你的 etcd 数据库
  • 创建显式网络拒绝策略
  • 启用审核日志记录
这个列表只是一个开始。关于如何强化容器编排器有许多不同的指南。一些来自政府,一些来自私营公司。尝试并查看一些内容,以大致了解哪些是确保协调器安全的良好做法。

工具

考虑到所有这些因素,重要的是找到工具以确保在构建系统时一切都安全。有一些工具可以监视进入系统的所有内容,并在您需要采取行动时提醒您。尽早获得这些工具可以帮助您查明导致需要解决的问题的变化。但是,如果您的系统已经成熟,工具可以帮助您解决库存问题。他们还可以帮助您找出现在而不是以后需要修复的问题。
其他帮助您在容器在系统内部运行时持续监控它们的工具也很重要。发现异常或新的、意外的行为会创建一个早期检测离子系统。这可确保您越早发现攻击,您和您的客户的结果就越好。 
我希望这篇博文能够帮助您了解容器安全的含义以及如何提高容器的安全性。保护您的容器并不可怕,重要的是了解风险。 
与所有风险一样,有一些方法可以减轻它们。希望这篇博文能够展示一些风险,以及如何减轻这些风险。 
使用容器安全工具来帮助缓解这种情况。他们可以提供帮助并确保您的系统从一开始就是安全的,即使您的系统已经成熟,他们也会盘点正在发生的事情。确保您在正确的位置拥有正确的工具以将您带到您需要的地方总是很好的。

原文始发于微信公众号(网络研究院):什么是容器安全性,您如何提升自己的安全性?

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年10月13日01:17:26
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   什么是容器安全性,您如何提升自己的安全性?http://cn-sec.com/archives/1344137.html

发表评论

匿名网友 填写信息