有史以来第一次利用 Kubernetes RBAC 攻击后门集群

news2024/9/20 16:59:11

我们最近发现了有史以来第一个证据,表明攻击者正在野外利用 Kubernetes (K8s) 基于角色的访问控制 (RBAC) 创建后门。

攻击者还部署了 DaemonSets 来接管和劫持他们攻击的 K8s 集群的资源。我们的研究表明,该活动正在积极针对至少 60 个野外集群。  

这篇博文是我们对野外错误配置的 K8s 集群进行的全面研究的一部分。我们的研究结果意义重大,因为它们揭示了错误配置的风险,以及即使是大型组织也可能忽视保护其集群的重要性,从而使他们容易因一个错误而遭受潜在的灾难。 

攻击

我们记录并分析了对我们的一个 K8s 蜜罐的攻击,该蜜罐利用 RBAC 系统获得持久性。攻击者使用 DaemonSets 部署容器来运行门罗币挖矿程序。 

初始访问是通过错误配置的 API 服务器获得的,该服务器允许来自具有特权的匿名用户的未经身份验证的请求。攻击者发送了几个 HTTP 请求来列出秘密,然后发出两个 API 请求以通过列出“ kube-system”命名空间中的实体来获取有关集群的信息。接下来,攻击者通过查找名为“kube-controller”的部署来检查攻击是否已经部署在这个特定的集群上。 

攻击者还试图删除各种命名空间中的一些现有部署,包括“kube-secure-fhgxtsjh”、“kube-secure-fhgxt”、“api-proxy”和“worker-deployment”。我们假设攻击者正在禁用遗留活动或竞争对手的活动以增加可用的 CPU 并减少在服务器耗尽时被发现的机会。 

这次攻击最有趣的部分是攻击者使用 RBAC 获得持久性。攻击者创建了一个具有接近管理员级别权限的新 ClusterRole。因为它是一个集群角色,所以它没有绑定到特定的命名空间。

接下来,攻击者在“kube-system”命名空间中创建了“ServiceAccount ”、“kube-controller ” 。最后,攻击者创建了一个“ClusterRoleBinding”,将 ClusterRole 与 ServiceAccount 绑定以创建强大且不显眼的持久性。  

图 1:攻击者创建的具有类似管理员权限的 ClusterRole  

此时,即使匿名用户访问被禁用,攻击者也会创建允许进一步利用集群的持久性。此外,虽然将“cluster-admin”角色绑定到新用户或可疑用户可能会触发警报,但攻击者创造了一种巧妙的方式来很好地融入 API 审计日志。最终,通过设置这个看起来合法的 ClusterRoleBinding 'system:controller:kube-controller',攻击者可以在不引起任何警报的情况下潜伏在雷达之下。 

作为我们环境的一部分,我们在集群的不同位置公开了 AWS 访问密钥。当天晚些时候,我们收到了一个信标,表明攻击者使用访问密钥来尝试进一步访问目标的云服务提供商帐户,并利用攻击窃取更多资源、数据并脱离特定范围k8s集群。 

然后,攻击者创建了一个 DaemonSet,通过单个 API 请求在所有节点上部署容器。DaemonSet 创建请求对象包含容器镜像'kuberntesio/kube-controller:1.0.1',托管在公共注册表 Docker Hub 上。对集群的影响是资源劫持。 

在 Docker Hub 上查看容器镜像“kuberntesio/kube-controller:1.0.1”时,我们发现该容器自五个月前上传以来被拉取了 14,399 次,表明该活动范围广泛。我们发现了另外 60 个暴露的 K8s 集群,这些集群具有该攻击者主动攻击的证据——这证明了该活动的规模。 

容器“kuberntesio/kube-controller”有 3 个标签,我们分析了所有标签。在每个容器镜像中,我们发现了二进制 kube-controller (MD5= 2833c82055bf2d29c65cd9cf6684449a),在 VirusTotal 中被检测为加密矿工。

我们还在每个容器镜像上找到了配置文件。钱包地址表明攻击者已经开采了 5 个 XMR,按照这种开采速度,他们每年可以从一个工人那里再获得 5 个(200 美元)。 

