容器技术无论是否新增引入,抑或您正努力掌握其复杂的安全性,这里提供了数点建议,可资您启动并推进容器安全化之旅。
译自 Demystifying Container Security for Developers,作者 David Benas 是 Synopsys 新兴技术领域的一位首席顾问。他广泛地与各个行业的客户合作,帮助他们改进软件安全计划,加固架构并保护应用程序的安全性,特别是与新技术相关的部分......
虽然容器不再被视为全新,但一些企业正在首次使用它们。不幸的是,在容器中,传统网络或云系统中预期的基本安全性有时会被忽略。无论容器对您的企业来是新事物还是您刚刚开始掌握保护它们的复杂性,以下都是启动或发展容器安全之旅的一些提示。
容器化跨越了广泛的应用程序和网络架构,但用于描述它们的总称可能会掩盖维护它们规模的挑战。让我们检查容器安全系统在整个容器生命周期的健壮性,以确定它们是否适合部署。
- 初始化是指容器安全软件的后端元素,经常被称为其“元任务”。这个关键区域支撑着容器生命周期的其余设计、实施和操作阶段,为组织方法奠定了基础。
- 设计和规划:因为容器化环境在很大程度上依赖于其安全特性的容器化部分,未能充分设计和规划它们可能会在应用程序的生命周期后期导致意外后果。考虑到有这么多移动部件,容器化公司的规划和设计可能非常复杂,并且很难成功应用。
- 实施:顶级软件安全计划为容器实施基本安全措施,如安全工具、编码标准、测试以及使用和支持。
- 操作:运行容器的操作方面,如维护其环境并在退休后处置它们,与设计和实施一样,对组织的容器安全模型至关重要。
任何容器安全计划都必须考虑容器本身的创建和内容的安全性。
有几个标准可以用来分析容器安全性,首先是主机安全性的基础要素,然后是平台安全性要素,最后是检查容器和编排器本身的要素。
基础设施安全性包括支撑容器操作的物理和虚拟资源的完整性,这在比喻和字面意义上都是正确的。容器在某个物理硬件上运行,因此托管环境的安全性会影响容器化环境的安全性。
虽然许多部署是以不同的方式完成的,但托管操作系统的安全性和控制对于基础设施安全性至关重要,原因与基础设施安全性相同——如果操作系统被入侵,则无法保护在其中运行的工作负载。容器化架构的安全性依赖于最佳实践,包括强大的身份和访问管理、操作系统安全控制以及在假定被入侵模型下的安全部署。
了解平台安全控制措施而不仅仅是基础设施或应用程序对于保护容器平台至关重要。渗透测试、配置和设计评估组织的容器旨在保护编排器和容器平台。
在其上部署应用程序或服务的平台会直接影响其安全性,并可能会混淆安全团队——谁应对某个层负责以及他们该如何保护它? 隔离和执行容器的运行时也应检查以验证控制措施是否被恰当有效地实施。最后,需要强大的管理接口。作为进入环境的快捷方式,攻击者将以这种方式接近它们,它们是威胁模型的一个关键方面。
您组织的容器化安全应包括以下原则:
- 镜像安全性:虽然镜像安全性至关重要,但它并不能定义容器的安全方案。然而,未能验证镜像完整性可能是重大安全问题的原因。工具与每个元素的集中政策和明确责任一起,是构建强大和敏捷安全响应的关键。
- 运行时安全性:容器运行时安全性经常被忽略,应像网络上的传统服务器一样进行保护。容器端点保护比较特殊,通常包含 sidecar 代理,这使情况复杂化。深度防御容器安全策略需要威胁检测和行为监控。能够在容器中标记和检测潜在的恶意状态更改行为,可以减少架构、代码和配置问题的影响。
- 网络安全性:传统的内部部署网络安全性很强大,拥有许多工具和数十年的经验作为后盾。其中许多原则不适用于容器化网络,但一个安全的网络应考虑编排或容器化网络以及容器或编排器与外部元素的交互方式。服务网格在容器中无处不在,但应像检查任何其他网络一样检查它们。尽管这个领域中的网络法规和工具相对还比较新,但提供一个基线可以减少压力,以后安装更成熟的解决方案,而不会损害安全性。
- 事件响应和报告:安全专业人员经常说,“传统”组织事件响应团队缺乏访问权限和能力来检测和响应容器化系统中的威胁。一些公司表示赞同,因为近年来将应用直接迁移到云端的应用程序出现了问题。尽管这不是唯一的情况,但容器应得到同等对待。事件响应和取证团队应当在容器化环境中进行“消防演习”,因为容器非常适合应用取证和事件响应技术。容器是独立包含的,具有预期的输入、输出和功能,它们的边界很容易分析它们在做什么以及它们应该做什么之间的差异。
在您的公司实施一个强大的容器安全计划绝非易事。一个开始的地方是我们的白皮书:“使您的组织中的容器安全性成熟,Synopsys蓝图”。
无论您是否刚刚开始利用容器或者已经使用它们多年,创建一个强大和安全的容器安全计划需要了解一个成熟的容器安全计划应具有的关键特性,以及哪些要素构成了安全容器。这份白皮书提供了一个蓝图,帮助您在容器安全之旅中推动组织的发展。