云安全云原⽣安全概述
本系列博客的内容均来源于对**“云原⽣安全:攻防实现与体系构建”**这本书籍的学习归纳。
1.1 云原⽣的含义
云计算的上半场基本已经结束,很多企业已经利⽤开源的或者商业的IaaS系统构建云计算平台,他们只是简单的将传统的物理主机、平台、或者应⽤转为虚拟化。只实现了**“形”上的改变,还远远没有达到“神”**上的变化。云计算的下半场,应该充分利⽤云计算的特性,解决业务在开发、运⾏整个⽣命周期中遇到的问题。
CNCF对云原⽣的解释为:“云原⽣技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运⾏可弹性扩展的应⽤。**云原⽣的代表技术包括容器、服务⽹格、微服务、不可变基础设施和声明式API。**这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的⾃动化⼿段,云原⽣技术使⼯程师能够轻松地对系统做出频繁和可预测的重⼤变更。
1.2 云原⽣的特性
1.2.1 轻、快、不变的基础设施
云原⽣环境中,⽀撑基础设施通常是容器技术。
**轻、快:**容器占⽤资源⼩,⽣命周期短,以秒或者分钟为基本单位。
**不变:**在实践中不会在容器中安装或者更新应⽤,⽽是更新为更为持久化的镜像。这种只更新镜像⽽不改变容器运⾏时的模式称为不变的基础设施。
1.2.2 弹性服务编排
云原⽣的焦点是业务,业务的最核⼼之处是业务管理和控制。服务编排提供了强⼤的业务⽀撑能⼒,可以弹性的控制服务的位置、容量、版本,监控保证业务的可访问性。
1.2.3 开发运营⼀体化
DevOps通过将软件开发和运营相结合,缩短软件开发的⽣命周期。DevOps的开发理念主要包括⾃动化构建、测试、持续集成和持续交付等等。
1.2.4 微服务架构
将传统的单体应⽤的功能拆解成⼤量单独、细粒度的服务。通过应⽤编排组装,实现等价于传统单体应⽤的复杂功能。有程序正在修改镜像劫持
1.2.5 ⽆服务模型
⽆服务是⼀种基于代码和计算任务执⾏的云计算抽象模型,与之相对的是基于服务器(虚拟机、容器)的计算模式。⽆服务聚焦在函数计算,隐藏了底层复杂的实现⽅式,使开发者能够聚焦业务本⾝。
1.2.6 ⼩结
云原⽣就是以云的模式管理和部署资源,⽤户看到的不是⼀个虚拟主机,⽽是⼀个个业务单元,开发者只需要聚焦于业务本⾝。微服务的设计、⽆服务的功能是云原⽣理念的核⼼体现,容器、编排、服务⽹格是实现云原⽣的⽀撑技术。
1.3 云原⽣安全的含义
云原⽣安全分为⾯向云原⽣环境的安全和具有云原⽣特征的安全。
1.3.1 ⾯向云原⽣环境的安全
⾯向云原⽣环境的安全是为了保障云原⽣环境中的基础设施、编排系统和微服务系统的安全。这类安全机制,不⼀定具备云原⽣的特征,可以以传统的模式部署、硬件设备等资源来保护云原⽣环境。
针对云原⽣的内部安全机制主要以云原⽣形态的居多,如服务⽹格的安全通常使⽤旁挂串接的安全容器,微服务API安全通常使⽤API⽹关容器,容器都是云原⽣的部署⽅式,具有云原⽣的特征。
1.3.2 具有云原⽣特征的安全
借助于业界流⾏的云原⽣技术和平台,所提供的具有云原⽣特征的安全机制,能够提供⽐安全资源池性能更好、处置更灵活的安全能⼒。
1.4 云原⽣安全体系
未来的云安全其实就是纯安全,未来的云计算⽆处不在,谈云安全问题,就是谈⼀个通⽤场景下的安全问题。
云原⽣安全演进如图所⽰:
云原⽣发展会有三个阶段:
(1)安全赋能云原⽣体系,构建云原⽣的安全能⼒。当前云原⽣技术发展迅速,但相应的安全防护匮乏,基础的镜像安全、安全基线都没有成熟的⽅案。因此,需要研究如何将现有的安全策略,⽐如隔离、访问控制、⼊侵检测、应⽤安全等等应⽤到云原⽣环境,构建安全的云原⽣系统,是当前需要考虑的问题。
(2)安全产品具有云原⽣的新特性,该阶段需要研究的是将轻/快/不变的基础设施、弹性服务编排、开发运营⼀体化的云原⽣特性赋予到传统的安全产品上,通过软件定义的安全架构,构建原⽣安全架构,提供弹性、按需、云原⽣的安全能⼒。
(3)提⾼通⽤性,安全设备或者平台云原⽣化后,所提⾼的安全额能⼒,不仅适⽤于云原⽣、5G、边缘计算场景,还可以独⽴部署在⼤型电商等传统常见,最终成为⽆处不在的安全。
根据云原⽣环境的构成,⾯向云原⽣环境的安全体系包含三个层⾯的安全机制。
1.4.1 容器安全
容器环境是云计算的实现的⼀种⽅式,因此,容器层⾯的安全分为以下⼏部分。
(1)容器环境基础设施的安全性,⽐如主机上的安全配置是否会影响到其上运⾏的容器,主机上的安全漏洞和恶意进程是否会影响到容器,容器内的进程是否可以利⽤主机上的安全漏洞,等等。
(2)容器的镜像安全,包括镜像中的软件是否存在安全漏洞,镜像在构建过程中是否存在安全风险,镜像在传输过程中是否被恶意篡改。
(3)容器运⾏时安全,⽐如运⾏的容器间的隔离是否充分,容器间的通信是否是安全的,容器内的恶意程序是否会影响到主机或者其他容器,容器的资源使⽤情况是否安全等等。
(4)整个容器⽣态的安全性,⽐如Docker⾃⾝的安全性如何,Service Mesh/Serverless对容器安全的影响,容器中的安全密钥的管理与传统环境有什么不同,容器化后的数据隐私保护与传统的数据隐私保护是否⼀致。
容器安全可以粗略的分为两个主要⽅⾯:⼀⽅⾯是容器云内部的安全,包括宿主机安全、虚拟化安全,容器(东西向)⽹络的安全,管理平台的安全以及数据安全等等;另⼀⽅⾯是容器云内外之间的⽹络安全,也就是通常讲的南北向⽹络安全。其中东西向指的是容器之间的安全,南北向指的是容器和外部之间的安全。
云计算安全架构如图所⽰:
容器云安全建设思路
1.4.2 编排系统安全
编排系统的安全指的主要是针对Kubernetes的安全。
1.4.3 云原⽣应⽤安全
新型的微服务提醒中存在的安全风险
1.5 云原⽣安全问题
1.5.1 如何防护段⽣命周期的容器
容器的⽣命周期啊分布呈现三种类型。
(1)虚拟机型:有⼀⼩部分容器被当成虚拟机使⽤,将本来放置于⼀个虚拟机中的程序集合部署到单个容器中,这些容器的⽣命周期和虚拟机相当。⽣命周期平均在83-333天左右。
(2)原⽣型:有⼀部分容器是以Docker的命令启动和管理的,这部分容器完成独⽴的功能,⽣命周期在10天左右
(3)编排型:还有⼤量的容器是由编排系统管理的,很多容器更具业务动态⽣成和销毁,这类容器的
⽣命周期在1天以内。
攻击者关注的更多的是持久化的东西,⽐如代码、第三⽅库、镜像资产等等。
对于防守者来说,安装杀毒软件,对容器来说是⼀个相对不可⾏的技术,杀毒软件相对容器⽽⾔太重了。
因此如何保护短⽣命周期的容器是我们需要解决的问题之⼀。
1.5.2 如何降低安全运营成本
安全左移:将安全防护从传统运⾏时运营转向为开发侧
1.5.3 DevSecOps
DevSecOps开发运营⼀体化安全,安全能⼒应该覆盖开发和运营闭环的每个环节。
1.5.4 如何实现安全的云原⽣化
(1)安全架构具备编排能⼒
编排是指将各类资源根据业务需要进⾏动态控制和管理,安全架构可以借助编排系统实现动态化的管理和升级。
(2)容器和宿主机安全:安全特权容器
以安全容器的形式防护容器的安全,由于容器技术是操作系统的虚拟化,所以可以通过宿主机中的安全代理观察到容器中的进程、⽂化系统等消息。
(3)Sidecar安全容器
特权容器通常关⼼的是系统调⽤、⽹络流量,但是在云原⽣环境下,业务团队更加关⼼的是容器承载的业务的安全。这些安全主要是针对应⽤层的防护,针对应⽤层的防护,主要使⽤的是Sidecar模式的安全容器。
Sidecar容器本质上就是⼀种提供反向代理的容器,如图所⽰,该容器会劫持业务容器的流量,经过解析获得应⽤层的请求和响应,然后根据安全策略进⾏检测或防护。
1.6 云原⽣现状
1.6.1 云原⽣新范式:Docker+Kubernetes
如图所⽰,Docker、Containerd和CRI-O是容器运⾏时的主流实现机制:
如图所⽰,在编排⼯具上,Kubernetes占据了榜⾸。
1.6.2 镜像问题仍然突出
Docker Hub上的官⽅镜像存在⾼危漏洞。主要问题来源于两⽅⾯:⽅⾯⼀:缺少安全团队对镜像的安全性进⾏检测。⽅⾯⼆:主要是镜像未及时更新安全补丁。
1.6.3 安全配置规范执⾏和密钥凭证管理不理想
云原⽣应⽤会⼤量存在应⽤与中间件、后端服务的交互,为了简便,很多开发者将访问凭证、密钥⽂件直接存放在代码中,或者将⼀些线上资源的访问品证设置为空或弱⼝令,导致攻击者很容易访问敏感数
据的权限。
1.7本章⼩结
通过本章的学习,了解云原⽣的含义,根据云原⽣和安全体系的关系和发展阶段,⾸次提出了原⽣安全的概念,然后介绍了云安全中的⼀些亟待解决的关键问题。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。