云原生安全:风险挑战与安全架构设计策略

概述

数字化转型已经成为当今最流行的话题之一,大部分企业已经开启自身的数字化转型之旅,在未来企业只有数字化企业和非数字化企业之分。通过数字经济的加速发展,可以有效推动企业数字化转型的步伐。云计算作为数字化转型的底座和重要的载体,在企业中大规模的部署。

随着云计算市场规模的不断扩大,应用场景越发丰富,云计算技术也在逐年成熟和优化。从以资源为中心的云计算 1.0 时代,已跨越到了以应用为中心的云计算 2.0 时代,即云原生时代。云原生作为数字化转型的基石得到了广泛的应用,随之也带来了诸多新型安全的挑战,本文将重点介绍在云原生时代下,该注意哪些安全风险,如何进行安全体系的优化。

什么是云原生?

云原生是一种新型的云计算技术体系,也是云计算技术发展的成果和未来的趋势,不仅包括构建和运行应用程序的方法,还提供了一套技术体系和方法论。正如“原生”两字所描述的,应用程序从设计之初就考虑到了云的环境,原生为云而设计,在云上以最佳姿态运行,充分利用了云的优点,使我们的应用更灵活,更敏捷、更稳定。

图片

图 1-IT 应用服务器发展进程

云原生带来的变化

并不是我们常说的将传统应用迁移上云,就是云原生了。而是应用都是专门针对云环境而设计开发的,能够充分利用和发挥云平台的各种优势,如敏捷、弹性扩展、高可用等。云原生包括的技术很多,如容器技术、 Devops 、微服务等技术,这也是云原生常说的三驾马车。并且支持私有云、公有云和混合云等各种环境,具备端到端、基于策略控制和工作负载可移植等能力。

云原生技术给企业数字化转型带来巨大的技术支撑契机,助推企业更好的构建数字化的底座,支撑数字化业务的发展。从最初的上云到用好云、管好云。目前云原生技术无处不在,从互联网企业到传统企业都在积极部署和实践。它的应用,直接改变了企业的开发方式、运营方式和管理模式,对企业的组织与协作方式产生了重大的影响。

图片

图 2- 云生四要素及设计理念

云原生时代下的安全

随着云原生的快速发展与广泛应用,新的技术被引入到企业的技术架构中,如容器技术、微服务、 DevOps 、 Serverless 等。之前传统的安全防御体系已经无法适应,导致云原生应用程序面临着极大的安全风险。

云原生安全面临的挑战

首先我们要先搞清楚一个概念,传统环境下的安全问题在云原生环境下依然是存在的,比如 DDOS 攻击、数据泄露、越权、数据篡改、漏洞攻击等。但由于云原生架构可以使应用充分利用云计算的特性,传统的防御手段就显得有些捉襟见肘。因为传统安全更重视边界防护,而云原生安全更重视内在的持续安全,所以云原生环境面临的安全挑战也逐渐显现:

  • 镜像安全风险:

容器作为云原生的三驾马车之一,是虚拟化的主力军,业务平台的基石。通过容器我们可以轻松实现“一次构建,随处运行”。容器是基于镜像创建的,即容器中的进程依赖于镜像中的文件。镜像本身就是一个只读的模版,包含独立的文件系统和预置的应用,可以方便的、批量的创建容器。

目前企业中应用的容器大部分是来自第三方的镜像库,比如 Docker hub 。因为他们很多是定制的、开源的,所以很大可能存在漏洞,或者被提前嵌入恶意代码。随着导入生产环境运行,就很可能成为攻击者的“跳板机”,对内部环境发起攻击。

  • 运行时安全风险:

在云原生架构中,一个容器内只有一个应用,简单来说就是为每个业务创建单独的容器环境,这些应用可独立地进行开发、管理,互不影响。多个容器之间进行通过 API 进行通信,导致调用关系较为复杂,资源调整较为动态,给运行时安全检测和防护带来了挑战。逃逸漏洞就是最典型的一个漏洞,黑客利用某些漏洞或者管理员的配置问题,从容器环境中跳出而获得宿主机权限。因此,一旦单个容器环境存在逃逸漏洞,可能就会导致整个集群沦陷。针对容器运行时安全的防护,同样值得安全人员警惕。

  • 配置错误风险:

