docker scan 本地扫描镜像漏洞
Docker scan[1]本地扫描镜像漏洞
2020年年底,Docker hub推出镜像自动扫描的功能,同时Docker也支持了在本地通过Docker命令选项的方式支持镜像漏洞扫描,目前Docker Desktop for Mac以及window上的Docker都可以通过Docker scan子命令扫描本地镜像是否存在漏洞软件。
Docker Desktop For Mac
使用docker scan的时候需要登录Docker Hub的账号,同时docker scan支持一些不同的选项
Options: --accept-license 接受使用第三方扫描提供商 --dependency-tree 显示带有扫描结果的依赖树 --exclude-base 从漏洞扫描中排除基础镜像 (requires --file) -f, --file string 与image关联的Dockerfile,提供更详细的结果 --group-issues 聚合重复的漏洞并将其分组为1个漏洞 (requires --json) --json do 以json格式输出结果 --login 使用可选令牌(带有--token)向扫描提供程序进行身份验证,如果为空则使用web base令牌 --reject-license 拒绝使用第三方扫描提供商 --severity string 只报告提供级别或更高的漏洞(low|medium|high) --token string 登录到第三方扫描提供程序的认证令牌 --version 显示扫描插件版本
指定Dockerfile
$ docker scan -f Dockerfile docker-scan:e2e Testing docker-scan:e2e ... High severity vulnerability found ck;in perl Description: Integer Overflow or Wraparound Info: https://snyk.io/vuln/SNYK-DEBIAN10-PERL-570802 Introduced through: git@1:2.20.1-2+deb10u3, meta-common-packages@meta From: git@1:2.20.1-2+deb10u3 > [email protected] From: git@1:2.20.1-2+deb10u3 > [email protected] > [email protected] From: git@1:2.20.1-2+deb10u3 > [email protected] > perl/[email protected] and 3 more... Introduced by your base image (golang:1.14.6) Organization: docker-desktop-test Package manager: deb Target fierle: Dockerfile Project name: docker-image|99138c65ebc7 Docker image: 99138c65ebc7 Base image: golang:1.14.6 Licenses: enabled Tested 200 dependencies for known issues, found 157 issues. According to our scan, you are currently using the most secure version of the selected base image
不扫描该镜像的基础镜像
$ docker scan -f Dockerfile --exclude-base docker-scan:e2e Testing docker-scan:e2e ... Medium severity vulnerability foun sd in libidn2/libidn2-0 Description: Improper Input Validation Info: https://snyk.io/vuln/SNYK-DEBIAN10-LIBIDN2-474100 Introduced through: iputils/iputils-ping@3:20180629-2+deb10u1, [email protected], [email protected]+deb10u1, git@1:2.20.1-2+deb10u3 From: iputils/iputils-ping@3:20180629-2+deb10u1 > libidn2/[email protected]+deb10u1 From: [email protected] > libidn2/[email protected]+deb10u1 From: [email protected]+deb10u1 > curl/[email protected]+deb10u1 > libidn2/[email protected]+deb10u1 and 3 more... Introduced in your Dockerfile by 'RUN apk add -U --no-cache wget tacar' Organization: docker-desktop-test Package manager: deb Target file: Dockerfile Project name: docker-image|99138c65ebc7 Docker image: 99138c65ebc7 Base image: golang:1.14.6 Licenses: enabled Tested 200 dependencies for known issues, found 16 issues.
以json格式输出扫描结果
JSON格式显示镜像扫描结果
聚合分组显示扫描信息
$ docker scan --json --group-issues docker-scan:e2e { { "title": "Improper&nbsn p;Check for Dropped Privileges", ... "packageName": "bash", "language": "linux", "packageManager": "debian:10", "description": "## Overview An issue was discovered in disable_priv_mode in shell.c in GNU Bash through 5.0 patch 11. By default, if Bash is run with its effective UID not equal to its real UID, it will drop privileges by setting its effective UID to its real UID. However, it does so inc本地orrectly. On Linux and other systems that support "saved UID" functionality, the saved UID is not dropped. An attacker with command execution in the shell can use "enable -f" for runtime loading of a new builtin, which can be a shared object that calls setuid() and therefore regains privileges. However, binaries running with an effective UID of 0 are unaffected. ## References - [CONFIRM](https://security.netapp.com/advisory/ntap-20200430-0003/) - [Debian Security Tracker](https://security-tracker.debian.org/tracker/CVE-2019-18276) - [GitHub Commit](https:扫描//github.com/bminor/bash/commit/951bdaad7a18cc0dc1036bba86b18b90874d39ff) - [MISC](http://packetstormsecurity.com/files/155498/Bash-5.0-Patch-11-Privilege-Escalation.html) - [MISC](https://www.youtube.com/watch?v=-wGtxJ8opa8) - [Ubuntu CVE Tracker](http://people.ubuntu.com/~ubuntu-security/cve/CVE-2019-18276) ", "identifiers": { "ALTERNATIVE": [], "CVE": [ "CVE-2019-18276" ], "CWE": [ "CWE-273" ] 镜像; }, "severity": "low", "severityWithCritical": "low", "cvssScore": 7.8, "CVSSv3": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H/E:F", ... "from": [ "docker-image|docker-scan@e2e", "[email protected]" ], "upgradePath": [], "isUpgradable": false, "isPatchable": false, 漏洞 "name": "bash", "version": "5.0-4" }, ... "summary": "880 vulnerable dependency paths", "filesystemPolicy": false, "filtered": { "ignore": [], "patch": [] }, "uniqueCount": 158, "projectName": "docker-image|docker-scan", "platform": "linux/amd64", "path": "docker-scan:e2e" }
显do示指定级别的漏洞,只有高于此级别的漏洞才会显示出来
$ docker scan --severity=medium docker-scan:e2e ./bin/docker-scan_darwin_amd64 scan --severity=medium docker-scan:e2e Testing docker-scan:e2e... Medium severity vulnerability found in sqlite3/libsqlite3-0 Description: Divide By Zero Info: https://snyk.io/vuln/SNYK-DEBIAN10-SQLITE3-466337 Introduced through: gnupg2/[email protected]+deb10u1, [email protected]+deb10u1, [email protected]+deb10u1 From: gnupg2/[email protected]+deb10u1 > gnupg2/[email protected]+deb10u1 > sqlite3/[email protected] From: [email protected]+deb10u1 > subversion/[email protected]+deb10u1 > sqlite3/[email protected] &nbsckp;From: [email protected]+deb10u1 > python-defaults/[email protected] > [email protected]+deb10u1 > python2.7/[email protected]+deb10u1 > sqlite3/[email protected] Medium severity vulnerability found in sqlite3/libsqlite3-0 Description: Uncontrolled Recursion ... High severity vulnerability found in binutils/binutils-common Description: Missing Release of Resource after Effective Lifetime Info: https://snyk.io/vuln/SNYK-DEBIAN10-BINUTILS-403318 Introduced through: gcc-defaults/g++@4:8.3.0-1 From: gcc-defaults/g++@4:8.3.0-1 > gcc-defaults/gcc@4:8.3.0-1 > [email protected] >&ernbsp;[email protected] > binutils/[email protected] From: gcc-defaults/g++@4:8.3.0-1 > gcc-defaults/gcc@4:8.3.0-1 > [email protected] > [email protected] > binutils/[email protected] > binutils/[email protected] From: gcc-defaults/g++@4:8.3.0-1 > gcc-defaults/gcc@4:8.3.0-1 > [email protected] > [email protected] > binutils/[email protected] > binutils/[email protected] and 4 more... Organization: docker-desktop-test Package manager: deb Project name: docker-image|docker-scan Docker image: &n sbsp; docker-scan:e2e Platform: linux/amd64 Licenses: enabled Tested 200 dependencies for known issues, found 37 issues. Linux上安装scan-cli插件
目前Linux系统上的Docker Engine尚未支持scan命令,因此可以通过插件形式使用,可以参考scan-cli-plugin[2]的文档,此处我在Ubuntu上通过apt安装一下
> cat /etc/apt/sources.list.d/docker.list deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial stable > apt-get update && apt-get install docker-scan-plugin
安装完成之后,登录Docker hub,然后同意访问Snyk即可。
参考资料
[1]docker scan:
https://docs.docker.com/engine/scan/
[2]scan-cli-plugin:
https://github.com/docker/scan-cli-plugin
(责任编辑:次日达)
- 云计算核心技术Docker教程:Docker Swarm 模式控制服务在不同节点上的规模和位置
- 标签: 越秀服务 AI品控 非住业态 悦+LIFE
- 标签: QuestMobile OPPO 抖音 豆包
- 标签: 华依科技 港交所上市 新能源汽车测试 智能驾驶
- 生活在边缘 做边缘计算的生意?
- 标签: 蒙纳字库 Monotype Fonts 字体平台 中文设计
- 腾讯云上线DeepSeek-V3.1 API
- 标签: 国家新闻出版署 国产网络游戏 游戏审批 2026年3月
- 工信部:一季度机器人产量激增33.2%,AI硬科技点亮智慧生活
- 美国法官:苹果经济学家数量多于Epic 质证时间不应相同
- 1Password 推出新功能可以修复 AI 浏览器代理的登录安全性
- 标签: 五一假期 春假政策 躺平游 韩国出境游
- 阿里云总裁张建锋:定义下一代的云 中国云计算就有超车机会
- 智谱AutoGLM2.0重磅升级:云端AI助手突破硬件限制,人人可用
- 标签: 京东外卖 七鲜小厨 品质外卖
- 标签: QuestMobile 新中产 淘宝 京东
- Redmi商标被抢注,小米维权失败
- 标签: 曹操出行 时空道宇 Robotaxi 2.0 卫星SOS
- 欧洲佳能采用IBM API平台成功转型专业服务会员数两位数成长
- 标签: 商汤 如影营销智能体 电商AI 数字人Agent
- AI模型在加密货币交易平台同台竞技:DeepSeek暂时领先,总资产增长130% views+
- Cohere 与 Aleph Alpha 达成 200 亿美元跨大西洋人工智能合作 views+
- 标签: 比亚迪 views+
- 吃不完的车厘子怎么保存 views+
- 标签: 日本叮叮 广州威葵 蚊香液 消费欺诈 views+
- 标签: xAI 马斯克 ManuelKroiss SpaceX views+
- 标签: 天美G1工作室 高敏 VincentGao 腾讯游戏 views+
- 标签: 字节跳动 豆包 赛豆 智能座舱 views+
- 华为彭松:协同运力、算力、存力,加速迈向智能世界 views+
- 云安全日报220714:思科身份服务引擎发现身份验证绕过漏洞,需要尽快升级 views+
