云原生安全2.X 进化论系列|揭秘云原生安全2.X的五大特征
随着云计算技术的蓬勃发展,传统上云实践中的应用升级缓慢、架构臃肿、无法快速迭代等“痛点”日益明显。能够有效解决这些“痛点”的云原生技术正蓬勃发展,成为赋能业务创新的重要推动力,并已经应用到企业核心业务。然而,云原生技术在创造效益的同时,却也面临着严峻的安全问题。当下常见的云原生安全产品在发挥效能的同时也引入新问题。作为数字经济时代下的特殊产物,云原生安全解决方案的未来与演进又该何去何从?
安全狗推出云原生安全2.X专题,用翔实的系列文章为读者揭晓云原生安全的演进之路以及未来趋势。
在前一篇文章中,笔者提到了诸多云原生安全1.0、云原生安全1.X等由于其自身框架性问题而存在的无法解决的弊端与限制。云原生安全2.X,即,“一体化”全栈云原生安全模型方案具有5大特征,分别为软件资产管理和安全一体化、编排环境适配一体化、工作负载安全一体化、网络层安全一体化、应用安全一体化。
一、软件资产管理和安全一体化
当前云原生安全1.X方案通过采用组合多个特定安全工具来应对相应的安全问题的同时,也带来诸多问题:
-
当使用工具越多时,需要配备的团队人员和使用培训等成本就越高
-
软件供应链不可见,软件包间接依赖漏洞风险传递不可评估
-
大杂烩的工具难以呈现在整个应用程序生命周期中的安全上下文
-
不可变静态资产(镜像等)在不同生命周期阶段重复采集、重复安全检测
-
资产安全管理停留在简单的搜索、统计阶段,缺乏多来源、多渠道资产数据深度融合和画像分析上
-
缺乏提供预防优先的能力,IaC代码在构建阶段风险不可见,应用漏洞太多且修复率低下,大量带病镜像在运行时环境中进行
-
... ....
基于对上述问题的分析,安全狗在云原生安全2.X方案中提出并细化了软件资产管理和安全一体化的目标:覆盖宿主机、镜像、容器、IaC的精细化静态、动态资产采集和安全检测,支撑“底数清、信息全、状态明、响应快”的软件资产及软件供应链安全管理需求,源头早期预防和深度分析的一体化需求。
软件资产管理和安全一体化该如何实现呢?如下图所示:
图1
针对实现路径的建议如下:
-
首先采集范围要扩展,代码即基础设施中代码和软件供应链这样的新资产形态要扩展支持,达到底数清的目标
-
然后是静态资产和动态资产一体化采集,达到信息全的目标
-
三是资产的安全检测一体化,达到状态明的目标,特别是针对不可变资产在应用构建、部署和运行时的不同生命周期阶段采集和检测一次
-
最后是基于多来源多渠道数据融合后的深度画像管理分析,支撑响应快的目标。
从实战场景的角度看,一体化目标需要达到的效果包括这五个方面:
①覆盖从代码到云的细粒度精准资产一体化采集和安全检测
②补全安全分析所需要素数据
③解决无法支持0~1Day排查
④软件供应链完整视图和风险评估
⑤预防优先,结合漏洞情报提升漏洞修复率
二、编排环境适配一体化
在展开介绍编排环境适配一体化之前,我们需要先思考“为什么需要环境安全一体化”这个问题。

