Threat Modeling 読了

Threat Modeling (Microsoft Professional) を読み終わったので、amazonにレビューを書いてみた(初)。とても為になる、良い本でした。わたしにとっては。


レビューでは、だいたい以下の内容を書こうと思ったのですが、やや長すぎるので若干削ってあります。

評価: ★★★★☆

Microsoftが、自社で開発するソフトウェアをセキュアに保つために取り入れている、ソフトウェア開発方法論を解説した本です。

ソフトウェアをセキュアに保つのに、実装フェーズにばかり注力する従来の方法では、セキュリティバグが見つかった場合の修正コストがかさむと指摘。開発プロセスのもっと上流の工程、要件開発や設計フェーズにセキュリティの考え方を取り入れるべきと説いています(いると思います)。そして、そのための具体的な作業方法、スレットモデリング手法を解説しています。

ソフトウェア開発プロセスの全域にセキュリティの考え方を取り入れよと言及している書籍は既にいくつかあります*1が、具体的な作業を方法論という形で提示までしている本はまだ無いと思いますので、お勧めできます。買いでしょう。特に、ソフトウェア業界にいてセキュリティに興味のある方などに。関連書籍である "Writing Secure Code: Practical Strategies and Proven Techniques for Building Secure Applications in a Networked World (Developer Best Practices) (2nd Edition)" の次に読む本としてもお勧めです。

星4つにしたのは、次の点が不十分と考えたためです。

  1. 通常のソフトウェア開発プロセスとの融合方法にあまり言及がない。
  2. スレットモデリングで作成するドキュメント(12種類)の相互関係の解説があまり親切ではなく、わかりにくい。

前者は、おそらく組織によって開発プロセスは様々というところから省略されたと推測しますが、Microsoft社での例を提示してくれるだけでも随分役立ったのになぁと思い残念です。

レビューには書きませんでしたが、セキュリティ関係の技術には殆ど触れていないので、それを期待して買うと肩透かしを食らう点は要注意と思います。例えばBuffer Overflowの説明には1ページ程しか割かれていません。あくまで、ソフトウェア開発プロセスを解説した書籍です。


ソフトウェアの設計や実装に長けた人間が、その能力を充分に発揮するには、UPやXPなどのソフトウェア開発プロセスが必要ですが、それと同じように、

  • セキュアコーディングやセキュアな設計の技術
  • コード監査技術
  • ペネトレーション技術

などに長けた人間がその能力を発揮するためには、セキュア開発プロセスが必要だよね、と説いている本だと思います。技術書ではなく仕事の進め方の解説本というか。


ですから、構成管理システム*2やバグトラッキングシステム*3すら使っていない組織では、なかなか適用が難しいようにも思いました。


(追記) 私の拙い感想文を読むより、MSの提供しているオンライン・トレーニングの資料(日本語!無料!)を参照いただく方が確実です(笑)

*1:たとえば セキュアプログラミング―失敗から学ぶ設計・実装・運用・管理 や、ISO15408関連の書籍

*2:CVSVisual SourceSafePerforce など

*3:Bugzillaや各種商用製品