もう少し詳しく

「ファジング」とは、ソフトウェアに対してランダムな、または想定外の形式のデータ(「ファズ」と呼ばれる)を大量に自動で入力し、プログラムが異常終了したり、想定外の動作をしたりする箇所を見つけ出すテスト手法です。英語の「Fuzz(あいまいな、でたらめな)」が語源とされています。人間が想定しきれない入力パターンを、機械的に大量に試せる点が特徴で、ソフトウェアの脆弱性ぜいじゃくせいを見つける代表的な手法の一つとして使われています。

どこで使われるか

ファジングは、ソフトウェアの脆弱性調査や、セキュリティ企業・研究機関による自社製品の安全性確認で広く使われています。代表的な例として、Googleが提供する「OSS-Fuzz」は、オープンソースソフトウェアに対してファジングを継続的に実行し、見つかった不具合を開発者へ報告する無料の仕組みです。近年は、AIモデルを使って、より効率的に異常を見つけ出す箇所を絞り込む取り組みも進んでいます。

身近な例

私たちが普段使っているWebブラウザやOS、スマートフォンのアプリの多くは、開発の過程でファジングによる検査を受けています。「セキュリティ更新プログラムで、特定の条件下でクラッシュする不具合を修正しました」といった発表の背景には、ファジングによって見つかった不具合が含まれている場合が少なくありません。

注意点

ファジングは効率的な手法ですが、見つかった報告がすべて実際に深刻な脆弱性につながるとは限らず、無害な動作を誤って「異常」と判定してしまうこともあります。見つかった報告をそのまま信じるのではなく、人間の専門家やプロジェクトの担当者が内容を確認・検証する工程が、安全性を確保する上で重要になります。