Simple Science

最先端の科学をわかりやすく解説

# コンピューターサイエンス# 暗号とセキュリティ

Xilinxメモリ保護ユニットに深刻な欠陥発見された。

XMPUの大きな脆弱性が、プロセス終了後に機密データを漏らしちゃうんだ。

― 1 分で読む


XMPUの脆弱性が機密デーXMPUの脆弱性が機密データを漏えいさせるプロセスのメモリにアクセスできるようになMPUの脆弱性があって、攻撃者が終了したXilinx
目次

メモリ保護ユニット(MPU)は、組み込みプロセッサなどのデバイスでデータを安全に保つために重要な役割を果たしてるんだ。これらのツールは、異なるメモリの部分を分離して、あるプロセスが他のデータにアクセスできないようにすることで、セキュリティを維持するのに不可欠。でも最近、特定のMPU、Xilinxメモリ保護ユニット(XMPU)に、ユーザーのメモリに不正アクセスを許す重大な欠陥があることがわかったんだ。この問題は「復活攻撃」と呼ばれ、プロセスが終了した後にセンシティブなデータがさらされるリスクがある。

復活攻撃って何?

復活攻撃は、攻撃者が終了したプロセスに属していたメモリにアクセスすることができる時に起こる。XMPUの場合、ユーザーのメモリはアクティブな間だけ保護されるんだ。ユーザーのセッションが終わった後、そのプロセスで使われていたメモリ領域がきれいに消されないから、攻撃者はこの脆弱性を利用して、パスワードや個人データなどのセンシティブな情報を読み取ることができる。

これが重要な理由

攻撃者がこのデータを読み取ることができるってのは、本当に怖い。センシティブな情報が盗まれたり、システムに不正アクセスされる可能性がある。Xilinxデバイスのユーザーは、この問題を理解しておく必要があるんだ、修正されるまで。

メモリ保護におけるMPUの役割

メモリ保護ユニットは、あるプロセスが別のプロセスに干渉するのを防ぐためのハードウェア機能なんだ。MPUはメモリを異なるセクションに分けて、それぞれのセクションに保護設定を割り当てる。この設定には、ユーザーモードとスーパーバイザーモードの2つのモードが含まれることが多い。ユーザーモードは通常の操作を許可して、スーパーバイザーモードはシステムレベルのタスクのために追加のアクセスを提供するんだ。

MPUの仕組み

MPUは別々のメモリ空間を作り、それぞれのメモリの部分に権限を割り当てる。もしプロセスが権限がないメモリにアクセスしようとすると、MPUはエラーをトリガーする。これはセンシティブなデータを不正アクセスから守るために重要なんだ。

FPGAの種類

フィールドプログラマブルゲートアレイ(FPGA)は、さまざまなタスクを実行するためにプログラムできるハードウェアの一種。適応性があって、ネットワーキングや金融など、多くの産業で効率的に使われてる。でも、その柔軟性はセキュリティリスクをもたらすこともあるんだ。

FPGAに関するセキュリティ研究

いくつかの研究がFPGAのセキュリティを調査してる。これらの研究は、主にシステムの弱点を狙った攻撃、例えばサプライチェーンの脆弱性や不正なロジック変更について調べてる。他のタイプの攻撃は物理的アクセスに焦点を当てていて、攻撃者がFPGAのエネルギー使用を分析してプライベートな情報を引き出すかもしれない。

マルチテナントFPGAの脆弱性

マルチテナントFPGA環境では、複数のユーザーが同じハードウェアを共有することができる。この設定は新しいセキュリティの課題を生むかもしれない。攻撃者が共有リソースを悪用して不正アクセスポイントを作り出す可能性があるからだ。研究によると、攻撃者は共有された電気コンポーネントを使ってプロセス間で情報を漏らすことができるんだ。

攻撃概要

復活攻撃は特にXMPUを狙ってる。このMPUはプロセスが使用するメモリを保護するはずなんだけど、プロセスが終了するとメモリはクリアされないんだ。つまり、メモリはそのまま残っていて、新しいプロセスがアクセスできる可能性がある。

XMPUの欠陥

ユーザーのセッションが終わると、XMPUは関連するメモリ空間をクリアしない。結果として、攻撃者は埋め込まれたオペレーティングシステムを介してメモリアクセスを要求できるから、古いデータを読み取ることができる。メモリがクリアされないことは、センシティブなデータが露出する大きなリスクを生む。

復活攻撃のステップ

