これまで本連載では、ファジングの特徴やテストを実施する上での留意点などについて紹介してきた。最終回となる今回は、実際に開発ライフサイクルの中にファジングを導入していくためのアプローチを考える。

 初めてファジングを導入する企業や開発現場に対しては、次に挙げるように2段階のステップを踏んで導入することをお勧めしたい。

・第1ステップ:オープンソース・ソフトウエアなどを活用したファジング
・第2ステップ:商用製品を活用したファジング

図1 ファジング導入に向けたアプローチ
図1 ファジング導入に向けたアプローチ
[画像のクリックで拡大表示]

 開発ライフサイクルに本格的にファジングを導入した場合、バグや脆弱性によるリスクをより高確率で軽減できるが、一方で導入費用やテスト期間に少なからず影響を与えることは前回(第4回へのリンク)、述べた通りだ。そこで、まずオープンソース・ソフトウエアを活用したファジングを最初のステップにすることで、費用やテスト期間への影響を最小限に抑えながらファジングの効果を確かめることができる。

 そして、第1ステップ導入の効果や運用手順に対する実感をつかむことができたら、第2ステップとして商用製品を活用した本格的なファジングの導入を検討する。商用製品を利用することで費用やテスト期間への影響は大きくなるが、より多くのバグや脆弱性の発見を期待できるため、製品の安全性を高めることにつながる。

 最初から完全な形でのファジングの実施を目指すのではなく、このような段階的なアプローチを取ることによって、導入の敷居を下げることができるはずだ。