Spook.js、ChromeのSpectreの脆弱性を悪用する新しい手法

研究者のグループ アメリカ、オーストラリア、イスラエルの大学からの報告によると 新しい攻撃テクニックについて説明しました 脆弱性を悪用することができます Chromiumを利用したブラウザのSpectreクラス。

コードネームによる攻撃 Spook.jsは、JavaScriptコードを実行するときに、サイト分離メカニズムをバイパスできるようにします 現在のプロセスのアドレス空間全体のコンテンツを読み取ります。つまり、他のタブで実行されているが、同じプロセスで処理されているページのデータにアクセスします。

Chromeはさまざまなプロセスでさまざまなサイトを立ち上げるため、実際の攻撃は、さまざまなユーザーがページをホストできるようにするサービスに限定されます。 Spook.jsの攻撃方法は、攻撃者がJavaScriptコードを埋め込むことができるページから可能にします、同じサイトのユーザーが開いた他のページの存在を確認します 機密情報を抽出します たとえば、クレデンシャルや銀行の詳細がWebフォームのオートコンプリートシステムに置き換えられました。

このメソッドの別のアプリケーションは、ブラウザプラグインへの攻撃です。 これにより、攻撃者が制御するプラグインがインストールされている場合、他のプラグインからデータを抽出できます。

Spook.jsは、Chromiumエンジンに基づくすべてのブラウザに適用できます。 Google Chrome、Microsoft Edge、Braveなどが含まれます。 研究者たちはまた、この方法をFirefoxで動作するように適合させることができると信じていますが、FirefoxエンジンはChromeとは大きく異なるため、このようなエクスプロイトを作成する作業は将来に任されています。

ブラウザを介した命令の投機的実行に関連する攻撃から保護するために、アドレス空間のセグメンテーションがChromeに実装されています。サンドボックスの分離により、JavaScriptは32ビットポインタでのみ機能し、重複しない4GBスタックでコントローラのメモリを共有できます。

プロセスのアドレス空間全体へのアクセスを整理し、32ビットの制限を回避するために、研究者はタイプの混乱手法を使用しました。これにより、JavaScriptエンジンが間違ったタイプのオブジェクトを処理し、64ビットを形成できるようになります。 32つのXNUMXビット値の組み合わせに基づくコード。

攻撃の本質は、JavaScriptエンジンで特別に細工された悪意のあるオブジェクトを処理することにより、配列にアクセスする命令の投機的実行につながる条件が作成されることです。 オブジェクトは、攻撃者によって制御されるフィールドが64ビットポインタが使用される領域に配置されるように選択されます。

悪意のあるオブジェクトの種類は処理中の配列の種類に対応していないため、通常の状態では、これらのアクションは、配列へのアクセスに使用されるコードの最適化解除メカニズムによってChromeでブロックされます。 この問題を解決するために、Type Confusion攻撃コードは「if」条件付きブロックに配置されます。これは通常の状態では起動しませんが、プロセッサがより多くのブランチを誤って予測した場合は投機的モードで実行されます。

その結果、プロセッサは生成された64ビットポインタに投機的にアクセスし、失敗した予測を判別した後に状態を元に戻しますが、実行トレースは共有キャッシュに設定され、キャッシュの内容をXNUMX番目から判別する方法を使用して復元できます。キャッシュされたデータとキャッシュされていないデータへのアクセス時間の変化を分析するパーティチャネル。

JavaScriptで利用可能なタイマーの精度が不十分な状況でキャッシュの内容を分析するために、Googleが提案した方法を使用します。この方法では、プロセッサで使用されるTree-PLRUキャッシュデータ排除戦略をだまし、サイクル数を増やすことで、キャッシュ内の値の有無による時間差が大幅に増加します。

研究者は、Chrome 89eで機能するプロトタイプエクスプロイトをリリースしましたn Inteli7-6700Kおよびi7-7600Uを搭載したシステム。 このエクスプロイトは、スペクター攻撃を実行するために以前にGoogleによって公開されたJavaScriptコードのプロトタイプを使用して作成されました。

最後に、研究者は次のように述べています IntelおよびAppleM1プロセッサに基づくシステムの実用的なエクスプロイトを準備することができました、500バイト/秒の速度と96%の精度で読み取られたメモリを整理する機会が与えられます。 この方法はAMDプロセッサに適用できるはずですが、完全に機能するエクスプロイトを準備することはできませんでした。

出典 https://www.spookjs.com


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。