Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Kube-Bench:一款针对Kubernete的安全检测工具

Kube-Bench:一款针对Kubernete的安全检测工具

作者头像
FB客服
发布于 2020-08-17 03:14:52
发布于 2020-08-17 03:14:52
3.7K00
代码可运行
举报
文章被收录于专栏:FreeBufFreeBuf
运行总次数:0
代码可运行

工具介绍

Kube-Bench是一款针对Kubernete的安全检测工具,从本质上来说,Kube-Bench是一个基于Go开发的应用程序,它可以帮助研究人员对部署的Kubernete进行安全检测,安全检测原则遵循CIS Kubernetes Benchmark

测试规则需要通过YAML文件进行配置,因此我们可以轻松更新该工具的测试规则。

注意事项

  • Kube-Bench尽可能地实现了CIS Kubernetes Benchmark,如果kube bench没有正确执行安全基准测试,请点击【https://www.cisecurity.org/】提交问题。
  • Kubernete版本和CIS基准测试版本之间没有一对一的映射。请参阅CIS Kubernetes基准测试支持,以查看基准测试的不同版本包含哪些Kubernetes版本。
  • Kube-Bench无法检查受管集群的主节点,例如GKE、EKS和AKS,因为Kube-Bench不能访问这些节点。不过,Kube-Bench在这些环境中仍然可以检查worker节点配置。

CIS Kubernetes Benchmark支持

Kube-Bench支持的Kubernete测试规则定义在CIS Kubernetes Benchmark之中:

CIS Kubernetes Benchmark

kube-bench配置

Kubernetes版本

1.3.0

cis-1.3

1.11-1.12

1.4.1

cis-1.4

1.13-1.14

1.5.0

cis-1.5

1.15-

GKE 1.0.0

gke-1.0

GKE

EKS 1.0.0

eks-1.0

EKS

Red Hat OpenShift hardening guide

rh-0.7

OCP 3.10-3.11

默认配置下,Kube-Bench将根据目标设备上运行的Kubernete版本来确定要运行的测试集,但请注意,Kube-Bench不会自动检测OpenShift和GKE。

工具下载

广大研究人员可以直接使用下列命令将项目源码客隆至本地:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/aquasecurity/kube-bench.git
  • 可以选择在容器中运行Kube-Bench(跟主机共享PID命名空间);
  • 在主机中运行安装了Kube-Bench的容器,然后直接在主机中运行Kube-Bench;
  • 访问项目Releases页面下载并安装最新版本的源码,别忘了下载配置文件以及cfg目录下的测试文件;
  • 从源码编译;

工具安装

在容器中安装

下列命令将帮助我们在Docker容器中安装Kube-Bench源码以及配置文件(源码编译仅针对Linux x86-x64,无法在macOS或Windows上运行):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run --rm -v `pwd`:/host aquasec/kube-bench:latest install

./kube-bench [master|node]

源码安装

首先在设备上安装并配置好Go环境,然后运行下列命令即可:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
go get github.com/aquasecurity/kube-bench

cd $GOPATH/src/github.com/aquasecurity/kube-bench

go build -o kube-bench .

# See all supported options

./kube-bench --help

# Run all checks

./kube-bench

在容器中运行

你可以直接通过主机PID命名空间来在一个容器中安装并运行Kube-Bench,并加载配置文件所在目录,比如说“/etc”或“/var”:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run --pid=host -v /etc:/etc:ro -v /var:/var:ro -t aquasec/kube-bench:latest [master|node] --version 1.13

如果你不想使用“/opt/kube-bench/cfg/”下的默认配置,你还可以通过加载自定义的配置文件来使用它们:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run --pid=host -v /etc:/etc:ro -v /var:/var:ro -t -v path/to/my-config.yaml:/opt/kube-bench/cfg/config.yam -v $(which kubectl):/usr/local/mount-from-host/bin/kubectl -v ~/.kube:/.kube -e KUBECONFIG=/.kube/config aquasec/kube-bench:latest [master|node]

运行Kube-Bench

如果你想直接通过命令行工具运行Kube-Bench,你还需要root/sudo权限来访问所有的配置文件。

Kube-Bench将会根据检测到的节点类型以及Kubernete运行的集群版本来自动选择使用哪一个“controls”。这种行为可以通过定义master或node子命令以及“—version”命令行参数来进行修改。

