云安全—K8S API Server 未授权访问
0x00 前言
master节点的核心就是api服务,k8s通过REST API来进行控制,在k8s中的一切都可以抽象成api对象,通过api的调用来进行资源调整,分配和操作。
通常情况下k8s的默认api服务是开启在8080端口,如果此接口存在未授权问题,那么就相当于k8s直接失陷。
0x01 漏洞概述
通常情况下k8s会有两个API服务,一个是8080,还有一个是6443。
6443提供https服务,并且不对外开放,支持认证和授权服务,默认情况下8080是不启动的。
0x02 攻击面
1.8080端口未授权
修改配置文件:vim /etc/kubernetes/manifests/kube-apiserver.yaml
可以通过kubectl进行基本操作:
kubectl -s 192.168.247.156:8080 get node
限制
1.20以后的版本不再允许开启此端口
补充知识
K8S API
Kubernetes API是Kubernetes的核心组件之一,其作用是提供Kubernetes集群的管理接口。Kubernetes API是一个RESTful API,可以通过HTTP协议访问。通过Kubernetes API,用户可以对Kubernetes集群进行各种操作,包括创建和管理Kubernetes资源(如Pod、Service、Deployment等),监控集群状态等。
Kubernetes API具有以下特点:
-
丰富的资源类型:Kubernetes API支持多种资源类型,包括Pod、Service、Deployment、ConfigMap、Secret等,可以满足不同场景的需求。
-
与Kubernetes控制平面的无缝集成:Kubernetes API与Kubernetes控制平面紧密集成,可以查看和管理控制平面中的各种组件,如kube-apiserver、kube-controller-manager、kube-scheduler等。
-
扩展性:Kubernetes API可以通过自定义资源定义(Custom Resource Definition,CRD)进行扩展,从而支持用户自定义资源类型和API接口。
-
安全性:Kubernetes API支持身份认证、授权和审计等安全机制,可以保障集群的安全性。
REST API
REST(Representational State Transfer)API,即表述性状态转移应用程序接口,是一种网络应用程序接口(API)设计风格和架构模式,是目前互联网上最为流行的一种客户端与服务器通信方式之一。它基于HTTP协议和独立于编程语言和平台,通过统一的接口,实现不同系统之间的数据交互和资源共享。REST API以资源为中心,采用HTTP协议中的GET、POST、PUT、DELETE等请求方式,通过URL定位资源,使用JSON、XML等格式传输数据。同时,REST API设计符合高内聚、低耦合、可扩展的设计原则,具有简单、灵活、可重用等优点,适用于各种类型的应用程序开发和集成。
k8s
Kubernetes (k8s) 是一个开源的容器编排平台,最初由 Google 发起,用于管理和运行容器化的应用程序。它提供了容器的自动部署、伸缩、负载均衡、资源调度等功能,使得应用程序的部署和管理更加简单、高效和可靠。Kubernetes 旨在帮助开发者和运维人员更好地管理容器化应用,追求可移植性、可扩展性和自动化的部署和管理。
DevOps
DevOps是一种开发和运营(Operations)方法论,旨在通过协作和自动化来提高软件交付的速度和质量,同时降低其成本和风险。DevOps强调跨职能团队的协作和消除组织内外的孤立,以便更快地推出新的软件产品和服务,同时也能够更轻松和稳定地进行操作。
在DevOps中,开发人员、测试人员和运营人员通常会一起合作,以创建一个自动化的软件交付管道。这个管道包括构建、测试、部署和监控等过程,以确保软件能够快速、高质量地交付到生产环境中。DevOps还鼓励使用持续集成(Continuous Integration)、持续交付(Continuous Delivery)和持续部署(Continuous Deployment)等自动化工具和流程来支持这个管道。
DevSecOps
DevSecOps指的是将安全性考虑融入到DevOps工作流程中的方法论和实践。它旨在通过整合安全工具、流程和实践,集成应用程序安全性的核心概念和最佳实践,以提高IT系统安全性。
在DevSecOps中,安全性是软件开发生命周期(SDLC)的一个关键输入,并贯穿整个软件开发过程。开发人员、安全团队和运维人员通过自动化和协作,共同保障应用程序的安全性。
DevSecOps的主要目标是确保应用程序的安全性,以及缩短漏洞和威胁的修补时间。它通过以下几个步骤来实现这些目标:
-
整合安全测试和漏洞扫描工具到CI/CD流程中,以自动化安全性检查。
-
在代码仓库中编写安全测试用例,以确保代码符合安全性最佳实践。
-
建立自动化的安全扫描和弱点检查流程,对生产环境进行常规检查。
-
持续监测漏洞、威胁和恶意行为,并及时修补它们。
DevSecOps是一种适合当前快速增长的软件开发需求的方法,它能够确保应用程序的安全性并为业务创造更多的价值。
CI/CD
CI/CD是指持续集成(Continuous Integration)和持续交付(Continuous Delivery)的缩写。它是一种软件开发流程,旨在通过自动化软件构建、测试、部署和交付来改进开发速度、质量和可靠性。
持续集成是指将所有的开发人员的代码合并至同一代码库,并在每次代码提交时自动执行构建、测试和代码质量检查,以确保代码的稳定性和可靠性。
持续交付是指将代码部署至生产环境的一系列自动化流程,其目的是通过重复性、规范化的开发流程提高软件交付的速度和质量。
CI/CD可以帮助开发团队更快、更安全、更可靠地构建和部署软件,同时可以减少手动操作和人为错误的风险,使开发周期更加高效和可靠。
相关文章:

