What is Gray Box Testing?
グレーボックステストは、 アプリケーション セキュリティ ホワイトボックステストとブラックボックステストをミックスしたテスト手法。 ホワイトボックス評価では、テスターはテスト対象のシステム(ソースコード、設計ドキュメントなど)に関する完全な内部知識を持っています。 ブラックボックス評価は、システムの内部を知らなくても実行されます。
グレーボックステストは、評価者にシステム内部の部分的な知識を提供することで、違いを分割します。 たとえば、グレーボックステスターは、アプリケーションのソースコードについて完全な知識を持っていなくても、その部分的な知識や設計ドキュメントにアクセスできる場合があります。 これにより、ブラックボックステストよりも多くの洞察が得られ、ホワイトボックス評価よりも少ない洞察が得られます。
グレーボックステスト戦略
A gray box tester has more information than in a ブラックボックステスト ホワイトボックステストよりも少なくなります。 これは意図的なものであり、グレーボックステスターは両方のアプローチの利点を組み合わせることができます。
グレーボックステストは、提供された情報を最大限に活用することで、ブラックボックス評価の効率とテストカバレッジを向上させることができます。 テスト担当者は、アプリケーションのソース コードに完全にアクセスできるわけではありませんが、アプリケーションのコア機能を理解するのに十分な知識とドキュメントを持っています。 これにより、やみくもにテストするのではなく、機能やセキュリティの問題に焦点を当てたテストケースを設計できます。
グレーボックス検定者は、ホワイトボックス検定よりも情報が少ないため、検定の効率とリアリズムを向上させることができます。 評価への入力の数を減らすことで、提供されたコードやドキュメントの処理やレビューではなく、アクティブなテストに時間を集中させることができます。 さらに、評価者にシステムに関する完全な知識を持たせないことは、システムが実際にどのように機能するかではなく、どのように機能するように設計されているかについてのバイアスを回避するのに役立ちます。
グレーボックステストを実行する手順
グレーボックス評価は、テスト対象のシステムに関する利用可能な知識に基づく構造化された評価です。 次の手順に従う必要があります。
- ホワイトボックスおよびブラックボックスのテスト手法に基づく入力の識別
- 提供されたドキュメントに基づいて、これらの入力が生成する必要がある出力を特定します
- テストする必要がある主要な制御フローを特定する
- 詳細なレベルのテストを受ける必要がある重要なサブ機能を特定する
- サブ関数への入力の識別
- サブ関数が特定の入力に対して生成する出力を特定します
- このサブ関数のテストケースを開発して実行する
- サブ関数がテスト ケースに対して予期される結果を生成することを確認します
- すべてのサブ機能について、手順4〜8を繰り返します
グレーボックステスト手法
グレーボックステストは、次のようないくつかの異なる方法で実行できます。
- マトリックステスト: マトリックステストは、プログラム内の変数に焦点を当て、それらを列挙し、それらがもたらすリスクを評価し、それらが正しく効率的に使用されていることをテストします。
- リグレッションテスト: コードは、機能を追加したり、セキュリティの問題を修正したりするために変更される場合があります。 回帰テストでは、アプリケーションが変更された後もテストに合格していることを確認します。
- パターンテスト: パターンテストでは、アプリケーションの過去を調べて、過去に欠陥を引き起こした傾向を特定し、将来も欠陥を引き起こす可能性がある傾向を特定します。 これらのテストの結果は、これらの問題が今後再発するのを防ぐために使用できます。
- 直交アレイ試験(OAT): OAT は、少数の複雑な入力を持つアプリケーションで使用されます。 統計を使用して、徹底的なテストのオーバーヘッドなしに適切なテストカバレッジを提供する一連のテストケースを作成します。
Black Box vs White Box Testing vs Gray box
ブラックボックス、ホワイトボックス、グレーボックスのテストでは、テスト対象のシステムの内部に関するさまざまなレベルの知識をテスターに提供します。 極端な例を挙げると、ホワイトボックステストでは、ソースコードと設計ドキュメントへの完全なアクセスが可能になります。 一方、ブラックボックステスターは、アプリケーションがどのように機能するかについて内部的な知識を持っていません。
これらのさまざまなレベルの知識とアクセスは、テストプロセスに大きく影響します。 主な違いは次のとおりです。
- Test Coverage: ホワイトボックステストは、コードに完全にアクセスできるため、完全なテストカバレッジを保証できますが、ブラックボックステストではそのような保証はありません。 灰色のボックスは、テスト担当者がドキュメントに基づいてテスト計画を実行できますが、文書化されていないコードパスやアクセスできないコードパスには見えないため、真ん中にあります。
- SDLCの場所: ホワイトボックステストはソースコードを使用するため、早い段階で実装できます CI/CD パイプライン.グレーボックステストとブラックボックステストは実行中のコードに対して行われるため、SDLCの後半で実施されます。
- 分析ツール: ホワイトボックステストでは、静的コード解析ツールを使用してソースコードを解析します。 グレーボックスとブラックボックスのテスト用途 動的コード解析 ツール ( 脆弱性スキャンを使用して、実行中のアプリケーションを分析します。
- Tester Mindset: ホワイトボックステストは開発者の考え方から生まれ、ブラックボックステストはユーザーの視点から実行されます。 グレーボックステストは、アプリケーションがどのように機能するように設計されているかについての開発者の偏見を排除するだけでなく、平均的なユーザーが持っているよりも多くの情報へのアクセスを提供することで、違いを分割します。
Check Point CRT
Check Point’s プロフェッショナル・サービス ポートフォリオは、組織のアプリケーションセキュリティの取り組みをサポートするのに役立ちます。 ホワイトボックス、グレーボックス、ブラックボックスのセキュリティ評価は、チェック・ポイントの サイバーセキュリティレジリエンス/ペネトレーションテストサービス.
チェック・ポイントの 専門的な試験サービス.また、自由に お問い合わせ カスタマイズされたテストプログラムと、組織内のセキュリティ問題の特定と修正にどのように役立つかについての詳細をご覧ください。
