新たなサイドチャネルリーク:科学者がオペレーティングシステムのページキャッシュを攻撃して機密情報を漏らす

Table of Contents

新たなサイドチャネルリーク:科学者がオペレーティングシステムのページキャッシュを攻撃して機密情報を漏らす

昨年、データ漏洩を引き起こす投機的実行の脆弱性を明らかにしたコンピューターセキュリティの専門家の一部が、現代のシステムのセキュリティ保護を回避できる新たなサイドチャネル攻撃を特定した。

Spectre や Meltdown のようなサイド チャネル攻撃はチップの設計上の欠陥を悪用して特権情報を収集しますが、今回の攻撃はハードウェアに依存せず、Windows および Linux オペレーティング システムのページ キャッシュが関係し、制限付きでリモートから悪用される可能性があります。

来週初めに ArXiv で配信されるのに先立ちThe Registerに提供された論文では、グラーツ工科大学、ボストン大学、NetApp、CrowdStrike、Intel の研究者である Daniel Gruss、Erik Kraft、Trishita Tiwari、Michael Schwarz、Ari Trachtenberg、Jason Hennessey、Alex Ionescu、Anders Fogh が、オペレーティング システムのページ キャッシュを通じて特定のプロセスがメモリにアクセスする方法を監視する方法について説明しています。

「我々は、タイマーを一切使用せずに動作する一連のローカル攻撃を提示します。LinuxmincoreおよびQueryWorkingSetExWindows上のオペレーティングシステムコールを利用してページキャッシュ情報を取得するものです」と研究者らは記しています。「また、ページキャッシュのメタデータがネットワークチャネルを介してリモート攻撃者に漏洩し、悪意のあるローカル送信プロセスと外部攻撃者の間にステルス性の高い秘密チャネルが形成されることも示しています。」

本来は隠されている情報にアクセスすることで、ビット学者はサンドボックス保護の回避、インターフェースのリドレスアップ、PHPパスワード生成スクリプトに対するキーストロークタイミング攻撃といったローカル攻撃を実行できます。この手法はリモート操作にも応用可能ですが、そのような攻撃は特定の標的とハードウェアに合わせてカスタマイズする必要があり、ハードウェアタイミング測定を組み込む必要があります。研究者たちは、ページキャッシュサイドチャネル攻撃はパフォーマンスの点でハードウェアキャッシュ攻撃に匹敵すると考えています。

つまり、このサイドチャネル攻撃は、脆弱なシステム上で実行されている不正ユーザーやマルウェアによって、他のアプリケーションから秘密データを盗み出すために使用される可能性があり、また、限られた状況下ではネットワーク経由でリモートから悪用される可能性もあります。

Windows カーネルは攻撃を軽減するために更新されており、その変更はすぐにユーザーに提供されるはずです。

幽霊

Spectre にまだ飽きていない方のために… Boffins が、CPU のデータ漏洩ホールを検知する Speculator ツールをデモします

続きを読む

オペレーティングシステムのページキャッシュは、通常はディスク上に保存され、アプリケーションやオペレーティングシステムによって定期的に使用される実行ファイル、ライブラリ、その他様々なデータをRAMに保存します。これらのファイルにアクセスする際、ディスクから情報をゆっくりと引き出したり、ディスクに書き込んだりするよりも、オブジェクトをディスクからメモリに一度読み込み、そのメモリにアクセスして、後で書き込みを処理する方がはるかに高速です。

これらのキャッシュされたページは、複数のプロセスの仮想メモリ領域に同時にマッピングできます。例えば、コードライブラリを一度物理メモリにロードし、複数のアプリケーションの仮想メモリ空​​間にマッピングすることで、物理RAMと時間を節約できます。

このようなメモリの共有、および必要に応じてキャッシュにメモリを出し入れすることは、攻撃の手段となります。つまり、他のプログラムのアクセス パターンを盗聴し、ディスクとキャッシュ間でコピーまたは移動された情報に基づいてデータを抽出することが可能になります。

ローカルかリモートか?

ローカル攻撃の場合、研究者の手法では、ハッカーと被害者が同一のオペレーティングシステム、またはファイルを共有する隔離されたサンドボックス内でプロセスを実行していることを前提としています。この手法では、mincoreLinuxのシステムコールとQueryWorkingSetExWindowsのシステムコールを用いて、メモリ範囲内のどのページがページキャッシュに存在し、どのページが存在しないかを判別します。

このリモート攻撃は、ソフトページフォールトを測定することを狙っています。ソフトページフォールトとは、アプリケーションが有効であるものの、その時点で物理ページが割り当てられていないメモリにアクセスした際に発生するエラーで、オペレーティングシステムが必要なページを割り当ててしまうものです。攻撃者は、リモートサーバー上でプロセスを実行し、公開ファイルへのアクセスのレイテンシを測定します。

論文共著者の一人である研究者ダニエル・グルース氏は、 The Register宛の電子メールで、この研究は主に学術的関心事であるとし、責任ある形で公開され、少なくとも Windows に関してはパッチが適用されていると述べた。

「これは、オペレーティングシステムのレベルでも、ハードウェアレベルとまったく同じ問題に遭遇することを示す重要なステップだと考えている」と同氏は語った。

Gruss 氏によると、この脆弱性は Windows 10 Insider Preview Build 18305 で修正されたが、パッチが正式な公開リリースでいつ公開されるかは不明だという。

この修正では、PROCESS_QUERY_LIMITED_INFORMATIONではなくPROCESS_QUERY_INFORMATIONフラグが必要となるためQueryWorkingSetEx、権限の低いプロセスはページキャッシュ情報に直接アクセスできなくなります。また、共有数情報(ページのワーキングセットに含まれるプロセス数)も省略されます。これは、他のプロセスの変更を間接的に観察する際に役立ちます。

Linuxセキュリティチームはこの問題を認識していると言われていますが、論文では緩和策の詳細は示されていません。PHPパスワード生成攻撃のデモに使用されたphpMyFAQの開発者もこの問題について報告を受けており、修正パッチの作成に取り組んでいるようです。®

Discover More