サイバー攻撃 ― ネット世界の裏側で起きていること』の読書メモです。

読んだ動機

  • Amazon で見かけて気になった。

感想

  • 入門書という位置付けで、脆弱性の仕組みや攻撃手法のコードレベルでの解説とその他周辺知識を広く紹介した本。セキュリティの具体的な手法を学ぶときの最初の一冊に良さそう。
  • 有名ソフトウェアで見つかった脆弱性の実例や、セキュリティにまつわるコラムが充実していて読んでて面白かった。
  • 前提知識は一通り本書の中で説明されているけど、ある程度 C 言語や Web アプリの知識がないとコードサンプルを読むのは大変そう。

読書メモ

  • 第一章「サイバー攻撃で悪用される「脆弱性」とは何か」
    • IT に詳しくない方向けに、脆弱性の説明、ソフトウェアスタックの解説、ソフトウェア開発工程と各工程で起こりうる脆弱性の混入についての解説、など。
  • 第二章「サイバー攻撃は防げるか」
    • 脆弱性情報管理データベースの歴史と現状、脆弱性の深刻度の評価システム (CVSS) と脆弱性の種別、事例を用いた脆弱性発見から修正までの流れ、ゼロデイ攻撃、脆弱性数と信頼性の関係、など。
    • CVE 周りの仕組み、特に深刻度の算出方法を理解してなかったので勉強になった。評価方法の資料を読みたい。脆弱性の発見から修正までの流れは普段自分も関わることがあるので、読みながら少し胃が痛くなった。名前・ロゴ付き脆弱性に関するコラムが面白かった。ブランド化には色々思惑があるのね。
  • 第三章「プログラムの制御はいかにして乗っ取られるか」
    • C 言語によるプログラムの作成と関数呼び出しの仕組みの説明、スタックバッファオーバーフローによるリターンアドレスの書き換えとシェルコードの実行、実際のプロダクトにあった脆弱性とその修正方法、など。
  • 第四章「文字列の整形機能はいかにして攻撃に悪用されるのか」
    • printf 系関数の整形機能を使ったシェルコード実行の具体的な手法の解説、sudo にあった実際の脆弱性の紹介、その他脆弱性の種類の紹介、攻撃緩和技術 (データ実行防止、ASLR、サンドボックス)、ハニーポット、など。
    • 前章に比べてだいぶ込み入った手法の紹介で、読むのが難しくなってきた。書式指定子のダイレクトパラメータアクセスと %n は知らなかった。
  • 第五章「いかにして Web サイトに悪意あるコードが埋め込まれるか」
    • Web の構成技術の解説、クロスサイトスクリプティングの基本とその代表的な手法の紹介 (反射型 XSS、持続型 XSS、DOM Based XSS)、など。
  • 第六章「機密情報はいかにして盗まれるか」
    • データベースと SQL の基本、SQL インジェクションによる攻撃手法、Web サイトへの攻撃対策 (脆弱性診断ツール、WAF、CSP)、など。コラム面白かった。
  • 第七章「脆弱性と社会」
    • サイバー犯罪の理由、各種 Exploit Kit とマルウェアの紹介、犯罪ビジネスモデル、脆弱性報奨金制度とバグハント、脆弱性の売買、各種セキュリティコンテスト、サイバー戦争、など。EaaS (Exploit as a Service) というビジネスが存在することに驚いた。