ニュース
既存のx86/ARM CPUほぼ全てに通用するJavaScript攻撃が発見される
~アドレス空間配置のランダム化を突破
2017年2月17日 13:24
アムステルダム自由大学(VU)内のセキュリティグループVUSecは、JavaScriptを用いて「アドレス空間配置のランダム化(Address Space Layout Randomization: ASLR)」を無効化する攻撃を公開した。
ASLRは、仮想アドレス空間内のアプリケーションのコードおよびデータ(exeデータやモジュールなど)の場所をランダム化してクラッキングを困難にする技術で、バッファオーバーフロー攻撃などに有効な対策として知られている。
これまで、ネイティブコードを実行できるローカルからの攻撃などにより、カーネルレベルのASLRを無効化できることが分かっていたものの、Webブラウザなどの環境では、優れた防御策であるとされてきた。
今回発見された新たな攻撃方法は、現行の多くのプロセッサが行なっているメモリ管理を利用したもので、ソフトウェアに依存せず、JavaScriptからASLRの完全な非ランダム化を実現する。VUSecは、ASLRというセキュリティ技術そのものの限界を示すものであるとしている。
最新プロセッサのメモリ管理ユニット(MMU)は、ページテーブルウォークの性能を向上させるため、プロセッサのキャッシュ階層を使用しており、効率的なコードの実行を実現するための基本的な実装となっている。
VUSecでは、このキャッシュ階層が、ブラウザで実行されているJavaScriptコードなど、信頼できないアプリケーションでも共有されている点に着目し、EVICT+TIMEキャッシュと呼ばれるサイドチャネル攻撃を構築。これは、MMUによって実行されるページテーブルウォークの間に、ページテーブルページのどの位置にアクセスされるかを検出することができるという。
例えば、x86_64アーキテクチャでは、4つのページテーブルページのそれぞれについて、MMUによってアクセスされるオフセットを検出でき、各ページ内のオフセットは9bitのエントロピーを破壊するため、36bitのエントロピーを備えた“完全なASLR”の実装でも安全ではないとしている。
VUSecは、「ASLR Cache(AnC)」と称するこの攻撃を、ネイティブコードおよびJavaScriptで実装。検証では、ネイティブ版を使用して、22種のマイクロアーキテクチャでMMUの信号観測を行ない、JavaScript版を使用して、FirefoxとChromeでコードとヒープポインタの検索を行なっている。
その結果、Intel/AMD/ARMの22個のプロセッサ全てで、MMU信号が観測されたという。
CPU | アーキテクチャ | 年 |
---|---|---|
Intel Xeon E3-1240 v5 | Skylake | 2015 |
Intel Core i7-6700K | Skylake | 2015 |
Intel Celeron N2840 | Silvermont | 2014 |
Intel Xeon E5-2658 v2 | Ivy Bridge EP | 2013 |
Intel Atom C2750 | Silvermont | 2013 |
Intel Core i7-4500U | Haswell | 2013 |
Intel Core i7-3632QM | Ivy Bridge | 2012 |
Intel Core i7-2620QM | Sandy Bridge | 2011 |
Intel Core i5 M480 | Westmere | 2010 |
Intel Core i7 920 | Nehalem | 2008 |
AMD FX-8350 8-Core | Piledriver | 2012 |
AMD FX-8320 8-Core | Piledriver | 2012 |
AMD FX-8120 8-Core | Bulldozer | 2011 |
AMD Athlon II 640 X4 | K10 | 2010 |
AMD E-350 | Bobcat | 2010 |
AMD Phenom 9550 4-Core | K10 | 2008 |
Allwinner A64 | ARM Cortex A53 | 2016 |
Samsung Exynos 5800 | ARM Cortex A15 | 2014 |
Samsung Exynos 5800 | ARM Cortex A7 | 2014 |
Nvidia Tegra K1 CD580M-A1 | ARM Cortex A15 | 2014 |
Nvidia Tegra K1 CD570M-A1 | ARM Cortex A15; LPAE | 2014 |
またVUSecは、AnC攻撃を実現するため、Webブラウザが設けているJavaScriptタイマーのブロック回避と、プロセッサごとに異なるページテーブルキャッシュのリバースエンジニアリングを行なっており、それらもブラウザ上の既知のキャッシュ攻撃や、Rowhammer問題(DRAMスケーリングの課題と打開策)を用いたページテーブルを操作する攻撃など、動作にキャッシュのフラッシュを必要とする攻撃に応用できるとしている。
実際にJavaScriptによるAnC攻撃では、100秒未満という現実的な時間でFirefoxで64bitエントロピーのランダマイズ無効化を達成している。
VUSecでは、ページテーブルキャッシュをリバースエンジニアリングするライブラリとして、AnCのネイティブバージョンをgithub上で公開している。
悪意ある攻撃者によるAnCを用いた攻撃を防ぐため、JavaScriptバージョンのAnCを公開する予定はないとしているが、高度な技術レベルを持つ攻撃者であれば、公開された論文を基に、数週間でAnC攻撃用のJavaScriptを再現できるとの予測を示している。
VUSecでは、AnCはハードウェアの実装を悪用しているため、ユーザーができる対策としては「NoScript」などのプラグインを使用してJavaScriptをブロックし、信頼できないJavaScriptコードが実行されるのを防ぐなどの対処を行なうしかないとしている。
楽天市場 売れ筋ランキング
Amazon売れ筋ランキング
Anker Soundcore Life P2 Mini【完全ワイヤレスイヤホン / Bluetooth5.3対応 / IPX5防水規格 / 最大32時間音楽再生 / 専用アプリ対応】ブラック
¥4,490
Anker Soundcore P40i (Bluetooth 5.3) 【完全ワイヤレスイヤホン/ウルトラノイズキャンセリング 2.0 / マルチポイント接続 / 最大60時間再生 / PSE技術基準適合】ブラック
¥7,990
イヤホン bluetooth ワイヤレスイヤホン 48時間の再生時間 重低音 LEDディスプレイ表示 小型/軽量 IPX7防水 ブルートゥース 接続瞬時 Hi-Fi ブルートゥースイヤホン Type-C 急速充電 ぶるーとぅーすイヤホン iPhone/Android/Pad適用 スポーツ/通勤/通学/WEB会議 (ホワイト)
¥39,999
【VGP 2025 金賞】EarFun Air Pro 4 ワイヤレスイヤホン Bluetooth 5.4/50dBアダプティブ式 ハイブリッドANC/最先端チップ「QCC3091」aptX Losslessに対応/ハイレゾ LDAC対応/Snapdragon Sound™ に対応/Auracast™に対応/52時間連続再生【6マイクAI 通話/PSE認証済み】 装着検出機能 (ブラック)
¥9,990
EarPods with 3.5 mm Headphone Plug
¥2,668
キリン 自然が磨いた天然水 ラベルレス 水 2リットル 9本 国産 天然水 ミネラルウォーター ペットボトル 軟水
¥2,722
コカ・コーラ い・ろ・は・す天然水ラベルレス 560ml ×24本
¥2,131
【Amazon.co.jp限定】 ミネラルストロング 伊藤園 ラベルレス 強炭酸水 500ml×24本 シリカ含有
¥1,712
by Amazon 天然水 ラベルレス 500ml ×24本 富士山の天然水 バナジウム含有 水 ミネラルウォーター ペットボトル 静岡県産 500ミリリットル (Smart Basic)
¥1,452
い・ろ・は・すラベルレス 2LPET ×8本 【Amazon.co.jp限定】
¥1,168
葬送のフリーレン(14) (少年サンデーコミックス)
¥583
薬屋のひとりごと 15巻 (デジタル版ビッグガンガンコミックス)
¥770
ブルーロック(33) (週刊少年マガジンコミックス)
¥594
無職転生 ~異世界行ったら本気だす~ 22 (MFコミックス フラッパーシリーズ)
¥733
黄泉のツガイ 9巻 (デジタル版ガンガンコミックス)
¥590