56
ASLR の終焉: 「AnC」攻撃は少なくとも 22 の CPU マイクロアーキテクチャで ASLR を回避

ブラウザ内のデータポインタのエントロピーを削減するAnC

ブラウザ内のデータポインタのエントロピーを削減するAnC

オランダのフリー大学のセキュリティ研究者5人が、現代のオペレーティングシステムにおける最も重要なセキュリティメカニズムの一つであるアドレス空間配置ランダム化(ASLR)を回避できる攻撃を開発しました。この攻撃は、Intel、AMD、そしてSamsung、Nvidia、AllwinnerなどのARMチップメーカーを含む、少なくとも22種類のCPUマイクロアーキテクチャに影響を与えます。

ASLR保護

ASLRは、システムのメモリ内でアプリケーションのコードとデータの配置をランダム化することで、潜在的な攻撃者がアプリケーションやシステム自体に侵入することを困難にします。オランダの研究者によると、ASLRは過去にも破られた事例がありますが、ブラウザにとって依然として有効な防御策であると考えられてきました。

昨年、研究者らは、JavaScript を利用する攻撃者がサイドチャネル攻撃の脆弱性を利用して Microsoft Edge の ASLR 保護を突破できることを示しました。Microsoft は、Edge のメモリ重複排除機能を無効にすることで、この攻撃を可能にした特定の脆弱性を修正しました。

しかし、研究者たちは後に、現在のCPUマイクロアーキテクチャのメモリ管理方法により、ASLR保護が限界に達していることを発見しました。これにより、Edge攻撃の場合のように、特定のソフトウェア機能に依存せずにJavaScriptからASLRを完全にデランダム化できる攻撃を作成することができました。

AnC攻撃

AnC 攻撃を開発したオランダの研究者によると、CPU のメモリ管理ユニット (MMU) がコードを効率的に実行するために使用するのと同じキャッシュ階層が、JavaScript などのブラウザ内の信頼できないコードでも共有されています。

この設定により、サイドチャネル攻撃はMMUによるページテーブルウォーク中にどのメモリ位置がアクセスされたかを検出できます。研究者によると、AnC攻撃は4ページテーブルページ全てにおいて、MMUがアクセスしたオフセットを特定できます。各ページ内のオフセットは9ビットのエントロピーを破壊します。つまり、36ビットのエントロピーを持つ「完璧な」ASLR実装でさえ安全ではないということです。

研究者らは、AnC 攻撃をネイティブに実装して 22 種類の CPU マイクロアーキテクチャでテストするとともに、JavaScript で実装して Chrome および Firefox ブラウザでテストしました。

Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。

正確なJavaScriptタイマー

AnC攻撃は、キャッシュされたメモリアクセスとキャッシュされていないメモリアクセスを区別するために、JavaScriptの正確なタイマーを必要とします。主要ブラウザは最近、JavaScriptの正確なタイマーを破り、それを利用した他のキャッシュ攻撃を阻止しました。

オランダの研究者らは、この緩和策を回避する2つの新しいタイマーを構築したと述べ、AnC攻撃を可能にするだけでなく、今では同様に機能する古いキャッシュ攻撃を復活させることもできるようになったという。

22 種類の CPU アーキテクチャで AnC を動作させる

研究者たちは、様々なCPUマイクロアーキテクチャがそれぞれ異なる動作をするページテーブルキャッシュを実装していることに気付きました。そのため、AnC攻撃を全てのCPUマイクロアーキテクチャで確実に実行させるには、キャッシュをフラッシュする必要があると指摘しました。しかし、これらのキャッシュは適切に文書化されていないため、22種類のマイクロアーキテクチャそれぞれについて、ページテーブルキャッシュの特性をリバースエンジニアリングする必要がありました。

オランダ人研究者によるリバースエンジニアリングは、AnC攻撃だけでなく、22種類のCPUマイクロアーキテクチャすべてにおいてキャッシュをフラッシュする必要がある他のあらゆるキャッシュ攻撃にも有効です。これらの攻撃の一つがRowHammer攻撃で、これはDRAMの欠陥を悪用してページテーブルを操作するものです。

新しいハードウェアアーキテクチャがなければ緩和策は限られる

フリー大学の研究者たちは、AnCが「唯一」動作するのは上記の22種類のCPUアーキテクチャであると結論付けました。これは、彼らがテストしたのがこれらのアーキテクチャのみだったためです。しかし、この攻撃はさらに多くのアーキテクチャで動作し、既存のCPU全てを網羅する可能性も秘めています。研究者によると、この攻撃は彼らがテストした全てのマイクロアーキテクチャで動作したとのことですが、テストされなかったアーキテクチャについては楽観視できません。