Kube-Bench版本还可以通过“KUBE_BENCH_VERSION”环境变量来设置,“—version”参数将优先于“KUBE_BENCH_VERSION”环境变量生效。

比如说,我们可以使用Kube-Bench对一个master执行版本自动检测:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kube-bench master

或者,使用Kube-Bench针对Kubernete v1.13执行worker节点测试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kube-bench node --version 1.13

kube-bench将会根据对应的CIS Benchmark版本来映射“—version”。不如说,如果你指定的是“—version 1.13”,此时映射的CIS Benchmark版本为“cis-1.14”。

或者说,你还可以指定“—benchmark”来运行指定的CIS Benchmark版本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kube-bench node --benchmark cis-1.4

如果你想要指定CIS Benchmark的target,比如说master、node、etcd等,你可以运行“run —targets”子命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kube-bench --benchmark cis-1.4 run --targets master,node

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kube-bench --benchmark cis-1.5 run --targets master,node,etcd,policies

下表中显示的是不同CIS Benchmark版本对应的有效目标:

CIS Benchmark

Targets

cis-1.3

master, node

cis-1.4

master, node

cis-1.5

master, controlplane, node, etcd, policies

gke-1.0

master, controlplane, node, etcd, policies, managedservices

eks-1.0

node, policies, managedservices

如果不指定目标,那么Kube-Bench将会根据CIS Benchmark版本自动检测合适的目标。

不同CIS Benchmark版本的“controls”可以在“cfg/”目录下找到对应的名称,比如说“cfg/cis-1.4”。

项目地址