云安全—K8S API Server 未授权访问
0x00 前言 master节点的核心就是api服务,k8s通过REST API来进行控制,在k8s中的一切都可以抽象成api对象,通过api的调用来进行资源调整,分配和操作。 通常情况下k8s的默认api服务是开启在8080端口,如果此接口存在未授…...

nodejs+vue啄木鸟便民维修网站设计与实现-计算机毕业设计python-django-php
1、目的: 设计一个适用于便民家电维护的平台。该系统方便管理员对用户信息的管理,使用户在不掌握任何专业知识的前提下,可以方便快速的上手,因此项目应具有广泛使用人群。该课题应包括(至少包括)以下几个基…...

【数据结构】树形结构所有路径复原为链表
目录 1. 树形结构可视化 2. 树形结构转为链表 此目标是要还原树形结构的所有路径。树形结构是一种常见的数据结构,它表示元素之间层次关系。在树形结构中,每个节点可能拥有一个或多个子节点,形成了一个分层的结构。为了还原树形结构的路径&…...

linux杀毒软件下载、安装(在线安装、离线安装)
下载 ClamAVNet 离线安装 # 离线安装 rpm -ivh --prefix/usr/local/clamav clamav*linux.x86_64.rpm # 添加用户组和组成员 groupadd clamav useradd -g clamav clamav # 创建日志目录、病毒库目录和套接字目录 mkdir -p /usr/local/clamav/logs mkdir -p /usr/local/clamav/…...

系列五、映射文件xxxMapper.xml
一、概述 mapper映射文件是mybatis中最重要的部分,涉及到的细节也非常多。 1.1、parameterType 表示输入参数的类型。例如: <select id"getUserById" parameterType"integer" resultType"org.star.entity.model.UserDO&…...

【缓存】Spring全家桶中@CacheEvict无效情况共有以下几种
Spring全家桶中CacheEvict无效情况共有以下几种 一、背景介绍二、原因分析三、解决方案 一、背景介绍 SpringBoot中使用Cacheable注解缓存数据,使用CacheEvict注解删除缓存。但是在项目使用过程中,发现使用CacheEvict注解删除缓存无效。 拓展ÿ…...
P9117 [春季测试 2023] 涂色游戏
Portal. 维护每一行、每一列最后一次染色时染上的颜色以及时间戳即可。 时间复杂度 O ( T n ) O(Tn) O(Tn)。 #include <bits/stdc.h> using namespace std;const int maxn1e55; struct node{int c,t;}a[maxn],b[maxn];void solve() {int n,m,q;cin>>n>>…...
react如何进行项目配置代理
目录 一、前言 二、配置方法 三、总结 前言: 在使用React创建应用程序时,配置代理的目的是为了解决跨域请求的问题。跨域请求是指在浏览器中,一个站点的Web应用程序向另一个不同域名的站点发送请求。由于浏览器的安全策略,这些…...

