セキュリティ
ファジングとは? 検査方法やメリット・デメリットなど

製品やシステムの潜在的なバグ・ぜい弱性は、ファジングで事前に検出することが重要です。潜在的なバグ・ぜい弱性は、製品やシステムをリリースした後に重大なトラブルを引き起こし、多大な損害を発生させることがあります。事前に問題を検出し、対処できれば損失の防止に繋がります。
ここでは、ファジングとは何か、検査方法やメリット・デメリットなどについて詳しくご紹介します。
ファジングとは
「ファジング」とは、製品やシステムの潜在的なバグやぜい弱性を発見するために、問題を引き起こしそうな入力値をテストツールを用いて大量に自動生成し、検査対象である製品やシステムに与えることで、意図的に例外の発生を促す手法です。例外が発生した場合、その原因を確認することで、潜在的なバグやぜい弱性を発見できます。
ファジングによる検査方法
ファジングは、「ブラックボックステスト」の手法の1つです。予測できない入力データ「ファズ」を与えることで、例外を意図的に発生させます。製品の開発段階、出荷前のテストなどで用いる手法です。なお、大量のファズを用いて総当たり的に行う検査手法を「ブルートフォース」といいます。
非常に多くのパターンの入力を試すことで、潜在的なバグやぜい弱性をより細かく確認できます。手作業で入力すると膨大な時間的・人的コストがかかるため、ファジングツールやファザーと呼ばれる専用のソフトで自動化することが一般的です。
また、ブラックボックステストの他に、「ホワイトボックステスト」や「グレーボックステスト」もあります。ホワイトボックステストとは、システムやソフトウェアの内部構造を把握したうえで検証し、網羅的にチェックする手法です。細部までチェックすることができますが、ソフトウェアの規模によっては検査に時間がかかります。
グレーボックステストは、内部構造を把握したうえで行う点はホワイトボックステストと同様ですが、外部からの仕様に基づいてテストするという違いがあります。内部の動きを把握することで、狙いを定めて外部からテストができるという考えに基づいた手法です。
ファジングのメリット
ファジングは、可能な限り行った方がよいテストであり、たくさんのメリットがあります。
知識がなくても導入できる
ファジングを行う際に、対象となるソフトウェアやシステムなどに対する知識は不要です。ただし、ファジングにおける知識はある程度は必要となります。
労力を削減できる
同じテスト手順を自動的に繰り返すことができるため、通常のデバッグ・テストと比べて時間的・人的コストを抑えられます。同様の入力データを想定したプログラムであれば、入力データを流用できます。
潜在的なバグやぜい弱性の発見
潜在的なバグやぜい弱性を発見できるため、製品やシステムの重大なトラブルの防止に繋がります。
ファジングのデメリット
一方、ファジングにはいくつかのデメリットもあります。詳しく見ていきましょう。
ファジングを実施する人材の確保が必要
ファジングを実施する人材の確保および育成が必要です。シンプルな構造のツールを使用するものの、全く知識がない人でも使用できるというわけではありません。そのため、ファジングを正しい手順で行える人材を確保し、継続的なフォローアップが必要になります。
しかし、ファジングをせずに製品やシステムをリリースして重大なトラブルが起きることと比較すると、ファジングを実施する人材の確保は大きなデメリットとはいえないでしょう。
ファジングツールの購入にコストがかかる
ファジングツールの購入には費用がかかります。ただし、無料のツールもあるため、工夫次第ではコストを抑えられます。無料のツールは有料のツールと比べて使いにくかったり、機能が少なかったりする場合があるため、導入の際には十分に検討するようにしましょう。
ファジングは、潜在的なバグやぜい弱性を発見するための手法です。必要に応じて、導入してみてはいかがでしょうか。
当社では、医療機器のセキュリティ課題の確認・解決をサポートする「医療機器認証取得向けサイバーセキュリティ支援サービス」を提供しています。ファジングをはじめとした複数のセキュリティ診断を組み合わせ、対象機器の特定の機能に絞り込んだセキュリティ診断や対策後の再確認が可能です。
また、トラブルを防ぐためにはファジングだけではなく、その他の方法も合わせて検討することをお薦めします。ネットワーク内のデバイスと関連のオペレーティングシステム、アプリケーションのぜい弱性を診断する「ぜい弱性管理ソリューション」、専任技術者による「セキュリティ診断サービス」なども提供しています。セキュリティ診断・対策については、当社までお気軽にお問い合わせください。