一箫一剑平生意,负尽狂名十五年。这篇文章主要讲述遵循CIS Docker Benchmarks规范的开源巡检脚本(内附PDF下载)相关的知识,希望能为你提供帮助。
CIS是什么?CIS即Center for Internet Security (CIS) 为安全基准计划提供了定义明确、公正、基于一致性的行业最佳实践来帮助组织评估和增强其安全性
Docker Bench SecurityDocker Bench for Security是一个开源的脚本。它是基于CIS Docker Benchmark v1.3.1规范的,用于自动化巡检在生产环境中运行Docker容器的数十种常见的最佳实践的脚本。
【遵循CIS Docker Benchmarks规范的开源巡检脚本(内附PDF下载)】通过调用tests
目录的以下脚本进行巡检, 具体的巡检的内容可以参考的脚本的内容。
1_host_configuration.sh
2_docker_daemon_configuration.sh
3_docker_daemon_configuration_files.sh
4_container_images.sh
5_container_runtime.sh
6_docker_security_operations.sh
7_docker_swarm_configuration.sh
8_docker_enterprise_configuration.sh
99_community_checks.sh
在docker-bench-security中可以通过修改
functions
中的脚本选择检查的项,也可以通过命令行选项排除不需要检查的项,下面看下支持的命令行选项.命令选项docker-bench-security
-b可选Do not print colors 不打印颜色
-h可选Print this help message 打印帮助信息
-l FILE可选Log output in FILE, inside container if run using docker 日志输出文件,如果使用docker运行,在容器内部
-u USERS 可选Comma delimited list of trusted docker user(s) 以逗号分隔的受信任docker用户列表
-c CHECK 可选Comma delimited list of specific check(s) id 以逗号分隔的指定检查id列表
-e CHECK 可选Comma delimited list of specific check(s) id to exclude 要排除的以逗号分隔的检查id列表
-i INCLUDE 可选 Comma delimited list of patterns within a container or image name to check 以逗号分隔的容器或图像名称中的模式列表
-x EXCLUDE 可选 Comma delimited list of patterns within a container or image name to exclude from check 容器或图像名称中要排除的以逗号分隔的模式列表
-n LIMIT可选 In JSON output, when reporting lists of items (containers, images, etc.), limit the number of reported items to LIMIT. Default 0 (no limit).
在JSON输出中,当报告项目列表(容器,图像等)时,限制报告项目的数量为LIMIT。默认0(无限制)。
-p PRINT可选 Disable the printing of remediation measures. Default: print remediation measures. 禁用打印补救措施。默认值:打印补救措施。
每个CIS巡检项在脚本中是以
check_&
lt;
section&
gt;
_&
lt;
number&
gt;
格式命名的. 如果要排除某项检查可以使用sh docker-bench-security.sh -e check_2_2 # 表示检查所有,除了check_2_2(2.2 Ensure the logging level is set to \'info\')
也可以只检查某项
sh docker-bench-security.sh -c check_2_2
使用很简单。
构建镜像
git clone https://github.com/docker/docker-bench-security.git
cd docker-bench-security
docker build --no-cache -t docker-bench-security .
下面是在Mac上执行一次巡检的Demo.
Docker Desktop for Mac
docker run --rm --net host --pid host --userns host --cap-add audit_control \\
-e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST \\
-v /var/lib:/var/lib:ro \\
-v /var/run/docker.sock:/var/run/docker.sock:ro \\
-v `pwd`:/usr/local/bin/log/ \\
--label docker_bench_security \\
docker/docker-bench-security -t devops.v1
# ------------------------------------------------------------------------------
# Docker Bench for Security v1.3.4
#
# Docker, Inc. (c) 2015-
#
# Checks for dozens of common best-practices around deploying Docker containers in production.
# Inspired by the CIS Docker Community Edition Benchmark v1.1.0.
# ------------------------------------------------------------------------------Initializing Thu Sep2 04:55:59 UTC 2021Looking for image devops.v1[INFO] 1 - Host Configuration
[WARN] 1.1- Ensure a separate partition for containers has been created
[NOTE] 1.2- Ensure the container host has been Hardened
....[省略省略过多内容]
[PASS] 7.10- Ensure management plane traffic has been separated from data plane traffic (Swarm mode not enabled)[INFO] Checks: 105
[INFO] Score: 7
推荐阅读
- NVMe over TCP高性能文件存储,焱融科技+Lightbits让未来照进现实
- go并发控制
- HarmonyOS实战——CommonDialog组件的基本使用
- 第三周
- uni-app技术分享|开源demo视频呼叫arcall uni-app端技术实现
- 使用docker-compose部署最新版Harbor v2.3.2
- LINUX随笔三 tomcat日志显示中文乱码
- 程序员突破内卷大法(聊聊软件架构师成长之路(干货系列,说人话接地气))
- Divi全屏滑块错误