Webセキュリティの小部屋

Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから
公開日:2015年10月27日
最終更新日:2016年4月20日

『徳丸浩のWebセキュリティ教室』を読んだ感想

はじめに

待望の徳丸先生の新刊が発売になりましたね。

今まで定番だった徳丸本(『体系的に学ぶ 安全なWebアプリケーションの作り方』)にも載ってない内容があり、勉強になります。セキュリティ関連の本は随時アップデートが必要ですね。

本書の構成は、インタビュー、第一章で概要、第二章で攻撃手法、第三章で対策となっています。

インタビュー

インタビューはかなり厳しい内容になっています。開発者はもっとセキュリティで責任を果たし、発注者は Web セキュリティを勉強してきっちり予算を確保し、ユーザーはリテラシーを上げることを求めています。

実際、現状の Web セキュリティの状況を見ると、これらの対策は必要だと同意せざるを得ません。法規制が入るのであればそれに対応して開発者も成長していく必要があります。いつまでも、ソフトウェアは不具合はなくせないではすまされません(脆弱性は悪用できるバグなので)。

意外だったのが、「安全なウェブサイトの作り方」はセキュリティガイドラインとして利用するのには内容が足りないということです。この資料は、かなり脆弱性も網羅されていると思っていたのですが、作成者の方曰く、「最低限の内容」とのことで、セキュリティガイドラインは別途作成する必要があるということですね。これは、みなさん知っておいたほうがよいのではないでしょうか。

第一章

第一章では最近の Web セキュリティの動向を抑えた概要が解説されています。特に重要なのは、侵入経路というもは2つのみで、これは今も昔も変わらないということです。

それから SQL インジェクション、ガンブラー、パスワードリスト攻撃などといった攻撃手法が登場し、常に進化しています。さらには、Apache Struts といったフレームワークの脆弱性を攻撃するようにもなっています。

また、脆弱性の原因には「実装」「設計」「仕様」の3つがあります。脆弱性をなくすには、各段階で適切な対応を取る必要があります。「実装」では、SQLインジェクションなどがあり、脆弱性対応というと「実装」に目が行ってしまいますが、「設計」「仕様」もセキュリティをしっかりと考慮する必要があるという訳ですね。

第二章

第二章では攻撃手法を扱っていますが、みなさんも驚いたと思う SQLインジェクションによる判決について解説がされています。これからの脆弱性対策の責任は、一義的には発注者にあるとしても、仕様にないからといって脆弱性対策を行わなくてもよい時代は終了したと言えるのではないでしょうか。

しかし、個人的には、この判決は少々開発者に厳しいのではないかと感じています。この判決はベンダーを萎縮させ、対価をもらうことなく、セキュリティ対策をせざるを得なくなる可能性があるからです。体力のある企業ならなんとかなるかもしれませんが、中小ベンダーは厳しい状況に置かれるのではないでしょうか。

入門書と Web サイトの記事には間違ったセキュリティ対応が載っていることがあることも言及されています。私も騙されたことがありますが、セキュリティ情報は基本を信頼できる情報元・資料・書籍から学ぶ必要があります。その上で、間違った情報に触れれば間違いに気がつくことができます。

また、クロスサイトスクリプティング(XSS)は、JavaScript の alert 文で Cookie が表示されるサンプルがあり、それで危ない危ないといっている状況ですが、XSS は本当はなぜ危ないかについて詳細に解説されています(本書のコア部分かも)。詳細は、本書を読んで欲しいのですが、一文でまとめられている文章があるので、ここで引用しておきます。

XSS の本質は、「本来ならば実行されないはずのJavaScriptを実行されてしまう」ことにある。

出力時エスケープ漏れの場合もあるでしょうし、同一生成元ポリシーに違反している場合もあるでしょう。なんにせよ何らかの方法で JavaScript を実行させてしまえば、個人情報の取得や乗っ取りも容易に行うことができるようになるでしょう。

第三章

第三章では対策について解説がされています。

最初に、ソフトウェアのサポートライフサイクルに触れています。

サポートライフサイクルはプロダクトやベンダー、OSS などにより大きく異なりますが、サポートライフサイクルが終了してしまったソフトウェアはセキュリティパッチが提供されなくなります。これは採用前に調べておくことです。中には突然サポートが終了してしまうものもありますが、それは仕方ないですね。覚悟を決めましょう。

驚いたのは PHP のサポート期間の短さです。OSS にそこまで求めるのは無理がありますが、3年間というのは短いですね。Web アプリケーションを構築したら、すぐにバージョンアップの用意をしなければいけないですね。

本書では「パッチ適用容易性」という概念が提唱されていますが、パッチ適用やバージョンアップのしやすさは重要だと思います。PHP のようにバージョンアップが早い言語だと特に重要ですね。

WAF (Web Application Firewall) も解説がされています。脆弱性は全て解消しておくことは難しいですし、緊急時対応、サポートの終了したプロダクトの脆弱性対策に役に立ちます。

RFP (Request For Proposal) にセキュリティ要件を組み込むことの重要性についても書かれています。これは、発注者に「安全」にはコストがかかることと、安全にするための意思を持ってもらうことが重要だからです。安かろう悪かろうでは、また裁判になって、不幸な結果が待っているだけですからね。

やはりというか、徳丸先生ならではのテーマである「パスワードの定期変更」の効果についても解説があったのがうれしいです。ちゃんと数字を根拠にして「パスワードの定期変更」の効果の低さを明確にしています。「パスワードの定期変更」を行うくらいなら2段階認証など別の方法を採用すべきだそうです。「パスワードの定期変更に頼ったら負け」というスローガンとのこと。

診断サービスを受けるには、実際には「フルサービス」を依頼することが望ましいが、コスト的に難しいので「抜き取り検査」をすることになるとあります。

ちょっとここには違和感があって、Web アプリケーション脆弱性診断には、ツールによる診断と手動診断の2通りあるので、ツールで安く全体を診断して、重要部分をコストをかけて手動診断するとよいのではないかと思いました。

おわりに

この本は、脆弱性対策だけでなく、Web セキュリティでなにが重要なのか、現在の状況はどのようになっているのかなどが分かるので、Web アプリケーションに関わる方には是非手にとってもらいたいです。特に、発注者の方、プロジェクトマネージャー、SEの方々ですね。

この本を読んだら、以下の本も手にとって貰えるとよりよいです。もちろん、「安全なウェブサイトの作り方」は読んだ上でですけどね。

 

 


スポンサーリンク




カテゴリー:ブログ

Twitter でも、いろんな情報を発信しています。



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA