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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
leaky-vessels-dynamic-detector — eBPFベースのランタイム検出器で、runcおよびDockerにおけるコンテナエスケープの脆弱性を検出します。ビルド時およびランタイム中に、システムコールとDockerデーモン呼び出しを監視して、CVE-2024-21626、CVE-2024-23651、CVE-2024-23652、CVE-2024-23653の悪用を検出します。 | Kitploit
ツール/GitHubGitHub/snyk/leaky-vessels-dynamic-detector
防御ツールコンテナセキュリティ動的分析 (サンドボックス)脆弱性分析クラウドセキュリティ侵入検知Archived
GitHubsnyk/leaky-vessels-dynamic-detector

leaky-vessels-dynamic-detector

人気

すべて見る →

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

すべてのツールを探索

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

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

eBPFベースのランタイム検出器で、runcおよびDockerにおけるコンテナエスケープの脆弱性を検出します。ビルド時およびランタイム中に、システムコールとDockerデーモン呼び出しを監視して、CVE-2024-21626、CVE-2024-23651、CVE-2024-23652、CVE-2024-23653の悪用を検出します。

リポジトリを見る
10581年前Kitploit レビュー済み

警告

このリポジトリはアーカイブされました。

コードへの更新は今後行われず、この通知を読む頃にはセキュリティ上の問題が発生していたり、動作しなくなっている可能性があります。 歴史的な目的のみでご利用いただき、取り扱いには十分注意してください。

Leaky Vessels Dynamic Detector

snyk-oss-category

このリポジトリには、runc および Docker の脆弱性 CVE-2024-21626、CVE-2024-23651、CVE-2024-23652、CVE-2024-23653 を対象とした eBPF ベースのランタイム検出のリファレンス実装が含まれています。これは Linux のシステムコール(例: chdir、mount)や Docker デーモンの関数呼び出しをフックし、それらを Docker ビルドやコンテナプロセスと関連付けて、これらの脆弱性の悪用を特定します。 静的解析ベースのアプローチについては、こちら を参照してください。

runc process.cwd および Leaked fds によるコンテナ脱出 [CVE-2024-21626]

CVE-2024-21626 は runc コンテナランタイムの脆弱性であり、攻撃者がコンテナの隔離を突破し、WORKDIR 命令の処理における問題を悪用した細工済みイメージを介して完全な root RCE を達成できるものです。ホストへのファイルディスクリプタが開閉されるタイミングには「競合」状態が存在するため、攻撃者は WORKDIR /proc/self/fd/[ID](ID はシステム依存のファイルディスクリプタ)という命令を含む Dockerfile を作成でき、これが基盤となるホストマシンのファイルシステムを指すことになります。これは以下の実行時に悪用される可能性があります:

  1. docker build - 以下の2つのケース:
    • ビルド対象の Dockerfile に悪用をトリガーする命令が含まれている場合。
    • ビルド対象の Dockerfile が FROM 命令で参照するベースイメージに、悪用をトリガーする ONBUILD コマンド(例: ONBUILD WORKDIR /proc/self/fd/[ID])が含まれている場合。ONBUILD 命令は、その命令を含むイメージ自体ではなく、それをベースイメージとして使用するイメージにコマンドを注入します。つまり、ベースイメージが侵害されていたり、意図的に悪意のあるもの(Dockerhub やその他の公開コンテナレジストリにホストされているものなど)である場合、docker build コマンドが実際にビルドするイメージに何も変更がなくても悪用が可能です。
  2. docker run

したがって、この脆弱性はビルドシステムと本番環境の両方を危険にさらす可能性があります。

Buildkit Mount Cache Race: ビルド時競合状態によるコンテナ脱出 [CVE-2024-23651]

CVE-2024-23651 は Docker の脆弱性であり、RUN コマンドが --mount=cache フラグを使用している場合に発生します。Docker デーモンのホスト上に source ディレクトリが存在するかのチェックと、実際の mount システムコールの呼び出しとの間には、time-of-check/time-of-use(TOCTOU)の脆弱性が存在します。攻撃者は、これら2つの呼び出しの間にシンボリックリンクを仕掛ける Dockerfile を作成でき、任意のバインドマウントを誘発してホスト上で完全な root RCE を達成できます。 この脆弱性は docker build コマンドのみに影響します。

