
AIを搭載したDockerセキュリティスキャナー。脆弱性を平易な言葉で説明します。OWASP Lab Projectです。
DockSec は、複雑なセキュリティスキャン結果と開発者が実行できる修正との間のギャップを埋める OWASP Lab Project です。業界標準のスキャナー(Trivy、Hadolint、Docker Scout)を AI と統合し、コンテキストを考慮したセキュリティ分析を提供します。
200 件以上の CVE のリストで圧倒する代わりに、DockSec は次のことを行います:
すべてのスキャンはローカルで実行されます。あなたのマシンから外部に出る唯一のものは、選択した AI プロバイダーに送信される(シークレットが伏せられた)ファイル内容だけです。ローカルモデルまたはスキャンのみのモードを使用すれば、何も外部に出ません。詳しくはデータフローとプライバシーを参照してください。
DockSec のワークフロー:スキャンから実行可能なインサイトまで
DockSec は 5 段階のパイプラインに従います:
DockSec はローカルスキャナーを統括するため、以下が必要です:
| 要件 | 必要な用途 | インストール |
|---|---|---|
| Python 3.12+ | DockSec 自体 | python.org |
| Trivy | すべてのスキャン(必須) | brew install trivy または Trivy docs |
| Hadolint | Dockerfile のリント | brew install hadolint または Hadolint docs |
| Docker | イメージスキャン(-i) | Docker docs |
または、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) を参照してください。
### 5. またはコンテナイメージを実行する(インストール不要)
公開されているイメージには、固定バージョンの Trivy と Hadolint がバンドルされているため、
インストールも設定も不要です:```bash
docker run --rm -v "$PWD:/github/workspace" \
-e INPUT_DOCKERFILE=Dockerfile \
-e INPUT_SCAN_ONLY=true \
ghcr.io/owasp/docksec:latest
amd64 と arm64 のマルチアーキテクチャで、すべてのリリースで公開されています。CI では latest ではなく、特定のバージョン(ghcr.io/owasp/docksec:2026.9.21)またはマイナーシリーズ(ghcr.io/owasp/docksec:2026.9)に固定してください。すべてのイメージにはビルド来歴の証明が付属しています:```bash
gh attestation verify oci://ghcr.io/owasp/docksec:latest --repo OWASP/DockSec
このイメージは GitHub Action と同じ `INPUT_*` 変数を読み取るため、任意の Action 入力がここで機能します: `INPUT_IMAGE`、`INPUT_COMPOSE`、`INPUT_SEVERITY`、`INPUT_FAIL_ON`、`INPUT_FORMAT`、`INPUT_SARIF`、`INPUT_OUTPUT_DIR`。コンテナ終了後もレポートを保持するには、マウント上のどこかにレポートを書き込んでください:```bash
docker run --rm -v "$PWD:/github/workspace" \
-e INPUT_COMPOSE=docker-compose.yml \
-e INPUT_SCAN_ONLY=true \
-e INPUT_FORMAT=json,html \
-e INPUT_OUTPUT_DIR=/github/workspace/docksec-reports \
ghcr.io/owasp/docksec:latest
---
## 一般的なコマンド```bash
# Scan Dockerfile + Docker image (AI + scanners)
docksec Dockerfile -i myapp:latest
# Scan a Docker Compose file and all its services
docksec --compose docker-compose.yml
# Scan only a Docker image
docksec --image-only -i myapp:latest
# Fast local scan, no AI, no API key
docksec Dockerfile --scan-only
# Choose which severity levels the image scan reports (default: CRITICAL,HIGH)
docksec -i myapp:latest --image-only --severity CRITICAL,HIGH,MEDIUM