各ブラウザベンダーがとっている対応について今回は書く。いっても大したことではないのだが。Isolationを有効化FirefoxSharedArrayBufferのデフォルト無効化とPerformance.nowの解像度を20μsまで下げるSafariSharedArrayBufferのデフォルト無効化とPerformance.nowの解像度を1msまで下げるSharedArrayBufferとPerformance.nowの関係なぜブラウザベンダーがSharedArrayBufferのデフォルト無効化とPerformance.nowの解像度を下げるかというと、今回の脆弱性の攻撃手法に関係がある。SpectreとMeltdownは両方共、攻撃時にL1キャッシュメモリの推測を行う必要がある。(具体的には、メモリアクセスを行い、かかった時間を計測してキャッシュされている値を推測する。これをSide-Channel-Attackと呼ぶ。)このSide-Channel-AttackをSharedArrayBufferとperformance.nowを使うことでかなり効率化できる。time.こんな感じでワーカースレッドでクロックを実装し、performance.nowの高精度タイマーでSharedArrayBufferに結果を書き込むことで、高精度なクロックを実装することができる。このクロックを使うことで、そこそこ正確なメモリアクセスの相対時間を計測することができ、キャッシュメモリのチェックに利用することが可能であった。このソフトウェアクロックの実装精度を下げるためにSharedArrayBufferの無効化とperformance.nowの精度変更が行われた。Isolation各ドメインでレンダリングプロセスを分離する。メモリ使用量が20%ほど増える。それ以外の部分での対応、BTBの制御やOut-of-orderの抑制は不可能かパフォーマンスペナルティがでかすぎるため、Side-Channel-Attackを非効率化することにとりあえず重点が置かれている。まとめこれも完全な対応ではない上に、SharedArrayBufferが使えなくなるというWebの後退が起きてしまった。2はてなブログをはじめよう!brn_takeさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。