『Webブラウザセキュリティ』
https://gyazo.com/e057b84731a7e61bc63ba52254bb272d
米内貴志著
2021/1/15発行
ラムダノート
仕様に忠実なので信頼できる
場合分けが明瞭でわかりやすい
ちゃんと構造化されているので理解しやすい
/mrsekut-book-4908686106
ラボ環境
https://github.com/LambdaNote/support-browsersecurity
security系のsample codeあるの助かるmrsekut.icon
序文
「Webセキュリティ」を
「Webシステムのセキュリティ」と
「Webブラウザのセキュリティ」にわけて考える
後者の関心は以下の4つに集約される
リソース間の論理的な隔離をどう実現するか
2章
リソース間のプロセスレベルの隔離をどう実現するか
3章
Cookieをどうセキュアに取り扱うか
4章
出入りするリソースの信頼性をどう確保するか
5章
第1章 WebとWebセキュリティ
/mrsekut-book-4908686106/022 (第1章 WebとWebセキュリティ)
URL/HTTP/HTMLの基本的なことの概要
clientとserverに分けた時に、
後者のセキュリティに関する本は
徳丸本 第2版
The Web Application Hacker's Handbook
などがある
一方で、client側や、client/serverを繋ぐ部分のセキュリティの本はあまりない
この本がそれに相当する
だからタイトルが「Webブラウザセキュリティ」のようになってる
第2章 Origin を境界とした基本的な機構
/mrsekut-book-4908686106/044 (第2章 Origin を境界とした基本的な機構)
OriginからXSSまで
Web resourceから別のWeb resourceに対する操作
Same-Origin Policy
CORS
CORSの設定を入れて、見れるようになるのかの確認をしたmrsekut.icon
https://github.com/mrsekut/support-browsersecurity/commit/ded5ec61f2935d7762cdec44ac791d212963acbf
この辺の質問に答えられるか?
Allowヘッダなどを設定したがiframeで取得したものにJSでアクセスできないのはなぜか?
なぜPreflight requestが必要なのか?
Simple RequestにPOSTが含まれているのはなぜか?
CSRFのためのSimple Requestということであれば、POSTもpreflightした方がいいはず
第3章 Webブラウザのプロセス分離によるセキュリティ
/mrsekut-book-4908686106/102 (第3章 Webブラウザのプロセス分離によるセキュリティ)
ここからmrsekut.icon
3.1 Webブラウザが単一のプロセスで動作することの問題
3.2 プロセスを分離した場合の問題
3.3 Process-per-Browsing-Instanceモデルに対する攻撃
3.4 Process-per-Site-Instanceモデルとその補助機能
3.5 まとめ
第4章 Cookie に関連した機構
/mrsekut-book-4908686106/128 (第4章 Cookieに関連した機構)
途中まで読んだmrsekut.icon
4.2 属性によるCookieの保護
4.3 Cookieの性質が引き起こす問題とCookieの今後
4.4 まとめ
第5章 リソースの完全性と機密性に関連する機構
/mrsekut-book-4908686106/150 (第5章 リソースの完全性と機密性に関連する機構)
clientに届くresourceが改善されていないという保証はない
その辺のセキュリティの話が5章の内容
Strict-Transport-Security
web browserに届くresourceの完全性と機密性に関して
/mrsekut-book-4908686106/151
届いた時点で汚染されていれば、browser内のセキュリティ対策は意味をなさない
CSPとか徹底していても、「信頼できるresource」として解釈される
XSSも簡単に仕込まれることになる
完全性や機密性が損なわれるパターン
通信経路中に攻撃者が存在する
配信元のserverが脆弱である
これらの問題に対してweb browserができること
機密性
通信経路
セキュアな通信を使うように働きかける
server
無理
完全性
通信経路
セキュアな通信を使うように働きかける
server
受け取ったデータの完全性を可能な範囲で検証する
/mrsekut-book-4908686106/161から
5.3 Mixed Contentと安全でないリクエストのアップグレード
5.4 Webブラウザが受け取るデータの完全性とSRI
5.5 Secure Context
5.6 まとめ
第6章 攻撃手法の発展
/mrsekut-book-4908686106/170 (第6章 攻撃手法の発展)
ここからmrsekut.icon
6.1 3種類の攻撃手法
6.2 CSP下でのXSS
6.3 Scriptless Attack
6.4 サイドチャネル攻撃
6.5 まとめ
#スクボ読書化した本