実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
まず、第1実施形態について説明する。
図1は、第1実施形態に係るサプライチェーンの構成図である。
本実施形態に係る製品を製造するためのサプライチェーンは、製造メーカ10(101~10k)と、一次下請メーカ20(201~20n)と、二次下請メーカ30(301~30m)とを含む。なお、図示を省略するが、二次下請メーカ301~30mの下位の階層に、三次下請メーカや四次下請メーカがあってもよい。
製造メーカ101は、製品11を、製造メーカ102は、製品12を、製造メーカ10kは製品13を開発し、製造している。また、一次下請メーカ201は部品(一次下請メーカの製品)21を、一次下請メーカ202は部品22を、一次下請メーカ20nは部品23を開発し、製造している。また、二次下請メーカ301は部品31を、二次下請メーカ302は部品(二次下請メーカの製品)32を、二次下請メーカ30mは部品33を開発し、製造している。例えば、製品11には、部品21と部品22と部品23とが利用され、また、部品21には、部品31と部品32と部品33とが利用されている。製品12や製品13についても同様である。このように、製造メーカ10の製品には、複数の下位の製品(部品)が利用されている。ここで、或る製品に利用されている製品(部品)を、或る製品の下位の製品(下位製品)といい、また、或る製品(部品)を組み込んでいる製品を上位の製品(上位製品)という。また、或る製品の上位製品を製造しているメーカを、或る製品のメーカに対する上位メーカといい、或る製品の下位製品を製造しているメーカを或る製品のメーカに対する下位メーカ(下請メーカ)という。
なお、図1においては、製造メーカ10の製品には、一次下請メーカ20の製品(部品)が利用され、一次下請メーカ20の製品には、二次下請メーカ30の製品(部品)が利用されるように、メーカの階層が固定したサプライチェーンとなっているが、サプライチェーンはこれに限られず、例えば、或る製品については、下位の製品を製造しているメーカが、他の製品については、上位の製品を製造するメーカであるといったように、製品によって、メーカの上下関係(階層関係)が変わるサプライチェーンであってもよい。
図2は、第1実施形態に係る情報収集管理システムの全体構成図である。
情報収集管理システム1は、製造メーカ10(101~102)の計算機100(1001~1002)と、一次下請メーカ20(201~202)の計算機200(2001~2002)と、二次下請メーカ30(301~302)の計算機300(3001~3002)と、三次下請メーカ40(401)の計算機400(4001)と、を備える。なお、特定のメーカや、特定の計算機に限定しなくてもよい場合等においては例えば、製造メーカ10、計算機100のように添え字がない符号で示す場合がある。計算機100と、計算機200と、計算機300と、計算機400とは、ネットワーク50を介して接続されている。なお、図示を省略するが、情報収集管理システム1には、さらに多くの製造メーカ、一次下請メーカ、二次下請メーカ、三次下請メーカやさらに下位の下請メーカの計算機があってもよい。ここで、計算機100が、最上位計算機であり、或る製品について上位製品を製造する上位メーカと、下位製品を製造する下位メーカとが存在するメーカの計算機が中間計算機である。例えば、二次下請メーカがある場合の、一次下請メーカの計算機200は中間計算機の一例である。また、製造メーカ10の製品における下位の製品を製造するメーカの計算機200,300,400等が、計算機100に対する下位計算機である。また、一次下請メーカの計算機200は、二次下請メーカの計算機300の上位計算機である一方、計算機300は、計算機200の下位計算機である。
製造メーカ101の計算機1001は、パケット通信部101と、問合クエリ生成部102と、検証部の一例としての返答データ検証部103と、検索判断部110と、通信パケット格納部104と、脆弱性情報格納部105と、製品情報格納部106と、問合規約格納部107と、メーカ連絡先情報格納部108と、証明書格納部の一例としての認証情報格納部109と、を含む。なお、他の製造メーカ10の計算機100も計算機1001と同様な構成である。
パケット通信部101は、ネットワーク50を介して他の計算機(100、200、300、400)と通信を行う。問合クエリ生成部102は、一次下請メーカ20の計算機200へ問い合わせるための問合クエリを生成する。返答データ検証部103は、下請メーカ20の計算機200からの返答を検証する。検索判断部110は、製品情報を検索し、脆弱性情報が、自社製品に関連する情報であるかを判断する。パケット通信部101は、最上位返答受信部の一例である。
通信パケット格納部104は、パケット通信部101が取得した通信パケットを格納する。脆弱性情報格納部105は、パケット通信部101が取得した脆弱性情報を格納する。ここで、脆弱性情報は、例えば、脆弱性情報を識別する情報(脆弱性情報ID)と、脆弱性の概要と、脆弱性のリスク度と、脆弱性の対象となる製品名称、脆弱性対策が記述されているWebページのURL等を含む。
製品情報格納部106は、計算機100が属する製造メーカ10が開発している製品についての各種情報(製品情報)を格納する。問合規約格納部107は、下位の製品(下位製品)を製造するメーカ(ここでは、一次下請メーカ20)の計算機への問合規約を格納する。メーカ連絡先情報格納部108は、下位の製品を製造するメーカ(ここでは、一次下請メーカ20)への連絡先情報を格納する。認証情報格納部109は、製造メーカ10と下請メーカとの認証情報や、製造メーカ10の秘密鍵や、下請メーカの公開鍵証明書を格納する。
一次下請メーカ201の計算機2001は、パケット通信部201と、問合クエリ検証部202と、問合クエリ生成部203と、返答データ生成部204と、情報検索部の一例としての検索判断部212と、通信パケット格納部205と、脆弱性情報格納部206と、製品情報格納部207と、問合規約格納部208と、返答規約格納部209と、連絡先情報格納部の一例としてのメーカ連絡先情報格納部210と、認証情報格納部211とを含む。なお、他の一次下請メーカ20の計算機200も計算機2001と同様な構成である。
パケット通信部201は、ネットワーク50を介して他の計算機(100、200、300、400)と通信を行う。問合クエリ検証部202は、上位製品のメーカ(ここでは、製造メーカ10)からの問合クエリを検証する。問合クエリ生成部203は、二次下請メーカ30の計算機300へ問い合わせるための問合クエリを生成する。返答データ生成部204は、上位製品のメーカへの返答データを作成する。検索判断部212は、製品情報を検索し、脆弱性情報が、自社製品に関連する情報であるかを判断する。ここで、パケット通信部201及び問合クエリ生成部203が問合送信部に対応し、パケット通信部201が返答受信部に対応し、パケット通信部201及び返答データ生成部204が返答送信部に対応する。
通信パケット格納部205は、パケット通信部201が取得した通信パケットを格納する。脆弱性情報格納部206は、パケット通信部201が取得した脆弱性情報を格納する。ここで、脆弱性情報は、例えば、脆弱性情報を識別する情報(脆弱性情報ID)と、脆弱性の概要と、脆弱性のリスク度と、脆弱性の対象となる製品名称、脆弱性対策が記述されているWebページのURL等を含む。
製品情報格納部207は、計算機200が属する一次下請メーカ20が開発している製品(中間製品の一例)についての各種情報(製品情報)を格納する。問合規約格納部208は、下位の製品(下位製品)を製造するメーカ(ここでは、二次下請メーカ30)の計算機への問合規約を格納する。返答規約格納部209は、上位の製品(上位製品)を製造するメーカ(ここでは、製造メーカ10)の計算機への返答規約を格納する。メーカ連絡先情報格納部210は、上位の製品を製造するメーカ(ここでは、製品メーカ10)及び下位の製品を製造するメーカ(ここでは、二次下請メーカ30)への連絡先情報を格納する。認証情報格納部211は、製造メーカ10、一次下請メーカ20、及び二次下請メーカの認証情報や、一次下請メーカ201の秘密鍵を格納する。
二次下請メーカ301の計算機3001は、パケット通信部301と、問合クエリ検証部302と、問合クエリ生成部303と、返答データ生成部304と、情報検索部の一例としての検索判断部312と、通信パケット格納部305と、脆弱性情報格納部306と、製品情報格納部307と、問合規約格納部308と、返答規約格納部309と、連絡先情報格納部の一例としてのメーカ連絡先情報格納部310と、秘密鍵格納部の一例としての認証情報格納部311と、を含む。なお、他の二次下請メーカ30の計算機300も計算機3001と同様な構成である。また、三次下請メーカ40の計算機400も計算機3001と同様な構成である。
パケット通信部301は、ネットワーク50を介して他の計算機(100、200、300、400)と通信を行う。問合クエリ検証部302は、上位製品のメーカ(ここでは、一次下請メーカ20)からの問合クエリを検証する。問合クエリ生成部303は、3次下請メーカ40の計算機400へ問い合わせるための問合クエリを生成する。返答データ生成部304は、上位製品のメーカへの返答データを作成する。検索判断部312は、製品情報を検索し、脆弱性情報が、自社製品に関連する情報であるかを判断する。ここで、パケット通信部301及び問合クエリ生成部303が問合送信部に対応し、パケット通信部301及びが返答受信部に対応し、パケット通信部301及び返答データ生成部304が返答送信部に対応する。
通信パケット格納部305は、パケット通信部301が取得した通信パケットを格納する。脆弱性情報格納部306は、パケット通信部301が取得した脆弱性情報を格納する。ここで、脆弱性情報は、例えば、脆弱性情報を識別する情報(脆弱性情報ID)と、脆弱性の概要と、脆弱性のリスク度と、脆弱性の対象となる製品名称、脆弱性対策が記述されているWebページのURL等を含む。
製品情報格納部307は、計算機300が属する二次下請メーカ30が開発している製品(自社製品)についての各種情報(製品情報)を格納する。問合規約格納部308は、下位の製品を製造するメーカ(ここでは、三次下請メーカ40)の計算機への問合規約を格納する。返答規約格納部309は、上位の製品を製造するメーカ(ここでは、一次下請メーカ20)の計算機への返答規約を格納する。メーカ連絡先情報格納部310は、上位の製品を製造するメーカ(ここでは、一次下請メーカ20)及び下位の製品を製造するメーカ(ここでは、三次下請メーカ40)への連絡先情報を格納する。認証情報格納部311は、製造メーカ10、一次下請メーカ20、及び二次下請メーカ30の認証情報や、二次下請メーカ301の秘密鍵を格納する。
次に、製造メーカ10の計算機100の製品情報格納部106に格納される製品情報A901について説明する。
図3は、第1実施形態に係る製造メーカの計算機における製品情報の構成例を示す図である。
製造メーカ10の製品情報A901は、製造メーカ10で製造している製品(自社製品)毎に対応するエントリを格納する。製品情報A901のエントリは、製品識別情報A902と、製品名称A903と、バージョン情報A904と、作成日A905と、利用製品識別情報A906と、利用製品メーカ識別情報A907とのフィールドを含む。
製品識別情報A902には、エントリに対応する製品を識別する情報(製品識別情報)が格納される。製品名称A903には、エントリに対応する製品の名称が格納される。バージョン情報A904には、エントリに対応する製品のバージョンの情報(バージョン情報)が格納される。作成日A905には、エントリに対応する製品の作成日が格納される。利用製品識別情報A906には、自社製品で利用している一次下請メーカ20の製品(利用製品)の製品識別情報が格納される。利用製品メーカ識別情報A907には、エントリに対応する利用製品を製造している一次下請メーカ20の識別情報(メーカ識別情報)が格納される。
製品情報A901の構成要素として、SWID(Software Identification)やSPDX(Software Package Data Exchange)で規定されているコンテンツを想定しているが、上記した情報に限定されるものではない。SWIDやSPDXのコンテンツには、製品識別情報、製品名称、バージョン情報、作成日の他に、ハッシュ値、ライセンス情報、作成者や作成組織、更新日、更新個所、種類などがあるので、これら情報を製品情報A901の構成要素として含めてもよい。また、製品情報A901には、SWIDやSPDXで規定されているすべてのコンテンツを含めなくてもよく、一部のコンテンツのみを含めるようにしてもよい。また、製品情報A901の構成要素の順序は、上記に限定されるものではない。
次に、下請メーカ(一次下請メーカ20、二次下請メーカ30等)の計算機(200、300)の製品情報格納部(207、307)に格納される製品情報A1001について説明する。
図4は、第1実施形態に係る下請メーカの計算機における製品情報の構成例を示す図である。
下請メーカの製品情報A1001は、下請メーカで製造している製品(自社製品)毎に対応するエントリを格納する。製品情報A1001のエントリは、製品識別情報A1002と、製品名称A1003と、バージョン情報A1004と、作成日A1005と、利用製品識別情報A1006と、利用メーカ識別情報A1007と、組込先製品識別情報A1008と、組込先メーカ識別情報A1009と、フラグA1010とを含む。
製品識別情報A1002には、エントリに対応する下請メーカの製品を識別する製品識別情報が格納される。製品名称A1003には、エントリに対応する製品の名称が格納される。バージョン情報A1004には、エントリに対応する製品のバージョンの情報(バージョン情報)が格納される。作成日A1005には、エントリに対応する製品の作成日が格納される。利用製品識別情報A1006には、自社製品で利用している一段下位の下請メーカの製品(利用製品)の製品識別情報が格納される。利用製品メーカ識別情報A1007には、エントリに対応する利用製品を製造している下請メーカの識別情報(メーカ識別情報)が格納される。組込先製品識別情報A1008には、エントリに対応する製品が利用されている(組み込んでいる)一段上位のメーカ(下請メーカ又は製造メーカ)の製品(組込先製品)の製品識別情報が格納される。組込先メーカ識別情報A1009には、エントリに対応する組込先製品を利用している一段上位のメーカのメーカ識別情報が格納されている。フラグA1010には、エントリに対応する製品情報のそれぞれの構成要素(各フィールドの情報)についての他社への公開可否を記すフラグが格納される。
製品情報A1001の構成要素として、SWIDやSPDXで規定されているコンテンツを想定しているが、上記した情報に限定されるものではない。SWIDやSPDXのコンテンツには、製品識別情報、製品名称、バージョン情報、作成日の他に、ハッシュ値、ライセンス情報、作成者や作成組織、更新日、更新個所、種類などがあるので、これら情報を製品情報A1001の構成要素として含めてもよい。また、製品情報A1001には、SWIDやSPDXで規定されているすべてのコンテンツを含めなくてもよく、一部のコンテンツのみを含めるようにしてもよい。また、フラグA1010のフラグは、例えばメーカの情報開示基準などに従って、製品情報A1001の各構成要素の内、他社へ開示してよいもの、あるいは他社へ開示できないものを判断し、その判断結果に応じて、作成された他社へ開示できる構成要素のリスト、あるいは他社へ開示できない構成要素のリストを想定しているが、各構成要素について他社への開示可否を記す情報であればよく、上記方法に限定されるものではない、また、製品情報A1001の構成要素の順序は、上記に限定されるものではない。
次に、製造メーカ10の計算機100、及び下請メーカ(一次下請メーカ20、二次下請メーカ30等)の計算機(200、300)のメーカ連絡先情報格納部(108、210、310)に格納される連絡先情報A1101について説明する。
図5は、第1実施形態に係る連絡先情報の構成例を示す図である。
連絡先情報A1101は、各メーカに対応するエントリを格納する。連絡先情報A1101のエントリは、メーカ識別情報A1102と、メーカレイヤA1103と、メーカ名A1104と、アドレスA1105とのフィールドを含む。
メーカ識別情報A1102には、エントリに対応するメーカの識別情報(メーカ識別情報)が格納される。メーカレイヤA1103には、エントリに対応するメーカが、この連絡先情報A1101を格納しているメーカの一段上位のメーカであるか、一段下位のメーカであるかを識別するためのレイヤ情報(メーカレイヤ情報)が格納される。メーカ名A1104には、エントリに対応するメーカのメーカ名が格納される。アドレスA1105には、エントリに対応するメーカへ連絡するためのアドレスが格納されている。アドレスとしては、例えば、メーカの計算機のIPアドレスを想定しているが、MACアドレス、メールアドレスなどの他のアドレスでもよい。また、連絡先情報A1101の構成要素及びその構成要素の順序は上記に限定されるものではない。
次に、上位のメーカの計算機から、下位のメーカの計算機に対しての問合に利用する問合クエリについて説明する。
図6は、第1実施形態に係る問合クエリの構成例を示す図である。
問合クエリA1201(例えば、後述する問合クエリA301、A303、A306等)は、問合先メーカ識別情報A1202と、パケットデータA1203とを含む。問合先メーカ識別情報A1202には、問合クエリの送信先であるメーカのメーカ識別情報が格納される。パケットデータA1203には、送信元機器を示す送信元識別情報や通信パケットのサイズの他に、脆弱性識別情報や、問合の対象となる製品の製品識別情報を含む。問合クエリA1201の構成要素は、上記に限定されるものではない。また、問合クエリA1201の構成要素の順序は上記に限定されるものではない。
次に、下位のメーカの計算機から、上位のメーカの計算機への返答に利用する返答データについて説明する。
図7は、第1実施形態に係る返答データの構成例を示す図である。
返答データA1301(例えば、後述する返答データA307,A308,A309)は、返答先メーカ識別情報A1302と、パケットデータA1303とを含む。返答先メーカ識別情報A1302には、返答データの送信先であるメーカのメーカ識別情報が格納される。パケットデータA1303には、送信元機器を示す送信元機器識別情報や通信パケットのサイズの他に、脆弱性の影響のある、なしの情報や、送信元の製品の製品識別情報(自社製品ID)、送信元の製品が利用している一段下位のメーカのメーカ識別情報、送信元の製品が利用されている一段上位のメーカ(下請メーカ又は製造メーカ)のメーカ識別情報、製品が利用している一段下位のメーカの製品の製品識別情報、製品が利用されている一段上位のメーカの製品の製品識別情報、脆弱性識別情報、電子署名データ等が含まれる。なお、返答データA1301の構成要素は、上記に限定されるものではない。また、返答データA1301の構成要素の順序は上記に限定されるものではない。
次に、本実施形態に係る情報収集管理システム1の処理動作について説明する。
図8は、第1実施形態に係る製品構成情報収集処理のシーケンス図である。
まず、製造メーカ101の計算機1001は、脆弱性情報を取得する(S301)。例えば、脆弱性情報には、ソフトウェアの欠陥を悪意のある攻撃者が悪用した場合に引き起こされる、情報漏えい、改ざん、システムの誤動作などのセキュリティインシデントの概要、脆弱性の影響を受ける製品名称、脆弱性の深刻度、対策方法などが含まれている。この脆弱性情報は、例えば、米国立標準技術研究所(NIST)が管理する脆弱性情報データベース(NVD)や日本の情報処理推進機構(IPA)が管理する脆弱性情報データベース(JVN)などから入手できるがこれらに限定されるものではない。
次に、計算機1001の検索判断部110は、脆弱性情報に含まれる製品名称を検索キーとして、製品情報格納部106の製品情報A901(図3参照)を検索する(S302)。この結果、製品情報格納部106に脆弱性情報に含まれる製品名称が含まれている、すなわち、脆弱性情報が自社製品に関連する場合には、計算機1001はステップS303以降の処理を実行する一方、脆弱性情報が自社製品に関連しない場合には、計算機1001はステップS303以降の処理を実行しない。
次に、計算機1001の問合クエリ生成部102は、問合クエリA301(図6参照)を作成し、パケット通信部101を介して問合クエリA301を一次下請メーカ201へ送信する(S303)。
一次下請メーカ201の計算機2001は、問合クエリA301を受信する。ここで、問合クエリA301を受信したことは、一次下請メーカの製品に関する所定の情報を上位の計算機に送信する必要があることを意味している。そこで、検索判断部212は、問合クエリA301に含まれる製品識別情報をキーとして、製品情報格納部207の製品情報A1001を検索する(S304)。次に、検索判断部212は、問合クエリ(A301)の脆弱性情報に含まれる製品識別情報に該当する製品(該当製品)があるか否かを判断する(S305)。この結果、該当製品があると判断した場合(S305:Y)には、返答データ生成部204は、該当製品があることを示す返答データを作成し(S306)、処理をステップS307に進める。一方、該当製品がないと判断した場合(S305:N)には、返答データ生成部204は、処理をステップS307に進める。
ステップS307では、検索判断部212は、自社の該当製品に組み込まれている下位の製品があるか否かを判断する。この結果、下位の製品がないと判断した場合(S307:N)は、検索判断部212は、処理をステップS316に進める。一方、下位の製品があると判断した場合(S307:Y)には、問合クエリ生成部203は、脆弱性情報を含む問合クエリA303を生成して、下位の製品を製造する二次下請メーカ301の計算機3001に対して送信し(S308)、処理をステップS316に進める。
二次下請メーカ301の計算機3001は、問合クエリA303を受信し、検索判断部312は、問合クエリA303に含まれる製品識別情報をキーとして、製品情報格納部307の製品情報A1001を検索する(S309)。次に、検索判断部312は、問合クエリA303の脆弱性情報に含まれる製品識別情報に該当製品があるか否かを判断する(S310)。この結果、該当製品があると判断した場合(S310:Y)には、返答データ生成部304は、該当製品があることを示す返答データを作成し(S311)、処理をステップS313に進める。一方、該当する製品がないと判断した場合(S310:N)には、返答データ生成部304は、処理をステップS313に進める。
ステップS313では、検索判断部312は、自社の該当製品に組み込まれている下位の製品があるか否かを判断する。この結果、下位の製品がないと判断した場合(S313:N)は、検索判断部312は、処理をステップS315に進める。一方、下位の製品があると判断した場合(S313:Y)には、問合クエリ生成部303は、脆弱性情報を含む問合クエリA306を生成して、下位の製品を製造する三次下請メーカ40の計算機400に対して送信し(S314)、処理をステップS315に進める。なお、三次下請メーカ40の計算機400は、二次下請メーカ30の計算機300と同様な処理を行う。
ステップS315では、返答データ生成部304は、返答データA308を作成し、パケット通信部301を介して、一次下請メーカ201の計算機2001に返答データA308を送信する。ここで、返答データ生成部304は、問合クエリA306を送信していない場合であって、ステップS310で該当製品がない場合には、該当製品がないとの返答データを作成する一方、問合クエリA306を送信している場合には、問合わせクエリA306に対する返答データA307の受信を待って、返答データA307の内容を加えた返答データA308を作成する。
ステップS316では、一次下請メーカ201の計算機2001の返答データ生成部204は、返答データA309を作成し、パケット通信部201を介して、製造メーカ101の計算機1001に返答データA309を送信する。ここで、返答データ生成部204は、問合クエリA303を送信していない場合であって、ステップS307で該当製品がない場合には、該当製品がないとの返答データを作成する一方、問合クエリA303を送信している場合には、返答データA308の受信を待って、返答データA308の内容を含めた返答データA309を作成する。
製造メーカ101の計算機1001は、返答データA309を受信し、返答データ検証部103は、返答データA309の検証を行う(S317)。これにより、製造メーカ10の計算機100においては、自社の製品に組み込まれた、下位の製品についての製品情報を適切に収集することができる。
次に、図8のステップS302で、製造メーカ101の計算機1001により実行される製品情報検索処理について説明する。
図9は、第1実施形態に係る製造メーカでの製品情報検索処理のフローチャートの一例である。
製品情報検索処理を開始すると、製造メーカ101の計算機1001の検索判断部110は、脆弱性情報格納部105に格納された脆弱性情報から、脆弱性の影響を受ける製品の識別情報(被影響製品識別情報、例えば、製品名称、製品識別情報(製品ID)等)を取得する(S402)。次に、検索判断部110は、取得した被影響製品識別情報を検索キーとして、製品情報格納部106に格納された製品情報A901を検索する(S403)。ここで、被影響製品識別情報としては。製品識別情報(製品ID)を利用することを想定しているが、製品のメーカ名、製品名、バージョン番号などのいずれか一つ、または複数の組合せを用いてもよい。また、製品IDとしては、CPE(Common Platform Enumeration)、SPDX、SWIDなどを用いてもよいが、これらに限定されるものではない。
次に、検索判断部110は、ステップS403の検索の結果、被影響製品識別情報に該当する製品(該当製品)が存在するか否かを判断する(S404)。この結果、該当製品が存在しないと判断した場合(S404:N)には、検索判断部110は、製品情報検索処理を終了する。一方、該当する製品が存在すると判断した場合(S404:Y)には、検索判断部110は、該当製品の製品識別情報を、該当製品識別情報として取得し(S405)、処理を終了する。ここで、ステップS405で取得する製品識別情報としては、製造メーカ101の製品の製品識別情報を想定しているが、一次下請メーカ20から入手や購入などした製品の製品識別情報としてもよい。
次に、図8のステップS303で、製造メーカ101の計算機1001により実行される問合クエリ作成処理について説明する。
図10は、第1実施形態に係る問合クエリ作成処理のフローチャートの一例である。なお、図10は、製造メーカ101の計算機1001が実行する問合クエリ作成処理を例として説明するが、下請メーカ(一次下請メーカ20、二次下請メーカ30等)でのステップS308、S314における問合クエリ作成処理も同様な処理である。
問合クエリ作成処理を開始すると、問合クエリ生成部102は、脆弱性情報格納部105に格納された脆弱性情報から脆弱性識別情報を取得する(S502)。ここで、脆弱性識別情報は、例えば、脆弱性情報データベース(NVD)で利用されている共通脆弱性識別子(CVE)や、脆弱性情報データベース(JVN)で利用されているJVNDBIDなどを想定しているが、これらに限定されるものではない。
次に、問合クエリ生成部102は、製品情報検索処理S302の結果、すなわち、該当製品識別情報及び利用製品メーカ識別情報を取得する(S503)。ここで、利用製品メーカ識別情報としては、該当製品で利用している製品(部品:利用製品)を製造している一次下請メーカ20のメーカ識別情報を想定しているが、一次下請メーカ名などでもよく、これらに限定されるものではない。
次に、問合クエリ生成部102は、利用製品メーカ識別情報を用いて、メーカ連絡先情報格納部108の連絡先情報A1101を検索し、利用製品メーカ識別情報に対応する一次下請メーカ20の連絡先の情報を取得する(S504)。ここで、取得する連絡先の情報としては、一次下請メーカ20のIPアドレスやMACアドレスを想定しているが、メールアドレスや電話番号などでもよく、これらに限定されるものではない。
次に、問合クエリ生成部102は、問合規約格納部107から、問合規約を取得する(S505)。ここで、他の計算機への問合には、コンピュータプログラムの機能を外部の他のプログラムから呼び出して利用する手順やデータ形式であるAPI(Application Programming Interface)を利用することを想定しており、問合規約は、例えば、そのAPIを利用するための規約である。
次に、問合クエリ生成部102は、問合規約に基づいて、問合クエリを作成し(S506)、問合クエリ作成処理を終了する。ここで、問合クエリは、脆弱性情報識別情報と該当製品識別情報とが含められて、一次下請メーカ20の連絡先に対して送信されることを想定しているが、これらに限定されるのものではない。例えば、下位のメーカの計算機側に、問合クエリを受け付けるAPIを用意しておき、このAPIに対して脆弱性情報識別情報と該当製品識別情報とを送るようにしてもよい。なお、作成された問合クエリは、パケット通信部101により下位のメーカの計算機200に送信される。
次に、図8のステップS304、S309等で、下請メーカの計算機により実行される製品情報検索処理について説明する。
図11は、第1実施形態に係る下請メーカでの製品情報検索処理のフローチャートの一例である。なお、図11は、下請メーカ201の計算機2001が実行する製品情報検索処理を例として説明するが、他の下請メーカ(一次下請メーカ20、二次下請メーカ30等)でのステップS304、S309等における製品情報検索処理も同様な処理である。
製品情報検索処理を開始すると、下請メーカ201の計算機2001の問合クエリ検証部202は、製造メーカ101の計算機1001から受信した問合クエリを検証する(S602)。ここで、問合クエリの検証内容としては、問合クエリの通信パケットに含まれる送信元のIPアドレスやMACアドレスが、送信元の製造メーカのものと一致するか検証することを想定しているが、製造メーカの電子署名や製造メーカのメーカ識別情報などを使用して検証してもよく、これらに限定されるものではない。
次に、問合クエリ検証部202は、検証で使用した問合クエリの認証情報が、製造メーカの認証情報と一致するか否かを判断する(S603)。この結果、認証情報が製造メーカの認証情報と一致しないと判断した場合(S603:N)は、検索判断部212は、製品情報検索処理を終了する。一方、認証情報が製造メーカの認証情報と一致すると判断した場合(S603:Y)には、問合クエリから、脆弱性の影響を受ける製品の識別情報(被影響製品識別情報)を取得する(S604)。
次に、検索判断部212は、取得した被影響製品識別情報を検索キーとして、製品情報格納部207に格納された製品情報A1001を検索する(S605)。
次に、検索判断部212は、ステップS605の検索の結果、被影響製品識別情報に該当する製品(該当製品)が存在するか否かを判断する(S606)。この結果、該当製品が存在しないと判断した場合(S606:N)には、検索判断部212は、製品情報検索処理を終了する。一方、該当製品が存在すると判断した場合(S606:Y)には、検索判断部212は、製品情報A1001を参照し、該当製品が、二次下請メーカ30から入手や購入などした製品(部品)を利用しているか否かを判断する(S607)。
この結果、該当製品が二次下請メーカ30の製品を利用していないと判断した場合(S607:N)には、検索判断部212は、該当製品が脆弱性の影響を受けるか否かの調査を行い、調査結果が脆弱性の影響を受けるとの結果である場合には、影響を受ける製品があることを示す「影響あり」、又は該当製品の識別情報を該当製品識別情報として取得し、(S608)、処理を終了する。なお、調査結果が脆弱性の影響を受けないとの結果である場合には、該当製品識別情報はないこととなる。なお、検索判断部212は、該当製品識別情報として、調査した結果、影響がある場合は、「影響あり」、または、該当製品の識別情報としているが、該当製品識別情報は、これに限られず、他の組み合わせでもよい。
一方、該当製品が二次下請メーカ30の製品を利用していると判断した場合(S607:YES)には、検索判断部212は、一次下請メーカ201の製品識別情報を、関連製品識別情報として取得し(S609)、処理を終了する。なお、関連製品識別情報としては、一次下請メーカ201の製品に利用している二次下請メーカ30の製品の製品識別としてもよい。
次に、図8のステップS306及びS316、ステップS311及びS315等で、下請メーカの計算機により実行される返答データ作成処理処理について説明する。
図12は、第1実施形態に係る返答データ作成処理のフローチャートの一例である。なお、図12は、下請メーカ201の計算機2001が実行する返答データ作成処理を例として説明するが、他の下請メーカ(一次下請メーカ20、二次下請メーカ30等)での返答データ作成処理も同様な処理である。
返答データ作成処理を開始すると、下請メーカ201の計算機2001の返答データ生成部204は、製造メーカ101より受信した問合クエリから、脆弱性識別情報を取得する(S702)。次に、返答データ生成部204は、製品情報検索処理(図11参照)の結果、該当製品識別情報があるか否かを判断する(S703)。
この結果、該当製品識別情報があると判定した場合(S703:Y)には、返答データ生成部204は、該当製品識別情報を取得し(S704)、返答データ生成部204は、該当製品識別情報の識別情報を検索キーとして、製品情報格納部207の製品情報A1001を検索し、該当製品が利用されている上位メーカ(この例では、製造メーカ10)の製品識別情報と、この上位メーカのメーカ識別情報とを取得し(S705)、処理をステップS706に進める。ここで、メーカ識別情報としては、該当製品が利用されている製品のメーカを識別するための識別子を想定しているが、メーカ名などでもよく、これらに限定されるものではない。
一方、該当製品識別情報がないと判断した場合(S703:N)には、返答データ生成部204は、ステップS704とS705の処理を省略して、処理をステップS706に進める。
ステップS706では、返答データ生成部204は、上位メーカのメーカ識別情報を用いて、メーカ連絡先情報格納部210の連絡先情報A1101を検索し、上位メーカ(この例では、製造メーカ101)の連絡用の情報を取得する(S706)。ここで、連絡用の情報としては、メーカのIPアドレスやMACアドレスを想定しているが、メールアドレスや電話番号などでもよく、これらに限定されるものではない。
次に、返答データ生成部204は、返答規約格納部209から返答規約を取得する(S707)。ここで、他の計算機への返答には、コンピュータプログラムの機能を外部の他のプログラムから呼び出して利用する手順やデータ形式であるAPIを利用することを想定しており、返答規約は、そのAPIを利用するための規約である。
次いで、返答データ生成部204は、返答規約に基づいて、返答データを作成する(S708)。ここで、返答データの作成では、製品情報検索処理の結果である該当製品識別情報を用いる。つまり、該当製品識別情報がない場合には、「影響なし」を含む返答データを作成し、該当製品識別情報がある場合には、「影響あり」、または、製品識別情報を含む返答データを作成すること想定しているが、これに限られない。ここで、返答データは、脆弱性情報識別情報と判定結果(例えば、該当製品識別情報)とが含められて、一段上のメーカの連絡先に対して送信されることを想定しているが、これらに限定されるのものではない。例えば、上位のメーカの計算機側に、返答データを受け付けるAPIを用意しておき、このAPIに対して返答データ(脆弱性情報識別情報及び判定結果)を送るようにしてもよい。なお、作成された返答データは、パケット通信部201により上位のメーカの計算機に送信される。
次に、返答データ生成部204は、下位のメーカ(この例では、二次下請メーカ30)から返答データがあるか否かを判断する(S709)。この結果、返答データがない場合(S709:N)、すなわち、下位のメーカへ問合クエリを送信していない場合には、返答データ作成処理を終了する。一方で、下位のメーカからの返答データがある場合、すなわち、下位のメーカへ問合クエリを送信した場合(S709:Y)には、下位のメーカから返答データを受信するまで待ち、受信した返答データをステップS708で作成した返答データに結合し(S710)、返答データ作成処理を終了する。なお、作成された返答データは、パケット通信部201により上位のメーカの計算機に送信される。
次に、図8のステップS317で、製造メーカ101の計算機1001により実行される返答データ検証処理について説明する。
図13は、第1実施形態に係る返答データ検証処理のフローチャートの一例である。
返答データの検証処理を開始すると、製造メーカ101の計算機1001の返答データ検証部103は、返答データを取得する(S802)。次に、返答データ検証部103は、返答データの認証情報が一致するか否かを判断する(S803)。具体的には、返答データ検証部103は、返答データに含まれる送信元のIPアドレスやMACアドレスが、下請メーカのものと一致するか判断する。ここで、認証情報は、下請メーカのメーカ識別情報や電子署名などでもよく、これらに限定されるものではない。
この結果、認証情報が一致しないと判断した場合(S803:N)は、返答データ検証部103は、返答データ検証処理を終了する。一方、認証情報が一致すると判断した場合(S803:Y)には、返答データ検証部103は、すべての返答データに対して検証が終了したか否かを判断する(S804)。
この結果、すべての返答データに対する検証が終了していないと判断した場合(S804:N)は、返答データ検証部103は、未処理の返答データに対してステップS802からの処理を行う。一方、すべての返答データに対する検証が終了したと判断した場合(S804:Y)には、返答データ検証部103は、返答データから脆弱性識別情報を取得する(S805)。
次に、返答データ検証部103は、すべての返答データに含まれる脆弱性識別情報が一致するか否かを判断する(S806)。すべての返答データに含まれる脆弱性識別情報が一致しない場合(S806:N)は、返答データは正当でないので、返答データ検証部103は、返答データ検証処理を終了する。一方で、すべての返答データに含まれる脆弱性識別情報が一致する場合(S806:Y)には、返答データは正当であると判断し(S807)、返答データ検証処理を終了する。
次に、製品メーカ及び下請メーカの計算機のハードウェアについて説明する。
図14は、第1実施形態に係る製品メーカ及び下請メーカの計算機のハードウェアの構成例を示す図である。
計算機(100,200,300)は、通信装置1401と、入出力装置1402と、記憶装置1403と、プロセッサの一例としてのCPU(Central Processing Unit)1404と、メモリ1405と、を備えている。計算機の各部は、バス等の内部信号線1406で連結されている。
通信装置1401は、例えば、有線LANカードや無線LANカードなどのインターフェースであり、ネットワーク50を介して他の計算機と通信する。
CPU1404は、メモリ1405及び/又は記憶装置1403に格納されているプログラムに従って各種処理を実行する。計算機の処理機能部(例えば、パケット通信部、問合クエリ生成部、返答データ検証部、検索判断部、問合クエリ検証部等)等は、記憶装置1403に格納されたプログラムがメモリ1405にロードされてCPU1404に実行されることにより構成される。また、各プログラムは他の記憶媒体(CD-ROM、DVD-ROM等)または通信媒体(ネットワークまたはネットワークを伝搬する伝送波)を介して、必要なときに計算機に導入されてもよい。
メモリ1405は、例えば、RAM(RANDOM ACCESS MEMORY)であり、CPU1404で実行されるプログラムや、必要な情報を記憶する。
記憶装置1403は、例えば、ハードディスクやフラッシュメモリなどであり、CPU1404で実行されるプログラムや、CPU1404に利用されるデータを記憶する。本実施形態では、記憶装置1404は、計算機の処理機能部(例えば、パケット通信部、問合クエリ生成部、返答データ検証部、検索判断部、問合クエリ検証部等)等を構成するためのプログラムを記憶し、データを格納する機能部(通信パケット格納部、脆弱性情報格納部、製品情報格納部、問合規約格納部、メーカ連絡先情報格納部、認証情報格納部、返答データ規約格納部)等を記憶する。
入出力装置1402は、例えば、パネル、ディスプレイ、キーボード、マウス等であり、ユーザからの操作を受け付け、情報表示ができるのであれば、他のデバイスであってもよい。入出力装置1402は、これら複数のデバイスで構成されてもよい。
次に、情報収集管理システム1の計算機において表示される表示画面について説明する。
図15は、第1実施形態に係る問合画面の一例を示す図である。
問合画面A1501は、問合クエリを受信した計算機において表示される。問合画面A1501には、問合元のメーカである送信元のメーカを示す情報(例えば、メーカ名)と、問合の対象である脆弱性識別情報と、脆弱性を調査する対象の製品の製品識別情報と、脆弱性の確認についての対応をお願いする依頼内容とが含まれる。なお、問合画面A1501の構成要素は、上記に限定されるものではなく、また、構成要素の表示順序は上記に限定されるものではない。
図16は、第1実施形態に係る返答画面の一例を示す図である。
返答画面A1601は、返答データを受信した計算機において表示される。返答画面A1601には、返答元のメーカである送信元のメーカを示す情報、返答の対象である脆弱性識別情報と、問合があった製品の製品識別情報、脆弱性の影響有無の調査結果や、脆弱性の影響がある製品識別情報などの結果の返答などが含まれる。ここで、返答画面A1601の構成要素は、上記に限定されるものではなく、また、構成要素の表示順序は上記に限定されるものではない。
以上説明したように、第1実施形態では、製造メーカ10の計算機100は、製造メーカ10の製品情報と、利用している一次下請メーカ20の製品識別情報と、応答規約を有し、下請メーカ(20等)の計算機(200等)は、下請メーカの製品情報と、利用している一段下位下請メーカの製品識別情報と、利用されている一段上位下請メーカあるいは製造メーカの製品識別情報と、応答規約と、返答規約を有することで、脆弱性の影響を調査したい上位メーカの計算機は、下位メーカへ脆弱性識別情報と上位メーカの製品の製品識別情報を送信し、脆弱性の影響有無を問合せ、下位メーカの計算機は、上位メーカの計算機へ脆弱性の有無や脆弱性の影響を受ける製品の識別情報を返答できる。
したがって、第1実施形態に係る情報収集管理システムによると、製造メーカ10の計算機100に対して、製造メーカ10の製品に利用されている(組み込まれている)製品についての脆弱性に関する情報を、各製品を製造するメーカから適切に収集することができる。
次に、第2実施形態に係る情報収集管理システムについて説明する。
第2実施形態に係る情報収集管理システムは、一次下請けメーカ20の計算機200が脆弱性情報を取得したことに起因して、製造メーカ10の計算機100に情報を集約するシステムである。なお、第2実施形態に係る情報収集管理システムは、第1実施形態に係る情報収集管理システムと同様な構成であるので、便宜的に、第1実施形態に係る情報収集管理システムの対応する構成と同一の符号を用いて説明する。
図17は、第2実施形態に係る製品構成情報収集処理のシーケンス図である。
まず、一次下請メーカ201の計算機2001は、脆弱性情報を取得する(S1701)。ここで、脆弱性情報を受信したことは、一次下請メーカの製品に関する所定の情報を上位の計算機に送信する必要があることを意味している。次に、計算機2001の検索判断部212は、脆弱性情報に含まれる製品名称を検索キーとして、製品情報格納部207の製品情報A1001(図4参照)を検索する(S1702)。この結果、製品情報格納部207に脆弱性情報に含まれる製品名称が含まれている、すなわち、脆弱性情報が自社製品に関連する場合には、計算機2001はステップS1703以降の処理を実行する一方、脆弱性情報が自社製品に関連しない場合には、計算機2001はステップS1703以降の処理を実行しない。
次に、計算機2001の問合クエリ生成部202は、問合クエリA1701(問合クエリA303と同様)を作成し、パケット通信部201を介して問合クエリA1701を二次下請メーカ301へ送信する(S1703)。
二次下請メーカ301の計算機3001は、問合クエリを受信し、検索判断部312は、問合クエリに含まれる製品識別情報をキーとして、製品情報格納部307の製品情報A1001を検索する(S1704)。次に、検索判断部312は、問合クエリA1701の脆弱性情報に含まれる製品識別情報に該当する製品(該当製品)があるか否かを判断する(S1705)。この結果、該当製品があると判断した場合(S1705:Y)には、返答データ生成部304は、該当製品があることを示す返答データを作成し(S1706)、処理をステップS1708に進める。一方、該当製品がないと判断した場合(S1705:N)には、返答データ生成部304は、処理をステップS1708に進める。
ステップS1708では、検索判断部312は、自社の該当製品に組み込まれている下位の製品があるか否かを判断する。この結果、下位の製品がないと判断した場合(S1708:N)は、検索判断部312は、処理をステップS1710に進める。一方、下位の製品があると判断した場合(S1708:Y)には、問合クエリ生成部303は、脆弱性情報を含む問合クエリA1704を生成して、下位の製品を製造する三次下請メーカ40の計算機400に対して送信し(S1709)、処理をステップS1710に進める。
なお、問合クエリA1704を受信した三次下請メーカ40の計算機400は、ステップS1704~S1710と同様な処理を行い、返答データA1705を二次下請メーカ301の計算機3001へ送信する。
二次下請メーカ301の計算機3001は、返答データA1705を受信すると、ステップS316と同様な処理を行って返答データA1706を作成し、返答データA1706を一次下請メーカ201の計算機2001へ送信する(S1710)。
一次下請メーカ201の計算機2001は、返答データA1706を受信すると、ステップS316と同様な処理を行って返答データA1707を作成し、返答データA1707を製造メーカ101の計算機1001へ送信する(S1711)。
製造メーカ101の計算機1001は、返答データA1707を受信すると、ステップS317と同様な処理を行って返答データを検証する(S1712)。
なお、図17では、一次下請メーカ201の計算機2001が脆弱性情報を取得した場合の例としていたが、例えば、さらに下位の下請メーカの計算機が脆弱性情報を取得した場合にも同様な処理により実現することができる。具体的には、その下位の下請メーカの計算機を一次下請メーカの計算機と置き換えて、同様な処理を行うようにすればよい。
以上説明したように、第2実施形態に係る情報収集管理システムによると、下請メーカの計算機が脆弱性情報を取得した場合に、その下請メーカの製品を利用している製品の製造メーカの計算機に対して、製造メーカの製品に利用されている各製品を製造するメーカ(下請メーカ)から収集した各製品の情報を集約することができる。
次に、第3実施形態に係る情報収集管理システムについて説明する。
第3実施形態に係る情報収集管理システムは、第1実施形態に係る情報収集管理システムにおいて下位の計算機から送信された返答データの正当性をより高精度に判できるようにしたシステムである。なお、第3実施形態に係る情報収集管理システムは、第1実施形態に係る情報収集管理システムと基本的には構成を共通とするので、便宜的に、第1実施形態に係る情報収集管理システムの対応する構成と同一の符号を用い、異なる構成、処理を中心に説明する。
本実施形態の製造メーカの計算機100、及び下請メーカ(一次下請メーカ20、二次下請メーカ30等)の計算機(200、300)のメーカ連絡先情報格納部(108、210、310)は、連絡先情報A2001を格納する。
図18は、第3実施形態に係る連絡先情報の構成例を示す図である。
連絡先情報A2001は、各メーカに対応するエントリを格納する。連絡先情報A2001のエントリは、メーカ識別情報A2002と、メーカレイヤA2003と、メーカ名A2004と、アドレスA2005と、証明書A2006とのフィールドを含む。
メーカ識別情報A2002と、メーカレイヤA2003と、メーカ名A2004と、アドレスA2005とは、第1実施形態に係る連絡先情報A1101の同名のフィールドと同様である。証明書A2006には、エントリに対応するメーカの公開鍵証明書が格納される。なお、連絡先情報A2001の構成要素及びその構成要素の順序は上記に限定されるものではない。
次に、図8のステップS306及びS316、ステップS311及びS315等で、本実施形態に係る下請メーカの計算機により実行される返答データ作成処理について説明する。
図19は、第3実施形態に係る返答データ作成処理のフローチャートの一例である。なお、図19は、下請メーカ201の計算機2001が実行する返答データ作成処理を例として説明するが、他の下請メーカ(一次下請メーカ20、二次下請メーカ30等)での返答データ作成処理も同様な処理である。
返答データ作成処理を開始すると、下請メーカ201の計算機2001の返答データ生成部204は、製造メーカ101より受信した問合クエリから、脆弱性識別情報を取得する(S1802)。次に、返答データ生成部204は、製品情報検索処理(図11参照)の結果、該当製品識別情報があるか否かを判断する(S1803)。
この結果、該当製品識別情報があると判定した場合(S1803:Y)には、返答データ生成部204は、該当製品識別情報を取得し(S1804)、返答データ生成部204は、該当製品識別情報の識別情報を検索キーとして、製品情報格納部207の製品情報A1001を検索し、該当製品が利用されている上位メーカ(この例では、製造メーカ10)の製品識別情報と、この上位メーカのメーカ識別情報とを取得し(S1805)、処理をステップS1806に進める。ここで、メーカ識別情報としては、該当製品が利用されている製品のメーカを識別するための識別子を想定しているが、メーカ名などでもよく、これらに限定されるものではない。
一方、該当製品識別情報がないと判断した場合(S1803:N)には、返答データ生成部204は、ステップS1804とS1805の処理を省略して、処理をステップS1806に進める。
ステップS1806では、返答データ生成部204は、上位メーカのメーカ識別情報を用いて、メーカ連絡先情報格納部210の連絡先情報A2001を検索し、上位メーカ(この例では、製造メーカ101)の連絡用の情報を取得する(S1806)。ここで、連絡用の情報としては、メーカのIPアドレスやMACアドレスを想定しているが、メールアドレスや電話番号などでもよく、これらに限定されるものではない。
次に、返答データ生成部204は、認証情報格納部211から自メーカのメーカ識別情報を取得する(S1807)。次に、返答データ生成部204は、脆弱性識別情報と、自メーカのメーカ識別情報と、脆弱性の影響有無と、脆弱性の影響がある製品の製品識別情報(脆弱性の影響がある製品がある場合)と、二次下請メーカ301の製品識別情報(脆弱性の影響がある製品が二次下請メーカ201の製品を利用している場合)と、下位製品が存在しないことを示す記号(脆弱性の影響がある製品が二次下請メーカ301の製品を利用していない場合)と、を連結したデータに対して、認証情報格納部211から取得した秘密鍵を用いて、電子署名を付与する(S1808)。なお、電子署名を付与するデータの構成要素はこれに限定されるものではなく、また、このデータの構成要素の順序は上記に限定されるものではない。
次に、返答データ生成部204は、返答規約格納部209から返答規約を取得する(S1809)。ここで、他の計算機への返答には、コンピュータプログラムの機能を外部の他のプログラムから呼び出して利用する手順やデータ形式であるAPIを利用することを想定しており、返答規約は、そのAPIを利用するための規約である。
次いで、返答データ生成部204は、返答規約に基づいて、返答データを作成する(S1810)。ここで、返答データの作成では、脆弱性識別情報と、自メーカのメーカ識別情報と、脆弱性の影響有無と、脆弱性の影響がある製品の製品識別情報(脆弱性の影響がある製品がある場合)と、二次下請メーカ301の製品識別情報(脆弱性の影響がある製品が二次下請メーカ301の製品を利用している場合)と、下位製品が存在しないことを示す記号(脆弱性の影響がある製品が二次下請メーカ301の製品を利用していない場合)と、電子署名のデータとを連結する。なお、返答データの構成要素は上記に限定されるものではなく、構成要素の順序は上記に限定されるものではない。ここで、例えば、上位のメーカの計算機側に、返答データを受け付けるAPIを用意しておき、このAPIに対して返答データを送るようにしてもよい。
次に、返答データ生成部204は、下位のメーカ(この例では、二次下請メーカ30)から返答データがあるか否かを判断する(S1811)。この結果、返答データがない場合(S1811:N)、すなわち、下位のメーカへ問合クエリを送信していない場合には、返答データ作成処理を終了する。一方で、下位のメーカからの返答データがある場合、すなわち、下位のメーカへ問合クエリを送信した場合(S1811:Y)には、下位のメーカから返答データを受信するまで待ち、受信した返答データをステップS1810で作成した返答データに結合し(S1812)、返答データ作成処理を終了する。なお、作成された返答データは、パケット通信部201により上位のメーカの計算機に送信される。
次に、図8のステップS317で、第3実施形態に係る製造メーカ101の計算機1001により実行される返答検証処理について説明する。
図20は、第3実施形態に係る返答データ検証処理のフローチャートの一例である。
返答データ検証処理を開始すると、製造メーカ101の計算機1001の返答データ検証部103は、返答データを取得する(S1902)。次に、返答データ検証部103は、返答データの認証情報が一致するか否かを判断する(S1903)。具体的には、返答データ検証部103は、返答データに含まれる送信元のIPアドレスやMACアドレスが、下請メーカのものと一致するか判断する。ここで、認証情報は、下請メーカのメーカ識別情報や電子署名などでもよく、これらに限定されるものではない。
この結果、認証情報が一致しないと判断した場合(S1903:N)は、返答データ検証部103は、返答データ検証処理を終了する。一方、認証情報が一致すると判断した場合(S1903:Y)には、返答データからメーカ識別情報を取得する(S1904)。
次に、返答データ検証部103は、メーカ連絡先情報格納部210の連絡先情報A2001からメーカ識別情報に対応する下請メーカの公開鍵証明書を取得し、公開鍵証明書から下請メーカの公開鍵を取り出し、返答データの署名を検証する(S1905)。具体的には、返答データ検証部103は、返答データに含まれる電子署名のデータに対して公開鍵で復号処理を行い、得られた結果が、返答データに含まれる電子署名以外のデータである、脆弱性識別情報と、メーカ識別情報と、脆弱性の影響有無と、脆弱性の影響がある製品の製品識別情報(脆弱性の影響がある製品がある場合)と、二次下請メーカの製品識別情報(脆弱性の影響がある製品が二次下請メーカの製品を利用している場合)と、下位製品が存在しないことを示す記号(脆弱性の影響がある製品が二次下請メーカの製品を利用していない場合)と一致するか検証する。なお、署名の検証方法は、これに限定されるものではない。
次に、返答データ検証部103は、署名の検証結果、署名が一致するか否かを判断する(S1906)。この結果、署名が一致しない場合(S1906:N)には、返答データ検証部103は、返答データ検証処理を終了する。一方、署名が一致する場合(S1906:Y)には、返答データ検証部103は、すべての返答データに対して署名の検証が終了したか否かを判断する(S1907)。
この結果、すべての返答データに対する検証が終了していないと判断した場合(S1907:N)は、返答データ検証部103は、未処理の返答データに対してステップS1902からの処理を行う。一方、すべての返答データに対する検証が終了したと判断した場合(S1907:Y)には、返答データ検証部103は、返答データから脆弱性識別情報を取得する(S1908)。
次に、返答データ検証部103は、すべての返答データに含まれる脆弱性識別情報が一致するか否かを判断する(S1909)。すべての返答データに含まれる脆弱性識別情報が一致しない場合(S1909:N)は、返答データは正当でないので、返答データ検証部103は、返答データ検証処理を終了する。一方、すべての返答データに含まれる脆弱性識別情報が一致する場合(S1909:Y)には、返答データ検証部103は、すべての返答データから該当製品識別情報を取得する(S1910)。
次に、返答データ検証部103は、すべての返答データから、一段下位の下請メーカの製品識別情報を取得する(S1911)。次に、返答データ検証部103は、すべての返答データにおける該当製品識別情報と一段下位下請メーカの製品識別情報とを並べて、連鎖しているか否かを判断する(S1912)。例えば、連鎖しているか否かの判断は、一次下請メーカの返答データから取り出した、一次下請メーカの製品識別情報と二次下請メーカの製品識別情報と、一次下請メーカの返答データに結合されている二次下請メーカの返答データから取り出した、二次下請メーカの製品識別情報と三次下請メーカの製品識別情報、二次下請メーカの返答データに結合されている三次下請メーカの返答データから取り出した三次下請メーカの製品識別情報と、下位要素が存在しないことを記す記号とを上位の製品識別情報から整列させて、一次下請メーカの製品識別情報と、二次下請メーカの製品識別情報と、三次下請メーカの製品識別情報と、下位要素が存在しない記号とが繋がっているか否かを確認することとしているが、この方法に限定されるものではなく、整列順序も上記に限定されるものではない。
この結果、各製品が連鎖していないと判断した場合(S1912:N)には、返答データ検証部103は、返答データ検証処理を終了する。一方、各製品が連鎖していると判断した場合(S1912:Y)には、返答データ検証部103は、返答データは正当であると判断し(S1913)、返答データ検証処理を終了する。
以上説明したように、第3実施形態では、第1実施形態において製造メーカや下請メーカの計算機が有する情報に加え、製造メーカの計算機は、下請メーカの公開鍵証明書を有し、下請メーカの計算機は、秘密鍵を有することで、脆弱性の影響を調査したい上位メーカの計算機は、下位メーカの計算機へ脆弱性識別情報と上位メーカの製品の製品識別情報を送信して脆弱性の影響有無を問合せ、下位メーカの計算機は、脆弱性識別情報とメーカ識別情報、脆弱性の有無や脆弱性の影響を受ける製品の識別情報、及び利用している一段下位メーカの製品の製品識別情報に、秘密鍵で電子署名を付与して上位メーカの計算機へ返答し、製造メーカの計算機は、下請メーカの計算機からの返答の電子署名を検証し、製品識別情報と、利用している一段下位メーカの製品の製品識別情報が連鎖しているかを確認することで、下位メーカの計算機から受け取った返答の正当性を適切に確認できる。
次に、第4実施形態に係る情報収集管理システムについて説明する。
第4実施形態に係る情報収集管理システムは、第3実施形態に係る情報収集管理システムにおいて、下位のメーカが利用しているさらに一段下位のメーカの製品情報の上位のメーカへの漏えいを防ぐようにしたシステムである。なお、第4実施形態に係る情報収集管理システムは、第3実施形態に係る情報収集管理システムと基本的には構成を共通とするので、便宜的に、第1実施形態及び第3実施形態に係る情報収集管理システムの対応する構成と同一の符号を用い、異なる構成、処理を中心に説明する。
次に、図8のステップS306及びS316、ステップS311及びS315等で、本実施形態に係る下請メーカの計算機により実行される返答データ作成処理処理について説明する。
図21は、第4実施形態に係る返答データ作成処理のフローチャートの一例である。なお、図21は、下請メーカ201の計算機2001が実行する返答データ作成処理を例として説明するが、他の下請メーカ(一次下請メーカ20、二次下請メーカ30等)での返答データ作成処理も同様な処理である。
返答データ作成処理を開始すると、下請メーカ201の計算機2001の返答データ生成部204は、製造メーカ101より受信した問合クエリから、脆弱性識別情報を取得する(S2102)。次に、返答データ生成部204は、製品情報検索処理(図11参照)の結果、該当製品識別情報があるか否かを判断する(S2103)。
この結果、該当製品識別情報があると判定した場合(S2103:Y)には、返答データ生成部204は、該当製品識別情報を取得し(S2104)、返答データ生成部204は、該当製品識別情報の識別情報を検索キーとして、製品情報格納部207の製品情報A1001を検索し、該当製品が利用されている上位メーカ(この例では、製造メーカ101)の製品識別情報と、この上位メーカのメーカ識別情報とを取得する(S2105)。ここで、メーカ識別情報としては、該当製品が利用されている製品のメーカを識別するための識別子を想定しているが、メーカ名などでもよく、これらに限定されるものではない。次に、返答データ生成部204は、製品情報格納部207の製品情報A1001を検索し、該当製品が利用している製品(すなわち、下位のメーカの製品)の製品識別情報を取得し、製品識別情報の秘匿化処理を行い(S2106)、処理をステップS2107に進める。ここで、秘匿化処理としては、開示しないことの明記や、製品識別情報の暗号化や乱数への置き換え等の処理などがあるが、これらに限定されるものではない。
一方、該当製品識別情報がないと判断した場合(S2103:N)には、返答データ生成部204は、ステップS2104からS2106の処理を省略して、処理をステップS2107に進める。
ステップS2107では、返答データ生成部204は、上位メーカのメーカ識別情報を用いて、メーカ連絡先情報格納部210の連絡先情報A2001を検索し、上位メーカ(この例では、製造メーカ101)の連絡用の情報を取得する。ここで、連絡用の情報としては、メーカのIPアドレスやMACアドレスを想定しているが、メールアドレスや電話番号などでもよく、これらに限定されるものではない。
次に、返答データ生成部204は、認証情報格納部211から自メーカのメーカ識別情報を取得する(S2108)。次に、返答データ生成部204は、脆弱性識別情報と、自メーカのメーカ識別情報と、脆弱性の影響有無と、脆弱性の影響がある製品の製品識別情報(脆弱性の影響がある製品がある場合)と、二次下請メーカの製品識別情報を秘匿化した情報(脆弱性の影響がある製品が二次下請メーカの製品を利用している場合)と、下位製品が存在しないことを示す記号(脆弱性の影響がある製品が二次下請メーカの製品を利用していない場合)と、を連結したデータに対して、認証情報格納部211から取得した秘密鍵を用いて、電子署名を付与する(S2109)。なお、電子署名を付与するデータの構成要素はこれに限定されるものではなく、また、このデータの構成要素の順序は上記に限定されるものではない。
次に、返答データ生成部204は、返答規約格納部209から返答規約を取得する(S2110)。ここで、他の計算機への返答には、コンピュータプログラムの機能を外部の他のプログラムから呼び出して利用する手順やデータ形式であるAPIを利用することを想定しており、返答規約は、そのAPIを利用するための規約である。
次いで、返答データ生成部204は、返答規約に基づいて、返答データを作成する(S2111)。ここで、返答データの作成では、脆弱性識別情報と、自メーカのメーカ識別情報と、脆弱性の影響有無と、脆弱性の影響がある製品の製品識別情報を秘匿化した情報(脆弱性の影響がある製品がある場合)と、二次下請メーカの製品識別情報(脆弱性の影響がある製品が二次下請メーカの製品を利用している場合)と、下位製品が存在しないことを示す記号(脆弱性の影響がある製品が二次下請メーカの製品を利用していない場合)と、電子署名のデータとを連結する。なお、返答データの構成要素は上記に限定されるものではなく、構成要素の順序は上記に限定されるものではない。ここで、例えば、上位のメーカの計算機側に、返答データを受け付けるAPIを用意しておき、このAPIに対して返答データを送るようにしてもよい。
次に、返答データ生成部204は、下位のメーカ(この例では、二次下請メーカ)から返答データがあるか否かを判断する(S2112)。この結果、返答データがない場合(S2112:N)、すなわち、下位のメーカへ問合クエリを送信していない場合には、返答データ作成処理を終了する。一方で、下位のメーカからの返答データがある場合、すなわち、下位のメーカへ問合クエリを送信した場合(S2112:Y)には、下位のメーカから返答データを受信するまで待ち、受信した返答データをステップS2111で作成した返答データに結合し(S2113)、返答データ作成処理を終了する。なお、作成された返答データは、パケット通信部201により上位のメーカの計算機に送信される。
次に、図8のステップS317で、第4実施形態に係る製造メーカ10の計算機100により実行される返答データ検証処理について説明する。
図22は、第4実施形態に係る返答データ検証処理のフローチャートの一例である。
返答データの検証処理を開始すると、製造メーカ101の計算機1001の返答データ検証部103は、返答データを取得する(S2202)。次に、返答データ検証部103は、返答データの認証情報が一致するか否かを判断する(S2203)。具体的には、返答データ検証部103は、返答データに含まれる送信元のIPアドレスやMACアドレスが、下請メーカのものと一致するか判断する。ここで、認証情報は、下請メーカのメーカ識別情報や電子署名などでもよく、これらに限定されるものではない。
この結果、認証情報が一致しないと判断した場合(S2203:N)は、返答データ検証部103は、返答データ検証処理を終了する。一方、認証情報が一致すると判断した場合(S2203:Y)には、返答データからメーカ識別情報を取得する(S2204)。
次に、返答データ検証部103は、メーカ連絡先情報格納部210の連絡先情報A2001からメーカ識別情報に対応する下請メーカの公開鍵証明書を取得し(S2205)、公開鍵証明書から下請メーカの公開鍵を取り出し、返答データの署名を検証する(S2206)。具体的には、返答データ検証部103は、返答データに含まれる電子署名のデータに対して公開鍵で復号処理を行い、得られた結果が、返答データに含まれる電子署名以外のデータである、脆弱性識別情報と、メーカ識別情報と、脆弱性の影響有無と、脆弱性の影響がある製品の製品識別情報に秘匿化した情報(脆弱性の影響がある製品がある場合)と、二次下請メーカの製品識別情報(脆弱性の影響がある製品が二次下請メーカの製品を利用している場合)と、下位製品が存在しないことを示す記号(脆弱性の影響がある製品が二次下請メーカの製品を利用していない場合)と一致するか検証する。なお、署名の検証方法は、これに限定されるものではない。
次に、返答データ検証部103は、署名の検証結果、署名が一致するか否かを判断する(S2207)。この結果、署名が一致しない場合(S2207:N)には、返答データ検証部103は、返答データ検証処理を終了する。一方、署名が一致する場合(S2208:Y)には、返答データ検証部103は、すべての返答データに対して署名の検証が終了したか否かを判断する(S2208)。
この結果、すべての返答データに対する検証が終了していないと判断した場合(S2208:N)は、返答データ検証部103は、未処理の返答データに対してステップS2202からの処理を行う。一方、すべての返答データに対する検証が終了したと判断した場合(S2208:Y)には、返答データ検証部103は、返答データから脆弱性識別情報を取得する(S2209)。
次に、返答データ検証部103は、すべての返答データに含まれる脆弱性識別情報が一致するか否かを判断する(S2210)。すべての返答データに含まれる脆弱性識別情報が一致しない場合(S2210:N)は、返答データは正当でないので、返答データ検証部103は、返答データ検証処理を終了する。一方、すべての返答データに含まれる脆弱性識別情報が一致する場合(S2210:Y)には、返答データ検証部103は、返答データは正当であると判断し(S2211)、返答データ検証処理を終了する。
以上説明したように、第4実施形態では、脆弱性の影響を調査したい上位メーカは下位メーカへ脆弱性識別情報と上位メーカ製品識別情報を送信することで脆弱性の影響有無を問合せ、下位メーカは上位メーカへ脆弱性識別情報とメーカ識別情報と脆弱性の有無や脆弱性の影響を受ける製品の識別情報と、利用している一段下位メーカの製品識別情報の秘匿化した情報とに、秘密鍵で電子署名を付与して上位メーカへ返答し、製造メーカは下請メーカからの返答の電子署名を検証することで、下位メーカが利用している一段下位メーカの製品の製品識別情報の上位メーカへの漏えいを防ぐことができる。
次に、第5実施形態に係る情報収集管理システムについて説明する。
第5実施形態に係る情報収集管理システムは、第3実施形態に係る情報収集管理システムにおいて、上位メーカの製品識別情報の下位のメーカへの漏えいを防ぐようにしたシステムである。なお、第5実施形態に係る情報収集管理システムは、第3実施形態に係る情報収集管理システムと基本的には構成を共通とするので、便宜的に、第1実施形態及び第3実施形態に係る情報収集管理システムの対応する構成と同一の符号を用い、異なる構成、処理を中心に説明する。
次に、下請メーカ(一次下請メーカ20、二次下請メーカ30等)の計算機(200、300)の製品情報格納部(207、307)に格納される製品情報A2401について説明する。
図23は、第5実施形態に係る下請メーカの計算機における製品情報の構成例を示す図である。
下請メーカの製品情報A2401は、下請メーカで製造している製品(自社製品)毎に対応するエントリを格納する。製品情報A2401のエントリは、製品識別情報A2402と、製品名称A2403と、バージョン情報A2404と、作成日A2405と、利用製品識別情報A2406と、利用メーカ識別情報A2407と、フラグA2408とを含む。
製品識別情報A2402には、エントリに対応する下請メーカの製品を識別する製品識別情報が格納される。製品名称A2403には、エントリに対応する製品の名称が格納される。バージョン情報A2404には、エントリに対応する製品のバージョンの情報(バージョン情報)が格納される。作成日A2405には、エントリに対応する製品の作成日が格納される。利用製品識別情報A2406には、自社製品で利用している一段下位の下請メーカの製品(利用製品)の製品識別情報が格納される。利用製品メーカ識別情報A2407には、エントリに対応する利用製品を製造している下請メーカの識別情報(メーカ識別情報)が格納される。フラグA2408には、エントリに対応する製品情報のそれぞれの構成要素(各フィールドの情報)についての他社への公開可否を記すフラグが格納される。
製品情報A2402の構成要素として、SWIDやSPDXで規定されているコンテンツを想定しているが、上記した情報に限定されるものではない。SWIDやSPDXのコンテンツには、製品識別情報、製品名称、バージョン情報、作成日の他に、ハッシュ値、ライセンス情報、作成者や作成組織、更新日、更新個所、種類などがあるので、これら情報を製品情報A2401の構成要素として含めてもよい。また、製品情報A2401には、SWIDやSPDXで規定されているすべてのコンテンツを含めなくてもよく、一部のコンテンツのみを含めるようにしてもよい。また、フラグA2408のフラグは、例えばメーカの情報開示基準などに従って、製品情報A2401の各構成要素の内、他社へ開示してよいもの、あるいは他社へ開示できないものを判断し、その判断結果に応じて、作成された他社へ開示できる構成要素のリスト、あるいは他社へ開示できない構成要素のリストを想定しているが、各構成要素について他社への開示可否を記す情報であればよく、上記方法に限定されるものではない、また、製品情報A2401の構成要素の順序は、上記に限定されるものではない。
次に、図8のステップS303で、造メーカ10の計算機100により実行される問合クエリ作成処理について説明する。
図24は、第5実施形態に係る問合クエリ作成処理のフローチャートの一例である。なお、図24は、製造メーカ101の計算機1001が実行する問合クエリ作成処理を例として説明するが、下請メーカ(一次下請メーカ20、二次下請メーカ30等)でのステップS308、S314における問合クエリ作成処理も同様な処理である。
問合クエリ作成処理を開始すると、問合クエリ生成部102は、脆弱性情報格納部105に格納された脆弱性情報から脆弱性識別情報を取得する(S2302)。ここで、脆弱性識別情報は、例えば、脆弱性情報データベース(NVD)で利用されている共通脆弱性識別子(CVE)や、脆弱性情報データベース(JVN)で利用されているJVNDBIDなどを想定しているが、これらに限定されるものではない。
次に、問合クエリ生成部102は、製品情報検索処理S302の結果、すなわち、該当製品識別情報及び利用製品メーカ識別情報を取得する(S2303)。ここで、利用製品メーカ識別情報としては、該当製品で利用している製品(部品:利用製品)を製造している一次下請メーカのメーカ識別情報を想定しているが、一次下請メーカ名などでもよく、これらに限定されるものではない。
次に、問合クエリ生成部102は、利用製品メーカ識別情報を用いて、メーカ連絡先情報格納部108の連絡先情報A1101を検索し、利用製品メーカ識別情報に対応する一次下請メーカの連絡先の情報を取得する(S2304)。ここで、取得する連絡先の情報としては、一次下請メーカのIPアドレスやMACアドレスを想定しているが、メールアドレスや電話番号などでもよく、これらに限定されるものではない。
次に、問合クエリ生成部102は、問合規約格納部107から、問合規約を取得する(S2305)。ここで、他の計算機への問合には、コンピュータプログラムの機能を外部の他のプログラムから呼び出して利用する手順やデータ形式であるAPIを利用することを想定しており、問合規約は、そのAPIを利用するための規約である。
次に、問合クエリ生成部102は、問合規約に基づいて、問合クエリを作成し(S2306)、問合クエリ作成処理を終了する。ここで、問合クエリは、脆弱性情報識別情報と、下位メーカ(この例では、一次下請メーカ)の製品の製品識別情報とが含められて、一次下請メーカの連絡先に対して送信されることを想定しているが、これらに限定されるのものではない。例えば、下位のメーカの計算機側に、問合クエリを受け付けるAPIを用意しておき、このAPIに対して脆弱性情報識別情報と、下位メーカの製品の製品識別情報とを送るようにしてもよい。なお、作成された問合クエリは、パケット通信部101により下位のメーカの計算機に送信される。
以上説明したように、第5実施形態においては、問合クエリに上位メーカの製品の製品識別情報ではなく、下位メーカの製品の製品識別情報を送信するようにしたので、下位メーカへの上位メーカの製品の製品識別情報が漏洩することを適切に防止することができる。
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
例えば、下請メーカの計算機においては、自メーカの製品の製品識別情報と、一段下位の下請メーカの製品識別情報とを格納してもよく、また、いずれかの計算機において、脆弱性情報を別の計算機を経由して取得してもよい。
また、上記実施形態では、製品に利用されている各製品の脆弱性情報を収集する例を示していたが、本発明はこれに限られず、例えば、製品に利用されている各製品の納期の情報、値段の情報等の他の情報を収集するようにしてもよい。
また、上記実施形態において、CPUが行っていた処理の一部又は全部を、ハードウェア回路で行うようにしてもよい。また、上記実施形態におけるプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア(例えば可搬型の記憶メディア)であってもよい。