カリフォルニア大学バークレー校、テキサス A&M 大学、半導体企業の SK Hynix のコンピューター科学者らは、メモリバスを介して CPU からオフチップ DRAM へのメモリ要求を観察することで、セキュア エンクレーブ保護を破る方法を発見した。
2020 年 8 月に開催される第 29 回 USENIX セキュリティ シンポジウムに掲載される予定の「メモリ バスを介したハードウェア エンクレーブへのオフチップ攻撃」と題された論文 [PDF] で、研究者の Dayeol Lee、Dongha Jung、Ian Fang、Chia-Che Tsai、および Raluca Ada Popa が、Membuster と呼ばれるハードウェア エンクレーブへのオフチップ攻撃について説明しています。
彼らの研究は、安全な実行環境を構築するためのChipzillaのチップアーキテクチャ拡張であるIntel SGX(ソフトウェア・ガード拡張)に特化しています。しかし、メモリバス上のアドレスを暗号化しない他のハードウェア・エンクレーブにも適用できると彼らは述べています。
「この攻撃はIntel SGXに限ったものではありません。既存のTEE(Trusted Execution Environment)ではこの種の攻撃を防御できません」と、カリフォルニア大学バークレー校の博士課程学生で、この報告書の共著者の一人であるDayeol Lee氏は、The Registerへのメールで述べています。「しかし、論文に記載されているように、様々なレベル(ハードウェア/ソフトウェア)で既知の緩和策は存在します。ただ、パフォーマンスやコストなどの面でコストがかかるという欠点があります。」
この攻撃はローカルで行われ、ネットワーク経由では機能しません。脅威のシナリオとしては、攻撃者がターゲットデバイスに物理的にアクセスできるセキュアエンクレーブからデータを取得しようとすることや、クラウドサービスプロバイダーの攻撃者がテナント顧客のデータを取得しようとすることが挙げられます。これは、最近Twitterで発生した事態を考えると、それほどあり得ない可能性ではないようです。
リー氏は、ハードウェアエンクレーブはクラウドだけでなく、携帯電話などのエンドユーザーデバイスにも利用されていると説明した。不正なAmazon従業員がこの技術を悪用すれば、ハードウェアエンクレーブ上で稼働するテナントのアプリケーションからデータを抽出できる可能性がある、あるいはエンドユーザーがエンクレーブ内のアプリケーションからデータを収集し、エンクレーブの所有者であるアプリ開発者から秘密データを入手する可能性があるとリー氏は示唆した。
他のセキュリティ専門家たちは、共有キャッシュのようなサイドチャネル攻撃や、リターン指向プログラミング(ROP)などの技術を利用した、ハードウェアエンクレーブに対する様々なオンチップ攻撃を既に考案しています。例えば、今年初め、グラーツ工科大学の研究者たちは、マルウェアの埋め込みを可能にするIntel SGXへの攻撃を公開しました。
しかし、メモリ アドレスを明らかにするために、保護された操作と通常の操作の両方に使用されるチップ コンポーネントの動作を観察するオンチップ サイド チャネル情報に依存するのではなく、Membuster 攻撃は、オフチップ サイド チャネル、つまりメモリ アドレス バスを観察することに依存します。
「CPUはエンクレーブのデータを暗号化しますが、すべてのアドレスはCPUから暗号化されずに送信されるため、攻撃者はアクセスパターンからプログラムの機密情報を推測できます」と論文は説明しています。「市販のDRAMインターフェースはアドレスバスの暗号化をサポートしていないため、既存のハードウェアエンクレーブでは物理的な攻撃者によるメモリアドレスバスの観測を阻止することはできません。」
最近、Varys、Hyperrace、Cloak、T-SGX、Déjà Vuなど、オンチップのサイドチャネルを遮断するための様々な学術的提案がなされています。しかし、Membusterはオフチップで動作するため、シリコン内に防御機能を組み込んでも効果はありません。
専門家の説明によると、彼らの攻撃はオペレーティングシステムの権限を悪用してキャッシュミスを誘発する。キャッシュミスとは、データがキャッシュ内に見つからず、他の場所またはメインメモリ内で検索しなければならない状態であり、攻撃者にとって有用な情報を得ることになる。この手法には、カスタムハードウェア、ハードウェアコンポーネントのリバースエンジニアリング、そしてメモリバストレースからアプリケーションの機密情報を取得するアルゴリズムが必要となる。
攻撃を実行するには、攻撃者はDRAMとDIMMソケットの間に、インターポーザーと呼ばれるカスタムプリント基板を設置する必要があります。盗聴されたシステムが再起動されると、盗聴ハードウェアはコマンドバス信号をコピーし、増幅、保存、分析のために信号アナライザーに送信します。
Intelで動いている?セキュリティを確保したいならハイパースレッディングを無効にすべきだとLinuxカーネルメンテナーが提言
続きを読む
これらの DRAM トレースは、メモリ アドレスとアドレス指定機能をマッピングし、仮想メモリ アドレスと物理メモリ アドレスを変換するために使用されます。
研究者たちは、この技術を実証するために、LibreOffice、Chrome、Firefoxなどのアプリケーションで広く使用されているオープンソースのスペルチェックライブラリHunspellと、メモリ内キーバリューデータベースMemcachedに対して攻撃を実施した。回復できたデータ量は適用した手法によって異なり、キャッシュスクイーズと呼ばれる手法を用いることで、ランダムにスペルチェックされた文書の96%とMemcachedクエリの82%を回復することができた。
Membusterの開発者たちは、限界があることを認めている。最終レベルのキャッシュミスによるメモリアクセスパターンのみをリークするため、同じメモリアドレスへの連続参照には適していない。この手法は「大規模なヒープや配列にわたるデータ依存のメモリロードをリークする」のに最も適していると、論文では説明されている。
研究者らは、Membuster は、安全なエンクレーブを物理的に保護することはソフトウェア セキュリティと同様に真剣に考慮する必要があることを示していると結論付けています。
インテルは、この調査結果を事前に知らされており、 The Registerに対し電子メールで声明を発表し、Membuster は同社の脅威モデルには当てはまらないと説明した。
「Intel SGXは、セキュリティ境界がCPUパッケージ内部のみを対象とし、特にDRAMは信頼できないという前提で動作します」と、同社の広報担当者は述べています。「これは、メモリ暗号化エンジン(MEE)と呼ばれる自律型ハードウェアユニットによってサポートされており、その役割は、特定のメモリ範囲におけるCPU-DRAMトラフィックの保護を支援することです。私たちは以前、メモリの暗号化を必要とする攻撃はMEEの設計範囲外であることを文書化しました。Membusterはそのような攻撃の一つです。」®