Docker サンドボックススキャン
隔離されたDocker環境でセキュリティスキャンを実行して、最大限の安全性を確保します。
サンドボックスを使用する理由
ホストシステムを潜在的に悪意のあるコードから保護します:
- ✅ 隔離実行 - コンテナ化された環境で実行
- ✅ リソース制限 - CPU、メモリ、時間の制約
- ✅ ネットワーク隔離 - 外部ネットワークアクセスなし
- ✅ 読み取り専用ファイルシステム - ホストファイルを変更できない
- ✅ 強化されたスキャン - 外部ツール使用(Trivy、Checkov、GitLeaks)
セットアップ
Docker Hubから取得(推奨)
docker pull ongjin/security-scanner-mcp:latest
docker tag ongjin/security-scanner-mcp:latest security-scanner-mcp:latest
またはソースからビルド
npm run docker:build
注: ビルドには5~10分かかり、約500MBのイメージを作成します。以下を含みます:
- Trivy v0.50.4
- GitLeaks v8.18.4
- Checkov(Pythonベース)
使用方法
基本的なサンドボックススキャン
Me: このコードをサンドボックスでスキャンしてください
const apiKey = "AIzaSyC1234567890abcdef";
const query = `SELECT * FROM users WHERE id = ${userId}`;
Claudeはscan-in-sandboxを呼び出して:
- コードを一時ファイルに書き込み
- Dockerコンテナを起動
- コンテナ内ですべてのスキャナーを実行
- 結果をJSONとして返す
- コンテナをクリーンアップ
信頼できないコードをスキャン
Me: このコードは疑わしく見えます。安全にスキャンしてください
[潜在的に悪意のあるコードを貼り付け]
セキュリティ設定
デフォルト設定
メモリ制限: 512MB
CPU制限: 0.5コア
タイムアウト: 30秒
ネットワーク: 無効
ファイルシステム: 読み取り専用(/tmpを除く)
機能: 削除(no-new-privileges)
カスタマイズ可能なオプション
環境変数を通じてこれらを調整できます:
SANDBOX_MEMORY=1g \
SANDBOX_CPU=1.0 \
SANDBOX_TIMEOUT=60000 \
scan-in-sandbox