灰色のボックス
##グレーボックスとは何ですか?
灰色のボックスは、ソフトウェアの内部動作に関する知識が限られているソフトウェアのテストを示しています。グレイボックステストは、ハッカーが限られた情報を使用してターゲットのセキュリティネットワークの長所と短所を特定する必要がある倫理的なハッキング手法です。
##灰色のボックスを理解する
グレーボックスは、テスターがソフトウェアのコードの内部ロジックと構造を調べるホワイトボックステストと、テスターがソフトウェアのコードについて何も知らないブラックボックステストのハイブリッドです。グレーボックステストを理解するには、最初にブラックボックステストとホワイトボックステストを理解する必要があります。
###ブラックボックスとホワイトボックスのテスト
ブラックボックステストでは、ユーザーによる入力と、それらの入力に対してソフトウェアが生成する出力のみを調べます。ブラックボックステストでは、プログラミング言語やその他の技術的な詳細に関する知識は必要ありません。これは、システムテストおよび受け入れテストで使用される高レベルのテストの一種です。ソフトウェアエンジニアは、ブラックボックステストを実行するためにソフトウェア要件仕様(SRS)ドキュメントを必要とします。このテストは、ブラックボックステスターが入力から出力がどのように生成されるかを知らないエンドユーザーの視点を取ります。
ホワイトボックステストには、関連するプログラミング言語を含む、ソフトウェアの構築に使用される技術とプラットフォームに関する深い知識が必要です。これは、単体テストおよび適応症テストで使用される低レベルのテストの一種です。ソフトウェアエンジニアは、アプリケーションの作成に使用されるプログラミング言語を理解して、そのソースコードを理解できるようにする必要があります。ホワイトボックステストの主な目的は、セキュリティを強化し、入力と出力がアプリケーションをどのように流れるかを調べ、設計と使いやすさを向上させることです。ホワイトボックステスターが特定の入力から期待される出力を取得しない場合、その結果は修正が必要なバグであると見なされます。
##グレイボックステストのしくみ
グレーボックステストには、ブラックボックステストとホワイトボックステストの両方の重要なコンポーネントが含まれており、どちらかを単独で取得するよりも優れた結果を得ることができます。エンドユーザーと開発者の両方が、アプリケーションのソースコードに関する限られた(部分的な)知識を使用してグレーボックステストを実行します。グレイボックステストは手動または自動で行うことができます。ブラックボックステストよりも包括的で時間がかかりますが、ホワイトボックステストほど包括的でも時間もかかりません。グレーボックステスターには、詳細な設計ドキュメントが必要です。
グレイボックステストには、入力、出力、メジャーパス、およびサブ機能の識別が含まれます。次に、サブ関数の入力と出力の開発、サブ関数のテストケースの実行、およびそれらの結果の検証に進みます。
##グレーボックスの例
灰色のボックステスターは、Webサイト上のリンクをチェックして修正する場合があります。リンクが機能しない場合、テスターはHTMLコードを変更してリンクを機能させようとし、ユーザーインターフェイスを再チェックしてリンクが機能するかどうかを確認します。灰色のボックステスターは、オンライン計算機もテストする場合があります。テスターは入力(1 + 1、2 * 2、5-4、15/3などの数式)を定義し、計算機がそれらの入力に対して正しい出力を提供することを確認します。灰色のボックステスターは、計算機のHTMLコードにアクセスでき、エラーが識別された場合はコードを変更できます。
グレーボックステストでは、アプリケーションのユーザーインターフェイス(プレゼンテーションレイヤー)と、その内部動作(コード)の両方を調べます。主に統合テストと侵入テストで使用されますが、アルゴリズムテストには適していません。グレイボックステストは通常、マトリックステスト、回帰テスト、直交配列テスト、パターンテストなどの手法を通じて、アプリケーションのユーザーインターフェイス、セキュリティ、またはオンライン機能をテストするために使用されます。グレーボックステスターは、コンテキスト固有の問題を特定する可能性が最も高くなります。
「灰色」とは、アプリケーションの内部動作を確認するテスターの部分的な能力を指します。 「白」は、ソフトウェアのインターフェイスを介して内部の動作を確認できることを意味し、「黒」は、ソフトウェアの内部動作を確認できないことを意味します。グレイボックステストは半透明テストと呼ばれることもあり、ホワイトボックステストはクリアテストと呼ばれることもあり、ブラックボックステストは不透明テストと呼ばれることもあります。
##ハイライト
-グレーボックステストは、基本的にホワイトボックス(完全な知識)とブラックボックス(知識なし)の方法論を組み合わせたものです。
-グレイボックステストは、ソフトウェアのバグを発見したり、悪用を見つけたりするための手法であり、基盤となるソフトウェアに関する限られた知識が事前にわかっています。
-この形式の「倫理的ハッキング」により、ソフトウェア開発者は修正とパッチを作成して、悪意のある攻撃者がこれらの悪用を利用するのを防ぐことができます。