2016-08-17 16 views
2

KSM(Kernel Same-page Mapping)を使用する場合、完全に同一のメモリページが2つの完全に分離されたプロセス、たとえば2台の仮想マシンによって所有されている場合、それらのページはマージされますか?あるいは、それぞれのプロセスが互いに分離されているため、それらは別々のままになりますか?私はVMがホスト上の単一のプロセスに沸騰するので混乱しますが、これらのページがマージされるとかなり重大な問題であるように見えます。KSMに関するセキュリティ上の懸念

これがVMとvsのコンテナとの区別がつかないかと私は興味がありますか?

の質問に加えて、は何か起こるでしょうか、それらが隔離されている場合、それはおそらく精緻化できますか?これは、2つのプロセスが完全に独立したメモリを持つように、cgroupを使用することで実現すると仮定します。

答えて

3

異なるVMインスタンスが所有している場合でも、異なるプロセスからのページがマージされます。私は特に言います。異なるVMのページをマージすると、メモリページをマージすることで最大の効果が得られます。つまり、VM内で同一のライブラリとカーネルコードの複製が不要になります。

この効果は、GnuPG 1.4.13暗号ライブラリに対するキャッシュタイミング攻撃に既に使用されています。 GnuPGライブラリのコードを含むマージされたページは、2つの異なるVM間で共有され、1つのVMは、もう一方の暗号操作で使用されるキーを回復することができました。この攻撃は、情報をスヌープするために使用されたプロセッサ命令のために、「FLUSH + RELOAD」と命名されました。

は、ここで攻撃を記述するPDFファイルへのリンクです:https://eprint.iacr.org/2013/448.pdf

+0

非常に興味深い、すべてではない私が期待したもの、ありがとう! –

+0

バッファオーバーフローはこれらの手段で実行できますか? –

+0

@JeffQuickいいえ、明らかにしてはいけないデータを明らかにする、純粋なサイドチャネル攻撃です。タイミング以外の方法で攻撃されたVMに影響を与えることはできません。 – cmaster

関連する問題