近年、製品の出荷後にセキュリティー上の安全性に関わるバグ注1や脆弱性注2)が発覚して大きな損害を被ったという事件が増えてきている。そのような事態を防止するためには、製品の開発工程の中でセキュリティー・テストを実施し、バグや脆弱性を確実に解消しておかなければならない。
一言にセキュリティー・テストと言っても、その手法には様々だ。主な手法としては次のようなものが挙げられる。
ソースコード・セキュリティー検査
ソースコードを検査してセキュリティー上の問題につながる実装が行われてないかなどをチェックする
ファジング
外部から意図的に例外につながるような入力データを網羅的に与え、その際の挙動を確認する
本連載では、特に後者の「ファジング」について取り扱う。なお、ソースコードのセキュリティー検査については、情報処理推進機構(IPA)によって「IPA テクニカルウォッチ:『ソースコードセキュリティ検査』に関するレポート」(ダウンロード先)などの資料が公開されている。またファジングについても同じくIPAが「ファジング活用の手引き」や「ファジング実践資料」(両資料のダウンロード先)、「IPA テクニカルウォッチ:製品の品質を確保する「セキュリティテスト」に関するレポート」(ダウンロード先)といった資料を公開している。本特集とあわせてこれらの資料も参考にしていただきたい。