名为“kuberntesio/kube-controller”的容器镜像是一个冒充合法“kubernetesio”帐户的域名仿冒案例。尽管只有几十个容器镜像,但它已经积累了数百万次拉取。该图像还模仿了流行的“kube-controller-manager”容器镜像,它是控制平面的关键组件,运行在每个主节点上的 Pod 中,负责检测和响应节点故障。

从本质上讲,它是一个广泛使用的 K8s 组件,应该存在于集群上,并且可能会欺骗从业者认为它是一个合法的部署而不是一个 cryptominer。由于它被设计为连续运行,因此没有人会质疑它的存在。 

将攻击映射到 Kubernetes 的 Microsoft 威胁矩阵

作为最佳实践,我们的团队通常将攻击的组件映射到 MITRE ATT&CK 框架的相应技术。然而,在这种情况下,MITRE 尚未发布针对 Kubernetes 集群的攻击框架。我们利用了微软创建的威胁矩阵,并添加了一些新的建议: 

我们将这种攻击命名为 RBAC Buster 一种新的 K8s 攻击,旨在利用 K8s API 服务器创建 ClusterRoleBinding 并在错误配置修复后获得对集群的持久性完全访问权限。  

使用更新的 Kubernetes 威胁矩阵保护容器化环境

https://www.microsoft.com/en-us/security/blog/2021/03/23/secure-containerized-environments-with-updated-threat-matrix-for-kubernetes/

MITRE ATT&CK ®是一个全球可访问的基于真实世界观察的对手战术和技术的知识库。

ATT&CK 知识库被用作私营部门、政府以及网络安全产品和服务社区开发特定威胁模型和方法的基础。

随着 ATT&CK 的创建,MITRE 正在履行其使命,即通过将社区聚集在一起以开发更有效的网络安全来解决问题,创造一个更安全的世界。ATT&CK 是开放的,任何人或组织都可以免费使用。

https://attack.mitre.org/

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

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

相关文章

026:Mapbox GL加载矢量切片数据源

