DRAMA:新しい攻撃は隔離された仮想マシンからデータをひそかに盗みます





11月1〜4日にロンドンで開催されたBlack Hat Europeカンファレンスで、オーストリアの研究者はCPU-DRAM相互作用の実装機能を使用した新しい攻撃を発表しました 。 この方法により、JavaScriptを使用する攻撃者が仮想マシンから機密情報を直接盗むことができます。 この攻撃はDRAMAと呼ばれていました。



仕組み



研究者のアンダース・フォグとマイケル・シュワルツは、プレゼンテーション中に複数のクロスプロセッサ攻撃を示しました。 彼らの研究の最初の部分は、今年8月のUSENIXセキュリティシンポジウムで発表されました。



Black Hatで、著者は、JavaScriptを使用する攻撃者が、パスワードや秘密鍵などの機密データの小さな「チャンク」を、ネットワークにさえ接続されていない仮想マシンからインターセプトする方法を示しました。



2つの攻撃シナリオがあります。





最初のシナリオを検討してください。 この場合の攻撃の目的は、ネットワークにアクセスできない仮想マシン(VM)から、攻撃者が既にネットワーク経由でダウンロードしているメインシステム(OS)にデータを転送することです。



これは、DRAMメモリデバイスの機能、特に送信プロセス(VMにある)とデータ受信プロセス(OSにある)が同じメモリバンク(DRAMバンク)にあるメモリアドレスを使用するという事実により可能です。 このメカニズムは、プロセスが最近特定のバンクのメモリを処理した場合に、繰り返し呼び出しが迅速に行われるように機能します。



送信者が受信者の2つの呼び出し間でメモリを操作した場合、2番目の呼び出しには時間がかかります。これはビット1として解釈されます。



ここでの主なタスクは、共通のメモリバンク(またはプロセスを高速化するための複数のバンク)でアドレスを取得し、2つのプロセスの相互作用の時点を正しく決定することです。 それを解決するために、著者は多くの最新システムの機能を使用しました-たとえば、多くの場合、メモリの大きなページ(> 2 MB)と、アドレスをポーリングする特定の頻度(受信者側)を使用します。 これを知って、研究者はターゲットシステムの動作に関する仮定を構築することができました。



2番目のシナリオでは、攻撃はプロセッサキャッシュの機能を使用した攻撃と同様の方法を使用します。 この方法の本質は、使用されているプロセスのアドレスを知ることで、入力されたデータ(たとえば、ユーザーがブラウザーのアドレスバーに入力したサイトのアドレス)を観察できることです。



保護する簡単な方法はありません。



研究者は、ホストシステムで脆弱性を悪用したり、悪意のあるソフトウェアを起動したりする必要のない攻撃を開発することができました。 仮想マシンとメインシステムの間に隠れたチャネルを開くだけです。



同時に、フォグとシュワルツは、攻撃が常に正しく実行されるとは限らないことを認めています-場合によっては、データのフィルタリングに使用されるメモリが他のアプリケーションによって占有されている可能性があり、仮想マシンからの情報の転送を許可しませんが、そのような結果の可能性はそれほど高くありません。



研究者は、Intel x86-64プラットフォームでの攻撃方法のテストに焦点を合わせましたが、他のアーキテクチャ(スマートフォンのARMプロセッサなど)も脆弱であることがわかりました。



開発された攻撃はDRAMメカニズムの機能を使用するため、それに対抗する簡単な方法はありません、と研究者は確信しています。 しかし、彼らは今後数年間で実際のシステムでのそのような攻撃の多くを予測していません。 しかし、このような攻撃の可能性は、開発者がソフトウェアだけでなくハードウェア自体のセキュリティを高める必要があることを示しています。



All Articles