云安全—K8s APi Server 6443 攻击面

0x00 前言

在未授权的一文中,详细描述了k8s api中的8080端口未授权的问题,那么本篇主要来说6443端口的利用。

0x01 API连接攻击面

1.匿名用户访问

匿名开放方式:kubectl create clusterrolebinding cluster-system-anonymous --clusterrole=cluster-admin --user=system:anonymous

通过 kubectl进行远程访问

kubectl -s https://192.168.247.156:6443/ --insecure-skip-tls-verify=true get nodes

在这里插入图片描述

通过cdk进行访问

./cdk kcurl anonymous get "https://192.168.247.156:6443/api/v1/nodes"

在这里插入图片描述

检查方式

kubectl get clusterrolebinding -o wide -A | grep cluster-system-anonymous

修复方式

kubectl delete clusterrolebinding cluster-system-anonymous

2.Basic静态文件丢失

kubectl支持通过静态文件的方式进行保存用户数据信息,如果攻击者拿到此文件就会直接获取到 password、user、uid、group 敏感信息,但是这种情况相对会比较少,云环境使用的也非常少。

3.证书丢失

如果能够获取到ca证书,那么就可以通过ca证书直接操作kubectl

kubectl --server=https://10.20.30.31:6443 \> --certificate-authority=ca.crt  \> --client-certificate=client.crt \> --client-key=client.key \> get nodes

4.token 丢失

kubectl也支持通过 token进行认证,每个 namespace 创建的时候,K8s 会自动在这个 namespace 下面创建一个默认的 Service Account 和对应的 secret 实例,该 Service Account 只能访问这个 namespace 的资源。

如果是管理员权限的账号,那么就会对应生成一个tokne,用这个tokne就可以通过多种方式访问到k8s服务,相当于k8s服务直接丢失。

0x02 防护

针对这些攻击面而言,除开通过匿名访问的问题,其他的都属于管理不当导致k8s登录凭证丢失的问题,那么就应该按照机密文件的方式进行保护,定期更换,访问权限,访问和使用的记录,这些内容作为PaaS提供商会同步提供此服务。并且进行检测和监控。

补充知识

K8S API

Kubernetes API是Kubernetes的核心组件之一,其作用是提供Kubernetes集群的管理接口。Kubernetes API是一个RESTful API,可以通过HTTP协议访问。通过Kubernetes API,用户可以对Kubernetes集群进行各种操作,包括创建和管理Kubernetes资源(如Pod、Service、Deployment等),监控集群状态等。

Kubernetes API具有以下特点:

  1. 丰富的资源类型:Kubernetes API支持多种资源类型,包括Pod、Service、Deployment、ConfigMap、Secret等,可以满足不同场景的需求。

  2. 与Kubernetes控制平面的无缝集成:Kubernetes API与Kubernetes控制平面紧密集成,可以查看和管理控制平面中的各种组件,如kube-apiserver、kube-controller-manager、kube-scheduler等。

  3. 扩展性:Kubernetes API可以通过自定义资源定义(Custom Resource Definition,CRD)进行扩展,从而支持用户自定义资源类型和API接口。

  4. 安全性: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的主要目标是确保应用程序的安全性,以及缩短漏洞和威胁的修补时间。它通过以下几个步骤来实现这些目标:

  1. 整合安全测试和漏洞扫描工具到CI/CD流程中,以自动化安全性检查。

  2. 在代码仓库中编写安全测试用例,以确保代码符合安全性最佳实践。

  3. 建立自动化的安全扫描和弱点检查流程,对生产环境进行常规检查。

  4. 持续监测漏洞、威胁和恶意行为,并及时修补它们。

DevSecOps是一种适合当前快速增长的软件开发需求的方法,它能够确保应用程序的安全性并为业务创造更多的价值。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Problem I. Magic Potion--2018ICPC南京

解析&#xff1a; 对于英雄跑一边二分图匹配&#xff0c;记录res1 再跑一边二分图匹配&#xff0c;记录res2 答案即为res1min&#xff08;k&#xff0c;res2&#xff09; #include<bits/stdc.h> using namespace std; int n,m,k; int g[510][510],match[510],st[510]; b…

佳能R6 m2没有样本文件时的设置方法

