容器是云原生基础设施的基石。它们改变了可扩展性和速度的游戏规则,但它们的流行也为现代企业带来了容器安全挑战。例如,最近 AWS Elastic Container Registry (ECR) 中的一个安全漏洞可能使威胁行为者能够将恶意代码注入其他用户的容器映像。下面,我们将详细了解什么是容器运行时安全、企业需要了解的五种运行时容器安全威胁,以及改善整体工作负载安全状况的关键最佳实践和工具。
什么是容器运行时安全?
容器运行时安全是一组工具和实践,可保护容器从实例化到终止。它是容器安全和工作负载保护的一个子集,负责保护容器从实例化到终止发生的所有事情。例如,容器运行时安全处理扫描运行中的容器是否存在漏洞,而不是扫描明文源代码。这意味着漏洞扫描器是运行时容器安全工具的一个示例,但SAST扫描器不是。
但是,容器运行时安全性并不是一个孤立的概念。除了容器本身之外,保护源代码、Kubernetes (K8s)和基础设施即代码(IaC) 是提供深度防御的重要方面,这些方面使企业容器运行时安全工作取得成功。
企业需要了解的 5 大容器运行时安全威胁
以下五种容器运行时安全威胁可能会给运行容器工作负载的企业带来重大风险。
未经授权的容器部署:企业对手使用的 MITRE ATT&CK 技术列表中的Deploy Container (T1610)是容器安全威胁的一个很好的例子。使用这种技术,攻击者部署一个容器——例如使用 Docker 的创建和启动命令——绕过安全控制并启用漏洞利用。
错误配置和不安全配置:不安全配置是最常见的容器安全风险之一。例如,暴露不必要的网络端口或硬编码 API 密钥的容器都是不安全配置的示例。
带有恶意软件的容器镜像:当企业使用公共容器注册表时,这种风险尤其普遍。威胁行为者可以将恶意软件嵌入到容器镜像中,然后将它们发布到公共注册表中供企业使用。
权限升级攻击:有多种权限升级攻击可以导致攻击者获得对容器或底层主机的根访问权限。这些攻击通常始于利用不安全的配置或现有漏洞。
未修补的漏洞:未匹配的漏洞,如应用程序中的访问控制错误,为威胁参与者提供了破坏容器的更简单途径。
如何查找和修复容器安全运行时风险
与shift left security的概念一致,早期检测是有效容器运行时安全的关键。理想情况下,企业应该在容器实例化发生之前就检测到威胁。然而,这并不总是实用的。这就是运行时扫描和威胁检测发挥作用的地方。一旦检测到威胁,理想的情况是它会以智能限制误报的方式自动修复。对于其余情况,应迅速提醒安全专业人员采取纠正措施。
5 个运行时容器安全最佳实践
以下五个最佳实践可以帮助企业有效发现和修复容器运行时安全风险。
仅运行受信任的容器镜像:仅运行来自安全存储库的受信任容器镜像可以限制实例化不安全镜像的风险。
实施持续漏洞扫描:时间点安全检查很有用,但还不够。为了领先于不断变化的威胁,企业应该持续扫描工作负载以进行实时威胁检测。
以低权限用户运行容器:企业应避免以 root 用户身份或使用Docker –privileged 标志运行容器。通常,容器不需要 root 访问主机环境,因此使用 root 违反了最小特权原则。同样,–privileged 标志绕过重要的安全控制。
不要启用可写文件系统:容器通常是短暂的。启用可写文件系统为攻击者编写和执行恶意代码创造了可能性。
集中和自动化可见性和策略执行:手动监控和保护容器是不可扩展的。它还容易出现人为错误。企业应该尽可能利用工具来集中和自动化容器安全和策略的可见性。
有效的容器运行时安全需要整体方法
容器运行时安全性并不存在于真空中。例如,IaC 安全性和容器运行时安全性是齐头并进的。为了保持强大的安全态势,企业需要实施在整个软件开发生命周期 (SDLC) 中集成安全性的整体解决方案。这意味着能够跨云实现企业范围的可见性和安全性并在企业运行容器的任何地方提供安全性的工具对于现代工作负载和运行时保护至关重要。