图2
如上图所示,云原生支撑环境涉及面广,环节多。因此,云原生安全1.X的方案在实际运行过程中也存在了系列问题:
-
一是兼容性问题造成更多部署、运维负担;
-
二是环境的配置安全往往由特定的安全产品分散割裂管理,比如使用CSPM产品解决不同供应商云平台配置安全问题;
-
三是在国内“异构多芯、混合调度”场景往往需要同时独立部署通用版和信创版两个版本,整体安全管理被割裂。
因此,为了减轻用户安装、运维云原生安全产品的工作负担,在安全狗云原生安全2.X方案中提出了环境安全一体化的目标。针对国内关基类云原生架构“异构多芯 混合调度”的特性,可提供环境安全自适应一体化的功能,支撑统一的安全策略管理、实施、分析和无缝隙完整覆盖。
如下图所示,环境安全一体化对象清单包括CPU架构、操作系统、编排平台、容器运行时、网络CNI插件、镜像仓库、到CI/CD工具链。
图3
三、工作负载安全一体化
在运行时工作负载安全方面云原生安全1.X方案也存在一些问题,如下图所示。总体来说,主要体现在两个方面:一是主机安全、容器安全这样单品堆叠部署所带来的问题;二是安全能力孤立、分散在主机侧和容器侧,在应对容器逃逸、内核漏洞利用等高级威胁时力不从心。
图4
从底层技术原理来看,如下图所示,容器和宿主机是共用内核的轻量级隔离。一方面攻击者更容易逃逸以及进行横移攻击等,另外一方面,主机工侧和容器侧安全更适合构建一体化、协同化的威胁监测、防护和响应技术体系。
图5
因此,云原生安全2.X工作负载安全一体化的目标是:构建基于“容器侧、主机侧”的“全栈式”“一体化”多维度云原生高级威胁检测技术体系,具有联合发现、协同抵抗的体系化作战的效果。
通过工作负载安全一体化实现多维度云原生高级威胁检测技术合理布局设计,包括:主机侧和容器侧检测一体化,静态检测和动态检测一体化,特征检测、AI检测和进程行为模型检测一体化这样既能提升容器逃逸等高级威胁的整体防护效能,又能降低安全组件资源的占用。
四、网络层安全一体化
当前云原生安全1.X方案的网络层安全在四个方面存在很大的局限性:
1
网络平面分层防护影响性能
-
宿主机侧和容器侧独立防护,缺乏协同
-
同一Packet重复检查,高峰时刻对业务稳定性和吞吐影响大
2
访问控制底层技术达不到企业级技术要求
-
传统网络安全方案和工具的简单移植,包括OVN的ACL,或Iptables等集成
-
缺乏利用eBPF构建同时兼顾主机和容器侧L3-L7层的新方案
3
网络模式支持单模
-
往往只支持Overlay,或Underlay一种
-
对于不支持Kubernetes NetworkPolicy的VPC子网方案、或SR-IOV方案兼容性差
这3个方面的技术局限性综合在一起,导致第4点在应用场景方面的局限。虽然1.X方案可以满足一般场景需求,但无法满足“高度合规监管,技术安全性、稳定性、网络延迟和资源消耗要求严格”高级场景需求。换句话说,类似银行核心业务系统云原生化升级,对多模网络场景下网络访问控制的严苛技术要求是达不到的。
4
应用场景存在较大局限性
-
只满足普通业务场景需求,在性能、稳定性等方面无法达到企业级技术要求
-
无法满足银行、电力等核心业务系统云原生化需求
从底层技术角度看1.X的网络安全方案,如下图所示,使用传统的 kube-proxy 处理 Kubernetes Service, 从网卡收到一个包开始,包在内核中的转发路径特别长,图中所有橙色的框都是 Netfilter 处理点,也就是利用传统iptables工具实现访问控制的作用点,而Netfilter 大流量情况下性能很差。

图6
因此,我们在2.X中提出了网络层安全一体化的目标,采用基于零信任模型和eBPF技术设计开发高性能云原生防火墙实现主机、容器层网络安全一体化。
从技术上要如何实现?
首先利用eBPF技术解决性能问题,技术原理如图所示,利用eBPF技术要过传统的内核网络栈,缩短包转发路径。前提条件是用户的Linux内核升级到更现代化的一点的版本,建议4.19以上。

