云原生安全DevSecOps思考

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 关于云原生安全DevSecOps思考,本文的目的是深入探讨云原生环境下的安全脆弱性,并介绍配套的工具和方法,帮助企业在步入云原生大门时关好每扇安全窗。

近年来,云原生技术应用日益广泛,而容器编排平台Kubernetes(k8s)的出现,使得我们的服务具备了前所未有的灵活性和扩展性。然而,这同时也带来了诸多云原生安全问题。近期曝出的Runc CVE-2024-21626 缺陷,造成了容器逃逸的问题,引发了很大的关注。这个问题出现的原因,是在runc 1.1.11及之前的版本中,因文件描述符泄露,容器进程在宿主文件系统中拥有了工作目录权限,从而容易被攻击者利用,实现容器逃逸。得益于这个问题,我们重新认识到了不论是身份和权限控制、网络攻击等方面的问题,都对我们的服务和数据安全构成了威胁。本文的目的是深入探讨云原生环境下的安全脆弱性,并介绍配套的工具和方法,帮助企业在步入云原生大门时关好每扇安全窗。

云原生技术架构的安全挑战

云原生技术架构下,一些常见的容器应用、K8s编排和其他构建模块的复杂性可能给系统安全带来挑战:

  1. 宿主机:宿主机是容器运行的基础,如果宿主机的安全性不能得到保障,那么运行在其上的所有容器都可能面临风险。宿主机操作系统存在漏洞、不安全的配置、未授权的访问、弱口令等情况,这些将直接影响到容器安全,内核是容器与宿主机交互的桥梁,任何内核级别的漏洞也可能被利用进行攻击。
  2. 容器管理工具:容器管理软件如Kubernetes、Docker等,如果管理软件存在漏洞或配置不当,可能会被攻击者利用。K8s作为编排引擎,存在的潜在风险包括API Server等组件未授权访问,错误配置的RBAC权限,服务账号的滥用和错误挂载等,均可能导致攻击者获得对集群的控制。
  3. 容器应用:应用层面的安全问题主要涉及到应用本身的安全性。如果应用存在漏洞或者被恶意修改,可能会被攻击者利用。微服务架构提供了高度的模块化和分布式系统的优势,但同时也带来的多种安全风险。微服务通过引入第三方框架或是开源组件来实现功能,这些框架和组件可能包含安全漏洞,比如远程命令执行漏洞,反序列化漏洞等。
  4. 运行时:容器运行时的安全问题主要涉及到容器的隔离性。如果容器的隔离性不强,可能会被攻击者利用。可能的安全风险包括:容器逃逸、资源滥用等。攻击者利用容器逃逸漏洞进行攻击,从而影响其他容器和宿主机。
  5. 镜像以及镜像仓库:容器镜像是构建容器的基础,容器镜像可能包含已知的漏洞和敏感信息。使用不受信任的镜像源、镜像仓库账号密码泄露、镜像仓库软件漏洞等,都是存在的安全风险。
  6. 服务间自由通信:k8s默认是内部服务之间自由通信(东西向通信),通常我们服务间会交互频繁,如果对这些流量未进行充分的管控,可能成为攻击者的横向穿越渠道。
    图片.png

    2023 年云栖大会相关PPT

安全方法论与最佳实践

为应对上描述的挑战,业界已经提出了一系列方法和最佳实践。比如,Gartner 的分析师David Cearley首次提出的DevSecOps模型。相比于传统软件开发流程中的安全防护,DevSecOps将安全防护理念融入到了整个软件开发生命周期中,同时保证了企业应用快速开发的前提下,达到全面自动化的安全部署,以达到软件和供应链的安全。
图片.png

DevSecOps


事实上,据Gartner预估,到2025年,60%的企业将采取并实质性实践DevSecOps。此外,2023年的云栖大会指出,多数企业目前的云原生安全发展程度还远远滞后于应用的云原生化程度。主要的改进方向包括:
身份和访问管理:线上授予的权限与实际需要的权限之间存在巨大差异,无疑会给攻击者可乘之机。
漏洞和配置管理:大多数的企业生产镜像都没有经过安全加固和最小化的裁剪收敛,另外很多线上应用因为开发调式的一时方便而在容器层配置了过高的特权。
监控和响应:缺少针对容器资产的运行时监控和防护手段,针对突发的攻击事件也无法有效完成定位和溯源。
图片.png

2023 年云栖大会相关PPT

