アムステルダム自由大学の研究者グループが、RowHammer攻撃の新しい高度なバージョンを開発しました。 これにより、DRAMチップに基づくメモリ内の個々のビットの内容を変更して、適用されるエラー訂正コード(ECC)の整合性を保護できます。
攻撃は、システムへの非特権アクセスを使用してリモートで実行できますRowHammerの脆弱性は、隣接するメモリセルからデータを周期的に読み取ることにより、メモリ内の個々のビットの内容を歪める可能性があるためです。
RowHammerの脆弱性とは何ですか?
研究者のグループがRowHammerの脆弱性について説明しているのは、これはeはDRAMメモリの構造に基づいていますなぜなら、これは基本的にセルのXNUMX次元マトリックスであり、これらのセルのそれぞれがコンデンサとトランジスタで構成されているためです。
したがって、同じメモリ領域を継続的に読み取ると、電圧の変動や異常が発生し、隣接するセルの電荷がわずかに失われます。
読み取りの強度が十分に大きい場合、セルは十分に大量の電荷を失う可能性があり、次の再生サイクルでは元の状態に戻す時間がなく、セルに保存されているデータの値が変化します。
RowHammerの新しい亜種
今まで、 ECCの使用は、上記の問題から保護するための最も信頼できる方法と考えられていました。
しかし 研究者たちは、指定されたメモリビットを変更する方法の開発に成功しました エラー訂正メカニズムはアクティブになりませんでした。
方法 データを変更するためにECCメモリを備えたサーバーで使用できます、悪意のあるコードを置き換え、アクセス権を変更します。
たとえば、上記のRowHammer攻撃では、攻撃者が仮想マシンにアクセスすると、ホスト名aptプロセスを変更して悪意のあるシステム更新がダウンロードされ、hostname.digital署名の検証ロジックがダウンロードおよび変更されました。
この新しいバリアントはどのように機能しますか?
研究者が説明すること この新しい攻撃は、ECCウォークスルーがエラー訂正機能に依存していることです。-XNUMXビットを変更するとECCがエラーを修正し、XNUMXビットを上げると例外をスローしてプログラムを強制終了しますが、XNUMXビットを同時に変更するとECCが変更に気付かない場合があります。
ECC検証が機能しない条件を判別するには、 メモリ内の特定のアドレスに対する攻撃の可能性を評価できる、レースと同様の検証方法が開発されました。
この方法は、エラーを修正すると、読み取り時間が長くなり、結果として生じる遅延が非常に測定可能で目立つという事実に基づいています。
攻撃は、各ビットを個別に変更する連続した試行に削減され、ECC設定によって引き起こされる遅延の出現によって変更の成功を判断します。
したがって、マシンワード検索はXNUMXつの可変ビットで実行されます。 最後の段階では、XNUMXつの場所にあるXNUMXつの可変ビットが異なることを確認してから、XNUMX回のパスでそれらの値を変更する必要があります。
デモについて
たくさん 研究者は、DDR3メモリを搭載したXNUMXつの異なるサーバーへの攻撃の可能性を実証することに成功しました (理論的に脆弱でDDR4メモリ)。そのうちの3つにはIntelプロセッサ(E1270-3 v5、Xeon E2650-1 v5、Intel Xeon E2620-1 v6376)、XNUMXつはAMD(Opteron XNUMX)が搭載されていました。
En デモでは、アイドル状態のサーバーのラボで必要なビットの組み合わせを見つけるのに約32分かかることが示されています。
アプリケーションのアクティビティから発生する干渉が存在するため、実行中のサーバーを攻撃することははるかに困難です。
実動システムでは、交換可能なビットの必要な組み合わせを見つけるのに最大XNUMX週間かかる場合があります。