2

KSM (Kernel Same-page Mapping) を使用している場合、2 つの完全に分離されたプロセス (2 つの仮想マシンなど) が完全に同一のメモリ ページを所有している場合、それらのページはマージされますか? それとも、各プロセスが互いに分離されているため、分離したままになりますか? VM がホスト上の 1 つのプロセスに要約されるため、私は混乱していますが、これらのページがマージされた場合、かなり重大な問題になるように思われるため、それらは別々に保持されていると思いますか?

また、これが VM とコンテナーの違いになるかどうかも興味がありますか?

何が起こるかという問題に加えて、彼らが隔離された場合、それについて詳しく説明することはできますか? これは cgroup を使用することで達成され、2 つのプロセスのメモリが完全に分離されると思います。

4

1 に答える 1

3

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

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

攻撃を説明する PDF へのリンクは次のとおりです: https://eprint.iacr.org/2013/448.pdf

于 2016-08-17T20:36:30.997 に答える