第026个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中加载矢量切片数据源。将矢量源添加到地图。使用其 tileset URL(mapbox:// + tileset ID)添加任何 Mapbox 托管的 tileset。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例…

python@可变对象和不可变对象@按值传递和引用传递@python运行可视化工具

文章目录 可变对象和不可变对象🎈可视化工具🎈可变对象和idegeg变量名和内存地址🎈函数调用对参数的修改😂Note 按值传递vs引用传递note🎈如何借助函数修改外部变量的值?Note 可变对象和不可变对象🎈 在Py…

这些不可不知的JVM知识

JVM是面试中必问的部分,本文通过思维导图以面向面试的角度整理JVM中不可不知的知识。 先上图: JVM必备知识 1、JVM基本概念 1.1、JVM是什么 JVM 的全称是 「Java Virtual Machine」,也就是我们耳熟能详的 Java 虚拟机。 JVM具备着计算机的…

vue3 Pinia快速入门

为什么是Pinia 怎么说呢,其实在过往的大部分项目里面,我并没有引入过状态管理相关的库来维护状态。因为大部分的业务项目相对来说比较独立,哪怕自身功能复杂的时候,可能也仅仅是通过技术栈自身的提供的状态管理能力来处理业务场景…

huggingface下载的.arrow数据集读取与使用说明

1.数据下载方式:load_dataset 将数据集下载到本地:(此处下载的是一个物体目标检测的数据集) from datasets import load_dataset # 下载的数据集名称, model_name keremberke/plane-detection # 数据集保存的路径 save_path da…

苹果Mac电脑清理垃圾软件卸载工具CleanMyMac X

最近刚刚入手了一台 M1 Macbook,因为不是很懂下载了很多软件,然后又卸载了一些,导致系统内存在很多垃圾文件,我也不知道怎么清理,后来查询了一些资料,大家都普遍推荐 CleanMyMac X,于是经过我一…

触摸屏是如何诞生的,它又是如何影响和改变着我们的生活?

芊芊玉指在小小的屏幕上滑动,天下事便了然于胸。这就是手机触摸屏给我们的生活带来的改变。 曾几何时,我们是生活在九宫格或者全键盘上的“拇指族”。一股浪潮席卷而来,手机上的实体按键都消失了,虚拟按键仅在需要时出现。触摸屏是…

论文实验1、安装tensorflow运行节点嵌入相关方法

还是官方的教程好使 使用 pip 安装 TensorFlow 只有三步 1.安装python,版本太高不行,在推荐版本里选最高的。 2.安装python虚拟环境venv python -m venv --system-site-packages .\venv .\venv\Scripts\activate 3.在虚拟环境里装tensorflow pip…

vue的watch侦听器、watch的属性 immediate(侦听属性)、deep(侦听一个对象)

1.什么是watch侦听器 watch侦听器允许开发者监视数据的变化,从而针对数据的变化做特定的操作。 语法格式如下: const vm new Vue({el: #app,data: { username: },watch: {//监听username值的变化// newVal 是"变化后的新值”,oldVal 是"变…

Golang每日一练(leetDay0046)

目录 136. 只出现一次的数字 Single Number 🌟 137. 只出现一次的数字 II Single Number II 🌟🌟 260. 只出现一次的数字 III Single Number III 🌟🌟🌟 🌟 每日一练刷题专栏 &#x1f3…

linux docker搭建Zfile

1.下载镜像 docker pull stilleshan/zfile2.创建挂载目录 mkdir -p /opt/docker/zfile #自定义路径3.运行 docker run -d --namezfile --restartalways -p 1111:8080 \-v /opt/docker/zfile/conf:/root/.zfile-v4 \-v /opt/docker/zfile/data:/root/zfile/data \stillesha…

C/C++每日一练(20230425)

目录 1. 成绩分布 ※ 2. 汇总区间 🌟 3. 矩阵置零 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 成绩分布 原标题:统计某一单…

基础数据结构-顺序表

顺序表 顺序表定义结构体定义初始化扩容函数打印函数尾插和尾删头插和头删查找函数指定位置插入和删除顺序表销毁 顺序表定义 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 顺序表又分为…

图像预处理方法

图像预处理 膨胀腐蚀概述 两个基本的形态学操作是腐 和膨胀。他们 的变体构成了开运算 ,闭运算, 梯度等。 根据卷积核的大小前景的所有像素会腐 掉 变为 0 ,所以前景物体会变小整幅图像的白色区域会减少。 对于去除白噪声很有用 也可以用来…

推荐系统搭建全程图文攻略

推荐系统搭建全程图文攻略 推荐系统架构简介 整体推荐架构图: 推荐整体从数据处理开始,默认数据从关系型数据到每天增量导入到hive,在hive中通过中间表和调用python文件等一系列操作,将数据处理为算法数学建模的入口数据&#x…

【SVN】在Windows系统上进行SVN的基本操作(检出,更新,提交,分支合并分支,还原,制造冲突以及解决冲突,忽略)

介绍 这里是小编成长之路的历程,也是小编的学习之路。希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡。 一个人为什么要努力&a…

其实苹果知道自己离不开中国制造,因此悄悄给自己留了后路

苹果在加速离开中国,不过从苹果的做法却又可以看到它其实很清醒地认识到无法离开中国制造,因此它在力推印度制造的时候,其实并没拼尽全力,深刻认识到印度制造和印度市场与中国的差距。 一、印度制造和印度市场与中国的差距 2022年…

防雷知识:什么是雷电浪涌

浪涌是突然发生并超过典型工作电压的过电压。一般来说,浪涌是电路中短暂的电流、电压或功率波。今天我们就来科普一下什么是雷电浪涌。 什么是浪涌? 浪涌,顾名思义,是一种突然发生并超过典型工作电压的过电压。一般来说&#xf…

工具链和其他-异步模块加载

目录 CMD/AMD Asynchronous Module Definition(AMD异步模块定义,语法风格) Common Module Definition ES6/CommonJS CommonJS ES6 Module 加载器示例 总结 cmd和amd的区别 现在有哪些异步加载方式 整体结构 编程:commonjs es6 module (有可能解…

基于STM32和oneNET云平台的数据采集系统(MQTT协议)

文章目录 前言一、onenet云平台产品创建二、硬件选择三、设计理念四、实战编程1. 传感器部分2. ESP82663. 定时器4. 串口5. MQTT 五、进阶练习 前言 该篇为基于stm32esp8266通过mqtt协议连接onenet物联网云平台,单片机部分将采集到的数据(温湿度、光照强度、压强等…