云安全(六):云原生

admin 2025年3月18日21:48:12评论13 views字数 3839阅读12分47秒阅读模式

0x00 Introduction

本篇章中将说明云原生相关的概念,以及云原生相关的安全风险。个人才疏学浅,有未阐述清楚或遗漏的地方,还请谅解,相关的内容可自行搜索。

CNCF(云原生计算基金会,Cloud Native Computing Foundation) 是一个致力于推动云原生技术发展和普及的非营利性开源组织,隶属于 Linux 基金会。根据 CNCF 的定义,云原生是一套以容器化、微服务、动态编排为核心的技术体系,旨在通过开源生态和标准化工具链,帮助企业在云环境中构建弹性、可扩展、自动化的现代应用架构。

云原生在于对“原生”的理解,“原生”表示应用程序从设计之初就考虑到云的环境,根据云的特点而设计的,能在云上以最佳状态运行,这种应用可称为云原生。CNCF 所维护的云原生全景图:https://landscape.cncf.io/

云原生的本质是“生于云,长于云”的一种云端计算机制。而现在谈到云原生,不仅仅是指一些具体的技术,更多指的是技术体系和设计理念。云原生技术帮助公司和机构在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。简单理解就是,云原生是一套解决方案,用自动化和模块化的技术来让业务在云上运行得更快、更稳、更方便。

0x01 Elements

云原生的核心要素包括:容器、动态编排、微服务、声明式 API、服务网格、不可变基础设施、自动化运维、DevOps、CI/CD 等。

1. 容器

容器(Container)是一种轻量级的虚拟化技术,通过操作系统层面的资源隔离与封装,将应用程序及其运行所需的依赖(如代码、库、环境变量、配置文件等)打包成标准化、可移植的独立单元。相较于传统虚拟机(VM),容器直接共享宿主机的操作系统内核,无需模拟完整硬件环境,从而显著提升资源利用率、启动速度和部署效率。

Docker,作为容器技术的主要代表工具之一(并不是唯一),提供了完整的容器工具链,包括:镜像的构建、运行时的管理、镜像仓库等,可以说,Docker 是容器技术的“最佳实践代表”。Docker 通过简化容器使用流程(如 Dockerfile 镜像构建、docker run 一键启动),极大降低了容器技术的门槛,成为云原生革命的起点。

2. 动态编排

在服务拆分架构占据主导地位的时代,中大型应用往往会有十几甚至几十个的容器相互配合。单个容器可以很方便维护和管理;而对于多个容器就需要一种能统一管理的解决方案,这就是动态编排的意义。

以声明式配置驱动自动化运维,彻底解放人工干预,让系统自主适应动态变化的负载与故障场景。其本质是以声明式配置驱动自动化运维,彻底解放人工干预,让系统自主适应动态变化的负载与故障场景。

动态编排主要指对容器、服务等资源的生命周期管理和调度优化。其核心目标是:

  1. 资源的高效分配
  2. 自动化部署
  3. 服务依赖管理
  4. 资源的动态调度

常见的容器编排工具有:KubernetesDocker SwarmHashiCorp NomadApache MesosRedHat OpenShiftRancher 等,而又以 Kubernetes 为主导地位。Kubernetes 已成为云原生领域的核心基础设施,是容器编排领域的事实标准。

3. 微服务

在云原生生态中,微服务(Microservices) 是一种将单体应用拆分为多个小型、独立服务的架构模式,每个服务专注于单一业务功能,独立部署且易于扩展。不同服务之间通过 API 来相互通信,共同支撑复杂业务场景。

微服务架构的优势:

  1. 提高开发效率
  2. 独立部署和扩展
  3. 技术多样性
  4. 故障隔离
  5. 易于理解和维护

4. 声明式 API

命令式 API 描述的是一系列具体的动作,如果这一系列具体的动作正确的被执行,那么就会达到期望的目标状态。而所谓**声明式 **API,描述的是所期望的状态,具体的实现步骤由工具内部实现,声明式更关注结果而非过程。声明式 API 的核心思想是“告诉系统要什么,而不是如何做”,这允许用户通过描述期望的系统终态,而非具体执行步骤,以此来驱动基础设施和应用的自动化管理。

  • 命令式 API 如同“手动驾驶”,用户直接操控方向盘、油门和刹车,适合简单任务或临时操作
  • 声明式 API 如同“自动驾驶”,用户设定目的地,系统自主规划路线

核心作用是实现自动化运维,减少人工干预。系统可以持续对比期望状态和实际状态,自动进行必要的调整。这提高了系统的自愈能力和稳定性,尤其在复杂的云原生环境中非常有用。

