DDR5でRowhammer攻撃する「Phoenix」が発見される。EECでの保護も無力に
DRAMでは、古くから「Rowhammer」と呼ばれる攻撃手法が知られており、特定のメモリアドレスに繰り返しアクセスすることで、隣接する行に電気的な干渉を引き起こし、結果としてビット反転を発生させるというものです。これにより、本来アクセスできないデータの読み出しや、コードの改ざんによる悪意あるプログラムの実行が可能になる場合があります。
こうした攻撃は、従来のDDR3/DDR4世代では現実的な脅威とされていましたが、近年のDDR5メモリではECC(Error Correction Code)やTRR(Target Row Refresh)などの保護機能が搭載されていることから、Rowhammer攻撃は事実上無効化されたと考えられていました。
しかし、チューリッヒ工科大学のセキュリティ研究グループ(COMSEC)とGoogleの研究者たちは、DDR5メモリでも有効な新たなRowhammer攻撃「Phoenix」を発表。既存の保護機能を完全に回避し、システムのroot権限を奪取することさえ可能であることを実証しました。
ECCやTRR保護を完全に無効化する「Phoenix」攻撃
この研究では、AMDのZen 4世代CPUとSK Hynix製のDDR5メモリを組み合わせて「Phoenix」攻撃を実施。以下のような結果が報告されています。
- ページテーブルエントリ(PTE)の改ざん: 成功率 100%
- 仮想マシンからのSSHログインキー抽出: 成功率 73%
- sudoユーティリティの改ざんによるroot権限奪取: 成功率 33%
DDR5にはRowhammer対策機能であるTRR(Target Row Refresh)や、データの誤りを訂正するECC/ODECC(On-die ECC)などの保護機能が搭載されているものの、Phoenix攻撃ではこれらを回避することに成功しており、現在広く用いられている保護機能では防ぎきれないことが明らかになりました。
特に深刻なのは、システム管理に不可欠なsudoユーティリティの改ざんによってroot権限を奪取する攻撃で、実験ではわずか5分19秒で成功したとされています。これは、一般ユーザーのPCだけでなく、企業やデータセンターサーバーにとっても重大なセキュリティリスクになると考えられます。
暫定的な対策では8.4%の性能低下。恒久的対策はLPDDR6やDDR6以降に・・・
現時点では、Phoenix攻撃に対する完全な対策は存在していません。研究チームによると、UEFI(BIOS)設定でメモリのリフレッシュレート(tREFI)を3倍に引き上げることで攻撃の成功率を大幅に下げることが可能ですが、その代償としてSPEC CPU2017ベンチマークにおいて約8.4%の性能低下が発生するとのことです。特に性能が重要視されるサーバーなどでは、この影響は無視できません。
なお、今回の実験ではZen 4世代のCPUが用いられていますが、AMDは本件を受けて、対策を盛り込んだBIOSアップデートを準備中とされています。
Phoenix攻撃は現状のDDR5では上記のような暫定的な対策しかないようですが、JEDECは2024年4月に「PRAC(Per-Row Activation Counting)」と呼ばれる機能を発表しています。このPRACはメモリ各行へのアクセス回数を正確にカウントし、しきい値を超えた場合にホストシステムに警告することでRowhammer攻撃を未然に防ぐことができます。
ただ、PRACは2026年以降に投入されるLPDDR6やDDR6から標準搭載となるため、DDR5など現行メモリはtREFIなど既存の機能を用いて攻撃を防ぐしか方法がないようです。
コメント