ニュース

ハードウェア非依存の新たなサイドチャネル攻撃“Page Cache Attacks”が発表

どんなCPUやGPUを搭載しているかは問わず、OSの“ページキャッシュ”機構を狙う

“Page Cache Attacks”の概略(論文より引用)

 新たなサイドチャネル攻撃の手法“Page Cache Attacks”が1月4日、複数のセキュリティ研究者から成るチームにより発表された。昨年話題となった“Meltdown”“Spectre”“Foreshadow”“PortSmash”といったサイドチャネル攻撃との違いは、特定のハードウェアに依存しない点だ。“ページキャッシュ”と呼ばれるごく一般的な手法を用いるOSであれば、原理上どのOSでも攻撃が可能となる。

 WindowsやLinuxといったOSでは、アプリケーションに物理メモリを直接触らせるようなことはしない。仮想記憶と呼ばれる仕組みを提供し、プロセスごとに独立した仮想アドレス空間を割り当てる。

 わざわざこのような仕組みを設けるのは、特定のアプリケーションが物理メモリのデータを破壊したり、他のプロセスへ不正にアクセスしたりするのを防止する(OSの安定性やセキュリティを向上させる)ためだ。また、実際に搭載されている物理メモリ以上のメモリを扱えるのもメリットといえる。物理メモリからあふれたデータはOSがディスクに退避し、必要となれば物理メモリにマッピングする。

 仮想記憶では、物理メモリを“ページ”と呼ばれる小さな単位に分割・管理している。ディスクから読み込んだデータをページへキャッシュすることをページイン、逆にキャッシュから取り除き、ディスクへ退避させることをページアウトと呼ぶ。通常、ディスクよりメモリの方が速く読み書きできるので、データがページに存在するかどうかで処理速度は大きく異なる。

 “Page Cache Attacks”は、このことに着目した攻撃手法だ。悪意あるプログラムによって故意にページアウトを発生させ、Windowsの“QueryWorkingSetEx”やLinuxの“mincore”といったシステムコールを用いてデータのアクセス速度がどのように変化するのかを観測し、本来アクセスできないはずの他のプロセスのデータを推測する。基本的にはローカル攻撃の手法だが、リモート攻撃への応用も可能であるという。

 Windowsの場合、次期バージョンの「Windows 10 19H1」で“Page Cache Attacks”への対策が行われている。また、Linuxでも対策が議論されている。