
Сопутствующий исходный код для видео на YouTube «Stop Mounting docker.sock — Run Trivy Without Giving Away Root Access — (inspired by CVE-2026-33634)»
Репозиторий-компаньон для видео: Stop Mounting docker.sock — Run Trivy Without Giving Away Root Access — (inspired by CVE-2026-33634)
https://www.youtube.com/watch?v=xLTYzfPY3xI
Этот репозиторий содержит пример веб-приложения и промпт для Claude Code, использованные в видео для демонстрации:
/var/run/docker.sock в контейнер даёт этому контейнеру root-доступ к вашему хостуdocker save + read-only tar bind mount вместо Docker socket APImy-calc-app/Приложение-калькулятор на Next.js/React с многоступенчатым production Dockerfile (node:20-alpine, non-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.
Примечание: Файл public/secret.txt содержит фиктивный приватный RSA-ключ. Это сделано намеренно — он существует, чтобы сканер секретов Trivy обнаружил его при первом сканировании в видео, демонстрируя возможность Trivy по обнаружению секретов. Это не настоящий ключ.
prompts/trivy-report-for-prod-docker-prompt.mdПромпт для Claude Code, использованный в видео для анализа JSON-вывода сканирования Trivy. Он классифицирует уязвимости по местоположению (зависимости приложения vs. системные пакеты vs. внутренности npm/yarn) и выдаёт вердикт release/no-release.
Чтобы использовать его с вашим собственным образом:
# 1. Экспортируйте ваш образ в tar-файл
docker save my-calc-app:prod -o my-calc-app-prod.tar
# 2. Запустите Trivy против tar-файла (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"
Вместо:
# Даёт контейнеру полный root-доступ к вашему хосту через Docker API
docker run -v /var/run/docker.sock:/var/run/docker.sock aquasec/trivy image my-app:latest
Сделайте так:
# 1. Сохраните образ в tar-файл
docker save my-calc-app:prod -o my-calc-app-prod.tar
# 2. Смонтируйте только tar-файл (read-only), без доступа к сокету
docker run --rm \
-v trivy-cache:/root/.cache/ \
-v ./my-calc-app-prod.tar:/image.tar:ro \
aquasec/trivy@sha256:<pin-to-digest> image --input /image.tar -f json > report.json
Зафиксируйте образ Trivy с помощью SHA256-дайджеста вместо тега, чтобы противостоять атакам на цепочку поставок, таким как CVE-2026-33634.