一些使用过的工具记录。
docker scan工具
这个是docker官方工具,参考文档:
https://docs.docker.com/engine/scan/
使用方法:
命令格式
docker scan 参数 镜像名:Tag
示例
docker scan --json hello-world
更多使用技巧看官网文档哈。
我的使用记录:
docker pull image-docker.xxx.cc/base/go-runner:safe-static-1.0
docker scan --json image-docker.xxx.cc/base/go-runner:safe-1.0 >> ./go-safe.txt
报告形式
注意,使用 Docker 镜像运行漏洞扫描,需要满足如下前置条件:
- 下载并安装 Docker 桌面;
- 我在虚拟机内的docker运行docker scan命令也返回失败,具体原因我没研究,我换了一台物理机就搞定了,大家注意一下就行。
- 登录Docker 中心;
- 从 Docker 桌面菜单中,选择登录/创建 Docker ID。或者,打开终端并运行命令docker login。
- (可选)您可以创建一个Snyk 帐户进行扫描,或使用 Snyk 提供的额外每月免费扫描与您的 Docker Hub 帐户。
dockersca工具
这个是一个python3的软件,用pip3下载使用,参考文档:
https://www.cnblogs.com/Hi-blog/p/Docker-Scanner-Tool-DockerScan.html#autoid-5-0-0
使用:
docker save -o mysql.tar mysql
dockerscan image analyze mysql.tar
更多使用方法看参考文档,
报告形式:
[root@aubin testdocker]# dockerscan image analyze go-safe-1.tar
[ * ] Starting the analysis of docker image...
[ * ] Selected image: 'go-safe-1.tar'
[ * ] Analysis finished. Results:
[ * ] - Running user = root
// 没有输出就是没有问题。
他这个报告有点水,感觉不如docker官方那个scan扫描,但是他有个工具能看镜像的一些信息,比如提取镜像文件
dockerscan image extract ./mysql.tar ./mysql
root@localhost docker]# ls mysql # mysql文件夹下就是典型的linux文件系统目录结构
bin boot dev docker-entrypoint-initdb.d entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[root@localhost docker]# cat ./mysql/etc/passwd | head -3 # 查看/etc/passwd文件内容
主要可以查看镜像有没有一些泄露生产环境的敏感信息、使用了一些危险命令: