AshleyT3/docker-socket-risk-demos
GitHub: AshleyT3/docker-socket-risk-demos
演示 docker.sock 挂载安全风险的教学仓库,提供无需暴露 Docker Socket 的 Trivy 安全扫描方案,并利用 Claude Code 自动分析漏洞报告。
Stars: 0 | Forks: 0
# docker-socket-risk-demos
配套视频代码库:**[停止挂载 docker.sock — 无需交出 Root 权限即可运行 Trivy — (灵感来自 CVE-2026-33634)](https://www.youtube.com/watch?v=xLTYzfPY3xI)**
https://www.youtube.com/watch?v=xLTYzfPY3xI
本代码库包含视频中用于演示的示例 Web 应用和 Claude Code 提示词:
1. 为什么将 `/var/run/docker.sock` 挂载到容器中会使该容器获得对宿主机的 root 级别访问权限
2. 一种运行 Trivy 扫描的更安全方法 —— 使用 `docker save` + 只读 tar 绑定挂载,而不是 Docker socket API
3. 使用 Claude Code 通过可复用的放行/阻断提示词分析 Trivy JSON 报告
## 仓库包含内容
### `my-calc-app/`
一个 Next.js/React 计算器应用,包含多阶段生产 Dockerfile(`node:20-alpine`,非 root 用户)。这是视频中由 Trivy 扫描的应用。
**构建并运行:**
```
cd my-calc-app
docker build -t my-calc-app:prod .
docker run -p 3000:3000 my-calc-app:prod
```
应用可通过 [http://localhost:3000](http://localhost:3000) 访问。
**注意:** 文件 `public/secret.txt` 包含一个虚拟的 RSA 私钥。这是故意的 —— 它的存在是为了让 Trivy 的密钥扫描器在视频的第一次扫描中能检测到它,从而演示 Trivy 的密钥检测能力。它并不是一个真实的密钥。
### `prompts/trivy-report-for-prod-docker-prompt.md`
视频中用于分析 Trivy JSON 扫描输出的 Claude Code 提示词。它根据位置(应用依赖 vs. OS 包 vs. npm/yarn 内部组件)对漏洞进行分类,并给出可以发布/不可发布的结论。
要将其用于你自己的镜像:
```
# 1. 将你的 image 导出为 tar 文件
docker save my-calc-app:prod -o my-calc-app-prod.tar
# 2. 针对 tar 文件运行 Trivy(不需要 docker.sock)
docker run --rm \
-v trivy-cache:/root/.cache/ \
-v ./my-calc-app-prod.tar:/image.tar:ro \
aquasec/trivy:latest image --input /image.tar -f json > report.json
# 3. 让 Claude Code 分析报告
claude -p "$(cat prompts/trivy-report-for-prod-docker-prompt.md) report.json"
```
## 更安全的 Trivy 方法(来自视频)
不要这样做:
```
# 通过 Docker API 赋予容器对宿主机的完整 root 访问权限
docker run -v /var/run/docker.sock:/var/run/docker.sock aquasec/trivy image my-app:latest
```
而要这样做:
```
# 1. 将 image 保存为 tar 文件
docker save my-calc-app:prod -o my-calc-app-prod.tar
# 2. 仅 Bind-mount tar 文件(只读),不进行 socket 访问
docker run --rm \
-v trivy-cache:/root/.cache/ \
-v ./my-calc-app-prod.tar:/image.tar:ro \
aquasec/trivy@sha256: image --input /image.tar -f json > report.json
```
使用 SHA256 摘要而不是标签来固定 Trivy 镜像,以抵御诸如 CVE-2026-33634 之类的供应链攻击。
## 频道
**[AshleyPurringTech](https://www.youtube.com/@AshleyPurringTech)**
标签:Claude Code, CVE-2026-33634, DevSecOps, DLL 劫持, docker.sock, Docker安全, MITM代理, React, Root权限, Syscalls, Web截图, 上游代理, 只读挂载, 大语言模型, 安全最佳实践, 容器安全, 密钥泄露, 活动识别, 自动化攻击, 请求拦截, 逃逸风险, 镜像扫描