如果与云相关的系统、工具或资产配置有误,就会出现配置错误,进而危及系统,使其面临攻击或数据泄漏隐患。根据《 2020 年云安全报告》,配置错误是云的头号威胁, 68% 的公司表示配置错误是他们最担心的问题(高于上一年的 62% )。其次是未经授权的访问 (58%) 。如使用默认密码或无密码访问管理控制台,这一比例高达 30% 。虽然“默认密码或无密码访问”这一现象仅凭常识就可以避免,但要确保整个云基础设施都能正确配置则较为复杂。

  • 应用安全风险:

众所周知,云原生的应用也源自于传统的应用,所以传统的应用风险自然也被继承了下来,如失效的对象级授权、失效的用户身份认证、注入攻击、过度的数据暴露、使用含有已知漏洞的组件、不足的日志记录和监控等风险,只是云原生更加云化,使用了大量的开源组件。从某些应用中,黑客可以找到公布的或者未公布的多个漏洞进行利用,所以说开源组件代码漏洞正在成为云原生环境中常见的风险,由此为云原生应用的安全带来了更多不确定性。

典型的攻击场景

通过上文大家对云原生和云原生安全有了一个基本认识,本章将通过两个简单的攻击场景案例对云原生安全领域场景攻击技术进行分析,帮助读者理解和提高防御能力。

  • 镜像攻击场景

由于容器都是由镜像创建,所以镜像的所有特征均会被容器继承,如恶意代码、恶意软件、错误的配置甚至应用漏洞等。所以通过此案例,读者可以了解到镜像安全的重要性。

2021 年 6 月某单位云平台运维人员编制一段代码,用于远程调用查询服务。上线在即,镜像被批量部署。由于没有做权限方面的限制,导致数据被恶意查询。关闭关键应用后,并没有完全杜绝,通过开发分析,查到镜像自身代码原因,修改并替换容器后,漏洞被修复。

  • 容器逃逸攻击场景

像前文所述,容器逃逸造成的安全风险和后果是非常大的,甚至可以造成整个集群的瘫痪。相比之前的虚拟机而言,容器攻击主要在隔离性上,也就是容器逃逸,从容器环境逃逸到宿主机的攻击。

CVE-2019-5736 是 2019 年 2 月 11 日在 OSS-Security 邮件列表披露的 runc 容器逃逸漏洞。在 Docker18.09.2 之前的版本中使用的 runc 版本小于 1.0-rc6 ,因此,攻击者可以重写宿主机上的 runc 二进制文件,从而以 root 的身份执行命令,获得宿主机的 root 权限。(此案例来自于某知名杂志)

通过此漏洞,攻击者就可以绕过容器直接对宿主机进行相关指令的执行,对宿主机甚至集群造成极大影响。

云原生安全架构设计

云原生技术的发展趋势越发突出,面对云原生环境中存在的一系列安全挑战和风险,各企业急需构建一套适应自身企业发展的、基于云原生全生命周期的安全防护体系架构,从而提升安全防护能力,实现业务的连续性、可靠性和稳定性运行。

云原生安全不是某一个软件、某一个系统,而是一个体系。从开发、编译、构建、运行时到运营整个环节,在宿主机、编排平台、虚拟化、应用程序等多个角度提供了全面的安全保护能力。

图片

图 3- 云原生安全架构

云原生环境的稳定运行离不开云原生安全所倡导的体系架构,利用此架构从整个应用的生命周期中持续整合安全性的实践,确保安全性是应用程序的核心部分,最大限度地减少安全漏洞并提高合规性。

设计的原则

在云原生安全防护体系的建设过程中,需要从多个方面进行安全提升,正如云原生安全架构所示,建议遵循零信任、安全左移、持续监控 & 响应、工作负载可观测四个安全原则进行建设。

  • 零信任

零信任应该是当下安全圈最火热的代名词之一,很多安全公司都在零信任方面进行研究和探索。其核心思想是“永远信任、持续认证”,要求所有用户,无论是在组织内部还是外部,在被授予或保留对应用程序和数据的访问权限之前,都必须对安全配置和状态进行身份验证、授权和持续验证,杜绝了传统安全思想中,只要进入内网,再东西向访问都是安全、可信的行为,所以说它是一个保护基础设施和数据的框架。

