定義

ファジング・テスト(ファジング)は、無効、不正、または予期しない入力をシステムに挿入してソフトウェアの欠陥や脆弱性を明らかにする自動化されたソフトウェア・テスト手法です。ファジング・ツールは、システムにこれらの入力を挿入し、クラッシュや情報漏洩などの例外を監視します。つまり、ファジングはシステムに予期しない入力を与え、セキュリティ、パフォーマンス、品質のギャップや問題を示す入力がシステムに悪影響を与えるかどうかを監視します。

ファジング・テストの歴史

fuzzing.infoによると、「ファズ」という用語は1980年代にバートン・ミラー教授によって生み出されました。嵐の最中にダイヤルアップ・ネットワークでUNIXシステムにログインしたとき、ミラー教授は信号に多大な干渉が生じていることに気付きました。干渉によってシステムはクラッシュしました。後にミラー教授は、ファズ生成器を使用してUNIXシステムにノイズを浴びせたときにクラッシュするかどうかを確認するために、この経験のシミュレーションを学生に依頼しました。


ファジング・テストの仕組み

ファジング・テストの基本前提は、不具合を特定するために意図的に不正な入力をシステムに与えることです。ファザーには、主に3つのコンポーネント (不正な入力またはテストケースを作成するポエット、ターゲット・ソフトウェアにテストケースを提供するクーリエ、ターゲットで障害が発生したかどうかを検出するオラクル)があります。

このプロセスは、ターゲット・ソフトウェアを試すテストケースを作成するポエットから始まります。テストケースは、ランダム型、テンプレート進化型、またはジェネレーション(世代)型を選択できます。ランダム型のファジングでは、システムにランダムなデータが挿入されます。テンプレート進化型のファジングでは、有効な入力に異常な動作を挿入し、後続のテストをより効果的かつ多様なものにするために、最初のテスト時にシステムの動作に関するフィードバックを受け取ります。ジェネレーション型のテストケースでは、テスト対象のプロトコル、ファイル形式、APIを理解した上で、システムのルールを認識します。このため、ジェネレーション型ファジング・テストでは、すべてのルールに体系的に違反することが可能です。

次に、クーリエがテストケースを配信します。配信方法は実行するファジングの種類によって大きく異なりますが、ターゲットにテストを配信するという最終目標は常に変わりません。

最後に、テストケースが成功したか失敗したかをオラクルが判断します。オラクルは、ターゲット・システムを検査して、何らかの障害が発生していないかどうかを確認します。障害の内容を知ることが重要です。この情報がないと、テスト担当者が障害を再現し、それを調査して修正対策を決定することはできません。


ファジングの利点

ファジング・テストはセキュリティおよび品質プログラムにさまざまな利点をもたらします。
  • ファジングは、ターゲットとなるシステムおよびソフトウェアの品質の全体像を示す優れた手法です。ファジングにより、テスト対象のシステムとソフトウェアの堅牢性とセキュリティ・リスク体制を簡単に測定できます。
  • ファジングは、悪意のあるハッカーがソフトウェアの脆弱性を見つけるために使用する主な手法です。セキュリティ・プログラムで使用することで、システムの未知のバグや脆弱性を悪用したゼロデイ攻撃を防ぐことができます。
  • ファジングでは、コストと時間の両面で多少のオーバーヘッドが生じます。ファザーが起動して実行されると、人手の介在なしに自動的にバグを探し始め、必要がなくなるまで検索を続けることができます。
  • ファジングは従来のテスト方法や手動監査では検出できなかったバグの発見に役立ちます。
ファジングテストのステップ | Synopsys

フリーまたはオープンソースのファザーの使用に伴う課題

多くの場合、オープンソースのファザーにはさまざまな課題が存在します。

  • オープンソースのファザーでは、特にバグがプログラムの完全なクラッシュを引き起こさない場合、または明確な特定の状況でのみバグがトリガされるようになっている場合、すべてのバグが見つかるとは限りません。
  • オープンソースのファザーはブラックボックスのテスト手法であるため、ソフトウェア内部の動作を詳細に洞察することができず、テスト結果の再現と分析が困難になります。
  • 複雑な入力を伴うソフトウェア・プログラムは、ソフトウェアのセキュリティを確保するために必要な包括的かつ徹底したテスト・カバレッジを実現できる高度でインテリジェントなファザーを必要とします。

 


シノプシスの支援方法

業界をリードするSynopsysのDefensics®ファジング・テスト・ツールは、ソフトウェアをインテリジェントにテストし、製品の安全性と品質性能を損なうことなく未知の脆弱性や弱点を簡単に発見し、対処することができる包括的な自動化ソリューションです。Defensicsの真価は、プロトコル、ファイル形式、ネットワーク・インターフェイスおよびターゲット・インターフェイスを深く理解し、機能しないテストケースの数を削減して重要で管理しやすい少数のテストケースに絞り込んだ真のインテリジェンスを適用できる点にあります。Defensicsを使用すると、必要とされる広範かつ詳細なファジング・カバレッジを得ることができます。

Defensicsは主要な機能によって市場をリードしています。

ジェネレーション(世代)型テスト Defensicsのインテリジェントなテスト・スイート・カタログは、あらゆるテクノロジー・スタックと業種、およびあらゆる組織規模をカバーしています。Defensicsには、テストカバレッジを高め、高精度の結果を生成するために、業種固有の先進のアルゴリズムが組み込まれています。Defensicsのジェネレーション型テスト機能を使用すると、従来のファザーとオープンソースのファザーを混同させる脆弱性を特定し、対策に取り組むことができます。Defensicsには250以上のビルド済みプロトコル・テスト・スイートが備わっているため、手動テストを作成する必要はありません。Synopsysでは、新しい入力タイプ、仕様、RFCに対応するテスト・スイートを継続的に更新しています。また、独自開発のカスタム・プロトコルのテストをサポートするDefensics SDKをご提供しています。このツールはあらゆるテスト・スイートをカスタマイズ可能なうえ、Defensicsの定義済みのスコープ内にまだ存在しないコーナー・ケースをカバーできるデータ・シーケンス・エディタを備えています。

プロトコル・テストのカバレッジ。Defensicsは、ソフトウェアのセキュリティを効果的に確保するために必要な幅広いプロトコル・テスト・カバレッジを網羅した数少ない市販ファザーです。Synopsysは他の市販ツールを凌駕する幅広いプロトコル、インターフェイス、RFC(約300種類)をサポートしています。Defensicsは、長い年月をかけて効果が実証された初めての市販ファザーとして、広範で実践的なセキュリティ経験とエンジニアが長年Defensicsエンジンに組み込んできたセキュリティ研究の成果が反映されたツールであり、その成果によって信頼できるソリューションが誕生しました。

広範なカバレッジ。IoT5Gが多くの産業に革命を起こしているように、Defensicsは新たな攻撃への対応に絶好の環境と新しい機会をもたらします。Defensicsでは、5Gおよび4G LTEネットワークを使用してソフトウェアとデバイスをテストし、手順の不適切な処理、不正な整合性保護、セキュリティの不備を特定できます。Defensicsを活用してこれらの新技術(5Gおよび4G LTE)のセキュリティを強化する方法については、当社の最近のホワイトペーパーをご覧ください。