攻撃者がXMPUのこの欠陥をどう利用するかをまとめると以下のようになる:

  1. プロセスIDの監視:攻撃者はプロセスIDを監視して、被害者のプロセスがいつ終了するかを追跡する。

  2. メモリ割り当ての要求:被害者のプロセスが終了した後、攻撃者は古いデータが消去されることなくメモリ割り当てを要求する。

  3. 仮想アドレスへのアクセス:攻撃者は新しく割り当てられたメモリ空間に割り当てられた仮想アドレスをチェックする。

  4. アドレスのマッピング:攻撃者はシステムツールを使用して、これらの仮想アドレスを物理アドレスにマッピングすることができる。

  5. メモリ残留データの読み取り:最後に、攻撃者はこれらの物理アドレスに残っているデータを読み取る。これには、以前のプロセスからのセンシティブな情報が含まれる可能性がある。

実験の設定

この攻撃を示すためには、特定の実験設定が必要だ:

  1. 攻撃はターゲットボード、具体的にはXilinx Zynq UltraScale+ FPGA上で行われる。

  2. 使用されるオペレーティングシステムはPetaLinuxで、プロセスやメモリ割り当ての管理を助ける。

  3. ターゲットボードの設定により、攻撃者はXMPUの設定を有効または無効にすることができる。

ステップバイステップ攻撃実行

攻撃者はまずターゲットボードと接続し、プロセスを監視し始める。被害者のプロセスが終了すると、攻撃者はメモリアクセスを要求できる。

メモリ保護の要求

アクセスを得た後、攻撃者はXMPUのメモリ設定を変更することができる。この変更により、攻撃者は以前に保護されていたメモリ領域にアクセスできるようになる。

メモリからのデータのスクレイピング

攻撃者がメモリアドレスを特定すると、そこに存在するデータを読み取ることができる。このデータは、終了したプロセスが使用していた重要な情報、例えばパスワードや個人ファイルを含む可能性がある。

データの分析

攻撃の重要な側面には、スクレイピングしたデータの分析が含まれる。攻撃者はメモリ使用パターンをプロファイリングすることで、被害者プロセスが扱っていた情報の種類を理解できる。このプロファイリングは、より焦点を絞った攻撃につながり、盗まれたデータを特に価値のあるものにするかもしれない。

結論

復活攻撃は、Xilinxメモリ保護ユニットの設計における重大な欠陥を明らかにしてる。このプロセス終了後のメモリを消去しないことは、攻撃者がセンシティブな情報にアクセスするために悪用できる脆弱性を生む。データセキュリティが重要な環境では、この欠陥の影響は懸念される。

テクノロジーが進化し続ける中で、製造者や開発者は自分たちの設計においてセキュリティを優先することが重要だ。XMPUのような脆弱性に対処することは、埋め込みシステムへの信頼を維持し、センシティブなデータを不正アクセスから守るために必要不可欠なんだ。

オリジナルソース

タイトル: Resurrection Attack: Defeating Xilinx MPU's Memory Protection

概要: Memory protection units (MPUs) are hardware-assisted security features that are commonly used in embedded processors such as the ARM 940T, Infineon TC1775, and Xilinx Zynq. MPUs partition the memory statically, and set individual protection attributes for each partition. MPUs typically define two protection domains: user mode and supervisor mode. Normally, this is sufficient for protecting the kernel and applications. However, we have discovered a way to access a process memory due to a vulnerability in Xilinx MPU (XMPU) implementation that we call Resurrection Attack. We find that XMPU security policy protects user memory from unauthorized access when the user is active. However, when a user's session is terminated, the contents of the memory region of the terminated process are not cleared. An attacker can exploit this vulnerability by gaining access to the memory region after it has been reassigned. The attacker can read the data from the previous user's memory region, thereby compromising the confidentiality. To prevent the Resurrection Attack, the memory region of a terminated process must be cleared. However, this is not the case in the XMPU implementation, which allows our attack to succeed. The Resurrection Attack is a serious security flaw that could be exploited to steal sensitive data or gain unauthorized access to a system. It is important for users of Xilinx FPGAs to be aware of this vulnerability until this flaw is addressed.

著者: Bharadwaj Madabhushi, Chandra Sekhar Mummidi, Sandip Kundu, Daniel Holcomb

最終更新: 2024-05-22 00:00:00

言語: English

ソースURL: https://arxiv.org/abs/2405.13933

ソースPDF: https://arxiv.org/pdf/2405.13933

ライセンス: https://creativecommons.org/licenses/by/4.0/

変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。

オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。

著者たちからもっと読む

類似の記事