而对于以上提出的改进方向,我们已经有了行之有效的解决方案:

  1. 工具扫描安全:使用如kube-bench和Trivy等工具,对集群配置和镜像进行定期扫描,及时发现和修补漏洞。
  2. 沙箱隔离:例如使用gVisor等沙箱技术进行容器隔离,防止潜在的内核攻击。
  3. RBAC权限限制:在集群中实施基于角色的访问控制(RBAC),保证最小权限原则,仅授权必要的操作权限。
  4. 准入控制:通过ImagePolicyWebhook等准入控制器检查和过滤不合规的镜像拉取和容器配置。
  5. 容器权限最小化:通过设置SecurityContext和Capabilities来限制容器内部进程的权限。
  6. 系统调用限制:使用Seccomp策略限制容器可以执行的系统调用,增强安全性。
  7. 敏感数据管理:使用Secrets妥善管理TLS证书、密码等敏感数据。
  8. 网络策略:设置合适的NetworkPolicy来定义和施行服务之间的通信规则,减少潜在的攻击面和风险。
  9. 容器行为监控:利用Falco工具监控容器运行时行为,并检测到可疑行为时发出警报。
  10. 建设安全平台:利用NeuVector平台定期漏洞扫描、检查运行时安全、网络和事件响应等功能。
  11. 审计日志:通过Audit日志记录所有K8s集群中活动,帮助我们追溯异常事件,并且确保可审计性。
  12. 灾难恢复:定期备份集群相关的数据,定期演练集群灾难恢复。
    图片.png

安全工具参考图

结语
云原生安全渐成为企业不可或缺的一环。采用主动防御策略,借助安全工具和技术建立起稳固的安全防线,是抵御网络攻击的基础。有效的安全方法论和云原生的安全最佳实践,可以帮助我们在云原生环境中构建一个更安全、更可靠的未来。

相关实践学习
通过workbench远程登录ECS,快速搭建Docker环境
本教程指导用户体验通过workbench远程登录ECS,完成搭建Docker环境的快速搭建,并使用Docker部署一个Nginx服务。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
1月前
|
云安全 安全 Cloud Native
企业如何做好云原生安全
云原生安全不仅仅关注云计算普及带来的安全问题,它更强调以原生的思维来构建云上的安全建设、部署与应用,推动安全与云计算的深度融合。将安全能力内置于云平台中,实现云化部署、数据联通、产品联动,这有助于充分利用安全资源,降低安全解决方案的使用成本,实现真正意义上的普惠安全。
|
4月前
|
Kubernetes 安全 Cloud Native
云原生|kubernetes|pod或容器的安全上下文配置解析
云原生|kubernetes|pod或容器的安全上下文配置解析
112 0
|
6月前
|
Cloud Native 安全 网络安全
云原生网络安全开发入门
云原生网络安全开发入门
|
3月前
|
Kubernetes Cloud Native 安全
云原生技术专题 | 解密2023年云原生的安全优化升级,告别高危漏洞、与数据泄露说“再见”(安全管控篇)
2023年,我们见证了科技领域的蓬勃发展,每一次技术革新都为我们带来了广阔的发展前景。作为后端开发者,我们深受其影响,不断迈向未来。 随着数字化浪潮的席卷,各种架构设计理念相互交汇,共同塑造了一个充满竞争和创新的技术时代。微服务、云原生、Serverless、事件驱动、中台、容灾等多样化的架构思想,都在竞相定义未来技术的标准。然而,哪种将成为引领时代的主流趋势,仍是一个未知数。尽管如此,种种迹象表明,云原生的主题正在逐渐深入人心。让我们一起分析和探讨云原生技术和架构安全体系的升级和改良,以期发现新的技术趋势和见解。
298 1
云原生技术专题  |  解密2023年云原生的安全优化升级,告别高危漏洞、与数据泄露说“再见”(安全管控篇)
|
3月前
|
运维 供应链 安全
从方法论到最佳实践,深度解析企业云原生 DevSecOps 体系构建
本文主要介绍了云原生安全的现状以及企业应用在云原生化转型中面临的主要安全挑战以及相对成熟的一部分安全体系方法论,深度解析企业云原生 DevSecOps 体系构建。
|
4月前
|
Kubernetes 安全 Cloud Native
云原生|kubernetes|安全漏扫神器trivy的部署和使用
云原生|kubernetes|安全漏扫神器trivy的部署和使用
116 0
|
4月前
|
安全 Cloud Native 算法
云原生安全-云计算发展白皮书(2020年)解读
云原生安全-云计算发展白皮书(2020年)解读
124 0
|
6月前
|
监控 安全 Cloud Native
云原生环境下的安全实践:保护应用程序和数据的关键策略
云原生环境下的安全实践:保护应用程序和数据的关键策略
145 0
云原生环境下的安全实践:保护应用程序和数据的关键策略
|
6月前
|
安全 Cloud Native 网络安全
云原生网络安全开发实践
云原生网络安全开发实践