开源实践联盟通信 2021年 09月10日

如何使用Kubernetes实现安全合规自动化?

如今,不少企业都努力在软件开发生命周期或CI/CD(持续集成/持续交付)管道的起点位置引入安全性要素。而在这一转变当中,容器化与编排功能的介入将大大提升安全性与合规性。

容器与Kubernetes带来了新的、独特的安全审视角度。它们促使团队重新考量自己的传统安全策略,摆脱单一或瀑布式的粗放方法,希望破除安全工作“马后炮”式的被动属性。

有些人将这种趋势称为“左移”思维模式,代表着我们会尽可能将安全因素部署在软件开发生命周期或CI/CD管道的起点位置。同样重要的是,这种转型将高度依赖于自动化,要求我们尽早且频繁检测并修复问题,而不再等到严重问题发生时再进行事后补救。

在这场轰轰烈烈的转型中,容器化加编排工具的组合将助力提升安全性与合规性。

Stackrox联合创始人兼首席战略官Wei Lien Dang表示,“像Kubernetes这样的平台,最大的优势之一就是能够在安全性与合规性领域实现高度自动化,大大增强配置能力。这些自动化流程与工具能够帮助IT团队随时随地准确衡量Kubernetes环境的安全状况与整体风险。”

左移思维还能在安全策略的实施当中发挥作用,这同样有助于改善合规性。Dang解释道,“策略的执行将可分布在各个检查点当中——包括CI/CD管道、部署或运行期间,并由编排工具根据实际要求提供良好的可扩展性与可靠性。”

下面,我们一起来看通过容器化与编排工具提高安全/合规自动化水平的三条关键路径。

保证拥有良好的配置观察能力

自动化已经成为保障安全性与合规性关键手段,具体用例包括自动管理存储在私有注册表内的容器镜像及其安全策略,以及将自动化安全测试纳入构建或持续集成的流程当中等。

Kubernetes自带一组丰富的安全相关功能,涵盖基于角色的访问控制、命名空间及其他功能。但如前文所述,盲目仰仗默认配置并不可取。Aqua Security公司战略副总裁Rani Osnat表示,“Kubernetes是一套复杂的系统,包含大量配置与选项。其中一部分可能存在安全隐患,甚至在默认状态下会造成重大风险。”

只有正确配置这些功能,我们才有可能借助容器与编排工具之力达成安全性与合规性自动化。对于这方面用例,Red Hat OpenShift等以开源项目为基础构建而成的商业平台往往会带来重要助益。

Dang还指出,“这样,安全最佳实践将可以在整个Kubernetes的各个层级上自动应用——包括集群层级、命名空间层级、部署/服务层级以及pod层级等等。”

借自动化机制提高检测与策略执行能力

与很多朋友已经熟知的声明式、自动化基础设施操作方法一样,大家在安全领域也可以采取相同或者类似的操作。如上所述,这些在容器安全与Kubernetes安全当中同样不可或缺。

Dang表示,“这些环境强调以声明式API进行操作,能够在基础设施的配置期间实现安全设置,并在应用程序的构建与部署流程中始终提供安全保护。”

换言之,“即代码管理模式”将由此与安全领域展开融合。

NeuVector公司CTO Gray Duan认为,“希望实现Kubernetes合规性与安全性自动化的企业,还应尽可能将安全策略即代码与行为学习(或者机器学习)结合起来。这项技术策略有助于支持安全性“左移”的思维模式,帮助我们在应用程序开发早期引入工作负载安全策略,立足整个生产过程实现环境保护。”

Duan还分享了安全性与合规性领域的几个“应该”案例,一马当先的就是在运行时中自动执行安全漏洞扫描。Duan提到,“在实施Kubernetes合规性与安全性自动化时,我们需要在运行时中执行漏洞扫描——不只是扫描容器,还需要扫描主机乃至Kubernetes本身。”

第二点则是自动网络分段。事实上,网络分段在某些行业中属于必要的合规性要求,需要强制加以执行。

越来越的企业需要组织合规报告并加以管理,而自动化网络分段也开始在众多行业的合规性标准中成为主流。例如,管理支付处理的PCI DSS安全标准就要求在持卡人数据环境内外的流量之间设置网络分段和防火墙。在Duan看来,我们根本无法以手动方式调整防火墙规则,借以应对新的、不断发展的容器化环境威胁态势。“正因为如此,很多法规理所当然地要求在业务环境中执行自动化运行时扫描与合规性检查。”

Kubernetes操作器则是安全自动化领域的一类新兴工具。Red Hat安全策略师Kirsten Newcomer向我们解释道,“最酷的一点在于,IT人员可以使用Kubernetes操作器来管理Kubernetes本身,从而更轻松地交付并自动处理安全部署。例如,操作器能够高效管理配置漂移、使用Kubernetes声明机制来重置和更改不受支持的配置。”

按照基准进行持续测试,建立自动化测试体系

即使配置正确,大家也必须记住一点:根据设计要求,容器体化工作负载以及运行所处的基础设施并非静态不变。这些环境高度动态,因此必须将安全保障视为一种持续性实践。

Dang提到,“合规性检查也可以自动化,只有这样才能准确评估当前环境对于各类基准及行业标准的遵循情况。”

从安全性与合规性的角度来看,Kubernetes环境中最著名的检查(及重新检查)标准之一当数CIS Kubernetes基准。这是一份免费清单,包含约200项设置与安全配置最佳实践。

这份清单系统且全面,但同时也令企业几乎不可能手动按照内容要求定期检查动态环境。好消息是,目前市面上的现成工具能够自动高效地完成这项工作。

Aqua开发的kube-bench是一款免费开源工具,能够根据CIS Kubernetes基准自动检查IT环境。事实上,目前CIS指南已经成为一项重要的运营前提,Red Hat OpenShift Container Platform 4就专门根据其中的条目为用户选择了合作商工具。在kube-bench的帮助下,企业能够持续检查自己的安全状况,确保集群不致偏离合规性要求。

NeuVector也提供一组免费开源脚本,可根据最佳实践自动检查Kubernetes的安装情况。

同样来自Aqua的还有一款开源kube-hunter工具,可根据已知漏洞对集群发动模拟攻击。

Osnat指出,“如果说CIS基准测试关注的是单一设置及其对整体安全状况产生的影响,那么kube-hunter就是通过数十种已知攻击向量对集群发动渗透测试,借此实现安全性补充。它会模拟攻击集群,验证集群是否抵御得住各种已知的攻击手段。它还提供关于设置的变更建议,帮助大家快速对所发现的安全漏洞施以补救。”

最后,开源阵营还有另外一位新成员——同样来自Aqua的Starboard,一款面向Kubernetes安装的安全工具包。

Osnat总结道,“Starboard努力将各种工具集成到K8s的体验当中,包括漏洞扫描工具、工作负载审计器以及基准测试等。它基于K8s CRD(定制化资源定义)实现,并可通过Kubernetes API进行访问。熟悉kubectl(K8s的原生CLI)的用户能够轻松从中获取安全信息,并据此编程以进一步提升自动化水平。”

《数字化转型方略》杂志 《数字化转型方略》杂志