mcpField
D
Docker Compose Audit

Docker Compose Audit

リモート
github.com/UnbearableDevセキュリティ021 週間前に更新
リポジトリ

Docker Compose Audit について

Docker Compose Auditは、docker-compose.ymlを静的にセキュリティチェックするMCPサーバーです。Compose設定を確認する開発者やエージェント向けに、重大度、修正案、YAMLの修正例を返します。

主な機能

  1. 01Compose YAMLまたはHTTPS URLを監査
  2. 02権限とネットワークのリスクを確認
  3. 03シークレット・ボリューム・リソース制限を確認
  4. 04イメージと実行ライフサイクルを確認
  5. 05重大度フィルターとカテゴリ別チェック
  6. 06修正案とYAML例付きの検出結果

活用シーン

  1. 01デプロイ前のComposeファイル確認
  2. 02公開ポートや危険なマウントの特定
  3. 03ハードコードされた秘密情報や制限不足の検出

MCP 対応

MCPクライアントに、Compose YAMLまたは公開HTTPS URLを対象とする全体監査とカテゴリ別チェックのツールを公開します。検出結果には重大度、修正案、YAMLの修正例が含まれます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://unbearable-dev--docker-compose-audit.apify.actor/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

すべてのエンドポイント
Streamable HTTPhttps://unbearable-dev--docker-compose-audit.apify.actor/mcp認証が必要

ツール

詳細

Docker Compose セキュリティ監査

docker-compose.yml ファイルのセキュリティ設定ミスを監査する MCP サーバーです。Trivy クラスのチェック項目を備え、AI エージェント向けに設計されています。各検出結果には、重大度、詳細な修正手順、貼り付けて使える YAML の修正スニペットが付属します。

Unbearable Labs が開発しました。イベントごとの従量課金制で、監査の実行時にのみ料金が発生します。


利用可能な場所

  • Apify Actor Store — メイン、従量課金制(PPE)
  • MCPize — 申請中
  • MCP.so — 申請中
  • PulseMCP — 申請中
  • Smithery — 申請中
  • Glama — 申請中

ニュースレター: Unbearable TechTips Weekly · すべての Actor: github.com/UnbearableDev

概要

MCP 対応クライアント(Claude Desktop、Cursor、n8n、Make、Zapier、カスタムエージェント)からこのサーバーに接続し、docker-compose.yml の内容を渡すと、次の情報を含む構造化レポートが返されます。

  • 重大度 — 高/中/低/情報
  • サービス — 検出結果が影響する Compose サービス
  • 説明 — 問題の内容とその重要性
  • 修正方法 — 対処方法
  • 修正スニペット — ファイルに直接貼り付けられる YAML

ツール

ツール用途
audit_compose(compose_yaml? | compose_url?, min_severity='low')すべてのチェックを実行し、完全なレポートを返します
check_privilege(...)コンテナーの権限とケイパビリティの問題のみをチェックします
check_network(...)ネットワークの公開に関する問題のみをチェックします
check_filesystem(...)ボリュームマウントとファイルシステムの問題のみをチェックします
check_secrets(...)シークレットの取り扱いに関する問題のみをチェックします
check_resources(...)リソース制限の問題のみをチェックします
check_image_hygiene(...)イメージタグ/レジストリ/固定に関する問題のみをチェックします
check_runtime_lifecycle(...)ヘルスチェック/再起動/初期化に関する問題のみをチェックします
check_logging(...)ログドライバー/ローテーションに関する問題のみをチェックします
check_compose_hygiene(...)非推奨フィールド/Compose 仕様への準拠のみをチェックします
list_checks(category?)チェック項目の全カタログを参照します

すべての監査実行ツールで、同じ入力を使用します。

  • compose_yaml(文字列)— YAML の内容を直接貼り付けます。または
  • compose_url(文字列)— 取得可能な公開 HTTPS URL(例:GitHub の raw URL)

いずれか一方を指定してください。min_severity のデフォルトは low(info の検出結果を除外)です。さらに絞り込むには、medium または high を指定します。

