0


CKS之k8s安全基准工具:kube-bench

CIS K8s安全基准(CIS K8s Benchmark)

    CIS Kubernetes Benchmark 由互联网安全中心(CIS)社区维护,旨在提供 Kubernetes 的安全配置基线,旨在为互联网环境提供免费的安全防御方案。CIS是一个非营利性组织,其制定的安全基准覆盖了多个领域,包括操作系统、中间件、应用程序等多个层面。

    CIS官网:https://www.cisecurity.org/

    在Kubernetes领域,CIS也提出了相应的安全基准,专门针对Kubernetes集群的配置和管理提出了一系列安全建议和最佳实践。这些安全基准旨在帮助组织评估和加强其Kubernetes集群的安全性。

    Kubernetes CIS基准:https://www.cisecurity.org/benchmark/kubernetes/

CIS K8s安全基准测试工具(kube-bench)

    kube-bench是由容器安全企业Aquasecurity开发的一款工具,它基于CIS为Kubernetes制定的安全标准,专门用于评估Kubernetes集群的安全配置。这个工具主要的功能包括检测存在安全隐患的配置项、文件权限设置、账户安全及暴露的端口等多个方面。通过这些检查,kube-bench帮助用户识别并修正Kubernetes集群中可能存在的安全问题,进而增强集群的安全性。

项目地址:https://github.com/aquasecurity/kube-bench

kube-bench部署

1、下载二进制包

https://github.com/aquasecurity/kube-bench/releases

2、解压使用

tar zxvf kube-bench_0.6.3_linux_amd64.tar.gz

mkdir /etc/kube-bench # 创建默认配置文件路径

mv cfg /etc/kube-bench/cfg

kube-bench使用

1. 运行所有适用的检查项

** ** 如果无法运行,可容器化部署,参考文章:****https://zhuanlan.zhihu.com/p/627749341

kube-bench run

2. 只运行控制组内的某些检查项

kube-bench run --check=1.1.1,1.1.2

3. 列出所有可用的控制检查项

kube-bench check --list

4. 针对特定的节点角色运行检查(master/node/etcd/policies)

kube-bench run --targets=master,node

5. 将结果输出为JSON格式

kube-bench run --json

6. 并行运行检查以提高速度

kube-bench run --parallel

7. 更新CIS基准到最新版本

kube-bench download latest

8. 查看kube-bench版本

kube-bench version

kube-bench配置

1.文件格式
kube-bench的配置文件采用YAML格式,包含一系列的检查项配置。每个检查项通过唯一的id进行标识。

测试项目配置文件路径:/etc/kube-bench/cfg/cis-1.6/

配置项示例:

  • id: 1.2.21 text: "Ensure that the --profiling argument is set to false (Automated)" audit: "/bin/ps -ef | grep $apiserverpbin | grep -v grep" tests: test_items: - flag: "--profiling" compare: op: eq value: false remediation: | Edit the API server pod specification file $apiservercconf on the master node and set the below parameter. --profiling=fals

2.检查项字段
每个检查项都包含以下几个主要字段:

  • id: 唯一标识符
  • text: 对该检查项的文字描述
  • audit: 执行审计的命令,用于检查当前系统状态
  • tests: 具体的测试条件 #tests下的test_items字段定义了具体的测试条件。可以根据实际需求修改该部分的测试逻辑- test_items: 实际测试项- compare: 测试结果与期望值的比较方式(eq、neq等)
  • remediation: 如果审计失败,给出的修复建议
  • scored: 该项对总分数的影响(true、false、WARN)
  • type: 该项的处理方式(manual、skip、info) #对于某些无法自动检查的项目,可以设置type=manual,kube-bench就会跳过该项并给出WARN警告。如果想跳过某项检查,可以将对应项的type设为skip,这样kube-bench就不会执行该项检查。
  1. 处理方式
  2. 测试条件

kube-bench运行示例

输出结果分为不同的部分,每部分检查 Kubernetes 的特定安全性方面,比如 API 服务器的配置、控制器管理器、调度器等。每项检查后面标记了“PASS”、“WARN”或“FAIL”,分别表示通过、警告或失败。警告和失败项通常需要人工检查或更正。例如,“FAIL”可能表明配置不符合安全最佳实践,而“WARN”可能意味着某些安全特性没有被启用或需要人工确认配置是否正确。

  • “PASS”:表示检查项符合安全推荐。
  • “WARN”:表示配置可能存在风险,建议进行检查。
  • “FAIL”:表示配置不符合安全推荐,需要采取措施改进。

下图为Node相关的安全检查

1.1.12项“确保 etcd 数据目录权限设置为 700 或更严格 (自动化)”显示为“FAIL”,意味着当前的权限设置不够严格,可能需要进行权限的修改来加强安全性。

下图为关于Node节点的修复建议

1.1.9:建议对特定文件修改权限为644。 1.1.10:建议更改文件的所有权为 root 用户和 root 组。 1.1.12:针对 etcd 服务器节点,提供了获取 etcd 数据目录的方法,并建议将该目录的所有权更改为 etcd 用户和 etcd 组。

后面的部分是关于 API 服务器的安全配置建议,包括:

1.2.1:编辑 API 服务器 pod 规范文件,设置参数

--anonymous-auth=false

以禁用匿名访问。 1.2.6:建议根据 Kubernetes 文档设置 TLS 连接,并编辑 kube-apiserver 的配置文件,设置

--kubelet-certificate-authority

参数。 1.2.10:建议编辑 API 服务器 pod 规范文件,设置 admission 控制插件相关参数。

下图为关于Node安全检查的结果


本文转载自: https://blog.csdn.net/qq_38483331/article/details/136819612
版权归原作者 云晓DwanCloud 所有, 如有侵权,请联系我们删除。

“CKS之k8s安全基准工具:kube-bench”的评论:

还没有评论