在一篇文章中了解基于 Kube-Bench 评估 Kubernetes 安全性

发布于:2024-10-24 编辑:匿名 来源:网络

大家好,我是 Luga,今天我们将介绍另一款开源容器平台安全扫描工具 - Kube-bench。作为 Aqua Security 优秀的开源产品,它可以分析 Kubernetes Cluster 的运行行为,并根据互联网安全中心指南进行安全评估。

???? 随着企业云原生技术和生态理念的普及,Kubernetes实际上已经成为容器编排的首选工具。无论如何强调都不为过。

基于它,部署和管理应用程序变得前所未有的简单。尽管新技术的引入带来了各种好处,但 Kubernetes Cluster 的安全性始终是云原生生态中难以逾越的鸿沟。

攻击者可能会想方设法地寻找各种潜在的漏洞,并利用新的方法侵入系统,对整个系统进行破坏性的“构建”。 为了提高 Kubernetes Cluster 的安全性,在实际业务场景中,我们常常需要了解 W&H(即“它是什么”和“它是如何工作的”)。

为此,需要对Kubernetes集群进行全面细致的分析,包括存储Kubernetes组件配置的文件系统、集成的插件、运行环境等相关要素。 NSA、MITRE、CIS 等机构发布基准并持续升级,以维护 Kubernetes 集群的安全。

然而,这些基准测试涵盖了太多细节,使得手动检查非常繁琐。 在探索如何对 Kubernetes 集群进行漏洞安全评估扫描时,目前市场上有两个流行的工具值得推荐:Kube-bench 和 Kubescape。

在之前的博文中,我们讨论了 Kubescape 开源产品并深入描述了它们:它们是做什么的、它们是如何工作的、它们使用哪些框架、何时以及为何使用它们,以及它们如何相互补充。 Kube-bench 概述 作为一款基于开源 Go 开发的应用程序,Kube-bench 主要用于检查 Kubernetes 集群是否按照安全最佳实践部署。

它实现了 CIS Kubernetes 基准,这是由互联网安全中心开发的用于以安全方式运行 Kubernetes 的指导文档。Kube-bench 可以针对自我管理的 Kubernetes 集群以及由 AWS、Azure、GKE 集群等流行云提供商管理的 Kubernetes 集群执行。

此外,Kube-bench 还提供 JSON 格式的扫描输出,因此如果您想要根据集群扫描结果制作报告或创建警报,您可以基于此创建脚本并自定义相关策略。工作原理 一般来说,Kube-bench 是一种在 Kubernetes 集群上无法一致运行的工具。

相反,我们可以使用一个简单的命令在所有节点上运行,然后根据不同的部分进行检测,输出修复报告和建议。具体如下: 1. 主节点安全配置 2. etcd 节点配置 3. 控制平面配置 4. 工作节点安全配置 5. Kubernetes 策略根据不同环境执行自己的检测行为,然后响应失败或警告检测输出补救措施及其摘要(通过/失败/警告/信息检查的计数)。

最后,发布总体摘要。 事实上,Kube-bench的工作原理无论是基于源码角度还是其执行和实现检测角度都比较简单。

基本上都是围绕着“执行引擎”->“检测扫描”->“推荐输出”的流程。??????如下基于不同环境的检测示例:??语言代码:javascript复制[INFO] 1 主节点安全配置[INFO] 1.1 主节点配置文件[FAIL] 1.1.1 确保API server pod规范文件权限设置为或更多限制(自动)[失败] 1.1.2 确保 API 服务器 pod 规范文件所有权设置为 root:root(自动)[失败] 1.1.3 确保控制器管理器 pod 规范文件权限设置为或更多限制性(自动)[失败] 1.1.4 确保控制器管理器 pod 规范文件所有权设置为 root:root(自动)[失败] 1.1.5 确保调度程序 pod 规范文件权限设置为或更严格(自动) )代码语言:javascript复制[INFO] 1.2 API Server[WARN] 1.2.1 确保 --anonymous-auth 参数设置为 false (手动)[PASS] 1.2.2 确保 --token-auth-file未设置参数(自动)[PASS] 1.2.3 确保设置了 --kubelet-https 参数为 true (自动)[通过] 1.2.4 确保 --kubelet-client-certificate 和 --kubelet-client-key 参数设置适当(自动)[失败] 1.2.5 确保 --kubelet-证书颁发机构参数设置为适当的(自动)以及回复的修复示例:代码语言:javascript复制1.1.1 在主节点上运行以下命令(基于系统上的文件位置)。

