云安全—集群攻击入口攻与防
0x00 前言
说到云安全肯定不能避免的是集群相关的内容,最出色的就是Kubernetes,也就是k8s。当然docker相关的内容也算是集群的一部分。但是docker容器本身的问题还是归属于容器本身。
0x01 概述
在集群攻击入口处的内容主要为:
- 应用安全
- 恶意镜像
- K8s APi Server未授权访问
- kubelet未授权访问
- etcd未授权访问
- Docker Daemon 公网暴露
- Dashboard面板暴露
- k8s configfile泄露
- 私有镜像库暴露
0x02 应用安全
这里的应用安全实际上和云服务器的应用安全是一致的,都是针对传统web安全来说,因为部署在哪里都不能让应用安全,改变的是部署方式,并不是应用本身,所以传统web问题依然存在。
0x02 恶意镜像
这里的恶意镜像,通常指代的是docker恶意镜像,因为docker镜像的管理更加混乱,任意组织或者个人都可以上传自己制作的docker容器,那么这个问题就很严重,如果直接部署了存在恶意后门的镜像,或者监控等后门,那么去做这种容器的安全就没有任何意义。
那么应用而生的就是私有仓库,或者第三方提供安全检测的仓库,以及专门的容器检测工具。
通过私有库和容器检测工具进行风险排查和规避,通过第三方提供的安全库进行风险转移都是一个不错的选择。
这里不进行展开,会单独出一个docker容器检测,或者私有库搭建的内容
0x03 K8s APi Server未授权访问
通常使用 8080 和 6443 端口,将 “system:anonymous” 用户绑定到 “cluster-admin” 用户组,就可以创建特权容器。
0x04 kubelet未授权访问
kubelet 是 Kubernetes 集群中的一个组件,它负责管理节点上的容器。kubelet 会定期从 API Server 获取 Pod 的配置信息,并根据配置信息来启动、停止、重启容器以及监控容器的运行情况。kubelet 还负责节点的健康检查,当发现节点出现故障时,会向 Master 报告节点的状态,以便 Master 进行相应的调度。总之,kubelet 是 Kubernetes 集群中非常重要的一个组件。
1、认证为AlwaysAllow的时候此接口可未授权访问
2、10255端口出现的pod和node信息信息泄露问题
0x05 etcd未授权访问
etcd是一个开源的分布式键值对存储仓库,常用于分布式系统中的协调服务和共享配置。etcd使用Raft一致性算法来维护集群的一致性和高可用性,支持通过HTTP或gRPC接口进行访问和操作。它是Kubernetes等分布式系统的重要组件之一,用于存储集群的配置信息、状态信息、元数据等数据。
1、client-cert-auth未授权
2、2379公网泄露
3、cret证书泄露
4、client-cert-auth未授权
0x06 Docker Daemon 公网暴露
Docker Daemon 是 Docker 的后台进程,它监听 Docker API 请求并管理 Docker 镜像、容器、网络和数据卷等资源。Docker Daemon 运行在宿主机上,并负责执行用户提交的 Docker 命令,例如创建、启动、停止、删除容器,上传和下载镜像等。Docker CLI 客户端通过与 Docker Daemon 进行交互,将用户提交的命令转化为 API 请求,并将请求发送给 Docker Daemon 去处理。
docker daemon监听在/var/run/docker.sock中创建的unix socket,2375端口用于未认证的HTTP通信,2376用于可信HTTPS通信
Docker时默认会把2375端口对外开放
0x07 Dashboard面板暴露
Dashboard面板是一种可视化的数据展示界面,可以展示各种类型的数据和分析结果。通常用于企业的数据分析和决策制定,可以提供实时的数据和反馈。Dashboard面板通常包括多个组件,如图表、计数器、地图和表格等,用户可以根据自己的需求自定义展示内容和排版布局。
当Dashboard面板暴露泄露的时候,Dashboard面板本身就会成为一个比较大的攻击面。
0x08 k8s configfile泄露
configfile作为K8s集群的管理凭证,其中包含有关K8s集群的详细信息,默认的 kubeconfig 文件 $HOME/.kube/config。
0x09 私有镜像库暴露
如果私有镜像库暴露的话,那么如果攻击者拥有了操作私有镜像的权限就可以上传恶意镜像,从而进行恶意攻击。
以上都是集群在初始访问阶段可能遇到的一些问题,如果有任何遗漏再进行补充,并且每一个部分都会单独形成一篇攻与防的文章,以及对一些工具的探讨和整合。
相关文章:
云安全—集群攻击入口攻与防
0x00 前言 说到云安全肯定不能避免的是集群相关的内容,最出色的就是Kubernetes,也就是k8s。当然docker相关的内容也算是集群的一部分。但是docker容器本身的问题还是归属于容器本身。 0x01 概述 在集群攻击入口处的内容主要为: 应用安全恶…...
“传统”开发与AI开发的区别与联系(更新了GPT3.5的反馈)
1、传统开发的算法和软件整体,也可以看成是一个“大模型”,其中有不同层次的处理,最终能够完成从输入到输出的计算,不过,其中的计算都是人工定义的,一般依赖于研究成果的应用。研究成果在实际中的应用处理。…...
Unity 文字显示动画(2)
针对第一版的优化,自动适配文字大小,TextMeshPro可以拓展各种语言。第一版字母类语言效果更好。 using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI;public partial class TextBeat…...
力扣每日一题53:最大子数组和
题目描述: 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 示例 1: 输入:nums [-2,1,-3,4,-1,2,1,…...
图论04-【无权无向】-图的广度优先遍历
文章目录 1. 代码仓库2. 广度优先遍历图解3.主要代码4. 完整代码 1. 代码仓库 https://github.com/Chufeng-Jiang/Graph-Theory 2. 广度优先遍历图解 3.主要代码 原点入队列原点出队列的同时,将与其相邻的顶点全部入队列下一个顶点出队列出队列的同时,将…...
layui的一些问题
为什么table.render, ins1.config有时候获取的值是上一次的?例如ins1.conf.page.curr? 这是一段table.render代码 let ins1 table.render({...})一般情况下ins1.conf可以获得表格的当前页,页数等;但是有时候获得的页数是上一次的;主要是因为在table.reload后没有继续赋值的…...
设计模式_中介者模式
中介者模式 介绍 设计模式定义案例问题堆积在哪里解决办法中介者代替了多个对象之间的互动 使对象1 2 3 之间的互动 变为: 对象1->中介 对象2->中介 对象3->中介好友之间 约饭好友1 通知 好友2 -3 -4 等等加一个群 谁想吃饭就 通知一下 类图 代码 角色 …...
062:mapboxGL通过jumpTo方式跳转到某位置
第062个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中通过jumpTo方式跳转到某位置。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共122行)相关API参考:专栏目标示例效果 配置方式 1)查看基础设置…...
学成在线第一天-课程内容管理服务搭建以及查询课程接口设计
目录 一、搭建课程内容管理服务 二、设计接口 三、面试题 四、总结 一、搭建课程内容管理服务 没什么好说的,直接就是创建内容模块 然后这个继承父模块,然后再课程内容模块下面创建三个子模块,model、sevice、controller model依赖base…...
4.7 IP多播
思维导图: **4.7.1 IP多播的基本概念** --- **1. 定义和背景** - IP多播:从一个源点发送信息至多个终点的技术。 - 1988年:Steve Deering首次提及IP多播。 - 1992年:IETF进行了首次IP多播试验,当时有20个网点参与。 …...
XML与html解析,区别,如何使用
目录 简介: HTML(超文本标记语言): 如何使用HTML: XML(可扩展标记语言): 如何使用XML: 区别: 简介: XML(可扩展标记语言)和 HTMLÿ…...
【广州华锐互动】利用VR开展建筑塔吊安全操作学习的好处?
随着科技的不断发展,虚拟现实(VR)技术已经逐渐渗透到各个领域,为人们的生活带来了前所未有的便利。在工程教育领域,VR建筑塔吊安全操作学习作为一种新型的教学手段,正逐渐成为提高教学质量和培养高素质工程…...
分享一下怎么开发一个陪诊小程序
开发一个陪诊小程序需要综合考虑许多方面,包括但不限于市场需求、用户体验、技术实现和运营策略。以下是一篇以开发陪诊小程序为主题的文章。 一、背景介绍 随着社会的发展和人口老龄化的加剧,越来越多的老年人、病患和孕妇需要就医,而由于各…...
从一道面试题开始学习C++标准库提供的并发编程工具
一个空列表,用两个函数(只可调用一次)轮流写入值(一个写奇数,一个写偶数), 最终实现列表的值为1-100,有序排列。 简单分析:假设这两个函数分别为A和B,A函数往…...
第三章 内存管理 十三、页面置换算法(最佳置换算法、先进先出置换算法、最近最久未使用置换算法、时钟置换算法、改进型的时钟置换算法)
目录 一、定义 二、分类 1、最佳置换算法 / 最远置换算法(OPT,Optimal): 1.1、定义: 1.2、例子: 2、先进先出置换算法(FIFO): 2.1、定义: 2.2、实现方法: 2.3、例子: 3、最…...
连接到EC2,开启root登录
1.启动完新实例,下载密钥对密钥对登录 ssh -i "ec2-user.pem" ec2-userec2-xx-xx-xx-xx.compute-1.amazonaws.com2.为root设置密码 sudo passwd root3.切换到root权限 su root4.修改ssh配置文件,允许密码登陆 vi /etc/ssh/sshd_config Pas…...
线性代数-Python-02:矩阵的基本运算 - 手写Matrix及numpy中的用法
文章目录 一、代码仓库二、矩阵的基本运算2.1 矩阵的加法2.2 矩阵的数量乘法2.3 矩阵和向量的乘法2.4 矩阵和矩阵的乘法2.5 矩阵的转置 三、手写Matrix代码Matrix.pymain_matrix.pymain_numpy_matrix.py 一、代码仓库 https://github.com/Chufeng-Jiang/Python-Linear-Algebra-…...
6.MySQL内置函数
个人主页:Lei宝啊 愿所有美好如期而遇 日期函数 current_date() 当前日期 select 可以做表达式和函数的计算。 current_time() 当前时间 current_timestamp() 当前日期加时间 注意:值得说明的是这三个函数底层调用的都是同一个函数,只不…...
3dmax中导出模型到unity注意事项
从3dmax中导出 1. 注意单位,根据需要,选英寸还是选厘米 2. 不能导出有错误的骨骼,否则导入后模型网格里出现 Skinned Mesh Renderer ,对网格变换移动有影响,正常情况下都应该是 Mesh Renderer 3. 导出一般不带光源和…...
QTday05(TCP的服务端客户端通信)
实现聊天室功能 服务端代码: pro文件需要导入 network 头文件: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer>//服务端 #include <QTcpSocket>//客户端 #include <QList> #include <QMes…...
基于YOLOv26深度学习算法的社区绿化带入侵检测系统研究与实现
文章目录 基于YOLOv26深度学习算法的社区绿化带入侵检测系统研究与实现 一、研究背景和意义 二、相关技术介绍 2.1 绿化管理现状 2.2 YOLOv26目标检测算法 2.3 区域入侵检测技术 三、基于YOLOv26的社区绿化带入侵检测算法研究实现方法 3.1 系统架构设计 3.2 数据集构建 3.3 绿化…...
别再只会记流水账了!用Obsidian双链功能,把你的笔记变成可复用的知识卡片
从零散记录到知识网络:用Obsidian双链构建可复用的知识体系 你是否曾在回顾笔记时,发现那些曾经精心记录的内容像被锁在抽屉里的纸片,明明有价值却难以调用?传统笔记工具让我们养成了"收集即掌握"的错觉,直…...
WorkshopDL:快速下载Steam创意工坊模组的专业解决方案
WorkshopDL:快速下载Steam创意工坊模组的专业解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在非Steam平台玩游戏时,无法访问Steam创意工…...
基于Arduino的EPSP软驱模拟器设计与实现
1. 项目概述:基于Arduino的EPSP软驱模拟器在复古计算机爱好者圈子里,给老机器扩展存储设备一直是个热门话题。我最近折腾的这台PFBDK设备,本质上是个用现代硬件模拟老式软驱的有趣方案。它通过Arduino Mega 2560和Micro Pro开发板,…...
基于ESP32的磁吸轨道运输系统设计与实现
1. 项目概述:磁吸道路运输系统的设计初衷在模型铁路领域,TT比例(1:120)一直是个充满挑战的尺度。传统轨道系统需要复杂的布线,而道路车辆的控制更是难题。这个项目正是为了解决这些痛点而生——通过磁吸技术和ESP32控制…...
闽老师-天道 vs 人道
天道 vs 人道:一张图看透《道德经》与人生觉醒的底层逻辑 🔑 关键区分: 天道:宇宙运行的真实法则(如四季更替、供需平衡)人道:人类社会的运作系统人性:人本能的趋利避害文化属性&…...
Arduino UNO变身迷你信号发生器:基于MCP4725 DAC的正弦波/三角波生成全攻略
Arduino UNO与MCP4725 DAC打造迷你信号发生器实战指南 在电子制作和音频实验领域,信号发生器是不可或缺的基础工具。传统台式信号发生器虽然功能强大,但价格昂贵且体积庞大。本文将展示如何用Arduino UNO搭配MCP4725 DAC模块,打造一个成本不到…...
从代码到天空:深入APM飞控的`AP_Arming.cpp`,看它如何守护你的无人机第一道安全防线
从代码到天空:深入APM飞控的AP_Arming.cpp,看它如何守护你的无人机第一道安全防线 当遥控器的摇杆被推向解锁位置时,无人机并非立即响应这个动作。在电机真正开始旋转前的毫秒级瞬间,飞控系统正执行着数十项精密的安全检查。这些隐…...
跨越版本鸿沟:使用Oracle 19c OCI为DM8搭建连接Oracle 11G的DBLINK实战
1. 为什么需要高版本OCI连接低版本Oracle? 在国产化替代和数据迁移项目中,经常会遇到新旧数据库版本不兼容的问题。最近在帮客户做达梦数据库(DM8)与Oracle 11g的对接时,发现直接用11g的OCI驱动根本无法建立连接。经过…...
KMS_VL_ALL_AIO深度解析:企业级Windows与Office批量激活完整指南
KMS_VL_ALL_AIO深度解析:企业级Windows与Office批量激活完整指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 在当今企业IT环境中,Windows和Office的批量许可证管理是…...
