ゼファーネットのロゴ

今すぐパッチを適用: Kubernetes RCE の欠陥により Windows ノードの完全な乗っ取りが可能になる

日付:

広く使用されている Kubernetes コンテナ管理システムのセキュリティ バグにより、攻撃者が Windows エンドポイント上でシステム権限を使用してリモートからコードを実行することができ、その結果、システム内のすべての Windows ノードが完全に乗っ取られる可能性があります。 Kubernetesクラスター.

Akamai のセキュリティ研究者 Tomer Peled がこの欠陥を発見しました。この欠陥は CVE-2023-5528 として追跡され、CVSS スコアは 7.2 です。悪用は、クラスター上のポッド間でのデータの共有をサポートすること、またはポッドのライフサイクル外でデータを永続的に保存することを目的とした機能である Kubernetes ボリュームの操作にあると説明しました。 ブログの記事で 13月XNUMX日に公開されました。

攻撃者が攻撃ベクトルとして必要とするのは、 ポッドと永続ボリュームを作成するには GitHub のこの欠陥のリストによると、Windows ノード上でそれらのノードの管理者権限に昇格できる可能性があります。

「攻撃者はパラメーターを変更し、3 つの YAML ファイルを適用するだけで Windows エンドポイント経由で RCE を取得できるため、この脆弱性を悪用するのは非常に簡単です」と Peled 氏は Dark Reading に語ります。 Kubernetes フレームワーク 「基本的にすべてに YAML ファイルを使用します」と彼は投稿に書いています。

Kubernetes クラスター Windows 用のツリー内ストレージ プラグインを使用している場合にのみ影響を受けます。ただし、「開発者が使用できるさまざまなボリューム タイプがあり」、さまざまな攻撃シナリオが作成されると Peled 氏は投稿の中で述べています。

オンプレミス展開と Azure Kubernetes Service の両方を実行しているバージョン 1.28.4 より前の Kubernetes の既定のインストールには脆弱性があります。 Kubernetes チームはこの欠陥について警告を受けており、修正用のパッチが提供されているため、これを強くお勧めします。

「問題はソース コード内にあるため、この脅威は引き続き活動し、悪用が増加する可能性があります。このため、クラスターに Windows ノードがない場合でも、クラスターにパッチを適用することを強くお勧めします。」と Peled 氏は書いています。

欠陥を追跡する

Peled 氏は、Kubernetes での安全でない関数呼び出しとユーザー入力のサニタイズ不足という、同じ根本原因を共有する別の脆弱性を調査した後にこの欠陥を発見しました。その欠陥とは、 CVE-2023-3676、コマンド インジェクションの脆弱性で、悪意のある YAML ファイルをクラスターに適用することで悪用される可能性があります。この脆弱性の発見により、他の 2 つの脆弱性も発見されました。これらの脆弱性も、YAML ファイルの subPath パラメータのサニタイズがされていないことが原因で、ボリュームを含むポッドが作成され、悪意のあるコード インジェクションの機会が開かれます。

「調査の最終段階で、コード内に別のコマンド インジェクションの脆弱性を引き起こす可能性がある潜在的な箇所があることに気付きました」と、最終的に CVE-2023-5528 となったと Peled 氏は説明しました。

「数回の試行の後、なんとか同様の結果を達成することができました。つまり、kubelet サービス (SYSTEM 権限) としてコマンドを実行するということです」と彼は書いています。

悪用とパッチ適用

研究者らが実行した概念実証では、Kubernetes 内のボリューム タイプの 1 つであるローカル ボリュームに焦点を当てました。ローカル ボリュームを含むポッドを作成する際、kubelet サービスは最終的に「exec.command」への cmd ライン呼び出しを持つ関数に到達し、ノード上のボリュームの場所とポッド内の場所の間にシンボリック リンクを作成します。

多くの端末と同様、Windows のコマンド プロンプト (cmd) では、2 つ以上のコマンドを次々に実行したり、同じコマンド ラインで複数のコマンドを実行したりできます。 「cmd 実行時にパラメーターの 1 つを制御できるということは、コマンド インジェクションを使用できることを意味します」と Peled 氏は説明しました。

ローカル ボリュームでこれを実現するには、persistentVolume を指定または作成する必要性などの前提条件があります。ただし、そのボリュームが作成されると、「ユーザーはpersistentVolumeClaimを使用してストレージスペースを要求できる」と同氏は書いています。 「ここに注射が打てます。」

この欠陥に対して作成されたパッチは、cmd 呼び出しを削除し、同じ操作を実行してシンボリックリンクを作成するネイティブ GO 関数に置き換えることにより、インジェクションの機会を排除します。 「今後、GO 'os' ライブラリは、当初の予定どおり、シンボリックリンク操作のみを実行します」と彼は説明しました。

あなたのシステムには脆弱性がありますか?

Kubernetes コンテナ用に最も広く使用されているオープンソース システムの 1 つとして浮上しました。しかし、それはまた、 主要なターゲット 脅威アクターにとって、 膨大な可能性 組織データの悪用とアクセスを目的としています。さらに、多くの場合、Kubernetes 構成自体が脆弱なインストールを作成し、脅威アクターに広範な攻撃対象領域を提供します。

「Kubernetes は非常に複雑で堅牢なツールです」と Peled 氏は言います。 「その堅牢性により、ユーザーが組織のニーズに合わせてエクスペリエンスを調整できる一方で、開発者とユーザーの両方の観点から、そのあらゆる側面をセキュリティで保護することが非常に困難になります。」

実際、CVE-2023-5528 とそれに関連する欠陥の発見は、Kubernetes を導入する企業にとって、「Kubernetes 自体とそのサイドカー プロジェクトのいくつかのコード領域で入力サニタイズが不足しているため、Kubernetes 構成 YAML を検証することがいかに重要であるかを浮き彫りにした」と Peled 氏は書いています。 。

ロールベースのアクセス制御 (RBAC) などのベスト プラクティスに従い、クラスターが最新であることを確認することで、「既知の脅威の大部分を軽減できるはずです」と同氏は Dark Reading に語ります。

Kubernetes を実行しているエンタープライズ環境は、システムのバージョンが 1.28.4 より前で、システムが Windows ノードを実行している場合にのみ、この欠陥が悪用される可能性があります。この場合、Akamai は管理者がシステムにパッチを適用する必要があるかどうかを判断するために実行できるコマンドを提供しました。その場合は、パッチ適用を優先する必要があります。  

「Kubernetes クラスターに Windows ノードがない場合は、この特定の脆弱性を急いでパッチする必要はありません」と Peled 氏は述べています。 「しかし、時間があるときにとにかくパッチを適用することが重要です。」

即時パッチ適用ができない場合は、Akamai も対応します。 提供しています この種の動作の検出とブロックに役立つ Open Policy Agent (OPA) ルール。 OPA は、ユーザーがノードに出入りするトラフィックに関するデータを受信し、受信したデータに対してポリシーベースのアクションを実行できるようにするオープン ソース エージェントです。

スポット画像

最新のインテリジェンス

スポット画像