(57)【要約】  セキュリティ設計装置（１０）において、セキュリティデータベース（２２）は、それぞれ脅威に対処するために実行される複数のセキュリティ処理を定義する。対策導入部（２１）は、プログラムの処理手順を定義する入力モデル（Ｍ１）が入力されると、セキュリティデータベース（２２）により定義された複数のセキュリティ処理の中から、導入する１つ以上のセキュリティ処理を選択し、選択したセキュリティ処理を導入した後のプログラムの処理手順を定義する出力モデル（Ｍ３）を出力する。冗長性検査部（２３）は、対策導入部（２１）により選択されたセキュリティ処理の中に、導入箇所が重複し、かつ、同じ脅威に対処するために実行される２つ以上のセキュリティ処理が含まれていれば、それら２つ以上のセキュリティ処理のうち少なくとも１つのセキュリティ処理を導入対象から除外する。
2019142469.tif 000002
【特許請求の範囲】
【請求項１】
プログラムの処理手順を定義する入力モデルが入力されると、それぞれ脅威に対処するために実行される複数のセキュリティ処理を定義するセキュリティデータベースを参照して、前記複数のセキュリティ処理の中から、前記入力モデルにより定義された処理手順に導入する１つ以上のセキュリティ処理を選択し、選択したセキュリティ処理を導入した後の前記プログラムの処理手順を定義する出力モデルを出力する対策導入部と、
前記対策導入部により選択されたセキュリティ処理の中に、前記プログラムの処理手順における導入箇所が重複し、かつ、同じ脅威に対処するために実行される２つ以上のセキュリティ処理が含まれていれば、それら２つ以上のセキュリティ処理のうち少なくとも１つのセキュリティ処理を、前記出力モデルにより定義される処理手順への導入対象から除外する冗長性検査部と
を備えるセキュリティ設計装置。
【請求項２】
前記冗長性検査部は、前記少なくとも１つのセキュリティ処理として、前記２つ以上のセキュリティ処理のうち１つ以外のセキュリティ処理を導入対象から除外する請求項１に記載のセキュリティ設計装置。
【請求項３】
前記セキュリティデータベースは、前記複数のセキュリティ処理のそれぞれについて、導入箇所と、その導入箇所に導入されたセキュリティ処理によって対処される脅威とを定義し、
前記１つ以上のセキュリティ処理は、前記セキュリティデータベースにより定義された導入箇所が前記入力モデルにより定義された処理手順の中に存在するセキュリティ処理であり、
前記２つ以上のセキュリティ処理は、前記プログラムの処理手順の中で連続して実行され、かつ、前記セキュリティデータベースにより定義された脅威が一致するセキュリティ処理である請求項１または２に記載のセキュリティ設計装置。
【請求項４】
前記冗長性検査部は、前記セキュリティデータベースにおける前記２つ以上のセキュリティ処理の登録位置によって、前記２つ以上のセキュリティ処理のそれぞれを導入対象から除外するかどうかを決定する請求項１から３のいずれか１項に記載のセキュリティ設計装置。
【請求項５】
前記セキュリティデータベースは、前記複数のセキュリティ処理のうち少なくとも一部のセキュリティ処理について、優先順位を定義し、
前記冗長性検査部は、前記セキュリティデータベースにより定義された優先順位によって、前記２つ以上のセキュリティ処理のそれぞれを導入対象から除外するかどうかを決定する請求項１から３のいずれか１項に記載のセキュリティ設計装置。
【請求項６】
前記セキュリティデータベースは、前記複数のセキュリティ処理のそれぞれについて、コストを定義し、
前記冗長性検査部は、前記セキュリティデータベースにより定義されたコストによって、前記２つ以上のセキュリティ処理のそれぞれを導入対象から除外するかどうかを決定する請求項１から３のいずれか１項に記載のセキュリティ設計装置。
【請求項７】
前記入力モデル内で使用される情報資産に基づいて前記入力モデル内の処理をグループ化する処理分類部を備え、
前記対策導入部は、前記複数のセキュリティ処理の中から、グループ化された処理手順に対して導入するセキュリティ処理を選択し、グループ化された処理手順に対して選択したセキュリティ処理を導入する請求項１から６のいずれか１項に記載のセキュリティ設計装置。
【請求項８】
前記処理分類部は、前記入力モデル内で扱われる情報資産の重要度情報を入力し、情報資産の重要度情報に基づいて、前記入力モデル内の処理をグループ化する請求項７に記載のセキュリティ設計装置。
【請求項９】
前記セキュリティデータベースは、前記複数のセキュリティ処理のそれぞれについて、コストを定義し、
前記セキュリティデータベースにより定義されたコストに基づいて、グループ化された処理手順の中のセキュリティ処理の評価値を求め、前記評価値に基づいて、グループ化された処理手順の中のセキュリティ処理を導入対象から除外するかどうかを決定するグループ評価部を備えた請求項７または８に記載のセキュリティ設計装置。
【請求項１０】
対策導入部は、プログラムの処理手順を定義する入力モデルが入力されると、それぞれ脅威に対処するために実行される複数のセキュリティ処理を定義するセキュリティデータベースを参照して、前記複数のセキュリティ処理の中から、前記入力モデルにより定義された処理手順に導入する１つ以上のセキュリティ処理を選択し、選択したセキュリティ処理を導入した後の前記プログラムの処理手順を定義する出力モデルを出力し、
冗長性検査部は、前記対策導入部により選択されたセキュリティ処理の中に、前記プログラムの処理手順における導入箇所が重複し、かつ、同じ脅威に対処するために実行される２つ以上のセキュリティ処理が含まれていれば、それら２つ以上のセキュリティ処理のうち少なくとも１つのセキュリティ処理を、前記出力モデルにより定義される処理手順への導入対象から除外するセキュリティ設計方法。
【請求項１１】
コンピュータに、
プログラムの処理手順を定義する入力モデルが入力されると、それぞれ脅威に対処するために実行される複数のセキュリティ処理を定義するセキュリティデータベースを参照して、前記複数のセキュリティ処理の中から、前記入力モデルにより定義された処理手順に導入する１つ以上のセキュリティ処理を選択し、選択したセキュリティ処理を導入した後の前記プログラムの処理手順を定義する出力モデルを出力する対策導入処理と、
前記対策導入処理により選択されたセキュリティ処理の中に、前記プログラムの処理手順における導入箇所が重複し、かつ、同じ脅威に対処するために実行される２つ以上のセキュリティ処理が含まれていれば、それら２つ以上のセキュリティ処理のうち少なくとも１つのセキュリティ処理を、前記出力モデルにより定義される処理手順への導入対象から除外する冗長性検査処理と
を実行させるセキュリティ設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティ設計装置、セキュリティ設計方法およびセキュリティ設計プログラムに関するものである。
【背景技術】
【０００２】
機器を制御する制御システムが外部ネットワークへ接続されるケースがある。そのようなケースの増加に伴い、制御システムへのサイバー攻撃が増加するおそれがある。よって、脆弱性の低減および攻撃検知等が求められている。加えて、セキュリティの専門家が不足していることが指摘されている。したがって、今後、専門知識がなくても適切なセキュリティ機能を実装可能とするツールが必要である。【０００３】
プログラム開発において、ブロック図またはモデル等を使って記述したプログラム仕様に基づいてソースコードを自動生成する「モデルベース開発技術」が提案されている。サイバー攻撃への対策として、セキュリティ機能を含めたコードを自動生成できるように、モデルベース開発技術を利用してシステムのセキュリティ機能を設計する技術が提案されている。【０００４】
特許文献１では、モデルベース開発システムと脅威分析システムとを連携させる技術が提案されている。この技術では、脅威分析システムが、モデルベース開発システムによって作成された制御モデルの個々の要素について、脅威データベースから該当する脅威のデータを抽出することにより、制御モデルに対する複数の脅威を示す脅威一覧データを作成して出力する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１７−０６８８２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の技術では、制御モデルの要素である装置レベルでセキュリティ機能を導入すべき箇所を特定することはできても、処理レベルでセキュリティ機能を導入する箇所を特定することはできない。専門知識がなくても適切なセキュリティ機能を実装可能とするツールを提供するには、処理レベルでセキュリティ機能を効率的に導入できる必要がある。【０００７】
本発明は、処理レベルでセキュリティ機能を効率的に導入することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様に係るセキュリティ設計装置は、
プログラムの処理手順を定義する入力モデルが入力されると、それぞれ脅威に対処するために実行される複数のセキュリティ処理を定義するセキュリティデータベースを参照して、前記複数のセキュリティ処理の中から、前記入力モデルにより定義された処理手順に導入する１つ以上のセキュリティ処理を選択し、選択したセキュリティ処理を導入した後の前記プログラムの処理手順を定義する出力モデルを出力する対策導入部と、
前記対策導入部により選択されたセキュリティ処理の中に、前記プログラムの処理手順における導入箇所が重複し、かつ、同じ脅威に対処するために実行される２つ以上のセキュリティ処理が含まれていれば、それら２つ以上のセキュリティ処理のうち少なくとも１つのセキュリティ処理を、前記出力モデルにより定義される処理手順への導入対象から除外する冗長性検査部と
を備える。
【発明の効果】
【０００９】
本発明では、セキュリティデータベースにより定義された複数のセキュリティ処理の中から、導入する１つ以上のセキュリティ処理が選択される。選択したセキュリティ処理の中に、処理レベルでの導入箇所が重複し、かつ、同じ脅威に対処するために実行される２つ以上のセキュリティ処理が含まれていれば、それら２つ以上のセキュリティ処理のうち少なくとも１つのセキュリティ処理が導入対象から除外される。したがって、本発明によれば、処理レベルでセキュリティ機能を効率的に導入することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係るセキュリティ設計装置の構成を示すブロック図。
【図２】実施の形態１に係るセキュリティ設計装置のセキュリティデータベースの構成例を示す表。
【図３】実施の形態１に係るセキュリティ設計装置の動作を示すフローチャート。
【図４】実施の形態１に係るモデル例を示す図。
【図５】実施の形態１の変形例に係るセキュリティ設計装置のセキュリティデータベースの構成例を示す表。
【図６】実施の形態１の変形例に係るモデル例を示す図。
【図７】実施の形態２に係るセキュリティ設計装置のセキュリティデータベースの構成例を示す表。
【図８】実施の形態２に係るセキュリティ設計装置の動作を示すフローチャート。
【図９】実施の形態２に係るモデル例を示す図。
【図１０】実施の形態３に係るセキュリティ設計装置の構成を示すブロック図。
【図１１】実施の形態３に係るセキュリティ設計装置のセキュリティデータベースの構成例を示す表。
【図１２】実施の形態３に係るセキュリティ設計装置の動作を示すフローチャート。
【図１３】実施の形態３に係るモデル例を示す図。
【図１４】実施の形態４に係るセキュリティ設計装置の構成を示すブロック図。
【図１５】実施の形態４に係る高重要度の情報資産用のセキュリティデータベースの構成例を示す表。
【図１６】実施の形態４に係る低重要度の情報資産用のセキュリティデータベースの構成例を示す表。
【図１７】実施の形態４に係るセキュリティ設計装置の動作を示すフローチャート。
【図１８】実施の形態４に係るセキュリティ設計装置によるグループ化によるモデル変化例を示す図。
【図１９】実施の形態４に係るセキュリティ設計装置によるグループ化によるモデル変化例を示す図。
【図２０】実施の形態４に係るセキュリティ設計装置によるグループ化によるモデル変化例を示す図。
【図２１】実施の形態５に係るセキュリティ設計装置の構成を示すブロック図。
【図２２】実施の形態５に係る高重要度の情報資産用のセキュリティデータベースの構成例を示す表。
【図２３】実施の形態５に係る低重要度の情報資産用のセキュリティデータベースの構成例を示す表。
【図２４】実施の形態５に係るセキュリティ設計装置の動作を示すフローチャート。
【図２５】実施の形態５に係るセキュリティ設計装置によるグループ化によるモデル変化例を示す図。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、図を用いて説明する。各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。なお、本発明は、以下に説明する実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。例えば、以下に説明する実施の形態のうち、２つ以上の実施の形態が組み合わせられて実施されても構わない。あるいは、以下に説明する実施の形態のうち、１つの実施の形態または２つ以上の実施の形態の組み合わせが部分的に実施されても構わない。
【００１２】
実施の形態１．
本実施の形態について、図１から図４を用いて説明する。
【００１３】
＊＊＊構成の説明＊＊＊
図１を参照して、本実施の形態に係るセキュリティ設計装置１０の構成を説明する。
【００１４】
セキュリティ設計装置１０は、コンピュータである。セキュリティ設計装置１０は、プロセッサ１１を備えるとともに、メモリ１２、通信デバイス１３、入力機器１４およびディスプレイ１５といった他のハードウェアを備える。プロセッサ１１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００１５】
セキュリティ設計装置１０は、対策導入部２１と、セキュリティデータベース２２と、冗長性検査部２３とを備える。対策導入部２１および冗長性検査部２３の機能は、ソフトウェアにより実現される。セキュリティデータベース２２は、本実施の形態ではメモリ１２上に構築されるが、後述する補助記憶装置上に構築されてもよいし、セキュリティ設計装置１０の外部に構築されてもよい。
【００１６】
プロセッサ１１は、セキュリティ設計プログラムを実行する装置である。セキュリティ設計プログラムは、対策導入部２１および冗長性検査部２３の機能を実現するプログラムである。プロセッサ１１は、例えば、ＣＰＵである。「ＣＰＵ」は、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略語である。
【００１７】
メモリ１２は、セキュリティ設計プログラムを記憶する装置である。メモリ１２は、例えば、ＲＡＭ、フラッシュメモリまたはこれらの組み合わせである。「ＲＡＭ」は、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略語である。
【００１８】
通信デバイス１３は、セキュリティ設計プログラムに入力されるデータを受信するレシーバと、セキュリティ設計プログラムから出力されるデータを送信するトランスミッタとを含む。通信デバイス１３は、例えば、通信チップまたはＮＩＣである。「ＮＩＣ」は、Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄの略語である。
【００１９】
入力機器１４は、セキュリティ設計プログラムへのデータの入力のためにユーザにより操作される機器である。入力機器１４は、例えば、マウス、キーボード、タッチパネル、または、これらのうちいくつか、もしくは、すべての組み合わせである。
【００２０】
ディスプレイ１５は、セキュリティ設計プログラムから出力されるデータを画面に表示する機器である。ディスプレイ１５は、例えば、ＬＣＤである。「ＬＣＤ」は、Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙの略語である。
【００２１】
セキュリティ設計プログラムは、メモリ１２からプロセッサ１１に読み込まれ、プロセッサ１１によって実行される。メモリ１２には、セキュリティ設計プログラムだけでなく、ＯＳも記憶されている。「ＯＳ」は、Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍの略語である。プロセッサ１１は、ＯＳを実行しながら、セキュリティ設計プログラムを実行する。なお、セキュリティ設計プログラムの一部または全部がＯＳに組み込まれていてもよい。
【００２２】
セキュリティ設計プログラムおよびＯＳは、補助記憶装置に記憶されていてもよい。補助記憶装置は、例えば、ＨＤＤ、フラッシュメモリまたはこれらの組み合わせである。「ＨＤＤ」は、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略語である。セキュリティ設計プログラムおよびＯＳは、補助記憶装置に記憶されている場合、メモリ１２にロードされ、プロセッサ１１によって実行される。
【００２３】
セキュリティ設計装置１０は、プロセッサ１１を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、セキュリティ設計プログラムの実行を分担する。それぞれのプロセッサは、例えば、ＣＰＵである。
【００２４】
セキュリティ設計プログラムにより利用、処理または出力されるデータ、情報、信号値および変数値は、メモリ１２、補助記憶装置、または、プロセッサ１１内のレジスタまたはキャッシュメモリに記憶される。
【００２５】
セキュリティ設計プログラムは、対策導入部２１および冗長性検査部２３により行われる処理をそれぞれ対策導入処理および冗長性検査処理としてコンピュータに実行させるプログラムである。セキュリティ設計プログラムは、コンピュータ読取可能な媒体に記録されて提供されてもよいし、記録媒体に格納されて提供されてもよいし、プログラムプロダクトとして提供されてもよい。
【００２６】
セキュリティ設計装置１０は、１台のコンピュータで構成されていてもよいし、複数台のコンピュータで構成されていてもよい。セキュリティ設計装置１０が複数台のコンピュータで構成されている場合は、対策導入部２１および冗長性検査部２３の機能が、各コンピュータに分散されて実現されてもよい。
【００２７】
図２に、セキュリティデータベース２２の構成例を示す。
【００２８】
セキュリティデータベース２２は、それぞれ脅威に対処するために実行される複数のセキュリティ処理を定義するデータベースである。セキュリティデータベース２２は、想定されるすべての脅威を網羅できているとする。脅威の例としては、改竄および盗聴が挙げられる。それぞれのセキュリティ処理は、脅威への対策として、セキュリティ機能を発揮する。セキュリティ機能の例としては、改竄検知、暗号化ならびに復号、および、認証が挙げられる。各セキュリティ機能について、対処される脅威と、処理レベルにおける導入箇所との定義が保持されている。すなわち、セキュリティデータベース２２は、複数のセキュリティ処理のそれぞれについて、導入箇所と、その導入箇所に導入されたセキュリティ処理によって対処される脅威とを定義している。
【００２９】
なお、図２では、自然言語による定義の例を記載しているが、プログラムまたはモデルで容易に解釈が可能な形式による定義が適用されてもよい。
【００３０】
＊＊＊動作の説明＊＊＊
図３を参照して、本実施の形態に係るセキュリティ設計装置１０の動作を説明する。セキュリティ設計装置１０の動作は、本実施の形態に係るセキュリティ設計方法に相当する。
【００３１】
ユーザは、モデルを用いてセキュリティを考慮せずにソフトウェア設計を行ってよい。
【００３２】
ステップＳ１０１において、ユーザにより作成された入力モデルＭ１がセキュリティ設計装置１０に入力される。
【００３３】
ステップＳ１０２において、対策導入部２１は、入力モデルＭ１を更新用モデルＭ２としてメモリ１２に保存する。対策導入部２１は、セキュリティデータベース２２を基に、更新用モデルＭ２に対して導入可能なセキュリティ機能を全箇所に追加する。
【００３４】
このように、対策導入部２１は、ユーザの作成した入力モデルＭ１に対して自動的にセキュリティ機能を導入する。ただし、対策導入部２１により追加された機能は、後述する冗長性検査部２３における検査の結果によって、冗長な機能であると判断されれば、削除される。なお、入力モデルＭ１および更新用モデルＭ２等のモデルは、本実施の形態では、フローチャートのような、処理フローレベルのモデルである。
【００３５】
セキュリティデータベース２２には、対策導入部２１が更新用モデルＭ２に対してセキュリティ機能を導入する際に使用する情報が格納されている。
【００３６】
ステップＳ１０３において、冗長性検査部２３は、モデル検査を行う。具体的には、冗長性検査部２３は、更新用モデルＭ２における冗長性の有無を確認する。
【００３７】
ステップＳ１０４において、冗長性がなければ、ステップＳ１０５において、対策導入部２１は、その時点の更新用モデルＭ２を出力モデルＭ３として出力する。そして、処理が終了する。
【００３８】
ステップＳ１０４において、冗長性があれば、ステップＳ１０６において、冗長性検査部２３は、冗長なセキュリティ機能のうち１つを削除する。そして、ステップＳ１０３において、冗長性検査部２３は、再度モデル検査を行う。
【００３９】
このように、冗長性検査部２３は、更新用モデルＭ２に対してセキュリティ機能の冗長性を検証する。検証方法としては、本実施の形態では、同一箇所に複数のセキュリティ機能が連続して位置する場合に対処される脅威に重複はないか確認する方法が用いられる。なお、同一モデル中に同一のセキュリティ機能が必要以上に含まれていないか確認する方法、作成したモデルから形式言語への変換を行って冗長性を検証する方法、または、その他の方法が用いられてもよい。
【００４０】
冗長性が完全になくなることを確認できるまで以上の処理が繰り返され、処理レベルにおいて脆弱性対策が施されたモデルが出力モデルＭ３として出力される。
【００４１】
本実施の形態におけるセキュリティ機能の追加および削除の手順を、図４に示す処理モデル変化例を用いて説明する。
【００４２】
ここでは、簡易なフローチャートを処理モデルとして作成および出力することを想定する。ユーザは、セキュリティ機能を考慮せずに入力モデルＭ１を作成する。ここで例として示している入力モデルＭ１は、簡易なフィールド機器の制御ソフトウェアのモデルである。この入力モデルＭ１は、制御ソフトウェアが機器を起動後、入力として停止コマンドを受信した場合、機器を停止させて終了するという処理モデルである。
【００４３】
対策導入部２１は、入力モデルＭ１と、図２のセキュリティデータベース２２とを照合して、導入可能なすべてのセキュリティ機能を導入する。これにより、更新用モデルＭ２が得られる。冗長性検査部２３は、更新用モデルＭ２に対してモデル検査を行う。冗長性検査部２３は、冗長性があることを確認できたら、削除する候補を決定する。ここでは、冗長性の確認の方法として、同じ箇所に複数のセキュリティ機能が位置する場合の、対処される脅威の重複の有無を確認する方法が用いられる。
【００４４】
セキュリティデータベース２２では、導入箇所が「起動直後」および「入力直前」のように各処理について定められている。実際のモデルに機能を導入した場合、更新用モデルＭ２の起動直後から入力直前までの間のように、セキュリティデータベース２２上では違う場所でも同じ箇所に２つ以上の機能が追加される場合がある。
【００４５】
本例では、更新用モデルＭ２は、起動直後から入力直前までの間にセキュリティ処理Ｐ１およびセキュリティ処理Ｐ２、入力直後から分岐直前までの間にセキュリティ処理Ｐ３およびセキュリティ処理Ｐ４、分岐直後から停止直前までの間にセキュリティ処理Ｐ５およびセキュリティ処理Ｐ６を有している。セキュリティ処理Ｐ１、セキュリティ処理Ｐ２、セキュリティ処理Ｐ３、セキュリティ処理Ｐ４、セキュリティ処理Ｐ５およびセキュリティ処理Ｐ６は、それぞれセキュリティ１、セキュリティ２、セキュリティ３、セキュリティ４、セキュリティ５およびセキュリティ６の機能を持つ処理である。
【００４６】
図２のセキュリティデータベース２２によれば、脅威３の対策となる機能には、セキュリティ３、セキュリティ４およびセキュリティ６がある。本例では、それらに対応するセキュリティ処理Ｐ３、セキュリティ処理Ｐ４およびセキュリティ処理Ｐ６のうち、セキュリティ処理Ｐ３とセキュリティ処理Ｐ４とが同じ位置に連続している。そのため、一方が不要であると考えられる。冗長性検査部２３は、更新用モデルＭ２からセキュリティ処理Ｐ４を削除する。これにより、出力モデルＭ３が得られる。
【００４７】
なお、本例では、冗長性検査部２３は、２つのセキュリティ機能を比較する際、セキュリティデータベース２２における位置を比較して、下に位置する機能を削除するが、上に位置する機能を削除してもよい。あるいは、冗長性検査部２３は、２つのセキュリティ機能を比較する際、更新用モデルＭ２における実行順序が先の機能を削除してもよいし、更新用モデルＭ２における実行順序が後の機能を削除してもよい。
【００４８】
以上説明したように、対策導入部２１には、プログラムの処理手順を定義する入力モデルＭ１が入力される。対策導入部２１は、入力モデルＭ１が入力されると、セキュリティデータベース２２を参照して、セキュリティデータベース２２により定義された複数のセキュリティ処理の中から、入力モデルＭ１により定義された処理手順に導入する１つ以上のセキュリティ処理を選択する。対策導入部２１は、選択したセキュリティ処理を導入した後のプログラムの処理手順を定義する出力モデルＭ３を出力する。「プログラム」は、本実施の形態ではフィールド機器の制御プログラムであるが、車載機器の制御プログラム等、任意の種類のプログラムでよい。
【００４９】
本実施の形態では、「１つ以上のセキュリティ処理」は、セキュリティデータベース２２により定義された導入箇所が入力モデルＭ１により定義された処理手順の中に存在するセキュリティ処理である。図４の例では、「１つ以上のセキュリティ処理」は、セキュリティ処理Ｐ１、セキュリティ処理Ｐ２、セキュリティ処理Ｐ３、セキュリティ処理Ｐ４、セキュリティ処理Ｐ５およびセキュリティ処理Ｐ６である。
【００５０】
冗長性検査部２３は、対策導入部２１により選択されたセキュリティ処理の中に、プログラムの処理手順における導入箇所が重複し、かつ、同じ脅威に対処するために実行される２つ以上のセキュリティ処理が含まれているかどうかを確認する。冗長性検査部２３は、そのような２つ以上のセキュリティ処理が含まれていれば、それら２つ以上のセキュリティ処理のうち少なくとも１つのセキュリティ処理を、出力モデルＭ３により定義される処理手順への導入対象から除外する。冗長性検査部２３は、本実施の形態では、「少なくとも１つのセキュリティ処理」として、「２つ以上のセキュリティ処理」のうち１つ以外のセキュリティ処理を導入対象から除外する。
【００５１】
本実施の形態では、「２つ以上のセキュリティ処理」は、プログラムの処理手順の中で連続して実行され、かつ、セキュリティデータベース２２により定義された脅威が一致するセキュリティ処理である。図４の例では、「２つ以上のセキュリティ処理」は、図２のセキュリティデータベース２２で脅威３に対応するセキュリティ処理Ｐ３およびセキュリティ処理Ｐ４である。
【００５２】
本実施の形態において、冗長性検査部２３は、セキュリティデータベース２２における「２つ以上のセキュリティ処理」の登録位置によって、「２つ以上のセキュリティ処理」のそれぞれを導入対象から除外するかどうかを決定する。図４の例では、冗長性検査部２３は、セキュリティ処理Ｐ３およびセキュリティ処理Ｐ４のうち、図２のセキュリティデータベース２２で下にあるセキュリティ処理Ｐ４を導入対象から除外している。
【００５３】
なお、冗長性検査部２３は、プログラムの処理手順における「２つ以上のセキュリティ処理」の実行順序によって、「２つ以上のセキュリティ処理」のそれぞれを導入対象から除外するかどうかを決定してもよい。図４の例では、冗長性検査部２３は、セキュリティ処理Ｐ３およびセキュリティ処理Ｐ４のうち、後に実行されるセキュリティ処理Ｐ４を導入対象から除外していると考えてもよい。
【００５４】
図５および図６を参照して、本実施の形態の変形例を説明する。
【００５５】
図２のセキュリティデータベース２２では、「起動直後」および「停止直前」のようにセキュリティ導入箇所が狭く定められているが、図５のセキュリティデータベース２２では、セキュリティ３の導入箇所「起動以後〜停止以前」のように、導入箇所を広く定めることができる。
【００５６】
この変形例におけるセキュリティ機能の追加および削除の手順を、図６に示す処理モデル変化例を用いて説明する。
【００５７】
図４の例と同じ入力モデルＭ１に対して機能を全箇所に導入すると、図６の更新用モデルＭ２が得られる。この更新用モデルＭ２は、起動直後から入力直前までの間にセキュリティ処理Ｐ１、セキュリティ処理Ｐ２およびセキュリティ処理Ｐ３ａ、入力直後から分岐直前までの間にセキュリティ処理Ｐ３ｂおよびセキュリティ処理Ｐ４、分岐直後から停止直前までの間にセキュリティ処理Ｐ３ｃ、セキュリティ処理Ｐ５およびセキュリティ処理Ｐ６を有している。セキュリティ処理Ｐ３ａ、セキュリティ処理Ｐ３ｂおよびセキュリティ処理Ｐ３ｃは、いずれもセキュリティ３の機能を持つ処理である。セキュリティ処理Ｐ１、セキュリティ処理Ｐ２、セキュリティ処理Ｐ４、セキュリティ処理Ｐ５およびセキュリティ処理Ｐ６については、図４の例と同じ処理である。
【００５８】
図５のセキュリティデータベース２２によれば、脅威３の対策となる機能には、セキュリティ３、セキュリティ４およびセキュリティ６がある。この変形例では、それらに対応するセキュリティ処理Ｐ３ａ、セキュリティ処理Ｐ３ｂ、セキュリティ処理Ｐ３ｃ、セキュリティ処理Ｐ４およびセキュリティ処理Ｐ６のうち、セキュリティ処理Ｐ３ｂとセキュリティ処理Ｐ４とが同じ位置に連続している。そのため、一方が不要であると考えられる。冗長性検査部２３は、更新用モデルＭ２からセキュリティ処理Ｐ４を削除する。また、セキュリティ処理Ｐ３ｃとセキュリティ処理Ｐ６とが同じ位置に連続している。そのため、一方が不要であると考えられる。冗長性検査部２３は、更新用モデルＭ２からセキュリティ処理Ｐ６を削除する。これにより、図６の出力モデルＭ３が得られる。
【００５９】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態では、セキュリティデータベース２２により定義された複数のセキュリティ処理の中から、導入する１つ以上のセキュリティ処理が選択される。選択したセキュリティ処理の中に、処理レベルでの導入箇所が重複し、かつ、同じ脅威に対処するために実行される２つ以上のセキュリティ処理が含まれていれば、それら２つ以上のセキュリティ処理のうち少なくとも１つのセキュリティ処理が導入対象から除外される。したがって、本実施の形態によれば、処理レベルでセキュリティ機能を効率的に導入することができる。
【００６０】
本実施の形態では、入力モデルＭ１に対して、セキュリティデータベース２２に基づいて導入可能なセキュリティ機能がすべて導入され、モデル検査を基に、セキュリティ機能の削除が繰り返される。本実施の形態によれば、脆弱性箇所を特定せずにセキュリティ機能を導入することで、処理フローのレベルにおいて適切なセキュリティ機能を重複なく適切な箇所に導入することができる。
【００６１】
＊＊＊他の構成＊＊＊
本実施の形態では、対策導入部２１および冗長性検査部２３の機能がソフトウェアにより実現されるが、他の構成例として、対策導入部２１および冗長性検査部２３の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。すなわち、対策導入部２１および冗長性検査部２３の機能の一部が専用のハードウェアにより実現され、残りがソフトウェアにより実現されてもよい。
【００６２】
専用のハードウェアは、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ、ＦＰＧＡ、ＡＳＩＣ、または、これらのうちいくつか、もしくは、すべての組み合わせである。「ＩＣ」は、Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略語である。「ＧＡ」は、Ｇａｔｅ  Ａｒｒａｙの略語である。「ＦＰＧＡ」は、Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略語である。「ＡＳＩＣ」は、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略語である。
【００６３】
プロセッサ１１および専用のハードウェアは、いずれも処理回路である。すなわち、対策導入部２１および冗長性検査部２３の機能がソフトウェアにより実現されるか、ソフトウェアとハードウェアとの組み合わせにより実現されるかに関わらず、対策導入部２１および冗長性検査部２３の動作は、処理回路により行われる。
【００６４】
実施の形態２．
本実施の形態について、主に実施の形態１との差異を、図７から図９を用いて説明する。
【００６５】
＊＊＊構成の説明＊＊＊
本実施の形態に係るセキュリティ設計装置１０の構成については、図１に示した実施の形態１のものと同様であるため、説明を説明する。
【００６６】
図７に、セキュリティデータベース２２の構成例を示す。
【００６７】
セキュリティデータベース２２は、実施の形態１と同じように、それぞれ脅威に対処するために実行される複数のセキュリティ処理を定義するデータベースである。本実施の形態では、各セキュリティ機能について、対処される脅威と、処理レベルにおける導入箇所との定義に加えて、優先順位の定義が保持されている。すなわち、本実施の形態では、セキュリティデータベース２２は、複数のセキュリティ処理のうち少なくとも一部のセキュリティ処理について、優先順位を定義している。
【００６８】
なお、図７では、自然言語による定義の例を記載しているが、プログラムまたはモデルで容易に解釈が可能な形式による定義が適用されてもよい。
【００６９】
＊＊＊動作の説明＊＊＊
図８を参照して、本実施の形態に係るセキュリティ設計装置１０の動作を説明する。セキュリティ設計装置１０の動作は、本実施の形態に係るセキュリティ設計方法に相当する。
【００７０】
ステップＳ２０１からステップＳ２０５の処理については、実施の形態１におけるステップＳ１０１からステップＳ１０５の処理と同じであるため、説明を省略する。
【００７１】
ステップＳ２０４において、冗長性があり、ステップＳ２０６において、削除候補となるセキュリティ機能が１つのみであれば、ステップＳ２０７において、冗長性検査部２３は、そのセキュリティ機能を削除する。そして、ステップＳ２０３において、冗長性検査部２３は、再度モデル検査を行う。
【００７２】
ステップＳ２０４において、冗長性があり、ステップＳ２０６において、削除候補となるセキュリティ機能が複数あれば、ステップＳ２０８において、冗長性検査部２３は、優先順位の低い削除候補を選択する。ステップＳ２０７において、冗長性検査部２３は、選択したセキュリティ機能を削除する。そして、ステップＳ２０３において、冗長性検査部２３は、再度モデル検査を行う。
【００７３】
冗長性が完全になくなることを確認できるまで以上の処理が繰り返され、処理レベルにおいて脆弱性対策が施されたモデルが出力モデルＭ３として出力される。
【００７４】
本実施の形態におけるセキュリティ機能の追加および削除の手順を、図９に示す処理モデル変化例を用いて説明する。
【００７５】
ここでは、図４の例と同じ入力モデルＭ１に対してセキュリティを導入したモデルを作成および出力することを想定する。
【００７６】
対策導入部２１は、入力モデルＭ１と、図７のセキュリティデータベース２２とを照合して、導入可能なすべてのセキュリティ機能を導入する。これにより、更新用モデルＭ２が得られる。冗長性検査部２３は、更新用モデルＭ２に対してモデル検査を行う。冗長性検査部２３は、冗長性があることを確認できたら、削除する候補を決定する。ここでは、図４の例と同じように、冗長性の確認の方法として、同じ箇所に複数のセキュリティ機能が位置する場合の、対処される脅威の重複の有無を確認する方法が用いられる。
【００７７】
本例では、図４の例と同じように、更新用モデルＭ２は、起動直後から入力直前までの間にセキュリティ処理Ｐ１およびセキュリティ処理Ｐ２、入力直後から分岐直前までの間にセキュリティ処理Ｐ３およびセキュリティ処理Ｐ４、分岐直後から停止直前までの間にセキュリティ処理Ｐ５およびセキュリティ処理Ｐ６を有している。セキュリティ処理Ｐ１、セキュリティ処理Ｐ２、セキュリティ処理Ｐ３、セキュリティ処理Ｐ４、セキュリティ処理Ｐ５およびセキュリティ処理Ｐ６は、それぞれセキュリティ１、セキュリティ２、セキュリティ３、セキュリティ４、セキュリティ５およびセキュリティ６の機能を持つ処理である。
【００７８】
図７のセキュリティデータベース２２によれば、脅威３の対策となる機能には、セキュリティ３、セキュリティ４およびセキュリティ６がある。本例では、それらに対応するセキュリティ処理Ｐ３、セキュリティ処理Ｐ４およびセキュリティ処理Ｐ６のうち、セキュリティ処理Ｐ３とセキュリティ処理Ｐ４とが同じ位置に連続している。そのため、一方が不要であると考えられる。図７のセキュリティデータベース２２によれば、セキュリティ３およびセキュリティ４の優先順位は、それぞれ「２」および「１」であるため、セキュリティ処理Ｐ４のほうが優先順位は高い。よって、図４の例とは異なり、冗長性検査部２３は、更新用モデルＭ２からセキュリティ処理Ｐ３を削除する。これにより、出力モデルＭ３が得られる。
【００７９】
このように、同一の脅威に対処できる機能がセキュリティデータベース２２に複数保持されていて、それらの機能が処理上で同じ位置に追加された場合、図４の例では、セキュリティデータベース２２において上側に位置するセキュリティ機能を残し、他が削除されるが、本例では、優先順位が低いセキュリティ機能が削除される。
【００８０】
以上説明したように、本実施の形態において、冗長性検査部２３は、セキュリティデータベース２２により定義された優先順位によって、「２つ以上のセキュリティ処理」のそれぞれを導入対象から除外するかどうかを決定する。図９の例では、冗長性検査部２３は、セキュリティ処理Ｐ３およびセキュリティ処理Ｐ４のうち、図７のセキュリティデータベース２２で優先順位が低いセキュリティ処理Ｐ３を導入対象から除外している。
【００８１】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態では、入力モデルＭ１に対して、セキュリティデータベース２２に基づいて導入可能なセキュリティ機能がすべて導入され、モデル検査および優先順位を基に、セキュリティ機能の削除が繰り返される。本実施の形態によれば、実施の形態１と同様に、脆弱性箇所を特定せずにセキュリティ機能を導入することで、処理フローのレベルにおいて適切なセキュリティ機能を重複なく適切な箇所に導入することができる。
【００８２】
実施の形態３．
本実施の形態について、主に実施の形態１との差異を、図１０から図１３を用いて説明する。
【００８３】
＊＊＊構成の説明＊＊＊
図１０を参照して、本実施の形態に係るセキュリティ設計装置１０の構成を説明する。
【００８４】
セキュリティ設計装置１０は、対策導入部２１と、セキュリティデータベース２２と、冗長性検査部２３とに加えて、評価部２４を備える。対策導入部２１、冗長性検査部２３および評価部２４の機能は、ソフトウェアにより実現される。
【００８５】
図１１に、セキュリティデータベース２２の構成例を示す。
【００８６】
セキュリティデータベース２２は、実施の形態１と同じように、それぞれ脅威に対処するために実行される複数のセキュリティ処理を定義するデータベースである。本実施の形態では、各セキュリティ機能について、対処される脅威と、処理レベルにおける導入箇所との定義に加えて、機能導入に要するコストの定義が保持されている。すなわち、本実施の形態では、セキュリティデータベース２２は、複数のセキュリティ処理のそれぞれについて、コストを定義している。コストの例としては、暗号化の鍵長、および、セキュリティ機能の実行に要する時間が挙げられる。セキュリティデータベース２２において、複数種類のコストの定義が保持されていてもよい。
【００８７】
なお、図１１では、自然言語による定義の例を記載しているが、プログラムまたはモデルで容易に解釈が可能な形式による定義が適用されてもよい。
【００８８】
＊＊＊動作の説明＊＊＊
図１２を参照して、本実施の形態に係るセキュリティ設計装置１０の動作を説明する。セキュリティ設計装置１０の動作は、本実施の形態に係るセキュリティ設計方法に相当する。
【００８９】
ステップＳ３００において、評価部２４は、パフォーマンスおよびセキュリティ等、設計対象のモデルにおけるユーザの要求に基づいて、コストから算出する評価値を設定および定義し、セキュリティデータベース２２に登録する。パフォーマンスとは、全体の処理速度のことである。
【００９０】
ステップＳ３０１からステップＳ３０５の処理については、実施の形態１におけるステップＳ１０１からステップＳ１０５の処理と同じであるため、説明を省略する。
【００９１】
ステップＳ３０４において、冗長性があり、ステップＳ３０６において、削除候補となるセキュリティ機能が１つのみであれば、ステップＳ３０７において、冗長性検査部２３は、そのセキュリティ機能を削除する。そして、ステップＳ３０３において、冗長性検査部２３は、再度モデル検査を行う。
【００９２】
ステップＳ３０４において、冗長性があり、ステップＳ３０６において、削除候補となるセキュリティ機能が複数あれば、ステップＳ３０８において、評価部２４は、各候補を削除した場合の評価値を算出する。具体的には、評価部２４は、セキュリティデータベース２２に保持されているコストの定義を基に、セキュリティ機能が導入されたモデルの評価値を算出する。評価の例としては、パフォーマンスおよびセキュリティの強度の確認等が挙げられる。評価値は、コスト同士の単純な加算値または乗算値でもよいし、ユーザが独自に定義した関数により求められる値でもよい。冗長性検査部２３は、評価部２４において算出された、モデル同士の評価値を比較し、評価値の低い削除候補を選択する。ステップＳ２０７において、冗長性検査部２３は、選択したセキュリティ機能を削除する。そして、ステップＳ２０３において、冗長性検査部２３は、再度モデル検査を行う。
【００９３】
冗長性が完全になくなることを確認できるまで以上の処理が繰り返され、処理レベルにおいて脆弱性対策が施されたモデルが出力モデルＭ３として出力される。
【００９４】
本実施の形態におけるセキュリティ機能の追加および削除の手順を、図１３に示す処理モデル変化例を用いて説明する。
【００９５】
ここでは、図４の例と同じ入力モデルＭ１に対してセキュリティを導入したモデルを作成および出力することを想定する。
【００９６】
対策導入部２１は、入力モデルＭ１と、図１１のセキュリティデータベース２２とを照合して、導入可能なすべてのセキュリティ機能を導入する。これにより、更新用モデルＭ２が得られる。冗長性検査部２３は、更新用モデルＭ２に対してモデル検査を行う。冗長性検査部２３は、冗長性があることを確認できたら、削除する候補を決定する。ここでは、図４の例と同じように、冗長性の確認の方法として、同じ箇所に複数のセキュリティ機能が位置する場合の、対処される脅威の重複の有無を確認する方法が用いられる。
【００９７】
本例では、図４の例と同じように、更新用モデルＭ２は、起動直後から入力直前までの間にセキュリティ処理Ｐ１およびセキュリティ処理Ｐ２、入力直後から分岐直前までの間にセキュリティ処理Ｐ３およびセキュリティ処理Ｐ４、分岐直後から停止直前までの間にセキュリティ処理Ｐ５およびセキュリティ処理Ｐ６を有している。セキュリティ処理Ｐ１、セキュリティ処理Ｐ２、セキュリティ処理Ｐ３、セキュリティ処理Ｐ４、セキュリティ処理Ｐ５およびセキュリティ処理Ｐ６は、それぞれセキュリティ１、セキュリティ２、セキュリティ３、セキュリティ４、セキュリティ５およびセキュリティ６の機能を持つ処理である。
【００９８】
図１１のセキュリティデータベース２２によれば、脅威３の対策となる機能には、セキュリティ３、セキュリティ４およびセキュリティ６がある。本例では、それらに対応するセキュリティ処理Ｐ３、セキュリティ処理Ｐ４およびセキュリティ処理Ｐ６のうち、セキュリティ処理Ｐ３とセキュリティ処理Ｐ４とが同じ位置に連続している。そのため、一方が不要であると考えられる。よって、得られるモデルとしては、セキュリティ処理Ｐ４を削除した出力モデルＭ３ａと、セキュリティ処理Ｐ３を削除した出力モデルＭ３ｂとが考えられる。このように削除候補が複数ある場合、評価部２４は、それぞれの候補に対してユーザが定義した評価値を算出する。冗長性検査部２３は、評価値が高いモデルを採用する。ユーザが定義した評価値が、モデルが有するセキュリティ機能のコストの総和の逆数であれば、出力モデルＭ３ａの評価値は１／（Ｃ１＋Ｃ２＋Ｃ３＋Ｃ５＋Ｃ６）であり、出力モデルＭ３ｂの評価値は１／（Ｃ１＋Ｃ２＋Ｃ４＋Ｃ５＋Ｃ６）となる。そのため、Ｃ３とＣ４との大小で削除する機能が決まる。Ｃ３＜Ｃ４であれば、冗長性検査部２３は、更新用モデルＭ２からセキュリティ処理Ｐ４を削除する。これにより、出力モデルＭ３ａが得られる。Ｃ３＞Ｃ４であれば、冗長性検査部２３は、更新用モデルＭ２からセキュリティ処理Ｐ３を削除する。これにより、出力モデルＭ３ｂが得られる。Ｃ３＝Ｃ４であれば、冗長性検査部２３は、更新用モデルＭ２からセキュリティ処理Ｐ４を削除してもよいし、セキュリティ処理Ｐ３を削除してもよい。このように複数の候補で評価値が同じ値になった場合は、実施の形態１と同様に、セキュリティデータベース２２上の位置を基に削除する機能を決めてもよいし、実施の形態２と同様に、優先順位を基に削除する機能を決めてもよい。
【００９９】
以上説明したように、本実施の形態において、冗長性検査部２３は、セキュリティデータベース２２により定義されたコストによって、「２つ以上のセキュリティ処理」のそれぞれを導入対象から除外するかどうかを決定する。図１３の例では、冗長性検査部２３は、セキュリティ処理Ｐ３およびセキュリティ処理Ｐ４のうち、図１１のセキュリティデータベース２２でコストが低いほうのセキュリティ処理を導入対象から除外している。
【０１００】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態では、入力モデルＭ１に対して、セキュリティデータベース２２に基づいて導入可能なセキュリティ機能がすべて導入され、モデル検査およびコストによるモデル評価を基に、セキュリティ機能の削除が繰り返される。本実施の形態によれば、セキュリティおよびパフォーマンスの面でユーザの要求を考慮しながら、セキュリティ機能を導入できる。脆弱性箇所を特定せずにセキュリティ機能を導入し、モデルの検証により脆弱性の有無を確認するとともに、ユーザの要求を確認することで、処理フローのレベルにおいて適切なセキュリティ機能を重複なく適切な箇所に導入することができる。
【０１０１】
＊＊＊他の構成＊＊＊
本実施の形態では、実施の形態１と同じように、対策導入部２１、冗長性検査部２３および評価部２４の機能がソフトウェアにより実現されるが、実施の形態１の他の構成例と同じように、対策導入部２１、冗長性検査部２３および評価部２４の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。
【０１０２】
実施の形態４．
本実施の形態について、主に実施の形態１との差異を、図１４から図２０を用いて説明する。
【０１０３】
本実施の形態では、モデルに使用される情報資産に基づいてモデル内の処理をグループ化し、各グループに含まれる情報資産の重要度に応じたセキュリティ機能をセキュリティＤＢに基づいて導入する。
ここで、情報資産とは、モデルを構成する要素である。ソフトウェア設計のためのモデルの場合、情報資産とは、モデル内で使用されている変数、定数、処理、ルーチン、機能、または、関数等である。
また、情報資産の重要度とは、モデルにおける情報資産の価値の度合いである。また、重要度とは、「セキュリティ強度」「機密性」「完全性」「可用性」「脆弱性」のような特性または属性でもよい。また、重要度とは、パフォーマンス（全体の処理速度）、実行頻度、リソース（ＣＰＵ・メモリ等）の使用頻度、リソースの使用時間、リソースの使用量のような特性または属性でもよい。
【０１０４】
本実施の形態では、セキュリティＤＢは複数存在し、各セキュリティＤＢは、セキュリティの強度によって異なるセキュリティ機能とその導入のルールを保持している。
本実施の形態では、脅威から防ぐ情報資産の重要度によってセキュリティＤＢ２２を使い分ける。
【０１０５】
＊＊＊構成の説明＊＊＊
図１４は、この発明の実施の形態に係るセキュリティ設計装置１０を示す構成図である。
図１４のセキュリティ設計装置１０は、実施の形態１と同様の対策導入部２１、セキュリティＤＢ２２、および、冗長性検査部２３に加えて、処理分類部２５から構成される。
【０１０６】
処理分類部２５は、モデル内で扱われる情報資産重要度情報Ｌ１を入力する。情報資産重要度情報Ｌ１は、モデル内で扱われる情報資産の重要度を示す情報である。
処理分類部２５は、情報資産重要度情報Ｌ１を参照して、モデル内で使用される情報資産に基づいて、モデル内の処理をグループ化する。
セキュリティＤＢ２２は、情報資産の重要度に応じたセキュリティ処理を定義している。
対策導入部２１は、複数のセキュリティ処理の中から、処理分類部２５によりグループ化された処理手順に対して導入するセキュリティ処理を選択し、グループ化された処理手順に対して選択したセキュリティ処理を導入する。
【０１０７】
図１５のセキュリティＤＢ２２Ａは、重要度が高い情報資産用のセキュリティＤＢの具体例である。
図１６のセキュリティＤＢ２２Ｂは、重要度が低い情報資産用のセキュリティＤＢの具体例である。
重要度が高い情報資産に適用するセキュリティＤＢ２２Ａは、強いセキュリティ機能が多く含まれている。
逆に、重要度が低い情報資産に適用するセキュリティＤＢ２２Ｂは、比較的弱いセキュリティ機能が含まれている。
複数のセキュリティＤＢ同士で同じ機能を重複して保持してもよい。
【０１０８】
処理分類部２５に対する入力として、入力モデルＭ１に加えて、情報資産重要度情報Ｌ１を入力する。
情報資産重要度情報Ｌ１は、例えば「コマンドＡ：重要度高」「コマンドＢ：重要度低」等と、入力モデルＭ１に含まれる情報資産とその重要度が示されている。
情報の重要度を「機密性」「完全性」「可用性」のような複数の特性に分類し、それぞれに対応したセキュリティＤＢを用意してもよい。また、事前にモデル内の脆弱性情報を入手し、情報資産の重要度の判断に用いてもよい。
【０１０９】
処理分類部２５は、入力モデル内で同じ情報資産が使用されている処理を抽出し、グループ化する。
グループ化を実現する方法の例として、同じ変数が使われている処理を抽出する方法、または、データフローを利用して追跡する方法が挙げられる。グループ化した処理は、実施の形態１等におけるモデルと同様に扱うことができ、セキュリティＤＢ２２と照合して後段の対策導入部２１と冗長性検査部２３に入力される。
【０１１０】
ただし、本実施の形態では各情報資産の重要度に応じたセキュリティ機能を導入するため、実施の形態１〜３では存在の前提としていた冗長性が減少していること、または、冗長性が存在しないことも考えられる。したがって、冗長性検査部２３が動作しないまたは不要な可能性もある。
【０１１１】
＊＊＊概要動作説明＊＊＊
図１７のセキュリティ設計装置１０の概要動作のフローチャートを用いて、実施の形態４におけるセキュリティ機能の追加の手順について説明する。
【０１１２】
ユーザはモデルを用いてセキュリティを考慮せずにソフトウェア設計を行う。
【０１１３】
ステップＳ４０１において、作成した入力モデルＭ１および情報資産重要度情報Ｌ１を、本セキュリティ設計装置１０に入力する。すなわち、ユーザは、開発対象の制御モデルに加えて、モデル内で扱われる情報資産の重要度情報を入力する。
【０１１４】
ステップＳ４０２において、セキュリティ設計装置１０は、モデルを処理分類部２５に入力する。処理分類部２５は、モデル内に含まれる処理を、モデル内で使用されている情報資産に基づいて、グループ化してグループ化したモデルを更新用モデルＭ２として出力する。
【０１１５】
ステップＳ４０３において、対策導入部２１は、セキュリティＤＢ２２を基に、更新用モデルＭ２の各グループに対して導入可能なセキュリティ機能を全箇所に追加する。
【０１１６】
そして、ステップＳ４０４において、冗長性検査部２３は、モデル検査を行い、更新用モデルＭ２における冗長性の有無を確認する。
【０１１７】
ステップＳ４０５において、更新用モデルＭ２に冗長性がないと判断された場合、その時点の更新用モデルＭ２を出力モデルＭ３として出力し、ステップＳ４０６に行き処理を終了する。
【０１１８】
ステップＳ４０５において、更新用モデルＭ２に冗長性があると判断された場合、ステップＳ４０７において、対策導入部２１は、更新用モデルＭ２の冗長なセキュリティ機能のうち１つを削除し、再度モデル検査を行う。
【０１１９】
セキュリティ設計装置１０は、冗長性が完全になくなることを確認できるまで以上の処理を繰り返し、処理レベルにおいて脆弱性対策が施されたモデルを出力する。
【０１２０】
＊＊＊ＤＢとモデル例による動作説明＊＊＊
図１８に示すグループ化によるモデル変化例を用いて、セキュリティ機能の追加の手順を説明する。
【０１２１】
ここでは、簡易なフローチャートを処理モデルとして入力して出力することを想定する。
ユーザは、セキュリティ機能を考慮せずにモデルＭ４１０を作成する。ここで例として示しているモデルＭ４１０は、フィールド機器の制御ソフトウェアを想定し、外部から複数のコマンド、すなわちコマンドＡとコマンドＢをそれぞれ受信し、さらに外部へ各コマンドを送信して終了するという処理モデルである。ただし、コマンドＡは重要度が高く、コマンドＢは重要度が低いものとする。
情報資産重要度情報Ｌ１は、コマンドＡは重要度が高く、コマンドＢは重要度が低いことを示す情報である。
【０１２２】
ユーザは、処理モデルＭ４１０および情報資産重要度情報Ｌ１を入力する。
処理分類部２５は、各処理で使用される情報資産に基づいて、各処理をグループ化する。
モデルＭ４１０にはコマンドＡが使用される処理と、コマンドＢが使用される処理があるため、各処理を二つのグループに分類することができる。
【０１２３】
図１８に示すように、処理分類部２５は、モデルＭ４１０を、コマンドＡが使用されるグループＧ４２１とコマンドＢが使用されるグループＧ４２２という二つのグループに分類して、モデルＭ４２０として出力する。
【０１２４】
続いて、対策導入部２１は、グループ化済みのモデルＭ４２０に対して図１５のセキュリティＤＢ２２Ａと図１６のセキュリティＤＢ２２Ｂを照合して、各グループに導入可能なセキュリティ機能を導入する。
【０１２５】
対策導入部２１は、グループＧ４２１にセキュリティＤＢ２２Ａのセキュリティ機能を導入し、グループＧ４２２にセキュリティＤＢ２２Ｂのセキュリティ機能を導入し、モデルＭ４３０として出力する。
【０１２６】
この後、実施の形態１と同様に、必要に応じてモデルＭ４３０に対してモデル検査を行い、冗長な機能を削除する。削除後、再度モデル検査を行い、冗長性の有無を確認する。
【０１２７】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態によれば、ユーザが定めた情報資産の重要度に応じたセキュリティ機能を導入できる。
【０１２８】
本実施の形態によれば、脆弱性箇所を特定せずにセキュリティ機能を導入し、モデルの検証により脆弱性の有無を確認するとともに、情報資産の重要度を確認することで、処理レベルにおいてセキュリティ機能を重複なく適切な個数・箇所に導入できる。
【０１２９】
＊＊＊他の動作説明＊＊＊
先述の例では全く同じ情報資産が使われていることに基づいて処理を抽出・グループ化したが、処理の抽出・グループ化には、データフローを利用する方法等、他の方法も考えられる。
【０１３０】
例えば、図１９に示すグループ化によるモデル変化例では、情報資産の処理内容に着目する。入力するモデルＭａ４１０では、先述と同様にコマンドＡ（重要度：高）とコマンドＢ（重要度：低）を使用しているが、途中の処理Ｍａ４１３でコマンドを加算している。
処理分類部２５は、「Ｃ＝Ａ＋Ｂ」という加算処理Ｍａ４１３と、加算処理以後の「コマンドＣ送信」という送信処理Ｍａ４１４との重要度を高く扱う。
【０１３１】
処理分類部２５は、モデルＭａ４２０を、グループＧａ４２１とグループＧａ４２２という二つのグループに分類して、モデルＭａ４２０として出力する。
このように重要度が異なる情報資産同士の演算・演算結果が含まれる場合は、それらを重要度の高い情報資産のグループへ含める。
【０１３２】
そして、対策導入部２１は、先述と同様に図１５のセキュリティＤＢ２２Ａと図１６のセキュリティＤＢ２２Ｂを照合して、情報資産毎のセキュリティ機能が含まれたモデルＭａ４３０を出力する。
【０１３３】
＊＊＊他の動作説明＊＊＊
図２０に示すグループ化によるモデル変化例では、情報資産の使用方法に着目する。
入力するモデルＭｂ４１０では、先述と同様にコマンドＡ（重要度：高）とコマンドＢ（重要度：低）を使用しているが、途中の処理Ｍｂ４１３でコマンドＡを分岐の制御変数として使用している。
【０１３４】
処理分類部２５は、「コマンドＡ＝？」という分岐処理Ｍｂ４１３と、分岐処理以後の送信処理Ｍｂ４１４、Ｍｂ４１５との重要度を高く扱う。
このように重要度が高い情報資産を制御変数として用いている場合は、その結果行われる後段の処理も重要度が高いグループに含める（モデルＭｂ４２０のグループＧｂ４２１）。
【０１３５】
そして、対策導入部２１は、先述と同様に図１５のセキュリティＤＢ２２Ａと図１６のセキュリティＤＢ２２Ｂを照合して、情報資産毎のセキュリティ機能が含まれたモデルＭｂ４３０を出力する。
【０１３６】
実施の形態５．
本実施の形態について、主に実施の形態４との差異を、図２１から図２５を用いて説明する。
【０１３７】
本実施の形態では、セキュリティ機能を有しないモデルに対して、モデルで使用される情報資産に基づいてモデル内の処理をグループ化し、セキュリティＤＢに基づいてグループに対して導入可能なセキュリティ機能を全て導入する。
本実施の形態では、モデル検査およびコストによるモデル内のグループ評価を基に、セキュリティ機能の削除または交換を繰り返すことを特徴とする。
【０１３８】
＊＊＊構成の説明＊＊＊
図２１は、この発明の実施の形態に係るセキュリティ設計装置１０を示す構成図である。
図２１のセキュリティ設計装置１０は、実施の形態４と同様の対策導入部２１、セキュリティＤＢ２２、冗長性検査部２３、および、処理分類部２５に加え、グループ評価部２６から構成される。
グループ評価部２６は、セキュリティＤＢにより定義されたコストに基づいて、グループ化された処理手順の中のセキュリティ処理の評価値を求め、評価値に基づいて、グループ化された処理手順の中のセキュリティ処理を導入対象から除外するかどうかを決定する。
【０１３９】
セキュリティＤＢ２２は、実施の形態４と同様に対策導入部２１において更新用モデルＭ２に対してセキュリティを導入する際に使用する情報を格納している。
【０１４０】
図２２のセキュリティＤＢ２２Ａと、図２３のセキュリティＤＢ２２Ｂは、図２１のセキュリティＤＢ２２の構成要素例である。
図２２のセキュリティＤＢ２２Ａは、重要度が高い情報資産用のセキュリティＤＢの具体例である。
図２３のセキュリティＤＢ２２Ｂは、重要度が低い情報資産用のセキュリティＤＢの具体例である。
セキュリティＤＢ２２ＡとセキュリティＤＢ２２Ｂには、実施の形態４と同様のセキュリティ機能導入のルールに加え、機能導入に要するコストＣが保持されている。
コストＣの例としては、暗号化の鍵長、セキュリティ機能実行に要する時間等が考えられる。１つのＤＢ内に、複数種類のコストを保持してもよい。
【０１４１】
グループ評価部２６は、セキュリティＤＢ２２に保持されているコストＣを基に、セキュリティ機能が導入されたモデルのグループに対して、評価値を算出する。
評価の目的としては、パフォーマンス（全体の処理速度）やセキュリティの強度、ＣＰＵ・メモリ等のリソース制限の考慮等が挙げられる。評価値はコスト同士の単純な加算または乗算でもよいし、ユーザが独自に関数を定義してもよい。
【０１４２】
また、グループ評価部２６において、モデルの評価値を算出し、モデルがユーザの要求を満たすモデルかどうかを確認する。要求を満たさない場合は、対策導入部２１でセキュリティ機能を削除または他の機能に交換する。または、ユーザに警告を提示する方法も考えられる。
【０１４３】
ただし、本実施の形態では実施の形態４と同様に各情報資産の重要度に応じたセキュリティ機能を導入するため、実施の形態１〜３では存在の前提としていた冗長性が減少または存在しないことも考えられる。したがって、冗長性検査部２３が動作しないまたは不要な可能性もある。
【０１４４】
＊＊＊概要動作説明＊＊＊
図２４のセキュリティ設計装置１０の概要動作のフローチャートを用いて、実施の形態５におけるセキュリティ機能の導入の手順について説明する。
はじめに、ステップＳ５００において、パフォーマンス（全体の処理速度）やセキュリティ強度、ＣＰＵ・メモリ等のリソース制限等、設計対象のモデルにおけるユーザの要求に基づいて、セキュリティ処理の処理時間の評価基準を設定し定義しておく。
【０１４５】
ステップＳ５０１において、ユーザはモデルを用いてセキュリティを考慮せずにソフトウェア設計を行い、作成した入力モデルＭ１および情報資産重要度情報Ｌ１を、本セキュリティ設計装置１０に入力する。
【０１４６】
ステップＳ５０２において、セキュリティ設計装置１０では、入力モデルＭ１を処理分類部２５に入力する。処理分類部２５は、モデル内に含まれる処理を、使用される情報資産に基づいてグループ化して、グループ化したモデルを更新用モデルＭ２として出力する。
【０１４７】
ステップＳ５０３において、対策導入部２１は、セキュリティＤＢ２２を基に、更新用モデルＭ２に対して導入可能なセキュリティ機能を全箇所に追加する。
【０１４８】
ステップＳ５０４において、冗長性検査部２３においてモデル検査を行い、更新用モデルＭ２における冗長性の有無を確認する。
【０１４９】
ステップＳ５０４において、更新用モデルＭ２に冗長性があると判断された場合、ステップＳ５０５において、対策導入部２１は、冗長なセキュリティ機能のうち１つを削除し、再度モデル検査を行う。
【０１５０】
ステップＳ５０４において、更新用モデルＭ２に冗長性がないと判断された場合、ステップＳ５０７において、グループ評価部２６は、その時点の更新用モデルＭ２の各グループにおける評価値を算出する。
【０１５１】
ステップＳ５０８において、評価値が基準を満たしていることを確認できれば、対策導入部２１は、その時点の更新用モデルＭ２を出力モデルＭ３として、ステップＳ５０９に行き処理を終了する。
【０１５２】
評価値が基準を満たしていなければ、ステップＳ５０６において、対策導入部２１は、その時点の更新用モデルＭ２内のセキュリティ機能を１つ削除するか、またはコスト値の低いセキュリティ機能に交換し、冗長性検査部２３が、再度冗長性検査を行う。
【０１５３】
セキュリティ設計装置１０は、冗長性がないことおよび評価値が基準を満たしていることを確認できるまで、以上の処理を繰り返し、処理レベルにおいて情報資産毎にセキュリティ機能が施されたモデルを出力する。
【０１５４】
＊＊＊ＤＢとモデル例による動作説明＊＊＊
図２５に示すグループ化によるモデル変化例を用いて、実施の形態５におけるセキュリティ機能の追加の手順を説明する。
ここでは、簡易なフローチャートを処理モデルとして入力して出力する。
ユーザは、セキュリティ機能を考慮せずにモデルＭ５１０を作成する。ここで例として示しているモデルＭ５１０は、フィールド機器の制御ソフトウェアを想定し、外部から複数のコマンド、すなわちコマンドＡとコマンドＢをそれぞれ受信し、さらに外部へ各コマンドを送信して終了するという処理モデルである。
ただし、コマンドＡは重要度が高く、コマンドＢは重要度が低いものとする。
【０１５５】
ユーザは、はじめにコマンドＡに関する評価基準、コマンドＢに関する評価基準を定める。
例えば、各コマンドに対するセキュリティ処理の処理時間を評価することを想定する。
ユーザは、セキュリティ処理の処理時間の評価基準としてコマンドＡに関する評価基準ＣＡ０とコマンドＢに関する評価基準ＣＢ０を定め、リアルタイム性の考慮により、各コマンドのセキュリティ処理の処理時間がこの評価基準を超過してはいけないとする。
【０１５６】
ユーザは、処理モデルＭ５１０を入力モデルＭ１として入力する。
処理分類部２５は、各処理で使用される情報資産に基づいて、各処理をグループ化する。
モデルＭ５１０にはコマンドＡが使用される処理と、コマンドＢが使用される処理があるため、処理分類部２５は、各処理を二つのグループに分類することができる（図２５のモデルＭ５２０のグループＧ５２１とグループＧ５２２）。
【０１５７】
続いて、対策導入部２１は、グループ化済みのモデルＭ５２０に対して、図２２のセキュリティＤＢ２２Ａと図２３のセキュリティＤＢ２２Ｂを照合して、各グループに導入可能なセキュリティ機能を導入する。
【０１５８】
対策導入部２１は、グループＧ５２１にセキュリティＤＢ２２Ａのセキュリティ機能を導入し、グループＧ５２２にセキュリティＤＢ２２Ｂのセキュリティ機能を導入し、モデルＭ５３０として出力する。
【０１５９】
冗長性検査部２３においてモデル検査を行い、更新用モデルＭ２における冗長性の有無を確認する。
更新用モデルＭ２に冗長性があると判断された場合、対策導入部２１は、冗長なセキュリティ機能のうち１つを削除し、再度モデル検査を行う。
【０１６０】
更新用モデルＭ２に冗長性がないと判断された場合、グループ評価部２６は、その時点の更新用モデルＭ２の各グループにおける評価値を算出する。
【０１６１】
グループ評価部２６は、グループＧ５３１とグループＧ５３２の評価値を求める。
例えば、グループ評価部２６は、単純にコスト値を加算し、グループＧ５３１の評価値ＣＡ＝Ｃ１＋Ｃ２＋Ｃ３、グループＧ５３２の評価値ＣＢ＝Ｃ１が得られる。
【０１６２】
グループ評価部２６は、評価値と評価基準を比較し、ＣＡ＞ＣＡ０およびＣＢ＜ＣＢ０となったとする。
ＣＡは基準ＣＡ０を超過してしまったので、グループＧ５３１のセキュリティ機能をいずれか１つ取り除くまたは他の処理と交換するという処理が必要となる。
グループ評価部２６は、取り除くまたは他の処理と交換するセキュリティ機能を決定して対策導入部２１に指示する。
図２５では、対策導入部２１が、改竄検知処理Ｍ５４１を取り除くことにより、ＣＡ＜ＣＡ０を満足させ、モデルＭ５４０を得た例を示している。
【０１６３】
グループ評価部２６がグループの中からどのセキュリティ機能を取り除くまたは交換するかという判断は、セキュリティ機能の優先順位を利用してもよいし、セキュリティ機能のコスト値の大小等を利用してもよい。
また、グループ評価部２６が、セキュリティ機能を自動的に削除したり、セキュリティ機能を自動的に交換するのではなく、グループ評価部２６が削除警告または選択肢をユーザに提示するという形でもよい。
【０１６４】
更新用モデルＭ２に冗長性がないことおよび評価値が基準を満たしていることを確認できるまで、以上の処理を繰り返す。
グループ評価部２６により全グループの評価値が基準を満たしていることを確認できれば、対策導入部２１は、その時点の更新用モデルＭ２を出力モデルＭ３として出力する。
【０１６５】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態によれば、ユーザが定めた情報資産の重要度に応じたセキュリティ機能を導入することができる。
【０１６６】
本実施の形態によれば、グループ評価部２６を設けたので、システムのパフォーマンス（全体の処理速度）、セキュリティ強度、ハードウェアリソースの制限等を考慮してセキュリティ機能を導入することができる。
【０１６７】
＊＊＊他の実施の形態＊＊＊
前述した実施の形態の一部または全部を他の実施の形態と組み合わせてもよい。
前述した実施の形態の一部または全部の機能が、ソフトウェアのみ、ハードウェアのみ、または、ソフトウェアとハードウェアとの組み合わせにより実現されてもよい。
【符号の説明】
【０１６８】
１０  セキュリティ設計装置、１１  プロセッサ、１２  メモリ、１３  通信デバイス、１４  入力機器、１５  ディスプレイ、２１  対策導入部、２２，２２Ａ，２２Ｂ  セキュリティデータベース、２３  冗長性検査部、２４  評価部、２５  処理分類部、２６  グループ評価部、Ｍ１  入力モデル、Ｍ２  更新用モデル、Ｍ３  出力モデル、Ｍ３ａ  出力モデル、Ｍ３ｂ  出力モデル、Ｐ１  セキュリティ処理、Ｐ２  セキュリティ処理、Ｐ３  セキュリティ処理、Ｐ３ａ  セキュリティ処理、Ｐ３ｂ  セキュリティ処理、Ｐ３ｃ  セキュリティ処理、Ｐ４  セキュリティ処理、Ｐ５  セキュリティ処理、Ｐ６  セキュリティ処理。
【図１】
2019142469.tif 000003
【図２】
2019142469.tif 000004
【図３】
2019142469.tif 000005
【図４】
2019142469.tif 000006
【図５】
2019142469.tif 000007
【図６】
2019142469.tif 000008
【図７】
2019142469.tif 000009
【図８】
2019142469.tif 000010
【図９】
2019142469.tif 000011
【図１０】
2019142469.tif 000012
【図１１】
2019142469.tif 000013
【図１２】
2019142469.tif 000014
【図１３】
2019142469.tif 000015
【図１４】
2019142469.tif 000016
【図１５】
2019142469.tif 000017
【図１６】
2019142469.tif 000018
【図１７】
2019142469.tif 000019
【図１８】
2019142469.tif 000020
【図１９】
2019142469.tif 000021
【図２０】
2019142469.tif 000022
【図２１】
2019142469.tif 000023
【図２２】
2019142469.tif 000024
【図２３】
2019142469.tif 000025
【図２４】
2019142469.tif 000026
【図２５】
2019142469.tif 000027
【手続補正書】
【提出日】令和1年10月25日(2019.10.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プログラムの処理手順を定義する入力モデルが入力されると、それぞれ脅威に対処するために実行される複数のセキュリティ処理を定義するセキュリティデータベースを参照して、前記複数のセキュリティ処理の中から、前記入力モデルにより定義された処理手順に導入する１つ以上のセキュリティ処理を選択し、選択したセキュリティ処理を導入した後の前記プログラムの処理手順を定義する出力モデルを出力する対策導入部と、
前記対策導入部により選択されたセキュリティ処理の中に、前記プログラムの処理手順における導入箇所が重複し、かつ、同じ脅威に対処するために実行される２つ以上のセキュリティ処理が含まれていれば、それら２つ以上のセキュリティ処理のうち少なくとも１つのセキュリティ処理を、前記出力モデルにより定義される処理手順への導入対象から除外する冗長性検査部と
を備え、
前記冗長性検査部は、前記少なくとも１つのセキュリティ処理として、前記２つ以上のセキュリティ処理のうち１つ以外のセキュリティ処理を導入対象から除外するセキュリティ設計装置。
【請求項２】
前記セキュリティデータベースは、前記複数のセキュリティ処理のそれぞれについて、導入箇所と、その導入箇所に導入されたセキュリティ処理によって対処される脅威とを定義し、
前記１つ以上のセキュリティ処理は、前記セキュリティデータベースにより定義された導入箇所が前記入力モデルにより定義された処理手順の中に存在するセキュリティ処理であり、
前記２つ以上のセキュリティ処理は、前記プログラムの処理手順の中で連続して実行され、かつ、前記セキュリティデータベースにより定義された脅威が一致するセキュリティ処理である請求項１に記載のセキュリティ設計装置。
【請求項３】
前記冗長性検査部は、前記セキュリティデータベースにおける前記２つ以上のセキュリティ処理の登録位置によって、前記２つ以上のセキュリティ処理のそれぞれを導入対象から除外するかどうかを決定する請求項１又は２に記載のセキュリティ設計装置。
【請求項４】
前記セキュリティデータベースは、前記複数のセキュリティ処理のうち少なくとも一部のセキュリティ処理について、優先順位を定義し、
前記冗長性検査部は、前記セキュリティデータベースにより定義された優先順位によって、前記２つ以上のセキュリティ処理のそれぞれを導入対象から除外するかどうかを決定する請求項１又は２に記載のセキュリティ設計装置。
【請求項５】
前記セキュリティデータベースは、前記複数のセキュリティ処理のそれぞれについて、コストを定義し、
前記冗長性検査部は、前記セキュリティデータベースにより定義されたコストによって、前記２つ以上のセキュリティ処理のそれぞれを導入対象から除外するかどうかを決定する請求項１又は２に記載のセキュリティ設計装置。
【請求項６】
前記入力モデル内で使用される情報資産に基づいて前記入力モデル内の処理をグループ化する処理分類部を備え、
前記対策導入部は、前記複数のセキュリティ処理の中から、グループ化された処理手順に対して導入するセキュリティ処理を選択し、グループ化された処理手順に対して選択したセキュリティ処理を導入する請求項１から５のいずれか１項に記載のセキュリティ設計装置。
【請求項７】
前記処理分類部は、前記入力モデル内で扱われる情報資産の重要度情報を入力し、情報資産の重要度情報に基づいて、前記入力モデル内の処理をグループ化する請求項６に記載のセキュリティ設計装置。
【請求項８】
前記セキュリティデータベースは、前記複数のセキュリティ処理のそれぞれについて、コストを定義し、
前記セキュリティデータベースにより定義されたコストに基づいて、グループ化された処理手順の中のセキュリティ処理の評価値を求め、前記評価値に基づいて、グループ化された処理手順の中のセキュリティ処理を導入対象から除外するかどうかを決定するグループ評価部を備えた請求項６又は７に記載のセキュリティ設計装置。
【請求項９】
対策導入部と冗長性検査部とを備えたセキュリティ設計装置のセキュリティ設計方法において、
前記対策導入部は、プログラムの処理手順を定義する入力モデルが入力されると、プロセッサにより、それぞれ脅威に対処するために実行される複数のセキュリティ処理を定義するセキュリティデータベースを参照して、前記複数のセキュリティ処理の中から、前記入力モデルにより定義された処理手順に導入する１つ以上のセキュリティ処理を選択し、選択したセキュリティ処理を導入した後の前記プログラムの処理手順を定義する出力モデルを出力し、
前記冗長性検査部は、前記対策導入部により選択されたセキュリティ処理の中に、前記プログラムの処理手順における導入箇所が重複し、かつ、同じ脅威に対処するために実行される２つ以上のセキュリティ処理が含まれていれば、プロセッサにより、それら２つ以上のセキュリティ処理のうち少なくとも１つのセキュリティ処理を、前記出力モデルにより定義される処理手順への導入対象から除外し、
前記冗長性検査部は、プロセッサにより、前記少なくとも１つのセキュリティ処理として、前記２つ以上のセキュリティ処理のうち１つ以外のセキュリティ処理を導入対象から除外するセキュリティ設計方法。
【請求項１０】
コンピュータに、
プログラムの処理手順を定義する入力モデルが入力されると、それぞれ脅威に対処するために実行される複数のセキュリティ処理を定義するセキュリティデータベースを参照して、前記複数のセキュリティ処理の中から、前記入力モデルにより定義された処理手順に導入する１つ以上のセキュリティ処理を選択し、選択したセキュリティ処理を導入した後の前記プログラムの処理手順を定義する出力モデルを出力する対策導入処理と、
前記対策導入処理により選択されたセキュリティ処理の中に、前記プログラムの処理手順における導入箇所が重複し、かつ、同じ脅威に対処するために実行される２つ以上のセキュリティ処理が含まれていれば、それら２つ以上のセキュリティ処理のうち少なくとも１つのセキュリティ処理を、前記出力モデルにより定義される処理手順への導入対象から除外する冗長性検査処理と
を実行させ、
前記冗長性検査処理は、前記少なくとも１つのセキュリティ処理として、前記２つ以上のセキュリティ処理のうち１つ以外のセキュリティ処理を導入対象から除外するセキュリティ設計プログラム。
【国際調査報告】
2019142469.tif 000028
2019142469.tif 000029
2019142469.tif 000030
2019142469.tif 000031