什么是容器安全? 

容器安全性是实现保护容器化应用程序和工作负载的机制/流程的实践. 在当今的云环境中,最大程度地了解容器主机位置等方面是至关重要的, 识别运行或停止的容器, 发现容器主机不符合 独联体基准,并进行脆弱性评估.

什么是容器? 谷歌云 定义了容器 作为运行软件服务所需的轻量级应用程序代码包(与诸如特定版本的编程语言运行时和库等依赖项相结合). 类似于容器编排平台 Kubernetes -有一件大事要做, 自动化供应和启动, 停止, 以及图像的维护.

因为容器编排是通过Kubernetes等工具抽象和自动化的, 它非常适合集成到持续集成/持续部署(CI / CD)生命周期,并且是采用DevOps实践的关键组成部分. 此过程是交付新应用程序或代码更新的有效且可靠的方法. 因此,护栏是必要的,以确保事情不会失控. 从容器的角度来看,我们应该:

  • 维护一个环境中运行的所有容器的可见性(实时的) 
  • 扫描基本映像或黄金映像,以确保新容器中没有出现漏洞
  • 将覆盖范围扩展到运行时, 扫描在容器内运行的进程,以识别和阻止异常/可疑活动

就像任何能提高速度的东西一样, 在这个过程中,我们确实冒着牺牲安全和控制的风险. 这意味着安全团队必须与开发组织中的对应团队携手合作,以确保适当的防护和检查到位.

容器安全性应该尽可能早地在CI / CD管道中实现,以便更快地暴露应用程序风险,并尽可能减少开发过程中的摩擦.

为什么容器安全很重要? 

容器安全性非常重要,因为该技术在云工作负载环境中的操作非常复杂. Security is also important because containers are the foundation upon which so many of today’s public-internet facing applications are built; this leaves them exposed to many potential risks. 那些 数字资产集装箱化的相关风险 是可管理的,可以通过以下方式加以缓解:

  • 将离开解决团队之间的任何沟通或“摩擦”问题, 在最早的构建阶段将安全性引入流程,以帮助在影响最终产品之前捕获任何缺陷或错误配置,这一点非常重要.
  • 保护容器从构建到运行时的安全容器安全性不会随着部署而结束. 由于容器的短暂性,监视在生产环境中运行的容器非常重要. 能够在运行时提供容器的持续可见性和评估的安全解决方案对于识别容器环境中的风险和威胁至关重要.
  • 利用正确的工具:将持续安全和监控集成到容器环境中的正确组合是什么? 如上所述, 与开发人员的计划和进度表进行沟通可以帮助确定在何处以及以何种节奏将安全性集成到容器化构建过程中. 当考虑云供应商提供的安全性和工具与内部团队可以为流程带来的工具和解决方案套件时,这一点尤其重要, 以及这两层安全如何协调工作.

容器安全最佳实践 

现在我们对容器操作有了更多的了解,并了解了它们为什么如此受欢迎, 让我们来看看团队如何将一些最佳实践用于保护这些环境.

运行时安全 

重要的是要实现安全性,而不仅仅是针对稳定状态容器和扫描图像, 而且在容器运行时也是如此. 问题可以而且应该在部署后修复, 因为安全是一个持续的过程,不能在发展中得到充分保证.

定期扫描基础或“黄金”图像 

在CI / CD环境中,漏洞可能随时冒出来——或者可能已经潜伏了好几个月才被发现. 当部署和更新定期发布时, 对于安全团队来说,能够发现他们所能发现的每一个漏洞是至关重要的. 对容器安全程序来说,定期扫描以识别漏洞是必要的. 容器映像扫描通常会引用一个包含公开已知漏洞列表的漏洞利用数据库.

保护代码及其依赖项 

基础设施正变得越来越分散, 更短暂, 并且更依赖于代码而不是物理机器. 这就是为什么监视容器的漏洞在系统健康中起着如此关键的作用. 即使一切都通过了测试, 在进行部署后测试时,仍然会出现问题. 这就是为什么必须在整个CI / CD管道中使用具有一致的安全检查集的解决方案. 这使得团队能够在不延迟部署的情况下纠正错误配置和策略违反.

为容器编排建立护栏 

