サイト分離
Site Isolation
https://developer.chrome.com/blog/site-isolation?hl=ja
https://security.googleblog.com/2018/07/mitigating-spectre-with-site-isolation.html
ブラウザが異なる Web サイトのリソースを別々の プロセス で実行することで、異なるサイト間の攻撃を防ぐ セキュリティ 機構
異なるプロセスは独立したメモリ空間を持つため、異なるサイトで動くプログラムが互いに干渉することはない
現在のブラウザでは、マルチプロセスアーキテクチャ の設計において、サイトの単位によってプロセスを分離することが多い
具体的には、HTTP などの スキーム と有効な トップレベルドメイン とその 1 つ上のドメイン(eTLD+1)が同じであれば同サイト (Same-site)とし、同じプロセスで実行される
異なるサイトのことを Cross-site と呼ぶ
e.g.
table:_
URL1 URL2 同じサイト?
https://www.example.com:443 https://www.evil.com:443 Cross-site(eTLD+1 が異なる)
https://www.example.com:443 https://abc.example.com:443 Same-site
https://www.example.com:443 http://www.example.com:443 Cross-site(スキームが異なる)
https://www.example.com:443 https://www.example.com:80 Same-site(ポート番号は関係ない)
サイト分離は、2018 年に Spectre と Meltdown の 脆弱性 が発表されて以降、急激に重要性が高まった
Spectre: CPU の 予測実行機能(投機的実行)を悪用して、サイドチャネル攻撃 によって機密データを漏洩させる攻撃
投機的実行: CPU はプログラムの 命令 を実行するときに、将来の命令を予測して事前に実行できる
攻撃方法
あるプロセスの投機的実行で、機密データを CPU の キャッシュメモリ に読み込むにように仕向ける
別プロセスでえキャッシュの情報を参照することで、機密データを読み込む
Meltdown: CPU の保護機構をバイパスし、カーネルメモリ にアクセスできる脆弱性
保護機構: 通常、アプリケーションは OS のカーネルメモリにアクセスできないように保護されている
参考
https://www.fujitsu.com/jp/solutions/business-technology/security/secure/column/201802-1/