📑 目次
🎯 概要
DockerScan v2.0 は、Dockerコンテナとイメージ向けの次世代セキュリティスキャナーで、Goで完全に書き直されました。これは、最新の2024〜2025年の研究、業界標準(CIS Benchmark、NIST SP 800-190)、および本番環境で発見された実際の攻撃パターンに基づいた、複数のセキュリティスキャン技術を組み合わせています。
DockerScan v2.0を選ぶ理由
- ✅ 最も包括的:1つのツールで5つ以上のセキュリティスキャン技術を統合
- ✅ 最新の研究:2024〜2025年のサプライチェーン攻撃とCVEに基づく
- ✅ 本番環境対応:CI/CDのためのSARIF出力、自動化のための終了コード
- ✅ 高速:Goで記述され、同時スキャンを実行
- ✅ 拡張可能:カスタムスキャナーのためのプラグインアーキテクチャ
- ✅ 無料でオープンソース:BSD-3ライセンス
🌟 機能
🛡️ セキュリティスキャンモジュール
1. CIS Docker Benchmark v1.7.0
80以上の自動チェックによる完全なコンプライアンスチェック:
- ✅ ホスト構成セキュリティ(13チェック)
- ✅ Dockerデーモンの堅牢化(18チェック)
- ✅ ファイルとディレクトリのパーミッション(9チェック)
- ✅ コンテナイメージのベストプラクティス(13チェック)
- ✅ ランタイムセキュリティ検証(31+チェック)
- ✅ セキュリティ運用コンプライアンス
2. サプライチェーン攻撃検出 🆕
実際の2024年の攻撃キャンペーンに基づく:
- ✅ イメージレスコンテナ検出 - 実際のレイヤーを持たない悪意のあるコンテナを識別(Docker Hubで400万以上発見)
- ✅ 暗号通貨マイナー検出 - マイニングマルウェアを検出(画像プルで12万以上の悪意が検出)
- ✅ バックドアライブラリ検出 - 侵害された依存関係(xz-utils、liblzmaインシデント)をキャッチ
- ✅ イメージ署名検証 - Notary/Cosignを使用した署名の検証
- ✅ フィッシングコンテンツ検出 - ソーシャルエンジニアリングのためのドキュメントをスキャン
- ✅ 悪意のあるネットワーク宛先 - C2サーバー、マイニングプール、Torノードを識別
3. 高度なシークレット検出 🔑
最新のAPIを含む40以上のシークレットパターン(2024年更新):
- ✅ クラウドプロバイダー:AWS、GCP、Azureの認証情報
- ✅ バージョン管理:GitHub、GitLab、Bitbucketのトークン
- ✅ AI/ML API:OpenAI、Anthropic、Hugging Faceのキー
- ✅ 決済:Stripe、PayPal、Squareのキー
- ✅ コミュニケーション:Slack、SendGrid、Twilio、Mailchimp
- ✅ 認証:JWTトークン、OAuthトークン
- ✅ 暗号:秘密鍵(RSA、SSH、PGP、EC、DSA)、証明書
- ✅ データベース:PostgreSQL、MySQL、MongoDBの接続文字列
- ✅ Docker:レジストリ認証トークン
- ✅ エントロピー分析:未知のシークレットに対するシャノンエントロピー計算(閾値4.5超)
4. CVEと脆弱性スキャン 🚨
重要な2024〜2025年のCVE検出:
- ✅ CVE-2024-21626 - runcコンテナエスケープ(CVSS 8.6)
- ✅ CVE-2024-23651 - BuildKitキャッシュポイズニングRCE(CVSS 9.1)
- ✅ CVE-2024-23652 - BuildKit競合状態(CVSS 7.5)
- ✅ CVE-2024-23653 - BuildKit権限昇格
- ✅ CVE-2024-8695/8696 - Docker Desktop RCE(CVSS 8.8)
- ✅ CVE-2025-9074 - Docker Desktopローカルアクセス脆弱性
- ✅ サポート終了(EOL)ベースイメージの検出
- ✅ 既知の脆弱性パッケージのスキャン
5. ランタイムセキュリティ分析 ⚙️
コンテナランタイムの堅牢化チェック:
- ✅ Linuxケイパビリティ監査 - 危険なケイパビリティ(CAP_SYS_ADMIN、CAP_NET_ADMINなど)を検出
- ✅ Seccompプロファイル検証 - システムコールフィルタリングが有効であることを確認
- ✅ AppArmor/SELinuxチェック - 強制アクセス制御の検証
- ✅ 特権コンテナ検出 - ホストへのフルアクセスを持つコンテナを特定
- ✅ 名前空間分離 - PID、IPC、ネットワーク、ユーザー名前空間のチェック
- ✅ コンテナエスケープ兆候 - 一般的なエスケープ手法を検出
📊 レポートと統合
- JSON - 自動化のための機械可読出力
- SARIF - ネイティブ統合:
- GitHub Securityタブ
- Azure DevOps
- VS Code拡張機能
- GitLabセキュリティダッシュボード
- 美しいCLI - 絵文字付きの色分けされた重大度レベル
- 終了コード - CI/CDフレンドリー(0=クリーン、1=警告、2=クリティカル)
🚀 パフォーマンス
- ⚡ Python製の代替品より10倍高速
- 🔄 Goのgoroutineによる同時スキャン
- 💾 低メモリ消費(〜50-100MB)
- 📦 単一バイナリ - 依存関係不要
🆕 v2.0の新機能?
DockerScan v2.0は、完全な書き直しです。v1.xからの変更点は以下の通りです:
主な変更点
| 機能 | v1.x (Python) | v2.0 (Go) |
|---|
| 言語 | Python 3.5+ | Go 1.21+ |
| パフォーマンス | 〜500イメージ/時間 | 〜5000イメージ/時間 |
| メモリ使用量 | 200-500 MB | 50-100 MB |
| 配布方法 | pip install + 依存関係 | 単一バイナリ |
| セキュリティスキャナー | 2モジュール | 5モジュール |
| CIS Benchmark | 部分対応 | 完全版v1.7.0(80+チェック) |
| サプライチェーン | ❌ 未対応 | ✅ 2024年の研究に基づく |
| シークレットパターン | 10パターン | 40+パターン |
| CVE検出 | 基本 | 2024-2025年のCVE |
| ランタイムセキュリティ | ❌ 未対応 | ✅ 完全なケイパビリティ監査 |
| SARIF出力 | ❌ 未対応 | ✅ 完全サポート |
| CI/CD統合 | 手動 | ネイティブ(終了コード、SARIF) |
v1.xから引き継がれた機能
- ✅ 攻撃ツール - イメージトロイ化機能(v2.1で近日公開予定)
- ✅ レジストリ操作 - プッシュ、プル、削除操作(v2.1で近日公開予定)
- ✅ ネットワークスキャン - Dockerレジストリ検出(v2.1で近日公開予定)
v2.0.5の新機能 🔐
- 🔑 プライベートレジストリ認証 - プライベートレジストリからのイメージスキャンを完全サポート(#24を修正)
- 🌐 マルチレジストリサポート - Docker Hub、GHCR、ECR、GCR、ACR、GitLab、セルフホストレジストリ
- 🔐 複数の認証方法 - 環境変数(CI/CD)、CLIフラグ(テスト)、Docker設定ファイル(シームレス)
- 🎯 スマートな認証優先順位 - CLIフラグ > ENV変数 > Docker設定(自動選択)
- 📝 エラーメッセージの強化 - レジストリ固有のヒント(ECRトークン期限切れ、レート制限、証明書)
- 🧪 包括的なテスト - 64テストケース、カバレッジ91.2%、実際のプライベートレジストリでテスト済み
- 📚 完全なドキュメント - 主要なクラウドレジストリと認証方法の例
v2.0.4の新機能
- 🗄️ CVEデータベース統合 - NVDデータを使用したローカルSQLiteデータベース(2.5年分のCVE)
- 🔄 毎日の自動更新 - GitHub Actionによる日次CVEデータベースの更新
- ⚡ 並列CVEダウンロード - データベースビルドを高速化する4つのワーカー(nvd2sqlite)
- 🔁 バックオフ付きリトライ - レート制限されたNVD APIリクエストの自動リトライ
- 📦
--from-fileフラグ - ローカルファイルからのCVEデータベースインストール(オフライン/エアギャップ環境向け)
- 🔇 サイレントモード(
-q) - CI/CDパイプラインでバナーを非表示
- 🧹 偽陽性の低減 - エントロピーフィルタリングによるシークレット検出の改善
なぜ書き直したのか?
- パフォーマンス - Goはgoroutineにより10倍高速なスキャンを実現
- 現代の脅威 - 2024〜2025年の攻撃パターンを組み込み
- エンタープライズ対応 - SARIF出力、終了コード、単一バイナリ配布
- 拡張性 - カスタムスキャナーのためのクリーンなプラグインアーキテクチャ
- 保守性 - 型安全性、エラーハンドリングの改善、コントリビューションのしやすさ
📦 インストール
オプション1:ビルド済みバイナリをダウンロード(推奨)
プリコンパイル済みバイナリは、バージョンタグごとにGitHub Actionsで自動的にビルドおよびリリースされます。
サポート対象プラットフォーム:
- Linux:amd64、arm64、386
- macOS:amd64(Intel)、arm64(Apple Silicon)
- Windows:amd64、arm64、386
- FreeBSD:amd64
Linux(amd64)```bash
curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-linux-amd64 -o dockerscan
chmod +x dockerscan
sudo mv dockerscan /usr/local/bin/
#### Linux (arm64)```bash
curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-linux-arm64 -o dockerscan
chmod +x dockerscan
sudo mv dockerscan /usr/local/bin/
macOS (Intel)```bash
curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-darwin-amd64 -o dockerscan
chmod +x dockerscan
sudo mv dockerscan /usr/local/bin/
#### macOS (Apple Silicon)```bash
curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-darwin-arm64 -o dockerscan
chmod +x dockerscan
sudo mv dockerscan /usr/local/bin/
Windows (PowerShell)```powershell
Invoke-WebRequest -Uri "https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-windows-amd64.exe" -OutFile "dockerscan.exe"
#### ダウンロードの検証(任意だが推奨)```bash
# Download checksums
curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/checksums.txt -o checksums.txt
# Verify (Linux/macOS)
sha256sum -c checksums.txt --ignore-missing
オプション2: ソースからビルド```bash
Clone repository
git clone https://github.com/cr0hn/dockerscan
cd dockerscan/dockerscan-v2