web-dev-qa-db-ja.com

仮想マシンから抜け出すには、ゲストでどのようなアクセスが必要ですか?

プログラムの脆弱性を利用するだけで十分ですか?ルートまたはカーネルアクセスが必要ですか?ゲストの脆弱性なしにホストを直接悪用する可能性さえあるのでしょうか?ハイパーバイザーにどの程度依存していますか?

6
hurdar

ハイパーバイザーは悪意のあるゲストから保護するように設計されていますが、バグが存在します。

ハイパーバイザーは、特定のハードウェアコンポーネントをエミュレートして、ゲストのハードウェアドライバーがそれらと正しく通信できるように機能します。また、CPUとメモリのハードウェアアクセラレーション仮想化を設定します。 x86仮想化について少し説明し、それが 別の答え でどのように機能するかを説明します。一般に、ハイパーバイザーを利用するには、ハイパーバイザーのエミュレーションコード(トラップされた命令またはハードウェアデバイスをエミュレートするコード)のバグを利用するか、CPU自体が提供するハードウェア仮想化テクノロジを基盤とする必要があります。異なるハイパーバイザーは、ハードウェアが提供する仮想化と対話するための異なる方法を提供するだけです。 Xen、KVM、VirtualBox、HyperVなどはすべて、同じプリミティブVT-x(Intelハードウェア用)への高レベルのインターフェイスであり、仮想化コンテキストを管理するための一連のCPU命令を提供します(たとえば、VMの出入りなど)。

プログラムの脆弱性を悪用するだけで十分ですか?

ゲストで任意のコードを実行できる必要があります。これを行う1つの方法は、プログラムの脆弱性を悪用することです。たとえば、ゲストで実行されているWebサーバーを悪用します。

ルートまたはカーネルアクセスが必要ですか?

時々、しかし常にではない。ルート自体は、ユーザーモードで実行されている通常のユーザーにすぎません。それを強力にする唯一のことは、カーネルがそれを信頼し、rootユーザーがカーネルを危険にさらすことができるという事実です。カーネルが侵害されると、悪意のあるコードが最高の特権レベルで実行される可能性があります。多くのハイパーバイザーエクスプロイトでは、カーネルモードでのみ実行できる方法で仮想ハードウェアをいじる必要がありますが、すべての脆弱性がそうであるとは限りません。一部は、完全にユーザーモードで実行されている非特権コードによって悪用される可能性があります。一般に、カーネルモードでは、基盤となるハイパーバイザーとのより詳細な相互作用が可能になり、攻撃対象領域が大幅に拡大します。

ゲストに脆弱性なしでホストを直接悪用する可能性さえあるのでしょうか?

攻撃者がゲストへのローカルの非特権アクセスを持っていると仮定すると、ホストがネットワークで待機している場合、ネットワークを介してホストを攻撃できる可能性があります。これは本当にあなたの設定に依存します。

ハイパーバイザーにどの程度依存していますか?

かなり。 VMエスケープの大部分はハイパーバイザーの脆弱性に依存しています。Xenに対するエクスプロイトはKVMで機能しません。KVMに対するエクスプロイトは機能しませんHyperVなど。基盤となるハードウェアアクセラレーション仮想化テクノロジー(VT-xなど)を利用することによりすべてのハイパーバイザーに適用される特定の脆弱性がありますが、これらはそれほど一般的ではなく、条件がはるかに厳しい傾向があります。例として、IOMMUバイパスがあります。割り込み再マッピングとx2apicがサポートされていないIntel VT-d1この脆弱性により、ハイパーバイザーに関係なくIOMMUの制限が無効になる可能性があります。

5
forest

プログラムの脆弱性を悪用するだけで十分ですか?

それはあなたの十分な定義が何であるかに依存します。個人的には何も悪用されることを望んでいません。しかし、もしあなたの質問がすべての攻撃者が問題を引き起こし始める必要があるということであるならば、答えはイエスです。

ルートまたはカーネルアクセスが必要ですか?

繰り返しますが、これはセキュリティに対するあなたの態度に依存します。アクセスが多すぎると思います。明らかにrootの方がずっと悪いでしょう。

ゲストに脆弱性なしでホストを直接悪用する可能性さえあるのでしょうか?

シェルを取得した人について尋ねているので、仮想マシンがパブリックフェースであると少し考えてみましょう。この人はあなたのネットワークの中にいます。そのボックスにルートがあるかどうかに関係なく、ファイアウォールの背後にある他のマシンを見る可能性があります。彼らはおそらくあなたのvmにツールをロードし、そのツールを使用してネットワーク上の他のマシンの調査を開始することができます。

他に誰がネットワーク上にいるか知っていますか?あなたのホストマシン。

VMが公開されていてネットワーク上にある場合は、エクスプロイトは必要ありません。

さて、あなたはあなたの設定について大量の情報を提供しなかったので、私はこの答えで多くの仮定をしました。

私が行った主な前提は、あなたがネットワークにブリッジアクセスでVMを持ち、攻撃者にさらされていることです。

これに関する最終的な考え

ネットワークで脆弱なVMをセットアップして練習すると、それらはVM内にあります。私はしばしば複数のVMをセットアップし、それらの間を移動します。 VMで攻撃マシンを実行することもありますが、ネットワークに参加したばかりのようにラップトップからアクセスすることがよくあります。VMはネットワーク上の他のマシンとまったく同じに見えます仮想マシンであるからといって、サンドボックス化されているわけではありません。

0
Anthony Russell

ハイパーバイザーのサンドボクシングを解除するには、ハイパーバイザーから何かが必要です。アプリを破壊するか、ゲストOS内でrootに特権を昇格すると、ゲストカーネルと対話するためにこれらの特権が必要な場合に役立つことがあります。硬化に依存します。

過去のいくつかのバグにより、ハイパーバイザーサンドボックスからの脱出が可能になります。これは通常、命令の呼び出し、またはvgaやusbエミュレーターなどのドライバーの脆弱性、またはハイパーバイザーがゲストに提供してリソースの使用を許可するその他のレイヤーに関連しています。

これは昨年の例であり、EXIゲストOSから脱出し、ハイパーバイザーのルートになります。

https://Twitter.com/ChaitinTech/status/1057526019127676929

https://www.vmware.com/security/advisories/VMSA-2018-0027.html?ClickID=czxwsa74s4leafwfzvzkzq7a4f4xqlaklzax

彼らは仮想ネットワークアダプターのバグを使用して成功を収めました。

0
Hugo