More Related Content
Similar to 徳丸本ができるまで (20)
More from Hiroshi Tokumaru
More from Hiroshi Tokumaru (20)
徳丸本ができるまで
- 6. 年表
• 2010年
– 5月6日 ソフトバンククリエイティブ社より執筆の打診
– 5月10日 ソフトバンククリエイティブ社にて打ち合わせ。執筆の受諾
– 5月28日 執筆の宣言、レビュアーの募集開始
– 6月6日 レビュアー決定、執筆開始
– 12月21日 初稿完成
• 2011年
– 1月15日 第2稿完成 – 3月1日 初版第1刷発行
– 1月23日 第3稿完成、脱稿 – 3月25日 初版第2刷発行
– 2月6日 著者校終了 – 5月11日 初版第3刷発行
– 2月10日 再校終了 – 7月28日 初版第4刷発行
– 2月15日 三校終了、制作終了 – 9月28日 電子版発行
Copyright © 2011 HASH Consulting Corp. 6
- 7. きっかけは一通のメール
書籍の執筆をお願いできませんでしょうか
xxxxxx@cr.softbank.co.jp To hiroshi2009 詳細を表示 10/05/06
徳丸様
はじめまして。
ソフトバンククリエイティブという出版社で書籍の編集を担当しております、友保と申します。
このたびは、徳丸様に「Webアプリケーションのセキュリティ」に関する書籍のご執筆をお願いできないかと思
い、メールを送らせていただきました。
Webアプリケーションのセキュリティについては、過去に『PHPサイバーテロの技法』(2005年12月刊)等よく
売れた書籍もありますが、最近は定番と呼べるような書籍が刊行されていない状況です。
携帯電話、スマートフォンへの対応はじめ、Webの状況も大きく変化しておりますので、よくまとまった信頼で
きる情報源としてWebアプリを企画・開発する人にとっての新たな決定版となる書籍を提供したいと考えてお
ります。
私自身、徳丸様のブログでセキュリティの知識を学習させていただいており、今回の企画をぜひ徳丸様にお
願いしたいと考えた次第です。
本件につき、お願いする余地がございましたら、具体的な内容についてお話しをしにお伺いしたいと考えてお
ります。
お忙しい中に突然のお願いで大変恐縮ですが、ご検討いただけますと幸いです。
どうぞよろしくお願いいたします。
Copyright © 2011 HASH Consulting Corp. 7
- 17. ※あくまで徳丸の脳内での
妄想です
こんなValidで
ないHTMLは
認められない!
想定が
HTML4.01な
のかXHTMLな
のか明確にし
てください
17
- 23. 先行書籍の調査(1)
• 日本で一番売れたWebアプ
リケーションセキュリティ本
• 簡潔でスピード感のある説
明がすばらしい
• PHPと銘打ったから売れた
という説もあり
• 2005年12月発行ということ
もあり、今となっては古さが
目立つ
Copyright © 2011 HASH Consulting Corp. 23
- 25. 先行書籍の調査(2)
• ご存じ「金床本」
• 以下が特に詳しい
– XSS
– CSRF
(ワンタイムトークンの本家)
– SQLインジェクション
– DNSに対する攻撃
– WAF
• 網羅的なWebアプリケーショ
ンセキュリティの本ではない
Copyright © 2011 HASH Consulting Corp. 25
- 26. 先行書籍の調査(3)
• 佐名木本
• 書名の示すようにTipsが豊
富
• OSコマンドインジェクション、
CrLfインジェクションなど、割
とどうでもよいテーマがやた
ら詳しい
• 名文句:
ぜひ読者諸氏には今一度、
自分の使っているデータベ
ース・ソフトウェアのSQLリフ
ァレンスを通読することを推
奨する(同書P213)。
Copyright © 2011 HASH Consulting Corp. 26
- 31. 「レビュアーのみなさまへ」を追加
レビュアーのみなさまへ ○表記上の注、変更点
○想定読者 ・プログラムリストは、原則として、即実行可能な形
・PHP等でHTML組み立てによる表示のプログラミ で示すことにしました。
ングができる開発者 ・見出しの記号(体裁は編集で直すので現時点で
・HTMLとJavaScriptの基本的な知識がある は気にしないでください)
□ レベル1
○この節で説明すること、しないこと ○ レベル2
説明すること △ レベル3
・XSSの概要 / 影響 / 原因
・HTMLエスケープによる対策 ・同様に、図表番号は現時点では入れていません
・スキームのチェックによる対策 ・画面キャプチャは仮のもので、必要に応じて取り
・JavaScriptのエスケープによる対策 直します
・文字エンコーディングのチェック ・参照は、Wordの相互参照機能を利用していま
す。見栄えは編集時に調整いただく予定です
説明しないこと
・AjaxのXSS(別の章で説明する可能性はある) 検討事項(未稿)
・コラム「XSSを巡る誤解」
Copyright © 2011 HASH Consulting Corp. 31
- 37. 想定読者
• とにかく開発者に訴求したい
– PHPなどを用いて独力でアプリが書ける人
– 「独力で」というところが意外にハードルが高いかも
– PHPは書ける、Linuxのコマンドライン操作はできない(かも)という
ライン
• 専門家はどうでもいい(同業者だし)
Copyright © 2011 HASH Consulting Corp. 37
- 41. 適切でないサンプルの例
正しくは
"¥$c = $a/$b"
http://www.ipa.go.jp/security/awareness/vendor/programmingv1/a04_02_main.html より引用
Copyright © 2011 HASH Consulting Corp. 41
- 42. サンプル作りで大変だったこと
• 正常系のシナリオを考えるのが一番大変だった
– OSコマンドを呼び出す必然性
– その他、eval、includeを使う必然性は?
– 開発者に「そんなシナリオあり得ない」と思われたら負け
• その上で、できるだけ実害の大きな攻撃パターンを考える
– 開発者に「それは大変だ」と感じてもらいたい
– 「それで、何か問題でも?」と思われたら負け
• サンプルの品質管理
– コードの見栄え、一貫性(大文字・小文字の使い分けなど)
– 正常系がちゃんと動くこと
– 攻撃パターンが、きちんと攻撃になっていること
– レビュアーからの指摘も結構あった(中には「恥ずかしい」指摘も)
Copyright © 2011 HASH Consulting Corp. 42
- 43. その他困ったこと
• 用語の選定
– 信頼できる用語辞典がない 例:「チケット」と「トークン」の違い
– Google検索などで文脈ごとに用例を調べ、最終的には自分の語感を信じるしか
なかった
– Cookieか「クッキー」か→基本的にはカタカナに
• 脆弱性の呼び方
– 基本的には保守的に、定着した用語を用いる
– 定着した語がない場合は、CWEを参考に(例:File inclusion)
• 前提知識をどの程度におくか(承前)
– 当初は、開発初心者を想定していたが、少し高い目になったと思う
• セキュリティとは…など基本的な概念をどう説明する?
– 辞書的な説明は割愛することにした(例:ISOxxxでは…)
– ついでに、「セキュリティのCIA」のような話題も割愛
– 但し、内容としてはCIAの話は出てくる(当然と言えば当然だが)
Copyright © 2011 HASH Consulting Corp. 43
- 45. 主な「書けなかったこと」
• Ajax/JSON
– これは最初から書かない予定だった
– しかし、「なんとか書けなかったか」という思いは今でも強い
– SOP、HTMLのXSS、evalインジェクションなどは書いているので、
実は後一歩という噂も
– 第2版を出すチャンスがあればぜひ入れたい
• WAFについて
– 力尽きました
• 「ウェブ健康診断」の具体的な方法
– これも力尽きました
– そもそもスペース的に無理だったかも
Copyright © 2011 HASH Consulting Corp. 45
- 46. まとめ
• 徳丸本の「できるまで」と主な「こだわり」
• 1時間では語り尽くせません!
• 「徳丸本」がすべて正しいとは思いませんが、今後のディスカ
ッションの基準となればよいかなと希望します
– 徳丸本では○○の理由で××と書いてあるが、△△の理由で□□
であると考える…など
• 安全なアプリケーション開発手法普及の一助となれば幸いで
す
• リンク集
– サポートサイト http://www.hash-c.co.jp/wasbook
– Amazon http://www.amazon.co.jp/dp/4797361190
– 電子版 http://bookpub.jp/books/bp/144
Copyright © 2011 HASH Consulting Corp. 46