Buildkit GRPC SecurityMode 権限チェック [CVE-2024-23653]

CVE-2024-23653 は Docker の脆弱性であり、カスタムの Buildkit LLB ジェネレータが # syntax ディレクティブとともに使用される場合に発生します。このジェネレータは Client.NewContainer および Container.Start GRPC 呼び出しを使用して、ビルド中に新しいコンテナを実行できます。StartRequest.SecurityMode 引数は、docker デーモンまたは docker build 呼び出しの権限期待値に対して適切にチェックされないため、GRPC 呼び出し元がビルド中に特権コンテナを作成できます。この新しい特権コンテナはその後脱出され、ビルドホスト上で完全な root RCE を獲得できます。 この脆弱性は docker build コマンドのみに影響します。

Buildkit ビルド時コンテナ破棄による任意削除 [CVE-2024-23652]

CVE-2024-23652 は Docker の任意削除の脆弱性です。Dockerfile で RUN --mount が使用される場合、マウントのターゲットが存在しないと、その環境用に作成されます。実行が完了すると、この作成されたディレクトリはクリーンアップされます。実行中のコマンドがマウントに使用されるパスをシンボリックリンクに変更した場合、クリーンアップ手順はこのシンボリックリンクをたどり、ホストのルートファイルシステム内の任意のディレクトリをクリーンアップする可能性があります。 この脆弱性は docker build コマンドのみに影響します。

インストールと使用方法

ビルド時 eBPF 検出

ビルド時検出は4つの脆弱性すべてに適用されます。

  1. 検出器バイナリをコンパイルします: GOOS=linux GOARCH={{amd64/arm64}} go build。
  2. コンパイルしたバイナリを、ビルド環境で sudo を使用してバックグラウンドで実行します(eBPF に必要)(例: sudo ebpf-detector &)。
  3. いずれかの脆弱性の悪用が検出された場合、Leaky vessels vulnerability detected が STDOUT に出力され、対応する CVE、脆弱性名、追加のフォレンジック情報も表示されます。

Kubernetes ランタイム eBPF 検出

ランタイム検出は WORKDIR の脆弱性(CVE-2024-21626)のみに適用されます。

  1. 提供されている Dockerfile を使用して検出器のコンテナイメージをビルドし、イメージレジストリにプッシュします。
  2. detector.yaml の image 値(TODO とマークされている箇所)を入力します。
  3. kubectl apply -f detector.yml を実行して、Kubernetes クラスタで検出器を DaemonSet として実行します。
  4. WORKDIR 脆弱性の悪用が検出された場合、DaemonSet ポッドのログに Leaky Vessels vulnerability detected が出力されます。

テスト

ユニットテストは eBPF に依存するため、sudo で実行する必要があります: sudo go test ebpf-detector/...。

制限事項

  • root アクセス / 特権モードでのコンテナ実行が必要です(eBPF に必要)。
  • ランタイムの WORKDIR 悪用(CVE-2024-21626)はコンテナ初期化中に発生するため、実行中のコンテナでは検出されません。また、この検出はコンテナランタイムが containerd であることを前提としています。
  • Buildkit Mount Cache Race(CVE-2024-23651)および Buildkit ビルド時コンテナ破棄による任意削除(CVE-2024-23652)の検出はタイミングベースであり、競合状態により偽陰性が発生する可能性があります。
  • 以下の環境でテスト済み:
    • Ubuntu 20.04/22.04(AMD64)
    • GKE(Ubuntu および Alpine Linux、AMD64)
    • EKS(Ubuntu および Alpine Linux、AMD64)- EKS バージョン >= 1.25 でサポート
    • Ubuntu 22.04(ARM64)

問題

バグと問題の最新リストについては、プロジェクトの issues を参照してください。

貢献

貢献は歓迎します。詳細は CONTRIBUTING.md を参照してください。

ライセンス

Leaky Vessels Dynamic Detector は Apache-2.0 ライセンスの下で提供されています。詳細は LICENSE を参照してください。

ツールをダウンロード