内容紹介
すべてのWebプログラマが知っておくべき、攻撃と防御の知識を徹底解説!
Webアプリケーションにはなぜ脆弱性が生まれるのか? 脆弱性を解消するにはどうプログラミングすればよいか?
PHPサンプルへの攻撃を通して脆弱性が生まれる原理と具体的な対処方法が学べる!
Webアプリケーションセキュリティの第一人者である著者が、正確な知識を丁寧に教える待望の書。
あなたの作ったWebアプリでセキュリティ被害を起こさないための全9章
●第1章 Webアプリケーションの脆弱性とは
脆弱性とは、「悪用できるバグ」/脆弱性があるとなぜ駄目なのか/脆弱性が生まれる理由/セキュリティバグとセキュリティ機能/
本書の構成
●第2章 実習環境のセットアップ
実習環境の概要/VMware Playerのインストール/仮想マシンのインストールと動作確認/Fiddlerのインストール
●第3章 Webセキュリティの基礎 ~HTTP、セッション管理、同一生成元ポリシー~
HTTPとセッション管理/受動的攻撃と同一生成元ポリシー
●第4章 Webアプリケーションの機能別に見るセキュリティバグ
Webアプリケーションの機能と脆弱性の対応/入力処理とセキュリティ/表示処理に伴う問題/SQL呼び出しに伴う脆弱性/
「重要な処理」の際に混入する脆弱性/セッション管理の不備/リダイレクト処理にまつわる脆弱性/クッキー出力にまつわる脆弱性/
メール送信の問題/ファイルアクセスにまつわる問題/OSコマンド呼び出しの際に発生する脆弱性/ファイルアップロードにまつわる問題/
インクルードにまつわる問題/evalにまつわる問題/共有資源に関する問題
●第5章 代表的なセキュリティ機能
認証/アカウント管理/認可/ログ出力
●第6章 文字コードとセキュリティ
文字コードとセキュリティの概要/文字集合/文字エンコーディング/文字コードによる脆弱性の発生要因まとめ/
文字コードを正しく使うために/まとめ
●第7章 携帯電話向けWebアプリケーションの脆弱性対策
携帯電話向けWebアプリケーションの技術的特徴/携帯ブラウザの技術仕様/かんたんログインの問題/
URL埋め込みのセッションIDによる問題/その他の問題/まとめ
●第8章 Webサイトの安全性を高めるために
Webサーバーへの攻撃経路と対策/成りすまし対策/盗聴・改ざん対策/マルウェア対策/まとめ
●第9章 安全なWebアプリケーションのための開発マネジメント
開発マネジメントにおけるセキュリティ施策の全体像/開発体制/開発プロセス/まとめ
Webアプリケーションにはなぜ脆弱性が生まれるのか? 脆弱性を解消するにはどうプログラミングすればよいか?
PHPサンプルへの攻撃を通して脆弱性が生まれる原理と具体的な対処方法が学べる!
Webアプリケーションセキュリティの第一人者である著者が、正確な知識を丁寧に教える待望の書。
あなたの作ったWebアプリでセキュリティ被害を起こさないための全9章
●第1章 Webアプリケーションの脆弱性とは
脆弱性とは、「悪用できるバグ」/脆弱性があるとなぜ駄目なのか/脆弱性が生まれる理由/セキュリティバグとセキュリティ機能/
本書の構成
●第2章 実習環境のセットアップ
実習環境の概要/VMware Playerのインストール/仮想マシンのインストールと動作確認/Fiddlerのインストール
●第3章 Webセキュリティの基礎 ~HTTP、セッション管理、同一生成元ポリシー~
HTTPとセッション管理/受動的攻撃と同一生成元ポリシー
●第4章 Webアプリケーションの機能別に見るセキュリティバグ
Webアプリケーションの機能と脆弱性の対応/入力処理とセキュリティ/表示処理に伴う問題/SQL呼び出しに伴う脆弱性/
「重要な処理」の際に混入する脆弱性/セッション管理の不備/リダイレクト処理にまつわる脆弱性/クッキー出力にまつわる脆弱性/
メール送信の問題/ファイルアクセスにまつわる問題/OSコマンド呼び出しの際に発生する脆弱性/ファイルアップロードにまつわる問題/
インクルードにまつわる問題/evalにまつわる問題/共有資源に関する問題
●第5章 代表的なセキュリティ機能
認証/アカウント管理/認可/ログ出力
●第6章 文字コードとセキュリティ
文字コードとセキュリティの概要/文字集合/文字エンコーディング/文字コードによる脆弱性の発生要因まとめ/
文字コードを正しく使うために/まとめ
●第7章 携帯電話向けWebアプリケーションの脆弱性対策
携帯電話向けWebアプリケーションの技術的特徴/携帯ブラウザの技術仕様/かんたんログインの問題/
URL埋め込みのセッションIDによる問題/その他の問題/まとめ
●第8章 Webサイトの安全性を高めるために
Webサーバーへの攻撃経路と対策/成りすまし対策/盗聴・改ざん対策/マルウェア対策/まとめ
●第9章 安全なWebアプリケーションのための開発マネジメント
開発マネジメントにおけるセキュリティ施策の全体像/開発体制/開発プロセス/まとめ
内容(「BOOK」データベースより)
SQLインジェクション、クロスサイト・スクリプティング、セッションハイジャック、etc.Webプログラマが知っておくべき攻撃と防御の知識を徹底解説。
出版社からのコメント
Webプログラマの必修知識を一冊に凝縮!
「第1章 Webアプリケーションの脆弱性とは」では、本書全体のテーマである脆弱性(ぜいじゃくせい)についての概要を説明します。この章の最後では、本書の構成と学習の仕方を説明します。
「第2章 実習環境のセットアップ」では、本書の脆弱性のサンプルを動作させるために必要な環境をセットアップします。説明用の画面キャプチャはWindows Vistaにて取得していますが、Windows XPやWindows 7でも同様にセットアップできます。
「第3章 Webセキュリティの基礎」では、Webセキュリティの前提となる基礎知識を説明します。前半でHTTPとセッション管理をした後、後半ではブラウザのセキュリティ機能の1つである同一生成元ポリシーについて説明します。同一生成元ポリシーは、クロスサイト・スプリクティングなど主要な脆弱性の原理を理解するために必要な知識です。
「第4章 Webアプリケーションの機能別に見るセキュリティバグ」では、Webアプリケーションの脆弱性について、発生原理や脆弱性による影響、対策などを詳しく説明します。まず、脆弱性の全体像を把握するために、Webアプリケーションの機能と脆弱性の関係を説明します。次にWebアプリケーションの「入力」と脆弱性の関係を説明します。それ以降は、Webアプリケーションの機能毎に、発生しやすい脆弱性を説明します。クロスサイト・スプリクティング(XSS)やSQLインジェクションなど影響の大きな脆弱性はここで説明します。
「第5章 代表的なセキュリティ機能」では、代表的なセキュリティ機能を取り上げ、どのような脅威があるか、脅威に対抗するにはどのような機能が仕様として必要かを説明します。
「第6章 文字コードとセキュリティ」では文字コードの扱いに起因する脆弱性について説明します。前半では、文字コードの入門として、文字集合と文字エンコーディングについて、後半では、文字集合や文字エンコーディングの扱いに起因する脆弱性について説明した後、文字コードの正しい扱いについて説明します。
「第7章 携帯電話向けWebアプリケーションの脆弱性対策」では、携帯電話向けWebアプリケーションの脆弱性について説明します。iモードやEZweb、Yahoo!ケータイなどのフィーチャーフォンのサービスです。
「第8章 Webサイトの安全性を高めるために」では、アプリケーション以外の側面からWebサイトの安全性を高める施策について説明します。Webサイトに対する攻撃手段の全体像の説明後、それぞれに対して基盤ソフトウェアの脆弱性対処や、成りすまし、盗聴、改ざんの対策、マルウェアへの対処について説明します。
「第9章 安全なWebアプリケーションのための開発マネジメント」では、安全なアプリケーション開発のために必要なマネジメントについて説明します。
「第1章 Webアプリケーションの脆弱性とは」では、本書全体のテーマである脆弱性(ぜいじゃくせい)についての概要を説明します。この章の最後では、本書の構成と学習の仕方を説明します。
「第2章 実習環境のセットアップ」では、本書の脆弱性のサンプルを動作させるために必要な環境をセットアップします。説明用の画面キャプチャはWindows Vistaにて取得していますが、Windows XPやWindows 7でも同様にセットアップできます。
「第3章 Webセキュリティの基礎」では、Webセキュリティの前提となる基礎知識を説明します。前半でHTTPとセッション管理をした後、後半ではブラウザのセキュリティ機能の1つである同一生成元ポリシーについて説明します。同一生成元ポリシーは、クロスサイト・スプリクティングなど主要な脆弱性の原理を理解するために必要な知識です。
「第4章 Webアプリケーションの機能別に見るセキュリティバグ」では、Webアプリケーションの脆弱性について、発生原理や脆弱性による影響、対策などを詳しく説明します。まず、脆弱性の全体像を把握するために、Webアプリケーションの機能と脆弱性の関係を説明します。次にWebアプリケーションの「入力」と脆弱性の関係を説明します。それ以降は、Webアプリケーションの機能毎に、発生しやすい脆弱性を説明します。クロスサイト・スプリクティング(XSS)やSQLインジェクションなど影響の大きな脆弱性はここで説明します。
「第5章 代表的なセキュリティ機能」では、代表的なセキュリティ機能を取り上げ、どのような脅威があるか、脅威に対抗するにはどのような機能が仕様として必要かを説明します。
「第6章 文字コードとセキュリティ」では文字コードの扱いに起因する脆弱性について説明します。前半では、文字コードの入門として、文字集合と文字エンコーディングについて、後半では、文字集合や文字エンコーディングの扱いに起因する脆弱性について説明した後、文字コードの正しい扱いについて説明します。
「第7章 携帯電話向けWebアプリケーションの脆弱性対策」では、携帯電話向けWebアプリケーションの脆弱性について説明します。iモードやEZweb、Yahoo!ケータイなどのフィーチャーフォンのサービスです。
「第8章 Webサイトの安全性を高めるために」では、アプリケーション以外の側面からWebサイトの安全性を高める施策について説明します。Webサイトに対する攻撃手段の全体像の説明後、それぞれに対して基盤ソフトウェアの脆弱性対処や、成りすまし、盗聴、改ざんの対策、マルウェアへの対処について説明します。
「第9章 安全なWebアプリケーションのための開発マネジメント」では、安全なアプリケーション開発のために必要なマネジメントについて説明します。
著者について
徳丸 浩(とくまる ひろし)
1985年京セラ株式会社に入社後、ソフトウェアの開発。企画に従事。
1999年に携帯電話向け認証課金基盤の方向設計を担当したことをきっかけにWebアプリケーションのセキュリティに興味を持つ。
2004年同分野を事業化。2008年独立。脆弱性診断やコンサルティング業務のかたわら、ブログや勉強会を通じてセキュリティの啓蒙活動を行っている。
HASHコンサルティング株式会社代表、京セラコミュニケーションシステム株式会社技術顧問、独立行政法人情報処理推進機構(IPA)非常勤研究員。
1985年京セラ株式会社に入社後、ソフトウェアの開発。企画に従事。
1999年に携帯電話向け認証課金基盤の方向設計を担当したことをきっかけにWebアプリケーションのセキュリティに興味を持つ。
2004年同分野を事業化。2008年独立。脆弱性診断やコンサルティング業務のかたわら、ブログや勉強会を通じてセキュリティの啓蒙活動を行っている。
HASHコンサルティング株式会社代表、京セラコミュニケーションシステム株式会社技術顧問、独立行政法人情報処理推進機構(IPA)非常勤研究員。