零信任主要关注三个关键的原则:一是持续认证,始终验证所有资源的访问权限;二是限制访问的范围和影响,将影响范围降到可控范围内;三是自动收集上下文,整合安全用户访问行为,从多层面预防和简化颗粒度来确保云原生环境安全。鉴于此,企业在构建云原生安全架构的时候,一定要考虑和融入零信任体质,充分利用零信任的优势提高整体架构的安全性、降低安全复杂性和降低运行开销成本等。

  • 安全左移

传统的安全防御体系更多的关注在交付运维后,当发现安全漏洞和问题,再修复的过程是很痛苦的,而且成本也较高。所以,在云原生的安全架构中更强调“早发现、早预防、早处理”。从应用的开发阶段,安全就要介入,也就是所谓的“安全左移”。在 DevSecOps 组织模式中,左移意味着在软件开发生命周期的传统线性流程中将安全流程向左移动。最常见的就是测试左移和安全左移。

通过左移,摒弃了传统上待应用开发完成后,安全团队才进行各种测试的场景。这样在应用程序开发周期中就可以更早的发现问题和修复漏洞,从而缩短开发周期,提高交付质量。安全左移,意味着在整个开发生命周期内实施安全措施,而不是在周期结束后才实施。其目标就是设计具有内生安全最佳实践的软件,并在开发过程中今早检测和修复潜在的安全问题和漏洞,从而更容易、更快速、更经济地解决安全问题。

  • 持续监控 & 响应

众所周知, DevOps 是云原生的三驾马车之一,其重要性不言而喻。它是一个自动化流程,可以有效地融合开发、质量和运维三个团队的协作,加速应用程序的迭代。随着部署在云上的应用程序逐渐增多,安全问题也备受关注。

所以需要通过持续监控 & 响应的机制来跟踪和定位安全问题,给安全人员提供处理问题的必要数据,并提供有关问题的反馈,辅助安全人员分析并及时采取行动来发现安全问题。这对于实施和优化各种安全措施尤为重要,如安全事件的响应、威胁评估、数据库取证以及根本原因分析等。

  • 工作负载可观测

在云原生的环境内,运行着多种软件应用、 web 服务数据库等,复杂程度不言而喻。所以梳理好云原生环境工作负载有助于安全人员了解运行的各种应用和数据库,将工作负载之间的访问关系可视化有助于进一步了解业务之间的调用关系。最终通过这样的安全观测,可以为开发和安全团队提供统一的上下文可见性,使其安全地构建、部署和运行现代动态环境中的可扩展应用程序。

云原生安全发展趋势

企业的数字化转型热度逐渐升温,是推动企业发展的重要手段,云计算技术作为数字化转型的基石和底座,得到了广泛的应用。随着技术的变更和升级,云计算已经进入 2.0 时代,即云原生时代。不得不说,云原生的发展加速了企业的数字化转型步伐,促进了企业 IT 架构及组织的变革。

云原生应用的发展和迅速普及,给云原生安全带来挑战的同时,也带来了机遇,其重要性也越来越突出。在未来,云原生的发展趋势包括以下几个方面:

  • 云原生安全技术发展

云原生应用的普及已经成为趋势,越来越多的企业开始实践基于云原生的应用,在容器、微服务、 Serverless 、 DevOps 、服务网格等多种新技术的加持下,充分享受云原生带来的红利。自然云原生安全技术也就必须进行相应的升级或优化,符合新技术的发展要求。比如 5G 场景、边缘计算场景下如何确保容器的安全、镜像的安全、应用的安全等。

  • 云原生安全人才培养

云原生技术对于很多公司的 IT 从业者而言还可能是个新的概念,尤其是传统企业,还需要更多的学习和认识。为了更好的运营云原生的技术平台,确保云原生应用的安全,在未来急需培养一批具有开源思想、安全运营理念的云原生安全专业人员。否则安全将成为企业推广云原生技术的一个绊脚石。

  • 云原生安全标准建立