例如, chmod /etc/ kubernetes/manifests/kube-apiserver.yaml1.1.2 在主节点上运行以下命令(基于系统上的文件位置)。例如,chown root:root /etc/kubernetes/manifests/kube-apiserver.yaml1。

1.3 在主节点上运行以下命令(基于系统上的文件位置)。例如,chmod /etc/kubernetes/manifests/kube-controller-manager.yaml1.1.4 运行以下命令(基于文件位置)在主节点上。

例如, chown root:root /etc/kubernetes/manifests/kube-controller-manager.yaml1.1.5 运行以下命令以及(基于您系统上的文件位置)在主节点上。例如,chmod /etc/kubernetes/manifests/kube-scheduler.yaml代码语言:javascript复制 1.2.1 编辑 API 服务器 pod 规范文件 /etc/kubernetes/ manifests/kube-apiserver.yamlon 主节点并设置以下参数。

--anonymous-auth=false1.2.5 按照 Kubernetes 文档并在 apiserver 和 kubelet 之间设置 TLS 连接。然后,在主节点上编辑 API Server pod 规范文件 /etc/kubernetes/manifests/kube-apiserver.yaml 并将 --kubelet-certificate-authority 参数设置为证书颁发机构的 cert 文件的路径。

-- kubelet-certificate-authority= ,总体摘要输出如下: 代码语言:javascript 复制 44 检查 PASS37 检查 FAIL19 检查 WARN0 检查 INFO 当 Kube-bench ? Kube-bench 提供了一个简单的工具来检查 Kubernetes 配置(包括 Master 和 Work)是否符合最佳安全实践(基于 CIS Kubernetes Benchmark)Kube-bench 在扫描节点(Master Node、Work Node、etcd Node)时的分析行为非常好。 Kube-bench 能够非常精确地描述配置文件的所有权限以及错误配置的标志和参数,并在适用的情况下直接发出命令。

然而,我们发现,当扫描集群内的组件时,输出通常更多地是一个指南,没有关于哪个工件配置错误的具体信息。以下是 Kubernetes 策略部分下的一些检查和修复示例: 1. 检查 - 检测代码语言:javascript 复制 [信息] 5 Kubernetes 策略 [信息] 5.1 RBAC 和服务帐户 [警告] 5.1.1 确保 cluster-admin仅在需要时使用角色(手动)[警告] 5.1.2 最小化对机密的访问(手动)[警告] 5.1.3 最小化角色和 ClusterRoles 中通配符的使用(手动)代码语言:javascriptCopy[INFO] 5.2 Pod 安全策略[警告] 5.2.1 最小化特权容器的准入(自动)[警告] 5.2.2 最小化希望共享主机进程 ID 命名空间的容器的准入(自动)[警告] 5.2.3 最小化希望共享的容器的准入主机 IPC 命名空间(自动)[警告] 5.2.4 最大限度地减少希望共享主机网络命名空间的容器的准入(自动)[警告] 5.2.5 通过allowPrivilegeEscalation 最大限度地减少容器的准入(自动) 2. 补救措施 - 修复代码语言:javascript 复制 5.1.1 识别与 cluster-admin 角色的所有 clusterrole 绑定。

C看看它们是否被使用,以及他们是否需要这个角色,或者他们是否可以使用权限较少的角色。如果可能,首先将用户绑定到权限较低的角色,然后删除对 cluster-admin 角色的 clusterrole 绑定:kubectl delete clusterrolebinding [name ]5.1.2 在可能的情况下,删除对集群中秘密对象的获取、列出和监视访问。

