
Сканер безопасности Docker на базе ИИ, который объясняет уязвимости простым языком. Лабораторный проект OWASP.
DockSec — это лабораторный проект OWASP, который сокращает разрыв между сложными результатами сканирования безопасности и практическими исправлениями для разработчиков. Он объединяет отраслевые стандартные сканеры (Trivy, Hadolint, Docker Scout) с ИИ для обеспечения контекстно-зависимого анализа безопасности.
Вместо того чтобы ошеломлять вас списком из 200+ CVE, DockSec:
Всё сканируется локально; единственное, что когда-либо покидает вашу машину, — это (с удалёнными секретами) содержимое файлов, отправляемое выбранному вами провайдеру ИИ. А при использовании локальной модели или режима только сканирования ничего не покидает машину вообще. См. Поток данных и конфиденциальность.
Рабочий процесс DockSec: от сканирования до практических выводов
DockSec следует конвейеру из пяти этапов:
DockSec оркестрирует локальные сканеры, поэтому ему требуется:
| Требование | Для чего нужно | Установка |
|---|---|---|
| Python 3.12+ | Сам DockSec | python.org |
| Trivy | Все сканирования (обязательно) | brew install trivy или документация Trivy |
| Hadolint | Линтинг Dockerfile | brew install hadolint или документация Hadolint |
| Docker | Сканирование образов (-i) | документация Docker |
Или позвольте DockSec установить Trivy и Hadolint за вас:```bash python -m docksec.setup_external_tools
### 2. Установка DockSec```bash
# Full install with AI analysis support (recommended)
pip install "docksec[ai]"
# Or the slim, scan-only core (no LLM dependencies, no API key needed)
pip install docksec
Для локального сканирования API-ключ не требуется:```bash docksec Dockerfile --scan-only
Каждое сканирование завершается сводкой результатов: таблица серьёзности, оценка безопасности от 0 до 100 с
рейтингом, блок действий «Quick take», сгенерированные отчёты (по умолчанию сохраняются в
`~/.docksec/results/`) и предлагаемая следующая команда.
### 4. Включение AI-анализа
AI-анализ объясняет обнаруженные проблемы и предлагает исправления. Выберите провайдера, задайте его API-ключ и выполните:```bash
# OpenAI (default provider)
export OPENAI_API_KEY="sk-..."
docksec Dockerfile
# Anthropic Claude
export ANTHROPIC_API_KEY="sk-ant-..."
docksec Dockerfile --ai-only --provider anthropic --model claude-sonnet-5
# Google Gemini
export GOOGLE_API_KEY="..."
docksec Dockerfile --ai-only --provider google
# Ollama (fully local, no API key, data never leaves your machine)
docksec Dockerfile --ai-only --provider ollama --model llama3.1
У каждого провайдера есть разумная модель по умолчанию (OpenAI: gpt-4o, Anthropic:
claude-haiku-4-5, Google: gemini-1.5-pro, Ollama: llama3.1), поэтому --model
необязателен. Чтобы не повторять флаги, задайте переменные окружения (или поместите их в файл .env
в каталоге, из которого вы запускаете — DockSec загружает его автоматически):```bash
export LLM_PROVIDER=anthropic
export LLM_MODEL=claude-sonnet-5
docksec Dockerfile
Перед отправкой любого содержимого AI-провайдеру значения, похожие на секреты (пароли, токены,
API-ключи, блоки приватных ключей), автоматически маскируются. См.
[Поток данных и конфиденциальность](#data-flow-and-privacy).