如何保护Kubernetes集群

news2024/12/25 9:28:28

2018年黑客入侵了特斯拉在亚马逊上的Kubernetes容器集群。由于该集群控制台未设置密码保护,黑客便得以在一个Kubernetes pod中获取到访问凭证,然后据此访问其网络存储桶S3,通过S3获取到了一些敏感数据,比如遥测技术,并且还在特斯拉的Kubernetes pod中进行挖矿。

黑客们潜入到了没有密码保护的Kubernetes管控台。在一个Kubernetes pod里面,盗取了Tesla的公有云环境的访问权限,而对应公有云环境中则存放着如telemetry的敏感数据。

除了裸露的数据之外,还注意到此次攻击中一些更为复杂的检测躲避手段。

首先,没有使用知名的公共“矿池”。他们安装挖矿软件,并通过恶意脚本链接上未列出/半公共端点。其次,黑客通过隐藏了矿池服务器的真实IP地址,通过该服务获得新的IP地址。因此常见标准的基于IP或域的探测很难检测到此类恶意行为。

挖矿软件监听的是非标准端口,基于端口的恶意检测也变得很困难。黑客们的挖矿软件保持“低调”,没有造成CPU使用过高,资源的占用不易被发现。

该事件只是Kubernetes漏洞利用的一个典型案例。

近年来,以Kubernetes为代表的安全编排工具让企业实现了应用的自动化部署,给企业带来了巨大的业务收益。但是,和传统环境下一样,这些部署也很容易受到黑客和内鬼的攻击和利用,Kubernetes的安全也因此成为容器使用中重点保护对象。

什么是 Kubernetes

Kubernetes 是一个开源的容器编排平台,最初由 Google 设计并捐赠给 Cloud Native Computing Foundation (CNCF) 孵化。Kubernetes 可以自动化地部署、扩展和管理容器化应用程序,并提供了许多便捷的特性,如服务发现、负载均衡、自我修复等。Kubernetes 的核心理念是将应用程序和基础设施分离,以便更快、更安全、更灵活地开发和部署云原生应用程序。

Kubernetes 的组件可以分为两大类:控制平面和数据平面。控制平面包括 Kubernetes API Server、etcd 存储、控制器管理器、调度器等,负责管理存储在 etcd 中的集群状态、决策运行环境中的容器位置、标记、限制等。数据平面包括各种节点,包括容器运行时、kubelet 守护进程、kube-proxy 代理服务器,负责维护容器的生命周期、数据流量、负载均衡等。

Kubernetes 提供了一种能够轻松创建和部署容器的方式,其灵活性和可扩展性使其成为一种非常流行的应用程序部署和管理平台。

Kubernetes的优势特点是什么

kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。

传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作,当然也可以通过创建虚拟机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。

新的方式是通过部署容器方式实现,每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。

容器占用资源少、部署快,每个应用可以被打包成一个容器镜像,每个应用与容器间成一对一关系也使容器有更大优势,使用容器可以在build或release 的阶段,为应用创建容器镜像,因为每个应用不需要与其余的应用堆栈组合,也不依赖于生产环境基础结构,这使得从研发到测试、生产能提供一致环境。类似地,容器比虚拟机轻量、更“透明”,这更便于监控和管理。

直白的说拥有三大优势特点:

  • 可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)

  • 可扩展: 模块化,插件化,可挂载,可组合

  • 自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展

Kubernetes主要的组件

一、Master 组件

Master组件提供集群的管理控制中心。可以在集群中任何节点上运行。但是为了简单起见,通常在一台VM/机器上启动所有Master组件,并且不会在此VM/机器上运行用户容器。

  • kube-apiserver

kube-apiserver用于暴露Kubernetes API。任何的资源请求/调用操作都是通过kube-apiserver提供的接口进行。

  • ETCD

ETCD是Kubernetes提供默认的存储系统,保存所有集群数据,使用时需要为etcd数据提供备份计划。

  • kube-controller-manager

kube-controller-manager运行管理控制器,它们是集群中处理常规任务的后台线程。逻辑上,每个控制器是一个单独的进程,但为了降低复杂性,它们都被编译成单个二进制文件,并在单个进程中运行。这些控制器包括:

1.节点(Node)控制器。

2.副本(Replication)控制器:负责维护系统中每个副本中的pod。

3.端点(Endpoints)控制器:填充Endpoints对象(即连接Services&Pods)。

4.Service Account和Token控制器:为新的Namespace创建默认帐户访问API Token。

  • cloud-controller-manager

云控制器管理器负责与底层云提供商的平台交互。云控制器管理器是Kubernetes版本1.6中引入的,还是Alpha的功能。云控制器管理器仅运行云提供商特定的(controller loops)控制器循环。可以通过将--cloud-providerflag设置为external启动kube-controller-manager ,来禁用控制器循环。

  • kube-scheduler

