[論文レビュー] Malware Guard Extension: Using SGX to Conceal Cache Attacks
この論文は、悪意あるIntel SGXエナclave内から実行される最初の実用的で、SGXの隔離を回避するキャッシュ側帯域攻撃を示している。1回のトレースで4096ビットのRSA秘密鍵の96%を抽出し、5分以内に11回のトレースで完全な鍵を回復した。攻撃はタイマー、大容量ページ、物理アドレスに依存せず、SGX自身のセキュリティ機能を活用してマルウェアを隠蔽した。
In modern computer systems, user processes are isolated from each other by the operating system and the hardware. Additionally, in a cloud scenario it is crucial that the hypervisor isolates tenants from other tenants that are co-located on the same physical machine. However, the hypervisor does not protect tenants against the cloud provider and thus the supplied operating system and hardware. Intel SGX provides a mechanism that addresses this scenario. It aims at protecting user-level software from attacks from other processes, the operating system, and even physical attackers. In this paper, we demonstrate fine-grained software-based side-channel attacks from a malicious SGX enclave targeting co-located enclaves. Our attack is the first malware running on real SGX hardware, abusing SGX protection features to conceal itself. Furthermore, we demonstrate our attack both in a native environment and across multiple Docker containers. We perform a Prime+Probe cache side-channel attack on a co-located SGX enclave running an up-to-date RSA implementation that uses a constant-time multiplication primitive. The attack works although in SGX enclaves there are no timers, no large pages, no physical addresses, and no shared memory. In a semi-synchronous attack, we extract 96% of an RSA private key from a single trace. We extract the full RSA private key in an automated attack from 11 traces within 5 minutes.
研究の動機と目的
- ハードウェア制限がある中で、SGXエナclave内からキャッシュ側帯域攻撃が可能かどうかを調査すること。
- 共存するエナclaveから機密情報を抽出できる検出不能なマルウェアをSGXエナclaveに実装できることを実証すること。
- タイムスタンプカウンタへのアクセスが制限されている状況でも、十分な精度のタイミング測定が可能かどうかを検討すること。
- 大容量ページや物理アドレスの欠如を補うために、DRAMとキャッシュの両方の側帯域を利用する方法を考案すること。
- 実世界の定常時間実装(mbedTLS)を用いた実際の隔離環境下での攻撃の有効性を評価すること。
提案手法
- CPUサイクルカウントとキャッシュアクセスパターンを用いた新規タイミング測定技術を開発し、ネイティブのタイムスタンプカウンタを上回る精度を達成した。
- 2MBページや物理アドレスの公開に依存せず、DRAMとキャッシュの両方の側帯域を利用して物理アドレスのビットを回復した。
- mbedTLSの定常時間RSA実装を実行する共存するSGXエナclaveに対して、Prime+Probe攻撃を実装した。
- OSレベルのキャッシュセットバイアスを補うために、キャッシュセットの割り当てをランダム化することで、正しいキャッシュセットアクセスを推定した。
- 複数のトレースを分析し、観察されたキャッシュアクセスパターンからRSA秘密鍵を再構築することで、鍵回復を自動化した。
- SGXのハードウェア暗号化と隔離機能を活用し、OSや検出メカニズム(パフォーマンスカウンタを含む)からマルウェアを隠蔽した。
実験結果
リサーチクエスチョン
- RQ1タイマー、物理アドレス、共有メモリが欠如している状況でも、SGXエナclave内からキャッシュ側帯域攻撃が可能かどうか。
- RQ2大容量ページが利用できない状況で、DRAM側帯域情報が物理アドレスのビット回復にどの程度有効に使えるか。
- RQ3タイムスタンプカウンタへのアクセスが制限されている状況でも、SGXで十分な精度のタイミング測定が可能かどうか。
- RQ4ターゲットが定常時間実装を採用している場合でも、単一の側帯域情報のみで暗号鍵を抽出できるか。
- RQ5このような攻撃がOSやハードウェア監視ツール(パフォーマンスカウンタを含む)によって検出されないか。
主な発見
- 攻撃は、共存するSGXエナclaveの1回のPrime+Probeトレースから、4096ビットのRSA秘密鍵の96%を正常に抽出した。
- 5分以内に11回のトレースを用いて、自動化された攻撃パイプラインにより完全なRSA秘密鍵を回復した。
- タイミング測定技術は、ネイティブのタイムスタンプカウンタを上回る精度を達成し、正確な側帯域分析を可能にした。
- IntelがSGXアクティビティをパフォーマンスカウンタから意図的に除外しているため、攻撃はOSによって検出されず、パフォーマンスカウンタでも観測できなかった。
- 2MBページや直接的な物理アドレスアクセスに依存せず、DRAMとキャッシュの両方の側帯域を組み合わせることで、物理アドレスのビットを正常に回復した。
- 攻撃は、ターゲットエナclaveがDockerコンテナ内で実行されている場合でも有効であり、コンテナ化がエナclave間の側帯域攻撃を防げないことを示した。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。