書籍の概要
過去のバグバウンティで見つかったバグと内容を紹介している本。
本書で紹介されている脆弱性
- Open Redirect
- HPP(HTTP Parameter pollution)
- CSRF(Cross-Site Request Forgery)
- HTML Injection and Contents Spoofing
- CRLF injection(Carriage Return Line Feed Injection)
- XSS(Cross Site Scripting)
- Template Injection
- SQLi(SQL Injection)
- SSRF(Server Side Request Forgery)
- XXE(XML External Entity)
- RCE(Remote Code Execution)
- Buffer Overflow
- Subdomain TakeOver
- IDOR(Insecure Direct Object Reference)
- レース条件やOAuth、アプリケーションロジックの脆弱性など
本を読む目的
- バグバウンティやCTFに興味がでてきたため
- 全体像を知りたかったため
取り入れようと思ったこと
- 本書以外でも脆弱性発見、利用された例を探し、手を動かすこと
例えば、XSSだけ見ても様々なパターンがあるため、他にも多数の例を見た方が効率的に学習できそう - 脆弱性が含まれていると感じたら決して諦めないこと
- 脆弱性のインパクトを正しく伝えること
インパクトの見積りを誤って小さく伝えるとバウンティが下がる、もしくは値しないものとなる
気づき
正直、理解が追いついていない箇所が多く、自分の無知さを痛感しました。
よくわからないことがわかったので、読むときは「各脆弱性発見の勘どころ」と「脆弱性の意味」を理解することにとどめました。実際、目的としていた「全体像を把握する」は達成できました。
バグハンターのフロントエンド、バックエンド、ネットワーク、XML、インフラ、サードパーティ、各種設定などアプリケーション開発に関わる全てから脆弱性を探す姿勢は素晴らしく、尊敬できます。
とはいえ、本書は2014~2017年の脆弱性が多く、(知識としては必要でも)いまはどこまで重要視されているかを判断できていません。なので、2023のOWASP TOP10などからも脆弱性トレンドを追っていこうと思います。
ここからは余談です。
最近は静的解析ツールによって気づけるケースが増えてはいるものの、まだまだ実装者やレビュアーのスキル依存になっていることも多いです。また、脆弱性があったとして、どのように攻撃されるのかイメージできていないケースが多いです。外部に依頼した脆弱性診断の結果を見ても「ふむふむ…何となくやばいから修正するか」となることもありました。
セキュリティエンジニアがいる組織であれば適宜コミュニケーションを取れるため問題ないと思いますが、スタートアップのように「セキュリティまで手が回っていない組織」の場合、この本の内容を知ることは正しくリスクを定義するためにも必要だと感じました。
あとがき
アプリケーション開発にどう活かしていけるか?という観点では実力不足なので、
今後はコードベースで身につけるようにします。