kube-scheduler监视新创建没有分配到Node的Pod,为Pod选择一个Node。

  • 插件 addons

插件(addon)是实现集群pod和Services功能的。Pod由Deployments,ReplicationController等进行管理。Namespace 插件对象是在kube-system Namespace中创建。

二、节点(Node)组件

节点组件运行在Node,提供Kubernetes运行时环境,以及维护Pod。

  • kubelet

kubelet是主要的节点代理,它会监视已分配给节点的pod,具体功能:

1.安装Pod所需的volume。

2.下载Pod的Secrets。

3.Pod中运行的 docker(或experimentally,rkt)容器。

4.定期执行容器健康检查。

  • kube-proxy

kube-proxy通过在主机上维护网络规则并执行连接转发来实现Kubernetes服务抽象。

  • docker

docker用于运行容器。

  • RKT

rkt运行容器,作为docker工具的替代方案。

  • supervisord

supervisord是一个轻量级的监控系统,用于保障kubelet和docker运行。

  • fluentd

fluentd是一个守护进程,可提供cluster-level logging.。

Kubernetes 为什么需要安全

虽然 Kubernetes 具有许多优点,但也有许多安全考虑因素必须被认真考虑。以下是 Kubernetes 安全威胁的一些例子:

(1)权限问题

一个被破坏的容器可以在多个 Pod 之间传播,导致 Kubernetes 集群的整体安全受到威胁。除非良好配置 Kubernetes 中的用户和角色,否则攻击者可能具有比他们应有的更多的权限。

(2)网络问题

由于 Kubernetes 的高度自动化性质,容易使权限分配分散并产生混乱。这种情况下,攻击者可以利用 Kubernetes 上的漏洞横向移动和扩展他们在集群中的访问级别。另外,安全的网络策略和在应用程序层面进行保护,包括服务发现和容器网络配置,保证应用程序和数据不被更容易受到攻击,也可能受到损害。

(3) 控制面

如果 Kubernetes API Server 面临攻击活动,则可以修改,添加或删除集群状态,从而危及整个集群的安全性。此外,一个被攻击的 Pod 可以进行许多可能对其他 Pod 或主机产生灾难性后果的活动,例如嗅探流量并尝试修改 Pod 以增加攻击面。

(4) 镜像安全问题

容器的镜像可以随时被替换,而没有办法验证该镜像的内容和完整性。因此,出现一个恶意镜像的情况下,整个特定容器中的数据和应用程序可以遭受严重威胁。

如何保障Kubernetes安全

为了最大化 Kubernetes 集群的安全性,必须了解安全性相关的最佳做法和原则。以下是几个基本的 Kubernetes 安全秘籍:

(1)配置 Kubernetes 对象的 RBAC

为保护 Kubernetes 集群,必须对在 Kubernetes 中运行的对象、Pod 和状态对象进行身份验证和授权。Kubernetes Role-Based Access Control(RBAC)为应用于 Kubernetes API 对象的最佳做法之一,以管理访问 Kubernetes API 对象的授权和权限。

(2)使用安全的容器基础映像

可以通过使用最佳安全实践来加强容器的安全性。而选择合适的基础镜像是实现此目标的重要部分,例如,只使用来自可信源的映像,尽可能减少容器中的客户端库数量。

(3)配置 Kubernetes 的网络和策略

安全的网络和防护策略可以保护 Kubernetes 集群免受威胁。通过配置网络插件实现网络隔离,并设置 Pod 和服务之间的网络策略以提高安全性。

(4)使用 Kubernetes 安全扫描器进行安全审计

使用 Kubernetes 安全扫描器可以查找到容器映像中的潜在漏洞,确保每个大容器镜像都没有安全漏洞,需要及时修复。

为什么说漏洞扫描服务这么适合呢?漏洞扫描服务(Vulnerability Scan Service)集Web漏洞扫描、操作系统漏洞扫描、资产内容合规检测、配置基线扫描、弱密码检测五大核心功能,自动发现网站或服务器在网络中的安全风险,为云上业务提供多维度的安全检测服务,满足合规要求,让安全弱点无所遁形。主要的优势在于:

一、扫描全面

涵盖多种类型资产扫描,支持云内外网站和主机扫描,支持内网扫描、智能关联各资产之间的联系,自动发现资产指纹信息,避免扫描盲区。

二、高效精准

采用web2.0智能爬虫技术,内部验证机制不断自测和优化,提高检测准确率,时刻关注业界紧急CVE爆发漏洞情况,自动扫描,最快速了解资产安全风险。

三、简单易用

配置简单,一键全网扫描。可自定义扫描事件,分类管理资产安全,让运维工作更简单,风险状况更清晰了然。

