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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

K8S部署时IP问题

本次环境搭建需要安装三台Centos服务器(一主二从);搭配的前提时做好ip的设置 主机IP规划 IP地址的设定需要根据自己主机来设置,在虚拟机的虚拟网络编辑器中看他给你的ip;不要查什么ipconfig了。 在虚拟网络编辑器中…

Ansible中的任务执行控制

循环 简单循环 {{item}} 迭代变量名称 loop: - value1 - value2 - ... //赋值列表{{item}} //迭代变量名称循环散列或字典列表 - name: create filehosts: host1tasks:- name: file moudleservice:name: "{{ item.name }}"state: "{{…

UG\NX二次开发 先设置默认颜色再创建对象

文章作者:里海 来源网站:里海NX二次开发3000例专栏 感谢粉丝订阅 感谢 qq_42461973 订阅本专栏,非常感谢。 简介 有粉丝问,可不可以先设置默认颜色再创建对象?这个是可以的,下面是例子: 效果 代码 #include "me.hpp" using namespace std;

毅速丨3D打印结合拓扑优化让轻量化制造更容易

轻量化可以减少产品的重量,提高产品的性能和效率,同时减少能源消耗和排放。尤其在航空航天、汽车制造造等行业对轻量化追求更高。当前,随着制造技术的发展,拓扑优化结合3D打印为轻量化制造带来的显著的优势正在逐渐凸显。 首先&am…

APM建设踩了哪些坑?去哪儿旅行分布式链路追踪系统实践

一分钟精华速览 分布式链路追踪系统在企业的APM体系中扮演着重要的角色。本文分享了去哪儿旅行构建分布式链路追踪系统的实践经验。从APM整体架构设计入手,讲述了日志收集、Kafka传输和Flink任务处理等环节的性能优化实践和踩坑经验。 同时,作者结合丰…

绝地求生msvcp140.dll丢失报错怎么办,这四个方法都可以解决

在回答这个问题之前,我们先来了解一下什么是msvcp140.dll。msvcp140.dll是微软Visual C 2015 Redistributable的一个组件,它包含了许多运行库文件,用于支持各种应用程序的正常运行。当你在玩《绝地求生》(俗称“吃鸡”&#xff09…

深入了解 CPU 的型号、代际架构与微架构

大家好,我是飞哥! 在 10 月 16 号的时候,Intel 正式发布了第 14 代的酷睿处理器。但还有很多同学看不懂这种发布会上发布的各种 CPU 参数。借着这个时机,我给大家深入地讲讲 CPU 的型号规则、代际架构与微架构方面的知识。 CPU 在…

谈一谈SQLite、MySQL、PostgreSQL三大数据库

每一份付出,必将有一份收货,就像这个小小的果实,时间到了,也就会开花结果… 三大数据库概述 SQLite、MySQL 和 PostgreSQL 都是流行的关系型数据库管理系统(RDBMS),但它们在功能、适用场景和性…

力扣每日一题94:二叉树的中序遍历

题目描述: 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 1: 输入:root [1,null,2,3] 输出:[1,3,2]示例 2: 输入:root [] 输出:[]示例 3: 输入&#x…

【第28例】IPD体系进阶 | 需求管理:需求实现过程

目录 简介 内容详解 CSDN学院相关推荐 作者简介 简介 继续 IPD 体系中的需求管理相关的专题。 先来看看整个需求管理涉及的过程内容: 需求管理流程主要包含五个阶段: 需求收集; 需求分析; 需求分发/分配;

EasyExcel动态复杂表头导出方法

目录 需求分析解决方案数据问题数据导入 需求分析 公司数据比较特殊有一部分数据需要动态修改导致信息导入时表头是不确定的,但其中又有一部分表头是固定的,如下图所示,如果表头全部是固定的话可以通过EasyExcel实体类的注解很轻松的解决&am…

Java自学第3课:Java语言流程控制和字符串

1 复合语句 复合语句是以区块为单位的语句&#xff0c;也就是{}内的内容。 2 条件语句 if (布尔表达式){语句序列}else{语句序列} 有个好玩的是&#xff0c;对年龄段的分段&#xff0c;其实以前的思维是有点冗余的&#xff0c;比如a<100 & a>90&#xff0c;在复合…

文本内容转换成语音播放的工具:Speech Mac

Speech Mac版是一款适用于Mac电脑的语音合成工具。它将macOS语音合成器的所有功能整合到一个易于使用的界面中。通过Speech Mac版&#xff0c;用户可以选择40多种声音和语言&#xff0c;方便地将文本转换为语音。用户可以将文本拖放或粘贴到Speech中&#xff0c;并随时更改语音…

巴黎奥运会将基于阿里云实现云上转播

10月31日&#xff0c;2023杭州云栖大会&#xff0c;奥林匹克广播服务公司与奥林匹克频道服务公司首席技术官索蒂里斯萨拉穆里斯&#xff08;Sotiris SALAMOURIS&#xff09;表示&#xff0c;过去5年阿里云作为奥运会转播的基础设施&#xff0c;让奥运故事触达了更多全球观众。 …

mybatis-plus技巧--动态表名-多语句-拼接sql--关于mybatis的mysql分页查询总数的优化思考

文章目录 动态表名xml表名填充表名拦截器每天按统计每次设置 多语句操作forEach动态拼接 参数构建java进行拼接sqlmysql分页查询总数count不要使用count&#xff08;常数&#xff09;&#xff0c;count&#xff08;列名&#xff09;代替count(*)自己计数 SQL_CALC_FOUND_ROWSxm…

性能优化之懒加载 - 基于观察者模式和单例模式的实现

一、引入 在前端性能优化中&#xff0c;关于图片/视频等内容的懒加载一直都是优化利器。当用户看到对应的视图模块时&#xff0c;才去请求加载对应的图像。 原理也很简单&#xff0c;通过浏览器提供的 IntersectionObserver - Web API 接口参考 | MDN (mozilla.org)&#xff0c…

JavaScript设计模式之责任链模式

适用场景&#xff1a;一个完整的流程&#xff0c;中间分成多个环节&#xff0c;各个环节之间存在一定的顺序关系&#xff0c;同时中间的环节的个数不一定&#xff0c;可能添加环节&#xff0c;也可能减少环节&#xff0c;只要保证顺序关系就可以。 如下图&#xff1a; ES5写法…

flutter之bloc使用详解

flutter中一切皆为Widget&#xff0c;因此在我们开发中&#xff0c;往往业务和UI逻辑写在一起&#xff0c;这样不利于代码维护&#xff0c;因此状态管理框架久诞生了&#xff0c;这篇就开始讲一讲Bloc。 对于Bloc库有两个&#xff0c;如下图&#xff1a; flutter_bloc其实是对…

进程控制(三):进程替换

文章目录 进程控制&#xff08;三&#xff09;进程替换进程替换函数进程中的环境变量 总结 进程控制&#xff08;三&#xff09; 进程控制中的进程替换&#xff0c;下文我们学习进程替换的意义&#xff0c;以及进程替换的方式 进程替换 初步认识进程替换&#xff0c;我们先使…

Spring Cloud应用- Eureka原理、搭建

初期对Spring Cloud的学习以应用搭建为主&#xff0c;所以内容不会太枯燥。 一直以来&#xff0c;自以为Spring全家桶的学习中&#xff0c;Spring framework是基础中的基础&#xff0c;部分内容也还是必须要读源码去理解底层原理&#xff0c;SpringMVC、SpringBoot&#xff0c…