Site Isolation(サイト分離)というワードを聞いて調べたところ以前調べたSpectreとMeltdownが関係あることがわかった
ウェブサイトでSpectre のようなサイドチャネル攻撃を使えば、ブラウザが開いている他のサイトのデータやログイン情報を盗むことができてしまう
そのためChromeはこの攻撃による影響を軽減するため2018年にSite Isolation(サイト分離)というセキュリティ機能の対策を行っていた
Site Isolation によって各レンダラープロセスの影響範囲を 1 つのサイトのドキュメントに制限することでSpectreのようなプロセス間の攻撃、サイト間の攻撃を軽減することができる
ただ、イメージやスクリプトなどのサブリソースとしてクロスサイト URL をリクエストしてそこから情報にアクセスすることができてしまう
そのため、 Cross-Origin Read Blocking(CORB)という機能もSite Isolation の対策として含まれている
CORBは不要な特定のクロスオリジンネットワーク応答をWebページに配信しないように設計されていて、たとえば<script>
または<img>
タグから要求されたクロスオリジンtext / html応答をブロックし、代わりに空の応答に置き換える
開発者はSite Isolation自体はあまり意識しなくてよいが、CORBに関しては正しいMIMEタイプとX-Content-Type-Options:nosniff
をつけてちゃんと保護されるようにしなくてはならない
X-Content-Type-Options:nosniff
については以前調べていた
uga-box.hatenablog.com
いままでは Side Channel 攻撃への対策が暫定対応だったみたいで、例えばperformance.now の精度を下げて正確な時間をわからなくするなどの対策が行われていたらしいが、Site Isolationでより恒久的にプロテクトされたウェブになった
performance.now の精度を下げた話
performance.now() - Web API | MDN
また、最近ではGoogleのセキュリティチームによりSpectreのセキュリティ上の欠陥を確認できるサイトが公開されたらしい
使い方がよくわからなかったので紹介記事をはってあとで見返せるようにする https://www.hardwaretimes.com/researchers-design-website-that-can-steal-data-from-intel-and-apple-m1-cpus-using-web-browsers/
参考
https://developers-jp.googleblog.com/2019/11/site-isolation.html