在一篇文章中了解基于 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 安全性

站长声明

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

标签:

相关文章

  • 7.89%!美国商务部下调我国光伏企业反倾销税率

    7.89%!美国商务部下调我国光伏企业反倾销税率

    9月,美国商务部再次更新部分中国光伏企业年度反倾销税率,由5月份公布的11.32%至 7.89%。 其中,台湾联合再生能源的光伏组件税率仅为1.27%。 复审期(POR)为2019年2月1日至1月31日。 反倾销税率调整的企业包括英利(英利旗下共9家子公司)、嘉盛、鲍威尔特、EEPV、京瓷、台

    06-08

  • 社保基金去年四季度增持21股,增持20股

    社保基金去年四季度增持21股,增持20股

    据Wind统计,截至3月28日,截至四季度末,社保基金曾出现在前十大流通股东中的74只股票。 其中,新增21个,增加20个。 在社保基金重仓股票中,从前十大流通股东名单中社保基金数量来看,中国巨石社保基金数量最多。 前十大流通股东名单中共有3家社保基金出现,持股总数为1.32

    06-17

  • “科技中国”企业云课堂特邀专家演讲《企业质量改善与创新文化推进》

    “科技中国”企业云课堂特邀专家演讲《企业质量改善与创新文化推进》

    7月6日上午,由中国科协、中华全国工商业联合会、学术部主办。 中国科协、中华全国工商业联合会宣传部、经济部、中科协企业创新服务中心主办的“科技创新中国”企业云课堂科技之声继续开启,邀请了广东省卓越质量促进中心的创始人、国家创新方法三级认证的专家、高级工程师刘

    06-18

  • 手机振动体验好不好不仅仅和电机有关

    手机振动体验好不好不仅仅和电机有关

    三月是新手机浪潮。 各家手机厂商纷纷发布了自己的旗舰手机。 年初,我体验了很多旗舰甚至游戏手机。 最后,我还发现了一些有趣的现象。 大多数手机厂商都会默认配置横向线性马达,这几乎已经成为旗舰手机的标配硬件。 当然,有营销方面的原因,但更值得注意的是,手机厂商确

    06-21

  • 中芯国际IPO后计划发行2,465万股,财务问题亟待解决

    中芯国际IPO后计划发行2,465万股,财务问题亟待解决

    南京中芯特种金属装备有限公司首次申请于12月20日获委员批准中国证监会创业板发行审核。 公司主营业务为研发特种金属压力容器的开发、设计、制造和销售。 本次拟发行10,000股,发行后总股本为10,000股。   招股书显示,中芯国际受益于装备制造业的产业支持政策,并间接撬动

    06-17

  • 东方启音获2500万美元B轮融资,专注言语治疗和智能发展

    东方启音获2500万美元B轮融资,专注言语治疗和智能发展

    据投资界12月19日消息,国内首家致力于言语治疗的机构东方启音言语治疗(中国)有限公司治疗,宣布获得北极光创投投资,斯道资本(原富达亚洲创投)和F-Prime基金(原富达生物科技基金)联合领投,长岭资本参与1万美元B轮融资。 其中,斯道资本和F-Prime基金也是东方启音的A

    06-17

  • 财政部:符合条件的集成电路企业5年免征企业所得税

    财政部:符合条件的集成电路企业5年免征企业所得税

    关于集成电路生产企业企业所得税政策问题的通知财税【财税】27号 各省财政厅(局)各自治区、直辖市、计划单列市、国家税务局、地方税务局、发展改革委、工业和信息化厅、新疆生产建设兵团财务局、发展改革委工业和信息化委员会:为进一步支持集成电路产业发展,现就有关企业

    06-06

  • 中美贸易战对全球50%的半导体造成巨大影响

    中美贸易战对全球50%的半导体造成巨大影响

    第一波贸易战没有影响世界信息产业链,但第二波之后对价值100的产品加征关税亿美元,包括信息通信产品,以及全球信息通信产业都将受到影响。 如果事件发展到这个地步,将会影响全球供应链。 如果成本变高,售价将不可避免地上涨,而需求将减少。 中美贸易战将对50%的半导体贸

    06-06

  • 韩媒:韩国国内8英寸半导体代工产能2022年将售罄,涨价不可避免

    韩媒:韩国国内8英寸半导体代工产能2022年将售罄,涨价不可避免

    韩国国内8英寸半导体代工产能的预订实际上已经结束了。 预计今年的半导体供应也将因代工产能不足而面临挑战。 与去年类似的困境。 据ETNews报道,KeyFoundry今年的产能已经被预订满,每六个月接受预订的DBHiTek也将在第二季度关闭订单通道。 从三季度的订单情况来看,代工厂的

    06-08

  • Vivo X6速度够快,够流畅,业界将推出全球最强大的Hi-Fi芯片,或者它可能会同时发布耳机,

    Vivo X6速度够快,够流畅,业界将推出全球最强大的Hi-Fi芯片,或者它可能会同时发布耳机,

    距离vivo年度旗舰《快到开心》11月30日在北京水立方发布还有几天了,vivo X6也快到让人开心了。 这款主打“快”核心功能的机器,近日不仅通过铺天盖地的传播让大家知道了即将发布的新机,今天还联手数十个品牌席卷了整个微博圈。 又一个营销奇迹。 从功能上来说,vivo X6够快

    06-17

  • 阿里X蚂蚁发布“数字木兰”计划,专为女性企业家打造

    阿里X蚂蚁发布“数字木兰”计划,专为女性企业家打造

    阿里为女性创业者提供专属金融服务和成长空间,不断推动他们在农村电商、跨境电商、社交经济、新媒体等数字经济领域获得更多创业优势。 参与可获得: 1. 每年免息高达20万元 2. 品牌故事及商业经验曝光(万元曝光) 3. 免费课程培训 本计划旨在5年内覆盖全球1万元,通过数字化

    06-18

  • 芒果旅游获数千万元Pre-A轮融资,文信集团投资

    芒果旅游获数千万元Pre-A轮融资,文信集团投资

    据投资界2月22日消息,芒果旅游近日宣布完成数千万元Pre-A轮融资本轮融资,投资方为文鑫集团。    据悉,本轮融资完成后,芒果出行将快速增运车辆、拓展城市。 同时,融资资金还将用于网站建设、平台技术升级、大数据研发及运营等。   芒果出行是一家为用户提供分时租赁

    06-18