5. 服务网格

微服务是云原生架构的核心组成部分,将应用拆分为多个小型、独立服务的架构模式。而一款应用中可能包含多个服务,而多个服务之间的通信和管理就成了新的问题。而服务网格就是用来处理这类问题,服务网格利用容器之间的网络设置来控制或改变应用程序中不同组件之间的交互。

6. 不可变基础设施

不可变基础设施是一种保持任何基础设施的实例(包括服务器、容器等各种软硬件)一旦创建之后,便成为一种只读状态,不可对其进行任何更改,只能够进行整体替换的模式。而容器技术就是不可变基础设施的一种具体实现。

7. 自动化运维

云原生中的自动化运维是一种通过工具和流程自动化管理云原生应用的运维任务的方法,利用各种工具和技术,如容器编排平台 Kubernetes、基础设施即代码工具 Terraform 和 Ansible,以及监控和日志管理工具 PrometheusGrafana 和 EFK 栈等,来实现对应用的自动部署、扩展、管理、监控和故障恢复。

8. DevOps

DevOps 是 Development 和 Operations 的结合,即开发运维一体化,旨在通过自动化、持续集成和持续交付等方法,打破开发和运维之间的壁垒,实现软件的高效交付、稳定运行、缩短交付周期、提升软件质量与降低运维成本。

9. CI/CD

CI(Continuous Integration,持续集成),当提交新代码后,会自动进行合并、构建以及测试,确保代码的质量;CD(Continuous Delivery,持续交付),在持续交付的基础上,通过自动化测试后,直接发布到生产环境,无需人工介入。总结:CI 管代码质量,CD 管发布流程,两者像工厂的“质检车间”和“包装发货线”。

持续交付:工厂把产品打包好放在仓库门口,检查员(人工)确认后按按钮发货

持续部署:工厂自动化流水线直接打包、质检、发货,连按钮都不用按

云原生中的持续集成/持续交付(CI/CD)是一种软件开发实践,通过自动化构建、自动化测试和自动化部署等手段,确保代码的每次变更都能及时被集成和验证,并快速、安全地部署到生产环境。

0x02 Vulnerability

云原生安全就是围绕上述几类核心要素及其衍生技术进行漏洞挖掘和利用。如下将简单介绍容器技术的代表 Docker、容器编排的代表 Kubernetes 以及 CI/CD 的相关安全风险。

1. 容器

容器作为一种操作系统虚拟化技术,容器共享操作系统内核,但并未实现完全隔离,若虚拟化软件存在漏洞,或宿主机被攻击,将会造成容器逃逸或资源隔离失效,影响某个容器或多个容器的安全。除此之外,如果镜像本身被投毒或被篡改,那么以此创建的容器都将收到影响,所以镜像的来源是否可靠,也是需要注意的地方。

云安全(六):云原生

2. 动态编排

云安全(六):云原生

3. CI/CD

OWASP Top 10 CI/CD Security Risks:

  • Insufficient Flow Control Mechanisms
  • Inadequate Identity and Access Management
  • Dependency Chain Abuse
  • Poisoned Pipeline Execution (PPE)
  • Insufficient PBAC (Pipeline-Based Access Controls)
  • Insufficient Credential Hygiene
  • Insecure System Configuration
  • Ungoverned Usage of Third-Party Services
  • Improper Artifact Integrity Validation
  • Insufficient Logging and Visibility

0x03 Reference

https://xz.aliyun.com/news/7476

https://wiki.teamssix.com/CloudNative/

https://zone.huoxian.cn/d/1071-docker

https://zhuanlan.zhihu.com/p/499334409

https://zhuanlan.zhihu.com/p/452558857

https://mp.weixin.qq.com/s/o5fGivwgBMR-w60SXQbSYA

https://mp.weixin.qq.com/s/5ZH9HHqfwAYK2Qhgk7oovA

https://www.gjbmj.gov.cn/n1/2021/1104/c411145-32273826.html

http://cheatsheetseries.owasp.org/cheatsheets/CI_CD_Security_Cheat_Sheet.html

https://blog.trailofbits.com/2019/07/19/understanding-docker-container-escapes/

https://psych.green/2024/03/02/Docker%E5%AE%B9%E5%99%A8%E9%80%83%E9%80%B8/

原文始发于微信公众号(JJ1ng):云安全(六):云原生

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月18日21:48:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   云安全(六):云原生https://cn-sec.com/archives/3835925.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息