本業のアレコレも一旦落ち着いてきて余裕ができました。
前から気になっていた書籍を現在読んでいます。
半分くらいは読了しましたので、その範囲でレビューしますね。
『リアルワールドバグハンティング ―ハッキング事例から学ぶウェブの脆弱性』
出版社:オライリージャパン 、 著者:Peter Yaworski
おススメ度:★★★★★★★★★★
最近読んだ書籍のなかでも一番良いかも。
世界的に有名なwebアプリケーションの致命的なバグ(プログラムの欠陥)を実例で紹介した書籍です。
Twitter、Uber、Google、Yahooなどなどで、実際にあったセキュリティ上のバグがリアルに紹介されています。
リアル視点なセキュリティの日本語書籍は本当に少ないので貴重な参考資料になるでしょう。
なお紹介されている企業の脆弱性は2014年前後に発見されたもので、そもそもが古く、当然2022年7月現在は修正済みです。
・webアプリケーションのハッキングに興味がある人
・安全なアプリケーション開発に興味がある人
・幅広くバグを知りたい人
に特にオススメ。
以下、いつもどおり概要だけつまみます。
詳しく知りたい人は自分で買ってください。
概要
章立て(前半)
・バグバウンティの概要
・HTTPプロトコルの説明
・脆弱性の紹介・・・
と、ひたすら脆弱性の紹介が続きます。
内容としては「脆弱性の概要の解説→バグの実例を3つほど→その対策」と章ごとに共通して話が進みます。
バグバウンティ・プログラム
善意のハッカーから企業のサービスに脆弱性の報告が上げられ、企業が報酬を支払う取り組みのことです、簡単にまとめると。
ハッキング(正確にはクラッキングでしょうか)される前に未然に被害を防ぐ意義があります。
書籍ではケースごとの報奨金も書いてありました。
登場する脆弱性(2章~9章まで)
オープンリダイレクト、HTTPパラメータ汚染、CSRF、HTMLインジェクション、CR LFインジェクション、XSS、テンプレートインジェクション、SQLインジェクション。
ハッキングやインターネット犯罪に興味がある人なら聞いたことがあるかも。
僕も概略は知っておりましたが具体的なイメージがわかずに悶々としておりました。
ネットで調べても「こんなハッキング手法ですよー」程度のイラストしか書かれておりませんので、ハッキングするための動作やJavaScript コードが詳しく分かりませんでした。
「インジェクション」という単語に馴染みがないかもですが、要するに、入力するパラメータに、サーバー側の処理が混乱するような構文をねじ込むことです。
ハッカー側としてはあくまで個人ユーザーとして介入を試みるわけなので、サーバー側の詳しいソースコードは一切分からない。跳ね返ってくる反応をみてサーバーの内部動作を「推察」しバグやセキュリティホールを確かめます。
歴戦のハッカーといえどもうまくいかずに失敗もしますし、他のハッカーと手を組んで取り掛かるケースがあったり。
あったほうが良いプログラミング知識
まったくwebアプリケーション開発の知識がないと原理の理解は難しいかもですが、コードがゴリゴリに紹介されているわけではないので、全体としては全然読めます。
・HTML →全体的に多め
・JavaScript →多め
・SQL → SQLインジェクションで
・Pythonスクリプト→軽め
が前半戦で使われる言語としてはメインです。
コードとしても特に長くはなく、ちょっとしたスクリプト程度でした。
ブログ構築でこれらの言語に軽く触った程度でも全然読めます。
個人的見解
僕としてはかなりの良著だと思うのですが、日本の技術系界隈では全く話題になっておらず、悲しいくらい売れてないと思います・・・・。
ハッカー達の執念といいますか。
「何でそんなことが思いつくのか」というレベルの発想で大企業のシステムに外部から介入しようとしてきます。
似たような『web hacking101』という同じ著者の書籍もあるのですが、日本語訳は未だになくて、この領域の関心の薄さが表れている気がするのです。
個人がコンテンツを作って発信できる時代、の裏側といいますか、ハッカーもといクラッカー目線でもセキュリティを学ぶべきと感じましたね。
語郎