(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-04-10
(45)【発行日】2024-04-18
(54)【発明の名称】情報処理装置及び情報処理方法
(51)【国際特許分類】
G06F 21/57 20130101AFI20240411BHJP
【FI】
G06F21/57 370
(21)【出願番号】P 2023188113
(22)【出願日】2023-11-02
【審査請求日】2023-11-02
【早期審査対象出願】
(73)【特許権者】
【識別番号】521541734
【氏名又は名称】株式会社アシュアード
(74)【代理人】
【識別番号】110002815
【氏名又は名称】IPTech弁理士法人
(72)【発明者】
【氏名】鈴木 康弘
(72)【発明者】
【氏名】芳澤 正敏
(72)【発明者】
【氏名】古好 佑輔
(72)【発明者】
【氏名】阿部 慎一朗
(72)【発明者】
【氏名】佐久間 友樹
(72)【発明者】
【氏名】佐藤 齊行
(72)【発明者】
【氏名】亀山 俊昭
【審査官】宮司 卓佳
(56)【参考文献】
【文献】特開2020-004006(JP,A)
【文献】特開2020-194344(JP,A)
【文献】特開2022-097680(JP,A)
【文献】矢野 智彦 他,ソフトウェアの依存関係に基づいた可視化によるセキュリティリスク把握手法の提案と評価,電子情報通信学会技術研究報告,一般社団法人電子情報通信学会,2023年03月06日,Vol.122 No.422,第73頁-第78頁
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/57
(57)【特許請求の範囲】
【請求項1】
複数のソフトウェアの名称と、前記ソフトウェアの第1識別子とを対応付ける辞書情報を格納する格納部であって、前記複数のソフトウェアの名称には、同一のソフトウェアを示す複数の名称が含まれ、前記同一のソフトウェアを示す複数の名称に対し同一の前記第1識別子を対応付けて格納する前記格納部と、
対象ソフトウェアの名称を取得する取得部と、
前記辞書情報を参照して、前記対象ソフトウェアの名称に対応する前記対象ソフトウェアの第1識別子を特定する制御部と、を備え、
前記格納部は、前記ソフトウェアの第1識別子と脆弱性情報とを対応付けて格納する脆弱性データベースを格納し、
前記制御部は、前記対象ソフトウェアの第1識別子を検索キーとして、前記脆弱性データベースから、前記対象ソフトウェアの脆弱性情報を特定し、
前記格納部は、前記脆弱性データベースにおいて、パッケージ管理ツールによって管理されるソフトウェアの第2識別子と脆弱性情報とを対応付けて格納しており、
前記取得部は、パッケージ管理ツールによって管理される前記対象ソフトウェアの第2識別子を取得し、
前記制御部は、前記対象ソフトウェアの第2識別子を検索キーとして、前記脆弱性データベースから、前記対象ソフトウェアの脆弱性情報を特定する、情報処理装置。
【請求項2】
前記取得部は、前記対象ソフトウェアの名称とともに、前記対象ソフトウェアのバージョン情報を取得し、
前記制御部は、前記対象ソフトウェアの名称及び前記対象ソフトウェアのバージョン情報に対応する前記対象ソフトウェアの第1識別子を特定し、前記脆弱性データベースにおいて前記脆弱性情報と対応付けられる前記第1識別子に含まれるバージョン情報に、前記対象ソフトウェアの第1識別子に含まれるバージョン情報が含まれるかどうかを判定し、含まれると判定した場合に、前記対象ソフトウェアの脆弱性情報を特定する、請求項1に記載の情報処理装置。
【請求項3】
前記取得部は、前記対象ソフトウェアの第2識別子に含まれる対象ソフトウェアのバージョン情報を取得し、
前記制御部は、前記脆弱性データベースにおいて前記脆弱性情報と対応付けられる前記第2識別子に含まれるバージョン情報に、前記対象ソフトウェアの第2識別子に含まれるバージョン情報が含まれるかどうかを判定し、含まれると判定した場合に、前記対象ソフトウェアの脆弱性情報を特定する、請求項1に記載の情報処理装置。
【請求項4】
前記格納部は、前記対象ソフトウェアの第1識別子及び前記対象ソフトウェアの第2識別子の少なくともどちらか1つと、前記対象ソフトウェアの名称とを対応付けて格納するとともに、前記対象ソフトウェアの名称と、対象ソフトウェアのサポートが終了する日付とを対応付けて格納し、
前記制御部は、前記対象ソフトウェアの第1識別子及び前記対象ソフトウェアの第2識別子の少なくともどちらか1つに基づいて、前記対象ソフトウェアの名称及び前記対象ソフトウェアのサポートが終了する日付を特定し、前記対象ソフトウェアのサポートが終了する日付に基づいて、前記対象ソフトウェアに関するアラートを出力する、請求項1に記載の情報処理装置。
【請求項5】
前記取得部は、ソフトウェアを構成するコンポーネントのリストを外部からインポートすることによって取得し、前記コンポーネントのリストから、前記対象ソフトウェアの名称を取得する、請求項1に記載の情報処理装置。
【請求項6】
前記制御部は、特定された前記対象ソフトウェアの脆弱性情報に対応する脆弱性について、第三者機関が設定する前記脆弱性のレベルを示す情報、前記対象ソフトウェアに対して外部からアクセス可能であるか否かを示す情報、前記脆弱性に対する攻撃による業務への影響が大きいか否かを示す情報、前記脆弱性に対する攻撃コードが流通しているか否かを示す情報、及び、前記脆弱性の悪用が確認されている否かを示す情報の少なくともいずれか1つに基づいて、前記対象ソフトウェアの脆弱性情報の優先度を設定する、請求項1に記載の情報処理装置。
【請求項7】
前記制御部は、前記対象ソフトウェアの脆弱性情報が特定脆弱性情報であり、前記対象ソフトウェアに対して外部からアクセス可能である場合に、前記対象ソフトウェアの脆弱性情報の優先度として最も高い優先度を設定し、
前記特定脆弱性情報は、前記対象ソフトウェアの脆弱性情報に対応する脆弱性の悪用が確認された脆弱性情報である、請求項1に記載の情報処理装置。
【請求項8】
前記制御部は、
特定された前記対象ソフトウェアの脆弱性情報に基づいて、前記対象ソフトウェアの脆弱性情報に対応する脆弱性に対する攻撃コードが流通している旨を特定した場合に、前記対象ソフトウェアの脆弱性情報の優先度として第1優先度を設定し、
前記対象ソフトウェアの脆弱性情報が特定脆弱性情報であり、前記対象ソフトウェアに対して外部からアクセス可能である場合に、前記対象ソフトウェアの脆弱性情報の優先度として前記第1優先度よりも高い第2優先度を設定し、
前記特定脆弱性情報は、前記脆弱性の悪用が確認された脆弱性情報である、請求項1に記載の情報処理装置。
【請求項9】
前記制御部は、
特定された前記対象ソフトウェアの脆弱性情報に基づいて、前記対象ソフトウェアの脆弱性情報に対応する脆弱性に対する攻撃コードが流通している旨を特定し、かつ、前記対象ソフトウェアに対して外部からアクセス可能である場合に、前記対象ソフトウェアの脆弱性情報の優先度として第3優先度を設定し、
前記対象ソフトウェアの脆弱性情報が特定脆弱性情報であり、前記対象ソフトウェアに対して外部からアクセス可能でない場合に、前記対象ソフトウェアの脆弱性情報の優先度として前記第3優先度よりも低い第4優先度を設定し、
前記特定脆弱性情報は、前記脆弱性の悪用が確認された脆弱性情報である、請求項1に記載の情報処理装置。
【請求項10】
プロセッサを備えるコンピュータによって実行される情報処理方法であって、
前記コンピュータは、
格納部において、複数のソフトウェアの名称と、前記ソフトウェアの第1識別子とを対応付ける辞書情報を格納する格納部であって、前記複数のソフトウェアの名称には、同一のソフトウェアを示す複数の名称が含まれ、前記同一のソフトウェアを示す複数の名称に対し同一の前記第1識別子を対応付けて格納しており、
前記情報処理方法は、前記プロセッサが、
対象ソフトウェアの名称を取得するステップと、
前記辞書情報を参照して、前記対象ソフトウェアの名称に対応する前記対象ソフトウェアの第1識別子を特定するステップと、を実行し、
前記格納部は、前記ソフトウェアの第1識別子と脆弱性情報とを対応付けて格納する脆弱性データベースを格納しており、
前記プロセッサが、前記特定するステップにおいて、前記対象ソフトウェアの第1識別子を検索キーとして、前記脆弱性データベースから、前記対象ソフトウェアの脆弱性情報を特定し、
前記格納部は、前記脆弱性データベースにおいて、パッケージ管理ツールによって管理されるソフトウェアの第2識別子と脆弱性情報とを対応付けて格納しており、
前記プロセッサが、前記取得するステップにおいて、パッケージ管理ツールによって管理される前記対象ソフトウェアの第2識別子を取得し、
前記特定するステップにおいて、前記対象ソフトウェアの第2識別子を検索キーとして、前記脆弱性データベースから、前記対象ソフトウェアの脆弱性情報を特定する、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及び情報処理方法に関する。
【背景技術】
【0002】
従来、ソフトウェアの脆弱性に関する情報を特定する技術が提案されている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、ソフトウェアの名称などに表記揺れが存在するケースなどには、脆弱性に関する情報や、その他ソフトウェアに関する情報の特定が難しい場合がある。
【0005】
そこで、本発明は、上述した課題を解決するためになされたものであり、脆弱性に関する情報やソフトウェアに関する情報を適切に特定することを可能とする情報処理装置及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
開示の態様は、ソフトウェアの特定名称と、前記特定名称を有するソフトウェアと同一のソフトウェアを示す参照名称とを対応付ける辞書情報を格納する格納部と、対象ソフトウェアの参照名称を取得する取得部と、前記辞書情報を参照して、前記対象ソフトウェアの参照名称に対応する前記対象ソフトウェアの特定名称を特定し、特定した前記対象ソフトウェアの特定名称に対応する前記対象ソフトウェアの第1識別子を特定する制御部と、を備え、前記格納部は、前記ソフトウェアの第1識別子と脆弱性情報を対応付けて格納する脆弱性データベースを格納し、前記制御部は、前記対象ソフトウェアの第1識別子を検索キーとして、前記脆弱性データベースから、前記対象ソフトウェアの脆弱性情報を特定する、情報処理装置である。
【0007】
開示の態様は、ソフトウェアの特定名称と、前記特定名称を有するソフトウェアと同一のソフトウェアを示す参照名称とを対応付ける辞書情報を格納するステップAと、対象ソフトウェアの参照名称を取得するステップBと、前記辞書情報を参照して、前記対象ソフトウェアの参照名称に対応する前記対象ソフトウェアの特定名称を特定し、特定した前記対象ソフトウェアの特定名称に対応する前記対象ソフトウェアの第1識別子を特定するステップCと、前記ソフトウェアの第1識別子と脆弱性情報を対応付けて格納する脆弱性データベースを格納するステップDと、前記対象ソフトウェアの第1識別子を検索キーとして、前記脆弱性データベースから、前記対象ソフトウェアの脆弱性情報を特定するステップEと、を備える、情報処理方法。
【発明の効果】
【0008】
本発明によれば、脆弱性情報を適切に特定することを可能とする情報処理装置及び情報処理方法を提供することができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施形態に係る情報処理システム100を示す図である。
【
図2】
図2は、実施形態に係る情報処理装置10を示す図である。
【
図3】
図3は、実施形態に係るソフトウェア情報の一例を示す図である。
【
図4】
図4は、実施形態に係る辞書情報の一例を示す図である。
【
図5】
図5は、実施形態に係る脆弱性情報の一例を示す図である。
【
図6】
図6は、実施形態に係る脆弱性DBに格納される情報の一例を示す図である。
【
図7】
図7は、実施形態に係る脆弱性DBに格納される情報の一例を示す図である。
【
図8】
図8は、実施形態に係るトリアージについて説明するための図である。
【
図9】
図9は、実施形態に係る情報処理方法を示す図である。
【
図10】
図10は、変更例1に係るマスタDBに格納される情報の一例である。
【発明を実施するための形態】
【0010】
以下において、実施形態について図面を参照しながら説明する。なお、以下の図面の記載において、同一又は類似の部分には、同一又は類似の符号を付している。
【0011】
但し、図面は模式的なものであり、各寸法の比率などは現実のものとは異なる場合があることに留意すべきである。従って、具体的な寸法などは以下の説明を参酌して判断すべきである。また、図面相互間においても互いの寸法の関係又は比率が異なる部分が含まれている場合があることは勿論である。
【0012】
[開示の概要]
開示の概要に係る情報処理装置は、ソフトウェアの特定名称と、前記特定名称を有するソフトウェアと同一のソフトウェアを示す参照名称とを対応付ける辞書情報を格納する格納部と、対象ソフトウェアの参照名称を取得する取得部と、前記辞書情報を参照して、前記対象ソフトウェアの参照名称に対応する前記対象ソフトウェアの特定名称を特定し、特定した前記対象ソフトウェアの特定名称に対応する前記対象ソフトウェアの第1識別子を特定する制御部と、を備え、前記格納部は、前記ソフトウェアの第1識別子と脆弱性情報を対応付けて格納する脆弱性データベースを格納し、前記制御部は、前記対象ソフトウェアの第1識別子を検索キーとして、前記脆弱性データベースから、前記対象ソフトウェアの脆弱性情報を特定する。
【0013】
開示の概要に係る情報処理方法は、ソフトウェアの特定名称と、前記特定名称を有するソフトウェアと同一のソフトウェアを示す参照名称とを対応付ける辞書情報を格納するステップAと、対象ソフトウェアの参照名称を取得するステップBと、前記辞書情報を参照して、前記対象ソフトウェアの参照名称に対応する前記対象ソフトウェアの特定名称を特定し、特定した前記対象ソフトウェアの特定名称に対応する前記対象ソフトウェアの第1識別子を特定するステップCと、前記ソフトウェアの第1識別子と脆弱性情報を対応付けて格納する脆弱性データベースを格納するステップDと、前記対象ソフトウェアの第1識別子を検索キーとして、前記脆弱性データベースから、前記対象ソフトウェアの脆弱性情報を特定するステップEと、を備える。
【0014】
開示の概要では、情報処理装置は、辞書情報を参照して、対象ソフトウェアの参照名称に対応する対象ソフトウェアの特定名称を特定し、特定した対象ソフトウェアの特定名称に対応する対象ソフトウェアの第1識別子を特定し、対象ソフトウェアの第1識別子を検索キーとして、脆弱性データベースから、対象ソフトウェアの脆弱性情報を特定する。このような構成によれば、ソフトウェアの名称などに表記揺れが存在するケースであっても、辞書情報を参照して、対象ソフトウェアの参照名称から対象ソフトウェアの第1識別子を特定することによって、対象ソフトウェアの脆弱性情報を適切に特定することができる。
【0015】
[実施形態]
(情報処理システム)
以下において、実施形態に係る情報処理システムについて説明する。
図1は、実施形態に係る情報処理システム100を示す図である。
【0016】
図1に示すように、情報処理システム100は、情報処理装置10と、端末20と、システムサーバ30と、脆弱性サーバ40と、を有する。情報処理装置10、端末20、システムサーバ30、脆弱性サーバ40は、ネットワークによって接続される。特に限定されるものではないが、ネットワーク200は、インターネットによって構成されてもよい。ネットワーク200は、ローカルエリアネットワークを含んでもよく、移動体通信網を含んでもよく、VPN(Virtual Private Network)を含んでもよい。
【0017】
情報処理装置10は、ソフトウェアの脆弱性情報を特定する装置である。ソフトウェアは、システムサーバ30上で動作するソフトウェアであってもよい。以下において、脆弱性情報を特定する対象であるソフトウェアを対象ソフトウェアと称してもよい。情報処理装置10の詳細については後述する。
【0018】
端末20は、ソフトウェアの脆弱性を管理する管理者によって用いられる端末である。端末20は、パーソナルコンピュータであってもよく、スマートフォンであってもよく、タブレット端末であってもよい。端末20は、表示部21を有してもよい。表示部21は、液晶パネル、有機EL(Electroluminescence)パネル、LED(Light Emitting Diode)などのディスプレイによって構成されてもよい。
【0019】
システムサーバ30は、各種のソフトウェアを含むシステムが構築され、提供するサーバである。システムサーバ30上で動作するソフトウェアは、OSS(Open Source Software)を含んでもよい。
【0020】
システムサーバ30上で動作するソフトウェアは、ソフトウェアを構成するコンポーネントのリストによって管理されてもよい。ソフトウェアを構成するコンポーネント(ソフトウェア部品)のリストは、SBOM(Software Bill of Material)と称されてもよい。SBOMに含まれるコンポーネントは、ソフトウェアと読み替えてもよい。
【0021】
システムサーバ30上で動作するソフトウェアは、パッケージ管理ツール(パッケージマネージャー)によって管理されるソフトウェアを含んでもよい。パッケージ管理ツールは、ソフトウェアの開発で使用するコンポーネント等の部品等をパッケージとして管理するツールであり、ソフトウェアのパッケージの配布、インストール・アンインストール・バージョンアップ等の手段の提供、パッケージ間の依存関係の管理等の機能を有する。パッケージ管理ツールは、ソフトウェアのユーザ以外の第三者によって提供されるツールであってもよい。
【0022】
脆弱性サーバ40は、ソフトウェアの脆弱性情報を管理する外部サーバである。脆弱性サーバ40は、1以上のサーバによって構成されてもよい。1以上の脆弱性サーバ40は、NVD(National Vulnerability Database)、ICAT(IPA Cyber security Alert Service) Metabase、JVN(Japan Vulnerability Notes)、JVN iPedia、OSVDB(Open Source Vulnerability Database)等の外部の脆弱性情報ウェブサイト(データベース)の中から選択された1以上のウェブサイトと接続されるサーバを含んでもよい。1以上の脆弱性サーバ40は、ソフトウェアのサプライヤが独自に提供する自社の脆弱性情報を格納するサーバ(例えば、セキュリティアドバイザリ)を含んでもよい。
【0023】
(情報処理装置)
以下において、実施形態に係る情報処理装置10について説明する。
図2は、実施形態に係る情報処理装置10を示す図である。
【0024】
図2に示すように、情報処理装置10は、送信部11と、受信部12と、格納部13と、制御部14と、を有する。
【0025】
送信部11は、通信モジュールによって構成されてもよい。通信モジュールは、IEEE802.11a/b/g/n/ac/ax、LTE、5G、6Gなどの規格に準拠する無線通信モジュールであってもよく、IEEE802.3などの規格に準拠する有線通信モジュールであってもよい。
【0026】
例えば、送信部11は、情報処理装置10の処理結果を表示する表示データを端末20に送信する。送信部11は、システムサーバ30及び脆弱性サーバ40にデータを送信してもよい。
【0027】
受信部12は、通信モジュールによって構成されてもよい。通信モジュールは、IEEE802.11a/b/g/n/ac/ax、LTE、5G、6Gなどの規格に準拠する無線通信モジュールであってもよく、IEEE802.3などの規格に準拠する有線通信モジュールであってもよい。
【0028】
第1に、受信部12は、システムサーバ30上で動作するソフトウェア(対象ソフトウェア)に関する情報(以下、ソフトウェア情報)をシステムサーバ30から受信してもよい。ソフトウェア情報は、SBOMであってもよく、パッケージ管理ツールによって管理される対象ソフトウェアの情報であってもよい。ソフトウェア情報は、対象ソフトウェアのバージョン情報を含んでもよい。受信部12は、システムサーバ30上で動作するソフトウェアを、ソフトウェア解析ツール等を用いてスキャンすることによって、ソフトウェアに含まれるコンポーネント(ソフトウェア部品)を自動的に特定し、SBOMを作成してもよい。
【0029】
SBOMは、ソフトウェア部品表のことで、ソフトウェアの内部で使用されているOSS(Open Source Software)を含むコンポーネント(ソフトウェア部品)を一覧化したものであり、
図3に示すように、各コンポーネント(AAAA ver.xxx、BBBB ver.xxx、CCCC ver.xxx、DDDD ver.xxx)の依存関係を示す情報を含む。具体的には、SBOMは、コンポーネント名、サプライヤ名、バージョン、作者、ハッシュ、依存関係などを対応付けた情報である。また、SBOMは、json形式やxml形式等の形式で出力されたり表示されたりしてもよい。
【0030】
コンポーネント名は、コンポーネントの名称である。コンポーネントは、対象ソフトウェアの一例である。サプライヤ名は、コンポーネントの提供者の名称である。バージョンは、コンポーネントのバージョンを一意に識別する情報である。バージョンは、対象ソフトウェアのバージョン情報の一例である。作者は、当該コンポーネントに関するSBOMの作者の名称である。ハッシュは、コンポーネントのハッシュ値である。依存関係は、コンポーネントの依存関係を示す情報である。
【0031】
さらに、SBOMは、SBOMを作成した日付及び時刻を示すタイムスタンプを含んでもよい。また、SBOMは、他のシステム等、情報処理装置10の外部で作成されたファイルを、情報処理装置10にインポートすることで取得されてもよい。
【0032】
例えば、パッケージ管理ツールによって管理される対象ソフトウェアの情報は、パッケージ管理ツールによって管理される対象ソフトウェアの第2識別子を含んでもよい。第2識別子は、パッケージ管理ツールによって管理されるソフトウェアを一意に識別する識別子である。第2識別子は、purl(package universal resource locator)であってもよい。purlは、Package URLと呼ばれてもよく、パッケージ管理ツールのパッケージ名やバージョン情報の表記に関する統一されたルールであり、パッケージ管理ツールによって管理されるソフトウェアを一意に識別する識別子である。パッケージ管理ツールによって管理される対象ソフトウェアの情報は、対象ソフトウェアの第2識別子とともに、対象ソフトウェアのバージョン情報を含んでもよい。ここで、第2識別子が、パッケージの名称を示す部分と、バージョン情報を示す部分とを含んでもよい。
【0033】
第2に、受信部12は、脆弱性サーバ40から脆弱性情報を受信する。脆弱性サーバ40から受信する脆弱性情報は、ソフトウェアの脆弱性を一意に識別する脆弱性識別子、脆弱性によって影響を受けるソフトウェア、ソフトウェアの脆弱性に対する攻撃コード(PoC; Proof of Concept code)が流通しているか否か、ソフトウェアの脆弱性のレベルを示すスコア情報などを含んでもよい。
【0034】
例えば、脆弱性サーバ40がNVDに関するサーバである場合には、
図4に示すように、脆弱性情報は、脆弱性識別子(CVE-2021-xxxx)、概要、スコア情報、対応方法、影響を受けるソフトウェアを含んでもよい。
【0035】
概要は、脆弱性に関する説明を含んでもよい。例えば、説明は、脆弱性によって生じる事象を含んでもよい。
【0036】
スコア情報は、ソフトウェアの脆弱性のレベルを示す情報(以下、スコア値)であってもよい。例えば、スコア情報は、CVSS(Common Vulnerability Scoring System)で定義されるスコア値(例えば、Base Score)であってもよい。
【0037】
対応方法は、脆弱性に対する対応方法(例えば、アップデートなど)を示す情報や、対応方法について記載されているウェブサイトURL等を含んでもよい。
【0038】
影響を受けるソフトウェアは、脆弱性によって影響を受けるソフトウェアを示す情報を含んでもよく、後述するCPE(Common Platform Enumeration)等の識別子によってソフトウェアが特定されてもよい。脆弱性によって影響を受けるソフトウェアは、SBOMに含まれるソフトウェアであってもよく、パッケージ管理ツールによって管理されるソフトウェアであってもよい。
【0039】
影響を受けるソフトウェアは、脆弱性によって影響を受けるソフトウェアのバージョン情報を含んでもよい。バージョン情報は、1つのバージョンを直接的に示す情報であってもよく、バージョンの範囲を示す情報であってもよい。なお、CPEによってソフトウェアが特定される場合、バージョン情報は、CPEの中に含まれる情報の一つであってもよい。
【0040】
実施形態では、受信部12は、対象ソフトウェアの参照名称を取得する取得部を構成する。取得は、受信と相互に読み替えられてもよい。参照名称は、受信部12によって受信される対象ソフトウェアの名称を意味しており、SBOMの作成者毎に表記揺れを含み得る名称であってもよい。
【0041】
格納部13は、SSD(Solid State Drive)、HDD(Hard Disk Drive)などの記憶媒体によって構成されており、様々な情報を格納する。
【0042】
第1に、格納部13は、ソフトウェアの特定名称と、特定名称を有するソフトウェアと同一のソフトウェアを示す参照名称とを対応付ける辞書情報を格納する。特定名称は、情報処理装置10で用いるソフトウェアの名称を意味しており、ソフトウェアを一意に識別する名称であってもよい。特定名称は、ソフトウェアのサプライヤの名称及びアセットの名称によって構成されてもよい。
【0043】
さらに、辞書情報は、ソフトウェアの特定名称と、特定名称を有するソフトウェアの第1識別子とを対応付ける情報を含んでもよい。第1識別子は、ソフトウェアを一意に識別する識別子であってもよい。第1識別子は、脆弱性サーバ40に格納される脆弱性情報と対応付けることが可能な識別子であってもよい。第1識別子は、脆弱性サーバ40に格納される脆弱性識別子(例えば、CVE)と対応付けることが可能な識別子であってもよい。例えば、第1識別子は、CPE(Common Platform Enumeration)であってもよい。CPEは、ソフトウェア名やバージョン情報の表記に関する統一されたルールであり、サプライヤ名、製品名、バージョン情報などの情報を含むソフトウェアの識別子である。第1識別子は、ソフトウェア名とバージョン情報とを含んで構成されてもよい。また、第1識別子には、サプライヤ名、アップデートに関する情報、エディションに関する情報(無償版、スタンダード版など)、言語に関する情報などが含まれてもよい。
【0044】
具体的には、格納部13は、
図5に示す辞書情報を格納してもよい。
図5に示すように、辞書情報は、特定名称、サプライヤ名、参照名称及び第1識別子を対応付ける情報であってもよい。上述したように、参照名称は、SBOMの作成者毎に表記揺れを含み得る名称であってもよい。
【0045】
実施形態では、格納部13は、ソフトウェアの特定名称と、特定名称を有するソフトウェアと同一のソフトウェアを示す参照名称とを対応付ける辞書情報を格納する格納部を構成する。
【0046】
第2に、格納部13は、脆弱性データベース(以下、脆弱性DB)を格納する。脆弱性DBは、脆弱性サーバ40から受信する脆弱性情報に基づいた情報を格納してもよい。脆弱性DBは、脆弱性サーバ40から受信する脆弱性情報から各種情報を抽出することによって得られる情報を格納してもよい。また、脆弱性DBは、セキュリティ関連のニュースサイトやブログ等、他のウェブサイト等からユーザが入手した情報を、ユーザ自身が入力・登録し、格納してもよく、脆弱性サーバ40から取得した脆弱性情報を修正してもよい。これにより、NVD等の外部の脆弱性情報ウェブサイトに掲載されていない情報を収集し脆弱性DBに蓄積することができるとともに、誤記等により脆弱性情報サイトの情報が間違っていた場合であっても、正しい情報を脆弱性DBに蓄積することができる。脆弱性DBに格納される情報としては、以下に示すオプションが考えられる。
【0047】
オプション1-1では、脆弱性DBは、
図6に示す情報を格納する。
図6に示すように、脆弱性DBは、脆弱性識別子、第1識別子及び脆弱性情報を対応付ける情報を格納してもよい。
【0048】
脆弱性識別子は、上述したように、ソフトウェアの脆弱性を識別する一意に識別する識別子である。脆弱性識別子は、CVEを含んでもよい。脆弱性識別子は、脆弱性サーバ40から受信する脆弱性情報から抽出されてもよい。
【0049】
第1識別子は、上述したように、CPEなど、ソフトウェアを一意に識別する識別子であってもよい。第1識別子は、脆弱性サーバ40に格納される脆弱性情報と対応付けることが可能な識別子であってもよく、脆弱性識別子によって特定される脆弱性により影響を受けるソフトウェアを示す。第1識別子は、脆弱性サーバ40に格納される脆弱性識別子(例えば、CVE)と対応付けることが可能な識別子であってもよい。第1識別子は、脆弱性サーバ40から受信する脆弱性情報(例えば、
図4に示す“影響を受けるソフトウェア”)から抽出されてもよい。
【0050】
第1識別子は、ソフトウェアのバージョンを含んでもよい。バージョンは、上述したように、ソフトウェアのバージョンを一意に識別する情報(バージョン情報)である。バージョンは、1つのバージョンを直接的に示す情報(例えば、cpe:x:x:xxxxx:xxxx:1.1の”1.1”)であってもよく、バージョンの範囲を示す情報(例えば、cpe:y:y:yyyyy:yyyy:*に対応する“from ver.xxx1 up to ver.xxxN”)であってもよい。バージョンは、脆弱性サーバ40から受信する脆弱性情報(例えば、
図4に示す“影響を受けるソフトウェア”)から抽出されてもよい。
【0051】
脆弱性情報は、PoC情報、スコア情報、対応情報、その他を含んでもよい。
【0052】
PoC情報は、流通している攻撃コードを示す情報を含んでもよい。PoC情報は、ソフトウェアの脆弱性に対する攻撃コードが流通しているか否かを示す情報であると考えてもよい。例えば、PoC情報は、流通している攻撃コードを示す情報を含む場合に、攻撃コードが流通していることを示す情報であり、流通している攻撃コードを示す情報を含まない場合に、攻撃コードが流通していないことを示す情報であってもよい。PoC情報は、脆弱性サーバ40から受信する脆弱性情報から抽出されてもよい。
【0053】
スコア情報は、上述したように、ソフトウェアの脆弱性のレベルを示すスコア値であってもよい。スコア情報は、CVSSで定義されるスコア値(例えば、Base Score)であってもよい。スコア情報は、脆弱性サーバ40から受信する脆弱性情報(例えば、
図4に示す“スコア情報”)から抽出されてもよい。
【0054】
対応方法は、上述したように、脆弱性に対する対応方法(例えば、ソフトウェアのアップデートなど)を示す情報を含んでもよい。対応方法は、脆弱性サーバ40から受信する脆弱性情報(例えば、
図4に示す“対応方法”)から抽出されてもよい。
【0055】
その他は、PoC情報、スコア情報及び対応方法以外の情報であってもよい。特に限定されるものではないが、その他は、脆弱性の悪用が確認された旨を示す情報を含んでもよい。脆弱性の悪用が確認された旨を示す情報は、流通する攻撃コードが悪用された旨を示す情報と読み替えてもよい。脆弱性の悪用が確認された旨を示す情報は、脆弱性サーバ40(例えば、Known Exploited Vulnerabilities Catalog)から取得されてもよい。その他は、脆弱性に対する攻撃が行われた場合に業務に対する影響の大きさを示す情報を含んでもよい。業務に対する影響の大きさは、影響が大きいか小さいかの2段階で表されてもよい。
【0056】
オプション1-2では、脆弱性DBは、
図7に示す情報を格納する。
図7に示すように、脆弱性DBは、脆弱性識別子、第2識別子及び脆弱性情報を対応付ける情報を格納してもよい。脆弱性DBに格納される脆弱性情報と対応付けられる第2識別子は、ソフトウェアのサプライヤが提供するセキュリティアドバイザリや、オープンソースのセキュリティアドバイザリの情報から収集された情報であってもよい。
【0057】
第2識別子は、パッケージ管理ツールによって管理されるソフトウェアを一意に識別する識別子である。第2識別子は、purlであってもよい。第2識別子は、脆弱性サーバ40から受信する脆弱性情報(例えば、
図4に示す“影響を受けるソフトウェア”)から抽出されてもよい。
【0058】
ここで、脆弱性情報については、オプション1-1と同様であってもよい。
【0059】
制御部14は、少なくとも1つのプロセッサを含んでもよい。少なくとも1つのプロセッサは、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)、1以上のIntegrated Circuit、1以上のDiscrete Circuit、及び、これらの組合せによって構成されてもよい。
【0060】
第1に、制御部14は、格納部13に格納される脆弱性DBから、対象ソフトウェアの脆弱性情報を特定する。脆弱性情報の特定方法としては、以下に示すオプションが考えられる。
【0061】
オプション2-1では、表記揺れを含み得る参照名称を取得するケースについて説明する。参照名称は、SBOMから取得されるソフトウェアの名称であってもよい。このようなケースにおいて、脆弱性DBとしては、オプション1-1で説明した脆弱性DB(例えば、
図6を参照)が用いられてもよい。ここで、ソフトウェアの名称として、サプライヤの名称とソフトウェア等のアセットの名称を組み合わせた名称が用いられてもよい。
【0062】
制御部14は、辞書情報(例えば、
図5を参照)を参照して、対象ソフトウェアの参照名称に対応する対象ソフトウェアの特定名称を特定し、特定した対象ソフトウェアの特定名称に対応する対象ソフトウェアの第1識別子を特定する。制御部14は、対象ソフトウェアの第1識別子を検索キーとして、脆弱性DB(例えば、
図6を参照)から、対象ソフトウェアの脆弱性情報を特定する。
【0063】
ここで、参照名称には、特定名称から表記揺れした名称であり、例えば、文字種(大文字と小文字、半角カナと全角カナなど)、打ち間違い等の誤記、同義語や類義語等により、特定名称とずれが生じた名称などが含まれる。
【0064】
さらに、制御部14は、脆弱性DBにおいて脆弱性情報と対応付けられる第1識別子に含まれるバージョン情報に対象ソフトウェアの第1識別子に含まれるバージョン情報が含まれるかどうかを判定する。制御部14は、対象ソフトウェアの第1識別子に含まれるバージョン情報が含まれると判定した場合に、対象ソフトウェアの脆弱性情報を特定する。一方で、制御部14は、対象ソフトウェアの第1識別子に含まれるバージョン情報が含まれないと判定した場合に、対象ソフトウェアの脆弱性情報を特定しない。
【0065】
オプション2-1では、脆弱性DBの検索キーとして、取得された参照情報がそのまま用いられずに、参照名称に対応する特定名称が特定され、特定名称に対応する第1識別子が用いられる。なお、取得された参照情報を用いて、直接、対応する第1識別子を特定してもよい。具体的には、制御部14は、辞書情報(例えば、
図5を参照)を参照して、対象ソフトウェアの参照名称に対応する対象ソフトウェアの第1識別子を特定する。制御部14は、対象ソフトウェアの第1識別子を検索キーとして、脆弱性DB(例えば、
図6を参照)から、対象ソフトウェアの脆弱性情報を特定する。
【0066】
また、対象ソフトウェアのバージョン情報が取得された場合は、特定名称とバージョン情報とを用いて特定名称が特定される。ここで、対象ソフトウェアのバージョン情報についても、表記揺れした表記を、正確な表記と対応付けて辞書情報に登録しておいてもよい。この場合、対象ソフトウェアのバージョン情報を取得したら、辞書情報を参照して、対象ソフトウェアの正しい表記のバージョン情報を特定する。特定した対象ソフトウェアのバージョン情報を用いて、第1識別子を特定してもよい。
【0067】
オプション2-1では、第1識別子を特定した後においては、第1識別子を検索キーとして脆弱性情報を特定することができ、取得した対象ソフトウェアの名称が、正式なソフトウェア名などから表記揺れが生じている名称を取得した場合であっても、表記揺れを吸収し、脆弱性情報を特定することができる。
【0068】
オプション2-2では、パッケージ管理ツールによって管理されるソフトウェアの第2識別子(例えば、purl)が取得されるケースについて説明する。このようなケースにおいて、脆弱性DBとしては、オプション1-2で説明した脆弱性DB(例えば、
図7を参照)が用いられてもよい。
【0069】
制御部14は、対象ソフトウェアの第2識別子を検索キーとして、脆弱性DB(
図7を参照)から、対象ソフトウェアの脆弱性情報を特定する。
【0070】
さらに、制御部14は、脆弱性DBにおいて脆弱性情報と対応付けられる第2識別子に含まれるバージョン情報に、対象ソフトウェアの第2識別子に含まれるバージョン情報が含まれるかどうかを判定する。制御部14は、対象ソフトウェアの第2識別子に含まれるバージョン情報が含まれると判定した場合に、対象ソフトウェアの脆弱性情報を特定する。一方で、制御部14は、対象ソフトウェアの第2識別子に含まれるバージョン情報が含まれないと判定した場合に、対象ソフトウェアの脆弱性情報を特定しない。
【0071】
オプション2-2では、パッケージ管理ツールによって管理されるソフトウェアについては、取得された第2識別子をそのまま検索キーとして用いて、脆弱性DBを特定することができる。
【0072】
第2に、制御部14は、特定された脆弱性情報に対応する脆弱性に対する対策を実行する優先度を決定する。脆弱性情報の対応の優先度を決定する処理は、トリアージと称されてもよい。優先度は、Levelと称されてもよい。
【0073】
図8に示すように、Levelは、Level 0~Level 4の5段階で表されてもよい。Levelの値が大きいほど、脆弱性に対する対策を実行する優先度が高い。脆弱性は、Level 0~Level 4の順に絞り込まれてもよい。
【0074】
Level 0は、全ての脆弱性のうち、スコア値(例えば、CVSSで定義されるBase Score)が閾値未満である脆弱性を含む。Level 0の脆弱性は、特に対策を実行しなくてもよい脆弱性であると考えてもよい。
【0075】
Level 1以上の脆弱性は、スコア値が閾値以上である脆弱性を含んでもよい。Level 1の脆弱性は、Level 1以上の脆弱性からLevel 2以上の脆弱性を除いた脆弱性である。Level 1の脆弱性は、定期メンテナンス(例えば、1回/1月)で対策を実行する脆弱性であると判断されてもよく、Level 1の脆弱性への対応の優先度は、Level 0の脆弱性の優先度よりも高い。
【0076】
Level 2以上の脆弱性は、Level 1以上の脆弱性のうち、外部からアクセス可能である対象ソフトウェアの脆弱性を含んでもよい。Level 2は、Level 1以上の脆弱性のうち、攻撃を受けた際の業務への影響が大きい対象ソフトウェアの脆弱性を含んでもよい。Level 2の脆弱性は、Level 2以上の脆弱性からLevel 3以上の脆弱性を除いた脆弱性である。Level 2の脆弱性は、第1期限(例えば、2週間以内)で対策を実行すべき脆弱性であると判断されてもよく、Level 2の脆弱性への対応の優先度は、Level 1の脆弱性への対応の優先度よりも高い。
【0077】
Level 3以上の脆弱性は、Level 2以上の脆弱性のうち、攻撃コードが流通している脆弱性を含んでもよい。Level 3の脆弱性は、Level 3以上の脆弱性からLevel 4の脆弱性を除いた脆弱性である。Level 3の脆弱性は、第1期限よりも短い第2期限(例えば、1日以内)で対策を実行すべき脆弱性であると判断されてもよく、Level 3の脆弱性への対応の優先度は、Level 2の脆弱性への対応の優先度よりも高い。
【0078】
Level 4の脆弱性は、Level 3以上の脆弱性のうち、実際に攻撃が観測され、悪用が確認された脆弱性を含んでもよい。Level 4の脆弱性は、第2期限よりも短い第3期限(例えば、即時)で対策を実行すべき脆弱性であると判断されてもよく、Level 4の脆弱性への対応の優先度は、Level 3の脆弱性への対応の優先度よりも高い。言い換えると、Level 4の脆弱性の優先度は最も高い。
【0079】
脆弱性の悪用が確認された旨を示す情報は、脆弱性サーバ40(例えば、Known Exploited Vulnerabilities Catalog)から取得されてもよい。
【0080】
上述したトリアージを実現するために、制御部14が以下に示す処理を実行すると表現されてもよい。
【0081】
第1に、制御部14は、特定された対象ソフトウェアの脆弱性情報に対応する脆弱性について、第三者機関が設定する脆弱性のレベルを示す情報、対象ソフトウェアに対して外部からアクセス可能であるか否かを示す情報、脆弱性に対する攻撃による業務への影響が大きいか否かを示す情報、脆弱性に対する攻撃コードが流通しているか否かを示す情報、及び、脆弱性の悪用が確認されている否かを示す情報の少なくともいずれか1つに基づいて、対象ソフトウェアの脆弱性情報の優先度を設定する。
【0082】
第2に、制御部14は、対象ソフトウェアの脆弱性情報が特定脆弱性情報であり、対象ソフトウェアに対して外部からアクセス可能である場合に、対象ソフトウェアの脆弱性情報の優先度として最も高い優先度(
図8に示すLevel 4)を設定する。特定脆弱性情報は、対象ソフトウェアの脆弱性情報に対応する脆弱性の悪用が確認された脆弱性情報である。
【0083】
第3に、制御部14は、特定された対象ソフトウェアの脆弱性情報に基づいて、対象ソフトウェアの脆弱性情報に対応する脆弱性に対する攻撃コードが流通している旨を特定した場合に、対象ソフトウェアの脆弱性情報の優先度として第1優先度(
図8に示すLevel 3)を設定する。制御部14は、対象ソフトウェアの脆弱性情報が特定脆弱性情報であり、対象ソフトウェアに対して外部からアクセス可能である場合に、対象ソフトウェアの脆弱性情報の優先度として第1優先度よりも高い第2優先度(
図8に示すLevel 4)を設定する。特定脆弱性情報は、脆弱性の悪用が確認された脆弱性情報である。
【0084】
第4に、制御部14は、特定された対象ソフトウェアの脆弱性情報に基づいて、対象ソフトウェアの脆弱性情報に対応する脆弱性に対する攻撃コードが流通している旨を特定し、かつ、対象ソフトウェアに対して外部からアクセス可能である場合に、対象ソフトウェアの脆弱性情報の優先度として第3優先度(
図8に示すLevel 3以上のLevel)を設定する。制御部14は、対象ソフトウェアの脆弱性情報が特定脆弱性情報であり、対象ソフトウェアに対して外部からアクセス可能でない場合に、対象ソフトウェアの脆弱性情報の優先度として第3優先度よりも低い第4優先度(
図8に示すLevel 2)を設定する。特定脆弱性情報は、脆弱性の悪用が確認された脆弱性情報である。
【0085】
(情報処理方法)
以下においいて、実施形態に係る情報処理方法について説明する。
図9は、実施形態に係る情報処理方法を示す図である。
【0086】
図9に示すように、ステップS10において、情報処理装置10は、特定名称と参照名称とを対応付ける辞書情報を格納する。辞書情報は、特定名称と第1識別子とを対応付ける情報を含んでもよい(
図5を参照)。特に限定されるものではないが、情報処理装置10は、様々な作成者によって作成されたSBOMを収集し、収集されたSBOMに含まれる名称を参照名称として辞書情報に含めてもよい。
【0087】
ステップS11において、情報処理装置10は、脆弱性情報(例えば、
図4を参照)を脆弱性サーバ40から受信する。
【0088】
ステップS12において、情報処理装置10は、脆弱性情報を脆弱性DBに格納する。情報処理装置10は、脆弱性サーバ40から受信する脆弱性情報から各種情報を抽出することによって得られる情報を脆弱性DB(
図6又は
図7を参照)に格納してもよい。
【0089】
ステップS13において、情報処理装置10は、ソフトウェア情報をシステムサーバ30から受信する。ソフトウェア情報は、システムサーバ30上で動作するソフトウェア対象ソフトウェアに関する情報である。システム情報は、SBOMであってもよく、パッケージ管理ツールによって管理される対象ソフトウェアの情報であってもよい。ソフトウェア情報は、対象ソフトウェアのバージョン情報を含んでもよい。
【0090】
ステップS14において、情報処理装置10は、システムサーバ30上で動作するソフトウェア対象ソフトウェアに関するソフトウェア情報を格納する。
【0091】
ステップS20において、情報処理装置10は、脆弱性に関する情報の要求を受信する。脆弱性に関する情報は、上述したトリアージの結果を含んでもよい。
【0092】
ステップS21において、情報処理装置10は、名寄せ処理を実行する。名寄せ処理は、辞書情報を参照して、参照名称から特定名称を特定する処理である。名寄せ処理は、特定名称から第1識別子を特定する処理を含んでもよい。
【0093】
ステップS22において、情報処理装置10は、脆弱性情報を特定する。オプション2-1では、情報処理装置10は、対象ソフトウェアの第1識別子を検索キーとして、脆弱性DB(例えば、
図6を参照)から、対象ソフトウェアの脆弱性情報を特定する。オプション2-2では、情報処理装置10は、対象ソフトウェアの第2識別子を検索キーとして、脆弱性DB(
図7を参照)から、対象ソフトウェアの脆弱性情報を特定する。
【0094】
ステップS23において、情報処理装置10は、特定された脆弱性情報に対応する脆弱性についてトリアージを実行する。トリアージの詳細については上述した通りである(
図8を参照)。
【0095】
ステップS24において、情報処理装置10は、脆弱性に関する情報を表示する表示データを端末20に送信する。脆弱性に関する情報は、上述したトリアージの結果を含んでもよい。
【0096】
(作用及び効果)
実施形態では、情報処理装置10は、辞書情報を参照して、対象ソフトウェアの参照名称に対応する対象ソフトウェアの特定名称を特定し、特定した対象ソフトウェアの特定名称に対応する対象ソフトウェアの第1識別子を特定し、対象ソフトウェアの第1識別子を検索キーとして、脆弱性データベースから、対象ソフトウェアの脆弱性情報を特定する。このような構成によれば、ソフトウェアの名称などに表記揺れが存在するケースであっても、辞書情報を参照して、対象ソフトウェアの参照名称から対象ソフトウェアの第1識別子を特定することによって、対象ソフトウェアと脆弱性データベースとの突合が可能となり、対象ソフトウェアの脆弱性情報を適切に特定することができる。
【0097】
実施形態では、情報処理装置10は、SBOMに含まれる対象ソフトウェアについては、対象ソフトウェアの第1識別子を検索キーとして、脆弱性DB(例えば、
図6を参照)から、対象ソフトウェアの脆弱性情報を特定してもよい(オプション2-1)。オプション2-1では、参照名称から特定名称を特定する処理(名寄せ処理)が煩雑であるものの、第1識別子を特定した後においては、第1識別子を検索キーとして脆弱性情報を特定することができる。
【0098】
実施形態では、情報処理装置10は、パッケージ管理ツールによって管理される対象ソフトウェアについては、対象ソフトウェアの第2識別子を検索キーとして、脆弱性DB(
図7を参照)から、対象ソフトウェアの脆弱性情報を特定してもよい(オプション2-1)。オプション2-2では、脆弱性サーバ40から受信する脆弱性情報(例えば、
図4に示す“影響を受けるソフトウェア”)から第2識別子を抽出して脆弱性DBを構築する手間が煩雑であるものの、取得された第2識別子をそのまま検索キーとして用いることができる。
【0099】
実施形態では、情報処理装置10は、脆弱性の悪用が確認された脆弱性情報について、脆弱性に対する対策を実行する優先度として最も高い優先度(例えば、
図8に示すLevel 4)を設定してもよい。但し、情報処理装置10は、脆弱性の悪用が確認された脆弱性情報に対応する対象ソフトウェアについて外部からアクセス可能でない場合に、脆弱性に対する対策を実行する優先度として低い優先度(例えば、
図8に示すLevel 1)を設定してもよい。このような構成によれば、トリアージを適切に実行することができる。
【0100】
[変更例1]
以下において、実施形態の変更例1について説明する。以下においては、実施形態に対する相違点について主として説明する。
【0101】
変更例1では、ソフトウェアのサポートに関するアラートについて説明する。一般的に、ソフトウェアの保守やサポートは、ソフトウェアの販売終了から一定期間が経過した後に終了する。ここで、ソフトウェアの保守やサポートとは、脆弱性への対応等のためのソフトウェアのアップデート、問い合わせ対応、及び障害発生時の保守対応などを含む。ソフトウェアのサポートが終了する日付は、EOL(End of Life)日付と称されてもよい。EOL日付を過ぎたソフトウェアは、脆弱性が発見された際にもパッチが適応されず、攻撃のリスクが高くなる。そのため、セキュリティの観点から、ユーザは、通常、EOL日付を迎える前に、ソフトウェアのバージョンアップや別のソフトウェアへの乗り換え等の対応が必要となる。
【0102】
このような前提下において、情報処理装置10(格納部13)は、
図10に示す情報を格納するマスタDBを格納してもよい。
図9に示すように、マスタDBは、ID、ソフトウェア名、関連情報、EOL日付、第1識別子(例えば、CPE)、第2識別子(例えば、purl)を対応付ける情報を格納してもよい。
【0103】
IDは、情報処理装置10でソフトウェアを識別するために用いる識別子である。IDは、1対多の関係で2以上の第1識別子及び第2識別子の少なくともどちらか1つと対応付けられてもよい(例えば、“XXXX”に対応付けられた“PAxxxx”及び“PBxxxx”)。IDは、1対1の関係で1つの第1識別子及び第2識別子の少なくともどちらか1つと対応付けられてもよい(例えば、“YYYY”に対応付けられた“PAyyyy”)。
【0104】
ソフトウェア名は、IDに対応するソフトウェアの名称であり、ソフトウェアの特定名称であってもよい。また、2以上の第1識別子又は第2識別子がIDと対応付けられる場合には、ソフトウェア名は、2以上の第1識別子又は第2識別子が示す各々のソフトウェアを含む包括的な名称であってもよい。
【0105】
関連情報は、IDに対応するソフトウェアに関連する情報である。関連情報は、ソフトウェアのリリース日などを含んでもよい。
【0106】
EOL日付は、ソフトウェアのサポートが終了する日付であり、ソフトウェアのサプライヤ等から提供される情報である。EOL日付は、IDやソフトウェア名毎に管理されてもよい。
【0107】
第1識別子及び第2識別子は、脆弱性サーバ40から受信する脆弱性情報(例えば、
図4に示す“影響を受けるソフトウェア”)から抽出されてもよい。抽出された第1識別子及び第2識別子は、EOL日付などを管理するマスタDBのID又は名称と対応付けられる。
【0108】
情報処理装置10(制御部14)は、マスタDBを参照して、対象ソフトウェアのサポートが終了するEOL日付に基づいて、対象ソフトウェアに関するアラートを出力する。具体的には、情報処理装置10が、対象ソフトウェアのスキャン結果や外部からインポートされたSBOM等に基づき、対象ソフトウェアの第1識別子及び第2識別子の少なくともどちらか一方を取得する。制御部14は、対象ソフトウェアの第1識別子及び第2識別子の少なくともどちらか一方を検索キーとして、マスタDBから、対象ソフトウェアの特定名称及びEOL日付を取得し、EOL日付に基づいて、アラートを出力する。ここで、対象ソフトウェアの特定名称として、2以上のソフトウェアを含む包括的な名称が取得されてもよい。より具体的には、制御部14は、対象ソフトウェアの第1識別子及び第2識別子の少なくともどちらか一方を検索キーとして、対応する対象ソフトウェアの特定名称を特定する。その後、制御部14は、特定した特定名称に対応するEOL日付を取得する。また、制御部14は、対象ソフトウェアの第1識別子及び第2識別子の少なくともどちらか一方を検索キーとして、直接、対応するEOL日付を取得してもよい。アラートは、マスタDBのEOL日付の欄において視覚的に表示されてもよい。アラートは、EOL日付までの残り日数に応じて段階的に出力されてもよい。残り日数は、サポート終了に対する対策を実行する優先度と読み替えてもよい。
【0109】
EOL日付の検索に用いる検索キーは、第1識別子(例えば、CPE)及び第2識別子(例えば、purl)に限定されるものではなく、対象ソフトウェアを特定できる識別子や名称であってもよい。
【0110】
例えば、情報処理装置10は、EOL日付の6ヶ月前に、6ヶ月後にサポートが終了する旨のアラートを出力してもよく、EOL日付の3ヶ月前に、3ヶ月後にサポートが終了する旨のアラートを出力してもよく、EOL日付が到来したタイミングで、サポートが終了する旨のアラートを出力してもよい。情報処理装置10は、EOL日付以降において、サポートが切れた旨のアラートを出力してもよい。
【0111】
なお、EOL日付は、EOS(End of Support)日付又はEOSL(End of Service Life)日付と呼ばれてよい。また、サービスの販売終了を示すEOS(End of Sale)日付、技術的なサポートの終了を示すEOE(End of Engineering)日付と読み替えられてもよい。
【0112】
(作用及び効果)
変更例1では、情報処理装置10対象ソフトウェアのサポートが終了するEOL日付に基づいて、対象ソフトウェアに関するアラートを出力する。このような構成によれば、サポートが終了する対象ソフトウェアについて、ソフトウェアのバージョンアップやソフトウェアの変更などの対策を適切に実行することができる。
【0113】
[その他の実施形態]
本発明は上述した実施形態によって説明したが、この開示の一部をなす論述及び図面は、この発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施形態、実施例及び運用技術が明らかとなろう。
【0114】
上述した開示では、情報処理装置10は、ソフトウェア情報をシステムサーバ30から受信する。しかしながら、上述した開示はこれに限定されるものではない。ソフトウェア情報は、情報処理装置10のユーザインタフェースを介して入力されてもよい。ソフトウェア情報は、SBOMのインポートによって取得されてもよい。受信、入力、インポート、取得などの用語は、相互に読み替えられてもよい。
【0115】
上述した開示では、脆弱性DBは、情報処理装置10の格納部13に格納される。しかしながら、上述した開示はこれに限定されるものではない。1以上の脆弱性サーバ40がそのまま脆弱性DBとして用いられてもよい。
【0116】
上述した開示では、トリアージの優先度(Level)は、5段階で表される。しかしながら、上述した開示はこれに限定されるものではない。トリアージの優先度(Level)は、4段階以下で表されてもよく、6段階以上で表されてもよい。
【0117】
上述した開示では特に触れていないが、情報処理装置10が行う各処理をコンピュータに実行させるプログラムが提供されてもよい。また、プログラムは、コンピュータ読取り可能媒体に記録されていてもよい。コンピュータ読取り可能媒体を用いれば、コンピュータにプログラムをインストールすることが可能である。ここで、プログラムが記録されたコンピュータ読取り可能媒体は、非一過性の記録媒体であってもよい。非一過性の記録媒体は、特に限定されるものではないが、例えば、CD-ROMやDVD-ROM等の記録媒体であってもよい。
【0118】
或いは、情報処理装置10が行う各処理を実行するためのプログラムを記憶するメモリ及びメモリに記憶されたプログラムを実行するプロセッサによって構成されるチップが提供されてもよい。
【0119】
[付記]
第1の特徴は、ソフトウェアの特定名称と、前記特定名称を有するソフトウェアと同一のソフトウェアを示す参照名称とを対応付ける辞書情報を格納する格納部と、対象ソフトウェアの参照名称を取得する取得部と、前記辞書情報を参照して、前記対象ソフトウェアの参照名称に対応する前記対象ソフトウェアの特定名称を特定し、特定した前記対象ソフトウェアの特定名称に対応する前記対象ソフトウェアの第1識別子を特定する制御部と、を備え、前記格納部は、前記ソフトウェアの第1識別子と脆弱性情報を対応付けて格納する脆弱性データベースを格納し、前記制御部は、前記対象ソフトウェアの第1識別子を検索キーとして、前記脆弱性データベースから、前記対象ソフトウェアの脆弱性情報を特定する、情報処理装置である。
【0120】
第2の特徴は、第1の特徴において、前記取得部は、前記対象ソフトウェアの参照名称とともに、前記対象ソフトウェアのバージョン情報を取得し、前記制御部は、前記対象ソフトウェアの特定名称及び前記対象ソフトウェアのバージョン情報に対応する前記対象ソフトウェアの第1識別子を特定し、前記脆弱性データベースにおいて前記脆弱性情報と対応付けられる前記第1識別子に含まれるバージョン情報に、前記対象ソフトウェアの第1識別子に含まれるバージョン情報が含まれるかどうかを判定し、含まれると判定した場合に、前記対象ソフトウェアの脆弱性情報を特定する、情報処理装置である。
【0121】
第3の特徴は、第1の特徴又は第2の特徴において、前記脆弱性データベースは、パッケージ管理ツールによって管理されるソフトウェアの第2識別子と脆弱性情報とを対応付けて格納し、前記取得部は、パッケージ管理ツールによって管理される前記対象ソフトウェアの第2識別子を取得し、前記格納部は、前記脆弱性データベースに、前記ソフトウェアの第2識別子と脆弱性情報とを対応付けて格納しており、前記制御部は、前記対象ソフトウェアの第2識別子を検索キーとして、前記脆弱性データベースから、前記対象ソフトウェアの脆弱性情報を特定する、情報処理装置である。
【0122】
第4の特徴は、第3の特徴において、前記取得部は、前記対象ソフトウェアの第2識別子に含まれる対象ソフトウェアのバージョン情報を取得し、前記制御部は、前記脆弱性データベースにおいて前記脆弱性情報と対応付けられる前記第2識別子に含まれるバージョン情報に、前記対象ソフトウェアの第2識別子に含まれるバージョン情報が含まれるかどうかを判定し、含まれると判定した場合に、前記対象ソフトウェアの脆弱性情報を特定する、情報処理装置である。
【0123】
第5の特徴は、第3の特徴又は第4の特徴において、前記格納部は、前記対象ソフトウェアの第1識別子及び前記対象ソフトウェアの第2識別子の少なくともどちらか1つと、前記対象ソフトウェアの特定名称とを対応付けて格納するとともに、前記対象ソフトウェアの特定名称と、対象ソフトウェアのサポートが終了する日付とを対応付けて格納し、前記制御部は、前記対象ソフトウェアの第1識別子及び前記対象ソフトウェアの第2識別子の少なくともどちらか1つに基づいて、前記対象ソフトウェアの特定名称及び前記対象ソフトウェアのサポートが終了する日付を特定し、前記対象ソフトウェアのサポートが終了する日付に基づいて、前記対象ソフトウェアに関するアラートを出力する、情報処理装置である。
【0124】
第6の特徴は、第1の特徴乃至第5の特徴の少なくともいずれか1つにおいて、前記取得部は、ソフトウェアを構成するコンポーネントのリストを外部からインポートすることによって取得し、前記コンポーネントのリストから、前記対象ソフトウェアの参照名称を取得する、情報処理装置である。
【0125】
第7の特徴は、第1の特徴乃至第6の特徴の少なくともいずれか1つにおいて、前記制御部は、特定された前記対象ソフトウェアの脆弱性情報に対応する脆弱性について、第三者機関が設定する前記脆弱性のレベルを示す情報、前記対象ソフトウェアに対して外部からアクセス可能であるか否かを示す情報、前記脆弱性に対する攻撃による業務への影響が大きいか否かを示す情報、前記脆弱性に対する攻撃コードが流通しているか否かを示す情報、及び、前記脆弱性の悪用が確認されている否かを示す情報の少なくともいずれか1つに基づいて、前記対象ソフトウェアの脆弱性情報の優先度を設定する、情報処理装置である。
【0126】
第8の特徴は、第1の特徴乃至第7の特徴の少なくともいずれか1つにおいて、前記制御部は、前記対象ソフトウェアの脆弱性情報が特定脆弱性情報であり、前記対象ソフトウェアに対して外部からアクセス可能である場合に、前記対象ソフトウェアの脆弱性情報の優先度として最も高い優先度を設定し、前記特定脆弱性情報は、前記対象ソフトウェアの脆弱性情報に対応する脆弱性の悪用が確認された脆弱性情報である、情報処理装置である。
【0127】
第9の特徴は、第1の特徴乃至第8の特徴の少なくともいずれか1つにおいて、前記制御部は、特定された前記対象ソフトウェアの脆弱性情報に基づいて、前記対象ソフトウェアの脆弱性情報に対応する脆弱性に対する攻撃コードが流通している旨を特定した場合に、前記対象ソフトウェアの脆弱性情報の優先度として第1優先度を設定し、前記対象ソフトウェアの脆弱性情報が特定脆弱性情報であり、前記対象ソフトウェアに対して外部からアクセス可能である場合に、前記対象ソフトウェアの脆弱性情報の優先度として前記第1優先度よりも高い第2優先度を設定し、前記特定脆弱性情報は、前記脆弱性の悪用が確認された脆弱性情報である、情報処理装置である。
【0128】
第10の特徴は、第1の特徴乃至第9の特徴の少なくともいずれか1つにおいて、前記制御部は、特定された前記対象ソフトウェアの脆弱性情報に基づいて、前記対象ソフトウェアの脆弱性情報に対応する脆弱性に対する攻撃コードが流通している旨を特定し、かつ、前記対象ソフトウェアに対して外部からアクセス可能である場合に、前記対象ソフトウェアの脆弱性情報の優先度として第3優先度を設定し、前記対象ソフトウェアの脆弱性情報が特定脆弱性情報であり、前記対象ソフトウェアに対して外部からアクセス可能でない場合に、前記対象ソフトウェアの脆弱性情報の優先度として前記第3優先度よりも低い第4優先度を設定し、前記特定脆弱性情報は、前記脆弱性の悪用が確認された脆弱性情報である、情報処理装置である。
【0129】
第11の特徴は、ソフトウェアの特定名称と、前記特定名称を有するソフトウェアと同一のソフトウェアを示す参照名称とを対応付ける辞書情報を格納するステップAと、対象ソフトウェアの参照名称を取得するステップBと、前記辞書情報を参照して、前記対象ソフトウェアの参照名称に対応する前記対象ソフトウェアの特定名称を特定し、特定した前記対象ソフトウェアの特定名称に対応する前記対象ソフトウェアの第1識別子を特定するステップCと、前記ソフトウェアの第1識別子と脆弱性情報を対応付けて格納する脆弱性データベースを格納するステップDと、前記対象ソフトウェアの第1識別子を検索キーとして、前記脆弱性データベースから、前記対象ソフトウェアの脆弱性情報を特定するステップEと、を備える、情報処理方法である。
【符号の説明】
【0130】
10…情報処理装置、11…送信部、12…受信部、13…格納部、14…制御部、20…端末、30…システムサーバ、40…脆弱性サーバ、100…情報処理システム、200…ネットワーク
【要約】
【課題】 脆弱性データベースから脆弱性情報を適切に特定することを可能とする情報処理装置及び情報処理方法を提供する。
【解決手段】 情報処理装置は、ソフトウェアの特定名称と、前記特定名称を有するソフトウェアと同一のソフトウェアを示す参照名称とを対応付ける辞書情報を格納する格納部と、対象ソフトウェアの参照名称を取得する取得部と、前記辞書情報を参照して、前記対象ソフトウェアの参照名称に対応する前記対象ソフトウェアの特定名称を特定し、特定した前記対象ソフトウェアの特定名称に対応する前記対象ソフトウェアの第1識別子を特定する制御部と、を備え、前記格納部は、前記ソフトウェアの第1識別子と脆弱性情報を対応付けて格納する脆弱性データベースを格納し、前記制御部は、前記対象ソフトウェアの第1識別子を検索キーとして、前記脆弱性データベースから、前記対象ソフトウェアの脆弱性情報を特定する。
【選択図】
図2