当前位置: 首页 > news >正文

云安全—集群攻击入口攻与防

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&#xff…...

【广州华锐互动】利用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的服务端客户端通信)

实现聊天室功能 服务端代码&#xff1a; pro文件需要导入 network 头文件&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer>//服务端 #include <QTcpSocket>//客户端 #include <QList> #include <QMes…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行&#xff01; sudo su - 1. CentOS 系统&#xff1a; yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...