Skip to main content

ファズテストとは何ですか?

fuzzファズテスト、またはファジングは、コンピュータープログラムまたはシステムがさまざまな、時にはランダムな入力および情報にどのように応答するかを確認する方法です。このプロセスには、特定の制約内で完全にランダムまたはランダムにあるデータを生成し、そのデータをプログラムにフィードして、予期しない情報を処理する方法をテストします。ファズテストの最も基本的な形式は、キープレスまたは文字のランダムなシーケンスをプログラムに送信し、それらを正しく処理することを確認することです。ファズテストのより複雑なバージョンでは、構造化されたデータを使用して、ランダムに操作され、プログラムに送信されます。データは、システムイベント、キーボード入力、モックネットワーク信号、またはロードされるファイルとしてプログラムに到達することができます。グラフィカルユーザーインターフェイス(GUI)は、ランダムマウスとキーボードイベントのシーケンスを作成し、GUIが予期しないタスクをクラッシュ、フリーズ、または実行せずに入力を処理できることを確認することでテストできます。ネットワークプロトコルは、ファズジェネレーターが有効なデータパケットの部分をランダムに変更できるようにし、奇形のデータを受信した後もプロトコルが機能し続けることができるようにすることでテストできます。ほぼすべてのプログラムの基本的な入力要素は、ストレージタイプに長すぎる入力、予想とは異なるタイプの入力、何らかの形で不完全または不正確な入力など、エラーに抵抗する能力を確認できます。computerコンピューターセキュリティ業界は、ファズテストを使用して、特定のシステムに明らかなセキュリティホールが存在しないことを確認できます。これは、コンピューターセキュリティをテストするために設計されたファズジェネレーターを使用して実行できます。これらのプログラムは、システムキーワード、既知のデフォルトの管理者パスワード、プログラムが使用するライブラリ内の関数、およびプログラムの反応を確認するためのランダムな呼び出しを使用しようとします。特定の範囲、または特定の種類の入力のみをテストすることさえします。これは、プログラムが有効なコマンドのみに送信される可能性があることを意味しますが、それらは無意味な順序である可能性があります。より複雑なファズテストプログラムが存在し、ターゲットプログラムの要素を取り、それらを操作して悪意を持って悪用される可能性のある状況を生み出すことができます。これには、生成されるプロセスの順序の変更、許可の変更、またはコアデータとライブラリファイルの変更が含まれます。予想外の状況。プロファイリングおよび分析ソフトウェアと並行して使用すると、エラー処理やパフォーマンスボトルネックなど、プログラムの領域でメモリリークを検出することもできます。コンピューターのセキュリティの場合、システムを損なう可能性のあるオーバーフローなどの危険な問題は、正しいセットアップで捉えることができます。ただし、ファズテストはソフトウェアテストの唯一の方法として使用することはできず、品質保証とソフトウェア検査のより大きなプロセスの一部である必要があります。