2023杭州.云栖大会:计算,为了无法计算的价值
目录 前言 第一次参加云栖大会的印象 第二次至今参加云栖大会的感受 2023云栖大会介绍 这些年,我的工作、生活、关注的技术领域等发生的变化 对未来云栖大会的期待与建议 🎈个人主页:库库的里昂 🎐C/C领域新星创作者 &#…...

MIT6.5830 Lab1-GoDB实验记录(二)
MIT6.5830 Lab1-GoDB实验记录(二) – WhiteNights Site 标签:Golang, 数据库 接下来我们将完成tuple.go的缺失代码,并通过tuple_test.go的测试。 实验步骤 观察tuple.go 观察肯定是第一步,先打开tuple.go。 快300行代…...

设计模式—创建型模式之工厂模式
设计模式—创建型模式之工厂模式 工厂模式(Factory Pattern)提供了一种创建对象的最佳方式。我们不必关心对象的创建细节,只需要根据不同情况获取不同产品即可。 简单工厂模式 比如我们有造车的工厂,来生产车,我们先…...
N.B.缩略语的意思
阅读文献的时候,经常遇到N.B.这个缩略语,是表示“注意”的意思,它是nota bene的缩写,是拉丁短语。 例如: N.B. all Values are Hexadecimal...

SpringBoot源码透彻解析—自动装配
花点时间找到程序入口: 整个自动装配的流程总结如下: bean工厂后置处理器(ConfigurationClassPostProcessor) 扫描spring.factories和spring-autoconfigure-metadata.properties两个文件,将文件中的自动装配类信息抽象成Con…...

基于springboot实现疫情防控期间外出务工人员信息管理系统项目【项目源码+论文说明】
基于springboot疫情防控期间外出务工人员信息管理系统 摘要 网络的广泛应用给生活带来了十分的便利。所以把疫情防控期间某村外出务工人员信息管理与现在网络相结合,利用java技术建设疫情防控期间某村外出务工人员信息管理系统,实现疫情防控期间某村外出…...

自动曝光算法(第一讲)
序言 失业在家无事,想到以后换方向不做自动曝光了,但是自动曝光的工作经验也不能浪费了,准备写一个自动曝光的教学,留给想做自动曝光的小伙伴参考。笔者当时开发自动曝光没有按摄影的avtvevbvsv公式弄,而是按正确的增…...
QStandardItemModel,setData和setItem区别
背景: model存储数据,用于同步view显示。数据节点全部是item。对象树结构。但是一些常用的函数的特征和用法,手册中没有提及太多,于是记录备忘。 主要包括: setRowCount,setColumnCount setItem&#x…...

应用出海新福祉,融云助IM社交迅速对齐海外用户体验
对于互联网业务而言,贴近年轻用户的创新是永恒的话题。近期,一种新的社交方式悄悄地在年轻人中流行开来,这就是“猫鼠游戏”。关注【融云全球互联网通信云】了解更多 玩法可以说是我们熟悉的“躲猫猫”游戏升级版,不同之处在于&a…...

64T存储松下mov和索尼mp4文件变0字节恢复案例
64T存储松下mov和索尼mp4文件变0字节恢复案例 小型入门的小NAS凭借超市的性价比在各行业中开始流行,可以通过搭配普通SATA硬盘就可以完成阵列上线,部署也很简单,一根网线就搞定。我们看一个影视公司64T小NAS存储比较奇怪的恢复案例。 故障存…...

【C/C++】 常量指针、指针常量、指向常量的常指针
const修饰指针的三种情况 int main() {int a 10;int b 10;//常量指针//const修饰的是int,指针指向可以改,指针指向的值不可以更改const int * p1 &a; p1 &b; //正确//*p1 100; 报错//指针常量//const修饰的是指针,指针的值&am…...

容斥原理,多步容斥
容斥意义法 设计状态表示容斥的过程。比较简单的容斥题目一般可以容斥意义。 如果我们要求方案数的话,通常情况下我们的把限制视为两个方面,一方面是总限制,一方面是对于每个物品的限制,这样设集合 S i S_i Si表示满足总限制以及…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...

超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...