四、报告全面

清晰简洁的扫描报告,多角度分析资产安全风险,多元化数据呈现,将安全数据智能分析和整合,使安全现状清晰明了。

漏洞扫描服务能提供的服务内容:

一、针对Web漏洞扫描--网站的漏洞与弱点易于被黑客利用,形成攻击,带来不良影响,造成经济损失。

1.常规漏洞扫描

丰富的漏洞规则库,可针对各种类型的网站进行全面深入的漏洞扫描,提供专业全面的扫描报告。

2.最紧急漏洞扫描

针对最紧急爆发的VCE漏洞,安全专家第一时间分析漏洞、更新规则、提供最快速专业的VCE漏洞扫描。

二、针对弱密码扫描--主机或中间件等资产一般使用密码进行远程登录,攻击者往往使用扫描技术来探测其用户名和弱口令。

1.多场景可用

全方位的OS连接,涵盖90%的中间件,支持标准Web业务弱密码检测、操作系统、数据库等弱口令检测。

2.丰富的弱密码库

丰富的弱密码匹配库,模拟黑客对各场景进行弱口令探测,同时支持自定义字典进行密码检测。

三、针对中间件扫描--中间件可帮助用户灵活、高效地开发和集成复杂的应用软件,一旦被黑客发现漏洞并利用,将影响上下层安全。

1.丰富的扫描场景

支持主流Web容器、前台开发框架、后台微服务技术栈的版本漏洞和配置合规扫描。

2.多扫描方式可选

支持通过标准包或者自定义安装等多种方式识别服务器中的中间件及其版本,全方位发现服务器中的漏洞风险。

四、针对内容合规检测--网站被发现有不合规言论时,会给企业造成品牌和经济上的多重损失。

1.精准识别

同步更新时政热点和舆情事件的样本数据,准确定位各种涉黄、涉暴涉恐、涉政等敏感内容。

2.智能高效

对文本、图片内容进行上下文语义分析,智能识别复杂变种文本。

Kubernetes集群的安全性是云原生应用部署和管理的关键,可以通过多种防护方案我们可以有效地提高K8s集群的安全性,并降低潜在的安全风险。然而,安全是一个持续的过程,我们需要不断地关注新的安全威胁和最佳实践,以确保K8s集群始终保持在最佳的安全状态。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

llama-factory学习个人记录

框架、模型、数据集准备 1.llama-factory部署 # 克隆仓库 git clone https://github.com/hiyouga/LLaMA-Factory.git # 创建虚拟环境 conda create --name llama_factory python3.10 # 激活虚拟环境 conda activate llama_factory # 安装依赖 cd LLaMA-Factory pip install -…

Vue——开发前的准备和创建一个vue的工程

文章目录 前言安装 Node js1、下载node.js2、安装node.js3、查看是否安装成功 创建 vue 工程Visual Studio Code 配置目录结构 前言 本篇博客主要讲解Vue开发前的环境配置与一些说明。 安装 Node js 环境需要安装配置一个nodejs 的环境。 vue3 最低nodejs 版本要求为 15.0 1…

2024.5.1学习记录

1、代码随想录:贪心刷题 2、react 高级使用( hoc render、props、函数组件、serState 传送门等) 3、游山玩水

linux部署rustdesk

1.拉取RustDesk镜像 sudo docker image pull rustdesk/rustdesk-server2.启动hbbs服务 sudo docker run --name hbbs -p 21115:21115 -p 21116:21116 -p 21116:21116/udp -p 21118:21118 -v pwd:/root -td --nethost rustdesk/rustdesk-server hbbs3.启动hbbr服务 sudo dock…

sqli-labs靶场

less---11 1.求闭合字符 输入1报错说明存在注入点 存在注入点 2.查库名 使用报错注入查库名 admin” and (select 1 from (select count(*),concat(database(),floor(rand(0)*2))x from information_schema.tables group by x)y)# //floor函数报错 3.查表名 admin and upd…

一、QGroundControl地面站使用介绍

文章目录 环境功能介绍飞行视图规划视图飞机设置分析工具程序设置 连接飞机飞机设置分析工具飞行视图规划任务 总结参考 环境 QGroundControl V4.2.0PX4-Autopilot V1.3.0devGazebo 模拟无人机 功能介绍 飞行视图规划视图飞机设置分析工具程序设置 飞行视图 软件打开后为飞…

OWASP Benchmark | OWASP 基准项目介绍

1. 背景 市面上的静态代码检测SAST工具越来越多,除了业界比较知名的Coverity、Fortify、CheckMax,还有CodeQL、SonarQube、CppCheck等,国内也涌现了一大波检测工具,如鸿渐SAST、奇安信代码卫士、北大Cobot、酷德啄木鸟等&#xf…