5.1.3 在可能的情况下,用特定对象或操作替换集群角色和角色中任何通配符的使用。部署方式 一般来说,Kube-bench 的部署方式比较简单。

目前,一些Kubernetes集群管理平台,例如Rancher、Kubeoperator等已经支持并集成了Kube-bench工具。因此,如果我们已经在使用这些平台,我们也可以直接使用平台上相应的功能来完成扫描。

对于 Kube-bench 部署运行,如果直接从命令行运行 Kube-bench,则可能需要成为 root/sudo 才能访问所有配置文件。 默认情况下,Kube-bench 会尝试自动检测 Kubernetes Cluster 的运行版本,并将其映射到相应的 CIS Benchmark 版本。

例如,Kubernetes 版本 1.15 映射到 CIS 基准版本 cis-1.15,这是 Kubernetes 1.15 的有效基准版本。 除此之外,Kube-bench 尝试识别节点上运行的组件,并使用它来确定要运行哪些测试(例如,如果节点正在运行 API 服务器,则仅运行主节点测试)。

需要注意的是,托管 Kubernetes 集群的主节点(例如 GKE、EKS、AKS 和 ACK)无法使用 Kube-bench 进行检查,因为这些节点不可访问,尽管仍然可以使用 Kube-bench 进行检查这些环境中的工作节点配置。基于容器的部署是基于容器部署模式,主要利用主机PID命名空间在容器内运行,并挂载主机上配置等文件所在的目录,以便Kube-bench检查它们的存在和权限/etc 或 /var 等,具体部署方法如下: 代码语言:javascript copy [leonli@~ ] % docker run --pid=host -v /etc:/etc:ro -v /var:/ var:ro -t docker.io /aquasec/kube-bench:latest --version 1.18 注意:测试需要路径中包含 kubelet 或 kubectl 二进制文件,以自动检测 Kubernetes 版本。

这个问题可以通过 -v $(which kubectl):/usr/local/mount-from-host/bin/kubectl 来解决。此外,还需要传入 kubeconfig 凭据。

具体如下: 代码语言: javascript copy [leonli@~ ] % docker run --pid=host -v /etc:/etc:ro -v /var:/var:ro -v $(which kubectl): /usr/local/mount-from-host/bin/kubectl -v ~/.kube:/.kube -e KUBECONFIG=/.kube/config -t docker.io/aquasec/kube-bench:latest 当然,在除了上面的启动方式之外,你还可以使用自己的配置,安装在默认配置 /opt/kube-bench/cfg/ 上,如下: 代码语言:javascript copy [leonli@~] % docker运行 --pid =host -v /etc:/etc:ro -v /var:/var:ro -t -v path/to/my-config.yaml:/opt/kube-bench/cfg/config.yaml -v $(which kubectl):/usr/local/mount-from-host/bin/kubectl -v ~/.kube:/.kube -e KUBECONFIG=/.kube/config docker.io/aquasec/kube-bench :latest 基于 Kubernetes 的部署 除了上面的部署模式之外,另一种经典的部署方式是在 Kubernetes Cluster 的 Pod 中运行 Kube-bench,但是这种模式需要访问主机的 PID 命名空间来检查运行进程,并且访问主机。某些目录用于存储配置文件和其他文件等。

需要注意的是,要在主节点上运行测试,需要在该节点上调度 Pod。这涉及到在 Pod 规范中设置 nodeSelector 和容忍度。

自 Kubernetes v1.11 以来,应用于主节点的默认标签已发生变化,因此,如果您使用的是旧版本,则可能需要修改 nodeSelector 和 tolerations 才能在主节点上运行作业。源代码部署 这种部署方式通常比较简单。

