Googleの情報セキュリティ研究者は、特定の種類のDDRメモリチップの物理的な弱点を悪用して、Intel互換Linuxコンピューター上の信頼できないユーザーの権利を強化するエクスプロイトを作成しました。
Project Zeroプロジェクトのブログ投稿で、GoogleはDIMMと呼ばれるDDR3チップモジュールに保存されている個々のデータビットの値を変更する(ビットフリッピング)脆弱性の悪用手法を説明しました。 昨年、研究者は 、このようなビットスワッピングがメモリの小さなセクションに影響を与えることで達成できることを証明しました。これにより、そこに格納されているデータが変更されます。 Googleの担当者は、これらすべてを実際の攻撃に使用する方法を示しました。
「ここで最も印象的なのは、鉄の製造業者のレベルで完全に類似した問題がソフトウェアの攻撃にどのように使用できるかを目撃しているという事実です。 [...]簡単に言えば、エクスプロイトはスタックのいくつかのレベルを飛び越えるだけです」と、マイクロプロセッサレポートの編集長であるDavid Kanter氏は言います。
仕組み
DDRメモリは行と列の配列であり、さまざまなアプリケーションとオペレーティングシステムで使用されるブロックに分割されます。 システム全体のセキュリティと整合性を確保するために、メモリの各大領域には「サンドボックス」があり、特定のアプリケーションまたはオペレーティングシステムのプロセスでのみアクセスできます。
ハッカーはプログラムを実行して、数秒間に数千回、メモリモジュール内のそのようなセクションの特定の行にアクセスします。その中のビットの値をゼロから1に、またはその逆に変更します。 この手法はRowhammerと呼ばれます 。
記憶の「禁じられた」領域の内容に影響を与える能力は、広範囲に及ぶ結果をもたらします。 たとえば、この方法では、システム権限が制限されているユーザーまたはアプリケーションは、管理制御が不正に取得されるまでそれらを増やすことができます。
そしてこれにより、攻撃者は悪意のあるコードを実行したり、ユーザーやプログラムの動作を傍受したりできます。 たとえば、数千人のユーザーにサービスを提供するデータセンター内のサーバーに対するこのような攻撃の結果は、重大な損害につながる可能性があります。
そんなに悪くない
脆弱性は新しいタイプのDDR3メモリにのみ存在します。これは、DRAMセルがよりコンパクトに配置されているため、1つのセルが別のセルに電磁効果をもたらすためです。 エラーコード( ECC )を修正できる新しいDDR4の場合、攻撃は機能しません。
さらに、Dyadic SecurityのエキスパートであるIrene Abezgauz氏によると、さまざまな理由から、現時点でGoogleが開発した攻撃は実用的というよりも理論的なものです。
まず、ローカルではなくリモートでのみ実装できます。これは、「通常の」ハッカーがこの手法を使用する可能性を大幅に減らす制限です。 次に、Rowhammerテクニックを実装するには、64ミリ秒で54万件を超えるメモリアクセスを完了する必要があるため、ハッキングが複雑になります。
Googleの研究者は、開発したエクスプロイトを使用して製品をハッキングできるコンピューターやメモリのメーカーや、成功した攻撃の割合に関する詳細を公表していません。 ただし、この投稿には、匿名の29個のメモリモジュールとラップトップモデルの一覧表が含まれています。 これらの29のうち、15のみがビット値の変更の対象となりました。 さらに、実装されたビット変更のわずか13%が脆弱性を悪用する可能性をもたらしました。
それでも、ハードウェアの物理的な弱点を悪用する能力は新しいタイプのコンピューター攻撃であり、対処するのは非常に困難です。
Microprocessor ReportのDavid Kanterは、問題を次のように説明しています。
これは、数週間以内にほとんどのユーザーにパッチを作成してシステムアップデートを通じて配布できるソフトウェアに関するものではありません。 ここで、問題に真に対処するには、数十億ドルのDRAMモジュールを交換する必要があります。 実用的な観点からは、これは現実的ではありません。