当前位置: 首页 > 科技观察

要避免的6个常见容器安全错误

时间:2023-03-21 12:19:34 科技观察

随着越来越多的组织将其数据和工作负载迁移到云端,许多组织依赖容器来封装代码,并且应用程序在从一个计算环境迁移到另一个计算环境时可靠地运行。克莱姆森大学遗传学和生物化学系的云架构师ColeMcKnight说,容器化被誉为一种以安全方式部署应用程序和服务的强大技术。McKnight说,Docker和Singularity等容器引擎提供了一种为给定应用程序实施和分发最佳实践安全策略的方法,而不是依赖个人用户配置安全安装。“容器编排平台,如Kubernetes、Mesos或DockerSwarm,集成了专门为部署和执行容器而设计的安全机制,”McKnight说。“结果是一个易于配置的生态系统,可用于开发和部署容器。”McKnight说,虽然这些技术抽象出交付安全应用程序和服务的传统复杂性,但一些开发团队将安全可能性解释为一种保证。问题是,容器实施并非万无一失,团队在使用它们时犯下的错误仍然会产生而不是解决安全问题。1.过于关注容器本身“实施安全容器时最常见的错误是只关注容器本身,”McKnight说。他说,维护图像安全的最佳实践很重要,但开发人员通常只关注图像的安全性,而不管执行环境如何。“容器内的任何安全措施都无法保护它免受宿主的侵害,”麦克奈特说。“每台托管容器引擎的计算机都必须在每一层都受到保护,以防止任何传统上可利用的漏洞。”容器引擎和容器编排平台(如果适用)必须配置为正确使用集成容器安全机制,McKnight说。“因此,容器安全需要从主机的操作系统和网络开始,”他说。2.假设代码库是安全的独立网络安全顾问TonyAsher表示,在部署容器时,一些组织错误地包含代码库并认为它们是安全的。“这包括开发工具包中的库,”Asher说。“更重要的是,第三方库通常直接导入以加快开发速度。“安全问题是指这些应用程序的代码库中存在漏洞的可能性,”Asher说。“编译应用程序并将它们发布到生产容器中可能会通过漏洞利用带来严重的风险。”为解决这个问题,Asher建议公司在考虑导入第三方库时,将库限制为满足应用程序容器成功标准、扫描代码漏洞并应用安全审查流程所需的库。组织还需要制定正式的安全架构审查流程。“这个过程应该包括由一组人审查容器的风险标准,”Asher说。这提供了问责制,并有助于确保考虑到风险。3.不给容器必要的特权风险投资公司ClearSky的执行合伙人JayLeek说,给容器太多的特权很常见,攻击者可以滥用这些特权来利用容器不应该访问但确实可以访问的资源访问。这里应该应用最小权限原则,并执行运行时行为监控,以确保检测到任何不必要的应用程序权限滥用。Leek说。一种常见的做法是在执行环境中运行具有权限的容器,McKnight说:“根据主机的软件堆栈,这可能意味着不同的事情。”容器上不必要的特权会导致问题升级,不仅会导致容器受损,而且可能还会导致主机受损。“正如容器内部的安全性无法保护它不受主机的影响一样,主机内部的安全性也无法保护它不被特权利用edcontainer。”容器的设计应确保它们不会以其他方式在主机环境中被利用的方式运行。它提供了不必要的特权。”麦克奈特说。McKnight说,当需要特权时,应该小心谨慎地给予特权。“最佳做法是避免在托管环境中为容器提供清除权限。4.过度暴露容器同样,需要在执行时暴露于公共网络的容器需要以相同的思维方式进行设计。战略。在实施容器本身时需要考虑很多,”McKnight说。“容器是通过一系列在镜像规范中定义的命令构建的,并在构建镜像时以root权限运行,”McKnight说。“开发人员在部署和执行容器时经常错误地保留这些权限。“如果在运行时在具有root权限的容器内运行进程,则该容器内的数据和软件将受到损害。要解决此问题,要在容器中运行的命令应由没有权限的非root用户运行.运行(如果可能)以避免容器中的任何特权升级。在网络方面,还需要仔细考虑容器的数据和进程如何暴露给其他实体。网络安全开始,”McKnight说。“必须检查容器与外部卷、网络和进程之间的任何交互。5.未能正确审查图像组织在部署容器时经常忽视的另一个因素是它们所基于的图像。团队经常犯错误,将另一方开发的图像集成到他们的解决方案中。以前,它没有得到适当的审查。“在从公共注册表部署它们或将它们用作基础图像之前,扫描容器中的恶意软件和漏洞。McKnight说,组织还应该让经验丰富的开发人员彻底检查图像以发现漏洞。“假设推送到公共注册表的图像是安全的是非常危险的,特别是当从这些图像构建额外的图像时。6.不尊重不可变图像的原则不可变图像是不可变的,Asher指出。“这是原则Docker、Kubernetes和其他容器解决方案,”他说。“在互联网和数据上部署系统(互联网是一种不受信任的媒介),需要创建一个流程来确保完整性。“不可变图像具有可预测、适销对路和提供自动恢复等优势。它们还提供完整性,Asher说这是安全的核心目的之一。”当生产容器不遵循不可变原则时,应用程序将能够连接到它们并进行更改,”Asher说。“这种行为会带来多种安全隐患。具体来说,它会损害容器的完整性。“最令人担忧的风险之一是恶意行为者会修改容器以包含恶意代码。这可能会对公司产生重大影响,”Asher说。监控容器的完整性可以大大降低这种风险。“你需要改进和纠正部署管道,以防止对生产容器进行更改,”Asher说。“确保你在QA测试环境中进行更改,确保这些更改得到批准,然后部署一个新的不可变图像来替换旧图像。”