k8s安全02--云安全工具与安全运行时
k8s安全01--云安全工具与安全运行时基础简介安全工具与运行时CIS-CattrivySecure Runtimes注意事项说明基础简介本文基于 k8s安全01–云安全简介 继续介绍几个常用的安全工具和安全配置,后续会在此文中持续更新相关的安全工具。安全工具与运行时CIS-CatCIS-Cat 是 The Center for Internet Security, Inc. (CIS®) 开发提
·
k8s安全02--云安全工具与安全运行时
1 基础简介
本文基于 k8s安全01–云安全简介 继续介绍几个常用的安全工具和安全配置,后续会在此文中持续更新相关的安全工具。
2 安全工具与运行时
2.1 CIS-Cat
CIS-Cat 是 The Center for Internet Security, Inc. (CIS®) 开发提供的一个免费工具,可以用来先检测系统中安全事项,以便于用户调整优化系统安全。
- 安装jdk,笔者使用 v3 的CIS-Cat工具,需要使用jdk1.8.* 或者openjdk11版本的jdk。
直接: apt-get install openjdk-11-jdk -y 或者下载jdk的bin文件,然后解压加入到环境变量: vim ~/.bashrc ...... export JAVA_HOME=/home/xg/soft/jdk1.8.0_201 export PATH=$JAVA_HOME/bin:$PATH
- 下载安装CIS-Cat工具
安装: wget https://learn.cisecurity.org/e/799323/l-799323-2019-11-15-3v7x/2mnnf/\79038343?h=xWidc0ywLqO6rH0WMcM1VXE9q1_WfdjCoVQ-tL2jXks mv 79038343\?h\=xWidc0ywLqO6rH0WMcM1VXE9q1_WfdjCoVQ-tL2jXks CIS-Cat.zip apt-get update apt-get install unzip unzip CIS-Cat.zip 执行并输出安全报告 Assessor-CLI# bash Assessor-CLI.sh -i
- 执行输出测试报告
执行起始输出信息:
选择测试项界面:
结果汇总:
输出完成后会生成一个html的测试报告,方便查看详细异常问题,如下图
报告在report目录下, reports/kmaster-CIS_Ubuntu_Linux_18.04_LTS_Benchmark-20210627T023243Z.html
2.2 trivy
trivay 是一种适用于CI的简单而全面的容器漏洞扫描程序。其具备检测全面、使用简单、扫描快且无状态、易于安装等优点。
- 安装
apt-get install wget apt-transport-https gnupg lsb-release -y wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | sudo apt-key add - echo deb https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list.d/trivy.list apt-get update apt-get install trivy -y $ trivy --version Version: 0.16.0
- 测试
trivy image knqyf263/vuln-image:1.2.3 检测有漏洞的 knqyf263/vuln-image:1.2.3镜像,可以发现很多漏洞
trivy --clear-cache image nginx 检测最新的nginx,还是存在 一些漏洞的
docker pull alpine:3.14.0 检测最新的alpine:3.14.0,无漏洞
2.3 Secure Runtimes
RuntimeClass是需要在kube-apiserver和每个可能使用该运行时节点上的kubelets上启用的功能。我们可以在API服务器中创建对象,并在pod请求时声明引擎启动,但如果不配置后端,pod将永远不会达到就绪状态。
开启RuntimeClass方法见 docs/concepts/containers/runtime-class/#cri-configuration
vim runtimeclass.yaml
apiVersion: node.k8s.io/v1beta1
kind: RuntimeClass
metadata:
name: gvisor
handler: runsc # 注意,如果使用的是docker(非containerd 和CRI),那么测试的时候最好将runsc更改为docker,否则无法正常拉起pod
kubectl create -f runtimeclass.yaml
vim gvisor-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: simple-gvisor
spec:
runtimeClassName: gvisor
containers:
- name: secure-nginx
image: nginx:1.19.6
kubectl create -f gvisor-pod.yaml
$ kubectl get po
NAME READY STATUS RESTARTS AGE
simple-gvisor 1/1 Running 0 65s
web-848bb65cf6-9lfgc 1/1 Running 1 9d
3 注意事项
- 使用 runtimeclass 的时候需要在集群中每个节点中开启 runtimeclass 的 handler,不开启的话无法正常拉起pod。
4 说明
- 软件环境
ubuntu 环境18.04 server版本
java 环境 1.8.0_201
k8s 版本 1.19.4 - 参考文档
CIS-CAT 介绍
trivy github
docs/concepts/containers/runtime-class
更多推荐
已为社区贡献44条内容
所有评论(0)