VirtualBoxマシンを完全に分離する


17

VirtualBoxを使用して、ホストコンピューターにアクセスできないソフトウェアをインストールします(逆も同様です)。ただし、ゼロデイエクスプロイトを実行して何ができるかを確認するなど、より「危険な」ことを試みる可能性も想定しています。

ホストから仮想マシンをどの程度分離できますか?ゲストとホストの間にファイアウォールを設定する必要がありますか(できますか?)。ゲストアドオンはセキュリティリスクですか?共有ディレクトリはどうですか?

現在、ゲストマシンはGNU / Linux Debianテストを実行しています。


7
詳細なセキュリティの質問をしたい場合、Stack Exchangeには情報セキュリティグループがあります。
サイバーナード

ここで@cybernardを再利用します。少し肉付けした後、これはSecurity.SEにとって非常に適切な質問になります(重複していないことを前提としています)
0xdd

1
VirtualBoxはカーネルモジュールを介してシステムとやり取りするため、VirtualBoxは使用しないでください。純粋なユーザースペース実装よりもはるかにリスクが高くなります。また、特に仮想ボックスカーネルモジュールは、カーネル開発者によってがらくたと見なされます。より良い選択は、qemuのような、特権のないユーザーとして実行されるエミュレーターであり、興味のあるものへのアクセス権を持たず、そのユーザーのネットワークアクセスを妨げるファイアウォールルールです。(それが直接のVirtualBoxについての質問に答えていないとしてコメントとして投稿)
アロ

回答:


36

この質問は非常に広範であり、独自の研究がほとんどないこと、そしてこの答えがその種の質問の励ましと見なされるべきではないと言うことから始めます。代わりに、この回答は、マルウェア分析を始めたばかりの人々に非常に基本的な安全性のヒントを提供したいと考えています。

以前に調査された既知のマルウェアを実行しているという前提で作業する場合、環境をどのように隔離するかは、そのマルウェアの能力に大きく依存します。適用されるいくつかの一般的なルールで最も近代的なマルウェアはに次のようになります。

  • インターネットからVMを分離します。これは、ゲストマシンへのインターフェース転送を設定しないことと同じくらい簡単であり、マルウェアが予期しない動作を指示する可能性のあるコマンドアンドコントロールノードと通信することを防ぎます。

  • 適切なハイパーバイザーを使用します。いくつか例を挙げると、VirtualBox、HyperV、QEMU、macOSなど、いくつかの主要なものが市場に出回っていHypervisor.frameworkます。これらのいくつかはマルウェアによって積極的に標的にされており、バージョンによっては、ゲストマシンから発生するマルウェアに対して脆弱である可能性があります。

  • ゲストの追加、または他のプラットフォームの類似物を絶対にインストールしないでください。この種のソフトウェアの文字通りの目標は、ゲストとホスト間の統合を確立し、それらの間の分離を効果的に弱めることです。私はマルウェアの研究者ではありませんが、この種の表面を明確に標的とするマルウェアがなかったら驚くでしょう。

いくつかのポイントに直接対処するには:

ホストから仮想マシンをどの程度分離できますか?

この時点で、VMはかなり完全に分離できますが、一部の機能は、ハイパーバイザーをほとんど保護せずに、ホストを多少なりとも直接通過する必要があります。すぐに、ほとんどの非KVM仮想マシン(VirtualBoxなど)、ホストOSとカーネルを共有ません。これだけで、多数のエクスプロイトクラスに対するブロッカーとして機能します。最も顕著なのは、ホストカーネルに対して任意のシステムコールを実行する機能をブロックすることです(破損したVMレイヤー実装により、マルウェアがこれをあまり明白でない方法で回避できるという顕著なアスタリスクがあります)。

これがいない間-あなたのVMはまだかかわらず、ホストマシンのハードウェア内のプロセス空間を有し、一般的に、現代のOSは、まともなプロセス空間の分離を提供するため、リスク、まだのような、非常に低レベルの攻撃を悪用するために使用することができrowhammerを、プロセスは、所有していない隣接メモリブロックを読み取ることができるようになるまで、特定の方法でメモリに順次書き込みを行います。これにより、プロセス間でメモリのリークが効果的に許可されます。

また、本質的にすべての種類のI / Oを実行する場合、分離はある程度なくなる傾向があることに注意してください。入力と出力は必然的にパススルーを意味し、ホストアクションを実行するために利用できる攻撃対象領域を公開します。これには、マウスやキーボードのようなHIDパススルー、およびネットワークパススルーのようなものが含まれますが、これは一般に、I / OパススルーがVMにどのように実装されているかに依存します。

ゲストとホストの間にファイアウォールを設定する必要がありますか(できますか?)。

それは異なりますが、一般的に悪い考えではありません。主要なプラットフォームのほとんどは、ハイパーバイザーレベルのファイアウォールをサポートしています。これらは、最大で順番にあるホストマシン上のファイアウォール、として許容としてせいぜいあなたのLANまたはVLAN上のファイアウォールとして許容として。仮想ネットワークインターフェイスを切断してネットワークアクセスを完全に遮断するのではなく、これを活用したい場合は、選択したマルウェアターゲットのポートとホストを調査し、そこからアクセスすることをお勧めします。

ゲストアドオンはセキュリティリスクですか?

はい。ホストマシンとゲストマシンの間のあらゆる種類の統合を可能にし、何が開かれているのかを見ることができるオープンな仕様を常に備えているとは限りません。上記を参照。

共有ディレクトリはどうですか?

それはあなたがそれをどのようにやっているかに依存しますが、それはしばしば悪い考えです。多くのハイパーバイザーは、ルートがそのディレクトリにあるゲストマシン内にマウントされた仮想ドライブを作成することでこれを行います。フレームワーク間でわずかに異なる可能性があるそのメカニズムの実装に応じて、テストしようとしているマルウェアに応じて、安全である場合とそうでない場合があります。


私の懸念は、あなたがこれについてほとんど研究しておらず、あなたのマシンやデータに損害を与えるかもしれないということです。続行する前に、一般的なOS(KVM、それらが高レベルの仮想化フレームワーク()、コンテナー()、およびchrootメカニズム()とどのように統合されるかについて、さまざまな分離メカニズムを調べることをお勧めします少数)、それぞれが適切な場合、および彼らができることとできないこと。その時点で、適切に隔離された環境でマルウェアを安全に操作できるかどうかをより適切に判断できます。

最後に、新しいマルウェアやあまり知られていないマルウェアを操作しようとするべきではありません(経験豊富なセキュリティ研究者でない限り、この回答は経験豊富なセキュリティ研究者向けではありません)。悪意のある攻撃者は、悪用するものと悪用する方法に関して非常に創造的です。これを理解するために、ソーシャルエンジニアリングや機械的手段による物理的アクセスを中心としない最近のDEFCON講演をご覧ください。


3
KVMとVirtualBox / VMWare /の間には、原則として分離の点で大きな違いはないと思います。それらはすべてカーネルモジュールサポートを必要とし、ハードウェア支援仮想化を使用するからです。たぶんあなたはコンテナ/ドッカーを意味しましたか?ほぼ純粋なqemuエクスプロイトはユーザースペースにのみ存在すると言われていますが、今日ではおそらくkvm(フロッピードライブエクスプロイトも参照)よりもはるかに精査されていませんが、kvmもqemuもカーネルへの直接のsyscallを許可しませんが、両方とも(仮想化または準仮想化を介して)間接的に許可します。
マチェイピエチョトカ

@MaciejPiechotka私の間違い、それは誤解されました。答えを更新しましたが、これを教えてくれてありがとう!
0xdd
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.