(57)【要約】【課題】開発対象データシステムに実装された場合の影響を考慮して、開発対象データシステムに実装すべきセキュリティ対策の組合せを提示できるようにする。【解決手段】リスク分析部２０２は、開発対象データシステムで対処すべき脅威を対象脅威として複数特定する。対策解析部２０３は、対象脅威ごとに、セキュリティ対策を抽出する。最適化実行部２０４は、対策解析部２０３により抽出されたセキュリティ対策を組み合わせて複数の対象脅威に対するセキュリティ対策の組合せパターンを生成し、組合せパターンごとに、組合せパターンに含まれるセキュリティ対策の組合せによって生じる効果を解析して当該セキュリティ対策の組合せが実装された場合の開発対象データシステムへの影響を表す実装影響値を算出し、算出した実装影響値に基づき、特定の組合せパターンを選択する。【選択図】図３
2015130152.tif 000002
【特許請求の範囲】
【請求項１】
開発対象の開発対象データシステムへのセキュリティ対策の実装を支援する情報処理装置であって、
セキュリティに関する複数の脅威が定義されるとともに、脅威ごとに、１つ以上のセキュリティ対策が定義されるセキュリティ対策情報を記憶するセキュリティ対策情報記憶部と、
前記セキュリティ対策情報で定義されている前記複数の脅威のうち、前記開発対象データシステムで対処すべき脅威を対象脅威として複数特定する対象脅威特定部と、
対象脅威ごとに、前記セキュリティ対策情報で定義されているセキュリティ対策を抽出するセキュリティ対策抽出部と、
前記セキュリティ対策抽出部により抽出されたセキュリティ対策を組み合わせて複数の対象脅威に対するセキュリティ対策の組合せパターンを生成し、組合せパターンごとに、組合せパターンに含まれるセキュリティ対策の組合せによって生じる効果を解析して当該セキュリティ対策の組合せが実装された場合の前記開発対象データシステムへの影響を表す実装影響値を算出し、算出した実装影響値に基づき、特定の組合せパターンを選択する組合せパターン選択部とを有することを特徴とする情報処理装置。
【請求項２】
前記セキュリティ対策抽出部は、
対象脅威ごとに、前記セキュリティ対策情報で定義されているセキュリティ対策を抽出するとともに、抽出したセキュリティ対策が単独で実装された場合の前記開発対象データシステムへの影響を表す実装影響値を算出し、
前記組合せパターン選択部は、
組合せパターンごとに、前記セキュリティ対策抽出部により算出されたセキュリティ対策の単独の実装影響値と、セキュリティ対策の組合せによって生じる効果の解析結果とに基づき、当該セキュリティ対策の組合せが実装された場合の前記開発対象データシステムへの影響を表す実装影響値を算出することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、更に、
前記開発対象データシステムのハードウェア構成及びソフトウェア構成が定義されるコンフィギュレーションデータを解析して、前記開発対象データシステムで許容される実装影響値の条件を実装影響値条件として導出する実装影響値条件導出部を有し、
前記組合せパターン選択部は、
前記実装影響値条件に合致する実装影響値の組合せパターンを選択することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記組合せパターン選択部は、
前記実装影響値として、セキュリティ対策の組合せが実装された場合の前記開発対象データシステムでのメモリ使用量を表す値、セキュリティ対策の組合せが実装された場合の前記開発対象データシステムでの処理時間のオーバーヘッドを表す値、セキュリティ対策の組合せが実装された場合の脅威に対する前記開発対象データシステムの脆弱性を表す値の少なくともいずれかを算出することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記セキュリティ対策抽出部は、
抽出したセキュリティ対策ごとに、前記実装影響値として、当該セキュリティ対策が単独で実装された場合の前記開発対象データシステムでのメモリ使用量を表す値、当該セキュリティ対策が単独で実装された場合の前記開発対象データシステムでの処理時間のオーバーヘッドを表す値、当該セキュリティ対策が単独で実装された場合の脅威に対する前記開発対象データシステムの脆弱性を表す値の少なくともいずれかを算出することを特徴とする請求項２に記載の情報処理装置。
【請求項６】
前記セキュリティ対策情報記憶部は、
セキュリティ対策ごとに、セキュリティ対策が単独で実装された場合の実装影響値を算出するためのパラメータが定義されているセキュリティ対策情報を記憶しており、
前記セキュリティ対策抽出部は、
抽出したセキュリティ対策ごとに、前記セキュリティ対策情報に定義されているパラメータを用いて、セキュリティ対策が単独で実装された場合の実装影響値を算出することを特徴とする請求項２に記載の情報処理装置。
【請求項７】
前記対象脅威特定部は、
前記開発対象データシステムのハードウェア構成及びソフトウェア構成が定義されるコンフィギュレーションデータを解析して、対象脅威を特定することを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記組合せパターン選択部は、
選択した組合せパターンを表示装置に表示することを特徴とする請求項１に記載の情報処理装置。
【請求項９】
前記情報処理装置は、
前記開発対象データシステムの開発が行われる開発装置と接続されていることを特徴とする請求項１に記載の情報処理装置。
【請求項１０】
前記情報処理装置は、
前記開発対象データシステムの開発が行われる開発装置に含まれることを特徴とする請求項１に記載の情報処理装置。
【請求項１１】
開発対象の開発対象データシステムへのセキュリティ対策の実装を支援するコンピュータであって、
セキュリティに関する複数の脅威が定義されるとともに、脅威ごとに、１つ以上のセキュリティ対策が定義されるセキュリティ対策情報を記憶するコンピュータに、
前記セキュリティ対策情報で定義されている前記複数の脅威のうち、前記開発対象データシステムで対処すべき脅威を対象脅威として複数特定する対象脅威特定処理と、
対象脅威ごとに、前記セキュリティ対策情報で定義されているセキュリティ対策を抽出するセキュリティ対策抽出処理と、
前記セキュリティ対策抽出処理により抽出されたセキュリティ対策を組み合わせて複数の対象脅威に対するセキュリティ対策の組合せパターンを生成し、組合せパターンごとに、組合せパターンに含まれるセキュリティ対策の組合せによって生じる効果を解析して当該セキュリティ対策の組合せが実装された場合の前記開発対象データシステムへの影響を表す実装影響値を算出し、算出した実装影響値に基づき、特定の組合せパターンを選択する組合せパターン選択処理とを実行させることを特徴とするプログラム。
【請求項１２】
前記対象脅威特定部は、
前記開発対象データシステムに仮想された複数のハードウェア構成について、ハードウェア構成の単位で、対象脅威を特定し、
前記セキュリティ対策抽出部は、
ハードウェア構成の単位で、対象脅威ごとに、前記セキュリティ対策情報で定義されているセキュリティ対策を抽出し、
前記組合せパターン選択部は、
ハードウェア構成の単位で、前記セキュリティ対策抽出部により抽出されたセキュリティ対策を組み合わせて複数の対象脅威に対するセキュリティ対策の組合せパターンを生成し、組合せパターンごとに、組合せパターンに含まれるセキュリティ対策の組合せによって生じる効果を解析して当該セキュリティ対策の組合せが実装された場合の前記開発対象データシステムへの影響を表す実装影響値を算出し、算出した実装影響値に基づき、特定の組合せパターンを選択するとを有することを特徴とする請求項１に記載の情報処理装置。
【請求項１３】
前記セキュリティ対策抽出部は、
ハードウェア構成の単位で、対象脅威ごとに、前記セキュリティ対策情報で定義されているセキュリティ対策を抽出するとともに、抽出したセキュリティ対策が単独で実装された場合の前記開発対象データシステムへの影響を表す実装影響値を算出し、
前記組合せパターン選択部は、
ハードウェア構成の単位で、組合せパターンごとに、前記セキュリティ対策抽出部により算出されたセキュリティ対策の単独の実装影響値と、セキュリティ対策の組合せによって生じる効果の解析結果とに基づき、当該セキュリティ対策の組合せが実装された場合の前記開発対象データシステムへの影響を表す実装影響値を算出することを特徴とする請求項１２に記載の情報処理装置。
【請求項１４】
前記組合せパターン選択部は、
２以上のハードウェア構成の実装値影響値を一覧表示することを特徴とする請求項１３に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、開発対象の開発対象データシステムへのセキュリティ対策の実装を支援する技術に関する。
以下では、組込みシステムを開発対象データシステムの例として説明する。
【背景技術】
【０００２】
組込みシステムでは、第三者によって製品の解析が行われた結果、模倣品が製造され、ビジネスが阻害されるという問題や、組込みシステムの運用中にも外部からの攻撃により被害が生じるといった問題があり、それらを防止するためにセキュリティ対策が必要となっている。
【０００３】
従来のセキュリティ評価支援ツールでは、対象とするシステムが情報処理装置上で動作し、複数のコンポーネントから構成されているものであって、特にリソースに制限のある組込みシステムを対象としたものではなかった（例えば、特許文献１、２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３３１３８３号公報
【特許文献２】特開２００９−１１０１７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年、組込みシステムにおいてセキュリティ対策が必要との認識が高まっている一方で、開発予算において、セキュリティ対策は組込みシステムの本来の機能ほどには重視されないことが多く、限られたリソースでセキュリティ対策を行わなければならないという課題がある。
【０００６】
組込みシステムに対するセキュリティリスク分析は、開発前に机上で経験に則って検討を行うことがあっても体系的なものではなく、多くは開発完了後に行われている。
そのため、致命的な欠陥によりセキュリティ対策の見直しが必要となった場合には開発の大幅な遅れを招き、或いは何等かの理由により修正を行わない場合には次製品での課題にするなど潜在的な問題を包含したまま先送りになることも多い。
このような現状に対して、開発全体を効率よく行うためには、セキュリティ対策をどのタイミングで行うべきかという課題がある。
【０００７】
リスク分析の結果、脆弱性に対して何らかの対策が必要な場合に、組込みシステムではメモリ容量（ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）サイズ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）サイズ）、処理時間等に制約があるため、通常すべての対策を施すことが可能であるとは限らない。
そのため、制約条件のもとにおいて、いかに効果的なセキュリティ対策を実装することができるかを配慮しなければならない。
【０００８】
組込みシステムの本来の機能を実装した上でさらにセキュリティ対策を加えるということは、セキュリティ対策のためのプログラムによりメモリが使用され、またセキュリティ対策によって処理量が増えるために処理時間にオーバーヘッドが生じる。
セキュリティ対策のためのプログラムのプログラムサイズはトータルのＲＯＭサイズ内に収まらなければならず、またセキュリティ対策のためのオーバーヘッドを含めても機能要求の許容時間内で所定の処理が行われなければならない。
【０００９】
セキュリティ対策を実装する際に、実際にすべての方法を試してみるにはＴＡＴ（Ｔｕｒｎ  Ａｒｏｕｎｄ  Ｔｉｍｅ）が長いという課題がある。
また優先順位や効果を考慮せずにセキュリティ対策を実装すると肝心な対策が後回しになってしまったり、偏った対策になってしまったりという可能性があり、開発上の効率が悪いという課題がある。
【００１０】
この発明は上記のような事情に鑑みたものであり、開発対象データシステムに実装された場合の影響を考慮して、開発対象データシステムに実装すべきセキュリティ対策の組合せを提示できるようにすることを主な目的とする。
【課題を解決するための手段】
【００１１】
本発明に係る情報処理装置は、
開発対象の開発対象データシステムへのセキュリティ対策の実装を支援する情報処理装置であって、
セキュリティに関する複数の脅威が定義されるとともに、脅威ごとに、１つ以上のセキュリティ対策が定義されるセキュリティ対策情報を記憶するセキュリティ対策情報記憶部と、
前記セキュリティ対策情報で定義されている前記複数の脅威のうち、前記開発対象データシステムで対処すべき脅威を対象脅威として複数特定する対象脅威特定部と、
対象脅威ごとに、前記セキュリティ対策情報で定義されているセキュリティ対策を抽出するセキュリティ対策抽出部と、
前記セキュリティ対策抽出部により抽出されたセキュリティ対策を組み合わせて複数の対象脅威に対するセキュリティ対策の組合せパターンを生成し、組合せパターンごとに、組合せパターンに含まれるセキュリティ対策の組合せによって生じる効果を解析して当該セキュリティ対策の組合せが実装された場合の前記開発対象データシステムへの影響を表す実装影響値を算出し、算出した実装影響値に基づき、特定の組合せパターンを選択する組合せパターン選択部とを有することを特徴とする。
【発明の効果】
【００１２】
本発明は、組合せパターンごとに、組合せパターンに含まれるセキュリティ対策の組合せによって生じる効果を解析してセキュリティ対策の組合せが実装された場合の開発対象データシステムへの影響を表す実装影響値を算出し、算出した実装影響値に基づき、特定の組合せパターンを選択する。
このため、開発対象データシステムに実装された場合の影響を考慮して、開発対象データシステムに実装すべきセキュリティ対策の組合せを提示することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１に係るセキュリティリスク分析装置を用いた開発手順の例を示す図。
【図２】実施の形態１に係るセキュリティリスク分析装置及び開発対象データシステムのハードウェア構成例を示す図。
【図３】実施の形態１に係るセキュリティリスク分析装置の機能モジュール構成例を示す図。
【図４】実施の形態１に係る制約条件リストの例を示す図。
【図５】実施の形態１に係る対象脅威リストの例を示す図。
【図６】実施の形態１に係る対策候補リストの例を示す図。
【図７】実施の形態１に係る最適化対策リストの例を示す図。
【図８】実施の形態１に係る対策の組合せパターンを示す図。
【図９】実施の形態１に係る対策の組合せパターンを示す図。
【図１０】実施の形態１に係るセキュリティリスク分析装置におけるデータ入出力関係を示す図。
【図１１】実施の形態１に係るセキュリティリスク分析装置の動作例を示すフローチャート図。
【図１２】実施の形態１に係る最適化実行部の動作例を示す図。
【図１３】実施の形態２に係るセキュリティリスク分析装置、開発対象データシステム及びソフトウェア開発環境の構成例を示す図。
【図１４】実施の形態３に係る開発対象データシステム及びソフトウェア開発環境の構成例を示す図。
【図１５】実施の形態４に係るセキュリティリスク分析装置の動作例を示すフローチャート図。
【図１６】実施の形態４に係る複合最適化対策リストの例を示す図。
【発明を実施するための形態】
【００１４】
実施の形態１．
本実施の形態では、組込みシステムの開発工程の中でセキュリティリスク分析を行いながら、セキュリティ対策の実装を効率的に行うことを可能にするセキュリティリスク分析装置を説明する。
本実施の形態に係るセキュリティリスク分析装置は、組込みシステムにおける制約の範囲内で、セキュリティリスク対策の選択と実施、及びこれに伴う見積もり・評価を可能にする。
また、本実施の形態に係るセキュリティリスク分析装置は、リソースに制限がある（メモリ容量が少ない、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）性能が低い等）組込み環境において、存在する脅威を抽出するとともに、実装すべき最適なセキュリティ対策を選択して実装することを可能にする。
また、本実施の形態に係るセキュリティリスク分析装置は、個々のセキュリティ対策について見積もった後に、各セキュリティ対策の依存関係を解析し、セキュリティ対策の組合せを考慮しリスク値を最小化するような最適解を見つけることで、制約条件のもとで、どのセキュリティ対策を選択して実装するのが最適であるかを調べることができる。
【００１５】
図１は、本実施の形態に係るセキュリティリスク分析装置１を用いた開発手順を示す。
セキュリティリスク分析装置１は、情報処理装置の例に相当する。
【００１６】
セキュリティリスク分析装置１は、開発対象データシステム（ハードウェア及びソフトウェアのコンポーネントから構成される）のコンフィギュレーションデータ２、例えば開発対象データシステムのソフトウェアプログラムの構成が定義される情報、ハードウェア構成が定義される情報、シミュレーション情報、属性情報等からなる情報の入力を受ける。
開発対象データシステムは、例えば組込みシステムである。
セキュリティリスク分析装置１は、コンフィギュレーションデータ２を解析して、リスクを抽出するとともに、制約条件にあわせてセキュリティ対策の組合せを選び出して最適化対策リスト３として提示する。
ユーザ（あるいは開発者）は、最適化対策リスト３に示されるセキュリティ対策の組合せに従って、開発対象データシステムにセキュリティ対策を実装する。
【００１７】
コンフィギュレーションデータ２には、開発対象データシステムのハードウェアおよびソフトウェア構成から自動的かつ機械的に得られる情報に加えて、ユーザ（あるいは開発者）が予め入力しておく必要のある情報がある。
前者は、ソフトウェアの実機上での動作をシミュレートするために必要な各種データである。
後者は開発対象データシステム上で扱われるデータ（情報資産）に対して、資産価値という観点から評価の重み付けを与えるための数値である。
開発対象データシステム内の各情報資産はプログラムの中で一意のパラメータ（名称）として記述されているものに対応するため、それぞれに情報資産の価値を数値として定義することにより、開発対象データシステム内において情報資産の所在や流れを自動的に解析することが可能になる。
開発対象データシステムの開発を行う開発環境は、開発対象データシステムのプログラム内部のパラメータの一覧を識別可能なフォーマットでユーザに示すことができ、それぞれのパラメータの資産価値をユーザが判断して入力するようにユーザインタフェースを通じて促すことができる。
そのようにして、情報資産の価値を決定し定義することができる。
【００１８】
図２は、本実施の形態に係るセキュリティリスク分析装置１及び開発対象データシステム１１２のハードウェア構成例を示す。
【００１９】
図２において、セキュリティリスク分析装置１は、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、ハードディスク１０４、表示ディスプレイ１０５、キーボード１０６、マウス１０７、通信ボード１０８からなり、これらは内部バス１０９に接続されている。
セキュリティリスク分析装置１は、通信ボード１０８を介して、外部バス１１９を経由し、開発対象データシステム１１２に接続されている。
開発対象データシステム１１２は、ＣＰＵ１１３、コプロセッサ１１４、ＲＡＭ１１５、ＲＯＭ１１６、通信ボード１１７からなり、これらは内部バス１１８に接続されている。
また、通信ボード１１７を介して外部バス１１９に接続されている。
【００２０】
図３は、本実施の形態に係るセキュリティリスク分析装置１の機能モジュール構成例を示す。
【００２１】
図３において、脅威データベース２０９は、開発対象データシステムの開発において考慮すべき複数の脅威が定義される脅威情報を記憶する。
【００２２】
実装データベース２１０は、脅威データベース２０９で定義されている複数の脅威が定義されるとともに、脅威ごとに、１つ以上のセキュリティ対策が定義されるセキュリティ対策情報を記憶する。
実装データベース２１０は、例えば暗号アルゴリズムのような機能モジュールを実装する際に、ターゲットＣＰＵに応じて必要なステップをインストラクションレベルで算出する際に参照する。
実装データベース２１０は、セキュリティ対策情報記憶部の例に相当する。
【００２３】
制約条件抽出部２０１は、コンフィギュレーションデータを解析して、制約条件リストを生成する。
制約条件リストでは、セキュリティ対策による開発対象データシステムのリソースへの影響及び処理時間への影響に対する制約条件が定義される。
制約条件リストの制約条件は実装影響値条件の例に相当し、制約条件抽出部２０１は実装影響値条件導出部の例に相当する。
【００２４】
リスク分析部２０２は、対象脅威リストを生成する。
より具体的には、リスク分析部２０２は、脅威情報で定義されている複数の脅威（すなわち、セキュリティ対策情報で定義されている複数の脅威）のうち、開発対象データシステムで対処すべき脅威を対象脅威として複数特定し、対象脅威が記述される対象脅威リストを生成する。
リスク分析部２０２は、対象脅威特定部の例に相当する。
【００２５】
対策解析部２０３は、対象脅威リストに記述される対象脅威ごとに、セキュリティ対策情報で定義されているセキュリティ対策を抽出するとともに、抽出したセキュリティ対策が単独で実装された場合の開発対象データシステムへの影響を表す実装影響値を算出する。
そして、対策解析部２０３は、セキュリティ対策ごとに、実装影響値が示される対策候補リストを生成する。
実装影響値は、例えば、開発対象データシステムにセキュリティ対策が単独で実装された場合のメモリ使用量を表す値、処理時間のオーバーヘッドを表す値、脅威に対する開発対象データシステムの脆弱性を表す値等である。
対策解析部２０３は、セキュリティ対策抽出部の例に相当する。
【００２６】
最適化実行部２０４は、対策解析部２０３により抽出されたセキュリティ対策を組み合わせて複数の対象脅威に対するセキュリティ対策の組合せパターンを生成する。
また、最適化実行部２０４は、組合せパターンごとに、組合せパターンに含まれるセキュリティ対策の組合せによって生じる効果を解析し、対策解析部２０３により算出されたセキュリティ対策の単独の実装影響値と、セキュリティ対策の組合せによって生じる効果の解析結果とに基づき、当該セキュリティ対策の組合せが実装された場合の開発対象データシステムへの影響を表す実装影響値を算出する。
そして、最適化実行部２０４は、算出した実装影響値と制約条件リストの制約条件に基づき、開発対象データシステムへ実装すべきセキュリティ対策の組合せパターンを選択する。
また、最適化実行部２０４は、選択した組合せパターンが示される最適化対策リスト３（図１）を生成する。
最適化実行部２０４は、組合せパターン選択部の例に相当する。
【００２７】
制約条件リスト記憶部２０５は、制約条件抽出部２０１により生成される制約条件リストを記憶する。
【００２８】
対象脅威リスト記憶部２０６は、リスク分析部２０２により生成される対象脅威リストを記憶する。
【００２９】
対策候補リスト記憶部２０７は、対策解析部２０３により生成される対策候補リストを記憶する。
最適化対策リスト記憶部２０８は、最適化実行部２０４が生成する最適化対策リスト３を記憶する。
【００３０】
制約条件リスト記憶部２０５、対象脅威リスト記憶部２０６、対策候補リスト記憶部２０７、最適化対策リスト記憶部２０８、脅威データベース２０９、実装データベース２１０は、図２のハードディスク１０４内に構成される。
また、制約条件抽出部２０１、リスク分析部２０２、対策解析部２０３、最適化実行部２０４は、プログラムであり、これらのプログラムは、通常は図２のハードディスク１０４に記憶されており、ＲＡＭ１０２にロードされた状態で、順次ＣＰＵ１０１に読み込まれ、実行される。
更に、ハードディスク１０４には図３に図示していないオペレーティングシステム（ＯＳ）も記憶されており、ＯＳの少なくとも一部がＲＡＭ１０２にロードされ、ＣＰＵ１０１はＯＳを実行しながら、図３に示す制約条件抽出部２０１、リスク分析部２０２、対策解析部２０３、最適化実行部２０４の機能を実現するプログラムを実行する。
また、実施の形態１〜４の説明において、「〜の判断」、「〜の判定」、「〜の抽出」、「〜の算出」、「〜の設定」、「〜の解析」、「〜の選択」、「〜の生成」、「〜の入力」、「〜の出力」等として説明する処理の結果を示す情報やデータや信号値や変数値がＲＡＭ１０２にファイルとして記憶される。
【００３１】
図４は、制約条件リストの詳細を示した例である。
【００３２】
制約条件リストには型名で表される種別、インストラクション構成、動作周波数等のＣＰＵに関する情報、使用可能なメモリ容量等が含まれる。
また、開発対象データシステムにおいて実現される各機能の単位で要する処理時間の値が含まれる。
許容範囲時間の欄には、開発対象データシステムに対する機能要件からみて、オーバーヘッドを含んだ許容範囲時間の値が設定される。
これは、ユーザの判断により本制約条件リストを後の工程で参照して利用する前に設定されるものである。
許容範囲時間の値はシステムへの要求仕様によって決まるので、セキュリティリスク分析装置１は、ユーザインタフェースを通じて外部から設定するための機構を備えている。
図４に示すように、制約条件リストには、ＲＯＭの使用可能バイト数、ＲＡＭの使用可能バイト数、各処理時間の許容時間範囲が記述されている。
つまり、制約条件リストには、セキュリティ対策によって消費されるＲＯＭのバイト数、ＲＡＭのバイト数の許容値（上限）が定義されおり、また、セキュリティ対策によって発生する処理時間のオーバーヘッドの許容値（上限）が定義されている。
【００３３】
図５は、対象脅威リストの詳細を示した例である。
【００３４】
対象脅威リストには、開発対象データシステムで対処すべき脅威の一覧とそれぞれのリスク値が含まれる。
脅威ＩＤは、各脅威の識別子であり、脅威データベース２０９の脅威情報及び実装データベース２１０のセキュリティ対策情報に示される脅威ＩＤと共通している。
リスク値は情報資産の価値と発生可能性をもとに自動的に算出される値である。
情報資産の価値は既に説明した通り、前の工程における所定の操作により定義されている。
一方、発生可能性は脅威データベース２０９を参照して得ることができる。
リスク値は資産の価値が高いほど、また発生可能性が大きいほど、大きい値をとるように設定される。
対象脅威リストにおいて一覧の結果が表示されるので、ユーザの認識と齟齬がないかどうかを確認することができる。
【００３５】
図６は、対策候補リストの詳細を示す。
【００３６】
対策候補リストは、脅威に対処する方式と、各方式を実現するための実装方法（セキュリティ対策）の候補、各実装方法を実装したときの実装影響値が含まれる。
実装影響値には、各実装方法の実装に必要なメモリ使用量（ＲＯＭ及びＲＡＭ）、各実装方法を実装したときに生じる処理時間のオーバーヘッド、各実装方法を実装した後に期待されるリスク値（脆弱性）の見積もり値が含まれる。
対策候補リストに示される各値は、個々のセキュリティ対策の実装をそれぞれ単独に評価した際の数値となる。
【００３７】
図７は、最適化対策リストの詳細を示した例である。
【００３８】
最適化対策リストには、対策組合せ、脅威ＩＤ、実装方法（セキュリティ対策）、実装影響値（ＲＯＭ、ＲＡＭ、時間、リスク）が含まれる。
対策組合せの欄には、セキュリティ対策の組合せパターンのＩＤが示される。
脅威ＩＤ、実装方法（セキュリティ対策）は、対策候補リストに示すものと同じである。
実装影響値であるメモリ使用量（ＲＯＭ及びＲＡＭ）、処理時間のオーバーヘッド、実装後に期待されるリスク値（脆弱性）の見積もり値は、セキュリティ対策の組み合わせによる相殺を含めて総合的に算出された値である。
図７において、下線を付している数値が、相殺により、対策候補リスト（図６）の数値から減少している数値である。
例えば、対策組み合わせ：７では、Ｕ００１：ＡＥＳ高速とＵ００９：ＡＥＳ高速で共通モジュールを使用可能であることからＲＯＭの増加を減らせる（Ｕ００９：ＡＥＳ高速のＲＯＭ使用量はＵ００１：ＡＥＳ高速のＲＯＭ使用量に吸収される）と判断したことを示している。
また、対策組み合わせ：１では、Ｕ００７：ストリーム暗号１の処理とＵ０１３：検算の処理とが並列化され、Ｕ００７：ストリーム暗号１の処理時間がＵ０１３：検算の処理時間に吸収されると判断したことを示している。
なお、図７では、最適化対策リストの出力方法を表としたが、最適化対策リストの出力方法は表だけとは限らず、リスク分析の総合プロファイラとして脅威の存在箇所、リソース増減とリスク増減の関係をグラフィカルに出力することも可能である。
【００３９】
また、セキュリティリスク分析装置１は、実装影響値、制約条件、リスク値等として指定された数値をユーザが見直すために実装影響値、制約条件、リスク値等の数値の再設定を可能とし、再設定した実装影響値、制約条件、リスク値等による最適化対策の評価を可能とするインタフェースを備える。
【００４０】
次に、動作について説明する。
図１０は、セキュリティリスク分析装置１の内部の機能ブロック（プログラム）及びデータの入出力関係を示す。
図１１は、セキュリティリスク分析装置１における処理を示したフローチャートである。
以下では、図１１を用いて、セキュリティリスク分析装置１の動作を説明する。
【００４１】
ステップＳ２１０１では、制約条件抽出部２０１が、開発対象データシステムのコンフィギュレーションデータ２を入力し、制約条件リストを生成する。
図４に示すように、制約条件リストにより、今後のセキュリティ対策の実装に使用可能なメモリ残量等が把握できる。
また、制約条件リストには、現状の各処理単位の処理時間がそれぞれ表示されるので、ユーザは、制約条件リストを参照して、開発対象データシステムへの要求仕様によって決まる処理時間の許容範囲値を所定のインタフェースを介して設定することができる。
【００４２】
ステップＳ２１０２では、リスク分析部２０２が、開発対象データシステムのコンフィギュレーションデータ２と脅威データベース２０９の脅威情報を入力し、セキュリティリスク分析を実行して、対象脅威リストを生成する。
リスク分析部２０２は、プログラムの動作、処理手順を命令実行レベルで解析し、脅威データベース２０９の脅威情報を参照することで、開発対象データシステムでの脅威の存在箇所及び脅威の種類を特定することができる。
また、リスク分析部２０２は、リスク値を情報資産の価値と発生可能性をもとに自動的に算出する。
ここで、図５のような対象脅威リストが表示されるので、ユーザは、リスク分析部２０２により抽出された脅威が自身の認識と齟齬がないかどうかを視覚的に確認することができる。
もし齟齬がある場合には、ユーザは、必要に応じて脅威データベース２０９のカスタマイズや設定数値の見直しや調整を、インタフェースを通じて行うことができる。
【００４３】
ステップＳ２１０３では、対策解析部２０３が、Ｓ２１０１で生成された制約条件リスト、Ｓ２１０２で生成された対象脅威リスト及び実装データベース２１０のセキュリティ対策情報を入力し、解釈を実行する。
ここでは、まず、対策解析部２０３は、対象脅威リストに示される脅威（Ｔｘｘｘ）ごとに、可能な方式（ＣＭｘｘｘ）をすべて挙げる。
次に、対策解析部２０３は、方式ごとに、方式を実現するための実装方法（セキュリティ対策）（Ｕｘｘｘ）をすべて挙げる。
更に、対策解析部２０３は、実装方法（セキュリティ対策）ごとに、実装方法（セキュリティ対策）を実装する際の使用リソース（ＲＯＭ、ＲＡＭサイズ）、処理のオーバーヘッド（時間）、その対策を実装することによる期待されるリスク値といった見積もり値を算出して、対策候補リストを生成する。
対策候補リストに示される実装影響値は、個々のセキュリティ対策をそれぞれ単独に評価した際の数値となり、セキュリティ対策の組み合わせによる効果は含まれていないものになる。
セキュリティ対策情報には、実装方法（セキュリティ対策）ごとに、実装方法（セキュリティ対策）が単独で実装された場合の実装影響値を算出するためのパラメータが記述されており、対策解析部２０３は、セキュリティ対策情報に記述されているパラメータを用いて、実装影響値を算出する。
【００４４】
ステップＳ２１０４では、最適化実行部２０４が、Ｓ２１０１で生成された制約条件リストとＳ２１０３で生成された対策候補リストを入力し、最適化対策リスト３を出力し、処理を終了する。
図１２は、最適化実行部２０４の処理手順を示す。
最適化実行部２０４は、開発対象データシステムにおけるメモリ使用可能量や処理時間の許容範囲といった制約条件を参照することにより、最適化処理１として、対策候補リストに示される対象脅威ごとのセキュリティ対策を網羅的に組み合わせて全組合せ対策リストを生成する。
次に、最適化実行処理２として、全組合せ対策リストの中から実装候補のセキュリティ対策の絞り込みを行い、最適化対策リスト３を生成する。
全組合せ対策リストは、図８及び図９に示すように、対象脅威ごとのセキュリティ対策に対して可能な全ての組み合わせを網羅的に調べて、全ての組合せの組合せパターンを生成し、組合せパターンごとに実装影響値（メモリ使用量、処理時間のオーバーヘッド、リスク値）を算出する。
この段階での実装影響値は、図７に示したように、セキュリティ対策の組合せによる効果（相殺、相乗効果等）が反映された値である。
最適化実行部２０４は、最適化実行処理２において、組合せパターンごとに、組合せパターンに含まれるセキュリティ対策が組み合わされて実装された場合のメモリ使用量、処理時間のオーバーヘッドをシミュレートし、セキュリティ対策の組合せによる効果が反映された値を算出する。
なお、リスク値は、組合せパターンに含まれるセキュリティ対策のリスク値のうちの最大値が用いられる。
最適化実行部２０４は、全組合せ対策リストの組合せパターンの中から、制約条件リストに示される制約条件に合致する組合せパターンを選択し、選択した組合せパターンが示される最適化対策リスト３を生成する。
最適化実行部２０４は、例えば、制約条件リストに示されるメモリ使用量の条件、処理時間の条件に合致する実装影響値の組合せパターンを選択する。
制約条件に合致する組合せパターンが多数存在する場合は、実装影響値がよい順（メモリ使用量が少ない順、処理時間のオーバーヘッドが少ない順、リスク値が小さい順）に、上位ｎ（ｎは任意数）個の組合せパターンを選択する。
そして、最適化実行部２０４は、生成した最適化対策リスト３を表示装置に表示する。
最適化実行部２０４は、このように、各セキュリティ対策の依存関係を解析し、制約条件の範囲内で、セキュリティ対策の組み合わせによりメモリ使用効率、処理時間、リスク値という尺度でセキュリティ対策を実装する場合の影響（結果）を最適化対策リスト上に示すことができるので、ユーザは、例えばリスクを最小化するような最適解を見つけることができる。
【００４５】
以上のように、本実施の形態に係るセキュリティリスク分析装置１は、個々のセキュリティ対策について実装による結果及び影響を見積もるとともに、さらに絞り込みを行った上で、セキュリティ対策を組合せたときの効果が反映された影響度合いの見積もりを実施する。
このため、ユーザは、制約条件のもとにおいて、どのセキュリティ対策を選択して実装するのが最適であるかを検討することができる。
そして、ユーザは、検討結果を踏まえた上でセキュリティ対策の選択を行い、実際に実装の作業を行うことができる。
【００４６】
実施の形態２．
以上の実施の形態１では、開発対象データシステムのコンフィギュレーションデータを参照して、最適化対策リストを得ることを目的として、セキュリティリスク分析装置１が単独で動作する形態をとっている。
これに代えて、従来のソフトウェア開発環境（開発装置）とセキュリティリスク分析装置とを連携させることにより、開発対象データシステムのソフトウェア改修を効率よく行うようにしてもよい。
図１３は、ソフトウェア開発環境１２０とセキュリティリスク分析装置１とを連携させる構成を示す。
図１３では、開発対象データシステム１１２とソフトウェア開発環境１２０が外部バス１２８で接続され、ソフトウェア開発環境１２０とセキュリティリスク分析装置１が外部バス１２９で接続されている。
図１３に示す構成では、開発対象データシステムのターゲットを実装側と評価側で共有するため、別の環境へ物理的に移動する必要がなく、修正内容を反映したソフトウェアを直ちに評価することができる。
【００４７】
実施の形態３．
以上の実施の形態１では、開発対象データシステムのコンフィギュレーションデータを参照して、最適化対策リストを得るが、従来のソフトウェア開発環境（開発装置）とセキュリティリスク分析装置とを連携させることにより、開発対象データシステムのソフトウェア開発および改修を更に効率よく行う構成とするようにしてもよい。
図１４に示すように、ソフトウェア開発環境１３０の中に、セキュリティリスク分析装置をセキュリティリスク分析ツール１３７として組み込むようにしてもよい。
プログラミング言語の統合開発環境には、コンパイラやデバッガの他にデータおよびコードカバレッジ解析を行う機能や、プログラムのボトルネック部分を調べたりするためにプロファイラ機能を搭載しているものがあり、プログラムの分析という機能的な観点からみて親和性が高いといえる。
この場合、リスク分析においてユーザに入力を促すための入力画面や、ユーザに結果を示すための出力画面等のユーザインタフェースを共通化してツールに組み込むことができ、実施の形態２よりも更に利便性を高めることができる。
【００４８】
図１４に示す構成により、ユーザは、最適なセキュリティ対策の選択を容易に行うことができ、選択した対策の実装を効率よく行い、さらに改修したソフトウェアを再度分析して、改修を施した開発対象データシステムがセキュリティ要件を満たているかの最終的な確認を行うことにより全体の開発を効率よく進めることができる。
【００４９】
なお、実施の形態１〜３では、ハードウェアが固定した組込みシステム上において、ソフトウェアによるセキュリティ対策を柔軟に行ったが、搭載メモリ容量、ＣＰＵスペックといったハードウェア構成の変更についても検討可能なセキュリティリスク分析を実施することができる構成にすることも可能である。
ハードウェア構成を変更してセキュリティリスク分析を行う構成は、実施の形態４で説明する。
【００５０】
実施の形態４．
実施の形態１では、開発対象データシステムのハードウェア構成については固定した組込みシステム上において、ソフトウェアによるセキュリティ対策の検討を柔軟に行っている。
本実施の形態では、ハードウェア構成を変更させることによって制約条件を変えることで、より選択の可能性を広げてセキュリティ対策を組込む実装方法について多角的に検討することができる構成を示す。
【００５１】
本実施の形態に係るセキュリティリスク分析装置１の構成例は、図３に示す通りである。
但し、本実施の形態では、リスク分析部２０２は、開発対象データシステムに仮想された複数のハードウェア構成について、ハードウェア構成の単位で、対象脅威を特定する。
また、対策解析部２０３は、ハードウェア構成の単位で、対象脅威ごとに、セキュリティ対策情報で定義されているセキュリティ対策を抽出する。
また、最適化実行部２０４は、ハードウェア構成の単位で、対策解析部２０３により抽出されたセキュリティ対策を組み合わせて複数の対象脅威に対するセキュリティ対策の組合せパターンを生成し、組合せパターンごとに、組合せパターンに含まれるセキュリティ対策の組合せによって生じる効果を解析して当該セキュリティ対策の組合せが実装された場合の開発対象データシステムへの影響を表す実装影響値を算出し、算出した実装影響値に基づき、特定の組合せパターンを選択する。
また、対策解析部２０３は、ハードウェア構成の単位で、対象脅威ごとに、セキュリティ対策情報で定義されているセキュリティ対策を抽出するとともに、抽出したセキュリティ対策が単独で実装された場合の開発対象データシステムへの影響を表す実装影響値を算出する。
そして、最適化実行部２０４は、ハードウェア構成の単位で、組合せパターンごとに、対策解析部２０３により算出されたセキュリティ対策の単独の実装影響値と、セキュリティ対策の組合せによって生じる効果の解析結果とに基づき、当該セキュリティ対策の組合せが実装された場合の開発対象データシステムへの影響を表す実装影響値を算出する。
つまり、本実施の形態に係るセキュリティリスク分析装置１は、開発対象データシステムに対して仮想された複数のハードウェア構成のそれぞれに対して実施の形態１と同様の動作を行って、ハードウェア構成単位の最適化対策リストを得る。
また、本実施の形態では、最適化実行部２０４が、ハードウェア構成単位の最適化対策リストを一覧表示するようにしてもよい。
【００５２】
なお、以下では、主に実施の形態１との差異を説明する。
以下で説明していない事項は実施の形態１と同様である。
【００５３】
図１５は、実施の形態４に係る処理を示したフローチャートである。
以下では、図１５を用いて、実施の形態４に係るセキュリティリスク分析装置の動作を説明する。
【００５４】
ステップＳ２１０１からＳ２１０４は、実施の形態１における処理を示したフローチャート（図１１）と同じ動作であり、それらの詳細については実施の形態１で説明したとおりである。
Ｓ２１０４では、分析の最終的な出力結果として最適化実行部２０４が生成した最適化対策リスト３を表示装置に表示する。
ここでユーザが予め設定した期待するリスク値の要件を満たすような最適解が最適化対策リスト上に存在することが判定されると処理は終了となる。
ここで終了する場合には、実施の形態１と同一の処理となる。
【００５５】
ユーザが期待するリスク値は入力装置から入力されるので、コンフィギュレーションデータに保存されている。
Ｓ２１０６で抽出を行いさらにＳ２１０７で判定を行うために、リスクの期待値をコンフィギュレーションデータから読み込む。
Ｓ２１０７で判定の結果、リスクを所望の値まで下げることができるような最適解を見つけることができない場合、もしくは制約条件が障害となって最適解が決定しないことが判明した場合などには、更なる検討を継続して実行する必要があるとして、Ｓ２１０９へ進む。
【００５６】
最適解がないという場合のみ継続的に評価を行うことのみならず、更に最適な実装方法の可能性を見極めるために制約条件を変えての追加評価を行いたいこともある。
従って、Ｓ２１０８で処理を終了するか継続するかの判断を入力装置を通して行うことで、最適解が存在する場合であっても終了せずに、Ｓ２１０９へ進み、追加評価を実施することが可能である。
【００５７】
ステップＳ２１０９では、コンフィギュレーションデータの内容を変更するために、入力装置から入力を行う。
例えば、ユーザは、メモリ容量の増減、ＣＰＵの選択、ＣＰＵの動作周波数の増減、コプロセッサの有無、などについて変更を行うことができる。
このようにして開発対象データシステムの仮想的なハードウェア構成が設定される。
このとき、コンフィギュレーションデータは上書きされずに、一部が変更されたコンフィギュレーションデータが別のファイルとして新たに生成され保存される。
【００５８】
ハードウェアの条件を変えながらステップＳ２１０２〜Ｓ２１０９を繰り返してセキュリティリスク分析装置１において分析を実施することで、繰り返しの回数（Ｎ）分のアウトプットとしてＮ個の最適化対策リスト（１、２、〜Ｎ）を得る。
つまり、Ｎ個の仮想的なハードウェア構成に対してステップＳ２１０２〜Ｓ２１０９を繰り返すことで、Ｎ個の最適化対策リストを得ることができる。
【００５９】
なお、得られたＮ個の最適化対策リストのそれぞれを独立に精査することも可能であるが、全ての結果（Ｎ個の最適化対策リスト）から総合的に判断が出来るようにすることも可能である。
つまり、最適化実行部２０４が、Ｎ個の最適化対策リストを一覧表示するようにしてもよい。
コンフィギュレーションデータの変更内容に対応する最適化対策リストの一覧表示の例を図１６に示す。
【００６０】
図１６は、図１５のＳ２１０５で得られる一覧である、複数の最適化対策リストを合成した複合最適化対策リストの詳細例を示す。
複合最適化対策リストには、図７の最適化リストに含まれる対策組合せ、脅威ＩＤ、実装方法、実装影響値（ＲＯＭ、ＲＡＭ、時間、リスク）の他に、コンフィギュレーションＩＤ、コンフィギュレーション内容、およびコストを示す数値が含まれる。
【００６１】
図１６において、コンフィギュレーションＩＤ：２は、ＩＤ：１と比べてＣＰＵの周波数が２倍という条件に変更したため、処理性能が高くなり、処理に要する時間を短くすることができると判断したことを示している。
さらに、ＩＤ：３では、暗号コプロセッサを搭載することにより、脅威ＩＤ：Ｔ００３そのものが存在しなくなるとともに、ソフトウェアのプログラムが不要になるためにＲＯＭ使用量が削減され、処理に要する時間を大幅に短縮を実現できる一方で、コストは他より数倍も高くなると判断したことを示している。
【００６２】
なお、Ｓ２１０５で出力する複合最適化対策リスト（図１６）に関して、複数の結果に対して同時に分析する際に、出力結果が多過ぎる場合には、条件として設定（例えばリスク値、メモリ使用量の上限値）し、その条件に合わないものは除外して表示される候補を絞るといった操作が可能である。
このような操作により、開発するターゲットでは、安全性、コスト、性能のうちどれを最も重視するのか優先順位を考慮したうえで、最適な解を判別しやすくすることができる。
また、図１６について、図７の出力方法と同様に、表だけとは限らずリソースの増減とリスク増減の関係をグラフィカルに出力可能である。
【００６３】
このようにして、開発対象データシステムの搭載メモリ容量、ＣＰＵスペック等を仮想的に変更し、再度あるいは繰り返しセキュリティリスク分析装置にて分析を行うことができる。  そのため、本実施の形態では、セキュリティ対策を実装した開発対象データシステムを実現するための方法について、ハードウェアとソフトウェアの両面からより詳細に検討する場合、制約条件を変化させながら最適な実装方法を幅広く調べることができる。
【００６４】
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、２つ以上を組み合わせて実施しても構わない。
あるいは、これらの実施の形態のうち、１つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、２つ以上を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【００６５】
１  セキュリティリスク分析装置、２  コンフィギュレーションデータ、３  最適化対策リスト、４  実装、１０１  ＣＰＵ、１０２  ＲＡＭ、１０３  ＲＯＭ、１０４  ハードディスク、１０５  表示ディスプレイ、１０６  キーボード、１０７  マウス、１０８  通信ボード、１０９  内部バス、１１２  開発対象データシステム、１１３  ＣＰＵ、１１４  コプロセッサ、１１５  ＲＡＭ、１１６  ＲＯＭ、１１７  通信ボード、１１８  内部バス、１１９  外部バス、１２０  ソフトウェア開発環境、１２１  エミュレータ、１２２  ホストマシン、１２３  統合開発環境、１２４  開発ツール、１２５  ビルドツール、１２６  デバッグツール、１２７  内部バス、１２８  外部バス、１２９  外部バス、１３０  ソフトウェア開発環境、１３１  エミュレータ、１３２  ホストマシン、１３３  統合開発環境、１３４  開発ツール、１３５  ビルドツール、１３６  デバッグツール、１３７  セキュリティリスク分析ツール、２０１  制約条件抽出部、２０２  リスク分析部、２０３  対策解析部、２０４  最適化実行部、２０５  制約条件リスト記憶部、２０６  対象脅威リスト記憶部、２０７  対策候補リスト記憶部、２０８  最適化対策リスト記憶部、２０９  脅威データベース、２１０  実装データベース。
【図１】
2015130152.tif 000003
【図２】
2015130152.tif 000004
【図３】
2015130152.tif 000005
【図４】
2015130152.tif 000006
【図５】
2015130152.tif 000007
【図６】
2015130152.tif 000008
【図７】
2015130152.tif 000009
【図８】
2015130152.tif 000010
【図９】
2015130152.tif 000011
【図１０】
2015130152.tif 000012
【図１１】
2015130152.tif 000013
【図１２】
2015130152.tif 000014
【図１３】
2015130152.tif 000015
【図１４】
2015130152.tif 000016
【図１５】
2015130152.tif 000017
【図１６】
2015130152.tif 000018