Kube-Bench:https://github.com/aquasecurity/kube-bench

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一文搞懂基于 Kube-Bench 评估 Kubernetes 安全性
Hello folks,我是 Luga,今天我们来介绍另一款开源容器平台安全扫描工具 - Kube-bench。作为 Aqua Security 一款出色的开源产品,其能够基于 Internet 安全中心指南分析 Kubernetes Cluster 运行行为,并为其进行安全评估。‍‍‍‍
Luga Lee
2023/02/14
1.7K0
26 Dec 2021 kube-bench使用
kube-bench是一个go应用程序,它通过运行cis kubernetes benchmark中记录的规则来检查kubernetes是否安全部署。
俊采
2023/10/17
1610
外包精通--0成本学习IT运维k8s之安全(一)kube-bench
Kubernetes CIS基准:https://www.cisecurity.org/benchmark/kubernetes/
Godev
2024/05/05
2860
外包精通--0成本学习IT运维k8s之安全(一)kube-bench
Cluster Setup - CIS Benchmarks(集群设置-CIS基线)
)# 前言 https://cloud.tencent.com/act?from=10680 https://cloud.tencent.com/act/season?from=14065 https
对你无可奈何
2021/03/13
1.3K0
K8s安全配置:CIS基准与kube-bench工具
K8s集群往往会因为配置不当导致存在入侵风险,如K8S组件的未授权访问、容器逃逸和横向攻击等。为了保护K8s集群的安全,我们必须仔细检查安全配置。
Bypass
2023/09/01
6100
K8s安全配置:CIS基准与kube-bench工具
K8S 生态周报| 首个 Docker 官方 Action 发布
「K8S 生态周报」内容主要包含我所接触到的 K8S 生态相关的每周值得推荐的一些信息。欢迎订阅知乎专栏「k8s 生态」 ( https://zhuanlan.zhihu.com/container )。
Jintao Zhang
2020/03/26
4560
Kubernetes安全加固的几点建议
随着更多的组织开始拥抱云原生技术,Kubernetes已成为容器编排领域的行业标准。向 Kubernetes转变的这股潮流,很大程度上简化了容器化应用程序的部署、扩展和管理,并实现了自动化,为传统的单体式系统提供了胜于传统管理协议的众多优势。
李俊鹏
2022/09/21
9890
(译)33 个 Kubernetes 安全工具
Kubernetes 的安全工具多得很,有不同的功能、范围以及授权方式。因此我们建立了这个 Kubernetes 安全工具列表,其中有来自不同厂商的开源项目和商业平台,读者可以根据兴趣和需要进行了解和选择。
崔秀龙
2019/07/22
1.6K0
5个实用工具,提升Kubernetes生产力
Kubernetes 是一个强大的容器编排平台,用于自动化复杂应用程序的部署、管理和扩展。它通常带有kubectl客户端工具,允许用户使用 CLI(命令行界面)与 Kubernetes 集群进行交互。
灵雀云
2022/11/29
6070
5个实用工具,提升Kubernetes生产力
Kubernetes 安全:2022 年最佳实践
Kubernetes 使得扩展基础架构变得容易,但它同时也带来了新的安全挑战。因此,在本文中我们将了解 K8s 安全性的最佳实践。
Luga Lee
2022/03/25
8960
Kubernetes 安全:2022 年最佳实践
Kubernetes Goat:Kubernetes 漏洞靶场
欢迎使用构建代码服务。 该服务是使用具有 CI/CD 管道和现代工具集(如 Git、Docker、AWS 等)的容器构建的。
用户1423082
2024/12/31
1710
Kubernetes Goat:Kubernetes 漏洞靶场
5 个供开发人员使用的 Kubernetes 安全工具
Kubernetes 安全基于云原生安全 4C(云、集群、容器、代码)。底层物理基础设施是云中 Kubernetes 安全的基础。因此,当有人在数据中心部署或构建集群时,他们必须遵守所有 Kubernetes 安全最佳实践。
DevOps云学堂
2022/10/04
5920
5 个供开发人员使用的 Kubernetes 安全工具
Kubestriker:一款针对Kubernetes的快速安全审计工具
Kubestriker是一款针对Kubernetes的快速安全审计工具,Kubestriker可以对Kubernetes的infra容器执行大量深入检测,以帮助研究人员识别其中存在的安全错误配置以及其他安全问题。这些安全问题可能是工程师或开发人员在使用Kubernetes会遇到的,尤其是在大规模生成环境之中,一个小小的安全问题可能会带来严重的安全风险。
FB客服
2021/04/16
1.7K0
Kubestriker:一款针对Kubernetes的快速安全审计工具
DevSecOps集成CI/CD全介绍
在了解 DevSecOps 之前,我们先来了解一下 DevOps 是什么。DevOps 是文化理念、实践和工具的结合,可提高组织高速交付应用程序和服务的能力。
IT运维技术圈
2022/12/26
2.1K0
DevSecOps集成CI/CD全介绍
kubernete编排技术五:DaemonSet
写留言这篇文章我们来介绍kubernete的一个编排对象,叫DaemonSet,从名字上就能看出,这是一个守护进程。它的作用是在kubernete集群的每个节点上都会创建一个Daemon Pod,而且仅有一个。
jinjunzhu
2020/08/20
4310
Kube-Score:一款针对Kubernetes的安全分析工具
Kube-Score是一款针对Kubernetes的性能及安全分析工具,该工具能够对Kubernetes对象定义进行静态代码分析,并给出提升Kubernetes性能和安全性方面的建议。
FB客服
2020/11/05
1.2K0
kubernete编排技术二:deployment
kubernete中的控制器模式,是指用一种对象来控制另一种对象,这个控制器是由组件kube-controller-manager来实现的。deployment就是一种控制器,用来控制pod的创建、水平扩展收缩、滚动更新。deployment是kubernete中一个对无状态pod的控制器,本文来介绍一下。
jinjunzhu
2020/08/20
4320
推荐|50+有用的Kubernetes工具
在短短两年的时间里,Kubernetes在集装箱管道战场上给其竞争对手带来了浪费。令人遗憾的是,Docker Swarm自2016年以来并未成为主要的竞争者,并且像AWS一样,承诺通过承诺K8的支持和整合而失败。
February
2018/11/21
3.2K0
使用kubeadm工具箱创建kubernetes1.9集群
版权声明:本文为木偶人shaon原创文章,转载请注明原文地址,非常感谢。 https://blog.csdn.net/wh211212/article/details/79209551
shaonbean
2019/05/26
5620
2024年最佳Kubernetes工具
Kubernetes已经崛起成为容器编排的行业标准,它彻底改变了企业在面向微服务的世界中交付软件的方式。凭借支持各种应用需求和限制的能力,Kubernetes已经成为全球组织的首选。随着越来越多的公司采用Kubernetes,对精通其细节的经验丰富开发者的需求继续增长。但是,成为高效的Kubernetes开发者不仅需要对其概念有扎实的理解,还需要高效工作并最大限度地提高生产力。
云云众生s
2024/03/28
1820
相关推荐
一文搞懂基于 Kube-Bench 评估 Kubernetes 安全性
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文