応答例(一部省略)

{
  "summary": {
    "total_findings": 14,
    "by_severity": {"high": 3, "medium": 6, "low": 5, "info": 0},
    "by_category": {"privilege": 4, "network": 3, "secrets": 2, "...": 5}
  },
  "findings": [
    {
      "id": "DCS-002",
      "category": "privilege",
      "severity": "high",
      "service": "web",
      "title": "Privileged mode enabled",
      "description": "Service 'web' has `privileged: true`...",
      "remediation": "Remove `privileged: true`. If you need specific capabilities...",
      "fix_yaml_snippet": "    # remove `privileged: true`; if needed, use cap_add or devices selectively",
      "references": ["CIS-Docker-5.4", "NIST-800-190"]
    },
    ...
  ]
}

料金

イベントUSD
任意の監査/check_* ツールの呼び出し$0.02
list_checks による検出呼び出し$0.005

ツールを呼び出した場合にのみ料金が発生します。サブスクリプションや月額最低料金はありません。

チェックカタログ(v1 では 25 項目が利用可能、54 項目に向けて拡充中)

カテゴリ利用可能なチェック項目
権限root ユーザー(DCS-001)、特権モード(DCS-002)、危険なケイパビリティ(DCS-003)、cap_add: ALL(DCS-004)、cap_drop: ALL の指定なし(DCS-005)、no-new-privileges の指定なし(DCS-006)
ネットワークnetwork_mode: host(DCS-010)、0.0.0.0 にバインドされたポート(DCS-011)、SSH ポートの公開(DCS-013)、DB ポートの公開(DCS-014)
ファイルシステム/var/run/docker.sock のマウント(DCS-018)、ホストルートのマウント(DCS-019)、ホスト上の機密パス(DCS-020)
シークレットenv 内のハードコードされたシークレット(DCS-026)、Docker secrets を使わないシークレットパターンの env(DCS-027)
リソースメモリー制限なし(DCS-032)、CPU 制限なし(DCS-033)、PID 制限なし(DCS-034)
イメージの衛生状態固定されていないイメージ/:latest イメージ(DCS-037)
ランタイムのライフサイクルヘルスチェックなし(DCS-043)、再起動ポリシーなし(DCS-044)
ロギングログドライバーなし(DCS-048)、ログローテーションなし(DCS-049)
Compose の衛生状態非推奨の version: フィールド(DCS-051)、ヘルスチェック条件のない depends_on(DCS-052)

list_checks を使うと、ID、重大度、タイトルを含む、最新の正式なカタログを取得できます。

Claude Desktop からの接続

MCP の設定に追加します。

{
  "mcpServers": {
    "compose-audit": {
      "transport": "streamable-http",
      "url": "https://YOUR-ACTOR-URL.apify.actor/mcp"
    }
  }
}

(Actor の起動後に Apify Store のページに表示される Standby URL で YOUR-ACTOR-URL を置き換えてください。)

制限事項

  • **YAML サイズ:**監査呼び出しあたり最大 1 MB
  • **URL の取得:**タイムアウト 5 秒、リダイレクトは最大 3 回、HTTPS のみ
  • **セッションタイムアウト:**5 分間操作がない場合

(現時点で)対象外の項目

compose ファイルのみを対象とした静的解析です。このバージョンでは以下は対象外です。

  • イメージの脆弱性スキャン(その場合は Trivy / Grype を使用してください)
  • 実行中のコンテナの検査
  • Kubernetes / Helm マニフェスト(対象領域が異なります)
  • Dockerfile 固有のリント(Hadolint を使用してください)

v1.x → v2 のロードマップには、ビルドコンテキストのセキュリティ、追加の機能チェック、ビルド引数内のシークレットパターン検出、レジストリの信頼性検証など、今後 29 件のチェックが含まれています。

ソース / お問い合わせ

問題、アイデア、誤検知の報告は、GitHub リポジトリで issue を作成するか、[email protected] までメールでお知らせください。

週刊ニュースレターを購読する (https://unbearabletechtips.beehiiv.com)。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。