セキュリティ研究者のグループそのうちの数人は最初のメルトダウンとスペクターの脆弱性の検出に関与していました。 サードパーティのチャネルに対して新しいタイプの攻撃を開発しました。
この攻撃 ページ キャッシュ コンテンツの解析に基づいて行われます、取得した情報が含まれています オペレーティング システムがディスク、SSD ドライブ、その他のブロック デバイスにアクセスした結果として発生します。
スペクター攻撃とは異なり、 新しい脆弱性はハードウェアの問題によって引き起こされるものではありませんただし、ページ キャッシュのソフトウェア実装にのみ関係します。 そしてそれはLinuxで現れます (CVE-2019-5489), Windows とおそらく他の多くのオペレーティング システム。
mincore (Linux) および QueryWorkingSetEx (Windows) システム コールを操作して、システム ページ キャッシュ内のメモリ ページの存在を確認します。、権限のないローカル攻撃者は、他のプロセスによる一部のメモリ アクセスを追跡する可能性があります。
この攻撃により、ブロックレベルでアクセスを追跡できるようになります。 Linux では 4 マイクロ秒 (2 秒あたり 6.7 測定)、Windows では 446 ナノ秒 (223 秒あたり XNUMX 測定) の時間分解能で XNUMX キロバイトです。
ページ キャッシュには、実行可能ファイルからの抽出、共有ライブラリ、ディスクにロードされたデータ、メモリにミラーリングされたファイルなど、さまざまなデータが蓄積されます。 通常ドライブに保存され、オペレーティング システムやアプリケーションによって使用されるその他の情報。
この攻撃は何についてのものですか?
攻撃 これは、すべてのプロセスが共通のシステム ページ キャッシュを使用し、このキャッシュ内の情報の有無はデータ読み取りの遅延を変更することで判断できるという事実に基づいています。 ディスクを参照するか、上記のシステムコールを参照してください。
キャッシュ内のページは、複数のプロセスによって使用される仮想メモリの領域にミラーリングされる場合があります (たとえば、共有ライブラリのコピーが物理メモリに XNUMX つだけ存在し、それが異なるアプリケーションの仮想メモリにミラーリングされる場合があります)。
ディスクから一般的なデータをロードするときに、ページ キャッシュから情報を移動してデータを取り込むプロセスで、 他のアプリケーションの仮想メモリ内の同様のページの状態を分析できます。
mincore および QueryWorkingSetEx システム コールを使用すると、特定のアドレス範囲のどのメモリ ページがページ キャッシュに存在するかを即座に判断できるため、攻撃が大幅に簡素化されます。
監視されるブロック サイズ (4Kb) は反復ごとにコンテンツを決定するには大きすぎるため、この攻撃は秘密のデータ送信にのみ使用できます。
アルゴリズムの動作を追跡したり、既知のプロセスの典型的なメモリ アクセス パターンを評価したり、別のプロセスの進行状況を監視したりすることにより、暗号操作の強度を低下させます。
攻撃者を特定するメモリ内のデータのレイアウト (たとえば、バッファの基本的な内容が認証ダイアログを終了する時点で最初にわかっている場合、Arola はユーザーの介入中に恐喝トークンに基づいて判断できます)。
これに対する解決策はありますか?
はい、 Linux からのソリューションがすでに存在する場合 そして、この種の調査は、有害な意図を持つ他者が悪用する前に問題を検出するのに役立ちます。
Linux カーネルの場合、 修正はパッチとしてすでに利用可能です。 説明されており、 ここに文書化されています.
Windows 10 の場合、この問題は Insider Preview Build 18305 で修正されました。
研究者らが実証したローカル システム攻撃の実際の応用例には、隔離されたサンドボックスからのデータ送信チャネルの作成、画面上のインターフェイス要素 (認証ダイアログなど) の再作成、キーストロークの定義、および自動生成された一時パスワードの回復が含まれます。