供应链安全
供应链安全
目录
[toc]
本节实战
实战名称 |
---|
💘 实战:安装Trivy-2023.6.4(测试成功) |
💘 实战:安装kubesec-2023.6.4(测试成功) |
💘 实战:准入控制器: ImagePolicyWebhook-2023.6.6(测试成功) |
可信任软件供应链概述
**可信任软件供应链:**指在建设基础架构过程中,涉及的软件都是可信任的。
在K8s领域可信软件供应链主要是指镜像,因为一些软件交付物都是镜像,部署的最小载体。
构建镜像Dockerfile文件优化
- 减少镜像层:一次RUN指令形成新的一层,尽量Shell命令都写在一行,减少镜像层。
- **清理无用文件:**清理对应的残留数据,例如yum缓存。
- **清理无用的软件包:**基础镜像默认会带一些debug工具,可以删除掉,仅保留应用程序所需软件,防止黑客利用。
- 选择最小的基础镜像:例如alpine
- **使用非root用户运行:**USER指令指定普通用户
- 注意:
一次RUN指令形成新的一层,尽量Shell命令都写在一行,减少镜像层。
- 删除掉这个缓存目录就行
- alpine镜像大小:5MB
镜像漏洞扫描工具:Trivy
**Trivy:**是一种用于容器镜像、文件系统、Git仓库的漏洞扫描工具。发现目标软件存在的漏洞。
Trivy易于使用,只需安装二进制文件即可进行扫描,方便集成CI系统。
项目地址:https://github.com/aquasecurity/trivy
==💘 实战:安装Trivy-2023.6.4(测试 成功)==
- 实验环境
实验环境:
centos7
- 实验软件
链接:https://pan.baidu.com/s/17XstYWfyOWW3nyNgxhS4yQ?pwd=0820
提取码:0820
2023.6.4-trivy-code
- 安装步骤
1、下载软件
[root@k8s-master1 ~]#ll -h trivy_0.18.3_Linux-64bit.tar.gz #自己去官网下载,这里直接用提供的安装包
-rw-r--r-- 1 root root 11M Jun 4 07:39 trivy_0.18.3_Linux-64bit.tar.gz
2、移动二进制文件到/usr/bin目录
[root@k8s-master1 ~]#mkdir trivy
[root@k8s-master1 ~]#mv trivy_0.18.3_Linux-64bit.tar.gz trivy
[root@k8s-master1 ~]#cd trivy/
[root@k8s-master1 trivy]#tar xf trivy_0.18.3_Linux-64bit.tar.gz
[root@k8s-master1 trivy]#ls
contrib LICENSE README.md trivy trivy_0.18.3_Linux-64bit.tar.gz
[root@k8s-master1 trivy]#mv trivy /usr/bin/
3、测试
[root@k8s-master1 ~]#trivy --help
NAME:
trivy - A simple and comprehensive vulnerability scanner for containers
USAGE:
trivy [global options] command [command options] target
VERSION:
0.18.3
COMMANDS:
image, i scan an image
filesystem, fs scan local filesystem
repository, repo scan remote repository
client, c client mode
server, s server mode
plugin, p manage plugins
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--quiet, -q suppress progress bar and log output (default: false) [$TRIVY_QUIET]
--debug, -d debug mode (default: false) [$TRIVY_DEBUG]
--cache-dir value cache directory (default: "/root/.cache/trivy") [$TRIVY_CACHE_DIR]
--help, -h show help (default: false)
--version, -v print the version (default: false)
安装结束。😘
示例:
# 容器镜像扫描
trivy image nginx
trivy image -i nginx.tar
# 打印指定(高危、严重)漏洞信息
trivy image -s HIGH nginx
trivy image -s HIGH,CRITICAL nginx
# JSON格式输出并保存到文件
trivy image -f json -o output.json nginx
漏洞数据库:
检查YAML文件安全配置:kubesec
**kubesec:**是一个针对K8s资源清单文件进行安全配置评估的工具,根据安全配置最佳实践来验证并给出建议。
项目地址:https://github.com/controlplaneio/kubesec
==💘 实战:安装kubesec-2023.6.4(测试成功)==
- 实验环境
实验环境:
centos7
- 实验软件
链接:https://pan.baidu.com/s/1SvQ1ijvplpe-hfUv6cCUgQ?pwd=0820
提取码:0820
2023.6.4-kubesec-code
- 安装步骤
1、下载软件
root@k8s-master1 ~]#ll -h kubesec_linux_amd64.tar.gz
-rw-r--r-- 1 root root 3.9M Jun 4 07:39 kubesec_linux_amd64.tar.gz
2、解压
[root@k8s-master1 ~]#tar xf kubesec_linux_amd64.tar.gz
[root@k8s-master1 ~]#mv kubesec /usr/bin/
3、验证
[root@k8s-master1 ~]#kubesec --help
Validate Kubernetes resource security policies
Usage:
kubesec [command]
Available Commands:
help Help about any command
http Starts kubesec HTTP server on the specified port
scan Scans Kubernetes resource YAML or JSON
version Prints kubesec version
Flags:
-h, --help help for kubesec
Use "kubesec [command] --help" for more information about a command.
安装结束。😘
示例:
kubesec scan deployment.yaml
或者使用容器环境执行检查
docker run -i kubesec/kubesec scan /dev/stdin < deployment.yaml