docker容器安全检测和渗透测试工具

1、Docker-bench-security

简介

Docker Bench for Security 是一个脚本,用于自动化检查在生产中部署 Docker 容器的数十种常见最佳实践,比如主机配置的安全性、Docker deamon配置的安全性、容器镜像和构建的安全性等。

下载

https://github.com/docker/docker-bench-security

安装和使用

unzip  docker-bench-security-master.zip
cd docker-bench-security-master

进入到文件夹中,加执行权限

chmod 777  docker-bench-security.sh

执行脚本进行检查

./docker-bench-security.sh 

脚本自动化检测当前主机的容器安全性,并将检测到的信息输出到终端,对于检测到的不安全的内容,会以[warn]提示,并在最后给出测评的分数.

 可以将结果导入到文件中(默认为json格式)

./docker-bench-security.sh  -l 文件名

 2、trivy

简介

trivy是一个由asuz公司开源的简单而全面的扫描器,用于检测容器镜像、文件系统和 Git 存储库中的漏洞以及配置问题。 Trivy 检测操作系统包(Alpine、RHEL、CentOS 等)和特定语言包(Bundler、Composer、npm、yarn 等)的漏洞。此外,Trivy 会扫描基础设施即代码 (IaC) 文件,例如 Terraform、Dockerfile 和 Kubernetes,以检测使您的部署面临攻击风险的潜在配置问题。

下载地址:

https://github.com/aquasecurity/trivy

wget https://github.com/aquasecurity/trivy/releases/download/v0.21.2/trivy_0.21.2_Linux-64bit.tar.gz
tar -zxvf trivy_0.21.2_Linux-64bit.tar.gz
./trivy image alpine:3.10.7

扫描选项:

trivy <target> [--security-checks <scanner1,scanner2>] TARGET_NAME

扫描镜像:

镜像的扫描非常简单只需指定镜像名称即可(和标签)

trivy image [YOUR_IMAGE_NAME]

例如:

$ trivy image python:3.4-alpine

 

 

 扫描镜像文件

$ docker pull ruby:3.1-alpine3.15
$ docker save ruby:3.1-alpine3.15 -o ruby-3.1.tar
$ trivy image --input ruby-3.1.tar



指定要扫描的目录

trivy fs --security-checks vuln,config [YOUR_PROJECT_DIR]

例如,我们指定一个myproject的源码目录扫描下:

$ trivy fs --security-checks vuln,secret,config myproject/

根文件系统

描根文件系统(例如主机、虚拟机映像或未打包的容器映像文件系统)

$ trivy rootfs /path/to/rootfs

从容器内部扫描您的容器

$ docker run --rm -it alpine:3.11
/ # curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin
/ # trivy rootfs /

 

 

扫描目录中的错误配置

只需指定一个包IaC文件的目录就行,例Terraform和Dockerfile。

trivy config [YOUR_IAC_DIR]

例如,我们还是指定tidb源码的当前目录扫描

trivy config ./

您还可以通过--security-checks config.

$ trivy fs --security-checks config /path/to/dir

$ trivy image --security-checks config IMAGE_NAME

扫描镜像仓库

$ trivy repo https://github.com/knqyf263/trivy-ci-test

 

 

根据严重程度进行过滤

$ trivy --severity HIGH,CRITICAL ruby:2.3.0

忽略未修复问题

$ trivy --ignore-unfixed ruby:2.3.0

忽略特定问题

使用 .trivyignore

$ cat .trivyignore
# Accept the risk
CVE-2018-14618

# No impact in our settings
CVE-2019-1543

$ trivy python:3.4-alpine3.9

使用 JSON 输出结果

$ trivy -f json dustise/translat-chatbot:20190428-5

定义返回值

$ trivy --exit-code 0 --severity MEDIUM,HIGH ruby:2.3.0
$ trivy --exit-code 1 --severity CRITICAL ruby:2.3.0

参考资料:https://aquasecurity.github.io/trivy/v0.29.2/docs/vulnerability/scanning/git-repository/

posted on 2022-07-12 15:51  uestc2007  阅读(789)  评论(0编辑  收藏  举报

导航