KT142C语音芯片音量详细汇总 包含记忆 低功耗的音量_开机音量

关于KT142C语音芯片sop16的音量详细汇总,包含记忆,低功耗唤醒之后的音量,开机音量 芯片的音量是分为三部分,详见手册的“3.4.2”章节 串口发送指令设置,但是掉电或者进入低功耗被唤醒,这两种情况都会恢复到…

nvm介绍、下载、安装、配置及使用,(Node Version Manager)nodejs版本管理切换工具

1、介绍nvm 在Web前端项目开发过程中,由于各种前端框架、插件 以及 Nodejs、Npm 的飞速更新,在项目新开发 或 对老项目进行更新维护时,有些项目版本的配置 和 当前Node、Npm环境不匹配,导致运行报错,甚至都无法启动。…

代码随想录算法训练营第二天| 977.有序数组的平方 、209.长度最小的子数组、 59.螺旋矩阵II

977. 有序数组的平方 题目链接:977. 有序数组的平方 文档讲解:代码随想录 状态:so easy 刚开始看到题目第一反应就是平方之后进行排序,数据量在 1 0 4 10^4 104,可以使用O(nlogn)的排序。但是更好的方式是使用双指针&a…

Java面试八股之什么是死锁

什么是死锁 死锁(Deadlock)是多线程编程中的一种常见问题,特别是在涉及到资源共享和同步的时候。具体来说,死锁是指两个或两个以上的线程在执行过程中,由于互相持有并等待对方释放的资源,而导致所有线程都…

Centos7.9上安装Oracle 11gR2 RAC 三节点(ASMlib管理asm磁盘)

服务器规划 OS 规格 主机名 IP VIP private IP scanip centos 7.9 1C4G racdb01 192.168.40.165 192.168.183.165 192.168.40.16 192.168.40.200 centos 7.9 1C4G racdb02 192.168.40.175 192.168.183.175 192.168.40.17 192.168.40.200 centos 7.9 1C4G…

php题解(巩固基础知识)代码审计

1.[NISACTF 2022]easyssrf 1)进入环境后,他给了一个上url个文本框 2)看了源码,没啥用,那就直接跟着它提示走,输入一个网址http://127.0.0.1/flag.php 3)回显又给了/fl4g,直接file…

微服务:Ribbon负载均衡与加载时机修改

Ribbon 负载均衡 执行流程 负载均衡策略 调整负载均衡方案: 配置类中(全局): // 负载均衡策略Beanpublic IRule randomRule() {return new RandomRule();}yaml配置 userservice: # 给某个微服务配置负载均衡规则&#xff…

【UE HTTP】“BlueprintHTTP Server - A Web Server for Unreal Engine”插件使用记录

1. 在商城中下载“BlueprintHTTP Server - A Web Server for Unreal Engine”插件 该插件的主要功能有如下3点: (1)监听客户端请求。 (2)可以将文件直接从Unreal Engine应用程序提供到Web。 (3&#xff…

elementui中 表格使用树形数据且固定一列时展开子集移入时背景色不全问题

原来的效果 修改后实现效果 解决- 需要修改elementui的依赖包中lib/element-ui.common.js中的源码 将js中此处代码改完下面的代码 watch: {// dont trigger getter of currentRow in getCellClass. see https://jsfiddle.net/oe2b4hqt/// update DOM manually. see https:/…

Oracle体系结构初探:数据库启动与停止

往期内容 参数管理 控制文件添加 启动 在启动Oracle数据库时,我们一般会使用如下命令: startup 虽然命令只有一个,但其中却是经历了3个阶段,从下面执行 startup 命令返回也可以看出来。 总结为3个阶段: nomount&…

【Unity2D 2022:Cinemachine】相机跟随与地图边界

一、导入Cinemachine工具包 1. 点击Window-Package Manager,进入包管理界面 2. 点击All,找到Cinemachine工具包,点击Install 二、相机跟随角色 1. 选中Main Camera,点击Component-Cinemachine-CinemachineBrain,新建…

【stm32/CubeMX、HAL库】嵌入式实验五:定时器(2)|PWM输出

参考: 【【正点原子】手把手教你学STM32CubeIDE开发】 https://www.bilibili.com/video/BV1Wp42127Cx/?p13&share_sourcecopy_web&vd_source9332b8fc5ea8d349a54c3989f6189fd3 《嵌入式系统基础与实践》刘黎明等编著,第九章定时器&#xff0c…

亚洲AI核心资产,商汤科技!全球最优秀的医疗大模型平台——“大医”。

今天会给大家详解下商汤的AI产品“大医”。 —、什么是“大医”?(行业模型) “日日新.大医”是一款具备创新精神的医疗健康领域大语言模型。该模型通过内置的“场景集市”模块,提供了13个预设医疗场景的应用,同时还能…