前言

容器环境是高度动态的,应该持续监控、不断提升可观察性和安全性。由于提升容器安全性是一个持续的过程,因此应该将其完全集成到整个开发和部署周期中。将安全性作为此周期的一个组成部分,这样可以降低风险,并减少容器动态运行时可能暴露的风险和漏洞的数量。

来看一下确保容器在构建、部署和运行时保持安全的三个最佳实践。

确保容器部署安全

在构建和部署阶段保护容器的方式是漏洞修复。在部署之前持续扫描软件中的漏洞和错误配置,并及时阻止不符合安全要求的部署,对于容器环境非常重要。通过扫描基础镜像和第三方镜像的漏洞和配置错误,并使用多个扫描registry的工具来识别数据库(如NVD)中的漏洞,从而评估容器和 registry镜像漏洞。除此之外,还需要根据通用配置安全标准(例如CIS基准)持续监控镜像、工作负载和基础设施。这些措施能够满足内部和外部合规性标准,还可以快速检测和修复环境中的错误配置,从而消除潜在风险。

确保容器运行时安全

容器化工作负载需要细粒度的监控,以便 IT 和安全团队能够了解在环境中运行的组件。由于容器化工作负载是高度动态的,问题可以快速传播到多个容器和应用程序中,因此从源头快速识别和解决这些问题至关重要。

为了确保容器运行时安全,我们应该监控和检测工作负载中网络流量、文件活动、进程行为和系统调用的异常情况,以便广泛了解运行时威胁。根据 IoCs 和 IoAs 评估容器化工作负载是否存在已知的恶意活动,并利用机器学习实现基于行为的方法来抵御“零日漏洞攻击”(zero-day threats)。除了向安全运营中心发送安全警报以供进一步分析之外,还可以使用工具创建安全策略,从而阻止或隔离受影响的工作负载。

除此之外,还需要设置从网络层到应用层的整个工作负载的可见性,因此我们使用一个工具来提供环境中工作负载的运行时视图,以及查看工作负载如何操作和通信的上下文。这可以帮助我们更快地排除性能热点和连接问题。

减少容器的攻击面

在云环境中,存在大量基于许多不同底层镜像的容器(每个镜像都可能存在漏洞),因此容器创建了一个大型攻击面。为了减少容器的攻击面,我们应该专注于使用“零信任方法”(永不信任,永远验证)的威胁防护。实施细粒度的零信任工作负载访问控制,以控制工作负载和外部资源之间的数据流。这方面的例子包括:

· 用于细粒度访问的 DNS 策略

· 与现有网络防火墙集成

· 在安全策略中使用 IP 子网/CIDR 范围(即限制出入工作负载的流量范围)

微隔离可根据环境、应用层、合规性需求、用户访问和个人工作负载要求隔离工作负载。将工作负载划分为不同的安全分区,为每个独立的分区定义细粒度的安全控制。微隔离对于减少容器攻击面至关重要,因为它有助于隔离端点并防止横向移动。

值得一提的另外一件事是,与服务器不同,容器寿命短暂,属于轻量级的产品。因此,我们应该避免过于频繁地向容器中添加太多文件,并确保定期更新容器。确保定期维护容器有助于减少攻击面并避免削弱安全态势。

持续监控、可观察性和安全性

虽然容器提供了许多优势,但它们也带来了同样多的安全挑战。容器的不可变性(即对应用程序或微服务的每次更改,都需要更新容器镜像并启动新容器)使容器环境高度动态化。因此,确保所有组件从初始开发阶段一直到其生命周期结束都是安全的极其重要。

本文中的最佳实践建议是,容器的持续监控、可观察性和安全性应围绕三个主要支柱构建:

· 确保构建时安全和部署安全

· 运行时已知漏洞和零日漏洞

· 零信任工作负载安全, 减少攻击面

以这种方式构建容器安全将帮助构建和维护强大的云安全态势。

声明:本文来自小佑科技,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。