Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
dockerscan — 最も包括的なDockerセキュリティスキャナー | Kitploit
ツール/GitHubGitHub/cr0hn/dockerscan
脆弱性スキャナーコンテナセキュリティ構成監査クラウドセキュリティDevSecOpsシークレット検出サプライチェーンセキュリティ
GitHubcr0hn/dockerscan

dockerscan

最も包括的なDockerセキュリティスキャナー

リポジトリを見る
1.7k24720時間2分前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
DockerScan Logo

DockerScan v2.0

最も包括的なDockerセキュリティスキャナー

License Go Version Version CI/CD Test Coverage Go Report Card Downloads

著者: Daniel Garcia (cr0hn) | GitHub | Webサイト


機能 • インストール • クイックスタート • ドキュメント • ユースケース • 新機能 • コントリビューション


📑 目次

  • 概要
  • 機能
  • v2.0の新機能
  • インストール
  • クイックスタート
  • 使用方法
    • プライベートレジストリ認証
  • セキュリティスキャナー
  • 出力形式
  • ユースケース
  • 比較
  • アーキテクチャ
  • コントリビューション
  • 参考文献
  • ライセンス
  • 著者

🎯 概要

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から引き継がれた機能

  • ✅ 攻撃ツール - イメージトロイ化機能(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パイプラインでバナーを非表示
  • 🧹 偽陽性の低減 - エントロピーフィルタリングによるシークレット検出の改善

なぜ書き直したのか?

  1. パフォーマンス - Goはgoroutineにより10倍高速なスキャンを実現
  2. 現代の脅威 - 2024〜2025年の攻撃パターンを組み込み
  3. エンタープライズ対応 - SARIF出力、終了コード、単一バイナリ配布
  4. 拡張性 - カスタムスキャナーのためのクリーンなプラグインアーキテクチャ
  5. 保守性 - 型安全性、エラーハンドリングの改善、コントリビューションのしやすさ

📦 インストール

オプション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/

root@kitploit:~
#### 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/

root@kitploit:~
#### 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"

root@kitploit:~
#### ダウンロードの検証(任意だが推奨)```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

Build

make build

Install

sudo make install

Or build manually

go build -o bin/dockerscan ./cmd/dockerscan

root@kitploit:~
### オプション 3: Go インストール```bash
go install github.com/cr0hn/dockerscan/v2/cmd/dockerscan@latest

🚀 クイックスタート

初回セットアップ

スキャン前に、CVEデータベース(毎日更新、圧縮時約30MB)をダウンロードしてください:```bash

Download latest CVE database from GitHub

dockerscan update-db

root@kitploit:~
> **ヒント**: データベースはGitHub Actionsにより毎日更新されています。最新のCVEデータを取得するには、定期的に`update-db`を実行してください。

### 基本スキャン```bash
# Scan a Docker image
dockerscan nginx:latest

# Scan with specific scanners
dockerscan --scanners cis,secrets ubuntu:22.04

# Scan and save reports
dockerscan alpine:latest --output /tmp/reports

# Quiet mode (suppress banner)
dockerscan -q nginx:latest

出力例```

╔══════════════════════════════════════════════════════════════════════════╗ ║ ██████╗ ██████╗ ██████╗██╗ ██╗███████╗██████╗ ███████╗ ██████╗ █████╗ ███╗ ██╗ ║ ██╔══██╗██╔═══██╗██╔════╝██║ ██╔╝██╔════╝██╔══██╗██╔════╝██╔════╝██╔══██╗████╗ ██║ ║ ██║ ██║██║ ██║██║ █████╔╝ █████╗ ██████╔╝███████╗██║ ███████║██╔██╗ ██║ ║ ██║ ██║██║ ██║██║ ██╔═██╗ ██╔══╝ ██╔══██╗╚════██║██║ ██╔══██║██║╚██╗██║ ║ ██████╔╝╚██████╔╝╚██████╗██║ ██╗███████╗██║ ██║███████║╚██████╗██║ ██║██║ ╚████║ ║ ║ ║ Advanced Docker Security Scanner v2.0.0 ║ ║ ║ ║ Author: Daniel Garcia (cr0hn) ║ ║ Website: https://cr0hn.com ║ ╚══════════════════════════════════════════════════════════════════════════════════════╝

🔍 Scanning image: nginx:latest

═══════════════════════════════════════════════════════════════════ SCAN RESULTS ═══════════════════════════════════════════════════════════════════

📊 Summary: Total Findings: 47 Duration: 2.3s

🔴 By Severity: Critical: 8 High: 15 Medium: 18 Low: 6

📁 By Category: CIS-Benchmark: 12 Secrets: 8 Supply-Chain: 5 Vulnerability: 10 Runtime-Security: 12

📄 JSON report saved to: dockerscan-report.json 📄 SARIF report saved to: dockerscan-report.sarif

root@kitploit:~
---

## 📖 使い方

### コマンドラインオプション```bash
dockerscan [COMMAND] [OPTIONS] <IMAGE>

Commands:
  scan        Scan a Docker image (default)
  update-db   Download or update the CVE database
              Options: --from-file <path>  Install from local SQLite file
  version     Show version information
  help        Show help message

Options:
  -h, --help              Show help message
  -v, --version           Show version
  -q, --quiet             Suppress banner output (quiet mode)
  --scanners SCANNERS     Comma-separated list of scanners to run
                          (default: all)
                          Options: cis,secrets,supplychain,vulnerabilities,runtime
  --output DIR            Output directory for reports (default: .)
  --only-critical         Show only critical/high severity findings
  --verbose, -v           Show scan progress (scanner names, findings count, image pull status). Output to stderr.
  --debug                 Show verbose output plus internal errors and technical details. Output to stderr.

Authentication (for private registries):
  --registry-user <username>       Registry username
  --registry-password <password>   Registry password (not recommended, use env vars)
  --registry <url>                 Registry URL (optional, auto-detected from image)
  --docker-config <path>           Path to Docker config file (default: ~/.docker/config.json)

  Environment variables (recommended for CI/CD):
    DOCKER_USERNAME or REGISTRY_USERNAME     Registry username
    DOCKER_PASSWORD or REGISTRY_PASSWORD     Registry password or token
    DOCKER_REGISTRY or REGISTRY             Registry URL (optional)

Exit Codes:
  0   No issues found
  1   HIGH severity issues found
  2   CRITICAL severity found

例```bash

Scan with all scanners (default)

dockerscan myapp:latest

Only run specific scanners

dockerscan --scanners secrets,supplychain redis:7

Save reports to specific directory

dockerscan --output /var/reports postgres:14

Only show critical issues

dockerscan --only-critical production-app:v1.0

Ver progreso del scan (scanner names, findings count, image pull status)

dockerscan --verbose ubuntu:22.04

Debug detallado (errores internos, detalles técnicos)

dockerscan --debug ubuntu:22.04

Scan private registry images (see Authentication section below)

dockerscan ghcr.io/myorg/private-app:v1.0

root@kitploit:~
### 🔐 プライベートレジストリ認証

DockerScanはプライベートレジストリへの認証に3つの方法をサポートしています:

#### 方法1: Docker構成ファイル(ローカル利用推奨)

最も便利な方法 - 既存のDocker認証情報を使用します:```bash
# First, authenticate with your registry using Docker
docker login ghcr.io
# Username: your-username
# Password: ghp_your-token-here

# Now DockerScan can use these credentials automatically
dockerscan ghcr.io/myorg/private-app:latest

DockerScan は自動的に ~/.docker/config.json から認証情報を読み取ります。これは docker login でログインしたすべてのレジストリで動作します。

資格情報ヘルパーは完全にサポートされています。 DockerScan は以下の方法で認証情報をネイティブに解決します:

  • credsStore — グローバルな資格情報ヘルパー(例:macOS の Docker Desktop では osxkeychain、Windows では wincred、Linux では pass)
  • credHelpers — レジストリごとの資格情報ヘルパー(credsStore よりも優先される)
  • 自動フォールバック — 指定されたヘルパーバイナリがインストールされていない場合、DockerScan は config.json 内のプレーンテキスト auths ブロックにフォールバックします

macOS の Docker Desktop では、追加設定なしでそのまま動作します:```json { "credsStore": "osxkeychain" }

root@kitploit:~
DockerScanは透過的に`docker-credential-osxkeychain`を呼び出してトークンを取得するため、資格情報を明示的に渡す必要はありません。

#### 方法2: 環境変数(CI/CDに推奨)

自動化環境やCI/CDパイプラインに最適です:```bash
# Set environment variables
export DOCKER_USERNAME=myusername
export DOCKER_PASSWORD=mytoken

# Scan private image
dockerscan ghcr.io/myorg/private-app:latest

# Or use alternative variable names
export REGISTRY_USERNAME=myusername
export REGISTRY_PASSWORD=mytoken
dockerscan myregistry.example.com/app:v1.0

CI/CD の例 (GitHub Actions):```yaml

  • name: Scan private image env: DOCKER_USERNAME: ${{ secrets.REGISTRY_USERNAME }} DOCKER_PASSWORD: ${{ secrets.REGISTRY_TOKEN }} run: dockerscan ghcr.io/${{ github.repository }}:${{ github.sha }}
root@kitploit:~
#### 方法3: コマンドラインフラグ (非推奨)

簡単なテスト専用です(プロセスリストに認証情報が表示されます):```bash
dockerscan --registry-user myuser --registry-password mytoken ghcr.io/myorg/app:v1

セキュリティ警告: この方法では、シェルの履歴やプロセス一覧に認証情報が露出します。代わりに環境変数またはDocker configを使用してください。

レジストリ固有の例

Docker Hub(プライベートリポジトリ)```bash

Using Docker config

docker login docker.io dockerscan myusername/private-repo:latest

Using environment variables

export DOCKER_USERNAME=myusername export DOCKER_PASSWORD=dckr_pat_XXXXXXXXXXXXX dockerscan myusername/private-repo:latest

root@kitploit:~
#### GitHub コンテナレジストリ (GHCR)```bash
# Using Docker config
echo $GITHUB_TOKEN | docker login ghcr.io -u USERNAME --password-stdin
dockerscan ghcr.io/myorg/myapp:v1.0

# Using environment variables
export DOCKER_USERNAME=myusername
export DOCKER_PASSWORD=ghp_XXXXXXXXXXXXXXXXXXXX
dockerscan ghcr.io/myorg/myapp:v1.0

AWS Elastic Container Registry(ECR)```bash

Get login credentials from AWS

aws ecr get-login-password --region us-east-1 |
docker login --username AWS --password-stdin
123456789012.dkr.ecr.us-east-1.amazonaws.com

Scan ECR image

dockerscan 123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp:latest

Or use environment variables with ECR credentials

export DOCKER_USERNAME=AWS export DOCKER_PASSWORD=$(aws ecr get-login-password --region us-east-1) dockerscan 123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp:latest

root@kitploit:~
#### Google Container Registry (GCR) / Artifact Registry```bash
# Authenticate with gcloud
gcloud auth configure-docker gcr.io

# Scan GCR image
dockerscan gcr.io/my-project/myapp:latest

# For Artifact Registry
gcloud auth configure-docker us-docker.pkg.dev
dockerscan us-docker.pkg.dev/my-project/my-repo/myapp:latest

# Or use service account JSON key
export DOCKER_USERNAME=_json_key
export DOCKER_PASSWORD="$(cat service-account-key.json)"
dockerscan gcr.io/my-project/myapp:latest

Azure コンテナー レジストリ (ACR)```bash

Login with Azure CLI

az acr login --name myregistry

Scan ACR image

dockerscan myregistry.azurecr.io/myapp:v1.0

Or use service principal credentials

export DOCKER_USERNAME= export DOCKER_PASSWORD= dockerscan myregistry.azurecr.io/myapp:v1.0

root@kitploit:~
#### GitLab コンテナレジストリ```bash
# Using Docker config
docker login registry.gitlab.com
dockerscan registry.gitlab.com/mygroup/myproject/myapp:latest

# Using environment variables with deploy token
export DOCKER_USERNAME=gitlab+deploy-token-1
export DOCKER_PASSWORD=DEPLOY_TOKEN_HERE
dockerscan registry.gitlab.com/mygroup/myproject/myapp:latest

自己ホスト型/プライベートレジストリ```bash

Standard authentication

docker login myregistry.example.com:5000 dockerscan myregistry.example.com:5000/myapp:latest

With environment variables

export DOCKER_USERNAME=admin export DOCKER_PASSWORD=secret dockerscan myregistry.example.com:5000/myapp:latest

Insecure registries (not recommended for production)

Add to Docker daemon config: /etc/docker/daemon.json

{

"insecure-registries": ["myregistry.example.com:5000"]

}

root@kitploit:~
### 認証のトラブルシューティング

#### よくある問題

**1. 「authentication required」エラー**```bash
# Make sure you're logged in
docker login <registry>

# Or set environment variables
export DOCKER_USERNAME=your-username
export DOCKER_PASSWORD=your-token

2. 「unauthorized: authentication failed」エラー

  • 認証情報が正しいことを確認してください
  • トークンが期限切れになっていないか確認してください(特にクラウドプロバイダーの場合)
  • アカウントにイメージのプル権限があることを確認してください

3. AWS ECR 「authorization token has expired」```bash

ECR tokens expire after 12 hours - refresh them

aws ecr get-login-password --region us-east-1 |
docker login --username AWS --password-stdin
123456789012.dkr.ecr.us-east-1.amazonaws.com

root@kitploit:~
**4. Docker Hubのレート制限**
- レート制限を上げるために認証を行う (無料アカウントは6時間あたり200プル)
- より高い制限のためにはDocker Hub Proアカウントの利用を検討

**5. 自己署名証明書による証明書エラー**
- CA証明書をシステムのトラストストアに追加
- またはレジストリを信頼するようにDockerを設定 (Dockerドキュメントを参照)

---

## 🔍 セキュリティスキャナ

### CIS Dockerベンチマーク

CIS Dockerベンチマーク v1.7.0に対する自動コンプライアンスチェック:```bash
dockerscan --scanners cis nginx:latest

チェック内容:

  • コンテナユーザーがrootではない
  • 不要なパッケージがインストールされていない
  • HEALTHCHECK 命令が存在する
  • 特定のバージョンタグ(:latestではない)
  • 最小限の公開ポート
  • 特権コンテナがない
  • Linuxケーパビリティが制限されている
  • Seccomp/AppArmor プロファイルが適用されている
  • 読み取り専用のルートファイルシステム
  • その他70以上のチェック...

Supply Chain Security

実際のサプライチェーン攻撃を検出:```bash dockerscan --scanners supplychain suspicious-image:1.0

root@kitploit:~
検出:
- イメージなしコンテナ(ドキュメントのみの攻撃)
- 暗号通貨マイナー(xmrig、claymoreなど)
- バックドア化されたライブラリ(xz-utilsのケース)
- 署名なし/未検証のイメージ
- ドキュメント内のフィッシング試行
- マイニングプール、C2サーバーへの接続

### シークレット検出

ハードコードされたシークレットを見つける:```bash
dockerscan --scanners secrets webapp:prod

検出:

  • クラウド認証情報(AWS、GCP、Azure)
  • APIキー(40以上のサービス)
  • 秘密鍵と証明書
  • データベース認証情報
  • Dockerレジストリ認証
  • 高エントロピー文字列(潜在的な未知のシークレット)

脆弱性スキャン

既知のCVEを検出:```bash dockerscan --scanners vulnerabilities node:16

root@kitploit:~
チェック対象:
- 重大なDocker CVE(2024-2025年)
- コンテナエスケープ脆弱性
- BuildKit RCE脆弱性
- サポート終了ベースイメージ
- 脆弱なパッケージ

### 実行時セキュリティ

実行時設定を監査する:```bash
dockerscan --scanners runtime running-container

分析:

  • Linux ケーパビリティ (CAP_SYS_ADMIN など)
  • Seccomp プロファイル
  • AppArmor/SELinux ポリシー
  • 名前空間の分離
  • 特権モードの使用

📁 出力形式

JSON 出力```json

{ "target": { "image_name": "nginx:latest" }, "start_time": "2024-11-22T10:30:00Z", "findings": [ { "id": "CIS-4.1", "title": "Container should not run as root", "severity": "HIGH", "category": "CIS-Benchmark", "description": "Running containers as root increases attack surface...", "remediation": "Use USER instruction in Dockerfile..." } ], "summary": { "total_findings": 47, "by_severity": { "CRITICAL": 8, "HIGH": 15 } } }

root@kitploit:~
### SARIF 出力

GitHub Security、Azure DevOps、VS Code と互換性があります:```json
{
  "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json",
  "version": "2.1.0",
  "runs": [
    {
      "tool": {
        "driver": {
          "name": "DockerScan",
          "version": "2.0.0"
        }
      },
      "results": [...]
    }
  ]
}

💼 ユースケース

1. CI/CD パイプライン統合

GitHub Actions:```yaml name: Docker Security Scan

on: [push]

jobs: security-scan: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3

root@kitploit:~
  - name: Build Docker image
    run: docker build -t myapp:${{ github.sha }} .

  - name: Install DockerScan
    run: |
      curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-linux-amd64 -o dockerscan
      chmod +x dockerscan

  - name: Update CVE Database
    run: ./dockerscan update-db

  - name: Run Security Scan
    run: ./dockerscan -q myapp:${{ github.sha }}

  - name: Upload SARIF results
    uses: github/codeql-action/upload-sarif@v2
    with:
      sarif_file: dockerscan-report.sarif
root@kitploit:~
**GitLab CI:**```yaml
docker-security-scan:
  stage: test
  script:
    - docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
    - wget https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-linux-amd64 -O dockerscan
    - chmod +x dockerscan
    - ./dockerscan update-db
    - ./dockerscan -q $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
  artifacts:
    reports:
      sast: dockerscan-report.sarif

2. セキュリティ監査```bash

Comprehensive audit of production images

for image in $(docker images --format "{{.Repository}}:{{.Tag}}"); do echo "Scanning $image..." dockerscan $image --output /audit-reports/ done

Generate summary report

cat /audit-reports/*.json | jq -s ' { total_images: length, total_findings: map(.summary.total_findings) | add, critical_findings: map(.summary.by_severity.CRITICAL // 0) | add } '

root@kitploit:~
### 3. **デプロイ前の検証**```bash
# Fail deployment if critical issues found
dockerscan production-app:v2.0
exit_code=$?

if [ $exit_code -eq 2 ]; then
  echo "❌ Critical vulnerabilities found. Deployment blocked."
  exit 1
elif [ $exit_code -eq 1 ]; then
  echo "⚠️  High severity issues found. Manual review required."
  # Send notification...
else
  echo "✅ No critical issues. Proceeding with deployment."
fi

4. コンプライアンス報告```bash

Generate CIS compliance report

dockerscan --scanners cis --only-critical all-production-images:* > cis-compliance-report.txt

Weekly security scan for compliance

0 0 * * 0 /usr/local/bin/dockerscan --scanners cis,vulnerabilities production-images:latest --output /compliance/weekly/

root@kitploit:~
### 5. **開発者ワークフロー**```bash
# Pre-commit hook
#!/bin/bash
# .git/hooks/pre-commit

docker build -t local-test:latest .
dockerscan --only-critical local-test:latest

if [ $? -ne 0 ]; then
  echo "❌ Docker security scan failed. Fix issues before committing."
  exit 1
fi

📊 他のツールとの比較

DockerScanを選ぶ理由

  • 最も包括的: CIS + サプライチェーン + シークレット + CVE + ランタイムを組み合わせた唯一のツール
  • 最新の研究: 2024-2025年の実際の攻撃に基づく
  • ゼロ設定: すぐに使える
  • 開発者フレンドリー: アクション可能な修復方法を示す美しいCLI出力
  • エンタープライズ対応: SARIF + 終了コード + JSON出力

🏗️ アーキテクチャ

プロジェクト構造```

dockerscan/ ├── logo.png # Project logo ├── cmd/ │ ├── dockerscan/ # Main CLI application │ │ └── main.go │ └── nvd2sqlite/ # CVE database builder tool │ └── main.go ├── data/ # CVE database (auto-updated daily) │ ├── latest.db.gz # Compressed SQLite database │ └── metadata.json # Database version info ├── internal/ │ ├── scanner/ # Extensible scanner framework │ │ ├── scanner.go # Scanner interface & registry │ │ ├── cis/ # CIS Benchmark implementation │ │ ├── secrets/ # Secrets detection │ │ ├── supplychain/ # Supply chain attacks │ │ ├── vulnerabilities/ # CVE scanning │ │ └── runtime/ # Runtime security │ ├── report/ # Report generators │ │ ├── json.go # JSON reporter │ │ └── sarif.go # SARIF reporter │ ├── models/ # Data models │ │ └── models.go # Findings, scan results, etc. │ └── config/ # Configuration │ └── config.go # App config & banner └── pkg/docker/ # Docker client wrapper └── client.go

root@kitploit:~
### CVEデータベース & nvd2sqliteツール

DockerScanはCVE検索にローカルのSQLiteデータベースを使用します。データベースはGitHub Actionsを介して**毎日自動更新**され、リポジトリ内にホストされているため、常に最新のCVEデータにアクセスできます。

#### データベースの特徴

- 🗄️ **構築済みデータベース** - すぐに使用可能、手動セットアップ不要
- 🔄 **毎日更新** - GitHub Actionが毎日00:00 UTCにデータベースを更新
- 📅 **2.5年間のCVEデータ** - 2022年半ばから現在までのCVEをカバー
- ⚡ **高速検索** - 最適化されたインデックスを持つSQLite
- 🌐 **GitHubでホスト** - `update-db`コマンドで自動ダウンロード

#### データベースの更新```bash
# Download latest database from GitHub (recommended)
dockerscan update-db

# Install from local file (for air-gapped/offline environments)
dockerscan update-db --from-file /path/to/cve-db.sqlite

注記: dockerscan を初めて実行すると、データベースのダウンロードを促されます。その後は update-db で定期的に更新できます。

データベースの手動構築(nvd2sqlite)

上級者向け: NVD から直接 CVE データベースを構築できます。```bash

Build the tool

make build # Builds both dockerscan and nvd2sqlite

Download CVEs (last 2.5 years by default)

./bin/nvd2sqlite --output data/cve-db.sqlite --verbose

With NVD API key (10x faster - 50 req/30sec vs 5 req/30sec)

NVD_API_KEY=your-key ./bin/nvd2sqlite --output data/cve-db.sqlite --verbose

Custom date range

./bin/nvd2sqlite --output data/cve-db.sqlite
--start-date 2023-01-01
--end-date 2024-12-31

root@kitploit:~
**nvd2sqlite の機能:**
- ⚡ **4つの並列ダウンロードワーカー**による高速ダウンロード
- 🔄 **レート制限(HTTP 429)に対する指数バックオフ付き自動リトライ**
- 📦 **一時ディレクトリにダウンロード**し、その後順次処理
- 🗄️ **SQLite出力**(高速検索のためのインデックス付きテーブル)

---

### 拡張性

新しいスキャナを追加するのは簡単です:```go
package myscan

import (
    "context"
    "github.com/cr0hn/dockerscan/v2/internal/models"
    "github.com/cr0hn/dockerscan/v2/internal/scanner"
)

type MyScanner struct {
    scanner.BaseScanner
}

func NewMyScanner() *MyScanner {
    return &MyScanner{
        BaseScanner: scanner.NewBaseScanner(
            "my-scanner",
            "Description of my scanner",
            true, // enabled
        ),
    }
}

func (s *MyScanner) Scan(ctx context.Context, target models.ScanTarget) ([]models.Finding, error) {
    var findings []models.Finding

    // Your scanning logic here...

    return findings, nil
}

// Register in main.go:
// registry.Register(myscan.NewMyScanner())

🤝 貢献

貢献は大歓迎です!DockerScan は拡張可能な設計になっています。

貢献方法

  1. リポジトリを Fork します
  2. フィーチャーブランチを作成します (git checkout -b feature/amazing-scanner)
  3. internal/scanner/ にスキャナーを追加します
  4. テストを記述します (カバレッジ90%以上を維持しています)
  5. 変更をコミットします (git commit -am 'Add amazing scanner')
  6. ブランチにプッシュします (git push origin feature/amazing-scanner)
  7. Pull Request を開きます

開発```bash

Clone and setup

git clone https://github.com/cr0hn/dockerscan cd dockerscan/dockerscan-v2

Install dependencies

make deps

Run tests

make test

Run with coverage

make coverage

Build

make build

Format code

make fmt

Lint

make lint

root@kitploit:~
### 新しいスキャナーの追加

特に以下の統合を歓迎します:
- 脆弱性データベース(NVD、GitHub Security Advisories)との統合
- Kubernetes セキュリティスキャン
- コンテナレジストリのセキュリティ
- Docker Compose セキュリティ分析
- IaC スキャン(Dockerfile)

---

## 📚 参考文献

### 規格とベンチマーク

- [CIS Docker Benchmark v1.7.0](https://www.cisecurity.org/benchmark/docker) - Center for Internet Security
- [NIST SP 800-190](https://csrc.nist.gov/publications/detail/sp/800-190/final) - Application Container Security Guide
- [OWASP Docker Security Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html)

### 研究とCVE

- [4M Malicious Imageless Containers](https://thehackernews.com/2024/04/millions-of-malicious-imageless.html) - The Hacker News, April 2024
- [Supply Chain Attacks Using Container Images](https://www.aquasec.com/blog/supply-chain-threats-using-container-images/) - Aqua Security
- [CVE-2024-21626: runc Container Escape](https://nvd.nist.gov/vuln/detail/CVE-2024-21626) - NIST NVD
- [CVE-2024-23651: BuildKit RCE](https://nvd.nist.gov/vuln/detail/CVE-2024-23651) - NIST NVD
- [xz-utils Backdoor (March 2024)](https://www.openwall.com/lists/oss-security/2024/03/29/4) - OpenWall

### ツールとプロジェクト

- [Trivy](https://github.com/aquasecurity/trivy) - 脆弱性スキャナー
- [Docker Bench Security](https://github.com/docker/docker-bench-security) - CISベンチマークスクリプト
- [Cosign](https://github.com/sigstore/cosign) - コンテナの署名と検証
- [SARIF仕様](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) - 静的解析結果フォーマット

---

## 📄 ライセンス

このプロジェクトは **DockerScan Proprietary Source-Available License** の下でライセンスされています。

### これが意味すること

✅ **あなたは(無料で)可能です:**
- DockerScan を**無料で**内部セキュリティスキャンに使用する
- **CI/CDパイプライン**やセキュリティワークフローで使用する
- **修正、フォーク、コミュニティへの貢献**
- **教育および研究**目的で使用する
- **プロフェッショナルサービス(コンサルティング、セキュリティ監査、ペネトレーションテスト)のツール**として使用する
- **補助的コンポーネント**として他の製品に統合する

❌ **(明示的な書面による許可または商用ライセンスなしでは)できません:**
- **Dockerスキャンを商用SaaSとして提供する**
- DockerScanの**ホスト型インスタンスを販売する**
- DockerScanを主な基盤とする**商用プラットフォームを構築する**
- DockerScanを主要提供物とする**有料マネージドサービスを創設する**

### なぜこのライセンスなのか?

このライセンスは、プロジェクトの持続可能性を以下の方法で保護します:
- ✅ 正当な目的でソフトウェアを使用する**自由**を与える
- ❌ 企業が貢献することなくサービスとして提供して利益を得る**有害なフリーライディング**を防止する
- 💰 競合する用途に対する商用ライセンスを通じてプロジェクトが**持続可能**であることを確保する
- 🔓 透明性とコミュニティ貢献のために**ソースコードを利用可能**に保つ

**これはオープンソースではありません** - 商用競争的使用に制限のある**ソースアベイラブル**です。

### 商用ライセンス

**必要な場合:**
- SaaSまたはホスト型提供
- DockerScanを主要機能として使用する商用プラットフォーム
- 商用製品としての再販または再配布
- DockerScanを中核提供物とするマネージドサービス

**商用ライセンスに関する連絡先:**

📧 Email: cr0hn [at] cr0hn.com
🌐 Website: https://cr0hn.com
💼 企業およびスタートアップ向けの柔軟なライセンス条件

完全な法的条件については [LICENSE](https://github.com/cr0hn/dockerscan/blob/HEAD/LICENSE) ファイルを参照してください。

---

## 👤 作者

<div align="center">

### **Daniel Garcia (cr0hn)**

[![Website](https://img.shields.io/badge/Website-cr0hn.com-blue?style=for-the-badge&logo=google-chrome)](https://cr0hn.com)
[![GitHub](https://img.shields.io/badge/GitHub-cr0hn-black?style=for-the-badge&logo=github)](https://github.com/cr0hn)
[![Twitter](https://img.shields.io/badge/Twitter-@ggdaniel-1DA1F2?style=for-the-badge&logo=twitter)](https://twitter.com/ggdaniel)

**セキュリティ研究者 | オープンソース開発者 | Dockerセキュリティエキスパート**

</div>

---

## 🙏 謝辞

特に感謝します:
- Dockerセキュリティコミュニティ
- Dockerベンチマークを提供するCIS
- SP 800-190を提供するNIST
- 2024年のサプライチェーン攻撃を発見したセキュリティ研究者
- DockerScanのすべての貢献者とユーザー

---

## 📞 サポート

- **Issues**: [GitHub Issues](https://github.com/cr0hn/dockerscan/issues)
- **Discussions**: [GitHub Discussions](https://github.com/cr0hn/dockerscan/discussions)
- **セキュリティ**: 脆弱性は [email protected] に報告してください

---

<div align="center">

**⭐ DockerScanが便利だと思ったら、リポジトリにスターを付けてください! ⭐**

*Dockerセキュリティを誰にでもアクセス可能に*

[⬆ トップに戻る](#-dockerscan-v20)

</div>
ツールをダウンロード
機能v1.x (Python)v2.0 (Go)
言語Python 3.5+Go 1.21+
パフォーマンス〜500イメージ/時間〜5000イメージ/時間
メモリ使用量200-500 MB50-100 MB
配布方法pip install + 依存関係単一バイナリ
セキュリティスキャナー2モジュール5モジュール
CIS Benchmark部分対応完全版v1.7.0(80+チェック)
サプライチェーン❌ 未対応✅ 2024年の研究に基づく
シークレットパターン10パターン40+パターン
CVE検出基本2024-2025年のCVE
ランタイムセキュリティ❌ 未対応✅ 完全なケイパビリティ監査
SARIF出力❌ 未対応✅ 完全サポート
CI/CD統合手動ネイティブ(終了コード、SARIF)
機能DockerScan v2.0TrivyClairSnykGrype
CIS Benchmark v1.7✅ フル(80以上のチェック)❌❌部分対応❌
サプライチェーン検出(2024)✅ 対応❌❌❌❌
シークレットスキャン✅ 40以上のパターン基本❌✅❌
CVEデータベース✅ 2024-2025のCVE✅✅✅✅
ランタイムセキュリティ✅ フル❌❌❌❌
SARIF出力✅✅❌✅✅
速度(Go)⚡ 非常に高速⚡ 非常に高速🐌 低速⚡ 高速⚡ 非常に高速
拡張性✅ プラグインシステム限定的限定的❌限定的
終了コード✅ CI/CD対応✅部分対応✅✅
コスト🆓 無料🆓 無料🆓 無料💰 有料プラン🆓 無料
オフラインモード✅✅❌❌✅
ライセンスプロプライエタリ(ソース公開)Apache-2.0Apache-2.0プロプライエタリApache-2.0