(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024154618
(43)【公開日】2024-10-31
(54)【発明の名称】脆弱性分析方法、脆弱性分析システム
(51)【国際特許分類】
G06Q 50/04 20120101AFI20241024BHJP
【FI】
G06Q50/04
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023068543
(22)【出願日】2023-04-19
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】三村 和
(72)【発明者】
【氏名】齋藤 利行
(72)【発明者】
【氏名】デーンホフ イェンス
(72)【発明者】
【氏名】檜垣 宏行
【テーマコード(参考)】
5L049
5L050
【Fターム(参考)】
5L049CC03
5L050CC03
(57)【要約】
【課題】サプライチェーンを構成する複数の事業者に跨ったソフトウエアの脆弱性を分析できる。
【解決手段】脆弱性分析方法は、コンピュータが実行する脆弱性分析方法であって、複数の事業者のそれぞれから、製品の識別子ごとに製品を構成する部品である構成部品の識別子である構成部品識別子、および製品を構成し構成部品に含まれないソフトウエアである独自ソフトウエアの識別子を含む事業者固有データを取得する取得処理と、予め作成された対応データに基づき、異なる事業者間における製品の識別子および構成部品識別子の対応を特定する対応特定処理と、調査対象の製品である対象製品を特定する対象製品特定処理と、対応特定処理に基づき対象製品に含まれる全ての独自ソフトウエアを特定し、ソフトウエアの脆弱性に関するデータが格納される脆弱性DBを参照して対象製品に含まれるソフトウエアの脆弱性を特定する脆弱性特定処理と、を含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
コンピュータが実行する脆弱性分析方法であって、
複数の事業者のそれぞれから、製品の識別子ごとに前記製品を構成する部品である構成部品の識別子である構成部品識別子、および前記製品を構成し前記構成部品に含まれないソフトウエアである独自ソフトウエアの識別子を含む事業者固有データを取得する取得処理と、
予め作成された対応データに基づき、異なる事業者間における前記製品の識別子および前記構成部品識別子の対応を特定する対応特定処理と、
調査対象の製品である対象製品を特定する対象製品特定処理と、
前記対応特定処理に基づき前記対象製品に含まれる全ての前記独自ソフトウエアを特定し、ソフトウエアの脆弱性に関するデータが格納される脆弱性DBを参照して前記対象製品に含まれるソフトウエアの脆弱性を特定する脆弱性特定処理と、を含む脆弱性分析方法。
【請求項2】
請求項1に記載の脆弱性分析方法であって、
前記事業者固有データには、前記事業者に固有のソフトウエアの識別子であるソフトウエア部品番号と、前記複数の事業者に共通するソフトウエアの識別子であるソフトウエア識別子と、の対応を示す厳密番号対応表を含む、脆弱性分析方法。
【請求項3】
請求項1に記載の脆弱性分析方法であって、
前記脆弱性特定処理により特定した脆弱性に関する情報を前記事業者のそれぞれに通知する通知処理をさらに含む、脆弱性分析方法。
【請求項4】
請求項1に記載の脆弱性分析方法であって、
前記製品の識別子は、前記製品の製造ロットごと、または前記製品の設計ごとに付与される、脆弱性分析方法。
【請求項5】
請求項1に記載の脆弱性分析方法であって、
前記製品の識別子は、個体を識別する個体識別番号であり、
前記製品の購入者を識別する顧客識別子と前記製品の識別子との対応を示す購入者データを収集する収集処理と、
前記脆弱性特定処理により特定した脆弱性を有するソフトウエアを含む前記製品について、当該製品を製造した前記事業者に特定した脆弱性に関する情報、および前記購入者データを用いて特定した当該製品を購入した顧客を示す前記顧客識別子を通知する通知処理をさらに含む脆弱性分析方法。
【請求項6】
複数の事業者のそれぞれから、製品の識別子ごとに前記製品を構成する部品である構成部品の識別子である構成部品識別子、および前記製品を構成し前記構成部品に含まれないソフトウエアである独自ソフトウエアの識別子を含む事業者固有データを取得する情報収集部と、
予め作成された対応データおよび前記事業者固有データに基づき、異なる事業者間における前記製品の識別子および前記構成部品識別子の対応を特定することで前記製品と前記独自ソフトウエアの関係を示す製品構成グラフを作成する含有ソフトウエア特定部と、
前記製品構成グラフに基づき、調査対象の製品である対象製品に含まれる全ての前記独自ソフトウエアを特定し、ソフトウエアの脆弱性に関するデータが格納される脆弱性DBを参照して前記対象製品に含まれるソフトウエアの脆弱性を特定する脆弱性分析部と、を備える脆弱性分析システム。
【請求項7】
請求項6に記載の脆弱性分析システムであって、
前記事業者固有データには、前記事業者に固有のソフトウエアの識別子であるソフトウエア部品番号と、前記複数の事業者に共通するソフトウエアの識別子であるソフトウエア識別子と、の対応を示す厳密番号対応表を含む、脆弱性分析システム。
【請求項8】
請求項6に記載の脆弱性分析システムであって、
前記脆弱性分析部が特定した脆弱性に関する情報を前記事業者のそれぞれに通知する脆弱性情報通知部をさらに備える、脆弱性分析システム。
【請求項9】
請求項6に記載の脆弱性分析システムであって、
前記製品の識別子は、前記製品の製造ロットごと、または前記製品の設計ごとに付与される、脆弱性分析システム。
【請求項10】
請求項6に記載の脆弱性分析システムであって、
前記製品の識別子は、個体を識別する個体識別番号であり、
前記情報収集部はさらに、前記製品の購入者を識別する顧客識別子と前記製品の識別子との対応を示す購入者データを収集し、
前記脆弱性分析部が特定した脆弱性を有するソフトウエアを含む前記製品について、当該製品を製造した前記事業者に特定した脆弱性に関する情報、および前記購入者データを用いて特定した当該製品を購入した顧客を示す前記顧客識別子を通知する脆弱性情報通知部をさらに備える脆弱性分析システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、脆弱性分析方法、および脆弱性分析システムに関する。
【背景技術】
【0002】
自動車などの製品の製造にはサプライチェーンが存在し、OEM以外にも多数の部品サプライヤが関わる。製品や部品ごとにソフトウエアが搭載されており、その名称やバージョンなどのソフトウエア構成情報はそれぞれのOEMおよびサプライヤにて個別に管理される。各ソフトウエアのパッケージには、他社製やオープンソースのソフトウエアやライブラリが含まれる。それらはセキュリティ上の脆弱性が存在し、セキュリティ攻撃を受ける可能性がある。特許文献1には、対象製品に実装されたソフトウエアについての脆弱性を管理するシステムであって、前記対象製品の所定の構成情報を収集して構成情報データベースに記憶させる構成情報収集部と、公開又は発見された所定の脆弱性情報を収集して脆弱性データベースに記憶させる脆弱性情報収集部と、前記構成情報及び前記脆弱性情報に基づいて、脆弱性の影響調査を行うべき対象製品を抽出する対象製品洗い出し部と、前記対象製品洗い出し部により抽出された対象製品に実装されたソフトウエアの脆弱性についての影響調査を実行する影響調査部を備えることを特徴とする脆弱性管理システムが開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載されている発明はIT(Information Technology)やIoT(Internet of Things)の分野を対象としているが、この構成をOT(Operational Technology)の分野に適用することは困難である。OT分野では事業者ごとにソフトウエア情報の管理方法が異なることが多く、事業者を跨る情報の統合が容易ではないためである。すなわち特許文献1に記載されている発明では、サプライチェーンを対象とした脆弱性の分析に改善の余地がある。
【課題を解決するための手段】
【0005】
本発明の第1の態様による脆弱性分析方法は、コンピュータが実行する脆弱性分析方法であって、複数の事業者のそれぞれから、製品の識別子ごとに前記製品を構成する部品である構成部品の識別子である構成部品識別子、および前記製品を構成し前記構成部品に含まれないソフトウエアである独自ソフトウエアの識別子を含む事業者固有データを取得する取得処理と、予め作成された対応データに基づき、異なる事業者間における前記製品の識別子および前記構成部品識別子の対応を特定する対応特定処理と、調査対象の製品である対象製品を特定する対象製品特定処理と、前記対応特定処理に基づき前記対象製品に含まれる全ての前記独自ソフトウエアを特定し、ソフトウエアの脆弱性に関するデータが格納される脆弱性DBを参照して前記対象製品に含まれるソフトウエアの脆弱性を特定する脆弱性特定処理と、を含む。
本発明の第2の態様による脆弱性分析システムは、複数の事業者のそれぞれから、製品の識別子ごとに前記製品を構成する部品である構成部品の識別子である構成部品識別子、および前記製品を構成し前記構成部品に含まれないソフトウエアである独自ソフトウエアの識別子を含む事業者固有データを取得する情報収集部と、予め作成された対応データおよび前記事業者固有データに基づき、異なる事業者間における前記製品の識別子および前記構成部品識別子の対応を特定することで前記製品と前記独自ソフトウエアの関係を示す製品構成グラフを作成する含有ソフトウエア特定部と、前記製品構成グラフに基づき、調査対象の製品である対象製品に含まれる全ての前記独自ソフトウエアを特定し、ソフトウエアの脆弱性に関するデータが格納される脆弱性DBを参照して前記対象製品に含まれるソフトウエアの脆弱性を特定する脆弱性分析部と、を備える。
【発明の効果】
【0006】
本発明によれば、サプライチェーンを構成する複数の事業者に跨った、ソフトウエアの脆弱性を分析できる。
【図面の簡単な説明】
【0007】
【
図2】情報収集サーバおよび脆弱性分析サーバの構成図
【
図3】情報収集サーバおよび脆弱性分析サーバのハードウエア構成図
【
図12】第1の実施の形態において通知情報表示部が出力デバイスに出力する画面表示の例を示す図
【
図13】含有ソフトウエア特定部の処理を示すフローチャート
【
図15】脆弱性分析部および脆弱性情報通知部の処理を示すシーケンス図
【
図16】第2の実施の形態における情報収集サーバおよび脆弱性分析サーバの構成図
【
図18】第2の実施の形態において通知情報表示部が出力デバイスに出力する画面表示の例を示す図
【発明を実施するための形態】
【0008】
―第1の実施の形態―
以下、
図1~
図15を参照して、脆弱性分析方法および脆弱性分析システムの第1の実施の形態を説明する。
【0009】
図1は、脆弱性分析システム1の全体構成図である。脆弱性分析システム1は、脆弱性分析サーバ111と、脆弱性情報公開サーバ112と、複数の事業者100を含む。脆弱性分析サーバ111、脆弱性情報公開サーバ112、および複数の事業者100は、ネットワーク110により接続される。ネットワーク110はインターネットでもよいし、専用線などを用いた閉域網でもよい。
【0010】
図1では3つの事業者100、すなわち第1会社100-1、第2会社100-2、および第3会社100-3を示している。脆弱性分析システム1に含まれる事業者の数は2以上であればよく上限はない。いずれの事業者も、本実施の形態で説明する構成を共通して備える。それぞれの事業者は本実施の形態で説明する箇所以外が異なってもよい。それぞれの事業者100は、情報収集サーバ102および現場情報蓄積サーバ101を備える。本実施の形態では、同一の構成であるが格納されるデータが異なることを示すために枝番を付している。現場情報蓄積サーバ101には、それぞれの事業者100における様々な情報が格納される。
【0011】
図2は、情報収集サーバ102および脆弱性分析サーバ111の構成図である。情報収集サーバ102は、ソフトウエア構成情報生成部300と、製造情報収集部301と、通知情報表示部302と、情報収集記憶部304とを備える。情報収集記憶部304には、ソフトウエア構成情報51と、厳密番号対応表52と、物理包含表53と、固有ソフトウエア表54とが格納される。以下では、ソフトウエア構成情報51と、厳密番号対応表52と、物理包含表53と、固有ソフトウエア表54とをあわせて、事業者固有データ50とも呼ぶ。
【0012】
ソフトウエア構成情報51は、ソフトウエアの識別子であるソフトウエア識別子と、ソフトウエアの構成内容との対応表である。ソフトウエア識別子は、個別のソフトウエアを識別する識別子である。ソフトウエア識別子は、脆弱性分析システム1における唯一性を有する。ただし、同一の事業者100において作成される同一の名称のソフトウエアであってもバージョンが異なれば異なるソフトウエア識別子が付与される。本実施の形態では、ソフトウエア識別子は「SBOM」と数字の組み合わせである。
【0013】
厳密番号対応表52は、ソフトウエア識別子とソフトウエア部品番号の対応表である。ソフトウエア部品番号は、それぞれの事業者100において広く利用されるソフトウエアの識別子である。ソフトウエア部品番号は、ソフトウエア識別子と同様に、同一の事業者100において作成される同一の名称のソフトウエアであってもバージョンが異なれば異なるソフトウエア部品番号が付与される。そのため厳密番号対応表52では、ソフトウエア識別子とソフトウエア部品番号とが1:1の対応関係で示されている。ただしソフトウエア部品番号はそれぞれの事業者100においてのみ唯一性が保証される。
【0014】
物理包含表53は、製品の識別子である製品番号と、その製品を構成する部品の識別子である部品番号の対応表である。製品を構成する部品は1以上であることが多いが、後述するように部品を含まない場合もある。ただし製品番号及び部品番号は、それぞれの事業者100においてのみ唯一性が保証される。本実施の形態における製品と部品の識別子は、製造ロットや設計を識別するものである。たとえば同一の製造ロットで製造される製品には同一の識別子が付与される。ただし、固有ソフトウエアの識別子や構成する部品の識別子が変更された場合には、製品の識別子も変更される。
【0015】
固有ソフトウエア表54は、製品番号と、製品番号で表される製品を構成するが部品には含まれないソフトウエアのソフトウエア部品番号と、の対応表である。製品番号に対応するソフトウエア部品番号は0以上である。すなわち、部品内に備えられるソフトウエア以外にさらなるソフトウエアが追加されない場合もあるし、複数のソフトウエアが追加される場合もある。固有ソフトウエア表54の「固有」は、部品には含まれないという意味で「固有」と呼んでいるにすぎない。複数の製品に共通のソフトウエアの識別子が固有ソフトウエア表54に記載されることもある。
【0016】
なお、
図1に示した情報収集サーバ102-1、情報収集サーバ102-2、および情報収集サーバ102-3の3つは、ソフトウエア構成情報生成部300、製造情報収集部301、および通知情報表示部302の動作は共通しており、具体的な事業者固有データ50の中身が異なる。
【0017】
ソフトウエア構成情報生成部300は、現場情報蓄積サーバ101から様々な情報を取得してソフトウエア構成情報51を生成する。製造情報収集部301は、現場情報蓄積サーバ101から様々な情報を取得して、厳密番号対応表52、物理包含表53、および固有ソフトウエア表54を生成する。なお、ソフトウエア構成情報生成部300および製造情報収集部301は、後述する入力デバイス203から入力された情報を利用してソフトウエア構成情報51などを生成してもよい。
【0018】
通知情報表示部302は、脆弱性分析サーバ111から受けた通知を事業者100に居る人に通知する。詳しくは後述する。情報収集記憶部304は、不揮発性の記憶装置、たとえばハードディスクドライブである。
【0019】
脆弱性分析サーバ111は、情報収集部400と、含有ソフトウエア特定部401と、脆弱性分析部402と、脆弱性情報通知部403と、脆弱性分析サーバ記憶部404とを備える。脆弱性分析サーバ記憶部404には、複数の事業者固有データ50と、事業者相関表55と、複数の製品構成グラフ56とが格納される。ただし製品構成グラフ56は説明の便宜のために記載しており、脆弱性分析サーバ記憶部404に製品構成グラフ56が格納されなくてもよい。事業者相関表55は、あらかじめ脆弱性分析サーバ記憶部404に格納される。
【0020】
情報収集部400は、それぞれの情報収集サーバ102から事業者固有データ50を収集して脆弱性分析サーバ記憶部404に格納する。含有ソフトウエア特定部401は、いずれかの製品を対象製品として製品構成グラフ56を作成し、それぞれの製品が含有するソフトウエアを特定する。脆弱性分析部402は、脆弱性情報公開サーバ112を参照して各ソフトウエアの脆弱性の有無を判断する。脆弱性分析部402はさらに、ソフトウエアが脆弱性を有することが判明した場合にはその脆弱性の情報を取得する。脆弱性情報通知部403は、脆弱性分析部402が取得した脆弱性の情報をそれぞれの情報収集サーバ102に通知する。情報収集サーバ102の通知情報表示部302は、脆弱性情報通知部403が出力する通知に基づき動作する。
【0021】
図3は、情報収集サーバ102および脆弱性分析サーバ111のハードウエア構成図である。ただし
図3では、情報収集サーバ102および脆弱性分析サーバ111に共通するハードウエア構成を示しているにすぎない。換言すると、
図3は情報収集サーバ102および脆弱性分析サーバ111のハードウエア構成が同一であることを示すものではない。また
図3では情報収集サーバ102および脆弱性分析サーバ111のそれぞれが、1台の複数の演算装置により構成されるように記載しているが、情報収集サーバ102および脆弱性分析サーバ111のそれぞれが複数の演算装置から構成されてもよい。
【0022】
情報収集サーバ102および脆弱性分析サーバ111は、プロセッサ201と、記憶デバイス202と、入力デバイス203と、出力デバイス204と、ネットワークインタフェース205と、通信バス206とを備える。プロセッサ201、記憶デバイス202、入力デバイス203、出力デバイス204、およびネットワークインタフェース205は、通信バス206により接続される。
【0023】
プロセッサ201は中央演算装置であり、不揮発性の記憶装置である記憶デバイス202に格納されたプログラムを実行することにより、前述した様々な機能を実現する。記憶デバイス202は、ROM、フラッシュメモリ、ハードディスクドライブなどである。入力デバイス203は、たとえばキーボードやマウスである。情報収集サーバ102および脆弱性分析サーバ111は入力デバイス203を備えなくてもよい。出力デバイス204は、たとえば液晶ディスプレイやスピーカーである。ネットワークインタフェース205は、ネットワーク110を介した通信を実現する。
【0024】
図4は、製品構成の一例を示す図である。ただし
図4では、ソフトウエアを一切含まない物品を記載していない。第1例示製品900は、第1部品群90xから構成される。第1部品群90xは、第1物品901と、第2物品902と、第1独自ソフトウエア903とから構成される。第1物品901は、第2部品群91xから構成される。第2部品群91xは、第2独自ソフトウエア911および第3独自ソフトウエア912から構成される。第2物品902は、第3部品群92xから構成される。第3部品群92xは、第4独自ソフトウエア924から構成される。
【0025】
第1例示製品900と第1部品群90xは、製品と部品の関係にある。第1物品901と第2部品群91xは、製品と部品の関係にある。このように、製品と部品の関係が数珠つなぎになっており、いずれの物品の製造工程に着目するかによって物品が「製品」と「部品」のいずれに該当するかが決まる。なお
図4に示す例では、第2部品群91xや第3部品群92xには物品が含まれなかったが、第2部品群91xや第3部品群92xがソフトウエアを含む物品を含んでもよい。この場合には
図4が右側に延びてゆく。
【0026】
図5は、ソフトウエア構成情報51の一例を示す図である。具体的には
図5には、第1会社100-1、第2会社100-2、および第3会社100-3のそれぞれから得られるソフトウエア構成情報51-1~51-3を示している。ソフトウエア構成情報51は1以上のレコードを有し、各レコードはソフトウエア識別子と構成内容とを含む。ただし会社ごとにレコード名が異なることがあり、必ずしも一致しない。ただしいずれのソフトウエア構成情報51のレコードも、ソフトウエア識別子とソフトウエアの構成内容に相当するデータを含む。なおソフトウエア識別子は、個別のソフトウエアを識別する識別子であり、同一の作成者が作成する同一の機能を有するソフトウエアであってもバージョンが異なれば異なるソフトウエア識別子が付与される。
【0027】
図6は、厳密番号対応表52の一例を示す図である。具体的には
図6には、第1会社100-1、第2会社100-2、および第3会社100-3のそれぞれから得られる厳密番号対応表52-1~52-3を示している。厳密番号対応表52は1以上のレコードを有し、各レコードはソフトウエア部品番号とソフトウエア識別子とを含む。厳密番号対応表52-1~52-3は、会社ごとにレコード名が異なることがあり、必ずしも一致しない。ただしいずれの厳密番号対応表52のレコードも、ソフトウエア部品番号とソフトウエア識別子に相当するデータを含む。
【0028】
ソフトウエア部品番号とソフトウエア識別子の相違点は主な利用方法にあり、ソフトウエア部品番号はそれぞれの会社内でのソフトウエアの管理に用い、ソフトウエア識別子は脆弱性情報の管理に用いることを主目的としている。すなわち、ソフトウエア部品番号とソフトウエア識別子は、バージョン番号の違いも含めて厳密にソフトウエアを識別するための識別子という点で共通している。そのためここでは、ソフトウエア部品番号とソフトウエア識別子の関係を示すテーブルを厳密番号対応表52と呼んでいる。
【0029】
図7は、物理包含表53の一例を示す図である。物理包含表53は、事業者ごとの製品と部品の関係を示す。具体的には
図7には、第1会社100-1、第2会社100-2、および第3会社100-3のそれぞれから得られる物理包含表53-1~53-3を示している。物理包含表53は1以上のレコードを有し、各レコードは製品番号と部品番号の1:1の対応関係を示している。
【0030】
図8は、固有ソフトウエア表54の一例を示す図である。固有ソフトウエア表54は、事業者ごとに製品に固有のソフトウエアを示している。具体的には固有ソフトウエア表54には、製品番号に対応する1以上のソフトウエア部品番号が示される。
【0031】
図9は、事業者相関表55の一例を示す図である。事業者相関表55は、異なる事業者100における部品番号および製品番号の対応を示す表である。具体的には、ソフトウエア構成情報51、厳密番号対応表52、物理包含表53、および固有ソフトウエア表54における項目名の対応、および製品番号と部品番号の対応を示している。具体的には、事業者相関表55の1行目~4行目には、ソフトウエア識別子、ソフトウエア部品番号、部品番号、および製品番号の事業者100ごとの名称が示されている。
【0032】
たとえば事業者相関表55の1行目の記載を
図6に示す厳密番号対応表52に適用すると、次のことがわかる。すなわち、第1会社100-1の厳密番号対応表52-1における「ソフトウエア部品番号」と、第2会社100-2の厳密番号対応表52-2における「SW部品番号」と、第3会社100-3の厳密番号対応表52-3における「ソフト管理番号」と、が同一の意味であることが示されている。
図6などでは該当箇所のみを抜き出しているので対応関係が容易に判別できるが、多数の項目が存在する場合には事業者相関表55が有用である。
【0033】
また事業者相関表55の5行目には、当該事業者100における部品番号と他の事業者における製品番号との対応関係が示されている。たとえば第1会社100-1では、文字列「Part」と、部品を製造した事業者100の識別番号と、部品を製造した事業者100ごとの製品の連番の組み合わせを部品番号にすることが示されている。事業者100の識別番号は別途管理されており、本実施の形態では第2会社100-2は「1」、第3会社100-3は「2」が設定される。また第2会社100-2は、第2会社100-2における部品番号と他の事業者100における製品番号との対応関係が、別途存在する不図示の対応表に記載されている旨が示されている。
【0034】
図10は、含有ソフトウエア特定部401が生成する製品構成グラフ56の第1の例を示す図である。この図では第1会社100-1の「Prod001」を対象製品として、「Prod001」に含まれるソフトウエアを特定している。本図において破線で囲む第1領域G101は第1会社100-1における物品の名称を示し、第2領域G102は第2会社100-2における物品の名称を示し、第3領域G103は第3会社100-3における物品の名称を示している。
図10において楕円で囲まれる文字列はソフトウエア識別子であり、四角で囲まれる文字列は製品番号、部品番号、およびソフトウエア部品番号のいずれかである。
【0035】
含有ソフトウエア特定部401は、まず物理包含表53を参照し、対象製品である「Prod001」を構成する部品の部品番号を特定する。さらに含有ソフトウエア特定部401は、固有ソフトウエア表54を参照し、「Prod001」を構成するソフトウエア部品の番号を特定する。これらの特定により、第1領域G101の記載が完成される。次に含有ソフトウエア特定部401は、第1会社100-1における部品番号に対応する、他の事業者100における製品番号を特定するために事業者相関表55を参照する。この参照により、第1会社100-1における「Part1-01」が第2会社100-2における「ABC」に相当し、第1会社100-1における「Part2-01」が第3会社100-3における「100212」に相当することを特定する。
【0036】
次に含有ソフトウエア特定部401は、物理包含表53および固有ソフトウエア表54を参照して各部品が包含するソフトウエアとして、「SP-ABC-1」および「212-2」を特定する。最後に含有ソフトウエア特定部401は、厳密番号対応表52を参照して、それぞれのソフトウエア部品に対応するソフトウエア識別子を特定することで製品構成グラフ56が完成する。
図10に示す例では、対象製品である「Prod001」は、「SBOM1001」、「SBOM2101」、および「SBOM3455」のソフトウエア識別子を有するソフトウエアを含むことが示されている。
【0037】
図11は、含有ソフトウエア特定部401が生成する製品構成グラフ56の第2の例を示す図である。この図では第1会社100-1の「Prod002」を対象製品として、「Prod001」に含まれるソフトウエアを特定している。以下では、
図10との相違点を中心に説明する。
図7の符号53-1の表、および
図8の符号54-1の表に示すように、「Prod002」は「Prod001」とは構成する部品の番号およびソフトウエア部品の番号が異なるので、
図11の領域G101にはその相違点が反映されている。第4領域G104はこれまでに示していない第4会社における物品の名称を示している。
【0038】
含有ソフトウエア特定部401は、第1会社100-1における部品の名称に対応する他の事業者100における部品の名称を「ABC2」および「100213」と特定する。物理包含表53-2において製品番号「ABC2」は「EXT-1」を含むことが示されているので、含有ソフトウエア特定部401は領域G102に反映する。含有ソフトウエア特定部401は、第2会社100-2における「EXT-1」に対応する他の事業者100におけるソフトウエア部品番号を「pd123」と特定する。さらに含有ソフトウエア特定部401は、
図6や
図7には例示はないが、厳密番号対応表52および物理包含表53を参照して、「pd123」は固有ソフトウエアとして「soft45」を含むことを特定して領域G104に記載する。
【0039】
最後に含有ソフトウエア特定部401は厳密番号対応表52を参照して、それぞれのソフトウエア部品に対応するソフトウエア識別子を特定することで製品構成グラフ56が完成する。
図11に示す例では、対象製品である「Prod002」は、「SBOM1002」、「SBOM2102」、「SBOM3456」、および「SBOM7803」のソフトウエア識別子を有するソフトウエアを含むことが示されている。
【0040】
図12は、通知情報表示部302が出力デバイス204に出力する画面表示の例を示す図である。ここでは、
図11に示した「Prod002」に含まれる「SBOM3456」に脆弱性を有する場合の例である。
図12において、第1ウインドウ204-1は第1会社100-1の情報収集サーバ102-1に表示され、第2ウインドウ204-2は第3会社100-3の情報収集サーバ102-3に表示され、第3ウインドウ204-3は第2会社100-2の情報収集サーバ102-2に表示される。なお第4会社では第2会社100-2と同様の表示がされる。
【0041】
ソフトウエア脆弱性情報は、ソフトウエア構成情報、脆弱性情報、製品番号、部品番号、および製造者が含まれうる。ソフトウエア構成情報はソフトウエア構成情報51に含まれる。脆弱性情報は脆弱性情報公開サーバ112から取得される。本例では第2会社100-2が製造したソフトウエアに脆弱性が含まれていたので、第1会社100-1に出力される第1ウインドウ204-1では、製品番号だけでなく脆弱性がある部品の識別子とその製造者も明示している。また第1ウインドウ204-1における製造番号および部品番号は、第1会社100-1における呼称が記載される。
【0042】
その一方で第2ウインドウ204-2には、ソフトウエア構成情報および脆弱性情報に加えて、脆弱性を有する固有ソフトウエアを含む物品の識別子と、ソフトウエア部品番号とが含まれる。また物品の識別子とソフトウエア部品番号は、第3会社100-3における呼称が記載される。第3ウインドウ204-3が表示される第2会社100-2および第4会社は、出荷する製品に含まれるソフトウエアに脆弱性が発見されていないので、脆弱性の情報は表示されない。
【0043】
図13は、含有ソフトウエア特定部401の処理を示すフローチャートである。含有ソフトウエア特定部401はまずステップS1401において対象製品を決定する。対象製品は入力デバイス203を介したユーザからの指示により決定されてもよいし、物理包含表53に記載されている製品を1つずつ順番に対象製品としてもよい。続くステップS1402では含有ソフトウエア特定部401は、物理包含表53および固有ソフトウエア表54を参照して、対象製品に含まれる部品および固有ソフトウエアを特定する。
【0044】
続くステップS1403では、事業者相関表55を参照して、部品の他の事業者100における対応する製品名を特定する。続くステップS1404では、物理包含表53および固有ソフトウエア表54を参照して、ステップS1403において特定した製品に含まれる部品および固有ソフトウエアを特定する。続くステップS1405では含有ソフトウエア特定部401は、未展開の物品が存在するか否かを判断する。未展開の物品とは、物理包含表53を用いて構成部品を特定していない物品である。換言すると、ステップS1404の処理対象としていない物品が未展開の物品である。含有ソフトウエア特定部401は、未展開の物品が存在すると判断する場合はステップS1403に戻り、未展開の物品が存在しないと判断する場合はステップS1406に進む。
【0045】
ステップS1406では含有ソフトウエア特定部401は、厳密番号対応表52を参照してステップS1402およびステップS1404において特定した固有ソフトウエアのソフトウエア識別子を特定して
図13に示す処理を終了する。
【0046】
図14は、脆弱性分析部402の処理を示すフローチャートである。ステップS1500では脆弱性分析部402は、脆弱性情報公開サーバ112からソフトウエア脆弱性情報を取得する。このソフトウエア脆弱性情報には、少なくともソフトウエア識別子と脆弱性情報との組み合わせが含まれる。次に脆弱性分析部402は、ステップS1502~S1504の処理を格納されているソフトウエア識別子の数だけ、処理対象のソフトウエア識別子を順番に変更して繰り返す。たとえばソフトウエア構成情報51が
図5に示すものの場合には、ソフトウエア識別子が全部で5つ記載されているので、ステップS1502~S1504の処理を5回繰り返す。
【0047】
ステップS1502では脆弱性分析部402は、処理対象のソフトウエア識別子がソフトウエア脆弱性情報に含まれるか否かを判断する。脆弱性分析部402は、処理対象のソフトウエア識別子がソフトウエア脆弱性情報に含まれると判断する場合はステップS1503に進み、処理対象のソフトウエア識別子がソフトウエア脆弱性情報に含まれないと判断する場合はステップS1505に進む。ステップS1503では脆弱性分析部402は、ソフトウエア構成情報51における処理対象のソフトウエア識別子に対応するソフトウエアの構成内容を抽出する。
【0048】
続くステップS1504では脆弱性分析部402は、製品構成グラフ56を参照して処理対象のソフトウエア識別子が示すソフトウエアが含まれる物品のリスト(以下、「脆弱含有リスト」と呼ぶ)を作成または更新する。具体的には、ステップS1504が初回に実行される際に脆弱含有リストが作成され、2回目以降にステップS1504が実行されると脆弱含有リストに追記されて更新される。たとえば
図11に示した製品構成グラフ56において、「SBOM3456」に脆弱性が発見された場合には、「Prod002」、「Part2-02」、および「100213」が脆弱含有リストに記載される。
【0049】
ステップS1501~S1505の繰り返し処理が完了すると、脆弱性分析部402は、処理対象の事業者を順番に変更して全ての事業者の分だけステップS1507~S1508の繰り返し処理を行う。ステップS1507では脆弱性分析部402は、処理対象の事業者における物理包含表53を参照し、脆弱含有リストに含まれる物品が記載されているか否かを判断する。脆弱性分析部402は、脆弱含有リストに含まれる物品が記載されていると判断する場合はステップS1508に進み、脆弱含有リストに含まれる物品が記載されていないと判断する場合はステップS1510に進む。
【0050】
ステップS1508では脆弱性分析部402は、処理対象の事業者に通知する通知情報を生成して、脆弱性情報通知部403に通知させる。具体的には脆弱性分析部402は、
図12に示したようなソフトウエア脆弱性情報を生成する。この際に脆弱性分析部402は、事業者100ごとに固有の名称を用いる。たとえば第1会社100-1における「Part2-02」と、第3会社100-3における「100213」は同一の物品を示すが、第1会社100-1への通知情報では「Part2-02」を用い、第3会社100-3への通知情報では「100213」を用いる。
【0051】
図15は、脆弱性分析部402および脆弱性情報通知部403の処理を示すシーケンス図である。まず脆弱性分析サーバ111の脆弱性分析部402が脆弱性情報公開サーバ112に対してソフトウエア脆弱性情報を要求する(S1200)。この要求に対して、脆弱性情報公開サーバ112は脆弱性分析サーバ111にソフトウエア脆弱性情報を送付する(S1201)。S1200およびS1201の処理は、
図14のステップS1500に相当する。次に脆弱性分析部402は、脆弱性のあるソフトウエアの構成内容をソフトウエア構成情報51から抽出する(S1202)。本処理は
図14のステップS1503に相当する。次に脆弱性分析部402は、脆弱含有リストを作成する(S1203)。本処理は
図14のステップS1504に相当する。
【0052】
次に脆弱性分析部402は、通知情報を生成し(S1204)、この通知情報を脆弱性情報通知部403に送付させる(S1205)。S1204およびS1205は、
図14のステップS1508に相当する。この通知情報を受信した情報収集サーバ102の通知情報表示部302は、通知された情報を出力デバイス204に表示する。
【0053】
上述した第1の実施の形態によれば、次の作用効果が得られる。
(1)コンピュータである脆弱性分析サーバ111が実行する脆弱性分析方法は、情報収集部400、含有ソフトウエア特定部401、および脆弱性分析部402による次の処理を含む。情報収集部400は、複数の事業者100のそれぞれから、製品の識別子ごとに製品を構成する部品である構成部品の識別子である構成部品識別子、および製品を構成し構成部品に含まれないソフトウエアである独自ソフトウエアの識別子を含む事業者固有データ50を取得する。含有ソフトウエア特定部401は、予め作成された事業者相関表55に基づき、異なる事業者100における製品の識別子および構成部品識別子の対応の特定(
図13のS1403)と、調査対象の製品である対象製品を特定(
図13のS1401)と、を行う。脆弱性分析部402は、対象製品に含まれる全ての独自ソフトウエアを特定し、ソフトウエアの脆弱性に関するデータが格納される脆弱性DBを参照して対象製品に含まれるソフトウエアの脆弱性を特定する。そのため、サプライチェーンを構成する複数の事業者100に跨った、ソフトウエアの脆弱性を分析できる。
【0054】
(2)事業者固有データ50には、事業者100に固有のソフトウエアの識別子であるソフトウエア部品番号と、複数の事業者100に共通するソフトウエアの識別子であるソフトウエア識別子と、の対応を示す厳密番号対応表52を含む。そのため、それぞれの事業者100は柔軟にソフトウエア部品番号を設定できるので簡便である。
【0055】
(3)脆弱性分析サーバ111が実行する処理には、特定した脆弱性に関する情報を事業者100のそれぞれに通知する通知処理(
図14のS1510、
図15のS1205)を含む。そのためそれぞれの事業者100は、自らの事業者100が作成しておらず、部品に含まれるソフトウエアの脆弱性を知ることができる。
【0056】
(4)製品の識別子は、製品の製造ロットごと、または製品の設計ごとに付与される。そのため、ロットごとまたは設計ごとにソフトウエアの脆弱性を分析できる。
【0057】
(変形例1)
上述した第1の実施の形態では、ソフトウエアを識別するためにソフトウエア識別子およびソフトウエア部品番号の2つが用いられた。しかしソフトウエア部品番号を用いることなくソフトウエア識別子のみを用いてもよい。すなわちこの場合は、それぞれの事業者100において、ソフトウエア部品番号の代わりにソフトウエア識別子を用いる。
【0058】
(変形例2)
上述した第1の実施の形態では、製品と部品の識別子は、製造ロットや設計を識別するものであり、同一の製造ロットで製造される製品には同一の識別子が付与された。しかし製品や部品の識別子は1つずつの製品や部品を識別する識別子、いわゆる個体識別番号であってもよい。
【0059】
―第2の実施の形態―
図16~
図18を参照して、脆弱性分析方法および脆弱性分析システムの第2の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、製品の購入者も管理する点で、第1の実施の形態と異なる。
【0060】
図16は、第2の実施の形態における情報収集サーバ102および脆弱性分析サーバ111の構成図である。本実施の形態における情報収集サーバ102は、販売情報収集部309をさらに備える。販売情報収集部309は、現場情報蓄積サーバ101から製品の販売データを収集し、顧客表59を生成する。本実施の形態では、ソフトウエア構成情報51と、厳密番号対応表52と、物理包含表53と、固有ソフトウエア表54と、に顧客表59を加えたものを事業者固有データ50Aと呼ぶ。事業者固有データ50Aは、脆弱性分析サーバ111の情報収集部400により収集される。
【0061】
図17は、顧客表59の一例を示す図である。具体的には
図17には、第1会社100-1、第2会社100-2、および第3会社100-3のそれぞれから得られる顧客表59-1~59-3を示している。顧客表59は1以上のレコードを有し、各レコードは顧客番号と製品番号とを含む。ただし以下では、顧客表59を「購入者データ」とも呼ぶ。
【0062】
本実施の形態における脆弱性分析部402は、顧客表59を参照して通知情報に顧客番号を含める。具体的には、通知情報に含める製品番号に対応する顧客番号を顧客表59を参照して特定し、特定した顧客番号を通知情報に追加する。
【0063】
図18は、第2の実施の形態において通知情報表示部302が出力デバイス204に出力する画面表示の例を示す図である。第1の実施の形態における
図12との相違点は、右端に顧客の欄が追加されている点である。
【0064】
上述した第2の実施の形態によれば、次の作用効果が得られる。
(5)製品の識別子は、個体を識別する個体識別番号である。脆弱性分析サーバ111の処理には、製品の購入者を識別する顧客識別子と製品の識別子との対応を示す購入者データである顧客表59を収集することと、特定した脆弱性を有するソフトウエアを含む製品について、当該製品を製造した事業者に特定した脆弱性に関する情報、および購入者データを用いて特定した当該製品を購入した顧客を示す顧客識別子を通知することと、を含む。そのため、脆弱性を有するソフトウエアが含まれる製品を購入した顧客を容易に特定できる。
【0065】
(第2の実施の形態の変形例)
上述した第2の実施の形態では、脆弱性分析サーバ111が顧客番号を特定した。しかし脆弱性分析サーバ111の代わりに情報収集サーバ102が顧客番号を特定してもよい。すなわち情報収集サーバ102は、脆弱性分析サーバ111から受信するソフトウエア脆弱性情報に記載された製品番号に対応する顧客番号を顧客表59を参照して特定し、ソフトウエア脆弱性情報に追加してもよい。この場合には、情報収集サーバ102は脆弱性分析サーバ111に顧客表59を送付しなくてよい。
【0066】
上述した各実施の形態および変形例において、機能ブロックの構成は一例に過ぎない。別々の機能ブロックとして示したいくつかの機能構成を一体に構成してもよいし、1つの機能ブロック図で表した構成を2以上の機能に分割してもよい。また各機能ブロックが有する機能の一部を他の機能ブロックが備える構成としてもよい。
【0067】
上述した各実施の形態および変形例において、脆弱性分析サーバ111が不図示の入出力インタフェースを備え、必要なときに入出力インタフェースと脆弱性分析サーバ111が利用可能な媒体を介して、他の装置から脆弱性分析サーバ111の記憶デバイス202にプログラムが読み込まれてもよい。ここで媒体とは、例えば入出力インタフェースに着脱可能な記憶媒体、または通信媒体、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。また、プログラムにより実現される機能の一部または全部がハードウエア回路やFPGAにより実現されてもよい。
【0068】
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【符号の説明】
【0069】
1 :脆弱性分析システム
50 :事業者固有データ
51 :ソフトウエア構成情報
52 :厳密番号対応表
53 :物理包含表
54 :固有ソフトウエア表
55 :事業者相関表
56 :製品構成グラフ
100 :事業者
101 :現場情報蓄積サーバ
102 :情報収集サーバ
111 :脆弱性分析サーバ
112 :脆弱性情報公開サーバ
300 :ソフトウエア構成情報生成部
301 :製造情報収集部
302 :通知情報表示部
400 :情報収集部
401 :含有ソフトウエア特定部
402 :脆弱性分析部
403 :脆弱性情報通知部