企业各自发展历史的不同,在安全方面的积淀也是有所差异。很多企业根据ISO27001 已经制定了自己的信息安全管理体系,根据等保构建了符合企业安全需要的安全风险防御体系。在云原生环境下,新的资源开始由资产变为服务,对现有的 IT 架构和安全标准提出了挑战。所以未来标准定制团队,必须根据业务的实际发展和安全的发展趋势,重新定制或升级现有的安全标准,以满足业务的连续性、稳定性运行的要求。

  • 云原生安全运营

无论是云计算 1.0 还是 2.0 ,技术一直在更新,只有运营理念不变,就是 “三分建设、七分运营” 。建设仅仅是满足了有还是没有,只有运营才能解决是否有用的问题。随着各个企业在安全建设方面的投资增加,安全设备和防御能力逐渐完善,就需要安全团队将更多的能量和精力用于信息安全运营。

不得不说一下,云原生安全运营与传统的安全运营还是有一定区别的,云原生环境的不可变基础设施的属性,觉得了安全必须要具备敏捷性、灵活性的特点,不可能缝缝补补。所以在安全方面一定要参考上文所讲的架构设计原则进行合理的安全运营安排,确保安全运营工作可以更好的推动业务的落地和发展。

结束语

文章针对云原生的概念,给企业带来的变化及给云原生的安全带来的挑战和安全的架构设计进行了简单的介绍与普及。同时也阐述了云原生安全的未来发展趋势和方向。安全问题在任何时代都会有,企业需要在不同的阶段应用不同的安全方案对业务进行保护。采取有效的措施来管理和保护云环境中的应用和数据的安全。文章多次强调云原生安全是未来云安全的发展方向之一,企业 IT 必须重视并加强对其技术的研究和实践,从而确保企业应用在云环境下的安全。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/643116.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis 面试题 | 07.精选Redis高频面试题

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【思路合集】talking head generation+stable diffusion

1 以DiffusionVideoEditing为baseline: 改进方向 针对于自回归训练方式可能导致的漂移问题: 训练时,在前一帧上引入小量的面部扭曲,模拟在生成过程中自然发生的扭曲。促使模型查看身份帧以进行修正。在像VoxCeleb或LRS这样的具…

webpack如何把dist.js中某个模块js打包成一个全局变量,使得在html引入dist.js后可以直接访问

webpack可以通过使用expose-loader来将模块中的一个js文件暴露为全局可以访问的变量。下面是一个示例代码: 1、安装expose-loader npm install expose-loader --save-dev 2、webpack.config.js配置文件 值得注意的是:我在本地使用16.14.2版本的node打包…

【深度学习】初识深度学习

初识深度学习 什么是深度学习 关系: #mermaid-svg-7QyNQ1BBaD6vmMVi {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-7QyNQ1BBaD6vmMVi .error-icon{fill:#552222;}#mermaid-svg-7QyNQ1BBaD6vmMVi .err…

【AI大模型】WikiChat超越GPT-4:在模拟对话中事实准确率提升55%终极秘密

WikiChat,这个名字仿佛蕴含了无尽的智慧和奥秘。它不仅是一个基于人工智能和自然语言处理技术的聊天机器人,更是一个能够与用户进行深度交流的智能伙伴。它的五个突出特点:高度准确、减少幻觉、对话性强、适应性强和高效性能,使得…

Airtest自动化测试工具

一开始知道Airtest大概是在年初的时候,当时,看了一下官方的文档,大概是类似Sikuli的一个工具,主要用来做游戏自动化的,通过截图的方式用来解决游戏自动化测试的难题。最近,移动端测试的同事尝试用它的poco库…

GPT5?OpenAI 创始人:GPT5 已在训练中,需要更多数据

OpenAI 最近发出征集大规模数据集的呼吁,特别是“今天在互联网上尚未公开轻松获取”的数据集,尤其是长篇写作或任何格式的对话。 GPT-5丨AI浪潮席卷全球,OpenAI 推出GPT-4 后,又于上月26日宣布今年9月、10月将推出GPT-4.5&#xf…

【LeetCode-406】根据身高重建队列(贪心)

LeetCode406.根据身高重建队列 题目描述 题目链接 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于…

数据仓库-相关概念

简介 数据仓库是一个用于集成、存储和管理大量数据的系统。它用于支持企业决策制定过程中的数据分析和报告需求。数据仓库从多个来源收集和整合数据,并将其组织成易于查询和分析的结构。 数据仓库的主要目标是提供高性能的数据访问和分析能力,以便…

