この記事の内容
実際に
ホワイトボックステストの 基礎:SDLCの 早期に セキュリティリスクを 特定する
ソフトウェアセキュリティに
ここで
ホワイトボックステストを解説
ホワイトボックステストとは?
ホワイトボックステストとは、テスターがソフトウェアの内部構造やネットワークを把握したうえで行うテスト手法です。つまり、テスターは内部情報を持っています。ホワイトボックステストでは、テスターやツールがテスト対象のシステムやネットワークにアクセスできます。そのため、ソフトウェアやネットワークの内部を確認し、潜在的または既存のセキュリティ上の脆弱性を発見できるという利点があります。

ホワイトボックステストの
ホワイトボックステストはブラックボックステストとは
ホワイトボックステストの目的
なぜ
1. セキュリティリスクを
クラウドネイティブアプリケーションセキュリティの
セキュリティ脆弱性の
2. バグを
ソフトウェアチームは
つまり、
ホワイトボックステストの種類
ホワイトボックステストには、
実行テスト/単体テスト:コードの
一部を 実行し、 その 出力を 期待される 結果と 比較する ホワイトボックステストです。 期待どおりの 結果が 得られなければ、 欠陥が ある ため 修正が 必要です。 実行テストは 継続的に 行います。 静的テスト/構造
解析:コードを 実行せずに、 コードベースを 詳しく 分析して バグや 脆弱性を 探します。 たとえば、 テスターは 静的アプリケーションセキュリティテストツール (SAST)を 使って コードベースを 分析し、 脆弱性を 特定できます。 SASTでは、 設定解析、 セマンティック解析、 データフロー解析など、 特定の 観点から アプリケーションを 詳細に 分析し、 ソースコードの 安全性を 確保します。 ミューテーションテスト:通常、
最後の 段階で 行います。 一般的な バグチェックに 加えて、 プログラムを 拡張する 際に 最適な コーディング戦略を 判断する ための 分析を 行います。
何をテストするのか
まず、
一般に、
内部の
セキュリティ上の 抜け穴 コード内での
特定の 入力値の 流れ 期待どおりの
出力と 予期しない 出力 壊れている、または
構造が 不適切な コードパス 条件ループの
ロジック 各関数や
クラスの 動作 特定の
入力値に 対する ソフトウェアの 処理
ホワイトボックステストの手法
ホワイトボックス方式の
ホワイトボックステストで
条件網羅:論理条件を
用いて、 サブステートメント内の 変数を テストする 手法 命令
網羅:コード内の 命令に 対して 一連の テストを 実行する 手法で、 行網羅とも 呼ばれます。 すべての 命令を 少なくとも 1回テストします。 分
岐 網羅:コード内の すべての 分岐を 少なくとも 1回テストできているかを 確認する 手法 パス網羅:通常、
アプリケーション内の 各パスを 個別に テストする ために 行います。 データフローテスト:コード内の
変数を 基準に、 ソフトウェア内の データの 流れを 調べる 手法
ホワイトボックステストとブラックボックステストの比較
ホワイトボックステストとブラックボックステストは、
ホワイトボックステスト | ブラックボックステスト |
|---|---|
開発者と | 通常、 |
アプリケーションの | アプリケーションの |
ソフトウェアコードへの | ソフトウェアコードへの |
主に | 主に |
コードの | 機能が |
主な | 主な |

その
ホワイトボックステストのメリットとデメリット
ホワイトボックステストには、
メリット:
テスターは
テスト対象の システムに ついて 事前知識が ある ため、 情報収集や 偵察に かかる 時間を 大幅に 削減できます。 他の
どの テスト手法よりも 徹底した テストが 可能で、 より 多くの セキュリティリスクを 発見できます。 低レベルで
行う テストである ため、 SonarQubeなどの 自動セキュリティツールを 活用して CIパイプラインに 組み込めます。 コードに
近い 段階で テストできる ため、 開発者は 発見された 脆弱性を 容易に 修正できます。
デメリット:
徹底的に
テストする ため、 最も 時間と 費用が かかる テスト手法です。 テスト対象の
システムに 関する 深い 知識が 必要です。
まとめ
ホワイトボックステストは、
Snyk Codeのような