首先在设备上安装并配置Go环境变量,然后运行以下命令,如下图: 代码语言:javascript copy [leonli@~ ] % go get github.com com/aquasecurity/kube-bench[leonli@~] % cd $GOPATH/src/github.com/aquasecurity/kube-bench[leonli@~] % go build -o kube-bench .[leonli@~] % ./ kube-bench --help# 运行所有检查[leonli@~] % ./kube-bench 公有云平台部署针对第三方公有云平台,主要涉及AKS Cluster、EKS Cluster、On-prem Cluster、OpenShift、GKE集群和ACK(阿里云容器服务Kubernetes)集群等。由于各大厂商平台接口标准的差异,在这些集群中运行存在各种限制和要求,导致Kube-bench的运行方式不同。

综上所述,与 Kubescape 相比,Kube-bench 在扫描主机、文件权限和所有权、以及不同 Kubernetes 控制平面组件的标志方面表现出了出色的能力;而 Kubescape 扫描集群内的对象(例如 Pod、名称空间、帐户等)显示其价值。无论基于什么样的工具,能够解决实际的安全问题才是根本。

? 因此,这里的内容涉及面较小,基本体现在原理和实现层面,相关实践大家可以参考这篇文章。本篇文章的分析到此结束,希望对大家有用。

在一篇文章中了解基于 Kube-Bench 评估 Kubernetes 安全性

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • 镁伽科技黄瑜清:智能自动化给生命科学带来巨大变革

    镁伽科技黄瑜清:智能自动化给生命科学带来巨大变革

    近日,戈壁创投年度投资峰会在线上举行。 戈壁创投邀请LP及被投企业经理参加会议,分享收获,共同努力。 探索趋势,见证未来。 2019年,国际环境复杂严峻,资本市场波动剧烈,加上疫情影响,股权投资面临前所未有的考验。 在“危机”与“机遇”交叉的环境下,戈壁创投继续保持

    06-18

  • 超星星完成数亿元C轮融资,加速释放优质碳化硅衬底产能

    超星星完成数亿元C轮融资,加速释放优质碳化硅衬底产能

    据投资界(ID:pedaily)12月14日消息,江苏超星星半导体股份有限公司超星行(以下简称“超星行”)近日完成数亿元C轮融资。 本轮融资由国际知名投资机构领投,商洛电子、老股东策资本跟投。 云秀资本担任本轮融资独家财务顾问。 超星星成立于今年4月,总部位于江苏南京。 致

    06-18

  • 以36.5亿元卖掉公司后,他流落街头说:我再也不会创业了,我要投资!

    以36.5亿元卖掉公司后,他流落街头说:我再也不会创业了,我要投资!

    沉寂了五个多月后,橙晶创始人乌海因为一篇文章再次回到公众视野。   2天前,吴海参加了摩根士丹利举办的一场“庆祝交易成功”的聚会(橙晶酒店“卖身”给华住酒店)。 “为了庆祝我的公司出售,我的心情可能不太好。 我不知道为什么。 醉了。 ”在《卖了酒店,昨晚,我喝醉

    06-18

  • 13小时破1207亿!砍单的背后是单打的狂欢,潮流已至

    13小时破1207亿!砍单的背后是单打的狂欢,潮流已至

    13:09:49,天猫双11全球狂欢成交额破亿元!地球已经无法阻挡国人“恐怖”的购买力了!虽然本次双11小败家的最终战斗力尚未揭晓,但与去年的亿元数据相比,已经提前了10小时50分11秒。 在同时喊出“痛”和“爽”的同时,国人到底能以怎样的数字打破世人的想象,还有待观察。 很

    06-17

  • 首次发布 - Gluetacs Therapeutics完成A轮融资,加速蛋白降解药物临床转化

    首次发布 - Gluetacs Therapeutics完成A轮融资,加速蛋白降解药物临床转化

    投资界(ID:pedaily)5月31日消息,Gluetacs Therapeutics宣布获得A轮融资,由黄埔生物医药基金领投,其次是广东造币投资、南湾百奥、思南元科。 本轮融资将重点关注博信生物的产品管线GT、GT的临床一期推进及临床前项目开发。 标新生物是上海科技大学免疫化学研究所孵化的一

    06-17

  • 机构也“疯狂”!北京交易所成立以来,累计开展调查762次,谁是“机构调查之王”?

    机构也“疯狂”!北京交易所成立以来,累计开展调查762次,谁是“机构调查之王”?

    作者|徐明辉编辑|六耳源|直达北京交流 年已结束。 回顾今年的经济发展,北京证券交易所是中国资本市场绕不开的话题。 北京交易所作为服务创新型中小企业的主阵地,将成就一批中小企业。 一些企业从被忽视,到如今已颇具规模,如今正站在聚光灯下,接受机构的深入研究。 据

    06-18

  • 菜鸟驿站进军数字化社区生活,正式推出团购、洗衣、回收服务

    菜鸟驿站进军数字化社区生活,正式推出团购、洗衣、回收服务

    进军团购、洗衣、回收……菜鸟驿站刚刚宣布,将从快递服务全面升级为数字化社区生活服务。 据投资界(微信ID:pedaily)消息,今日(6月23日)全球智慧物流峰会上,菜鸟小站宣布升级为数字社区生活小站:通过团购将值得信赖的产品送到你家门口、洗衣、回收等便捷服务。 这意味

    06-17

  • 投资界独家-传闻宝宝树引入互联网巨头加持,估值约150亿元

    投资界独家-传闻宝宝树引入互联网巨头加持,估值约150亿元

    据投资界5月28日消息,有消息称,国内母婴龙头企业宝宝树将引入互联网+来自巨头互联网的新一轮战略投资,最新估值约为1亿元人民币。   援引该消息,人士表示,投资合作计划将于近期公布。 除了战略资本合作、进一步优化股东结构布局外,这个互联网平台也将极大赋能宝宝树在

    06-17

  • iQOO Z3图赏:售价2000元以下的“能手卡”

    iQOO Z3图赏:售价2000元以下的“能手卡”

    不到一个月的时间,iQOO就接连发布了两款新机,有点让人应接不暇。 iQOO Neo 5和iQOO Z3都打“性价比”牌,都有一定的特色,是iQOO品牌主打销量的两条产品线。 ▲新发布的iQOO Z3。 我们在体验iQOO 7时,曾说它是“三双”高手。 它的存在就是带领整个队伍的进攻去攻占城市和领

    06-21

  • 普通人对亚运会的热情尽在快手

    普通人对亚运会的热情尽在快手

    这个中秋国庆假期,没有什么话题能比杭州亚运会更火爆了。 自上月14日亚运会门票开售以来,不少赛事门票都被观众抢购一空。 除了观看赛事本身,看明星在亚运会上讨论比赛、为中国队加油、分享自己的观赛感受也成为一种热潮。 随着29日比赛男子50米蛙泳决赛覃海洋率先冲线,中

    06-18

  • 上海港汽车出口同比增长超过50%

    上海港汽车出口同比增长超过50%

    上海港汽车出口开门红。 海通码头1月份出口各类车辆超过2万辆,同比增长超过50%。 上海作为全国最大的汽车进出口口岸,正在改变过去“出口产品低端、出口市场低端”的局面。 过去60%以上出口到拉美、非洲、中东等地区,到现在欧洲、美国、新西兰、澳大利亚等发达国家占比接近

    06-18

  • 硅谷精英所信奉的“AI宗教”到底是做什么的?

    硅谷精英所信奉的“AI宗教”到底是做什么的?

    作者 |高念编辑|靖宇 滑雪的终点是骨科,科学的终点是……神学? 2019年是当之无愧的“AI+大模型”年。 以ChatGPT为代表的生成式AI的快速进步,甚至让人们认为大型语言模型有资格被称为“世界模型”——人工智能从未像今天这样。 如此接近“神性”。 更难以想象的是,八年前,

    06-17