JavaScriptでASLRを無効化する攻撃「AnC」

2017年2月19日 18:42

あるAnonymous Coward 曰く、 x86/ARM CPUの多くが行っているメモリ管理の仕組みを悪用し、アドレス空間配置のランダム化 (ASLR)をJavaScriptから無効化する攻撃が公表された(PC Watchの記事)。 ASLRはアドレス予測を困難にすることで攻撃を防ぐという技術で、2000年代前半から実装が進んでいる。ローカルからの攻撃により無効化する手法も発見されているが、Webブラウザーの脆弱性緩和などには有効な対策と考えられていた。記事によれば、CPUのキャッシュ階層を利用した「ASLR⊕Cache (AnC)」と名付けられた攻撃により、100秒未満という短い時間でアドレスのランダム化が解除されてしまったという。AnCはハードウェアの仕組みを使用した攻撃のため、ユーザー側では対処不能としている。 正直タレコミ子には説明が難しすぎて理解不能なのだが、技術レベルの高い攻撃者であれば公開された論文を元に数週間程度で攻撃コードが再現できるという事なので、今後はメモリ周りの脆弱性に一層注意が必要かもしれない。

 AnCはソフトウェアの弱点を利用するものではないため修正は容易ではないが、CPU/OS/ブラウザーベンダーに対しては公表前に短期的・長期的な緩和策が通知されている。実際にAppleはiOS 10.2.1でWebKitの強化を行ったとのこと。ユーザーレベルでは信頼できないソースからのスクリプト実行をブロックするといった対策しかできないが、有効な攻撃を行うためには別途ブラウザーの脆弱性を利用することになるため、セキュリティ更新プログラム適用の重要性も増しているといえるだろう(VUSecの記事The Registerの記事Ars Technicaの記事)。

関連記事

最新記事