研究者や数社のブラウザベンダーは、ASLR はもはやブラウザにとって十分な防御策ではないことに同意した。

AnCは、現在のマイクロプロセッサがコードを効率的に実行する方法を悪用するため、このアーキテクチャが全面的に見直されるまでは、すべてのユーザーを保護できる迅速な解決策はありません。最終的には、ブラウザベンダーがこれを回避する別のメカニズムを開発するかもしれません。しかし、攻撃はソフトウェアではなくハードウェアの機能を悪用するため、実現は非常に困難になる可能性があります。通常、ハードウェアの欠陥はすべてのソフトウェア保護を回避できます。

ブラウザベンダーが攻撃を軽減するソリューションを開発するまでは(仮にそのようなソリューションが実現可能だとしても)、ユーザーはブラウザ経由で発生する可能性のある攻撃のほとんどを阻止するために、NoScriptなどのアドオンを使用することで対処できます。しかし、多くのウェブサイトがJavaScriptを正常に動作させる必要があるため、最近ではこのアドオンには大きなコストがかかります。

10億台のAndroidデバイスが舞台恐怖症に対してこれまで以上に脆弱

注目すべきは、脆弱性が公開された直後、GoogleがASLR保護でStagefright攻撃を阻止できると発言したことです。たとえそれが事実だとしても(そして最終的には、ほとんどのAndroidデバイスではそうではなかったことが判明しましたが)、ASLRなどのエクスプロイト対策ソリューションは一時的な保護に過ぎません。長期的な解決策は、デバイスにパッチを適用することです。しかし、Androidの長期的なアップデート問題とAndroidメーカーの不注意により、古いAndroidスマートフォンを使用している約10億人のユーザーが、ASLRをバイパスするAnC攻撃によって可能になるStagefright攻撃に対して脆弱な状態になっています。

Googleは、自社のマルウェア対策サービス「Verify apps」を活用して、これらのエクスプロイトを利用した攻撃を阻止しようとするでしょう。しかし、これは本質的には、攻撃者が新たな攻撃方法を見つけ出すことと、Googleが新たな攻撃が甚大な被害をもたらす前にそれを解明しようとすることとの間で、いたちごっことなるでしょう(典型的なマルウェアとウイルス対策のいたちごっこに似ています)。

壊滅的なハードウェアの欠陥への注目が高まる

AnCは、ハードウェアの欠陥を悪用する数少ない主要な攻撃の一つであり、基盤となるハードウェアを大幅に変更しなければ修正できません。こうした最近のハードウェア攻撃には、最新のDRAMの高密度セルを悪用するRowHammer攻撃、マルウェアがUSBデバイスに組み込まれたファームウェアを再プログラムし、他のコンピュータに拡散するBadUSB攻撃、そしてIntelの分岐予測機能で最近発見されたハードウェアの欠陥「Jump over ASLR」などが挙げられます。これもまた、攻撃者がASLR保護を回避できるものです。

つい最近まで、チップアーキテクチャの安全性に関する研究はそれほど盛んではありませんでした。これは、ハードウェアの一部をリバースエンジニアリングしなければ脆弱性を見つけるのがはるかに困難になったことが一因です。すべてのチップメーカーが、特に最新世代のチップについて、適切なドキュメントを提供しているわけではありません。そのため、研究者はチップの仕組みを理解することさえ困難であり、ましてやセキュリティ上の脆弱性を見つけることは困難です。

一方、低レベルでのミスが発生する機会が少ないため、ハードウェアの欠陥ははるかに稀であると考えられてきました。しかし、AnC攻撃やRowHammer攻撃が示すように、チップの設計そのものが特定の攻撃に対して脆弱な場合もあります。

ハードウェアの欠陥は、より多くの研究作業と資金を必要とする場合がありますが、発見されたときの影響は通常、はるかに深刻です。前述のようなハードウェアの欠陥の中には、ほぼすべての人に影響を与え、ほとんど、あるいはすべてのソフトウェア保護を回避し、ほとんどの人が新しいハードウェアを購入するだけで脆弱性を軽減するには何年もかかるものもあります。そのため、ハードウェアの欠陥は、セキュリティ研究者と悪意のある攻撃者の両方にとって、非常に格好の標的となります。

ルシアン・アルマスは、Tom's Hardware USの寄稿ライターです。ソフトウェア関連のニュースやプライバシーとセキュリティに関する問題を取り上げています。