摘要:本文将基于KubeEdge项目详细分析云原生边缘计算业务过程的威胁模型并给出对应的安全加固建议。

本文分享自华为云社区《KubeEdge发布云原生边缘计算威胁模型及安全防护技术白皮书》,作者: 云容器大未来。

KubeEdge社区已完成了对KubeEdge项目的全面安全威胁模型分析。云原生边缘计算的安全性问题一直备受用户关注,但是目前业界缺乏关于云原生边缘计算的安全威胁模型分析,用户很难对其边缘系统进行有效的安全加固。针对以上现状,作为业界首个云原生边缘计算项目,我们将进行系统分析并发布安全威胁模型及分析报告,这对于用户或vendors有着重要的安全实践指导意义。本文将基于KubeEdge项目详细分析云原生边缘计算业务过程的威胁模型并给出对应的安全加固建议。

背景

随着越来越多的用户将KubeEdge项目用于生产环境中,KubeEdge社区把安全问题放在优先地位。KubeEdge社区十分关注项目的安全,并成立Sig Security安全团队:(https://github.com/kubeedge/community/tree/master/security-team),负责KubeEdge的系统安全设计,并快速响应和处理安全漏洞。为了对KubeEdge项目进行更加全面的安全评估,KubeEdge社区联合ADA LOGICS公司、OSTIF及云原生计算基金会(CNCF)对KubeEdge项目进行安全评估并输出安全评估报告,分析和总结KubeEdge项目的安全威胁模型及相关安全问题。感谢ADA LOGICS公司的专家Adam Korczynski和David Korczynski对KubeEdge项目专业、全面的评估,该评估对KubeEdge项目的安全防护有重要的指导意义。感谢OSTIF的Amir Montazery和Derek Zimmer以及CNCF基金会,他们对这次合作提供了很大帮助。对于安全报告中发现的安全问题,KubeEdge社区已根据社区的漏洞处理策略第一时间修复,并发布release版本,版本号为v1.11.1、v1.10.2和v1.9.4,漏洞公告已发布在:https://github.com/kubeedge/kubeedge/security/advisories。

本文将分析KubeEdge的威胁模型,并给出相应的安全防护方案。

目标人群

以下人群在使用KubeEdge过程中,了解本文分析的KubeEdge威胁风险和可能的缓解措施将对他们的工作发挥很大作用:

  • KubeEdge的贡献者。 一个通用的威胁模型可能对开发KubeEdge的人很有用,他们可以从整体角度考虑并加固他们的系统。
  • 部署KubeEdge的组织。 对于在集群中使用KubeEdge的组织来说,了解常见的攻击和可能的弱点是很有用的,这样他们就可以检查和评估自己的配置。
  • 安全评估员,负责评估使用KubeEdge的Kubernetes集群(已有或新建的集群)的安全性。
  • 开发人员需要了解KubeEdge的更新和攻击,以主动避免未来可能发生的安全风险。

KubeEdge威胁模型分析

KubeEdge安全审计报告中指出,KubeEdge潜在的攻击者包括以下三部分:

  • 外部攻击者,从系统外部发起攻击。
  • 内部攻击者,包括系统内部操作人员不合规操作导致的安全问题。
  • 供应链攻击者,破坏KubeEdge软件供应链组件的攻击者。

KubeEdge社区运用ASTRIDE Low Level威胁建模方法并结合KubeEdge安全审计报告,对KubeEdge进行系统的安全分析,旨在帮助开发者或用户理解系统中潜在的安全威胁,明确风险并列举出目前KubeEdge社区已有的相应的消减机制和安全加固建议。

外部攻击分析

KubeEdge数据流图如下:

如上述数据流图所示,当数据流穿越不同的信任级别(区域)时,就存在信任边界,已在图中用红框标出。下面将详细分析KubeEdge系统架构中的信任边界(引用自KubeEdge第三方安全报告)、社区已有的消减措施并给出安全加固建议:

Threat ID 1:云端CloudCore组件与EdgeCore组件之间的连接

描述

边缘EdgeCore发起到CloudCore组件的连接。该数据流中,较低信任级别组件EdgeCore向较高信任级别组件CloudCore发起访问。EdgeCore在整个系统中有一个单独的权限级别,因此控制EdgeCore的攻击者不应该能够对其他边缘节点产生负面影响,例如通过攻击和操控CloudCore来攻击其他节点(该漏洞描述引用自安全评估报告)。

影响

攻击者恶意修改CloudCore与EdgeCore组件之间的请求和应答报文,导致通信过程存在仿冒和篡改的威胁风险。

消减措施

  • CloudCore与EdgeCore之间的通信通过数字签名证书加密和服务端/客户端双向认证的方式保障信息交互的机密性和完整性,安全加密协议使用TLS 1.2,使用安全加密算法为TLSECDHEECDSAWITHAES128GCM_SHA256,且加密算法套件白名单中默认只支持该算法,防止客户端使用不在白名单中的不安全算法进行通信造成安全风险;
  • 证书默认有效期为一年,过期后失效,防止证书被攻击者利用。用户基于kubeedge项目已有的证书轮转机制,可以实现证书过期自动更换,保障业务连续性。

安全加固建议:

  • Recommendation ID 1:使用安全长度的私钥加密,并加密保存私钥
  • Recommendation ID 2:使用可信来源的CA证书

Threat ID 2:边缘组件ServiceBus在本机范围内提供HTTP服务

描述

边缘组件ServiceBus监听本地local host端口并在本机范围内提供HTTP服务。该数据流中,较低信任级别的用户应用进程向较高信任级别组件ServiceBus发起访问。如果发起攻击,不应该使攻击者能够将影响范围扩大到云端控制面(该漏洞描述引用自安全评估报告)。

影响

ServiceBus组件收到的数据往往是不受管理面控制的,攻击者能够对ServiceBus组件发起恶意报文攻击,导致通信过程存在仿冒和篡改的威胁风险。ServiceBus组件异常仅影响单个边缘节点服务故障,不会导致整个KubeEdge系统崩溃。

消减措施

  • ServiceBus组件仅监听本地local host端口,已限制服务范围,只允许本机进程访问,通过对本机用户访问权限的限制保障本组件安全;
  • 服务端接收客户端连接时记录连接访问的日志,可作为审计日志,可以让管理员及时发现攻击的发生,并及时停止ServiceBus服务,阻止攻击继续进行;
  • ServiceBus服务默认关闭,遵守默认安全的原则。在用户使用文档中已明确提示用户如果开启该服务,则存在上述风险。

安全加固建议

  • Recommendation ID 3:严格限制边缘节点的用户登录权限
  • Recommendation ID 4:严格限制应用部署的权限
  • Recommendation ID 5:严格校验应用镜像的合法性

Threat ID 3:边缘端Device通过MQTT Broker连接到EdgeCore。

描述

边缘device设备通过MQTT Broker(集成在EventBus组件中)连接到EdgeCore。该数据流中,较低信任级别的用户device设备向较高信任级别组件EdgeCore发起访问(该漏洞描述引用自安全评估报告)。

影响

EdgeCore组件收到的数据往往是不受管理面控制的,攻击者能够对MQTT Broker发起恶意报文攻击,存在仿冒和篡改的威胁风险。如果发起攻击导致EventBus组件异常,异常仅影响单个边缘节点服务故障,不会导致整个KubeEdge系统崩溃。

消减措施

  • MQTT Broker仅监听在本机端口,已限制服务范围,只允许本机进程访问,通过对本机用户访问权限的限制保障本组件安全;同时,EventBus组件可作为客户端,对接外置第三方MQTT Broker,如果用户使用第三方MQTT Broker,详细的消减措施请参考对应第三方MQTT Broker服务提供厂商的安全文档。
  • EventBus仅对MQTT Broker中的特定Topic进行处理,用户无法通过该通道对EdgeCore任意访问。

安全加固建议

  • Recommendation ID 3:严格限制边缘节点的用户登录权限
  • Recommendation ID 4:严格限制应用部署的权限
  • Recommendation ID 5:严格校验应用镜像的合法性
  • Recommendation ID 6:严格限制边缘Device设备的接入

Threat ID 4:Edged管理和监控Pods及其他K8s资源

描述

Edged管理和监控Pods及其他K8s资源。该数据流中,较低信任级别的应用容器与较高信任级别组件EdgeCore之间进行数据交互。如果主动发起连接时,被恶意服务器攻击,不应该使攻击者能够将影响范围扩大到云端控制面(该漏洞描述引用自安全评估报告)。

影响

如果Edged访问的CRI插件被攻击者恶意伪造,则存在CRI插件仿冒和篡改的威胁风险,导致本地业务异常。

消减措施

  • Edged与CRI插件通信时,只在本地访问受信任路径,由管理员控制访问路径,最小化Unix domain sockets文件描述符的权限,避免被仿冒者恶意替换。

安全加固建议

  • Recommendation ID 3:严格限制边缘节点的用户登录权限
  • Recommendation ID 7:严格审查边缘节点上CRI插件的配置

Threat ID 5:MetaServer在边缘节点提供HTTP服务

描述

MetaServer作为边缘“api-server”,对边缘插件提供HTTP服务。该数据流中,较低信任级别的用户应用插件向较高信任级别组件MetaServer发起访问(该漏洞描述引用自安全评估报告)。

影响

MetaServer组件收到的数据往往是不受管理面控制的,攻击者能够对MetaServer组件发起恶意报文攻击,导致通信过程存在仿冒和篡改的威胁风险。MetaServer组件异常仅影响单个边缘节点服务故障,不会导致整个KubeEdge系统崩溃。

消减措施

  • MetaServer组件仅监听本地local host端口,已限制服务范围,只允许本机进程访问,通过对本机用户访问权限的限制保障本组件安全;
  • MetaServer服务默认关闭,遵守默认安全的原则。在用户使用文档中已明确提示用户如果开启该服务,则存在上述风险。

安全加固建议

  • Recommendation ID 3:严格限制边缘节点的用户登录权限
  • Recommendation ID 4:严格限制应用部署的权限
  • Recommendation ID 5:严格校验应用镜像的合法性

内部攻击分析

对于内部管理员或操作人员,可能的风险主要包括管理员或操作人员错误操作将恶意软件部署至集群中、在高风险场景中执行高风险配置等。

消减措施

  • KubeEdge用户手册中已提供各个组件的详细功能描述及配置使用指导文档,指导系统管理员或操作人员正确操作,减少人为误操作或误配置导致的安全风险。由于KubeEdge的持续迭代,该文档也将持续更新并完善。

安全加固建议

  • Recommendation ID 3:严格限制边缘节点的用户登录权限
  • Recommendation ID 4:严格限制应用部署的权限
  • Recommendation ID 8:严格划分系统中各个角色权限
  • Recommendation ID 9:及时跟进并更新KubeEdge版本

供应链攻击分析

攻击可能发生在典型软件供应链的每一个环节,而且在当今环境中,这些类型的攻击越来越公开,破坏性和代价高昂。攻击方向包括源代码完整性、构建完整性和构建产物的可用性。

消减措施

  • 社区联合安全公司对KubeEdge软件供应链流程已进行SLSA等级评估,并引入SLSA软件供应链安全评估框架,包括对源代码、构建流程、依赖库等进行安全评估,防止针对软件供应链的攻击,从源头上保障软件供应链的安全。详细SLSA框架描述请参考https://slsa.dev/spec/v0.1/#supply-chain-threats;
  • KubeEdge仓库CI/CD流水线中已开启dependence bot第三方依赖库检查功能,及时发现第三方依赖库的安全漏洞并在KubeEdge版本中同步更新,降低被攻击的风险;
  • KubeEdge security team已具备完整漏洞处理机制,包括漏洞发现、漏洞上报、漏洞分析处理、漏洞披露和发布整个流程,可以及时处理和修复安全漏洞。详细漏洞处理及披露策略请见https://github.com/kubeedge/community/blob/master/security-team/SECURITY.md。
  • 社区将根据SLSA软件供应链安全评估框架持续改进软件供应链安全。

安全加固建议

  • Recommendation ID 10:根据社区发布的校验文件严格校验二进制文件
  • Recommendation ID 11:在用户或vendors的软件供应链中引入SLSA软件供应链安全评估框架

安全加固建议列表

Recommendation ID 1 - 使用安全长度的私钥加密,并加密保存私钥

描述

建议用户生成至少为2048位私钥,且在本地加密存储私钥,存储私钥的文件设置最小化的访问权限,仅属主可读。

Recommendation ID 2 - 使用可信来源的CA证书

描述

从可信的CA获取数字证书,不使用自签名证书。

Recommendation ID 3 - 严格限制边缘节点的用户登录权限

严格限制边缘节点的本机权限,限制外部用户的用户登录权限,减少非必要的授权。

Recommendation ID 4 - 严格限制应用部署的权限

描述

严格限制边缘节点应用部署的权限,只有系统服务和管理员才能拥有部署特权容器的权限;

Recommendation ID 5 - 严格校验应用镜像的合法性

描述

在边缘节点部署应用时,严格校验应用镜像的合法性,防止部署恶意应用。

Recommendation ID 6 - 严格限制边缘Device设备的接入

描述

对于接入边缘节点的Device设备进行严格审核,避免非必要设备接入。

Recommendation ID 7 - 严格审查边缘节点上CRI插件的配置

描述

严格审查CRI插件的配置,使用CRI对应插件的官方推荐配置。

Recommendation ID 8 - 严格划分系统中各个角色权限

描述

严格划分系统中各个角色权限,通过RBAC、OPA等方式实现系统角色权限的细粒度控制。

Recommendation ID 9 - 及时跟进并更新KubeEdge版本

描述

社区发现漏洞后将在最近的3个minor release版本中合入解决,用户可以关注社区security advisory获取漏洞披露信息,并及时跟进并更新KubeEdge版本。

Recommendation ID 10 - 根据社区发布的校验文件严格校验二进制文件

描述

用户使用社区发布的二进制文件前,应该根据社区发布的校验文件(校验文件格式:checksum_组件二进制包名称.txt)严格校验二进制文件,防止二进制被仿冒和篡改。社区release软件包发布地址https://github.com/kubeedge/kubeedge/releases。

Recommendation ID 11 - 在用户或vendors的软件供应链中引入SLSA软件供应链安全评估框架

描述

用户或vendors在使用源代码构建过程中,应该参考SLSA软件供应链安全评估框架,对源代码、构建流程、依赖库等进行安全加固。

附录:相关链接

• 社区漏洞处理机制: https://github.com/kubeedge/kubeedge/security/policy

• 安全审计报告: https://github.com/kubeedge/community/tree/master/sig-security/sig-security-audit/KubeEdge-security-audit-2022.pdf

• 社区security advisory链接: https://github.com/kubeedge/kubeedge/security/advisories

• KubeEdge威胁模型及安全防护分析(本文档): https://github.com/kubeedge/community/tree/master/sig-security/sig-security-audit/KubeEdge-threat-model-and-security-protection-analysis.md

• 社区用户文档链接: https://kubeedge.io/en/docs

• SLSA软件供应链安全框架: https://slsa.dev/spec/v0.1/#supply-chain-threats

• release链接地址: https://github.com/kubeedge/kubeedge/releases

点击关注,第一时间了解华为云新鲜技术~

KubeEdge发布云原生边缘计算威胁模型及安全防护技术白皮书的更多相关文章

  1. KubeEdge:下一代云原生边缘设备管理标准DMI的设计与实现

    摘要:KubeEdge设备管理架构的设计实现,有效帮助用户处理设备数字孪生进程中遇到的场景. 本文分享自华为云社区<KubeEdge:下一代云原生边缘设备管理标准DMI的设计与实现>. 随 ...

  2. KubeEdge,一个Kubernetes原生边缘计算框架

    ​KubeEdge成为第一个Kubernetes原生边缘计算平台,Edge和云组件现已开源! 开源边缘计算正在经历其业界最具活力的发展阶段.如此多的开源平台,如此多的整合以及如此多的标准化举措!这显示 ...

  3. 重磅!业界首个云原生批量计算项目Volcano正式晋级为CNCF孵化项目

    摘要:4月7日,云原生计算基金会(CNCF)宣布,由华为云捐献的业界首个云原生批量计算项目Volcano正式晋级为CNCF孵化项目. 4月7日,云原生计算基金会(CNCF)宣布,由华为云捐献的业界首个 ...

  4. 阿里云物联网边缘计算加载MQTT驱动

    写在前面 本文在LinkEdge快速入门样例驱动的基础上,加载了MQTT订阅的客户端,使得边缘端容器可以通过MQTT获得外部数据. 1. 系统需求 物联网边缘计算平台,又名Link IoT Edge[ ...

  5. 巨杉数据库加入CNCF云原生应用计算基金会,共建开源技术生态

    近日,巨杉数据库正式加入全球顶级开源社区,云原生应用计算基金会 (Cloud Native Computing Foundation,以下简称CNCF),成为CNCF基金会会员,是中国最早加入的开源云 ...

  6. 万物智联,腾讯云 IoT 边缘计算揭秘——云+未来峰会开发者专场回顾

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 背景:现在是万物互联的时代,智能穿戴设备,智能家居,无人商业,改变了我们的生活方式.预计到2021年,全球物联网设数将达到150亿,超过手机 ...

  7. 云原生生态周报 Vol. 8 | Gartner 发布云原生趋势

    业界要闻 Gartner 发布云原生基础设施未来的八大趋势:权威分析机构 Gartner 在对 2020 年技术趋势的展望当中指出:“预计2020年所有领先的容器管理软件均内置服务融合技术,到2022 ...

  8. 灵雀云发布云原生制品仓库Harbor企业版(Alauda Registry Service for Harbor)

      灵雀云发布云原生制品仓库Harbor企业版(Alauda Registry Service for Harbor) 近日,国内领先的云原生全栈私有云提供商灵雀云宣布,推出企业版云原生制品仓库Ala ...

  9. Volcano 社区 v1.7.0 版本正式发布 | 云原生批量计算

    摘要:北京时间2023年1月9日,Volcano社区v1.7.0版本正式发布. 本文分享自华为云社区<Volcano 社区 v1.7.0 版本正式发布 | 云原生批量计算>,作者:华为云云 ...

  10. 公有云上构建云原生 AI 平台的探索与实践 - GOTC 技术论坛分享回顾

    7 月 9 日,GOTC 2021 全球开源技术峰会上海站与 WAIC 世界人工智能大会共同举办,峰会聚焦 AI 与云原生两大以开源驱动的前沿技术领域,邀请国家级研究机构与顶级互联网公司的一线技术专家 ...

随机推荐

  1. Java服务总在半夜挂,背后的真相竟然是...

    写在前面 最近有用户反馈测试环境Java服务总在凌晨00:00左右挂掉,用户反馈Java服务没有定时任务,也没有流量突增的情况,Jvm配置也合理,莫名其妙就挂了 问题排查 问题复现 为了复现该问题,写 ...

  2. AsyncOperation更好的实现大场景载入

    说明:为了实现场景A->大场景B,可以让场景A->等待场景C->大场景B 知识点:AsyncOperation;AsyncOperation.allowSceneActivation ...

  3. 2022.7.12 thecold 讲课纪要

    前言 上午刚学完平衡树,听学长说下午讲 \(LCT\) ,想了想就我这种蒟蒻平衡树还写不明白就搞 \(LCT\) ,绝对会挂,就打算下午去初中集训班摸摸鱼. 一进去就看见了 thecold 学长,真的 ...

  4. freeRTOS 学习

    一.任务状态 任务状态可以分成 Running 和Not Running: 但实际的Not Running状态还有许多的其他状态作为细分. 包括挂起,阻塞和就绪态 挂起状态表示该任务虽然已经创建但是在 ...

  5. Verilog HDL数据流建模与运算符

    数据流建模使用的连续赋值语句由关键词assign开始,一般用法如下: wire [位宽说明]变量名1, 变量名2, ..., 变量名n; assign 变量名 = 表达式; 只要等号右边的值发生变化, ...

  6. UNI-APP之微信小程序转H5

    开始 最近有个需求,需要将微信小程序中一些页面和功能改成h5,这次功能开发的时间有点紧,而且重新写一套有点来不及.考虑到微信小程序与uni-app有着一些共通之处,所以打算直接转成uni-app.un ...

  7. Flutter搭建

    目录 下载 Flutter SDK 配置 Flutter 环境变量及镜像 检查开发环境 参考 下载 Flutter SDK flutter官网下载:https://flutter.io/sdk-arc ...

  8. 【Spring Boot】【外包杯】学习day02 | 快速搭建一个Spring Boot项目

    1.

  9. Serializable是什么?为什么在Entity层要实现Serializable接口

    我在做房产信息管理系统时用到了Serializable接口 Serializable含义: 一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才能被序列化. Serializ ...

  10. 在EXCEL表格中快速自动求和

    在Microsoft Excel中,可以通过多种方式快速自动求和.以下是一种简单但常用的方法: 使用SUM函数 选定求和区域: 在Excel表格中,首先需要选定要进行求和的区域.这可以是一个列.行或者 ...