图7
然后利用eBPF解决网络安全问题。我们选择入站流量安全控制来举例,技术原理如下图所示。首先对入站流量的劫持,主要使用 eBPF 程序 hook bind 系统调用完成。和 iptables 不同,iptables 可以针对每个 netns 单独设置规则,eBPF 程序 attach 到指定 hook 点后,会对整个系统都生效。换句话说,采用eBPF技术的云原生防火墙就是能支持宿主机和容器底层网络访问控制的一体化。
图8
然后基于零信任模型实现L3-L7层访问控制策略,以及与服务网格的协同联动等安全管理需求:
-
基于身份的(identity-based)L3-L7 网络安全
-
API-aware 安全(HTTP、gRPC 等)
-
mTLS透明加/解密
-
利用sockmap/redirection 做 socket 重定向,实现与服务网格协同
-
... ...
五、应用安全一体化
如下图所示,云原生安全1.X的应用安全安全所存在的不足归纳起来主要有三个方面的原因:
01
当前主流的技术路线为内联 Web 应用防火墙 (WAF) 和单点 API 安全工具来帮助用户阻断web安全威胁;以sidecar模式部署。最大的问题是安全组件自身占用资源过大,且和业务应用绑定在同一个Pod中,在业务高峰时刻,这种技术路线方案需要安全团队有时要牺牲应用程序性能来增加保护,这给安全团队带来了挑战,往往导致安全团队最终关闭安全工具以保持应用程序正常运行。
02
大型攻防演练过程中,0day漏洞频发,而官方补丁迟迟到来,或者需要重启业务,或者老旧应用无法提供补丁,因此,安全团队需要一套基于能解决虚拟补丁的漏洞防御技术平台。
03
头痛医头脚痛医脚的孤立防护的局限性。
图9
因此,云原生安全2.X提出应用安全一体化的目标,我们归纳为构建器“里应外合”的无缝衔接方案,可以灵活地保护关键应用程序,而不至于在性能和稳定性方面做出过大的牺牲。
里应外合一体化方案如何实现呢?技术原理如下图所示:
图10
-
带外WAF:在不影响应用程序性能的情况下从L7层监控防护 Web 应用程序和 API,并与工作在L3-L4层网络微隔离等安全设施联合防御,降低性能开销。这对于那些对业务至关重要或对延迟敏感的 Web 应用程序或 API 非常有用。
-
微服务网关:对于传统单体应用,推荐使用集中的微服务安全网关。
-
内联RASP:应对频发的0Day、nDay漏洞开发一套基于虚拟补丁的漏洞防御技术平台
-
全栈安全协同,联防联抗。
本文主要分析了安全狗所提出的云原生安全2.X的五大特征以及每个特征对应的目标等等。在下篇文章笔者将重点介绍安全狗云原生安全产品云甲是如何落地云原生安全2.X概念,以及云原生安全2.X的未来拓展方向是什么,敬请期待~
相关文章:
云原生安全2.X 进化论系列|揭秘云原生安全2.X的五大特征
随着云计算技术的蓬勃发展,传统上云实践中的应用升级缓慢、架构臃肿、无法快速迭代等“痛点”日益明显。能够有效解决这些“痛点”的云原生技术正蓬勃发展,成为赋能业务创新的重要推动力,并已经应用到企业核心业务。然而,云原生技…...
json文件在faster_rcnn中从测试到训练 可行性
1.确认任务 经过mydataset文件处理后 - > 在train_res50_fpn文件内应用 # load train data set # VOCdevkit -> VOC2012 -> ImageSets -> Main -> train.txt train_dataset VOCDataSet(VOC_root, "2012", data_transform["train"], &…...
golang 1.20正式发布,更好更易更强
预期中的Go 2不会有了,1.20也算是一个小gap,从中可以一窥Go未来的发展之路。对于Go来说,未来保持1.x持续演进和兼容性之外,重点就是让Go性能更优,同时保持大道至简原则,使用尽可能容易,从这两个…...
图片显示一半怎么回事?
不知道小伙伴是否遇到过,刚刚上传的一个文件夹,有一多半的图片突然就变成了无法显示该图片或者是图片显示一半,而另外一半就显示灰色蓝色粉色条状。而且还把原文件删除了。面对这种情况,有什么解决方法呢?下面让我们一起来来看看…...
102-并发编程详解(中篇)
这里续写上一章博客 Phaser新特性 : 特性1:动态调整线程个数 CyclicBarrier 所要同步的线程个数是在构造方法中指定的,之后不能更改,而 Phaser 可以在运行期间动态地 调整要同步的线程个数,Phaser 提供了下面这些方…...
jsp羽毛球场馆管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
一、源码特点 jsp 羽毛球场馆管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql,…...
CacheLib 原理说明
CacheLib 介绍 CacheLib 是 facebook 开源的一个用于访问和管理缓存数据的 C 库。它是一个线程安全的 API,使开发人员能够构建和自定义可扩展的并发缓存。 主要功能: 实现了针对 DRAM 和 NVM 的混合缓存,可以将从 DRAM 驱逐的缓存数据持久…...
【dapr】服务调用(Service Invokation) - app id的解析
逻辑图解 上图来自Dapr官网教程,其中Checkout是一个服务,负责生成订单号, Order Processor是另一个服务,负责处理订单。Checkout服务需要调用Order Processor的API, 让Order Processor获取到其生成的订单号并进行处理。…...
Odoo丨5步轻松实现在Odoo中打开企微会话框
Odoo丨5步轻松实现在Odoo中打开企微会话框 在Odoo中开启企微会话框 企业微信作为一个很好的企业级应用发布平台,尤其是提供的数据和接口,极大地为很多企业级应用提供便利,在日常中应用广泛! 最近在项目中就遇到一个与企业微信相…...
python读取.stl文件
目录 .1 文本方式读取 1.2 stl解析 1.3 stl创建 .2 把点转换为.stl .1 文本方式读取 代码如下 stl_path/home/pxing/codes/point_improve/data/003_cracker_box/0.stlpoints[] f open(stl_path) lines f.readlines() prefixvertex num3 for line in lines:#print (l…...
vue2.0项目第一部分
论坛项目后端管理系统服务器地址:http://172.16.11.18:9090swagger地址:http://172.16.11.18:9090/doc.html前端h5地址:http://172.16.11.18:9099/h5/#/前端管理系统地址:http://172.16.11.18:9099/admin/#/搭建项目vue create . …...
锁与原子操作
锁与原子操作 锁 以自增操作为例子: void *func(void *arg) {int *pcount (int *)arg;int i 0;//while (i < 100000) {(*pcount) ; // 并不会到达100000usleep(1);} }int main(){int i 0;for (i 0;i < THREAD_COUNT;i ) {pthread_create(&thid…...
Prometheus Pushgetway讲解与实战操作
目录 一、概述 1、Pushgateway优点: 2、Pushgateway缺点: 二、Pushgateway 架构 三、实战操作演示...
常见字符串函数的使用,你确定不进来看看吗?
👦个人主页:Weraphael ✍🏻作者简介:目前是C语言学习者 ✈️专栏:C语言航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&a…...
Elasticsearch:在搜索中使用衰减函数(Gauss)
在我之前的文章 “Elasticsearch:使用 function_score 及 script_score 定制搜索结果的分数” 我有讲到 Decay 函数在搜索中的使用。在那里,我有一个例子讲述在规定的时间里,分数不进行衰减。同一的函数也可以适用于地理位置的搜索。位置搜索…...
微信小程序 Springboot英语在线学习助手系统 uniapp
四六级助手系统用户端是基于微信小程序端,管理员端是基于web端,本系统是基于java编程语言,mysql数据库,idea开发工具, 系统分为用户和管理员两个角色,其中用户可以注册登陆小程序,查看英语四六级…...
LeetCode算法题解——双指针2
LeetCode算法题解——双指针2第五题思路代码第六题思路代码第七题思路代码这里介绍双指针在数组中的第二类题型:两端夹击。 第五题 977. 有序数组的平方 题目描述: 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的…...
线性杂双功能peg化试剂——HS-PEG-COOH,Thiol-PEG-Acid
英文名称:HS-PEG-COOH,Thiol-PEG-Acid 中文名称:巯基-聚乙二醇-羧基 HS-PEG-COOH是一种含有硫醇和羧酸的线性杂双功能聚乙二醇化试剂。它是一种有用的带有PEG间隔基的交联或生物结合试剂。巯基或SH、巯基或巯基选择性地与马来酰亚胺、OPSS、…...
Linux第三讲
目录 三、 磁盘和文件管理和使用检测和维护 3.1 磁盘目录 3.2 安装软件 3.2.1 rpm命令 3.2.2 克隆虚拟机 3.2.3 yum或压缩包方式安装jdk 3.2.4 使用虚拟机运行SpringBoot项目 3.2.5 安装mysql80(57) 3.2.6 运行web项目 3.2.7 安装tomcat 三、 …...
SpringBoot07:SpringSecurity
Security是什么? 是一个安全框架。可以用来做认证和授权 官网:Spring Security SpringSecurity环境搭建 1、创建一个新的project 2、导入thymeleaf依赖 <dependency><groupId>org.thymeleaf</groupId><artifactId>thymeleaf…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...
脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...
【Linux】自动化构建-Make/Makefile
前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具:make/makfile 1.背景 在一个工程中源文件不计其数,其按类型、功能、模块分别放在若干个目录中,mak…...
【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...
ui框架-文件列表展示
ui框架-文件列表展示 介绍 UI框架的文件列表展示组件,可以展示文件夹,支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项,适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...
车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...
从零手写Java版本的LSM Tree (一):LSM Tree 概述
🔥 推荐一个高质量的Java LSM Tree开源项目! https://github.com/brianxiadong/java-lsm-tree java-lsm-tree 是一个从零实现的Log-Structured Merge Tree,专为高并发写入场景设计。 核心亮点: ⚡ 极致性能:写入速度超…...
在Zenodo下载文件 用到googlecolab googledrive
方法:Figshare/Zenodo上的数据/文件下载不下来?尝试利用Google Colab :https://zhuanlan.zhihu.com/p/1898503078782674027 参考: 通过Colab&谷歌云下载Figshare数据,超级实用!!࿰…...
手动给中文分词和 直接用神经网络RNN做有什么区别
手动分词和基于神经网络(如 RNN)的自动分词在原理、实现方式和效果上有显著差异,以下是核心对比: 1. 实现原理对比 对比维度手动分词(规则 / 词典驱动)神经网络 RNN 分词(数据驱动)…...
