Dockerfile Security Audit について
コンテナ開発者やセキュリティ担当者向けに、Dockerfile の構造を解析してセキュリティ上の問題を調べる MCP サーバーです。最終ビルドステージを対象に、問題箇所や理由、修正案を返します。
主な機能
- 01マルチステージと行継続の解析
- 02最終ステージの USER を確認
- 03イメージに埋め込まれる可能性のある秘密情報を検出
- 04curl や wget からシェルへのパイプを検出
- 05タグ未固定のベースイメージを確認
- 06リモート URL を使う ADD を検出
活用シーン
- 01イメージ公開前の Dockerfile 監査
- 02コンテナが root で動くリスクの確認
- 03Dockerfile 内の秘密情報漏えいの発見
MCP 対応
`audit_dockerfile` ツールを MCP クライアントに提供し、リスクレベル、問題箇所、説明、具体的な修正案を返します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://dockerfile-audit-mcp.mcpize.run/mcpclaude mcp add --transport http tylerscomic-lab-dockerfile-audit https://dockerfile-audit-mcp.mcpize.run/mcp{"mcpServers":{"tylerscomic-lab-dockerfile-audit":{"type":"http","url":"https://dockerfile-audit-mcp.mcpize.run/mcp"}}}Cursor で開く{"servers":{"tylerscomic-lab-dockerfile-audit":{"type":"http","url":"https://dockerfile-audit-mcp.mcpize.run/mcp"}}}VS Code で開く{"mcpServers":{"tylerscomic-lab-dockerfile-audit":{"type":"http","url":"https://dockerfile-audit-mcp.mcpize.run/mcp"}}}{"mcpServers":{"tylerscomic-lab-dockerfile-audit":{"serverUrl":"https://dockerfile-audit-mcp.mcpize.run/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
dockerfile-audit-mcp
実際のコンテナーセキュリティにおけるアンチパターンを Dockerfile から検出する MCP サーバーです。正規表現でテキスト全体を検索するのではなく、独自のパーサーを使って Dockerfile の実際の構造(命令、バックスラッシュによる行継続、マルチステージビルド)を解析します。
検出できる問題
USER の指定漏れ。 最終的に使われる最終ステージに USER 命令がない場合(または USER root が明示的に指定されている場合)、実行中のコンテナー内のすべてのプロセスは、デフォルトで root 権限を持ちます。マルチステージビルドでは、前段のビルド専用ステージで root として行った作業が最終イメージに含まれないようにするため、最終ステージだけを正しく確認します。これは実際のリンターの慣例(hadolint の DL3002)に沿ったものです。
イメージに埋め込まれたシークレット。 シークレットらしい名前(API_KEY、PASSWORD、*_TOKEN、STRIPE_*_KEY など)に割り当てられた ENV/ARG の値は、イメージのレイヤー履歴に恒久的に残ります。後続レイヤーで変数の設定を解除しても、イメージを取得した人なら誰でも docker history --no-trunc で確認できます。<your-key> や changeme のようなプレースホルダーらしい値と、デフォルト値のない ARG 宣言は、正しく検出対象から除外されます。
curl | sh/wget | bash。 ビルド時に整合性を確認せず、リモートスクリプトを直接シェルにパイプします。ホストが侵害されたりスクリプトが変更されたりすると、その後のビルドでは、提供されるようになった内容が気づかれないまま取り込まれます。
ベースイメージのバージョン未固定。 :latest を指定した場合、またはタグをまったく指定しない場合、イメージのビルドに使うベースイメージがビルドごとに変わる可能性がありますが、その理由は Dockerfile からは分かりません。
リモート URL を指定した ADD。 別の命令を使った、curl | sh と同じ未検証の取得です。
ツール
audit_dockerfile
完全な監査を行います。リスクレベルと、各検出事項の正確な位置、問題となる理由、具体的な修正方法を返します。
利用方法
ホステッド(推奨): MCPize — 無料プラン、Pro は月額 $7 です。
セルフホスト:
npm install
node server.js
小規模なツール群の一部
github-actions-audit-mcp、 regex-safety-audit-mcp、 secrets-leak-audit-mcp、 mcp-trust-audit-mcp。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。