• 検索結果がありません。

セキュリティ知識と実装との連携

第 3 章 提案手法

3.4 セキュリティ知識と実装との連携

節でセキュリティ知識とセキュリティ要求、セキュリティテストの関係について整 理する。

3.4.1 セキュリティ知識の選択

CWE、CAPECはソフトウェアの問題すべてを網羅しており、特定のアプリケー

ション用としては利用しづらい。そこで、開発するアプリケーションに関連のあ る脆弱性情報となるようにセキュリティ知識の選択を行う。具体的には、CWEの グラフ構造を利用して、CWEの脆弱性定義を特定のアプリケーションドメインに 選択する。これは次の3つのステップで実施される。

ステップ1, 準備: CWEの定義をグラフで扱えるように変換する。CWEはXML で公開されており、その依存関係を任意のツールで容易に木構造のグラフと して扱うことができる。

ステップ2, アプリケーションドメイン選択: 最初のステップでは対象アプリケー ションに対応する上位の定義を選択し、その下位(枝)の定義をすべて選択 する。実際にはCWEのViewタイプを選択することになる。例えば、Web アプリケーションの場合はOWASPのTop10 (CWE-928)や Web Problem (CWE−442)などである。

ステップ3, アプリケーションフレームワーク選択: これは対象フレームワーク 以外の問題の選択を解除する。例えば対象がRuby on Railsであれば、Java やPHP固有の脆弱性は関係ない。

以上の作業でCWE定義の中から開発中のアプリケーションに関連する脆弱性の みで構成されたCWEのサブセットグラフが得られる。実際には、現在のCWE定 義では不十分なために、上記の分類では選択されない場合がある。例えば、Rails におけるMass Assignment (CWE-915) が該当する。こうしたエントリは個別に 追加することで対応する。

CAPECについても同様に、CAPECのXML定義からグラフを作成する。CWE とCAPECの関連はCWE,CAPECですでに定義済みであるため、CWEのサブグ ラフと連携させるかたちで、CAPECのサブグラフを得ることができる。

セキュリティ知識(CWE,CAPEC)の選択と、コマンド抽象化ライブラリ(CALib)、 実装コード、テストケースの関係を図3.12に示す。CWE、CAPECはドメイン選 択と、アプリケーションフレームワーク選択で、対象のアプリケーションに該当す るサブセットとなる。ソースコード上のコマンドはコマンド抽象化ライブラリでの 定義にしたがって、CWE,CAPECと関連付けられる。ここでのメトリックス(図 ではカバレッジ)は、CWEのサブセットグラフに関連するコマンド数と、CAPEC と関連するテストケース数である。このメトリックスはあくまで指標であり、想

定される脆弱性を網羅することで、開発者が意識していなかった問題を発見する ことが目的である。アプリケーションにセキュリティ上の問題がないのであれば

CWEやCAPECとの関連は小さくなる。以上の手法を実際のアプリケーションに

適用した結果の詳細は次章で示す。

図3.12: CWE、CAPECの項目選択とCALibによるアプリケーションコード とテストケースとの関連付けの関係

3.4.2 セキュリティ知識を用いたセキュリティ保証

セキュリティ知識を用いることで、コマンド抽象化ライブラリでのセキュリティ 関連コマンドの体系的な分類が可能となる。図3.13は図3.1のセキュリティ知識 と開発プロセスとの関係をより詳細に示したものである。アプリケーションコー ドを解析することでCWE、CAPECとセキュリティ関連コマンドとの関係が体系 的なグラフの形で得られる。選択されたCWEを元に、セキュリティ要求の妥当 性を確認することができる。また想定しているにもかかわらず選択されなかった CWEがある場合は、コマンド抽象化ライブラリの定義が不十分である可能性があ る。セキュリティテストケース作成はCAPECを参照して行う。

図3.13: セキュリティ知識によるセキュリティ要求定義とセキュリティテスト カバレッジの計測

Outline

関連したドキュメント