从DevOps的角度看容器安全

71 阅读5分钟

容器化被广泛认为是提高生产力和简化流程的首选方法,在寻求简化其软件开发和交付实践的组织,容器化越来越受到关注。根据Forrester的数据,71%的DevOps团队利用容器和微服务来交付应用程序。

一个全面的DevOps方法可以减轻容器化的潜在陷阱,并且在DevOps中采用容器化的组织可以确保他们的数据和系统在面对日益普遍的网络威胁时保持安全。

DevOps和容器安全的相互作用

DevOps中的协作和自动化是软件开发生命周期的关键组成部分。有了持续交付和高软件质量,组织可以更快地将新的解决方案和功能推向市场。然而面临的一个问题是权衡速度和安全性。2023 年的 Sysdig 报告显示,在生产环境中运行的容器映像中,有 87% 存在严重或高严重性漏洞。

了解容器风险

就像任何其他类型的部署一样,容器也不能避免被利用。虽然容器化概念本身解决了大量的安全问题,但也引入了新的漏洞。这些包括:

运行时威胁:正在运行的容器不仅可以公开容器本身,还会暴露底层主机操作系统。

配置错误:配置错误可能会授予对容器和容器管控平台数据的未经授权的访问权限。

映像漏洞:在容器中运行的软件可能存在安全漏洞,这些漏洞允许攻击者首先访问容器,后续甚至访问主机本身。

主动安全

虽然容器安全工具可以通过映像扫描、机密管理、运行时保护和合规性来帮助实现平衡,但还有一种更主动的策略。通过DevSecOps可以减少开发管道早期的许多漏洞和配置失误。

DevSecOps 和 DevOps 的最终目标是使用相同的原则和方法增强容器安全性:

将安全性左移:当安全性从项目的第一阶段考虑并实现时,有助于及早发现和修复安全问题,这也意味着在生产就绪部署中出现的安全问题更少。

自动化:自动执行软件漏洞检查、监控正在运行的容器以及强制执行与项目和行业相关的安全实践可以大大减少开发人员的工作量,并减少开发或安全团队遭受恶意攻击的机会。

加强协作:通过打破不同组织单位之间的信息孤岛,可以增强软件开发过程的整体安全性,并培养一种共同责任的文化。

强化容器化应用程序的策略

主要做法是最大限度地保护运行时容器。 AppArmor 和 SELinux 等功能是 Linux 内核的子系统(通常称为安全模块),可用于限制容器化应用程序在运行时允许执行的操作,从而有效地阻止特权过高的执行和随之而来的利用场景。

定期检测漏洞。大多数软件开发不是从头开始的,而是使用各种现有的代码库,所有这些都是潜在的攻击向量。使用经过验证的软件和容器映像进行开发,可以降低最终产品中潜伏的恶意代码或漏洞的风险。然而,即使是官方软件也可能存在安全漏洞,因此定期的漏洞扫描可以帮助在部署之前检测和修复问题。

实现最小特权原则不仅限于用户帐户和管理帐户之间的划分,还包括环境中运行的实际进程和软件。与用户帐户的情况一样,最小权限意味着确保尽可能以非root用户的身份运行容器。这将最小化攻击者在容器中获得立足点后可能造成的损害。

在部署完成后,积极监控和响应安全威胁的重要性也不容小觑。信息系统不存在于真空中,因此确保它们正常运行并保持健康对于整个环境的性能至关重要。这可以通过收集和分析容器日志和指标的各种监视和日志记录工具来实现,从而更轻松地实施响应计划并在环境中出现问题时快速解决这些问题。

DevOps 是迈向安全容器生态系统的垫脚石

安全性作为一个总体概念一直在不断变化且充满挑战,虽然容器化确实有助于在基本层面上解决一些问题,但也引入了许多新的攻击向量。

安全性需要在早期阶段集成到软件开发的结构中,这就是DevOps发挥作用的地方。组织可以从自动化工具中获得大量的经验,以显著降低与部署和运行容器相关的风险,但是开发人员有责任在整个软件工程生命周期中保持这种状态。

容器安全是一个持续的过程,包括在持续的开发和集成、监控和定期更新现有资源以及快速响应新检测到的威胁方面的左移策略。DevOps实践可以加强组织内部和云中容器环境的安全性。

参读链接:

www.tripwire.com/state-of-se…