(57)【要約】概念設計段階の対象システムに対して脅威分析を行うことのできる脅威分析装置、脅威分析方法、及び脅威分析プログラムを提供する。対象システムに含まれる機能アプリケーションについて、システムの仕様を規定するためのシステム仕様情報を用いてモデル化した機能アプリケーションモデル情報５００〜９００を取得する第１取得部１５０と、事例システムに含まれる脆弱性についてシステム仕様情報を用いてモデル化した脆弱性モデル情報１１００〜１３００を取得する第２取得部１６０と、機能アプリケーションモデル情報５００〜９００と脆弱性モデル情報１１００〜１３００とに基づいて対象システムの脅威分析を行う実行部１８０と、を備える。
2019093059.tif 000002
【特許請求の範囲】
【請求項１】
対象システムに含まれる機能アプリケーションについて、システムの仕様を規定するためのシステム仕様情報を用いてモデル化した機能アプリケーションモデル情報を取得する第１取得部と、
事例システムに含まれる脆弱性について前記システム仕様情報を用いてモデル化した脆弱性モデル情報を取得する第２取得部と、
前記機能アプリケーションモデル情報と前記脆弱性モデル情報とに基づいて前記対象システムの脅威分析を行う実行部と、を備える、
脅威分析装置。
【請求項２】
前記脆弱性モデル情報は、攻撃成立条件及び攻撃結果の情報を含み、
前記第２取得部は、複数の前記脆弱性モデル情報を取得し、
前記機能アプリケーションモデル情報が前記複数の脆弱性モデル情報のうちの少なくとも一つの前記攻撃条件を満たすときに、該脆弱性モデル情報の前記攻撃成立条件及び前記攻撃結果の情報に基づいて前記機能アプリケーションモデル情報の一部を更新する更新部をさらに備え、
前記実行部は、更新された前記機能アプリケーションモデル情報と前記複数の脆弱性モデル情報とに基づいて前記対象システムの脅威分析を行う、
請求項１に記載の脅威分析装置。
【請求項３】
前記対象システムは、第１機能アプリケーションと、該第１機能アプリケーションと通信接続可能な第２機能アプリケーションとを含み、
前記第１取得部は、前記第１機能アプリケーションの前記機能アプリケーションモデル情報と前記第２機能アプリケーションの前記機能アプリケーションモデル情報とを取得し、
前記実行部は、前記第１機能アプリケーションの前記機能アプリケーションモデル情報及び前記第２機能アプリケーションの前記機能アプリケーションモデル情報と、前記脆弱性モデル情報とに基づいて前記対象システムの脅威分析を行う、
請求項１又は２に記載の脅威分析装置。
【請求項４】
前記脅威分析を行った前記対象システムに対して利用料を算出する利用料算出部をさらに備える、
請求項１から３のいずれか一項に記載の脅威分析装置。
【請求項５】
前記脅威分析の結果、前記対象システムが脆弱性を含むときに、該脆弱性に対応する前記脆弱性モデル情報に対する報酬を前記利用料に基づいて算出する報酬算出部をさらに備える、
請求項４に記載の脅威分析装置。
【請求項６】
対象システムに含まれる機能アプリケーションについて、システムの仕様を規定するためのシステム仕様情報を用いてモデル化した機能アプリケーションモデル情報を取得する第１取得ステップと、
事例システムに含まれる脆弱性について前記システム仕様情報を用いてモデル化した脆弱性モデル情報を取得する第２取得ステップと、
前記機能アプリケーションモデル情報と前記脆弱性モデル情報とに基づいて前記対象システムの脅威分析を行う実行ステップと、を含む、
脅威分析方法。
【請求項７】
前記脆弱性モデル情報は、攻撃成立条件及び攻撃結果の情報を含み
前記第２取得ステップは、複数の前記脆弱性モデル情報を取得し、
前記機能アプリケーションモデル情報が前記複数の脆弱性モデル情報のうちの少なくとも一つの前記攻撃条件を満たすときに、該脆弱性モデル情報の前記攻撃成立条件及び前記攻撃結果の情報に基づいて前記機能アプリケーションモデル情報の一部を更新する更新ステップをさらに含み、
前記実行ステップは、更新された前記機能アプリケーションモデル情報と前記複数の脆弱性モデル情報とに基づいて前記対象システムの脅威分析を行うことを含む、
請求項６に記載の脅威分析方法。
【請求項８】
前記対象システムは、第１機能アプリケーションと、該第１機能アプリケーションと通信接続可能な第２機能アプリケーションとを含み、
前記第１取得ステップは、前記第１機能アプリケーションの前記機能アプリケーションモデル情報と前記第２機能アプリケーションの前記機能アプリケーションモデル情報とを取得し、
前記実行ステップは、前記第１機能アプリケーションの前記機能アプリケーションモデル情報及び前記第２機能アプリケーションの前記機能アプリケーションモデル情報と、前記脆弱性モデル情報とに基づいて前記対象システムの脅威分析を行うことを含む、
請求項６又は７に記載の脅威分析方法。
【請求項９】
前記脅威分析を行った前記対象システムに対して利用料を算出する利用料算出ステップをさらに含む、
請求項６から８のいずれか一項に記載の脅威分析方法。
【請求項１０】
前記脅威分析の結果、前記対象システムが脆弱性を含むときに、該脆弱性に対応する前記脆弱性モデル情報に対する報酬を前記利用料に基づいて算出する報酬算出ステップをさらに含む、
請求項９に記載の脅威分析方法。
【請求項１１】
コンピュータに実行させる脅威分析プログラムであって、
対象システムに含まれる機能アプリケーションについて、システムの仕様を規定するためのシステム仕様情報を用いてモデル化した機能アプリケーションモデル情報を取得する第１取得ステップと、
事例システムに含まれる脆弱性について前記システム仕様情報を用いてモデル化した脆弱性モデル情報を取得する第２取得ステップと、
前記機能アプリケーションモデル情報と前記脆弱性モデル情報とに基づいて前記対象システムの脅威分析を行う実行ステップと、を含む、
脅威分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、脅威分析装置、脅威分析方法、及び脅威分析プログラムに関する。
【背景技術】
【０００２】
従来、脅威分析方法として、米国マイクロソフト社が発表した脅威分析ツール"Microsoft Threat Modeling Tool"（以下、「MS脅威分析ツール」という）を用いるものが知られている（例えば、非特許文献１参照）。MS脅威分析ツールでは、分析対象のシステムに含まれるデータフローを組織間のインタフェースで分割した上で、データフローの両端の要素の相互作用の特性情報を抽出する。そして、あらかじめSTRIDE分類軸でまとめた脅威分類表と抽出した特性情報とを比較することで、分析対象のシステムに発生する可能性がある脅威を提示できるようにしている。ここで、STRIDE分類軸とは、「なりすまし」（Spoofing）、「改ざん」（Tampering）、「否認」（Repudiation）、「情報の漏洩」（Information disclosure）、「DoS攻撃」（Denial of service）、「権限昇格」（Elevation of privilege）の各脅威から構成される分類軸である。
【先行技術文献】
【非特許文献】
【０００３】
“マイクロソフト脅威モデリングツール２０１６ユーザガイド”(Microsoft Threat Modeling Tool 2016 User Guide)、［online］、マイクロソフト社(Microsoft)、［平成２９年１０月２６日検索］、インターネット＜URL：https://www.microsoft.com/en-us/download/details.aspx?id=49168&751be11f-ede8-5a0c-058c-2ee190a24fa6=True&e6b34bbe-475b-1abd-2c51-b5034bcdd6d2=True&fa43d42b-25b5-4a42-fe9b-1634f450f5ee=True＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
前述したMS脅威分析ツールは、分析対象のシステムのデータフローダイアグラムを用いて脅威分析を行う。しかしながら、データフローダイアグラムはシステム設計の詳細設計段階で使用されることが多いため、MS脅威分析ツールは概念設計段階のシステムを対象として脅威分析を行うことが困難であった。【０００５】
また、脆弱性事例情報として、米国MITRE社によって収集・蓄積されたCWE（Common Weakness Enumeration）と呼ばれる大部の脆弱性事例情報データベースが公開されている。しかしながら、CWEには、実際に運用されている既存システムで発見された脆弱性事例が記述されているため、概念設計段階のシステムにCWEを適用して脅威分析を行うことは困難であった。【０００６】
そこで、本発明は、概念設計段階の対象システムに対して脅威分析を行うことのできる脅威分析装置、脅威分析方法、及び脅威分析プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様に係る脅威分析装置は、対象システムに含まれる機能アプリケーションについて、システムの仕様を規定するためのシステム仕様情報を用いてモデル化した機能アプリケーションモデル情報を取得する第１取得部と、事例システムに含まれる脆弱性についてシステム仕様情報を用いてモデル化した脆弱性モデル情報を取得する第２取得部と、機能アプリケーションモデル情報と脆弱性モデル情報とに基づいて対象システムの脅威分析を行う実行部と、を備える。【０００８】
この態様によれば、対象システムに含まれる機能アプリケーションについて、システム仕様情報を用いてモデル化した機能アプリケーションモデル情報が取得され、事例システムに含まれる脆弱性について、システム仕様情報を用いてモデル化した脆弱性モデル情報が取得される。そして、機能アプリケーションモデル情報と脆弱性モデル情報とに基づいて、対象システムの脅威分析が行われる。ここで、システム仕様情報に含まれる抽象的な仕様情報は、概念設計段階のシステムでも得ることができる。よって、同じシステム仕様情報を用いて機能アプリケーションモデル情報及び脆弱性モデル情報を取得することにより、対象システムの機能アプリケーションモデル情報と事例システムの脆弱性モデル情報とを容易に比較することができ、対象システムに存在し得る脆弱性への脅威分析を行うことができる。従って、概念設計段階の対象システムに対して脅威分析を行うことができる。【０００９】
前述の態様において、脆弱性モデル情報は、攻撃成立条件及び攻撃結果の情報を含み、第２取得部は、複数の脆弱性モデル情報を取得し、機能アプリケーションモデル情報が複数の脆弱性モデル情報のうちの少なくとも一つの攻撃条件を満たすときに、該脆弱性モデル情報の攻撃成立条件及び攻撃結果の情報に基づいて機能アプリケーションモデル情報の一部を更新する更新部をさらに備え、実行部は、更新された機能アプリケーションモデル情報と複数の脆弱性モデル情報とに基づいて対象システムの脅威分析を行ってもよい。【００１０】
この態様によれば、機能アプリケーションモデル情報が複数の脆弱性モデル情報のうちの少なくとも一つの攻撃条件を満たすときに、該脆弱性モデル情報の攻撃成立条件及び攻撃結果に基づいて、機能アプリケーションモデル情報の一部が更新される。これにより、当該機能アプリケーションに接続可能な機能アプリケーションに対する脅威分析が可能になり、複数の脆弱性を組み合わせた攻撃に対する対象システムの脅威分析を行うことができる。【００１１】
前述の態様において、対象システムは、第１機能アプリケーションと、該第１機能アプリケーションと通信接続可能な第２機能アプリケーションとを含み、第１取得部は、第１機能アプリケーションの機能アプリケーションモデル情報と第２機能アプリケーションの機能アプリケーションモデル情報とを取得し、実行部は、第１機能アプリケーションの機能アプリケーションモデル情報及び第２機能アプリケーションの機能アプリケーションモデル情報と、脆弱性モデル情報とに基づいて前記対象システムの脅威分析を行ってもよい。【００１２】
この態様によれば、第１機能アプリケーションの機能アプリケーションモデル情報と、当該第１機能アプリケーションと通信接続可能な第２機能アプリケーションの機能アプリケーションモデル情報と、脆弱性モデル情報とに基づいて、対象システムの機能分析が行われる。これにより、通信接続可能な２つの機能アプリケーションの組合せに対する攻撃の可能性を分析することができる。【００１３】
前述の態様において、脅威分析を行った対象システムに対して利用料を算出する利用料算出部をさらに備えてもよい。【００１４】
この態様によれば、脅威分析を行った対象システムに対して利用料が算出される。これにより、サービス利用者に利用料を請求することで、利用料の一部をサービス利用者以外の者、例えば情報登録者に報酬として還元（フィードバック）することができる。【００１５】
前述の態様において、脅威分析の結果、対象システムが脆弱性を含むときに、該脆弱性に対応する脆弱性モデル情報に対する報酬を利用料に基づいて算出する報酬算出部をさらに備えてもよい。【００１６】
この態様によれば、脅威分析の結果、対象システムが脆弱性を含むときに、当該脆弱性に対応する脆弱性モデル情報に対する報酬が、対象システムの利用料に基づいて算出される。これにより、脆弱性モデル情報の情報登録者に登録のインセンティブを与えることができる。従って、登録と利用のサイクルがうまく回転し、脅威分析のサービス事業が継続的事業として成立することできる。【００１７】
本発明の他の態様に係る脅威分析方法は、対象システムに含まれる機能アプリケーションについて、システムの仕様を規定するためのシステム仕様情報を用いてモデル化した機能アプリケーションモデル情報を取得する第１取得ステップと、事例システムに含まれる脆弱性についてシステム仕様情報を用いてモデル化した脆弱性モデル情報を取得する第２取得ステップと、機能アプリケーションモデル情報と脆弱性モデル情報とに基づいて対象システムの脅威分析を行う実行ステップと、を含む。【００１８】
この態様によれば、対象システムに含まれる機能アプリケーションについて、システム仕様情報を用いてモデル化した機能アプリケーションモデル情報が取得され、事例システムに含まれる脆弱性について、システム仕様情報を用いてモデル化した脆弱性モデル情報が取得される。そして、機能アプリケーションモデル情報と脆弱性モデル情報とに基づいて、対象システムの脅威分析が行われる。ここで、システム仕様情報に含まれる抽象的な仕様情報は、概念設計段階のシステムでも得ることができる。よって、同じシステム仕様情報を用いて機能アプリケーションモデル情報及び脆弱性モデル情報を取得することにより、対象システムの機能アプリケーションモデル情報と事例システムの脆弱性モデル情報とを容易に比較することができ、対象システムに存在し得る脆弱性への脅威分析を行うことができる。従って、概念設計段階の対象システムに対して脅威分析を行うことができる。【００１９】
前述の態様において、脆弱性モデル情報は、攻撃成立条件及び攻撃結果の情報を含み、第２取得ステップは、複数の脆弱性モデル情報を取得し、機能アプリケーションモデル情報が複数の脆弱性モデル情報のうちの少なくとも一つの攻撃条件を満たすときに、該脆弱性モデル情報の攻撃成立条件及び攻撃結果の情報に基づいて機能アプリケーションモデル情報の一部を更新する更新ステップをさらに含み、実行ステップは、更新された機能アプリケーションモデル情報と複数の脆弱性モデル情報とに基づいて対象システムの脅威分析を行うことを含んでもよい。【００２０】
この態様によれば、機能アプリケーションモデル情報が複数の脆弱性モデル情報のうちの少なくとも一つの攻撃条件を満たすときに、該脆弱性モデル情報の攻撃成立条件及び攻撃結果に基づいて、機能アプリケーションモデル情報の一部が更新される。これにより、当該機能アプリケーションに接続可能な機能アプリケーションに対する脅威分析が可能になり、複数の脆弱性を組み合わせた攻撃に対する対象システムの脅威分析を行うことができる。【００２１】
前述の態様において、対象システムは、第１機能アプリケーションと、該第１機能アプリケーションと通信接続可能な第２機能アプリケーションとを含み、第１取得ステップは、第１機能アプリケーションの機能アプリケーションモデル情報と第２機能アプリケーションの機能アプリケーションモデル情報とを取得し、実行ステップは、第１機能アプリケーションの機能アプリケーションモデル情報及び第２機能アプリケーションの機能アプリケーションモデル情報と、脆弱性モデル情報とに基づいて前記対象システムの脅威分析を行うことを含んでもよい。【００２２】
この態様によれば、第１機能アプリケーションの機能アプリケーションモデル情報と、当該第１機能アプリケーションと通信接続可能な第２機能アプリケーションの機能アプリケーションモデル情報と、脆弱性モデル情報とに基づいて、対象システムの機能分析が行われる。これにより、通信接続可能な２つの機能アプリケーションの組合せに対する攻撃の可能性を分析することができる。【００２３】
前述の態様において、脅威分析を行った対象システムに対して利用料を算出する利用料算出ステップをさらに含んでもよい。【００２４】
この態様によれば、脅威分析を行った対象システムに対して利用料が算出される。これにより、サービス利用者に利用料を請求することで、利用料の一部をサービス利用者以外の者、例えば情報登録者に報酬として還元（フィードバック）することができる。【００２５】
前述の態様において、脅威分析の結果、対象システムが脆弱性を含むときに、該脆弱性に対応する脆弱性モデル情報に対する報酬を利用料に基づいて算出する報酬算出ステップをさらに含んでもよい。【００２６】
この態様によれば、脅威分析の結果、対象システムが脆弱性を含むときに、当該脆弱性に対応する脆弱性モデル情報に対する報酬が、対象システムの利用料に基づいて算出される。これにより、脆弱性モデル情報の情報登録者に登録のインセンティブを与えることができる。従って、登録と利用のサイクルがうまく回転し、脅威分析のサービス事業が継続的事業として成立することできる。【００２７】
本発明の他の態様に係る脅威分析プログラムは、コンピュータに実行させる脅威分析プログラムであって、対象システムに含まれる機能アプリケーションについて、システムの仕様を規定するためのシステム仕様情報を用いてモデル化した機能アプリケーションモデル情報を取得する第１取得ステップと、事例システムに含まれる脆弱性についてシステム仕様情報を用いてモデル化した脆弱性モデル情報を取得する第２取得ステップと、機能アプリケーションモデル情報と脆弱性モデル情報とに基づいて対象システムの脅威分析を行う実行ステップと、を含む。【００２８】
この態様によれば、対象システムに含まれる機能アプリケーションについて、システム仕様情報を用いてモデル化した機能アプリケーションモデル情報が取得され、事例システムに含まれる脆弱性について、システム仕様情報を用いてモデル化した脆弱性モデル情報が取得される。そして、機能アプリケーションモデル情報と脆弱性モデル情報とに基づいて、対象システムの脅威分析が行われる。ここで、システム仕様情報に含まれる抽象的な仕様情報は、概念設計段階のシステムでも得ることができる。よって、同じシステム仕様情報を用いて機能アプリケーションモデル情報及び脆弱性モデル情報を取得することにより、対象システムの機能アプリケーションモデル情報と事例システムの脆弱性モデル情報とを容易に比較することができ、対象システムに存在し得る脆弱性への脅威分析を行うことができる。従って、概念設計段階の対象システムに対して脅威分析を行うことができる。
【発明の効果】
【００２９】
本発明によれば、概念設計段階の対象システムに対して脅威分析を行うことのできる脅威分析装置、脅威分析方法、及び脅威分析プログラムを提供することができる。
【図面の簡単な説明】
【００３０】
【図１】図１は、本発明の第１実施形態に係る脅威分析装置の物理構成を示すブロック図である。
【図２】図２は、本発明の第１実施形態に係る脅威分析装置の機能構成を示すブロック図である。
【図３】図３は、コネクティッドカーシステムのシステム仕様情報を示す図である。
【図４】図４は、コネクティッドカーシステムの機能ブロック定義情報を示す図である。
【図５】図５は、車両電子制御機能アプリケーションの機能アプリケーションモデル情報を示す図である。
【図６】図６は、車両通信制御機能アプリケーションの機能アプリケーションモデル情報を示す図である。
【図７】図７は、車両情報表示機能アプリケーションの機能アプリケーションモデル情報を示す図である。
【図８】図８は、Web情報表示機能アプリケーションの機能アプリケーションモデル情報を示す図である。
【図９】図９は、Web情報サーバ機能アプリケーションの機能アプリケーションモデル情報を示す図である。
【図１０】図１０は、コネクティッドカーシステムのシステム構成要素関係情報を示す図である。
【図１１】図１１は、［Webサーバの偽装］の脆弱性モデル情報を示す図である。
【図１２】図１２は、［Webブラウザで任意のシェルコード実行］の脆弱性モデル情報１２００を示す図である。
【図１３】図１３は、［Webブラウザアプリ実行プロセスの権限昇格］の脆弱性モデル情報１３００を示す図である。
【図１４】図１４は、脅威分析処理のフローチャートである。
【図１５】図１５は、脆弱アプリケーション検索処理のフローチャートである。
【図１６】図１６は、Web情報表示機能アプリケーションの機能アプリケーションモデル情報に対する脆弱性モデル情報のマッチング結果を示す図である。
【図１７】図１７は、Web情報サーバ機能アプリケーションの機能アプリケーションモデル情報に対する脆弱性モデル情報のマッチング結果を示す図である。
【図１８】図１８は、脆弱性攻撃後の機能アプリケーションの属性値の関係を示す図である。
【図１９】図１９は、攻撃経路ツリーを示す図である。
【図２０】図２０は、本発明の第２実施形態に係る脅威分析装置の物理構成を示すブロック図である。
【図２１】図２１は、本発明の第２実施形態に係る脅威分析装置の機能構成を示すブロック図である。
【図２２】図２２は、対象システム管理テーブルを示す図である。
【図２３】図２３は、脆弱性事例情報管理テーブルを示す図である。
【図２４】図２４は、脆弱性事例情報登録処理のフローチャートである。
【図２５】図２５は、脅威分析サービス管理処理のフローチャートである。
【図２６】図２６は、課金情報管理処理のフローチャートである。
【発明を実施するための形態】
【００３１】
以下に本発明の実施形態を説明する。以下の図面の記載において、同一又は類似の構成要素は同一又は類似の符号で表している。図面は例示であり、各部の寸法や形状は模式的なものであり、本発明の技術的範囲を当該実施形態に限定して解するべきではない。
【００３２】
［第１実施形態］
図１から図１９を用いて本発明の第１実施形態に係る脅威分析装置、脅威分析方法、及び脅威分析プログラムについて説明する。
【００３３】
最初に、図１及び図２を参照しつつ、脅威分析装置１００の構成について説明する。ここで、図１は、本発明の第１実施形態に係る脅威分析装置１００の物理構成を示すブロック図である。図２は、本発明の第１実施形態に係る脅威分析装置１００の機能構成を示すブロック図である。
【００３４】
図１に示すように、脅威分析装置１００は、バス１０１と、バス１０１に接続された中央情報処理装置（以下、「CPU」という）１０２、入出力プロセッサ（以下、「IOP」という）１０３、及び主記憶装置１０７と、を備える。脅威分析装置１００は、例えば、ユーザＵが対話形式で使用する通常のコンピュータである。
【００３５】
IOP１０３は、ユーザＵと脅威分析装置１００がやり取りするデータを入出力する表示装置１０４及び入力装置１０５に接続されている。また、IOP１０３は、大容量の二次記憶装置１０６に接続されている。さらに、IOP１０３は、必要に応じて主記憶装置１０７との間でデータやプログラムのロードや退避を実行する。
【００３６】
主記憶装置１０７には、脅威分析処理Ｓ１４００及び脆弱アプリケーション検索処理Ｓ１５００と、脅威分析の対象となるシステムの設計情報（以下、「対象システム設計情報１２０」という）と、脆弱性事例情報１３０と、システム仕様情報１４０と、脅威分析結果情報１９００及び攻撃経路ツリー１９５０と、が格納され、記憶されている。
【００３７】
対象システム設計情報１２０は、機能ブロック定義情報４００と、機能アプリケーションモデル情報５００，６００，７００，８００，９００（以下、「５００〜９００」と記す）と、システム構成要素関係情報１０００と、を含んで構成される。
【００３８】
機能ブロック定義情報４００は、対象システムの構成及び機能の割当てを示すためのものである。具体的には、機能ブロック定義情報４００は、対象システムを構成するハードウェア及びソフトウェアについて、ハードウェアのハードブロックと、当該システムのソフトウェア、例えばオペレーティングシステム（以下、「OS」という）、Webブラウザ、アプリケーション等、との相互関係を規定した情報である。機能ブロック定義情報４００は、例えば、OMG（Object Management Group）が策定したシステム記述言語Systems Modeling Language（SysML）のブロック定義図に相当する情報である。
【００３９】
機能アプリケーションモデル情報５００〜９００は、対象システムに含まれる機能アプリケーションについて、システム仕様情報１４０を用いてモデル化された情報である。機能アプリケーションモデル情報５００〜９００は、機能アプリケーションが備える様々な属性情報、例えば実行環境や入出力属性等を含む。
【００４０】
システム構成要素関係情報１０００は、機能ブロック定義情報４００に記載されたハードブロックと機能モジュールとの包含関係や接続関係を含む情報である。システム構成要素関係情報１０００は、前述した包含関係や接続関係を、例えば表形式で表している。
【００４１】
脆弱性事例情報１３０は、脆弱性モデル情報１１００，１２００，１３００（以下、「１１００〜１３００」と記す）を含んで構成される。
【００４２】
脆弱性モデル情報１１００〜１３００は、既存のシステムであって、脆弱性への攻撃等を受けた事例のあるシステム（以下、「事例システム」という）に含まれる脆弱性について、システム仕様情報１４０を用いてモデル化した情報である。脆弱性モデル情報１１００〜１３００は、各脆弱性が備える様々な属性情報、例えば攻撃成立条件や攻撃結果等を含む。
【００４３】
システム仕様情報１４０は、機能アプリケーションモデル情報５００〜９００及び脆弱性モデル情報１１００〜１３００を作成するためのものである。システム仕様情報１４０は、システムの仕様を規定するための抽象的な情報である。
【００４４】
脅威分析処理Ｓ１４００及び脆弱アプリケーション検索処理Ｓ１５００は、対象となるシステム（以下、「対象システム」という）の脅威分析を行うための処理である。脅威分析処理Ｓ１４００及び脆弱アプリケーション検索処理Ｓ１５００は、対象システム設計情報１２０及び脆弱性事例情報１３０を使用して、処理結果として脅威分析結果情報１９００及び攻撃経路ツリーを出力する。
【００４５】
図２に示すように、脅威分析装置１００は、その機能構成として、第１取得部１５０と、第２取得部１６０と、更新部１７０と、実行部１８０と、を備える。
【００４６】
第１取得部１５０は、対象システムに含まれる機能アプリケーションについて、機能アプリケーションモデル情報５００〜９００を取得するように構成されている。第１取得部１５０は、対象システムが複数の機能アプリケーションを含む場合、機能アプリケーション毎に対応する機能アプリケーションモデル情報５００〜９００を取得する。また、第１取得部１５０は、機能アプリケーションモデル情報５００〜９００を含む対象システム設計情報１２０の全てを、取得するように構成されていてもよい。
【００４７】
第１取得部１５０は、例えば、図１に示すバス１０１、CPU１０２、IOP１０３、入力装置１０５、二次記憶装置１０６、及び主記憶装置１０７で構成することが可能である。
【００４８】
第２取得部１６０は、事例システムに含まれる脆弱性について脆弱性モデル情報１１００〜１３００を取得するように構成されている。第２取得部１６０は、複数の事例システムがある、事例システムが複数の脆弱性を含む、及びその両方の場合、脆弱性毎に対応する脆弱性モデル情報１１００〜１３００を取得する。また、第２取得部１６０は、脆弱性モデル情報１１００〜１３００を含む脆弱性事例情報１３０の全てを、取得するように構成されていてもよい。
【００４９】
第２取得部１６０は、例えば、図１に示すバス１０１、CPU１０２、IOP１０３、入力装置１０５、二次記憶装置１０６、及び主記憶装置１０７で構成することが可能である。
【００５０】
更新部１７０は、機能アプリケーションモデル情報５００〜９００を更新するためのものである。具体的には、更新部１７０は、機能アプリケーションモデル情報５００〜９００の一つが、脆弱性モデル情報１１００〜１３００の一つに含まれる攻撃成立条件を満たすときに、脆弱性モデル情報の攻撃成立条件及び攻撃結果に基づいて、攻撃成立条件を満たす当該機能アプリケーションモデル情報の一部を更新する。
【００５１】
更新部１７０は、例えば、図１に示すバス１０１、CPU１０２、及び主記憶装置１０７で構成することが可能である。
【００５２】
実行部１８０は、対象システムの脅威分析を行うためのものである。具体的には、実行部１８０は、機能アプリケーションモデル情報５００〜９００と脆弱性モデル情報１１００〜１３００とに基づいて、対象システムの脅威分析を行うように構成されている。また、実行部１８０は、脅威分析装置１００で実行される処理の全般を行うように構成されている。
【００５３】
実行部１８０は、更新部１７０が攻撃成立条件を満たす当該機能アプリケーションモデル情報の一部を更新したときに、更新された機能アプリケーションモデル情報と脆弱性モデル情報１１００〜１３００とに基づいて、対象システムの脅威分析を行うように構成されている。
【００５４】
さらに、実行部１８０は、複数の機能アプリケーションモデル情報５００〜９００が、一の機能アプリケーションモデル情報と当該一の機能アプリケーションモデル情報と通信接続可能な他の機能アプリケーションモデル情報を含むときに、一の機能アプリケーションモデル情報及び他の機能アプリケーションモデル情報と脆弱性モデル情報１１００〜１３００とに基づいて、対象システムの脅威分析を行うように構成されている。なお、一の機能アプリケーションモデル情報は本発明の「第１機能アプリケーションモデル情報」の一例に相当し、他の機能アプリケーションモデル情報は本発明の「第２機能アプリケーションモデル情報」の一例に相当する。
【００５５】
実行部１８０は、例えば、図１に示すバス１０１、CPU１０２、表示装置１０４、及び主記憶装置１０７で構成することが可能である。
【００５６】
以下の説明において、対象システムとして、米国テスラ・モーターズ社製の電気自動車に代表される、ネット接続が可能でかつ電子制御が多用される、いわゆるコネクティッドカーのシステム（以下、「コネクティッドカーシステム」という）を例に挙げて説明する。
【００５７】
次に、図３を参照しつつ、脅威分析装置１００で使用されるシステム仕様情報１４０について説明する。図３は、コネクティッドカーシステムのシステム仕様情報１４０を示す図である。
【００５８】
図３に示すように、システム仕様情報１４０は、項番“１”の「機能アプリケーション名称」、項番“２”の「機能アプリケーション種別」、項番“３”の「実装ユニット名」、項番“４”の「実行条件」、項番“５”の「入力数ｎ」（ｎは正の整数）、項番“６”の「第１入力〜第ｎ入力」、項番“７”の「出力数ｍ」（ｍは正の整数）、項番“８”の「第１出力〜第ｍ出力」、項番“９”の「動作順序」、及び項番“１０”の「機能」、のそれぞれの主属性に大別される。項番“４”の「実行条件」、項番“６”の「第１入力〜第ｎ入力」、及び項番“８”の「第１出力〜第ｍ出力」は、それぞれ複数の副属性を含んでいる。
【００５９】
各々の属性の名称と属性値の内容は、図４に示す通りである。ここでは、後述する脅威分析処理Ｓ１４００及び脆弱アプリケーション検索処理Ｓ１５００で重要な役割を果たす属性のみを説明し、その他の属性はその説明を省略する。
【００６０】
項番“４”の「実行条件」は、その機能アプリケーションを実行するために必要なソフトウェア環境を示す。同じ機能を備える機能アプリケーションであっても、実行に必要なOSが異なる場合、影響を受ける脆弱性の有無や脆弱性の種別が異なることがある。従って、ソフトウェア環境の情報は、機能アプリケーションの脆弱性を判断する上で、重要な情報である。
【００６１】
項番“６”の「第１入力〜第ｎ入力」及び項番“８”の「第１出力〜第ｍ出力」は、機能アプリケーションが外部と情報を交換するチャネルであり、攻撃を受けたり、逆に攻撃したりする経路となり得ることから、脆弱性の判断において重要な情報である。項番“６”の「第１入力〜第ｎ入力」及び項番“８”の「第１出力〜第ｍ出力」には、それぞれ、通信経路、通信プロトコル、アクセス制御の有無を表す権限チェック、通信内容等が属性値として記述される。
【００６２】
前述したように、システム仕様情報１４０は、システムの仕様を規定するための抽象的な情報である。このシステム仕様情報１４０を用いて、対象システムに含まれる機能アプリケーションは、モデル化されて機能アプリケーションモデル情報５００〜９００が作成される。
【００６３】
ここで、対象システムが概念設計段階である場合、対象システムの仕様が抽象的にしか規定できていないことが想定される。一方、システム仕様情報１４０に含まれる抽象的な仕様情報は、概念設計段階のシステムでも得ることができる。よって、対象システムが概念設計段階であっても、当該対象システムに含まれる機能アプリケーションについて、システム仕様情報１４０を用いてモデル化した機能アプリケーションモデル情報５００〜９００を取得することができる。
【００６４】
同様に、事例システムに含まれる脆弱性について、システム仕様情報１４０を用いて、モデル化した脆弱性モデル情報１１００〜１３００が取得される。このように、同じシステム仕様情報１４０を用いて機能アプリケーションモデル情報５００〜９００及び脆弱性モデル情報１１００〜１３００を取得することにより、対象システムの機能アプリケーションモデル情報５００〜９００と事例システムの脆弱性モデル情報１１００〜１３００とを容易に比較することができ、対象システムに存在し得る脆弱性への脅威分析を行うことができる。従って、概念設計段階の対象システムに対して脅威分析を行うことができる。
【００６５】
次に、図４から図１０を参照しつつ、脅威分析装置１００で使用される対象システム設計情報１２０について説明する。図４は、コネクティッドカーシステムの機能ブロック定義情報４００を示す図である。図５は、車両電子制御機能アプリケーション４１７の機能アプリケーションモデル情報５００を示す図である。図６は、車両通信制御機能アプリケーション４２８の機能アプリケーションモデル情報６００を示す図である。図７は、車両情報表示機能アプリケーション４３９ａの機能アプリケーションモデル情報７００を示す図である。図８は、Web情報表示機能アプリケーション４３９ｂの機能アプリケーションモデル情報８００を示す図である。図９は、Web情報サーバ機能アプリケーション４４９の機能アプリケーションモデル情報９００を示す図である。図１０は、コネクティッドカーシステムのシステム構成要素関係情報１０００を示す図である。
【００６６】
図４に示すように、コネクティッドカーシステムの機能ブロック定義情報４００は、ハードウェアブロックである、車両電子制御ユニット（ECU）４１０、車両通信ゲートウェイ（GW）４２０、コンソールディスプレイ（CD）４３０、及びWebサーバ（WS）４４０と、機能アプリケーションである、車両電子制御機能アプリケーション４１７、車両通信制御機能アプリケーション４２８、車両情報表示機能アプリケーション４３９ａ、Web情報表示機能アプリケーション４３９ｂ、及びWeb情報サーバ機能アプリケーション４４９と、を含む。ここで、機能アプリケーションとは、ハードウェアブロックの主記憶に格納され、CPUで実行されて、ハードウェアブロックが必要とする機能的役割を実現するアプリケーションプログラムである。
【００６７】
また、機能ブロック定義情報４００は、OS（RTOS）４２７と、OS（Linux（登録商標））４３７，３４７と、Webブラウザ（Webkit）４３８と、Webサーバ（httpd）４４８と、をさらに含む。
【００６８】
ハードウェアブロックのうち、車両電子制御ユニット（ECU）４１０、車両通信ゲートウェイ（GW）４２０、及びコンソールディスプレイ（CD）４３０は、車両内部に搭載される。一方、インターネット上のWebサーバ（WS）４４０は、車両外部に設置される。Webサーバ（WS）４４０は、インターネットを介して車両のコンソールディスプレイ（CD）４３０に接続されている。
【００６９】
各ハードウェアブロックは、それぞれが独立したコンピュータシステムである。例えば、車両電子制御ユニット（ECU）４１０は、バス４１１に接続されたCPU４１２、IOP４１３、及び主記憶装置４１４を含む。IOP４１３は、ハーネス（通信アダプタ）４１５及びCANBus通信アダプタ４１６に接続され、ブロック内外のデータ通信を制御する。車両電子制御ユニット（ECU）４１０は、通信経路であるCANBus４５０を介して車両通信ゲートウェイ（GW）４２０に接続されている。他のハードウェアブロックである車両通信ゲートウェイ（GW）４２０、コンソールディスプレイ（CD）４３０、及びWebサーバ（WS）４４０は、車両電子制御ユニット（ECU）４１０と同様の内部構成であるため、その説明を省略する。車両通信ゲートウェイ（GW）４２０は、通信経路であるEthernet（登録商標）４５１を介してコンソールディスプレイ（CD）４３０に接続されている。コンソールディスプレイ（CD）４３０は、通信経路であるWifi４５２を介してWebサーバ（WS）４４０に接続される。
【００７０】
コネクティッドカーシステムのハードウェアブロックの機能的役割は、（第１機能）車両電子制御機能及び（第２機能）Web情報表示機能の２つに大別される。２つの機能は、ともに車両運転者とのインタフェースを司るコンソールディスプレイ（CD）４３０の車両情報表示機能アプリケーション４３９ａ、Web情報表示機能アプリケーション４３９ｂを起点として、実行される。
【００７１】
（第１機能）車両電子制御機能
コンソールディスプレイ（CD）４３０は、車両情報表示機能アプリケーション４３９ａを実行する。車両情報表示機能アプリケーション４３９ａは、入力された車両運転者の指定に従い、該当する車両制御コマンド、例えば、エンジンの動作状態のモニタリングや、ドアやリアゲートの開放のためのコマンド等を作成し、作成された車両制御コマンドをEthernet４５１を介して車両通信ゲートウェイ（GW）４２０に送信する。車両通信ゲートウェイ（GW）４２０の車両通信制御機能アプリケーション４２８は、受信した車両制御コマンドをECUコマンドにプロトコル変換し、変換されたECUコマンドをCANBus４５０を介して車両電子制御ユニット（ECU）４１０に送信する。車両電子制御ユニット（ECU）４１０の車両電子制御機能アプリケーション４１７は、受信したECUコマンドに従ってユニット内部コマンドを生成し、車両運転者の指定した車両制御を実行する。
【００７２】
（第２機能）Web情報表示機能
コンソールディスプレイ（CD）４３０は、Web情報表示機能アプリケーション４３９ｂを実行する。Web情報表示機能アプリケーション４３９ｂは、入力された車両運転者の指定に従い、該当するWebページ要求コマンド、例えばhttpプロトコルのgetコマンド等を作成し、作成されたWebページ要求コマンドをWifi４５２を介してWebサーバ（WS）４４０に送信する。Webサーバ（WS）４４０のWeb情報サーバ機能アプリケーション４４９は、受信したWebページ要求コマンドに従って該当するWebページを検索し、検索結果であるページ内容、例えば、HTMLコンテンツやJavascript（登録商標）コード等を、Webページ応答コマンドとしてコンソールディスプレイ（CD）４３０に返信する。
【００７３】
図５に示すように、車両電子制御機能アプリケーション４１７の機能アプリケーションモデル情報５００は、項番“１”の属性値に車両電子制御機能アプリケーション４１７の名称である「車両電子制御」が記述されている。項番“２”の属性値には、車両電子制御機能アプリケーション４１７のソフトウェア種別である「アプリケーション」が記述されている。項番“３”の属性値には、車両電子制御機能アプリケーション４１７の実装ユニットである「車両電子制御ユニット（ECU）」が記述されている。車両電子制御機能アプリケーション４１７は、実行時に、OS、Webブラウザ、及びWebサーバを必要としない。そのため、項番“４−１”、“４−２”、“４−３”の属性値には、それぞれ「−（なし）」が記述されている。一方、項番“４−４”の属性値には、アプリケーション実行時のプロセスモードである「ユーザ」が記述されている。
【００７４】
車両電子制御機能アプリケーション４１７は１系統の入力を備える。第１入力の送信元は、車両通信ゲートウェイ（GW）４２０で実行される車両通信制御機能アプリケーション４２８である。第１入力のデータは、CANBus４５０を介して入力され、通信プロトコルはCANであり、権限チェックは行わない。また、通信内容は、アプリコマンドであり、ECU制御コマンドを含んでいる。そのため、項番“５”の属性値には「１」が、項番“６−１”の属性値には「車両通信制御」が、項番“６−２”の属性値には「アプリケーション」が、項番“６−３”の属性値には「車両通信ゲートウェイ（GW）」が、項番“６−４”の属性値には「CANBus」が、項番“６−５”の属性値には「CAN」が、項番“６−６”の属性値には「−（なし）」が、項番“６−７”の属性値には「アプリコマンド（ECU制御コマンド）」が、それぞれ記述されている。
【００７５】
車両電子制御機能アプリケーション４１７は１系統の出力を備える。第１出力の送信先は、同じ車両電子制御ユニット（ECU）４１０で実行される、ユニット内部モジュールの車両機器ハンドラ（図示省略）である。第１出力のデータは、ハーネス（図示省略）を介して出力され、通信プロトコルはユニット内部固有のものであり、権限チェックは行わない。また、通信内容は、ユニット内部コマンドであり、ECU制御コマンドを含んでいる。そのため、項番“７”の属性値には「１」が、項番“８−１”の属性値には「車両機器ハンドラ」が、項番“８−２”の属性値には「ユニット内部モジュール」が、項番“８−３”の属性値には「車両電子制御ユニット（ECU）」が、項番“８−４”の属性値には「ハーネス」が、項番“８−５”の属性値には「ユニット内部固有」が、項番“８−６”の属性値には「−（なし）」が、項番“８−７”の属性値には「ユニット内部固有コマンド（ECU制御コマンド）」が、それぞれ記述されている。
【００７６】
項番“９”の属性値に、車両電子制御機能アプリケーション４１７の動作順序である「第１入力を入力し、次に第１出力を出力する。」が記述されている。項番“１０”の属性値に、車両電子制御機能アプリケーション４１７の機能内容である「第１入力にECU制御コマンドが入力され、第１出力からユニットコマンドを出力して、車両機器を制御する。」が記述されている。
【００７７】
図６に示すように、車両通信制御機能アプリケーション４２８の機能アプリケーションモデル情報６００は、項番“１”の属性値に車両通信制御機能アプリケーション４２８の名称である「車両通信制御」が記述されている。項番“２”の属性値には、車両通信制御機能アプリケーション４２８のソフトウェア種別である「アプリケーション」が記述されている。項番“３”の属性値には、車両通信制御機能アプリケーション４２８の実装ユニットである「車両通信ゲートウェイ（GW）」が記述されている。車両通信制御機能アプリケーション４２８は、実行時に、OSとしてRTOSが必要であるが、Webブラウザ及びWebサーバを必要としない。そのため、項番“４−１”の属性値に「RTOS」が、項番“４−２”、“４−３”の属性値に「−（なし）」が、それぞれ記述されている。一方、項番“４−４”の属性値には、アプリケーション実行時のプロセスモードである「ユーザ」が記述されている。
【００７８】
車両通信制御機能アプリケーション４２８は１系統の入力を備える。第１入力の送信元は、コンソールディスプレイ（CD）４３０で実行される、Webブラウザアプリケーションの車両情報表示機能アプリケーション４３９ａである。第１入力のデータは、Ethernet４５１を介して入力され、通信プロトコルはUDP/IP(Port3500)であり、権限チェックは行わない。また、通信内容は、アプリコマンドであり、ECU制御コマンド（要求）を含んでいる。そのため、項番“５”の属性値には「１」が、項番“６−１”の属性値には「車両情報表示」が、項番“６−２”の属性値には「Webブラウザアプリケーション」が、項番“６−３”の属性値には「コンソールディスプレイ（CD）」が、項番“６−４”の属性値には「Ethernet」が、項番“６−５”の属性値には「UDP/IP(Port3500)」が、項番“６−６”の属性値には「−（なし）」が、項番“６−７”の属性値には「アプリコマンド（ECU制御コマンド（要求））」が、それぞれ記述されている。
【００７９】
車両通信制御機能アプリケーション４２８は１系統の出力を備える。第１出力の送信先は、車両電子制御ユニット（ECU）４１０で実行される、車両電子制御機能アプリケーション４１７である。第１出力のデータは、CANBus４５０を介して出力され、通信プロトコルはCANであり、権限チェックは行わない。また、通信内容は、アプリコマンドであり、ECU制御コマンド（要求）を含んでいる。そのため、項番“７”の属性値には「１」が、項番“８−１”の属性値には「車両電子制御」が、項番“８−２”の属性値には「アプリケーション」が、項番“８−３”の属性値には「車両電子制御ユニット（ECU）」が、項番“８−４”の属性値には「CANBus」が、項番“８−５”の属性値には「CAN」が、項番“８−６”の属性値には「−（なし）」が、項番“８−７”の属性値には「アプリコマンド（ECU制御コマンド（要求））」が、それぞれ記述されている。
【００８０】
項番“９”の属性値に、車両通信制御機能アプリケーション４２８の動作順序である「第１入力が入力され、次に第１出力を出力する。」が記述されている。項番“１０”の属性値に、車両通信制御アプリケーション４２８の機能内容である「第１入力にECU制御コマンドが入力され、プロトコル変換して第１出力から出力する。」が記述されている。
【００８１】
図７に示すように、車両情報表示機能アプリケーション４３９ａの機能アプリケーションモデル情報７００は、項番“１”の属性値に車両情報表示機能アプリケーション４３９ａの名称である「車両情報表示」が記述されている。項番“２”の属性値には、車両情報表示機能アプリケーション４３９ａのソフトウェア種別である「Webブラウザアプリケーション」が記述されている。項番“３”の属性値には、車両情報表示機能アプリケーション４３９ａの実装ユニットである「コンソールディスプレイ（CD）」が記述されている。車両情報表示機能アプリケーション４３９ａは、実行時に、OSとしてLinuxと、WebブラウザとしてWebkitとが必要であるが、Webサーバを必要としない。そのため、項番“４−１”の属性値に「Linux」が、項番“４−２” の属性値に「Webkit」が、“４−３”の属性値に「−（なし）」が、それぞれ記述されている。一方、項番“４−４”の属性値には、アプリケーション実行時のプロセスモードである「特権」が記述されている。
【００８２】
車両情報表示機能アプリケーション４３９ａは２系統の入力を備える。第１入力の送信元は、同じコンソールディスプレイ（CD）４３０で実行される、ユニット内部モジュールのユーザI/Fハンドラ（図示省略）である。第１入力のデータは、ユニット内部バス（図示省略）を介して入力され、通信プロトコルはユニット内部固有のものであり、権限チェックは行わない。また、通信内容は、ユニット内部コマンドであり、ユーザ入力コマンドを含んでいる。そのため、項番“５”の属性値には「２」が、項番“６−１１”の属性値には「ユーザI/Fハンドラ」が、項番“６−１２”の属性値には「ユニット内部モジュール」が、項番“６−１３”の属性値には「コンソールディスプレイ（CD）」が、項番“６−１４”の属性値には「ユニット内部バス」が、項番“６−１５”の属性値には「ユニット内部固有」が、項番“６−１６”の属性値には「−（なし）」が、項番“６−１７”の属性値には「ユニット内部コマンド（ユーザ入力コマンド）」が、それぞれ記述されている。
【００８３】
第２入力には、後述する第１出力からECU制御コマンド（要求）が出力された結果、車両通信ゲートウェイ（GW）４２０から送信されるECU制御コマンド（応答）が入力される。ECU制御コマンド（応答）の詳細については、その説明を省略する。
【００８４】
車両情報表示機能アプリケーション４３９ａは１系統の出力を備える。第１出力の送信先は、車両通信ゲートウェイ（GW）４２０で実行される、車両通信制御機能アプリケーション４２８である。第１出力のデータは、Ethernet４５１を介して出力され、通信プロトコルはUDP/IP(Port3500)であり、権限チェックは行わない。また、通信内容は、アプリコマンドであり、ECU制御コマンド（要求）を含んでいる。そのため、項番“７”の属性値には「１」が、項番“８−１”の属性値には「車両通信制御」が、項番“８−２”の属性値には「アプリケーション」が、項番“８−３”の属性値には「車両通信ゲートウェイ（GW）」が、項番“８−４”の属性値には「Ethernet」が、項番“８−５”の属性値には「UDP/IP(Port3500)」が、項番“８−６”の属性値には「−（なし）」が、項番“８−７”の属性値には「アプリコマンド（ECU制御コマンド（要求））」が、それぞれ記述されている。
【００８５】
項番“９”の属性値に、車両情報表示機能アプリケーション４３９ａの動作順序である「第１入力が入力され、次に第１出力を出力し、次に第２入力が入力される。」が記述されている。項番“１０”の属性値に、車両情報表示機能アプリケーション４３９ａの機能内容である「第１入力に車両機器の動作指示が入力され、ECU制御コマンド（要求）を作成して第１出力から出力し、第２入力にECU制御コマンド（応答）が入力され、車両情報を表示する。」が記述されている。
【００８６】
図８に示すように、Web情報表示機能アプリケーション４３９ｂの機能アプリケーションモデル情報８００は、項番“１”の属性値にWeb情報表示機能アプリケーション４３９ｂの名称である「Web情報表示」が記述されている。項番“２”の属性値には、Web情報表示機能アプリケーション４３９ｂのソフトウェア種別である「Webブラウザアプリケーション」が記述されている。項番“３”の属性値には、Web情報表示機能アプリケーション４３９ｂの実装ユニットである「コンソールディスプレイ（CD）」が記述されている。車両情報表示機能アプリケーション４３９ａは、実行時に、OSとしてLinuxと、WebブラウザとしてWebkitとが必要であるが、Webサーバを必要としない。そのため、項番“４−１”の属性値に「Linux」が、項番“４−２” の属性値に「Webkit」が、“４−３”の属性値に「−（なし）」が、それぞれ記述されている。一方、項番“４−４”の属性値には、アプリケーション実行時のプロセスモードである「ユーザ」が記述されている。
【００８７】
Web情報表示機能アプリケーション４３９ｂは２系統の入力を備える。第１入力の送信元は、同じコンソールディスプレイ（CD）４３０で実行される、ユニット内部モジュールのユーザI/Fハンドラ（図示省略）である。第１入力のデータは、ユニット内部バス（図示省略）を介して入力され、通信プロトコルはユニット内部固有のものであり、権限チェックは行わない。また、通信内容は、ユニット内部コマンドであり、ユーザ入力コマンドを含んでいる。そのため、項番“５”の属性値には「２」が、項番“６−１１”の属性値には「ユーザI/Fハンドラ」が、項番“６−１２”の属性値には「ユニット内部モジュール」が、項番“６−１３”の属性値には「コンソールディスプレイ（CD）」が、項番“６−１４”の属性値には「ユニット内部バス」が、項番“６−１５”の属性値には「ユニット内部固有」が、項番“６−１６”の属性値には「−（なし）」が、項番“６−１７”の属性値には「ユニット内部コマンド（ユーザ入力コマンド）」が、それぞれ記述されている。
【００８８】
第２入力には、後述する第１出力からhttp要求コマンドが出力された結果、Webサーバ（WS）４４０から送信されるhttp応答コマンド（応答）が入力される。第２入力の送信元は、Webサーバ（WS）４４０で実行される、WebサーバアプリケーションのWeb情報サーバ機能アプリケーション４４９である。第２入力のデータは、Wifi４５２を介して入力され、通信プロトコルはTCP/IPであり、権限チェックはページアドレス、パスワードに基づくTLS通信で行う。また、通信内容は、http応答コマンドであり、ページコンテンツであるHTMLデータと、Javascriptコードを含んでいる。そのため、項番“６−２１”の属性値には「Web情報サーバ」が、項番“６−２２”の属性値には「Webサーバアプリケーション」が、項番“６−２３”の属性値には「Webサーバ（WS）」が、項番“６−２４”の属性値には「Wifi」が、項番“６−２５”の属性値には「TCP/IP」が、項番“６−２６”の属性値には「ページアドレス、パスワードに基づくTLS通信」が、項番“６−２７”の属性値には「http応答コマンド（HTML、Javascript）」が、それぞれ記述されている。
【００８９】
Web情報表示機能アプリケーション４３９ｂは１系統の出力を備える。第１出力の送信先は、Webサーバ（WS）４４０で実行される、WebサーバアプリケーションのWeb情報サーバ機能アプリケーション４４９である。第１出力のデータは、Wifi４５２を介して入力され、通信プロトコルはTCP/IPであり、権限チェックはページアドレス、パスワードに基づくTLS通信で行う。また、通信内容は、http要求コマンドであり、ページアドレスとパスワードを含んでいる。そのため、項番“７”の属性値には「１」が、項番“８−１”の属性値には「Web情報サーバ」が、項番“８−２”の属性値には「Webサーバアプリケーション」が、項番“８−３”の属性値には「Webサーバ（WS）」が、項番“８−４”の属性値には「Wifi」が、項番“８−５”の属性値には「TCP/IP」が、項番“８−６”の属性値には「ページアドレス、パスワードに基づくTLS通信」が、項番“８−７”の属性値には「http要求コマンド（ページアドレス、パスワード）」が、それぞれ記述されている。
【００９０】
項番“９”の属性値に、Web情報表示機能アプリケーション４３９ｂの動作順序である「第１入力が入力され、次に第１出力を出力し、次に第２入力が入力される。」が記述されている。項番“１０”の属性値に、Web情報表示機能アプリケーション４３９ｂの機能内容である「第１入力にWebページ取得要求が入力され、http要求コマンドを作成して第１出力から出力し、第２入力にhttp応答コマンド（応答）が入力され、Web情報を表示する。」が記述されている。
【００９１】
図９に示すように、Web情報サーバ機能アプリケーション４４９の機能アプリケーションモデル情報９００は、項番“１”の属性値にWeb情報サーバ機能アプリケーション４４９の名称である「Web情報サーバ」が記述されている。項番“２”の属性値には、Web情報サーバ機能アプリケーション４４９のソフトウェア種別である「Webサーバアプリケーション」が記述されている。項番“３”の属性値には、Web情報サーバ機能アプリケーション４４９の実装ユニットである「Webサーバ（WS）」が記述されている。Web情報サーバ機能アプリケーション４４９は、実行時に、OSとしてLinuxと、Webサーバとしてhttpdとが必要であるが、Webブラウザを必要としない。そのため、項番“４−１”の属性値に「Linux」が、項番“４−２” の属性値に「−（なし）」が、“４−３”の属性値に「httpd」が、それぞれ記述されている。一方、項番“４−４”の属性値には、アプリケーション実行時のプロセスモードである「ユーザ」が記述されている。
【００９２】
Web情報サーバ機能アプリケーション４４９は１系統の入力を備える。第１入力の送信元は、コンソールディスプレイ（CD）４３０で実行される、Webブラウザ機能アプリケーションのWeb情報表示機能アプリケーション４２９ｂである。第１入力のデータは、Wifi４５２を介して入力され、通信プロトコルはTCP/IPであり、権限チェックはページアドレス、パスワードに基づくTLS通信で行う。また、通信内容は、http要求コマンドであり、ページアドレスとパスワードを含んでいる。そのため、項番“５”の属性値には「１」が、項番“６−１”の属性値には「Web情報表示」が、項番“６−２”の属性値には「Webサーバアプリケーション」が、項番“６−３”の属性値には「コンソールディスプレイ（CD）」が、項番“６−４”の属性値には「Wifi」が、項番“６−５”の属性値には「TCP/IP」が、項番“６−６”の属性値には「ページアドレス、パスワードに基づくTLS通信」が、項番“６−７”の属性値には「http要求コマンド（ページアドレス、パスワード）」が、それぞれ記述されている。
【００９３】
Web情報サーバ機能アプリケーション４４９は１系統の出力を備える。第１出力の送信先は、コンソールディスプレイ（CD）４３０で実行される、WebブラウザアプリケーションのWeb情報表示機能アプリケーション４３９ｂである。第１出力のデータは、Wifi４５２を介して入力され、通信プロトコルはTCP/IPであり、権限チェックはページアドレス、パスワードに基づくTLS通信で行う。また、通信内容は、http応答コマンドであり、ページコンテンツであるHTMLデータと、Javascriptコードを含んでいる。そのため、項番“７”の属性値には「１」が、項番“８−１”の属性値には「Web情報表示」が、項番“８−２”の属性値には「Webブラウザアプリケーション」が、項番“８−３”の属性値には「コンソールディスプレイ（CD）」が、項番“８−４”の属性値には「Wifi」が、項番“８−５”の属性値には「TCP/IP」が、項番“８−６”の属性値には「ページアドレス、パスワードに基づくTLS通信」が、項番“８−７”の属性値には「http応答コマンド（HTML、Javascript）」が、それぞれ記述されている。
【００９４】
項番“９”の属性値に、Web情報サーバ機能アプリケーション４４９の動作順序である「第１入力が入力され、次に第１出力を出力する。」が記述されている。項番“１０”の属性値に、Web情報サーバ機能アプリケーション４４９の機能内容である「第１入力にWebページ取得要求が入力され、httpページコンテンツを検索して、http応答コマンド（応答）を第１出力から出力する。」が記述されている。
【００９５】
図１０に示すように、コネクティッドカーシステムのシステム構成要素関係情報１０００は、コネクティッドカーシステムの任意のアプリケーションについて、実行環境と機能連携に関する関係情報をまとめた情報である。本情報を参照することで、以下の種類Ａから種類Ｄの情報を得ることができる。
【００９６】
種類Ａ：アプリケーションを実行するために必要なソフトウェア環境（OS、Webサーバ、Webブラウザ）
例えば、項番“４”は、第１構成要素の「車両通信制御」という名の「アプリケーション」が、第２構成要素の「RTOS」という名の「OS」を、実行環境として必要とすることを示している。
【００９７】
種類Ｂ：アプリケーションの存在するハードウェア環境（ハードウェアブロック）
例えば、項番“１”は、第１構成要素の「車両電子制御」という名の「アプリケーション」が、第２構成要素の「車両電子制御ユニット（ECU）」という名のハードウェアブロックに実装され、実行されることを示している。
【００９８】
種類Ｃ：機能モジュールの呼び出し関係
例えば、項番“２”は、第１構成要素の「車両電子制御」という名の「アプリケーション」が、第２構成要素の「車両通信制御」という名の「アプリケーション」と、機能的な呼び出し関係があることを示している。
【００９９】
種類Ｄ：ハードウェアブロックの接続関係
例えば、項番“３”は、第１構成要素の「車両電子制御」という名の「ハードウェアブロック」が、第２構成要素の「車両通信ゲートウェイ（GW）」という名の「ハードウェアブロック」と、ネットワーク接続関係があることを示している。
【０１００】
システム構成要素関係情報１０００は、機能ブロック定義情報４００と、機能アプリケーションモデル情報５００〜９００に基づいて作成される情報である。そのため、システム構成要素関係情報１０００は、機能ブロック定義情報４００及び機能アプリケーションモデル情報５００〜９００が示す以上の新しい情報を提供するものではない。しかし、コネクティッドカーシステムをインプリメント（実装）する際の一事例として提示している。
【０１０１】
本実施形態では、図４において、図形で表した機能ブロック定義情報４００の例を示したが、これに限定されるものではない。機能ブロック定義情報は、コンピュータ内の実際の情報格納形式は、図形である必要はなく、例えば、図１０に示すような表形式や、リンク接続されたレコードデータや、XML(eXtensive Markup Language)のようなテキストデータで表現されていてもよい。
【０１０２】
また、説明の都合上、図形を用いているものは、実際のシステム実装にあたって、任意のデータ形式で実装することが可能である。例えば、接続関係や包含関係は、図１０に示すような表形式のデータとして、関係データベースに格納することも可能である。
【０１０３】
次に、図１１から図１３を参照しつつ、脅威分析装置１００で使用される脆弱性事例情報１３０について説明する。図１１は、［Webサーバの偽装］の脆弱性モデル情報１１００を示す図である。図１２は、［Webブラウザで任意のシェルコード実行］の脆弱性モデル情報１２００を示す図である。図１３は、［Webブラウザアプリ実行プロセスの権限昇格］の脆弱性モデル情報１３００を示す図である。
【０１０４】
脆弱性事例情報１３０は、［Webサーバの偽装］の脆弱性モデル情報１１００と、［Webブラウザで任意のシェルコード実行］の脆弱性モデル情報１２００と、［Webブラウザアプリ実行プロセスの権限昇格］の脆弱性モデル情報１３００と、を含む。
【０１０５】
図１１に示すように、［Webサーバの偽装］の脆弱性モデル情報１１００は、項番“１”の属性値に脆弱性モデル名称である「Webサーバの偽装」が記述されている。項番“１０”の属性値に、脆弱性内容である「Webサーバのアドレスとパスワードが公開されているため、Webサーバの偽装設置が可能となる」が記述されている。
【０１０６】
ここで、項番“２”から項番“８”の属性値は、「攻撃成立条件」と「攻撃結果」という２種類の属性値を含んでいる。攻撃成立条件とは、当該脆弱性を悪用した攻撃が成り立つための条件である。すなわち、任意の機能アプリケーションが与えられた場合、そのアプリケーションの属性値が、ある脆弱性モデル情報の複数の攻撃成立条件と一致する場合、その機能モジュールは当該脆弱性を有しており、攻撃される可能性がある、と判定することができる。もう一つの属性値である攻撃結果は、ある機能アプリケーションが脆弱性を有しており、攻撃を受けた場合、その機能アプリケーションの特定の属性値が変化した結果を示している。
【０１０７】
項番“２”の攻撃成立条件の属性値に、当該脆弱性を有する機能アプリケーションの種別である「Webサーバアプリケーション」が記述されている。当該脆弱性が成り立つための実行条件は、OSがLinux(Version)であり、Webサーバがhttpd(Version)であり、プロセスモードがユーザモードである。そのため、項番“４−１”の攻撃成立条件の属性値に「Linux(Version)」が、項番“４−２”の攻撃成立条件の属性値に「httpd(Version)」が、項番“４−４”の攻撃成立条件の属性値に「ユーザ」が、それぞれ記述されている。
【０１０８】
当該脆弱性の入力は、１系統以上の入力のうち一つについて、通信プロトコルがTCP/IPであり、権限チェックがページアドレス, パスワード（公開）で行われ、通信内容がhttp要求コマンド（ぺージアドレス）である。そのため、項番“５”の攻撃成立条件の属性値に「ｎ＞１」（ｎは入力数であり、正の整数）が、項番“６−５”の攻撃成立条件の属性値に「TCP/IP」が、項番“６−６”の攻撃成立条件の属性値に「ページアドレス, パスワード（公開）」が、項番“６−７”の攻撃成立条件の属性値に「http要求コマンド（ぺージアドレス）」が、それぞれ記述されている。
【０１０９】
ここで、項番“６−６”のパスワードが公開されているという攻撃成立条件は、脆弱性そのものを表している。これにより、項番“１０”に示す通りに「Webサーバの偽装設置が可能」という結果を引き起こすことになる。
【０１１０】
当該脆弱性の出力は、１系統以上の出力のうち一つについて、通信プロトコルがTCP/IPであり、権限チェックがページアドレス, パスワード（公開）で行われ、通信内容がhttp応答コマンド（HTML, Javascript）である。そのため、項番“７”の攻撃成立条件の属性値に「ｍ＞１」（ｍは出力数であり、正の整数）が、項番“８−５”の攻撃成立条件の属性値に「TCP/IP」が、項番“８−６”の攻撃成立条件の属性値に「ページアドレス, パスワード（公開）」が、項番“８−７”の攻撃成立条件の属性値に「http応答コマンド（HTML, Javascript）」が、それぞれ記述されている。
【０１１１】
以上の攻撃条件が満たされた場合、当該脆弱性に対する攻撃の可能性が生じる。当該脆弱性の場合、攻撃の結果は、前述した通り「Webサーバの偽装設置が可能」となり、http応答コマンドとしてHTML, Javascriptに加えて、オペレーティングシステムのシステムコードであるShell code (任意内容)が出力可能となる。そのため、項番“８−７”の攻撃結果の属性値に「http応答コマンド（HTML, Javascript, Shell code (任意内容)）」が記述されている。
【０１１２】
ここで、通常のWebブラウザであれば、偽サーバをアクセスして、Shell codeが含まれたhttp応答コマンドを入力したとしても、ブラウザ上では実行がされないので、偽サーバのアクセスによる被害は限られる。しかし、Webブラウザに他の脆弱性があり、当該脆弱性と組み合わせて攻撃が実行された場合、被害が拡大する問題がある。後述するように、脅威分析装置１００は、複数の脆弱性の組み合わせた攻撃について脅威分析が可能であるという特徴的な利点を有する。
【０１１３】
図１２に示すように、［Webブラウザで任意シェルコード実行］の脆弱性モデル情報１２００は、項番“１”の属性値に脆弱性モデル名称である「Webブラウザで任意シェルコード実行 」が記述されている。項番“１０”の属性値に、脆弱性内容である「Webブラウザで、アドレスリークとUse After Freeの脆弱性により、任意のシェルコードが実行可能となる（CVE2011-3928及びCVE2011-0154）」が記述されている。ここで、CVEとは米国MITRE社が登録して公開している脆弱性事例情報データベースの採番であり、当該脆弱性が実際に発生した脆弱性事例であることを示している。
【０１１４】
項番“２”の攻撃成立条件の属性値に、当該脆弱性を有する機能アプリケーションの種別である「Webブラウザアプリケーション」が記述されている。当該脆弱性が成り立つための実行条件は、OSがLinux(Version)であり、WebブラウザがWebkit(Version)であり プロセスモードがユーザモードである。そのため、項番“４−１”の攻撃成立条件の属性値に「Linux(Version)」が、項番“４−２”の攻撃成立条件の属性値に「Webkit(Version)」が、項番“４−４”の攻撃成立条件の属性値に「ユーザ」が、それぞれ記述されている。
【０１１５】
当該脆弱性の入力は、１系統以上の入力のうち一つについて、通信プロトコルがTCP/IPであり、通信内容がhttp応答コマンド（HTML, Javascript, Shell code（任意内容））である。そのため、項番“５”の攻撃成立条件の属性値に「ｎ＞＝１」（ｎは入力数であり、正の整数）が、項番“６−５”の攻撃成立条件の属性値に「TCP/IP」が、項番“６−７”の攻撃成立条件の属性値に「［＜］http応答コマンド（HTML, Javascript, Shell code（任意内容））」が、それぞれ記述されている。
【０１１６】
ここで、項番“６−７”の攻撃成立条件の先頭に付された［＜］は、機能アプリケーションに当該脆弱性モデル情報を適用可能であるか否かを判定する際の条件の一部であることを示す。詳細な説明については、後述する。
【０１１７】
当該脆弱性の出力は、１系統以上の出力のうち一つについて、通信プロトコルがTCP/IPであり、通信内容がhttp要求コマンド（ページアドレス）である。そのため、項番“７”の攻撃成立条件の属性値に「ｍ＞＝１」（ｍは出力数であり、正の整数）が、項番“８−５”の攻撃成立条件の属性値に「TCP/IP」が、項番“８−７”の攻撃成立条件の属性値に「http要求コマンド（ページアドレス）」が、それぞれ記述されている。
【０１１８】
以上の攻撃条件が満たされた場合、当該脆弱性に対する攻撃の可能性が生じる。当該脆弱性の場合、攻撃の結果は、前述した通り「Webブラウザで、任意のシェルコードが入力され実行可能 」となり、加えて、新たな出力として、通信経路がEthernetで、通信プロトコルがUDP/IP (Port 3500)で、通信内容がアプリコマンド（任意内容）を出力することが可能となる。そのため、項番“７”の攻撃結果の属性値に「ｍ＋１」が、項番“１１−４”の攻撃結果の属性値に「Ethernet」が、項番“１１−５”の攻撃結果の属性値に「UDP/IP (Port 3500)」が、項番“１１−７”の攻撃結果の属性値に「アプリコマンド（任意内容）」が、それぞれ記述されている。
【０１１９】
なお、本実施形態では、具体的な攻撃時に「アプリコマンド（ECU制御コマンド（要求））」が使用されることになる。しかし、項番“１１−７”の攻撃結果は「アプリコマンド（任意内容）」であるから、これを含むことは明らかである。
【０１２０】
図１３に示すように、［Webブラウザアプリ実行プロセスの権限昇格］の脆弱性モデル情報１３００は、項番“１”の属性値に脆弱性モデル名称である「Webブラウザアプリ実行プロセスの権限昇格」が記述されている。項番“１０”の属性値に、脆弱性内容である「Linuxで、カーネルAPIの脆弱性により、プロセスの実行権限の昇格が可能となる（CVE2013-6282）」が記述されている。
【０１２１】
当該脆弱性が成り立つための実行条件は、OSがLinux(Version)であり、プロセスモードがユーザモードである。そのため、項番“４−１”の攻撃成立条件の属性値に「Linux(Version)」が、項番“４−４”の攻撃成立条件の属性値に「ユーザ」が、それぞれ記述されている。
【０１２２】
当該脆弱性の入力は、１系統以上の入力のうち一つについて、通信プロトコルがTCP/IPであり、通信内容がhttp応答コマンド（HTML, Javascript, Shell code（任意内容））である。そのため、項番“５”の攻撃成立条件の属性値に「ｎ＞＝１」（ｎは入力数であり、正の整数）が、項番“６−５”の攻撃成立条件の属性値に「TCP/IP」が、項番“６−７”の攻撃成立条件の属性値に「［＜］http応答コマンド（HTML, Javascript, Shell code（任意内容））」が、それぞれ記述されている。
【０１２３】
以上の攻撃条件が満たされた場合、当該脆弱性に対する攻撃の可能性が生じる。当該脆弱性の場合、攻撃の結果は、プロセスモードがユーザモードから特権モードになることである。そのため、項番“４−４”の攻撃結果の属性値に「特権」が記述されている。
【０１２４】
次に、図１４から図１９を参照しつつ、脅威分析装置１００で実行される脅威分析処理Ｓ１４００及び脆弱アプリケーション検索処理Ｓ１５００について説明する。図１４は、脅威分析処理Ｓ１４００のフローチャートである。図１５は、脆弱アプリケーション検索処理Ｓ１５００のフローチャートである。図１６は、Web情報表示機能アプリケーション４３９ｂの機能アプリケーションモデル情報８００に対する脆弱性モデル情報１１００，１２００のマッチング結果を示す図である。図１７は、Web情報サーバ機能アプリケーション４４９の機能アプリケーションモデル情報９００に対する脆弱性モデル情報１１００のマッチング結果を示す図である。図１８は、脆弱性攻撃後の機能アプリケーションの属性値の関係を示す図である。図１９は、攻撃経路ツリー１９５０を示す図である。
【０１２５】
実行部１８０が脅威分析処理Ｓ１４００を実行する前に、あらかじめ、第１取得部１５０は機能アプリケーションモデル情報５００〜９００を取得し、第２取得部１６０は脆弱性モデル情報１１００〜１３００を取得しておく。また、機能アプリケーションモデル情報５００〜９００以外の対象システム設計情報１２０についても、あらかじめ取得するものとする。
【０１２６】
ユーザＵによって脅威分析処理Ｓ１４００が起動されると、図１４に示すように、最初に、実行部１８０は機能ブロック定義情報４００を表示する（Ｓ１４０１）。
【０１２７】
次に、実行部１８０は、ユーザＵによって攻撃対象に指定された機能アプリケーションについて、対応する機能アプリケーションモデル情報５００〜９００を取得するとともに、ユーザ指定機能アプリケーションＵＡに設定する（Ｓ１４０２）。
【０１２８】
以下において、ユーザＵによって車両電子制御機能アプリケーション４１７が攻撃対象に指定され、ユーザ指定機能アプリケーションＵＡに設定される場合を具体例として説明する。
【０１２９】
次に、実行部１８０は、分析結果出力用の脆弱アプリケーションリストＶＬに空(NULL)を設定する（Ｓ１４０３）。
【０１３０】
次に、実行部１８０は、ユーザ指定機能アプリケーションＵＡについて、攻撃成立条件を満たす脆弱性モデル情報ＶＩがあるか否かを判定する（Ｓ１４０４）。具体的には、実行部１８０は、ユーザ指定機能アプリケーションＵＡの機能アプリケーションモデル情報５００〜９００の属性値に一致する攻撃成立条件を含む脆弱性モデル情報ＶＩがあるか否かを判定する。
【０１３１】
判定の結果、ユーザ指定機能アプリケーションＵＡに対して攻撃成立条件を満たす脆弱性モデル情報ＶＩがある場合、ユーザ指定機能アプリケーションＵＡは、当該脆弱性モデル情報ＶＩの脆弱性を有すると考えられる。そのため、更新部１７０は、攻撃成立条件を満たす脆弱性モデル情報ＶＩの攻撃成立条件及び攻撃結果に基づいて、ユーザ指定機能アプリケーションＵＡの機能アプリケーションモデル情報５００〜９００の一部を更新する（Ｓ１４０５）。具体的には、更新部１７０は、ユーザ指定機能アプリケーションＵＡの機能アプリケーションモデル情報５００〜９００の一部の属性値を、攻撃成立条件を満たす脆弱性モデル情報ＶＩの攻撃成立条件及び攻撃結果の属性値に書き換える。
【０１３２】
次に、実行部１８０は、ユーザ指定機能アプリケーションＵＡと、攻撃成立条件を満たす脆弱性モデル情報ＶＩとを組にして、脆弱アプリケーションリストＶＬの先頭に追加する（Ｓ１４０６）。
【０１３３】
一方、ユーザ指定機能アプリケーションＵＡに対して攻撃成立条件を満たす脆弱性モデル情報ＶＩがない場合、ユーザ指定機能アプリケーションＵＡは、脆弱性を有しないと考えられる。そのため、実行部１８０は、ユーザ指定機能アプリケーションＵＡと、攻撃成立条件を満たす脆弱性がないことを示す空(NULL)とを組にして、脆弱アプリケーションリストＶＬの先頭に追加する（Ｓ１４０７）。
【０１３４】
前述した具体例の場合、脆弱性モデル情報１１００〜１３００の攻撃成立条件のいずれも、車両電子制御機能アプリケーション４１７の機能アプリケーションモデル情報５００の属性値と一致しない。よって、実行部１８０は、ステップＳ１４０７において車両電子制御機能アプリケーション４１７の名称と空(NULL)とを組にして脆弱アプリケーションリストＶＬの先頭に加える。この結果、脆弱アプリケーションリストＶＬは、以下のデータ（１）になる。
脆弱アプリケーションリストＶＬ＝
（（車両電子制御機能アプリケーション４１７、NULL））  …（１）
【０１３５】
データ（１）は、車両電子制御機能アプリケーション４１７を攻撃目的対象に設定したが、脆弱性は見つからなかったことを示す。
【０１３６】
次に、実行部１８０は、所定の引数で、図１５に示す脆弱アプリケーション検索処理Ｓ１５００を呼び出す（Ｓ１４０８）。所定の引数は、例えば、第１引数がユーザ指定機能アプリケーションＵＡ、第２引数が脆弱アプリケーションリストＶＬである。脆弱アプリケーション検索処理Ｓ１５００の結果、戻り値として脆弱アプリケーション検索処理結果リストＦＲＶが返される。
【０１３７】
前述した具体例の場合、第１引数のユーザ指定機能アプリケーションＵＡは、車両電子制御機能アプリケーション４１７である。一方、第２引数の脆弱アプリケーションリストＶＬは、前述したデータ（１）である。以下、これらの引数による脆弱アプリケーション検索処理Ｓ１５００の呼び出しを＜１回目の呼び出し＞という。
【０１３８】
脆弱アプリケーション検索処理Ｓ１５００は、第１引数で指定された機能アプリケーションを攻撃目標に設定し、関連する機能アプリケーションに対する攻撃の試行が波及する場合に、どの機能アプリケーションのどのような脆弱性が攻撃されるか、つまり、脆弱性攻撃が波及する範囲を検索する処理である。脆弱アプリケーション検索処理Ｓ１５００において、第１引数は、攻撃の目標点、つまり、脆弱性波及の検索の起点を規定する分析起点アプリケーションＳＰとして扱われ、第２引数は、処理呼び出しの時点までに実施された検索経路の履歴リストをリストする分析経路リストＡＰＬとして扱われる。
【０１３９】
脆弱アプリケーション検索処理Ｓ１５００の詳細な説明については、＜１回目の呼び出し＞の処理内容とともに、後述する。
【０１４０】
前述した具体例の場合、＜１回目の呼び出し＞の戻り値である脆弱アプリケーション検索処理結果リストＦＲＶは、以下のデータ（２）になる。
脆弱アプリケーション検索処理結果リストＦＲＶ＝
（（（車両電子制御機能アプリケーション４１７、NULL）、
（車両通信制御機能アプリケーション４２８、NULL）、
（車両情報表示機能アプリケーション４３９ａ、NULL））、
（（車両電子制御機能アプリケーション４１７、NULL）、
（車両通信制御機能アプリケーション４２８、NULL）、
（Web情報表示機能アプリケーション１９６１、脆弱性モデル情報１２００、１３００）、
（Web情報サーバ機能アプリケーション１９６２、脆弱性モデル情報１１００）））…（２）
【０１４１】
次に、実行部１８０は、脆弱アプリケーション検索処理結果リストＦＲＶと脆弱アプリケーションリストＶＬとを単一リストにマージして作成した脅威分析結果情報１９００を主記憶装置１０７に格納して登録する（ステップ１４０９）。
【０１４２】
前述した具体例の場合、脆弱アプリケーション検索処理結果リストＦＲＶは前述したデータ（２）である。一方、脆弱アプリケーションリストＶＬは空（NULL）なので、脅威分析結果情報１９００の値は、前述したデータ（２）となる。
【０１４３】
次に、実行部１８０は、脅威分析結果情報１９００から図１９に示す攻撃経路ツリー１９５０を作成して表示装置１０４に表示する（Ｓ１４１０）。詳細な説明は後述するが、図１９に示す攻撃経路ツリー１９５０の構成は、前述したデータ（２）のリスト構造を反映している。
【０１４４】
ステップＳ１４１１の後、CPU１０２は、脅威分析処理Ｓ１４００を終了する。
【０１４５】
以上の処理フローに示す通り、本願の脅威分析処理Ｓ１４００では、対象システムの構成要素である機能アプリケーションの機能アプリケーションモデル情報５００〜９００を、脆弱性モデル情報１１００〜１３００と突き合わせながら、脅威分析を行うことにより、抜けや漏れのない高精度な脅威分析を実現する特徴を備えている。
【０１４６】
ここで、前述のステップＳ１４１０で作成する攻撃経路ツリー１９５０について説明する。
【０１４７】
図１９に示すように、攻撃経路ツリー１９５０は、脅威分析結果情報１９００の内容を視覚的に表示した図表である。攻撃経路ツリー１９５０には、コネクティッドカーシステムの既に説明済みの設計情報のうち、４個のハードウェアブロック４１０、４２０、４３０、４４０と、５個の機能アプリケーション４１７，４２８，４３９ａ、４３９ｂ、４４９が含まれている。各機能アプリケーション４１７，４２８，４３９ａ、４３９ｂ、４４９には、図５から図９に示した機能アプリケーションモデル情報５００〜９００から抽出された名称、機能、入力、及び出力が、記述されている。また、攻撃経路ツリー１９５０には、各機能アプリケーション４１７，４２８，４３９ａ、４３９ｂ、４４９がネットワークを介して接続され、車両情報表示機能アプリケーション４３９ａ及びWeb情報表示機能アプリケーション４３９ｂが実現されていることを、視覚的に示している。図１９の右下部分において、破線枠で囲まれた機能アプリケーションは、後述する脆弱性攻撃後の機能アプリケーションモデル情報の属性値の変化と、攻撃経路を示している。
【０１４８】
次に、脆弱アプリケーション検索処理Ｓ１５００について説明する。
【０１４９】
脆弱アプリケーション検索処理Ｓ１５００が起動されると、図１５に示すように、最初に、実行部１８０は、結果出力用の検索結果リストＲＴに空(NULL)を設定する（Ｓ１５０１）。具体的には、CPU１０２は、検索結果リストＲＴに空(NULL)を設定する。
【０１５０】
次に、実行部１８０は、システム構成要素関係情報１０００を検索して第１引数の分析起点アプリケーションＳＰが含まれるハードウェアブロックを特定し、当該ハードウェアブロックに接続する隣接ハードウェアブロックの有無を判定する（Ｓ１５０２）。
【０１５１】
ステップＳ１５０２の判定の結果、隣接ハードウェアブロックが有る場合、実行部１８０は、再びシステム構成要素関係情報１０００を検索し、隣接ハードウェアブロック内の全ての機能アプリケーションを分析対象アプリケーションリストＡＬに登録する（Ｓ１５０３）。
【０１５２】
前述した具体例の場合、すなわち、＜１回目の呼び出し＞の場合、ステップＳ１５０２において、第１引数に設定されたユーザ指定機能アプリケーションＵＡである車両電子制御機能アプリケーション４１７が含まれるハードウェアブロックとして、図１０に示すシステム構成要素関係情報１０００の項番“１”の第２構成要素に記述された「車両電子制御ユニット（ECU）」が特定される。そして、図１０に示すシステム構成要素関係情報１０００の項番“３”に記述されるように、車両電子制御ユニット（ECU）４１０に接続する隣接ハードウェアブロックである車両通信ゲートウェイ（GW）４２０が有る。よって、ステップＳ１５０３において、図１０に示すシステム構成要素関係情報１０００の項番“５”の第２構成要素に記述された「車両通信制御」である車両通信制御機能アプリケーション４２８が、分析対象アプリケーションリストＡＬに登録される。
【０１５３】
次に、実行部１８０は、分析対象アプリケーションリストＡＬに機能アプリケーションが有るか否かを判定する（Ｓ１５０４）。
【０１５４】
ステップＳ１５０４の判定の結果、機能アプリケーションが有る場合、実行部１８０は、分析対象アプリケーションリストＡＬの先頭（１番目）の機能アプリケーションを取り出し、分析対象アプリケーションＯＡに設定する。（Ｓ１５０５）。このとき、実行部１８０は、取り出した機能アプリケーションを分析対象アプリケーションリストＡＬから除去する。これにより、分析対象アプリケーションリストＡＬに機能アプリケーションが複数有る場合、分析対象アプリケーションリストＡＬにおいて、２番目の機能アプリケーションが先頭（１番目）の機能アプリケーションになる。一方、分析対象アプリケーションリストＡＬに機能アプリケーションが１つしかない場合、分析対象アプリケーションリストＡＬに機能アプリケーションはなくなる。
【０１５５】
次に、実行部１８０は、分析対象アプリケーションＯＡについて、攻撃成立条件を満たす脆弱性モデル情報ＶＩがあるか否かを判定する（Ｓ１５０６）。具体的には、実行部１８０は、分析対象アプリケーションＯＡの機能アプリケーションモデル情報５００〜９００の属性値に一致する攻撃成立条件を含む脆弱性モデル情報ＶＩがあるか否かを判定する。
【０１５６】
ステップＳ１５０６の判定の結果、分析対象アプリケーションＯＡに対して攻撃成立条件を満たす脆弱性モデル情報ＶＩがある場合、分析対象アプリケーションＯＡは、当該脆弱性を有すると考えられる。そのため、更新部１７０は、攻撃成立条件を満たす脆弱性モデル情報ＶＩの攻撃成立条件及び攻撃結果に基づいて、分析対象アプリケーションＯＡの機能アプリケーションモデル情報５００〜９００の一部を更新する（Ｓ１５０７）。具体的には、更新部１７０は、分析対象アプリケーションＯＡの機能アプリケーションモデル情報５００〜９００の一部の属性値を、攻撃成立条件を満たす脆弱性モデル情報ＶＩの攻撃成立条件及び攻撃結果の属性値に書き換える。
【０１５７】
一方、ステップＳ１５０６の判定の結果、分析対象アプリケーションＯＡの機能アプリケーションモデル情報５００〜９００の属性値に一致する攻撃成立条件を含む脆弱性モデル情報１１００〜１３００がない場合、分析対象アプリケーションＯＡは、当該脆弱性モデル情報１１００〜１３００の攻撃成立条件を満たさないので、当該脆弱性を有しないと考えられる。そのため、実行部１８０は、攻撃成立条件を満たす脆弱性モデル情報ＶＩに「NULL」を設定する（Ｓ１５０８）。
【０１５８】
前述した具体例の場合、分析対象アプリケーションリストＡＬに車両通信制御機能アプリケーション４２８が有るので、ステップＳ１５０５において、車両通信制御機能アプリケーション４２８が分析対象アプリケーションＯＡに設定される。しかし、車両通信制御機能アプリケーション４２８の機能アプリケーションモデル情報６００の属性値に一致する攻撃成立条件を含む脆弱性モデル情報１１００〜１３００がないので、ステップＳ１５０８において脆弱性モデル情報ＶＩに「NULL」が設定される。
【０１５９】
次に、実行部１８０は、分析対象アプリケーションＯＡの機能アプリケーションモデル情報５００〜９００と分析起点アプリケーションＳＰの機能アプリケーションモデル情報５００〜９００とに基づいて、分析対象アプリケーションＯＡが分析起点アプリケーションＳＰと通信接続可能か否かを判定する（Ｓ１５０９）。当該判定は、例えば、分析対象アプリケーションＯＡの機能アプリケーションモデル情報５００〜９００における出力の通信経路、通信プロトコル、権限チェック、通信内容の各属性値が、分析起点アプリケーションＳＰの機能アプリケーションモデル情報５００〜９００における入力の各属性値と一致するか否かを基準とする。
【０１６０】
前述した具体例の場合、車両通信制御機能アプリケーション４２８の機能アプリケーションモデル情報６００における項番“７”及び項番“８−４”〜“８−７”の属性値が、車両電子制御機能アプリケーション４１７の機能アプリケーションモデル情報５００における項番“５”及び項番“６−４”〜“７−７”の属性値と一致している。よって、ステップＳ１５０９において、車両通信制御機能アプリケーション４２８及び車両電子制御機能アプリケーション４１７は通信接続可能であると判定される。
【０１６１】
Ｓ１５０９の判定の結果、分析対象アプリケーションＯＡが分析起点アプリケーションＳＰと通信接続可能である場合、実行部１８０は、分析対象アプリケーションＯＡと脆弱性モデル情報ＶＩとを組にし、当該組を脆弱アプリケーション検索処理Ｓ１５００の第２引数である分析経路リストＡＰＬの最終要素に追加したものを次分析経路リストＡＰＬＮＸに設定する。（Ｓ１５１０）。
【０１６２】
前述した具体例の場合、ステップＳ１５０８において、実行部１８０は脆弱性モデル情報ＶＩに「NULL」を設定したので、ステップＳ１５１０において、分析対象アプリケーションＯＡである車両通信制御機能アプリケーション４２８と「NULL」との組が分析経路リストＡＰＬの最終要素に追加され、次分析経路リストＡＰＬＮＸに設定される。その結果、次分析経路リストＡＰＬＮＸは、以下のデータ（３）になる。
次分析経路リストＡＰＬＮＸ＝
（（車両電子制御機能アプリケーション４１７、NULL）、
（車両通信制御機能アプリケーション４２８、NULL））  …（３）
【０１６３】
データ（３）では、次分析経路リストＡＰＬＮＸとして、車両電子制御機能アプリケーション４１７と車両通信制御機能アプリケーション４２８がリスト形式データとして表現されているが、これは、この２つの機能アプリケーションが直列に接続されていること、すなわち、２階層のツリーを形成していることを意味する。このように、脆弱アプリケーション検索処理Ｓ１５００を呼び出すことで、順次、攻撃経路ツリーが形成されることが、脆弱アプリケーション検索処理Ｓ１５００の特徴である。
【０１６４】
一方、Ｓ１５０９の判定の結果、分析対象アプリケーションＯＡが分析起点アプリケーションＳＰと通信接続可能でない場合、実行部１８０は、ステップＳ１５０４に戻り、再度、分析対象アプリケーションリストＡＬに機能アプリケーションが有るか否かを判定する。
【０１６５】
ステップＳ１５１０の後、CPU１０２は、所定の引数で脆弱アプリケーション検索処理Ｓ１５００を再帰的に呼び出す（Ｓ１５１１）。所定の引数は、例えば、第１引数が分析対象アプリケーションＯＡ、第２引数が次分析経路リストＡＰＬＮＸである。脆弱アプリケーション検索処理Ｓ１５００の処理の結果、戻り値として脆弱アプリケーション検索処理結果リストＦＲＶが返される。
【０１６６】
前述した具体例の場合、第１引数の分析対象アプリケーションＯＡは、車両通信制御機能アプリケーション４２８である。一方、第２引数の次分析経路リストＡＰＬＮＸは、前述したデータ（３）である。以下、これらの引数による脆弱アプリケーション検索処理Ｓ１５００の再帰的呼び出しを＜２回目の呼び出し＞といい、その処理内容については後述する。
【０１６７】
次に、実行部１８０は、再帰呼び出しした脆弱アプリケーション検索処理Ｓ１５００の戻り値である脆弱アプリケーション検索処理結果リストＦＲＶを検索結果リストＲＴに追加して検索結果リストＲＴを更新する（Ｓ１５１２）。
【０１６８】
前述した具体例の場合、＜２回目の呼び出し＞の戻り値である脆弱アプリケーション検索処理結果リストＦＲＶは、前述したデータ（２）になる。一方、検索結果リストＲＴは、ステップＳ１５０１において空（NULL）が設定されている。よって、ステップＳ１５１２において更新された検索結果リストＲＴは、前述したデータ（２）である。
【０１６９】
ステップＳ１５１２の後、実行部１８０は、分析対象アプリケーションリストＡＬに機能アプリケーションがなくなるまで、ステップＳ１５０４〜ステップＳ１５１２の処理を繰り返す。
【０１７０】
ステップＳ１５０２の判定の結果、隣接ハードウェアブロックがない場合、又は、ステップＳ１５０４の判定の結果、分析対象アプリケーションリストＡＬに機能アプリケーションがない場合、実行部１８０は、検索結果リストＲＴが空(NULL)か否かを判定する（Ｓ１５１３）。
【０１７１】
ステップＳ１５１３の判定の結果、検索結果リストＲＴが空(NULL)の場合、実行部１８０は、検索結果リストＲＴに、脆弱アプリケーション検索処理Ｓ１５００の第２引数である分析経路リストＡＰＬを追加する（Ｓ１５１４）。
【０１７２】
ステップＳ１５１３の判定の結果、検索結果リストＲＴが空(NULL)でない場合、又は、ステップＳ１５１４の後、CPU１０２は、脆弱アプリケーション検索処理Ｓ１５００を終了する。
【０１７３】
前述した具体例の場合、ステップＳ１５０３において、分析対象アプリケーションリストＡＬに登録された車両通信制御機能アプリケーション４２８のみであるから、未分析の機能アプリケーションはない。よって、ステップＳ１５１３に進む。また、ステップ１５１２において、検索結果リストＲＴは前述したデータ（２）に更新されたので、ステップＳ１５１４を行わない。このようにして、＜１回目の呼び出し＞による脆弱アプリケーション検索処理Ｓ１５００は終了する。
【０１７４】
以下において、＜２回目の呼び出し＞による脆弱アプリケーション検索処理Ｓ１５００の処理内容を説明する。前述した内容と同様の部分の説明は、適宜省略する。
【０１７５】
ステップＳ１５０２において、第１引数に設定された分析対象アプリケーションＯＡは、車両通信制御機能アプリケーション４２８が含まれるハードウェアブロックとして、図１０に示すシステム構成要素関係情報１０００の項番“５”の第２構成要素に記述された「車両通信ゲートウェイ（GW）」が特定される。そして、図１０に示すシステム構成要素関係情報１０００の項番“９”に記述されるように、車両通信ゲートウェイ（GW）４２０に接続する隣接ハードウェアブロックであるコンソールディスプレイ（CD）４３０が有る。よって、ステップＳ１５０３において、図１０に示すシステム構成要素関係情報１０００の項番“１１”の第２構成要素に記述された「車両情報表示」である車両情報表示機能アプリケーション４３９ａと、システム構成要素関係情報１０００の項番“１４”の第２構成要素に記述された「Web情報表示」であるWeb情報表示機能アプリケーション４３９ｂとが、分析対象アプリケーションリストＡＬに登録される。
【０１７６】
このように、脆弱アプリケーション検索処理Ｓ１５００は、呼び出し元の機能アプリケーションに接続する可能性を有する機能アプリケーションに対して、接続可能性と脆弱性モデル情報の適用可能性とを順次判定していく。これにより、対象システムに内在する複数の機能アプリケーションに対して、それぞれの脆弱性の有無を判定し、対象システム全体の組合せに対して攻撃の可能性を分析することができる、という特徴を有する。
【０１７７】
すなわち、一の機能アプリケーションの機能アプリケーションモデル情報５００〜９００と、当該一の機能アプリケーションと通信接続可能な機能アプリケーションの機能アプリケーションモデル情報５００〜９００と、脆弱性モデル情報１１００〜１３００とに基づいて、対象システムの機能分析を行うことにより、通信接続可能な２つの機能アプリケーションの組合せに対する攻撃の可能性を分析することができる。
【０１７８】
次に、分析対象アプリケーションリストＡＬに車両情報表示機能アプリケーション４３９ａ及びWeb情報表示機能アプリケーション４３９ｂが登録されているので、ステップＳ１５０５において、車両情報表示機能アプリケーション４３９ａが分析対象アプリケーションＯＡに設定される。しかし、車両情報表示機能アプリケーション４３９ａの機能アプリケーションモデル情報７００の属性値に一致する攻撃成立条件を含む脆弱性モデル情報１１００〜１３００がないので、ステップＳ１５０８において攻撃成立条件を満たす脆弱性モデル情報ＶＩに「NULL」が設定される。
【０１７９】
次に、車両情報表示機能アプリケーション４３９ａの機能アプリケーションモデル情報７００における項番“７”及び項番“８−４”〜“８−７”の属性値が、第１引数である車両通信制御機能アプリケーション４２８の機能アプリケーションモデル情報６００における項番“５”及び項番“６−４”〜“７−７”の属性値と一致している。よって、ステップＳ１５０９において、車両情報表示機能アプリケーション４３９ａ及び車両通信制御機能アプリケーション４２８が通信接続可能であると判定される。
【０１８０】
次に、ステップＳ１５０８で攻撃成立条件を満たす脆弱性モデル情報ＶＩに「NULL」を設定したので、実行部１８０は、ステップＳ１５１０において、分析対象アプリケーションＯＡである車両情報表示機能アプリケーション４３９ａとNULLとの組が分析経路リストＡＰＬの最終要素に追加され、次分析経路リストＡＰＬＮＸに設定される。その結果、次分析経路リストＡＰＬＮＸは、以下のデータ（４）になる。
次分析経路リストＡＰＬＮＸ＝
（（車両電子制御機能アプリケーション４１７、NULL）、
（車両通信制御機能アプリケーション４２８、NULL）、
（車両情報表示機能アプリケーション４３９ａ、NULL））  …（４）
【０１８１】
次に、ステップ１５１１において、分析対象アプリケーションＯＡである車両情報表示機能アプリケーション４３９ａを第１引数、次分析経路リストＡＰＬＮＸである前述のデータ（４）を第２引数として脆弱アプリケーション検索処理Ｓ１５００が再帰的に呼び出される。これらの引数による脆弱アプリケーション検索処理Ｓ１５００の再帰的呼び出しを＜３回目の呼び出し＞という。
【０１８２】
ここで、脆弱アプリケーション検索処理Ｓ１５００の＜３回目の呼び出し＞の処理内容について簡略化して説明する。コンソールディスプレイ（CD）４３０に隣接するハードウェアブロックはWebサーバ（WS）４４０である。しかし、Webサーバ（WS）４４０に内在する機能アプリケーションであるWeb情報サーバ機能アプリケーション４４９に脆弱性を適用しても、Web情報表示機能アプリケーション４３９ｂと通信接続可能にならない。脆弱アプリケーション検索処理Ｓ１５００の＜３回目の呼び出し＞は、戻り値として前述のデータ（４）を返して終了する。
【０１８３】
脆弱アプリケーション検索処理Ｓ１５００の＜２回目の呼び出し＞の処理内容の説明に戻ると、ステップ１５１２において、＜３回目の呼び出し＞の戻り値である脆弱アプリケーション検索処理結果リストＦＲＶの前述のデータ（４）が、ステップＳ１５０１で空（NULL）が設定された検索結果リストＲＴに追加され、検索結果リストＲＴが更新される。よって、更新された検索結果リストＲＴは、前述のデータ（４）である。
【０１８４】
次に、ステップＳ１５０４に戻り、分析対象アプリケーションリストＡＬにWeb情報表示機能アプリケーション４３９ｂが残っているので、ステップ１５０５に進み、分析対象アプリケーションＯＡにWeb情報表示機能アプリケーション４３９ｂが設定される。
【０１８５】
次に、ステップ１５０６において、Web情報表示機能アプリケーション４３９ｂの機能アプリケーションモデル情報９００の属性値に一致する攻撃成立条件を含む脆弱性モデル情報１１００〜１３００が有るか否かが判定される。
【０１８６】
図１６に示すように、Web情報表示機能アプリケーション４３９ｂの機能アプリケーションモデル情報８００の属性値１６０１は、項番“６?７”の通信内容を除き、脆弱性モデル情報１２００，１３００の攻撃成立条件１６０２と一致している。一方、機能アプリケーションモデル情報８００の属性値１６０１は、脆弱性モデル情報１２００，１３００の項番“６?７”の脆弱性成立条件である入力内容「http応答コマンド（Shell code (任意内容)）」を満たしていない。
【０１８７】
しかし、脆弱性モデル情報１２００，１３００の攻撃成立条件１６０２の通信内容は、攻撃成立条件の一部であることを示す「［＜］」を含んでいる。この場合、機能アプリケーションモデル情報８００の属性値１６０１が、脆弱性モデル情報１２００，１３００の攻撃成立条件１６０２を満たすものとみなす。よって、ステップＳ１５０７において、Web情報表示機能アプリケーション４３９ｂの機能アプリケーションモデル情報８００の属性値１６０１は、更新されて属性値１６０３になる。
【０１８８】
このような充足条件「［＜］」を脆弱性モデル情報１２００，１３００の攻撃成立条件１６０２が含むことで、Web情報表示機能アプリケーション４３９ｂへの攻撃成立の可能性を留保することができる。言い換えると、この入力条件が満たされれば、Web情報表示機能アプリケーション４３９ｂが有する脆弱性への攻撃が成立することになる。
【０１８９】
後述するように、Web情報表示機能アプリケーション４３９ｂに接続するWeb情報サーバ機能アプリケーション４４９には［Webサーバの偽装］の脆弱性モデル情報１１００があり、その脆弱性の攻撃後に、情報サーバ機能アプリケーション４４９は「http応答コマンド（Shell code (任意内容)）」を出力するようになる。
【０１９０】
以上説明したように、脆弱アプリケーション検索処理Ｓ１５００は、任意の機能アプリケーションについて、攻撃成立条件を満たす脆弱性が存在する場合、当該脆弱性モデル情報の攻撃成立条件及び攻撃結果に基づいて、当該機能アプリケーションの機能アプリケーションモデル情報の一部の属性値を更新することで、攻撃の可能性を留保しつつ、その先の機能アプリケーションに対する脅威分析が可能になる、という特徴を有する。その後の分析で他の機能アプリケーションに他の脆弱性モデル情報が適用された場合、留保された攻撃が実際に成立することを確認することができ、対象システム全体で複数の脆弱性を組み合わせた攻撃に対する脅威分析が実現される。
【０１９１】
Web情報表示機能アプリケーション４３９ｂの機能アプリケーションモデル情報８００の更新後の属性値１６０３は、項番“４−４” のプロセスモードが、「特権モード」に変更され、新たな出力、つまり、第（ｍ＋１）出力として、項番“１１−４”の通信経路に「Ethernet」、項番“１１−５”のプロトコルに「UDP/IP(Port3500)」が、項番“１１−７”の通信内容に「アプリコマンド（ECU制御コマンド（要求））」が、それぞれ追加されている。
【０１９２】
図１９に示すように、攻撃前のWeb情報表示機能アプリケーション４３９ｂは、脆弱性への攻撃後にWeb情報表示機能アプリケーション１９６１に更新され、機能属性に変化が生じる。攻撃を受けたWeb情報表示機能アプリケーション１９６１は、任意のシェルコードを入力して実行し、新たな第２出力を出力可能となる。具体的には、ロジカルな通信経路１９６３を介して、車両通信制御機能アプリケーション４２８に対して、偽のECU制御コマンドを送付可能となる。この攻撃は、例えば、走行中に車両のドアが開いたり、燃料制御が異常動作したりする等、予測できない危険（ハザード）を引き起こす結果となる。
【０１９３】
このように、攻撃成立条件を満たす脆弱性モデル情報１２００，１３００の攻撃成立条件及び攻撃結果に基づいて、Web情報表示機能アプリケーション４３９ｂの機能アプリケーションモデル情報８００の一部を更新することにより、当該機能アプリケーションに接続可能な機能アプリケーションに対する脅威分析が可能になり、複数の脆弱性を組み合わせた攻撃に対する対象システムの脅威分析を行うことができる。
【０１９４】
脆弱アプリケーション検索処理Ｓ１５００の＜２回目の呼び出し＞の処理内容の説明に戻ると、ステップＳ１５０９では、脆弱性への攻撃後の分析対象アプリケーションＯＡであるWeb情報表示機能アプリケーション１９６１と、分析起点アプリケーションＳＰである車両通信制御機能アプリケーション４２８とが通信接続可能か否かが判定される。
【０１９５】
図１８に示すように、Web情報表示機能アプリケーション１９６１の属性値１８０２における出力の各属性値と、車両通信制御機能アプリケーション４２８の機能アプリケーションモデル情報６００の属性値１８０１における入力の各属性値とが一致する。
【０１９６】
よって、ステップＳ１５０９において、Web情報表示機能アプリケーション１９６１及び車両通信制御機能アプリケーション４２８は通信接続可能と判定され、ステップＳ１５１０に進む。
【０１９７】
ステップＳ１５１０では、分析対象アプリケーションＯＡであるWeb情報表示機能アプリケーション１９６１と、脆弱性モデル情報ＶＩである脆弱性モデル情報１２００，１３００との組が分析経路リストＡＰＬの最終要素に追加され、次分析経路リストＡＰＬＮＸに設定される。その結果、次分析経路リストＡＰＬＮＸは、以下のデータ（５）になる。
次分析経路リストＡＰＬＮＸ＝
（（車両電子制御機能アプリケーション４１７、NULL）、
（車両通信制御機能アプリケーション４２８、NULL）、
（Web情報表示機能アプリケーション１９６１、脆弱性モデル情報１２００，１３００））  …（５）
【０１９８】
ステップＳ１５１１では、分析対象アプリケーションＯＡであるWeb情報表示機能アプリケーション１９６１を第１引数、次分析経路リストＡＰＬＮＸである前述のデータ（５）を第２引数として脆弱アプリケーション検索処理Ｓ１５００が再帰的に呼び出される。以下、これらの引数による脆弱アプリケーション検索処理Ｓ１５００の再帰的呼び出しを＜４回目の呼び出し＞という。
【０１９９】
ここで、脆弱アプリケーション検索処理Ｓ１５００の＜４回目の呼び出し＞の処理内容について説明する。
【０２００】
ステップＳ１５０２では、第１引数に指定されたWeb情報表示機能アプリケーション１９６１が含まれるハードウェアブロックとして、（CD）４３０が特定され、これに接続する隣接ハードウェアブロックとして、Webサーバ（WS）４４０が検索されてステップＳ１５０３に進む。
【０２０１】
ステップＳ１５０３では、Webサーバ（WS）４４０内の機能アプリケーションとして、Web情報サーバ機能アプリケーション４４９が選択され、分析対象アプリケーションリストＡＬに登録される。ステップＳ１５０４では分析対象アプリケーションリストＡＬにWeb情報サーバ機能アプリケーション４４９があるので、ステップＳ１５０５に進む。
【０２０２】
ステップＳ１５０５では、Web情報サーバ機能アプリケーション４４９が分析対象アプリケーションＯＡに設定され、ステップＳ１５０６でWeb情報サーバ機能アプリケーション４４９に攻撃成立条件を有する脆弱性情報があるか否か判定される。ここで、Web情報サーバ機能アプリケーション４４９に対して、攻撃成立条件を満たす脆弱性モデル情報１１００が存在する。
【０２０３】
図１７に示すように、Web情報サーバ機能アプリケーション４４９の機能アプリケーションモデル情報９００の属性値１７０１と、脆弱性モデル情報１１００の攻撃成立条件１７０２とが一致している。Web情報サーバ機能アプリケーション４４９の更新された属性値１７０３として、項番“８?７”の通信内容に、「http応答コマンド（Shell code（任意内容））」が追加される。
【０２０４】
図１９に示すように、攻撃前のWeb情報サーバ機能アプリケーション４４９は、攻撃後にWeb情報サーバ機能アプリケーション１９６２に変更され、機能属性に変化が生じる。攻撃を受けたWeb情報サーバ機能アプリケーション１９６２は、任意のシェルコードを出力可能となる。具体的には、ロジカルな通信経路１９６４を介して、Web情報表示機能アプリケーション１９６１に対して、偽のECU制御コマンドを生成させるためのShell codeを送付可能となる。
【０２０５】
以上により、Web情報表示アプリケーション４３９ｂの脆弱性に対する攻撃によるアプリケーション機能の変化、すなわち、攻撃後のWeb情報表示機能アプリケーション１９６１に呼応して、Web情報サーバ機能アプリケーション４４９の脆弱性に対する攻撃によってアプリケーション機能の変化、すなわち、攻撃後のWeb情報サーバ機能アプリケーション１９６２が発生する。このように、Web情報表示機能アプリケーション１９６１及びWeb情報サーバ機能アプリケーション１９６２を組み合わせた車両外部からの攻撃のシーケンスが完成することを、本発明の脅威分析により求めることが可能となる。
【０２０６】
脆弱アプリケーション検索処理Ｓ１５００の＜４回目の呼び出し＞の説明に戻ると、ステップＳ１５０９では、脆弱性への攻撃後の分析対象アプリケーションＯＡであるWeb情報サーバ機能アプリケーション１９６２と、分析起点アプリケーションＳＰであるWeb情報表示機能アプリケーション１９６１が通信接続可能か否か判定される。
【０２０７】
図１８に示すように、Web情報サーバ機能アプリケーション１９６２の属性値１８０３における出力の各属性値と、Web情報表示機能アプリケーション１９６１の属性値１８０２における入力の各属性値とが一致する。
【０２０８】
よって、ステップＳ１５０９でWeb情報サーバ機能アプリケーション１９６２及びWeb情報表示機能アプリケーション１９６１が通信接続可能と判定され、ステップＳ１５１０に進む。
【０２０９】
ステップ１５１０では、分析対象アプリケーションＯＡであるWeb情報サーバ機能アプリケーション１９６２と、脆弱性モデル情報ＶＩである脆弱性モデル情報１１００との組が分析経路リストＡＰＬの最終要素に追加され、次分析経路リストＡＰＬＮＸに設定される。その結果、次分析経路リストＡＰＬＮＸは、以下のデータ（６）になる。
次分析経路リストＡＰＬＮＸ＝
（（車両電子制御機能アプリケーション４１７、NULL）、
（車両通信制御機能アプリケーション４２８、NULL）、
（Web情報表示機能アプリケーション１９６１、脆弱性モデル情報１１００，１２００））
（Web情報サーバ機能アプリケーション１９６２、脆弱性モデル情報１１００））  …（６）
【０２１０】
ステップＳ１５１１では、分析対象アプリケーションＯＡであるWeb情報サーバ機能アプリケーション１９６２を第１引数、次分析経路リストＡＰＬＮＸである前述のデータ（６）を第２引数として、脆弱アプリケーション検索処理Ｓ１５００が再帰的に呼び出される。以下、これらの引数による脆弱アプリケーション検索処理Ｓ１５００の再帰的呼び出しを＜５回目の呼び出し＞という。
【０２１１】
ここで、脆弱アプリケーション検索処理Ｓ１５００の＜５回目の呼び出し＞の処理内容を簡単に説明する。ステップＳ１５０２では、Webサーバ（WS）４４０には隣接するハードウェアユニットが存在しないので、ステップＳ１５１３に進む。そして、脆弱アプリケーション検索処理Ｓ１５００の＜５回目の呼び出し＞は、戻り値として前述のデータ（６）を返して終了する。
【０２１２】
脆弱アプリケーション検索処理Ｓ１５００の＜４回目の呼び出し＞の説明に戻ると、ステップ１５１２において、＜５回目の呼び出し＞の戻り値である脆弱アプリケーション検索処理結果リストＦＲＶの前述のデータ（６）が、ステップＳ１５０１において空（NULL）が設定された検索結果リストＲＴに追加され、検索結果リストＲＴが更新される。よって、更新された検索結果リストＲＴは、前述のデータ（６）である。
【０２１３】
次に、ステップＳ１５０４に戻り、分析対象アプリケーションリストＡＬに分析対象がないので、ステップＳ１５１３に進む。
【０２１４】
ステップＳ１５１３の判定では、検索結果リストＲＴは前述のデータ（６）であり、空(NULL)ではないので、そのまま何もせずに脆弱アプリケーション検索処理Ｓ１５００の＜４回目の呼び出し＞は終了する。戻り値として前述したデータ（６）の検索結果リストＲＴが返される。
【０２１５】
脆弱アプリケーション検索処理Ｓ１５００の＜２回目の呼び出し＞の説明に戻ると、ステップ１５１２において、＜４回目の呼び出し＞の戻り値である脆弱アプリケーション検索処理結果リストＦＲＶの前述のデータ（６）が、検索結果リストＲＴであるデータ（４）に追加され、検索結果リストＲＴが更新される。よって、更新された検索結果リストＲＴは、以下のデータ（７）になる。
検索結果リストＲＴ＝
（（（車両電子制御機能アプリケーション４１７、NULL）、
（車両通信制御機能アプリケーション４２８、NULL）、
（車両情報表示機能アプリケーション４３９ａ、NULL））、
（（車両電子制御機能アプリケーション４１７、NULL）、
（車両通信制御機能アプリケーション４２８、NULL）、
（Web情報表示機能アプリケーション１９６１、脆弱性モデル情報１２００、１３００）、
（Web情報サーバ機能アプリケーション１９６２、脆弱性モデル情報１１００）））…（７）
【０２１６】
このように、検索結果リストＲＴは、機能アプリケーションとその機能アプリケーションに適用可能な脆弱性モデル情報との組をリストとして示したものである。また、データ（７）は、前述したデータ（２）と同一である。
【０２１７】
図１９に示すように、ユーザ指定機能アプリケーションＵＡとして車両電子制御機能アプリケーション４１７が指定された場合、前述した検索結果リストＲＴは、車両電子制御機能アプリケーション４１７への脆弱性請攻撃パスとして、２つの機能アプリケーションのシーケンシャルな呼び出し関係が、脆弱アプリケーション検索処理Ｓ１５００の結果として得られたことを示している。
【０２１８】
第１の呼び出し関係は、前述のデータ（７）の第１要素に示されるように、車両情報表示機能アプリケーション４３９ａを起点とする正常な呼び出し関係の実行パスである。第２の呼び出し関係は、前述のデータ（７）の第２要素に示されるように、Web情報サーバ機能アプリケーション１９６２を起点とする脆弱性攻撃の実行パスである。
【０２１９】
脆弱アプリケーション検索処理Ｓ１５００の＜２回目の呼び出し＞の説明に戻ると、次のステップＳ１５０４では、分析対象アプリケーションリストＡＬに分析対象がないので、ステップＳ１５１３に進む。
【０２２０】
ステップＳ１５１３の判定では、検索結果リストＲＴは前述のデータ（７）であり、空(NULL)ではないので、そのまま何もせずに脆弱アプリケーション検索処理Ｓ１５００の＜２回目の呼び出し＞は終了する。戻り値として前述したデータ（７）の検索結果リストＲＴが返される。
【０２２１】
前述したように、脆弱アプリケーション検索処理Ｓ１５００の＜２回目の呼び出し＞の処理結果は、脅威分析処理Ｓ１４００による脆弱アプリケーション検索処理Ｓ１５００の＜１回目の呼び出し＞に返される。さらに、脅威分析処理Ｓ１４００の処理結果は、図示しない脅威分析メイン処理に返されて最終的な分析結果である脅威分析結果情報１９００が得られる。
【０２２２】
本実施形態では、対象システムとしてコネクティッドカーシステムの例を示したが、これに限定されるものではない。コネクティッドカーシステム以外の他のシステムに対して脅威分析を行ってもよい。
【０２２３】
このように、本実施形態の脅威分析装置１００、脅威分析方法、及び脅威分析プログラムによれば、対象システムに含まれる機能アプリケーションについて、システム仕様情報１４０を用いてモデル化した機能アプリケーションモデル情報５００〜９００が取得され、事例システムに含まれる脆弱性について、システム仕様情報１４０を用いてモデル化した脆弱性モデル情報１１００〜１３００が取得される。そして、機能アプリケーションモデル情報５００〜９００と脆弱性モデル情報１１００〜１３００とに基づいて、対象システムの脅威分析が行われる。ここで、システム仕様情報１４０に含まれる抽象的な仕様情報は、概念設計段階のシステムでも得ることができる。よって、同じシステム仕様情報１４０を用いて機能アプリケーションモデル情報５００〜９００及び脆弱性モデル情報１１００〜１３００を取得することにより、対象システムの機能アプリケーションモデル情報５００〜９００と事例システムの脆弱性モデル情報１１００〜１３００とを容易に比較することができ、対象システムに存在し得る脆弱性への脅威分析を行うことができる。従って、概念設計段階の対象システムに対して脅威分析を行うことができる。
【０２２４】
［第２実施形態］
次に、図２０から図２６を参照しつつ、本発明の第２実施形態に係る脅威分析装置、脅威分析方法、及び脅威分析プログラムについて説明する。なお、第２実施形態では第１実施形態と共通の事柄についての記述を省略し、異なる点についてのみ説明する。特に、同様の構成による同様の作用効果については実施形態毎には逐次言及しない。
【０２２５】
図２０は、本発明の第２実施形態に係る脅威分析装置２００の物理構成を示すブロック図である。図２１は、本発明の第２実施形態に係る脅威分析装置２００の機能構成を示すブロック図である。図２２は、対象システム管理テーブル２２００を示す図である。図２３は、脆弱性事例情報管理テーブル２３００を示す図である。図２４は、脆弱性事例情報登録処理Ｓ２４００のフローチャートである。図２５は、脅威分析サービス管理処理Ｓ２５００のフローチャートである。図２６は、課金情報管理処理Ｓ２６００のフローチャートである。
【０２２６】
図２０に示すように、脅威分析装置２００の主記憶装置１０７に、対象システム管理テーブル２２００と、脆弱性事例情報管理テーブル２３００と、脆弱性事例情報登録処理Ｓ２４００と、脅威分析サービス管理処理Ｓ２５００と、課金情報管理処理Ｓ２６００と、がさらに格納され、記憶されている。
【０２２７】
対象システム管理テーブル２２００は、対象システムを管理するためのテーブルデータである。対象システム管理テーブル２２００は、脅威分析サービス管理処理Ｓ２５００によって使用される。
【０２２８】
脆弱性事例情報管理テーブル２３００は、脆弱性モデル情報を管理するためのテーブルデータであり、どのような脆弱性モデル情報を登録したのか、登録者は誰か、など管理用の属性情報を含んでいる。脆弱性事例情報管理テーブル２３００は、脆弱性事例情報登録処理Ｓ２４００によって使用される。
【０２２９】
脆弱性事例情報登録処理Ｓ２４００は、情報登録者ＩＲによる脆弱性モデル情報１１００〜１３００の登録を管理するプログラムである。
【０２３０】
脅威分析サービス管理処理Ｓ２５００は、サービス利用者ＳＵに、第１実施形態で説明した脅威分析処理Ｓ１４００及び脆弱アプリケーション検索処理Ｓ１５００を用い、脅威分析装置２００によるサービス（以下、「脅威分析サービス」という）を提供するプログラムである。サービス利用者ＳＵは、自分が設計している情報システムの脅威分析を行うために脅威分析サービスを利用する者である。
【０２３１】
課金情報管理処理Ｓ２６００は、脆弱性モデル情報１１００〜１３００の情報登録者ＩＲに対する登録のインセンティブである報酬（奨励金）を算出するプログラムである。情報登録者ＩＲは、脆弱性モデル情報１１００〜１３００を登録する者である。
【０２３２】
図２１に示すように、脅威分析装置２００は、その機能構成として、利用料算出部２１０と、報酬算出部２２０と、をさらに備える。
【０２３３】
利用料算出部２１０は、脅威分析を行った対象システムに対して、利用料を算出するように構成されている。
【０２３４】
報酬算出部２２０は、利用料算出部２１０により算出された利用料に基づいて、脆弱性モデル情報１１００〜１３００に対する報酬を算出するように構成されている。この報酬は、対象システムの脅威分析の結果、当該対象システムが脆弱性を含むときに、その脆弱性に対応する脆弱性モデル情報１１００〜１３００に対して算出される。
【０２３５】
脆弱性モデル情報１１００〜１３００は、一例として、米国MITRE社のCVE（Common Vulnerabilities and Exposures）のように一般から登録される脆弱性情報に基づいて、これをモデル化して作成される。情報技術の進歩と情報システムの複雑性は年々増大化の一途をたどっている。それに伴い、脆弱性が発見される分野は年々拡大し、日々新しい事例が発見される。そのため、脅威分析のサービス事業者は、自社のリソースのみを用いて、単独で脆弱性情報を収集し、モデル化することにより、脆弱性モデル情報を整備することは困難である。すなわち、一般の他の事業者から、脆弱性事例情報を報告してもらい、可能であればモデル化してもらい、脆弱性モデル情報の内容を、日々最新のものに更新する必要がある。
【０２３６】
しかし、現状では、一般の事業者には脆弱性事例情報を報告し、登録するための労力を支払う金銭等のインセンティブがないため、脆弱性モデル情報をもれなく、品質良く整備することは困難であった。
【０２３７】
本実施形態に係る脅威分析装置２００では、脅威分析サービスで利用した脆弱性モデル情報１１００〜１３００について、その情報を登録した人々に利用料の一部を情報登録への報酬としてフィードバックする仕組みを備えることを特徴とする。これにより、脆弱性モデル情報１１００〜１３００の登録者には登録のインセンティブを与え、登録と利用のサイクルがうまく回転し、脅威分析のサービス事業が継続的事業として成立することを可能とする。
【０２３８】
次に、図２２を参照しつつ、脅威分析装置２００で使用される対象システム管理テーブル２２００について説明する。図２２は、対象システム管理テーブル２２００を示す図である。
【０２３９】
図２２に示すように、対象システム管理テーブル２２００は、対象システム毎に、脅威分析の結果としてどのような脆弱性が検出されたのか、対象システムと脆弱性との関係情報を格納する。具体的には、「第１対象システム」は、サービス利用者ＳＵの「山本」が脅威分析サービスの提供を受け、サービス利用料は「１０００円」であり、脅威分析の結果、「第１対象システム」は、「第１脆弱性」と「第３脆弱性」とを含むことが示されている。
【０２４０】
なお、対象システム管理テーブル２２００の構成は、図２２に示す例に限定されるものではない。以下の対応関係が管理されていれば、脆弱性事例情報管理テーブルは、他の情報形式であってもよく、また複数の表に分けて管理されていてもよい。
第１管理情報：対象システムの識別情報と、サービス利用者ＵＲや利用日時、サービス利用料等の分析サービス管理業務一般に関連する属性情報
第２管理情報：対象システムの識別情報と、脅威分析の結果として得られた当該対象システムに内在する脆弱性の脆弱性モデル情報の識別情報及び脆弱性モデル情報の格納先への参照情報（リンク情報）を関連づけた情報
【０２４１】
後述するように、対象システム管理テーブル２２００の情報を用いて、脆弱性モデル情報１１００〜１３００の情報登録者ＩＲに支払う報酬を算出することが可能となる。
【０２４２】
次に、図２３を参照しつつ、脅威分析装置２００で使用される脆弱性事例情報管理テーブル２３００について説明する。図２３は、脆弱性事例情報管理テーブル２３００を示す図である。
【０２４３】
図２３に示すように、脆弱性事例情報管理テーブル２３００は、脅威分析に使用する脆弱性モデル情報１１００〜１３００を、当該脆弱性が発見された事例システム名称と対応付けて管理している。具体的には、事例システム名称が「第１事例システム」であるシステムの脆弱性が、登録者「田中」により登録され「第２脆弱性」と「第３脆弱性」を含んでいる。「第２脆弱性」は、対象システム管理テーブル２２００で管理する「第２事例システム」と「第３事例システム」の２つの脅威分析の際に利用され、その結果、利用料として「１００円」が格納されている。同様に、「第３脆弱性」は、「第１対象システム」と「第３対象システム」の２つの脅威分析の際に使用され、利用料として「１５０円」が格納されている。
【０２４４】
なお、脆弱性事例情報管理テーブル２３００の構成は図２３の例に限定されるものではない。脆弱性事例情報管理テーブルは、下記の対応関係が管理されていれば、他の情報形式であってもよく、また複数の表に分けて管理されていてもよい。
第１管理情報：事例システムの識別情報と、登録日時や登録者等の登録サービス管理業務一般に関連する属性情報
第２管理情報：事例システムの識別情報と、当該事例システムに内在する脆弱性の脆弱性モデル情報の識別情報及び脆弱性モデル情報の格納先への参照情報（リンク情報）を関連づけた情報
第３管理情報：事例システムの識別情報と、当該事例システムに内在する脆弱性の脆弱性モデル情報を関連付けた情報毎に、当該情報が脅威分析に利用された利用履歴情報（利用料又は利用回数等）
【０２４５】
次に、図２４を参照しつつ、脅威分析装置２００で実行される脆弱性事例情報登録処理Ｓ２４００について説明する。図２４は、脆弱性事例情報登録処理Ｓ２４００のフローチャートである。
【０２４６】
脆弱性事例情報登録処理Ｓ２４００が起動されると、図２４に示すように、実行部１８０は、情報登録者ＩＲによる脆弱性事例情報１３０の登録要求を受け付ける（Ｓ２４０１）。ステップＳ２４０１では、実行部１８０は、登録要求が来るまで待ち受ける。
【０２４７】
次に、第２取得部１６０は、情報登録者ＩＲによって入力された脆弱性事例情報１３０を登録する（Ｓ２４０２）。
【０２４８】
次に、実行部１８０は、情報登録者ＩＲによって入力された脆弱性事例情報を、図２３に示す脆弱性事例情報管理テーブル２３００に追加して登録する（Ｓ２４０３）。
【０２４９】
ステップＳ２４０３の後、実行部１８０は、脆弱性事例情報登録処理Ｓ２４００を終了する。
【０２５０】
本実施形態では、登録要求を１件受け付けると脆弱性事例情報登録処理Ｓ２４００を終了する例を示したが、これに限定されるものではない。脆弱性事例情報登録処理は、例えば、次の登録要求を待つようにループ処理構造であってもよい。
【０２５１】
次に、図２５を参照しつつ、脅威分析装置２００で実行される脅威分析サービス管理処理Ｓ２５００について説明する。図２５は、脅威分析サービス管理処理Ｓ２５００のフローチャートである。
【０２５２】
脅威分析サービス管理処理Ｓ２５００が起動されると、図２５に示すように、実行部１８０は、サービス利用者ＳＵによる脅威分析の利用要求を受け付ける（Ｓ２５０１）。ステップＳ２５０１では、実行部１８０は、利用要求が来るまで待ち受ける。
【０２５３】
次に、第１取得部１５０は、サービス利用者ＳＵによって入力された対象システム設計情報１２０を登録する（Ｓ２５０２）。
【０２５４】
次に、実行部１８０は、脅威分析処理Ｓ１４００を呼び出す（Ｓ２５０３）。これにより、対象システムに対して脅威分析が行われる。
【０２５５】
次に、実行部１８０は、脅威分析結果情報１９００を用いて図２２に示す対象システム管理テーブル２２００を更新する（Ｓ２５０４）。
【０２５６】
次に、利用料算出部２１０は、ステップＳ２５０３で脅威分析を行った対象システムに対して利用料を算出する（Ｓ２５０４）。具体的には、利用料算出部２１０は、脅威分析に要したCPU処理時間等のシステムリソース利用量を用い、所定の利用料計算式に従う利用料を算出する。
【０２５７】
次に、利用料算出部２１０は、ステップＳ２５０４で算出された利用料を、対象システム管理テーブル２２００の利用料に加算して登録する（Ｓ２５０５）。例えば、対象システム管理テーブル２２００の「第１対象システム」に、利用料として「１０００円」が登録される。
【０２５８】
サービス利用者ＳＵによる要求毎に脅威分析が行われ、脅威分析の結果及び利用料が対象システム管理テーブル２２００に登録されることになる。
【０２５９】
ステップＳ２５０５の後、実行部１８０は、脅威分析サービス管理処理Ｓ２５００を終了する。
【０２６０】
このように、脅威分析を行った対象システムに対して利用料を算出することにより、サービス利用者ＵＲに利用料を請求することで、利用料の一部を、サービス利用者ＵＲ以外の者、例えば情報登録者ＩＲに報酬として還元（フィードバック）することができる。
【０２６１】
本実施形態では、利用要求を１件受け付けると脅威分析サービス管理処理Ｓ２５００が終了する例を示したが、これに限定されるものではない。脅威分析サービス管理処理は、次の利用要求を待つようにループ処理構造であってもよい。
【０２６２】
次に、図２６を参照しつつ、脅威分析装置２００で実行される課金情報管理処理Ｓ２６００について説明する。図２６は、課金情報管理処理Ｓ２６００のフローチャートである。
【０２６３】
課金情報管理処理Ｓ２６００が起動されると、図２６に示すように、実行部１８０は、対象システム管理テーブル２２００に利用料が未請求の結果レコードがあるか否かを判定する（Ｓ２６０１）。
【０２６４】
判定の結果、対象システム管理テーブル２２００に利用料が未請求の結果レコードがある場合、実行部１８０は、未請求の結果レコードのうちの先頭の結果レコードを取り出し、サービス利用者ＳＵに利用料を請求する（Ｓ２６０２）。例えば、図２２に示す「第１対象システム」の利用料「１０００円」をサービス利用者「山本」に請求する。
【０２６５】
次に、報酬算出部２２０は、当該結果レコードの対象システムが含む各脆弱性について、脆弱性に対応する脆弱性モデル情報１１００〜１３００に対する報酬を、対象システムの利用料に基づいて算出する（Ｓ２６０３）。具体的には、報酬算出部２２０は、対象システムの利用料に所定の脆弱性利用料計算式を適用し、脆弱性モデル情報に対する報酬を算出する。
【０２６６】
例えば、図２２に示す「第１対象システム」はサービス利用料が「１０００円」であり、「第１脆弱性」と「第３脆弱性」の２つを含む。ここで、利用料の１０％を、脅威分析に使用した脆弱性モデル情報１１００〜１３００の報酬として支払う契約条件があると仮定する。この場合、「第１分析対象システム」の脅威分析による脆弱性モデル情報に対する報酬は、１０００円×１０％＝１００円となる。また、脅威分析を行った対象システムが複数の脆弱性を含む場合、算出された脆弱性モデル情報の報酬を対象システムに含まれる脆弱性情報の数で按分するものとすれば、「第１脆弱性」の脆弱性モデル情報への報酬として５０円が、「第３脆弱性」の脆弱性モデル情報への報酬として５０円が、それぞれ算出されることになる。
【０２６７】
このように、脅威分析の結果、対象システムが脆弱性を含むときに、当該脆弱性に対応する脆弱性モデル情報１１００〜１３００に対する報酬を、対象システムの利用料に基づいて算出することにより、脆弱性モデル情報１１００〜１３００の情報登録者ＩＲに登録のインセンティブを与えることができる。従って、登録と利用のサイクルがうまく回転し、脅威分析のサービス事業が継続的事業として成立することできる。
【０２６８】
次に、報酬算出部２２０は、図２３に示す脆弱性事例情報管理テーブル２３００において、ステップＳ２６０３で報酬が算出された脆弱性を含む全ての脆弱性事例レコードを検索する。（Ｓ２６０４）。
【０２６９】
例えば、図２３に示す脆弱性事例情報管理テーブル２３００を検索すると、「第１脆弱性」を含む事例システムの名称は、「第２事例システム」と「第３事例システム」の２件である。また、「第３脆弱性」を含む事例システムの名称は、「第１事例システム」の１件のみである。
【０２７０】
次に、報酬算出部２２０は、ステップＳ２６０３で算出された報酬を当該脆弱性事例レコードの該当する脆弱性の報酬に加算して更新する（Ｓ２６０５）。脆弱性事例レコードが複数ある場合、報酬算出部２２０は、算出された報酬をステップＳ２６０４で検索された脆弱性事例レコードの数で按分し、按分した報酬を当該脆弱性事例レコードの該当する脆弱性の報酬に加算して更新する。
【０２７１】
例えば、ステップＳ２６０３で算出された「第１脆弱性」の脆弱性モデル情報に対する報酬の５０円を、ステップＳ２６０４で検索された事例システムの名称である「第２事例システム」と「第３事例システム」の２件のレコードで按分し、「第２事例システム」と「第３事例システム」の各レコードにおける「第１脆弱性」の「報酬」の欄に、５０円÷２＝２５円を加算する。また、「第３脆弱性」の脆弱性モデル情報に対する報酬の５０円を、「第３脆弱性」を登録した事例システムの名称である「第１事例システム」のレコードの「第３脆弱性」の「報酬」の欄に加算する。
【０２７２】
対象システム管理テーブル２２００及び脆弱性事例情報管理テーブル２３００は、「第１脆弱性」、「第２脆弱性」、「第３脆弱性」の脆弱性識別情報で結び付けられているので、対象システム管理テーブル２２００で管理する利用料の一部を、脆弱性事例情報管理テーブル２３００で管理する脆弱性モデル情報の報酬として配分することが可能となる。
【０２７３】
なお、脆弱性事例情報の情報登録者ＩＲに対するインセンティブの配賦方法は、前述した例に限定されるものではない。別方法として、例えば、脆弱性事例情報管理テーブル２３００の各脆弱性情報について、該脆弱性の利用単価をあらかじめ設定して格納しておく方法も考えられる。この場合、対象システム管理テーブル２２００のサービス利用料の算出時に、対象システムが含む脆弱性識別情報に応じて、その脆弱性識別情報に対応する脆弱性の利用単価を脆弱性事例情報管理テーブル２３００から検索し、該利用単価を積み上げることで、分析サービス利用料に対して脆弱性データ利用料を反映させることとなる。
【０２７４】
ステップＳ２６０５の後、実行部１８０は、対象システム管理テーブル２２００に、利用料が未請求の結果レコードがなくなるまで、ステップＳ２６０１〜ステップＳ２６０５の各ステップを繰り返す。
【０２７５】
対象システム管理テーブル２２００に利用料が未請求の結果レコードがなくなった場合、実行部１８０は、脆弱性事例情報管理テーブル２３００に登録された各事例システムについて、当該事例システムに含まれる全ての脆弱性の報酬を合計して合計額を算出し、該算出した報酬合計額を各情報登録者ＩＲに支払う（Ｓ２６０６）。
ステップＳ２６０６の後、実行部１８０は、課金情報管理処理Ｓ２６００を終了する。
【０２７６】
このように、本実施形態の脅威分析装置２００、脅威分析方法、及び脅威分析プログラムによれば、脅威分析を行った対象システムに対して利用料が算出される。これにより、サービス利用者に利用料を請求することで、利用料の一部をサービス利用者以外の者、例えば情報登録者に報酬として還元（フィードバック）することができる。
【０２７７】
また、本実施形態の脅威分析装置２００、脅威分析方法、及び脅威分析プログラムによれば、脅威分析の結果、対象システムが脆弱性を含むときに、当該脆弱性に対応する脆弱性モデル情報１１００〜１３００に対する報酬が、対象システムの利用料に基づいて算出される。これにより、脆弱性モデル情報１１００〜１３００の情報登録者ＩＲに登録のインセンティブを与えることができる。従って、登録と利用のサイクルがうまく回転し、脅威分析のサービス事業が継続的事業として成立することできる。
【０２７８】
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。各実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。
【符号の説明】
【０２７９】
１００…脅威分析装置、１０１…バス、１０２…中央情報処理装置（ＣＰＵ）、１０３…入出力プロセッサ（ＩＯＰ）、１０４…表示装置、１０５…入力装置、１０６…二次記憶装置、１０７…主記憶装置、１２０…対象システム設計情報、１３０…脆弱性事例情報、１４０…システム仕様情報、１５０…第１取得部、１６０…第２取得部、１７０…更新部、１８０…実行部、２００…脅威分析装置、２１０…利用料算出部、２２０…報酬算出部、４００…機能ブロック定義情報、４１０…車両電子制御ユニット（ＥＣＵ）、４１１…バス、４１４…主記憶装置、４１５…ハーネス（通信アダプタ）、４１６…ＣＡＮＢｕｓ通信アダプタ、４１７…車両電子制御機能アプリケーション、４２０…車両通信ゲートウェイ（ＧＷ）、４２８…車両通信制御機能アプリケーション、４２９ｂ…情報表示機能アプリケーション、４３０…コンソールディスプレイ（ＣＤ）、４３８…ブラウザ（Ｗｅｂｋｉｔ）、４３９ａ…車両情報表示機能アプリケーション、４３９ｂ…Ｗｅｂ情報表示機能アプリケーション、４４０…Ｗｅｂサーバ（ＷＳ）、４４８…Ｗｅｂサーバ（ｈｔｔｐｄ）、４４９…Ｗｅｂ情報サーバ機能アプリケーション、４５０…ＣＡＮＢｕｓ、４５１…Ｅｔｈｅｒｎｅｔ、５００〜９００…機能アプリケーションモデル情報、１０００…システム構成要素関係情報、１１００〜１３００…脆弱性モデル情報、Ｓ１４００…脅威分析処理、Ｓ１５００…脆弱アプリケーション検索処理、１９００…脅威分析結果情報、１９５０…攻撃経路ツリー、１９６１…Ｗｅｂ情報表示機能アプリケーション、１９６２…Ｗｅｂ情報サーバ機能アプリケーション、１９６３…通信経路、１９６４…通信経路、２２００…対象システム管理テーブル、２３００…脆弱性事例情報管理テーブル、Ｓ２４００…脆弱性事例情報登録処理、Ｓ２５００…脅威分析サービス管理処理、Ｓ２６００…課金情報管理処理、ＩＲ…情報登録者、ＳＵ…サービス利用者、Ｕ…ユーザ。
【図１】
2019093059.tif 000003
【図２】
2019093059.tif 000004
【図３】
2019093059.tif 000005
【図４】
2019093059.tif 000006
【図５】
2019093059.tif 000007
【図６】
2019093059.tif 000008
【図７】
2019093059.tif 000009
【図８】
2019093059.tif 000010
【図９】
2019093059.tif 000011
【図１０】
2019093059.tif 000012
【図１１】
2019093059.tif 000013
【図１２】
2019093059.tif 000014
【図１３】
2019093059.tif 000015
【図１４】
2019093059.tif 000016
【図１５】
2019093059.tif 000017
【図１６】
2019093059.tif 000018
【図１７】
2019093059.tif 000019
【図１８】
2019093059.tif 000020
【図１９】
2019093059.tif 000021
【図２０】
2019093059.tif 000022
【図２１】
2019093059.tif 000023
【図２２】
2019093059.tif 000024
【図２３】
2019093059.tif 000025
【図２４】
2019093059.tif 000026
【図２５】
2019093059.tif 000027
【図２６】
2019093059.tif 000028
【国際調査報告】
2019093059.tif 000029
2019093059.tif 000030