Docker镜像安全的一些(初级)检测方法


一些使用过的工具记录。

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文件内容

主要可以查看镜像有没有一些泄露生产环境的敏感信息使用了一些危险命令


这篇文章对你有帮助吗?作为一名程序工程师,在评论区留下你的困惑或你的见解,大家一起来交流吧!
微信公众号: Mysticbinary
Github:https://github.com/Mysticbinary
本文版权归作者所有,欢迎转载,但未经作者同意请保留此段声明,请在文章页面明显位置给出原文链接
声明:本文章仅限于讨论网络安全技术,请勿用作任何非法用途,否则后果自负,本人和博客园不承担任何责任!
原文地址:https://www.cnblogs.com/mysticbinary/p/15689802.html