Kubernetes管道面临着越来越多的威胁,这些威胁要求在整个应用程序生命周期中提供更集成和自动化的安全性。 使事情变得更复杂的是,关键漏洞可以进入管道的任何阶段:从构建到注册表,再到测试和登台再到(尤其是破坏性的)生产环境。
有效的Kubernetes管道安全性的最大障碍之一就是投入时间来解决问题。 使用容器的目的是提高发布周期的速度,启用更多的最新代码和更好的功能以及更好的资源稳定性。 将安全性注入该管道的任何手动工作都可能会减慢该速度并阻止充分实现容器策略的优势。
[ 同样在InfoWorld上:什么是CI / CD? 持续集成和持续交付的解释 ]
DevOps团队根本负担不起拖延生产的速度。 这就是为什么自动化不仅至关重要,而且也是确保容器安全的最现实方法的原因。
Kubernetes管道概述
退一步,这是Kubernetes管道的简化视图,以及每个阶段的一些主要威胁:
最早可以在构建阶段引入新漏洞。 (在许多情况下,开源工具是添加以前未知的攻击面的罪魁祸首。)在注册表中,即使您已经成功删除了构建阶段的漏洞并存储了干净的映像,也可能会发现一个严重漏洞。稍后会影响该图像。 生产中运行的容器可能会(并且经常发生)相同的事情。
在生产环境中,容器,关键工具或Kubernetes本身可能会受到攻击,就像我们去年在关键API服务器漏洞中所看到的那样。 所有这些基础架构都构成了一个攻击范围,需要对其进行自动监视和保护。 而且,即使您尽最大努力消除漏洞,也仍然存在零日攻击,未知漏洞甚至内部攻击的危险。
从积极的方面来看,可以在整个Kubernetes管道中集成和自动化安全策略。
确保容器生命周期的10个步骤
DevOps团队可以通过10种特定方式在Kubernetes管道的整个生命周期中集成和自动化安全性:
步骤1.在构建阶段进行扫描
此步骤很容易实现自动化,如果有任何漏洞或问题,则将构建版本发回给开发人员。
步骤2.扫描注册表
如果在注册表中发现了新漏洞,则也可以发出警报并将其发送回开发团队进行修复。 要了解的一件事是,并非总是可以修复此漏洞,因此您可能必须允许将该漏洞部署到生产中。 因此,生产漏洞扫描和合规性评估也至关重要。
[ 也在InfoWorld上:站点可靠性工程遇上发展难题的地方 ]
步骤3.在运行时进行扫描并运行合规性检查
生产中的漏洞扫描不仅包含容器。 您始终需要扫描主机和Orchestrator平台(Kubernetes,OpenShift等)中的漏洞。 Docker Bench和Kubernetes CIS基准很容易自动连续运行。 每当部署新容器或添加或修补新主机时,它们都会为您提供警报。
对于许多企业而言,能够进行合规报告和管理(包括某些行业合规性要求强制进行的自动分段)也至关重要。 无论如何,这都不是您要手动执行的操作,因为出于合规性目的,通常需要自动执行许多运行时扫描和合规性检查。
例如,支付卡行业的PCI安全标准要求对范围内和范围外CDE流量进行分段和防火墙保护。 在部署在主机和范围内运行的Pod时,不能手动更改防火墙规则。 因此,PCI合规性(除其他外)需要自动网络分段。
步骤4.运行风险报告
任何DevOps团队都知道,风险报告对于管理整个端到端漏洞保护过程至关重要。 自动化它们只会使过程变得更快,并在必要时加快修复速度。
步骤5.将安全策略设置为代码,并
步骤6.实施行为学习
应同时使用安全策略(如代码和行为学习)。 这样做使DevOps团队可以在开发过程的早期就创建和部署工作负载安全策略,并将其贯穿到生产环境中。 这项基本的自动化措施使手动创建规则来保护新应用程序的需求不再存在(并消除了导致这种情况的相关速度降低)。
这是一个可能的工作流程。 DevOps和QA团队将应用程序部署到测试/ QA环境中,该环境中具有能够进行行为学习的容器防火墙。 容器防火墙了解该应用程序的所有容器过程和正常的文件活动,并创建可以导出到开发团队以根据需要进行检查和编辑的策略规则。
例如,可能需要对应用程序使用的协议,所需的连接或将在应用程序中运行的进程进行编辑。 现在可以将它们创建为安全清单,可以在生产部署之前对其进行重新测试。 这样,您不仅可以定义特定于工作负载的策略,还可以定义全局安全策略,例如“容器中不允许使用SSH”或其他此类规则。
步骤7.设置准入控制
将准入控制集成到管道中是确保自动化安全性的关键步骤。 确保实现创建准入控制规则的功能,该规则可以阻止任何未经授权的部署或易受攻击的部署进入生产环境。
步骤8.建立容器防火墙,并
步骤9.自动化容器工作负载和主机安全性
如上所述,实施容器防火墙并将其应用于强制容器工作负载和主机安全性,可以为管道提供必要的自动化保护。
这种自动化需要包括在运行时强制执行保护的能力-自动阻止容器或主机上未经授权的网络连接,进程或文件活动。 这些措施还可以利用网络DLP来检查集装箱流量中的PII,信用卡数据,帐户数据和更敏感的信息,并阻止任何发送未加密数据的工作(防止数据被盗)。
[ 也在InfoWorld上:如何通过左移测试改善CI / CD ]
步骤10:设置警报和取证
最后,整合和自动化取证功能和警报响应非常有价值。 这可能意味着在可能被黑客入侵的可疑Pod上启动了自动数据包捕获,或者隔离了该容器以阻止所有进出该网络的网络流量。 可以通过设置策略规则来完成此操作,该策略规则指定在容器上启动数据包捕获或隔离的条件。
没有彻底的保障,Kubernetes管道的每个阶段都是脆弱的。 但是,DevOps团队如果知道什么可以自动化,为什么重要以及如何做到,就无需牺牲容器化开发的速度。
Gary Duan是NeuVector的联合创始人兼首席技术官。 他在网络,安全性,云和数据中心软件方面拥有超过15年的经验。 他是Fortinet屡获殊荣的DPI产品的架构师,并管理过vArmour,Fortinet,Cisco和Altigen的开发团队。 他的技术专长包括IDS / IPS,OpenStack,NSX和业务流程系统。 他拥有安全性和数据中心技术方面的多项专利。
-
新技术论坛提供了一个以前所未有的深度和广度探索和讨论新兴企业技术的场所。 选择是主观的,是基于我们选择的技术,我们认为这些技术对InfoWorld读者来说是重要的,也是他们最感兴趣的。 InfoWorld不接受发布的营销担保,并保留编辑所有贡献内容的权利。 将所有查询发送到newtechforum@infoworld.com 。