Blacksmith - DRAM メモリと DDR4 チップに対する新たな攻撃

チューリッヒ工科大学、アムステルダム自由大学、クアルコムの研究者チームは、ダイナミック ランダム アクセス メモリ (DRAM) の個々のビットの内容を変更できる新しい RowHammer 攻撃手法を公開しました。 この攻撃のコード名は Blacksmith で、CVE-2021-42114 として特定されました。 以前に知られていた RowHammer クラス メソッドに対する保護機能を備えた多くの DDR4 チップは、この問題の影響を受けやすくなります。 システムの脆弱性をテストするツールは GitHub で公開されています。

RowHammer クラス攻撃では、隣接するメモリ セルからデータを周期的に読み取ることで、個々のメモリ ビットの内容を歪めることができることを思い出してください。 DRAM メモリは、それぞれがコンデンサとトランジスタで構成されるセルの XNUMX 次元アレイであるため、同じメモリ領域の連続読み取りを実行すると、電圧変動や異常が発生し、隣接するセルでわずかな電荷損失が発生します。 読み取り強度が高い場合、隣接するセルは十分な量の電荷を失う可能性があり、次の再生サイクルで元の状態を復元する時間がなくなり、セルに保存されているデータの値が変化します。 。

RowHammer から保護するために、チップ メーカーは、隣接する行のセルの破損から保護する TRR (Target Row Refresh) メカニズムを提案しましたが、その保護は「隠蔽によるセキュリティ」の原則に基づいていたため、問題は解決されませんでした。ルートですが、既知の特殊なケースからのみ保護されているため、保護をバイパスする方法を見つけるのが簡単でした。 たとえば、Google は XNUMX 月に、攻撃がターゲットに直接隣接していないセルに影響を与えるため、TRR 保護の影響を受けないハーフダブル方式を提案しました。

Blacksmith の新しい方法は、異なる周波数での XNUMX つ以上のアグレッサー ストリングへの不均一なアクセスに基づいて、電荷漏れを引き起こす、TRR 保護をバイパスする別の方法を提供します。 電荷漏れを引き起こすメモリアクセスパターンを特定するために、特定のチップに対する攻撃パラメータを自動的に選択し、セルアクセスの順序、強度、体系性を変化させる特別なファザーが開発されました。

このようなアプローチは、同じセルへの影響とは関係なく、現在の TRR 保護方法を無効にし、何らかの形でセルへの繰り返し呼び出しの数をカウントし、特定の値に達すると再充電を開始するというものになります。隣接するセルの。 Blacksmith では、アクセス パターンがターゲットの異なる側から一度に複数のセルに分散されるため、しきい値に達することなく電荷漏洩を実現できます。

この方法は、TRR をバイパスするために以前に提案された方法よりも大幅に効果的であることが判明しました。研究者らは、最近購入した Samsung、Micron、SK Hynix、および不明のメーカー製の 40 個の異なる DDR4 メモリ チップすべてでビット歪みを実現することに成功しました (メーカーは4 チップでは指定されていません)。 比較のために、同じ研究者によって以前に提案された TRRespass 手法は、その時点でテストされた 13 個のチップのうち 42 個のみに効果がありました。

一般に、Blacksmith 手法は市場に出回っているすべての DRAM チップの 94% に適用されると予想されていますが、研究者らは、一部のチップは他のチップよりも脆弱で攻撃されやすいと述べています。 チップ内でエラー訂正コード (ECC) を使用し、メモリのリフレッシュ レートを XNUMX 倍にすることは、完全な保護を提供するものではなく、操作を複雑にします。 注目すべき点は、この問題はすでにリリースされたチップではブロックできず、ハードウェア レベルでの新しい保護の実装が必要であるため、この攻撃は長年にわたって影響を及ぼし続けることになります。

実際の例には、Blacksmith を使用してメモリ ページ テーブル (PTE、ページ テーブル エントリ) のエントリの内容を変更してカーネル権限を取得し、OpenSSH のメモリに保存されている RSA-2048 公開鍵を破損する方法が含まれます (公開鍵は他人の仮想マシンを攻撃者の秘密キーと照合して被害者の VM に接続し、sudo プロセスのメモリを変更して資格情報チェックをバイパスして root 権限を取得します。 チップによっては、3 つのターゲット ビットを変更するのに XNUMX 秒から数時間のアタック タイムがかかります。

さらに、Antmicro が Google 向けに開発した、RowHammer クラス攻撃に対するメモリ保護方法をテストするためのオープンな LiteX Row Hammer Tester フレームワークの公開にも注目してください。 このフレームワークは、メモリ コントローラーの影響を排除するために、DRAM チップに直接送信されるコマンドを完全に制御する FPGA の使用に基づいています。 Python のツールキットは、FPGA との対話のために提供されています。 FPGA ベースのゲートウェイには、パケット データ転送用のモジュール (メモリ アクセス パターンを定義)、ペイロード エグゼキュータ、LiteDRAM ベースのコントローラ (行のアクティブ化やメモリの更新など、DRAM に必要なすべてのロジックを処理)、および VexRiscv CPU が含まれています。 プロジェクトの開発は、Apache 2.0 ライセンスに基づいて配布されます。 Lattice ECP5、Xilinx シリーズ 6、7、UltraScale、UltraScale+ など、さまざまな FPGA プラットフォームがサポートされています。

出所: オープンネット.ru

コメントを追加します