佳能R6 m2使用了新的DEC标识和小块长度&#xff0c;一般情况下建议使用加载样本的方式进行处理&#xff0c;如果没有样本也可以使用以下方法。 适用程序:CHS零壹视频恢复程序标准版/专业版/高级版/佳能版 解决问题: 底层原始文件会识别出错&#xff0c;导致很多个小碎片。 …

Hikari源码分析

总结 连接池关系 1、HikariDataSource构建函数->生成HikariPool对象->调用HikariPool的getConection得到连接 2、HikariPool包含ConcurrentBag 3、ConcurrentBag保存连接&#xff1a;三个集合threadList、sharedList、handoffQueue 4、ConcurrentBag管理连接&#xff1…

Web前端自动化测试Cypress实践总结

本文主要首先主要介绍了什么是自动化测试&#xff0c;接着对常用的自动化测试框架进行了对比分析&#xff0c;最后&#xff0c;介绍了如果将自动化测试框架Cypress运用在项目中。 一、自动化测试概述 为了保障软件质量&#xff0c;并减少重复性的测试工作&#xff0c;自动化测…

[架构之路-251/创业之路-82]:目标系统 - 纵向分层 - 企业信息化的呈现形态:常见企业信息化软件系统 - 商业智能、决策支持系统、知识管理

目录 前言&#xff1a; 一、企业信息化的结果&#xff1a;常见企业信息化软件 1.1 商业智能 - 管理层 1.1.1 什么是商业智能What 1.1.1.1 商业智能常见工具 1.1.2 为什么需要商业智能Why&#xff1f; 1.1.3 谁需要商业智能who&#xff1f; 1.1.4 商业智能在企业管理中的…

基于深度学习的植物识别算法 - cnn opencv python 计算机竞赛

文章目录 0 前言1 课题背景2 具体实现3 数据收集和处理3 MobileNetV2网络4 损失函数softmax 交叉熵4.1 softmax函数4.2 交叉熵损失函数 5 优化器SGD6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于深度学习的植物识别算法 ** …

c++ Vector 学习

vevtor 是c 中自带得动态数组&#xff0c;dynamic array array can hold different values/objects of same type 可以装不同得类型或者对象 dynamic size can be changed at runtime 可以运行得时候改变 要使用的话&#xff0c;先引入 #include <vector> std::vector…

Linux0.11内核源码解析-malloc

malloc介绍 Linux内核版本0.11中的malloc.c文件实现了内存分配的功能。在这个版本的Linux内核中&#xff0c;malloc.c文件包含了内核级别的内存分配函数&#xff0c;用于分配和释放内核中的内存。这些函数可以帮助内核管理可用的内存&#xff0c;并允许内核动态地分配和释放内…

html用css grid实现自适应四宫格放视频

想同时播放四个本地视频&#xff1a; 四宫格&#xff1b;自式应&#xff0c;即放缩浏览器时&#xff0c;四宫格也跟着放缩&#xff1b;尽量填满页面&#xff08;F11 浏览器全屏时可以填满整个屏幕&#xff09;。 在 html 中放视频用 video 标签&#xff0c;参考 [1]&#xff1…

Tomcat运行日志乱码问题/项目用tomcat启动时窗口日志乱码

文章目录 一、问题描述&#xff1a;二、产生原因三、解决方法 一、问题描述&#xff1a; 项目在idea中运行时日志是正常的&#xff0c;用Tomcat启动时发现一大堆看不懂的文字&#xff0c;如 二、产生原因 产生乱码的根本原因就是编码和解码不一致&#xff0c;举个例子就是翻…

Linux 环境下 安装 Elasticsearch 7.13.2

Linux 环境下 安装 Elasticsearch 7.13.2 前言镜像下载&#xff08;国内镜像地址&#xff09;解压安装包修改配置文件用 Es 自带Jdk 运行配置 Es 可被远程访问然后启动接着启动本地测试一下能不能连 Es 前言 借公司的 centos 7 服务器&#xff0c;搭建一个 Es&#xff0c;正好熟…

双目视觉检测 KX02-SY1000型测宽仪 有效修正和消除距离变化对测量的影响

双目视觉检测的基本原理 利用相机测量宽度时&#xff0c;由于单个相机在成像时存在“近大远小”的现象&#xff0c;并且单靠摄入的图像无法知道被测物的距离&#xff0c;所以由被测物的跳动导致的被测物到工业相机之间距离变化&#xff0c;使测量精度难以提高。 因此测宽仪需…