自著を語る「体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践」徳丸 浩(ブックレビュー) | ScanNetSecurity
2024.03.29(金)

自著を語る「体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践」徳丸 浩(ブックレビュー)

「体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践」 徳丸 浩 著 2011年3月3日 ソフトバンククリエイティブ刊

調査・レポート・白書・ガイドライン ブックレビュー
wsabook1「体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践」徳丸 浩 著 2011年3月3日 ソフトバンククリエイティブ刊


本書は、Webアプリケーションの開発者のためのセキュリティ解説書である。

Webアプリケーションのセキュリティ問題(脆弱性)は、開発の工程で混入するバグの一種である。開発者がセキュリティに無知なままに開発したアプリケーションには脆弱性が混入する可能性が高い。したがって、アプリケーション開発者にとって実用的な解説書となることを目指して本書を執筆した。

具体的には、以下をゴールとした。

・開発者が、脆弱性の及ぼす影響を切実で身近なものとして把握する
・開発者が、脆弱性が発生する原理を理解する
・開発者が、脆弱性の対処を実践できるようにする

これらゴールを達成するために、以下の工夫を施した。

・脆弱性のサンプルとして、被害の大きさを理解でき、かつ十分シンプルなものを記載した

・攻撃方法の紹介として、情報漏洩やデータ改ざんの手口を具体的に示した

・脆弱性サンプルを手軽に動かせるように仮想マシンイメージを提供し、実行に必要なソフトウェアも含めてCD-ROMとして添付した

・読者が脆弱性発生の原理を理解できるよう、HTTPやセッション管理、同一生成元ポリシーなどの前提知識を含めて解説した

・脆弱性の対処方法については、原理だけでなく、PHP等で実現可能な方法をサンプルと共に示した

・脆弱性の説明を逆引き辞典風に構成した(「メール送信の問題」などアプリケーションの機能毎に参照できるようにした)

本書の構成は以下の通りである。

まず、最初の3つの章は、本書全体の導入として、脆弱性とはなにか、脆弱性サンプルの動かし方、基本的な前提知識について説明している。第3章の後半では、ブラウザのサンドボックス機能および同一生成元ポリシーを説明して、クロスサイト・スクリプティングなど受動的攻撃の導入としている。

第4章は本書の中心となる章であり、脆弱性の種類毎に、原理、影響、対処方法を説明している。ただし、前述したように、節の組み立てとしてはアプリケーションの機能毎に並んでおり、リファレンスとして活用しやすいように工夫した。

第5章はセキュリティを確保するために必要な認証・アカウント管理・認可・ログ出力の各機能についての説明である。最近ネット上でも話題に上ることの多いパスワードの保存方法についても、攻撃方法と対処方法について十分に解説している。

第6章以降は、Webアプリケーションセキュリティの様々なトピックスとして、文字コードの問題、携帯電話向けWebサイトに固有な問題、OSやWebサーバーを含めたサイト全体の安全性確保の方法、開発マネジメントにおけるセキュリティ施策などを解説している。開発マネジメントについては、発注者にとっても有益なガイドとなるようにした。

本書は、筆者の独りよがりとならないようインターネット上でレビュアーを公募し、16名のレビュアーとメーリングリストで議論を行いながら執筆した。レビュアーによる提案は、字句の誤り指摘だけではなく、説明不足や論理の飛躍に対する指摘、前提知識の解説の追加提案など、本書の構成に影響するものも含まれる。その結果、説明順序の入れ替え、図表の差し替え、節の追加など、大きな変更が加わった。ここで、レビュアーのやりとりの一例を紹介しよう。

ディレクトリリスティング(ファイルの一覧を表示する機能)を抑止するための保険的対策として、初稿では、各ディレクトリにダミーのindex.htmlを入れておくという方法を紹介していた。この方法はベテランのセキュリティ屋にはよく知られたTipsだが、レビュアーの太田良典氏から異論が出た。全てのディレクトリにダミーのファイルをおくことで構成管理のコストが増加するなど、さまざまな副作用が発生するというのだ。検討の結果、本書で紹介している他の対策(コストはあまり増えない)に追加してダミーのindex.htmlを配置することのメリットは薄いと判断して、この記述は削除した。

この例からも分かるように、本書は、単に安全なアプリケーションが開発できることにとどまらず、開発生産性などにも配慮した実用性の高い脆弱性対処方法の紹介を目指している。レビュアーの方々の中には、Web制作やアプリケーション開発の第一線で活躍されている方も含まれているので、上記のような議論を経て、この目標はかなり達成されたものと感じている。あらためて、レビュアー諸氏に感謝する。

このように本書は、Webアプリケーション開発者向けの本格的なセキュリティ解説書として他に例を見ないという点では極めてユニークであるが、一方で極めて正攻法の解説書でもある。Webアプリケーションの開発や発注に携わる方々すべてに読んでいただきたい。

HASHコンサルティング株式会社 代表取締役 徳丸 浩)


・出版社の解説ページ
・著書のサポートページ
・Amazonの販売ページ


徳丸 浩(とくまる ひろし)
HASHコンサルティング株式会社代表、京セラコミュニケーションシステム株式会社技術顧問、独立行政法人情報処理推進機構(IPA)非常勤研究員。技術士(情報工学部門)

1985年、京セラ株式会社に入社後、ソフトウェアの開発、企画に従事。1999年、携帯電話向け認証課金基盤の方式設計を担当したことをきっかけに Webアプリケーションのセキュリティに興味を持つ。2004年、同分野を事業化。2008年、独立し、Webアプリケーションセキュリティを専門分野とするHASHコンサルティング株式会社を設立。脆弱性診断やコンサルティング業務のかたわら、ブログや勉強会などを通じてセキュリティの啓蒙活動をおこなっている。


その他の著書
「Webアプリケーションのセキュリティ完全対策―不正アクセスや情報漏洩を防ぐ」
徳丸 浩、田畑 拓、三好 雅貴、園田 健太郎 著 2004年11月 日経BP社刊




※原稿募集
「自著を語る」のコーナーでは著者による御寄稿をお待ちしております。情報セキュリティ、インターネット犯罪等に関わる書籍の著者の方は問い合わせフォームから「自著を語る寄稿希望」とお書き添えのうえお気軽にご連絡ください。
《ScanNetSecurity》

Scan PREMIUM 会員限定記事

もっと見る

Scan PREMIUM 会員限定記事特集をもっと見る

カテゴリ別新着記事

「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」
「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」

ページ右上「ユーザー登録」から会員登録すれば会員限定記事を閲覧できます。毎週月曜の朝、先週一週間のセキュリティ動向を総括しふりかえるメルマガをお届け。(写真:ScanNetSecurity 名誉編集長 りく)

×