网络协议与攻击模拟_07UDP协议

一、简单概念 1、UDP协议简介 UDP(用户数据报)协议,是传输层的协议。不需要建立连接,直接发送数据,不会重新排序,不需要确认。 2、UDP报文字段 源端口目的端口UDP长度UDP校验和 3、常见的UDP端口号 5…

关于C#中的HashSet<T>与List<T>

HashSet<T> 表示值的集合。这个集合的元素是无须列表&#xff0c;同时元素不能重复。由于这个集合基于散列值&#xff0c;不能通过数组下标访问。 List<T> 表示可通过索引访问的对象的强类型列表。内部是用数组保存数据&#xff0c;不是链表。元素可重复&#xf…

深入浅出理解目标检测的NMS非极大抑制

一、参考资料 物体检测中常用的几个概念迁移学习、IOU、NMS理解 目标定位和检测系列&#xff08;3&#xff09;&#xff1a;交并比&#xff08;IOU&#xff09;和非极大值抑制&#xff08;NMS&#xff09;的python实现 Pytorch&#xff1a;目标检测网络-非极大值抑制(NMS) …

【ZYNQ入门】第九篇、双帧缓存的原理

目录 第一部分、基础知识 1、HDMI视频撕裂的原理 2、双帧缓存的原理 第二部分、代码设计原理 1、AXI_HP_WR模块 2、AXI_HP_RD模块 3、Block design设计 第三部分、总结 1、写在最后 2、更多文章 第一部分、基础知识 1、HDMI视频撕裂的原理 在调试摄像头的时候&#xf…

pikachu_ssrf攻略

ssrf&#xff08;curl&#xff09;&#xff1a; 打开pikachu靶场&#xff1a; http://127.0.0.1/pikachu-master/vul/ssrf/ssrf_curl.php?urlhttp://127.0.0.1/pikachu-master/vul/ssrf/ssrf_info/info1.php 发现URL地址最后面是info1.php 猜测一下有没有可能存在info2.php?…

Socket实现服务器和客户端

Socket 编程是一种用于在网络上进行通信的编程方法&#xff0c;以下代码可以实现在不同主机之间传输数据。 Socket 编程中服务器端和客户端的基本步骤&#xff1a;服务器端步骤&#xff1a; 1.创建 Socket&#xff1a; int serverSocket socket(AF_INET, SOCK_STREAM, 0);…

npm i 报一堆版本问题

1&#xff0c;先npm cache clean --force 再下载 插件后缀加上 --legacy-peer-deps 2&#xff0c; npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/yorkie/download/yorkie-2.0.0.tgz failed, reason…

《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置(27)

接前一篇文章&#xff1a;《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置&#xff08;26&#xff09; 2.5 非透明PCI桥 本回将结合实例说明直接地址翻译过程。 2.5.2 通过非透明桥片进行数据传递 下文以图2-16中处理器x访问处理器y存储器地址空间的实…

【IEEE会议征稿】2024年第九届智能计算与信号处理国际学术会议(ICSP 2024)

2024年第九届智能计算与信号处理国际学术会议&#xff08;ICSP 2024&#xff09; 2024年第八届智能计算与信号处理国际学术会议&#xff08;ICSP 2024&#xff09;将在西安举行&#xff0c; 会期是2024年4月19-21日&#xff0c; 为期三天, 会议由西安科技大学主办。 欢迎参会&…

【Redis】网络模型

前言 Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的高性能键值对存储系统&#xff0c;广泛用于各种网络应用中作为数据库、缓存和消息代理。Redis的网络模型是其高性能的关键因素之一&#xff0c;它涉及到多个方面&#xff0c;包括内存管理、事件处理、…

数灵通可以让抖音跳转企业微信并回传

抖音作为一款热门的短视频应用&#xff0c;吸引了大量用户的关注和参与。 对于企业而言&#xff0c;如何有效地将其他平台的客户引入企业微信成为了一个重要的课题。本文以利用抖音渠道进行引流&#xff0c;跳转到企业微信为例&#xff0c;介绍一种高效的方法。 在抖音上直接…