UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【Webセキュリティ】Site Isolation(サイト分離)

Site Isolation(サイト分離)というワードを聞いて調べたところ以前調べたSpectreとMeltdownが関係あることがわかった

uga-box.hatenablog.com

ウェブサイトでSpectre のようなサイドチャネル攻撃を使えば、ブラウザが開いている他のサイトのデータやログイン情報を盗むことができてしまう

そのためChromeはこの攻撃による影響を軽減するため2018年にSite Isolation(サイト分離)というセキュリティ機能の対策を行っていた

developers-jp.googleblog.com

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 の精度を下げた話 f:id:uggds:20210507145921p:plain

performance.now() - Web API | MDN

また、最近ではGoogleのセキュリティチームによりSpectreのセキュリティ上の欠陥を確認できるサイトが公開されたらしい

https://leaky.page/

使い方がよくわからなかったので紹介記事をはってあとで見返せるようにする 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