在DevOps组织中,决定将操作启动到虚拟世界是一个转折点, 容器有很多好处. 如果一个企业打算在基础设施上投资, 最好将其一直保护到应用层,并为如何配置容器设置标准. 实时监视和跟踪关键容器事件有助于优化应用程序性能. 结束这个过程, 利用实时性能监控和分析(如CPU)是一个很好的最佳实践, 内存, 以及网络使用情况——适用于所有正在运行的容器.

在您更广泛的IAM策略中包含容器

像其他云资源一样, 容器和在其中运行的进程被分配了角色/权限,这些角色/权限需要使用 身份和访问管理(IAM) 计划,最好按照 最低权限访问(LPA). 后 DevSecOps 组织已经校准了一种幻想, 新的多云容器环境, 只有有需要的人才能使用. IAM是保证云和容器服务安全和兼容的关键. 它还可以帮助制定合理和可持续的方法,以解决边界流动性和大规模管理云环境的重大挑战.

通用云容器平台

客户在购买云服务提供商(csp)时可以选择供应商。, 并且有各种不同的容器运行时和容器编排平台可供选择. 但重要的是要选择一个由底层云平台适当支持的云, 同时考虑到csp有多种管理容器的产品.

码头工人引擎 

码头工人 2013年首次上市, 并提供了在容器中打包和运行应用程序的能力. 该平台允许在用户工作时共享容器, 并确保每个人都看到并使用相同的容器和功能. 它通过开发、分发、测试和部署来帮助管理容器生命周期.

Kubernetes

Kubernetes 是一个用于管理工作负载和服务的开源、容器编排平台吗. Kubernetes负责容器部署,还管理软件定义的网络层,该网络层允许容器相互通信. 该平台便于携带,使用方便 声明式配置和自动化. 谷歌在2014年开源了Kubernetes项目.

Google Kubernetes引擎

Google Kubernetes引擎 (GKE) 于2018年推出,是运行码头工人容器的集群管理器和编排系统. 它适用于on-prem, 混合动力, 或者公共云基础设施, 并且可以管理容器集群的虚拟机,快速部署. GKE可以按照声明的方式安排声明的容器,并主动管理应用程序.

亚马逊弹性容器服务

Amazon弹性容器服务(ECS) 于2014年推出, 旨在与AWS平台的其余部分集成,以在云和本地运行容器工作负载. ECS跨环境提供一致的工具、管理、工作负载调度和监视. 用户还可以自动扩展应用程序 可用性区域,以及根据资源需求和可用性随意放置容器.

常见的容器安全挑战 

我们已经稍微谈到了它,但是这些云容器环境在幕后可能很复杂. 近年来,供应商一直把易用性放在首位, 大部分的复杂性都被放到了后台. 这并不意味着, 然而, 用户不需要意识到保护这些环境的挑战. 换句话说,你必须知道它是如何工作的,才能知道如何修复它. 让我们看一下一些常见的容器安全挑战.

  • 扫描成熟度不足在最近 SANS研究所调查, 人们确定, 同时,安全团队在其内部环境中实现强大的漏洞管理(VM)流程方面取得了长足的进步, 现代云和容器化环境的复杂性仍然落后. 这是, 当然, 部分原因是传统的虚拟机工具已经变得无处不在, 与专门为处理动态云环境而构建的解决方案不同. 这是, 在某种程度上, 由于依赖传统扫描技术的组织可能已经在运行, 而不是能够扫描分布式网络的更动态的解决方案.
  • 易于扩展:短暂的, 支持容器的微服务具有广泛的分布式特性,这可能导致环境呈指数级增长,很难跟上. 云的民主化进一步加剧了这种情况, 这会导致组织中越来越多的人拥有以自助服务方式提供资源的能力. 这使得在进行故障排除时很难知道在哪里查找, 还要知道谁“拥有”易受攻击的资源,谁能解决问题. 还记得, 云和容器平台支持快速增长,安全性必须跟上,以避免失去任何表面上的控制.
  • 人才与文化要找到具备特定技能的合适人才来适当地、持续地确保减轻容器的短暂风险,可能非常困难. 安全团队可能不太熟悉构建在微服务和容器上的现代云架构. 即使在极具天赋的工程师中,这种情况也很常见,因为这些技术还处于萌芽阶段. A 托管服务解决方案 可以帮助安全运营中心(SOC)解决这些难题吗.

阅读更多关于容器安全的信息

容器安全:来自博客的最新消息