「Web ブラウザセキュリティ Web アプリケーションの安全性を支える仕組みを整理する」[米内 貴志, 2021]を読みました。
感想
現在、徳丸本を読み進めているのですが、事例が若干古いと感じ、モダンなセキュリティ本を探した結果、この本読むことにしました。 あとラムダノートから紙で直接購入すると、pdf ももらえるので、「Engineers in Voyage」と「Go ならわかるシステムプログラミング」と一緒に購入しました(送料が 500 円で済むので)。
基礎的なセキュリティについての解説から、モダンなセキュリティの解説まで、行われる良書だと思いました。 まったくの初心者が読むには、文章構成(体系的に、脆弱性を列挙して、それぞれの対策について解説するのではない)を予測しずらいのとプロセス分離とモダンな xSS 攻撃はなじみがないので、若干読みにくいかもしれません。
タイトル通り、「ブラウザ」のセキュリティ本です。そのため、徳丸本として比較してブラウザに関することがメインです。 本書の構成は、第1章 「Web と Web セキュリティ」、第2章 「Origin を境界とした基本的な気候」、第3章「Web ブラウザのプロセス分離によるセキュリティ」、第4章「Cookie に関連した機構」、第5章「リソースの完全性と機密性に関する機構」、第6章「攻撃手法の発展」となっています。 それぞれの内容は以下のようになっています。
- 第1章 「Web と Web セキュリティ」
- Web セキュリティについての定義、防御方法の定義などを解説します
- 第2章 「Origin を境界とした基本的な気候」
- Same-Origin Policy(SOP)、Cros-Origin Resource Sharing(CORS)、の解説。セキュアヘッダ Content Security Policy(CSP)、Strict-Transport-Security(HTTP Strict Transport Security;HSTS)の解説
- 第3章「Web ブラウザのプロセス分離によるセキュリティ」
- 3つの抽象モデル(Browsing Instance、Site、Site Instance)をベースとした、Process-per-Site-Instance モデルについての説明
- 第4章「Cookie に関連した機構」
- 第5章「リソースの完全性と機密性に関する機構」
- リソースの完全性と機密性が損なわれる状況(通信経路中に攻撃者がいるとき、Web アプリ or サーバーが脆弱なとき)と Web ブラウザの対策(セキュアな通信、データの完全性の検証)
- 第6章「攻撃手法の発展」
個人開発の範疇だったり、普段の業務内容(セキュリティ関連、かそうじゃないか)だったり、CTF に参加することがあるかどうかによって、章ごとの難易度や実利用できるタイミングが異なると感じました。 具体的には、1、2、4 章は比較的簡単でよく使うし、3、5、6 章は難易度が高くあまり使わない気がしました。 オリジンと Cookie は、個人開発をしていれば使うだろうけど、完全性と機密性や攻撃手法あたりのお話は、セキュリティを専門にしないと使わないと思われます(自分は CTF をやったことがないので、CTF だったら使うのかもしれません。著者は CTF の企画もされている方なので、関連があるかもしません。)
なので、初心者だったり、徳丸本を完走するのがきつかったりしたら、1、2、4 章で十分な気がしました。 SOP、CORS に関連するシンプルなリクエスト、複雑なリクエスト、プリフライトリクエストの解説はわかりやすく、重要性についても触れられていてよかったです。 Cookie についても同様の感想を持ちました。 徳丸本だと、600 ページにもおよぶ内容の一部にしかないので、復習としてたすかりました。
他の箇所は、自分のセキュリティ知識のレベルが低いので理解しきれませんでした。 CTF に挑戦しようと思ったり、セキュリティの仕事に深く関わることがあれば読み直したいと思います。