(57)【要約】【課題】資産情報を適切に管理することができるコンピュータ資産管理システムを提供する。【解決手段】コンピュータの資産情報を管理するコンピュータ資産管理システムであって、マスタとエージェントとを備え、エージェントは、監視対象とするコンピュータで発生する所定のイベントを監視し、発生したイベントによって追加または変更された可能性がある資産情報を識別可能な識別情報をマスタに送信するようにした。【選択図】図１
2020004127.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータの資産情報を管理するコンピュータ資産管理システムであって、
マスタとエージェントとを備え、
前記エージェントは、監視対象とするコンピュータで発生する所定のイベントを監視し、発生したイベントによって追加または変更された可能性がある資産情報を識別可能な識別情報を前記マスタに送信する、
ことを特徴とするコンピュータ資産管理システム。
【請求項２】
前記エージェントは、イベントと資産情報とが対応付けられたイベント資産対応データに基づいて、前記イベント資産対応データに示されるイベントの発生を検知した場合、検知したイベントに対応する資産情報を取得し、取得した資産情報に基づいて前記資産情報の識別情報を生成し、生成した識別情報を前記マスタに送信する、
ことを特徴とする請求項１に記載のコンピュータ資産管理システム。
【請求項３】
前記エージェントは、前記資産情報の識別情報として、前記資産情報に基づいてハッシュを算出する、
ことを特徴とする請求項２に記載のコンピュータ資産管理システム。
【請求項４】
前記エージェントは、前記資産情報の識別情報として、前記資産情報の全体、前記資産情報の一部、前記資産情報を規定したファイルのヘッダ情報の全体、または前記ファイルのヘッダ情報の一部を用いる、
ことを特徴とする請求項２に記載のコンピュータ資産管理システム。
【請求項５】
前記エージェントは、発生したイベントによって追加または変更された可能性がある資産情報の識別情報を一回の通信で１ユニット以上送信する、
ことを特徴とする請求項１に記載のコンピュータ資産管理システム。
【請求項６】
前記コンピュータの資産情報の識別情報を記憶する記憶部を備え、
前記マスタは、前記エージェントから送信された資産情報の識別情報と、前記記憶部に記憶された識別情報とを比較し、前記資産情報の更新の有無を検知する、
ことを特徴とする請求項１に記載のコンピュータ資産管理システム。
【請求項７】
前記エージェントは、複数の資産情報と、前記複数の資産情報が属するグループとを対応付けた資産グループデータに基づいて、発生したイベントによって追加または変更された可能性がある資産情報が対応付けられるグループを特定し、特定したグループに属する全ての資産情報を前記イベントによって追加または変更された可能性があると判断する、
ことを特徴とする請求項１に記載のコンピュータ資産管理システム。
【請求項８】
前記エージェントは、前記グループを識別可能な識別情報を前記マスタに送信する、
ことを特徴とする請求項７に記載のコンピュータ資産管理システム。
【請求項９】
前記エージェントは、前記グループの識別情報として、前記全ての資産情報のうちの一部の資産情報を組み合わせてハッシュを算出する、
ことを特徴とする請求項８に記載のコンピュータ資産管理システム。
【請求項１０】
前記エージェントは、前記グループの識別情報として、前記全ての資産情報を組み合わせてハッシュを算出する、
ことを特徴とする、請求項８に記載のコンピュータ資産管理システム。
【請求項１１】
前記エージェントは、前記グループの識別情報として、前記全ての資産情報の全体、または前記全ての資産情報のうちの一部を用いる、
ことを特徴とする請求項８に記載のコンピュータ資産管理システム。
【請求項１２】
前記マスタは、前記コンピュータの資産情報の更新を検知した場合、前記エージェントから送信された資産情報の識別情報を用いて前記識別情報に対応する資産情報を同定し、前記記憶部に記憶された同定した資産情報の識別情報を更新する、
ことを特徴とする請求項６に記載のコンピュータ資産管理システム。
【請求項１３】
前記コンピュータの資産情報の識別情報と前記資産情報とが対応付けられたデータを格納するデータベースを備える、
ことを特徴とする請求項１２に記載のコンピュータ資産管理システム。
【請求項１４】
前記マスタは、同定した資産情報が複数である場合、資産情報間の関係を規定した情報を用いて関係する他の資産情報の存在有無を判定し、判定した結果に基づいて資産情報を同定する、
ことを特徴とする請求項１３に記載のコンピュータ資産管理システム。
【請求項１５】
前記エージェントとの通信処理を発生させない処理によって取得した情報に基づいて前記データベースを生成するデータベース生成部を備える、
ことを特徴とする請求項１３に記載のコンピュータ資産管理システム。
【請求項１６】
前記エージェントは、不正プログラムによる脅威が存在することが示される項目の情報を資産情報の識別情報として前記マスタに送信し、
前記マスタは、不正プログラムによる脅威が存在することを示す痕跡情報と、前記エージェントから送信された資産情報の識別情報とを比較して、不正プログラムによる脅威を検出する、
ことを特徴とする請求項１に記載のコンピュータ資産管理システム。
【請求項１７】
コンピュータの資産情報を管理するコンピュータ資産管理方法であって、
エージェントが、監視対象とするコンピュータで発生する所定のイベントを監視する第１のステップと、
前記エージェントが、発生したイベントによって追加または変更された可能性がある資産情報を識別可能な識別情報をマスタに送信する第２のステップと、
を備えることを特徴とするコンピュータ資産管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータ資産管理システムおよびコンピュータ資産管理方法に関し、例えばコンピュータの資産情報を管理するコンピュータ資産管理システムに適用して好適なものである。
【背景技術】
【０００２】
近年、産業制御システム、産業制御システムに関連するＩｏＴ（Internet of Things）システム等（以下、産業関連システムと称する。）に対するサイバーセキュリティ（以下、セキュリティと称する。）の脅威が深刻となっている。産業関連システムでは、セキュリティの侵害を受けた後の被害が現実世界に直接影響を与えるケースもあり、セキュリティの脅威が大きな脅威の１つとなっている。例えば、ＩｏＴシステムでは、膨大な数の機器がインターネットに接続され、当該機器がサイバー攻撃によって乗っ取られた場合（ボット化された場合）、当該機器が大規模なサイバー攻撃に悪用されるリスクもある。そのため、産業関連システムのセキュリティ対策が喫緊の課題となっている。
【０００３】
サイバー攻撃は、産業関連システムの制御装置、産業関連システムを構成するＩｏＴ機器など（以下、機器と称する。）の仕様、不十分な設定情報（脆弱性）等を突いて成立するものである。よって、最も効果的な対策は、対象機器がどのような構成となっているか、対象機器にインストールされたプログラムがどのようなものであるかを把握することである。そのため、産業関連システムでは、対象機器にインストールされているプログラム、アプリケーション等の設定情報を監視し、脆弱性を含むアプリケーション、設定情報、システムの構成情報（コンピュータの資産情報）を管理することが求められる。
【０００４】
コンピュータの資産情報を把握する手段として、様々な方式が提案されている。
【０００５】
特許文献１に記載の方法は、コンピュータの資産情報を収集する１つの方法である。特許文献１に記載の方法は、コンピュータネットワークに接続された各コンポーネントの資産情報を自動で発見して収集し、収集した情報を元にシステム内部の資産情報をマッピングするものである。特許文献１に記載のシステムは、各種コンピュータネットワークにインストールされた資産情報収集プログラム（資産管理クライアント）から資産情報をリモートで実行することができる。
【０００６】
特許文献２に記載の方法は、コンピュータの資産管理の方法としてコンピュータの資産情報を管理する識別情報として暗号学的ハッシュ関数により生成した値（以下、ハッシュと称する。）を用いて資産情報を管理する方法である。特許文献２に記載のコンピュータは、ハッシュを検証することで、コンピュータの資産情報が確実に意図したものであるかを検証することができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特表２００９−５１０６０２号公報
【特許文献２】特開２００６−３４４２３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
産業関連システムの各機器では、計算資源が限られていることが多い。また、ネットワークに接続された機器数が膨大になる場合、無線通信などで通信帯域が限られることがある。よって、産業関連システムにとって非機能要件であることが多い（本来の処理でない）コンピュータの資産情報の管理にかかる処理は、最低限にすることが望ましい。
【０００９】
特許文献１に記載のシステムでは、コンピュータの処理リソースが大きい環境を対象としているので、処理リソースが限られた機器では、必要な処理量が多すぎて処理しきれない可能性がある。また、特許文献２に記載のコンピュータでは、ハッシュを用いてコンピュータの資産情報を管理することで、資産情報の識別処理を効率化できるものの、資産情報を更新したタイミングを把握する手段がなく、定期的な更新有無の問い合わせが必要となる。つまり、更新の有無を問い合わせる処理についても通信帯域、処理リソースを圧迫する要素となり得るため、本来必要とする処理が阻害されるおそれがある。
【００１０】
本発明は以上の点を考慮してなされたもので、資産情報を適切に管理することができるコンピュータ資産管理システムを提案しようとするものである。
【課題を解決するための手段】
【００１１】
かかる課題を解決するため本発明においては、コンピュータの資産情報を管理するコンピュータ資産管理システムであって、マスタとエージェントとを備え、前記エージェントは、監視対象とするコンピュータで発生する所定のイベントを監視し、発生したイベントによって追加または変更された可能性がある資産情報を識別可能な識別情報を前記マスタに送信するようにした。
【００１２】
上記構成では、例えば、エージェントは、資産情報が追加または変更されたか否かを確認する処理を行うことなく、追加または変更された可能性がある資産情報を識別可能な識別情報を送信するので、エージェントの処理リソースの負荷を低減することができる。また、例えば、エージェントは、イベントが発生したときに、追加または変更された可能性がある資産情報を識別可能な識別情報を送信するので、ネットワークリソースにかかる負荷を低減することができる。
【発明の効果】
【００１３】
本発明によれば、資産情報を適切に管理することができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、第１の実施の形態によるコンピュータ資産管理システムに係る構成の一例を示す図である。
【図２】図２は、第１の実施の形態によるイベント資産対応データの一例を示す図である。
【図３】図３は、第１の実施の形態による管理対象資産データの一例を示す図である。
【図４】図４は、第１の実施の形態による資産監視処理に係るフローチャートの一例を示す図である。
【図５】図５は、第１の実施の形態による通信フレームのフォーマットの一例を示す図である。
【図６】図６は、第１の実施の形態による資産グループデータの一例を示す図である。
【図７】図７は、第１の実施の形態による資産グループの識別情報の一例を示す図である。
【図８】図８は、第１の実施の形態による更新内容の取得に係る構成の一例を示す図である。
【図９】図９は、第１の実施の形態による資産情報解決ＤＢ（Database）のデータのデータ構造の一例を示す図である。
【図１０】図１０は、第１の実施の形態による複数の識別情報に対応する資産情報が存在するケースの一例を示す図である。
【図１１】図１１は、第１の実施の形態によるマスタに係る構成の一例を示す図である。
【発明を実施するための形態】
【００１５】
以下図面について、本発明の一実施の形態を詳述する。
【００１６】
本実施の形態では、産業関連システムの各機器は、用途が限定的であり、かつ、資産情報の更新頻度が限定的であることに着目し、機器での計算処理および機器から転送するデータ量を最小にしつつ資産情報を管理する構成について主に説明する。
【００１７】
（１）第１の実施の形態
図１において、１００は全体として第１の実施の形態によるコンピュータ資産管理システムを示す。コンピュータ資産管理システム１００は、エージェント１１０とマスタ１２０とを含んで構成される。
【００１８】
エージェント１１０は、産業関連システムの制御装置、産業関連システムを構成するＩｏＴ機器などの機器である。エージェント１１０は、図示は省略するＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）、通信部などを含んで構成される。
【００１９】
エージェント１１０は、各種の情報（イベント資産対応データ１１１、管理対象資産データ１１２など）をＲＡＭ、ＨＤＤなどの記憶部に記憶する。
【００２０】
エージェント１１０の機能（ＯＳ（Operating System）１１３、プロセス１１４、イベント監視部１１５、ハッシュ計算部１１６、通信処理部１１７など）は、例えば、ＣＰＵがＲＯＭに格納されたプログラムをＲＡＭに読み出して実行すること（ソフトウェア）により実現されてもよいし、専用の回路などのハードウェアにより実現されてもよいし、ソフトウェアとハードウェアとが組み合わされて実現されてもよい。また、エージェント１１０の機能の一部は、エージェント１１０と通信可能な他のコンピュータにより実現されてもよい。
【００２１】
イベント資産対応データ１１１には、イベントと資産情報との対応関係を示すデータが含まれる。なお、イベント資産対応データ１１１の具体例については、図２を用いて後述する。
【００２２】
イベントは、ＯＳ１１３で処理可能なイベント、ＯＳ１１３からメモリ領域などの割り当てを受けて処理を実行するプロセス１１４で処理可能なイベント、ＯＳ１１３に依存しないイベント（例えば、特定の入出力ポートのデータ通信の生成有無など）等である。イベントは、任意のタイミングで発生する。例えば、イベントは、スケジューリングされたタイミングで発生する。また、例えば、イベントは、例外的なタイミングで発生する。
【００２３】
資産（資産情報）は、管理対象の各種のデータ（所定のソフトウェア、所定のファイル、特定アドレスのデータ、特定領域のデータなど）である。資産情報は、メモリ上にマップされるもの（例えば、ＲＡＭ上にロードされているプログラム）であってもよいし、ディスク上にあるもの（例えば、ＨＤＤに格納されているファイル）であってもよい。なお、資産情報は、データ単位で管理される。
【００２４】
例えば、資産情報がソフトウェアである場合、当該ソフトウェア（資産情報）は、当該ソフトウェアのバージョン情報、ファイル名、特定アドレスのデータといった単位で管理される。より具体的には、管理対象の資産情報がソフトウェアである場合、資産情報は、ソフトウェアのバージョン（バージョン情報）を判別可能なパッケージ管理ソフトウェア（例えば、ＯＳ１１３で、各種のソフトウェアの導入、削除、ソフトウェア同士の依存関係、ソフトウェアとライブラリとの依存関係を管理するソフトウェア）のデータ、ソフトウェア内の特定バイナリ領域（ソフトウェアを実行するオブジェクトファイルの一部領域）のデータなどが該当する。
【００２５】
また、管理対象の資産情報がファイルである場合、資産情報は、例えば、ファイル全体またはファイルの一部（ファイルのヘッダ領域、ファイル内の特定領域）のデータ（バイナリデータ）である。
【００２６】
また、管理対象の資産情報が特定アドレスである場合、資産情報は、例えば、特定アドレスを指すデータ、特定アドレスに格納されているアドレス情報（ポインタ）が差すデータ、特定アドレスを先頭アドレスとするデータ領域のデータ、特定アドレスを一部として含むデータ領域のデータである。
【００２７】
管理対象資産データ１１２には、管理対象の各種のデータである資産情報（実データ）が含まれる。
【００２８】
イベント監視部１１５は、イベント資産対応データ１１１に規定されているイベントを監視し、イベントの発生を検知する。
【００２９】
ハッシュ計算部１１６は、イベント監視部１１５によりイベントが検知された場合、イベント資産対応データ１１１に基づいて、当該イベントに対応する資産情報を特定する。続いて、ハッシュ計算部１１６は、特定した資産情報を管理対象資産データ１１２から取得する。続いて、ハッシュ計算部１１６は、取得した資産情報のハッシュ（ハッシュ値）を計算（算出）し、計算したハッシュを通信処理部１１７に通知する。このように、ハッシュ計算部１１６が資産情報のハッシュを計算することで、通信処理部１１７がマスタ１２０に送信するデータ量を削減することができる。
【００３０】
通信処理部１１７は、ハッシュ計算部１１６により通知されたハッシュをマスタ１２０に送信する。
【００３１】
上述したように、エージェント１１０は、ＯＳ１１３等が生成するイベントを通じて管理対象の資産情報の更新の可能性を監視し、所定のイベントが発生した場合、更新された可能性のある資産情報のハッシュをマスタ１２０に送信する。
【００３２】
マスタ１２０は、エージェント１１０が管理する資産情報を一元管理する。マスタ１２０は、１以上のエージェント１１０の資産情報を管理するマシンである。マスタ１２０は、コンピュータなどの物理的なマシンであってもよいし、ＶＭ（Virtual Machine）のような仮想化されたソフトウェアで構成されたマシンであってもよい。以下では、説明の便宜上、マスタ１２０がコンピュータである場合を例に挙げて説明する。
【００３３】
マスタ１２０は、図示は省略するＣＰＵ、ＲＡＭ、ＲＯＭ、ＨＤＤ、通信部などを含んで構成される。マスタ１２０は、各種の情報（管理対象資産データ１２１など）をＲＡＭ、ＨＤＤなどの記憶部に記憶する。
【００３４】
管理対象資産データ１２１には、資産情報の資産名と、当該資産情報が更新されたことを識別可能な識別情報との対応関係を示すデータが含まれる。なお、管理対象資産データ１１２の具体例については、図３を用いて後述する。
【００３５】
識別情報は、何らかの処理によって資産情報が変化することが明確であるものとする。識別情報は、資産情報の全体または一部のハッシュ、資産情報の全体、資産情報の一部（資産情報における特定領域のデータパターン）、資産情報の名称などのエイリアス情報、資産情報を特定可能な情報が含まれるヘッダ情報の全体または一部などである。エージェント１１０は、識別情報として、上述した情報（資産情報が更新されたことを識別可能な情報）を用いることができる。
【００３６】
本実施の形態では、管理対象資産データ１２１には、エージェント１１０の管理対象となる資産情報のハッシュが事前に格納される。資産情報のハッシュは、図３に示すような資産リストとして機器単位で保持される。なお、図１〜図５では、識別情報として主にハッシュを例に挙げて説明するが、識別情報は、ハッシュに限定されるものではない。識別情報は、上述したように、資産情報が更新されたことを識別可能な情報を適宜に採用できる。なお、ハッシュを計算しない場合、ハッシュの計算にかかる処理リソースの負荷が低減される。
【００３７】
マスタ１２０の機能（通信処理部１２２、ハッシュ比較部１２３、更新データ取得部１２４など）は、例えば、ＣＰＵがＲＯＭに格納されたプログラムをＲＡＭに読み出して実行すること（ソフトウェア）により実現されてもよいし、専用の回路などのハードウェアにより実現されてもよいし、ソフトウェアとハードウェアとが組み合わされて実現されてもよい。また、マスタ１２０の機能の一部は、マスタ１２０と通信可能な他のコンピュータにより実現されてもよい。
【００３８】
通信処理部１２２は、通信処理部１１７により送信されたハッシュを受信し、受信したハッシュをハッシュ比較部１２３に通知する。
【００３９】
ハッシュ比較部１２３は、通信処理部１２２により送信されたハッシュと、管理対象資産データ１２１のハッシュとを比較し、資産情報の更新の有無を検知する。ハッシュ比較部１２３は、両者が不一致であると判定した場合（資産情報が更新されたと判定した場合）、ハッシュが不一致である旨を更新データ取得部１２４に通知する。このように、ハッシュ比較部１２３が比較することで、ユーザが比較する場合と比べて、より迅速かつ正確に資産情報の更新の有無が検知される。
【００４０】
更新データ取得部１２４は、ハッシュ比較部１２３からハッシュが不一致である旨の通知を受け取ると、管理対象資産データ１２１を更新するためのデータを取得し、取得したデータに基づいて管理対象資産データ１２１を更新する。
【００４１】
図２は、イベント資産対応データ１１１の一例（イベント資産対応テーブル２００）を示す図である。イベント資産対応テーブル２００には、イベントと資産との情報が対応付けられて格納されている。イベント資産対応テーブル２００では、特定の実行ファイル（例えば、Launch update.bin）がロードされた場合、更新され得る資産情報（例えば、update.list）の関係が示されている。
【００４２】
図３は、管理対象資産データ１２１の一例（管理対象資産テーブル３００）を示す図である。管理対象資産テーブル３００には、資産名とハッシュとが対応付けられて格納されている。管理対象資産テーブル３００では、「機器Ａ」における管理対象の資産情報のハッシュのリストが示されている。
【００４３】
次に、コンピュータ資産管理システム１００における処理について説明する。
【００４４】
図４は、エージェント１１０が実行する資産監視処理に係るフローチャートの一例を示す図である。
【００４５】
ＯＳ１１３等によるスケジューリング処理、または、例外処理によってイベント監視部１１５が起動される。イベント監視部１１５は、起動後、イベント資産対応データ１１１に登録されたイベントに関連する情報を収集し、登録されたイベントの発生有無を監視する（ステップＳ４００）。
【００４６】
イベント監視部１１５は、イベント資産対応データ１１１に登録された何らかのイベント（特定イベント）の発生を検知したか否かを判定する（ステップＳ４１０）。イベント監視部１１５は、検知したと判定した場合、ステップＳ４２０に処理を移し、検知していないと判定した場合、資産監視処理を終了する。
【００４７】
イベントの監視方法（イベントの検知）については、限定されない。例えば、イベント監視部１１５は、ＯＳ１１３が生成するコマンドログ、処理結果のログなどの各種のログをチェックしてイベントの発生を検知してもよい。また、例えば、イベント監視部１１５は、割り込み処理をチェックしてイベントの発生を検知してもよい。また、例えば、イベント監視部１１５は、ファイルのタイムスタンプをチェックしてイベントの発生を検知してもよい。また、例えば、イベント監視部１１５は、エージェント１１０が外部と行う通信をチェックし、イベントの発生を検知してもよい。
【００４８】
また、例えば、イベント監視部１１５は、資産情報（バイナリファイル）の変更をチェックしてイベントの発生を検知してもよいし、資産情報に間接的に関係がある情報（例えば、資産情報を記載したリストファイル）の変更をチェックしてイベントの発生を検知してもよい。この場合、イベント監視部１１５は、例えば、ファイル（バイナリファイルおよび／またはリストファイル）のヘッダ情報の一部または全て、ファイルのハッシュ、ファイルのデータの一部または全てをチェックしてイベントの発生を検知してもよい。
【００４９】
ステップＳ４２０では、イベント監視部１１５は、イベント資産対応データ１１１を参照し、検知したイベント（検知イベント）に対応する資産情報を取得する。
【００５０】
続いて、イベント監視部１１５は、検知したイベントに対応する資産情報の更新有無を判定する（ステップＳ４３０）。イベント監視部１１５は、更新があると判定した場合、ステップＳ４４０に処理を移し、更新がないと判定した場合、資産監視処理を終了する。なお、イベント監視部１１５は、資産情報が実際に変更されたか否かの確認は行わない。
【００５１】
ステップＳ４４０では、ハッシュ計算部１１６は、資産情報のハッシュを計算（生成）する。なお、前述の通り、ハッシュ計算部１１６は、識別情報として、資産情報の全体または一部のハッシュ、資産情報（バイナリデータ）の全部または一部などを生成してもよい。
【００５２】
なお、ハッシュ計算部１１６は、ハッシュの生成時に、マスタ１２０側の照合処理の理由で送信するデータを正規化する処理（例えば、管理対象資産テーブル３００に記載の資産の順にハッシュを整列する処理）を実行することもある。付言するならば、エージェント１１０側とマスタ１２０側との双方で、更新された資産情報をハッシュによって識別できる手段であれば、具体的な内容は問わない。
【００５３】
ステップＳ４５０では、通信処理部１１７は、生成されたハッシュをマスタ１２０に送信し、資産監視処理を終了する。
【００５４】
かかる処理では、エージェント１１０は、資産情報が追加または変更されたか否かを確認する処理を行うことなく、追加または変更された可能性がある資産情報のハッシュを送信するので、エージェント１１０の処理リソースの負荷を低減することができる。また、エージェント１１０は、イベントが発生したときに、追加または変更された可能性がある資産情報のハッシュを送信するので、ネットワークリソースにかかる負荷を低減することができる。
【００５５】
ここで、通信処理部１１７は、マスタ１２０にハッシュを送信する場合、１つの通信フレームに対して１つ以上のハッシュを付与して送信する。なお、本実施の形態では、レイヤー２の通信で使用される通信フレームを例に挙げて説明するが、これに限られるものではない。フォーマットは、レイヤー３の通信で使用される通信パケットであってもよいし、レイヤー４の通信で使用される通信セグメントであってもよい。このように、通信処理部１１７が１つの通信フレームで複数のハッシュを付与して送信し得るので、送信回数が削減され、送信に係る処理リソースの負荷を低減することができる。
【００５６】
図５は、通信フレームのフォーマットの一例（フォーマット５００）を示す図である。フォーマット５００には、通信のヘッダ、エージェント１１０を識別可能なエージェント識別情報、１つ以上のハッシュ、およびＦＣＳ（Frame Check Sequence）が含まれる。なお、ＦＣＳは、ＭＡＣ（Message Authentication Code）の場合もある。
【００５７】
通信処理部１１７は、エージェント１１０のエージェント識別情報をヘッダの後段の領域に格納し、続けて１つ以上のハッシュをエージェント識別情報の後段の領域に格納する。
【００５８】
マスタ１２０へのハッシュの送信タイミングとしては、イベントの発生のタイミング、一定周期、ハッシュの数が所定の数を超える場合などのタイミングが挙げられる。また、送信タイミングは、システム構成、エージェント１１０の機能を実現する機器の特徴、スペックなどを考慮したうえで選択される。何れが選択された場合であっても、特定のイベントが発生した場合、資産情報の更新有無の確認処理が実行され、マスタ１２０に送信されるハッシュは、特定のイベントと関連付けされたハッシュに限定される。
【００５９】
ここで、管理対象の機器の多くは、用途が限定されており、管理対象となる資産情報についても限定的であり、かつ、資産情報の更新の頻度も多くない。故に、イベントが発生したタイミングに限定して必要な識別情報を送信することで、資産情報の更新有無を確認するために必要な処理量を大幅に削減可能となる。その結果、機器にとって効果的な資産情報の管理が可能となる。
【００６０】
なお、エージェント１１０のハッシュを取得して管理対象資産データ１２１に格納するタイミングは、管理対象の機器のシステム導入前でも導入後でもよい。例えば、機器の開発プロセスにおいて資産情報のハッシュが取得されてもよいし、システム導入の直前または直後に専用のプログラムによって資産情報のハッシュが取得されてもよい。
【００６１】
以上、単一の資産情報の管理を例に挙げて説明したが、管理は、単一の資産情報に限定されるものではない。コンピュータ資産管理システム１００は、複数の資産情報をグループとして管理することができる。例えば、コンピュータ資産管理システム１００は、複数の資産情報を管理する管理グループ、スナップショット（あるタイミングにおける資産情報一覧表）などを１つの単位とする資産グループデータを用いて資産情報を管理することも可能である。
【００６２】
図６は、資産グループデータの一例（資産グループテーブル６００）を示す図である。
【００６３】
資産グループテーブル６００には、資産グループと資産との情報が対応付けられて格納されている。例えば、「アプリＡ設定情報」という資産グループの定義によれば、エージェント１１０は、当該アプリＡに該当する設定ファイル「ａｐｐ１．ｃｏｎｆ、ａｐｐ２．ｃｏｎｆ」を一纏めにして管理可能である。エージェント１１０は、このように定義された資産グループについては、イベント資産対応データ１１１において資産グループ単位のイベントとして紐付けることが可能となる。例えば、資産グループを単位として資産グループとイベントとが紐付けされている場合、エージェント１１０は、あるイベントが発生したとき、当該イベントに紐づけられている資産グループに属している全ての資産情報を更新対象とすることができる。
【００６４】
また、コンピュータ資産管理システム１００は、資産グループに対して、資産グループ単位で識別情報を用いてもよい。この場合、エージェント１１０（通信処理部１１７）は、資産グループの識別情報をマスタ１２０に送信する。
【００６５】
図７は、資産グループの識別情報の一例を示す図である。図７では、資産情報の全体または一部のハッシュ、資産情報の全体、資産情報の一部を用いて資産グループの識別情報をエージェント１１０が生成する例を示すが、これに限られるものではない。例えば、エージェント１１０は、資産情報の名称などのエイリアス情報、資産情報を特定可能な情報が含まれるヘッダ情報の全体または一部などを用いて資産グループの識別情報を生成してもよい。
【００６６】
図７には、複数の資産グループを一意に識別する資産グループの識別情報の例が示されている。例えば、図７（Ａ）に示すように、ハッシュ計算部１１６は、所定の資産グループ７００に属する資産情報７１０（全部の資産情報または一部の資産情報の組み合わせ）のハッシュ７２０を識別情報７３０として計算してもよい。
【００６７】
また、例えば、図７（Ｂ）に示すように、ハッシュ計算部１１６は、所定の資産グループ７４０に属する資産情報（全部の資産情報または一部の資産情報）の一部の組み合わせ７５０を識別情報７６０として用いてもよい。
【００６８】
このように、コンピュータ資産管理システム１００は、資産グループ単位で識別情報を生成することで、資産グループ単位で資産情報を管理できるようになる。
【００６９】
ここで、機器を構成するソフトウェア資産は、情報システムと比べると多様性が少なく、内部の構成においては、共通なものとして扱われるものも多い（例えば、ＯＳ１１３、標準アプリケーションの構成においては共通のものを使い、センシング、アクチュエーションのパラメタ情報を変更して扱うなど）。そのため、コンピュータ資産管理システム１００は、複数の資産情報を纏めて１つの単位として管理することで、効率的な資産情報の管理を実現することができる。
【００７０】
以上に示した方法により、マスタ１２０は、エージェント１１０から受信した識別情報と、事前に共有された識別情報とを比較し、変更がある場合、資産情報の更新有りとして検知する。また、マスタ１２０は、更新データ取得部１２４にて管理対象資産データ１２１の更新内容（例えば、差分情報）を取得し、管理対象資産データ１２１を更新する。
【００７１】
以下、更新内容の取得方法について説明する。
【００７２】
更新内容を取得する方法は、次の３つに大別される。
（方法１）ネットワークを経由して機器（エージェント１１０）から更新内容をマスタ１２０が取得する方法
（方法２）ユーザが、更新された機器に直接アクセスし、内容を検証し、更新内容を取得する方法
（方法３）コンピュータ資産管理システム１００で事前に管理する識別情報と資産情報とのマッピング情報をマスタ１２０が活用し、更新内容を取得する方法
【００７３】
（方法１）
（方法１）は、ネットワークリソースおよび機器のコンピュータリソースに余裕がある場合に適用可能な手法である。これは、更新された識別情報を直接ネットワーク経由で更新する方法である。この方法は、更新された識別情報を事前に共有する必要がないまま管理が可能となる方法である。なお、この方法は、ネットワークリソースおよび機器のコンピュータリソースが限られた環境下では、不十分であることが多い。特に、この方法は、管理対象の資産情報のデータ量が大きくなる場合、問題が顕著に表れ、限られたリソース下においては、不十分なケースもある。
【００７４】
（方法２）
（方法２）は、ユーザが機器に直接アクセスして更新内容をネットワークを介さずに機器から取得する手法である。この方法は、資産情報の管理のニーズに合わせて選択可能な１つの手段である。例えば、資産情報の更新頻度が限定的である場合、資産情報の更新有無を検知するだけで十分なケースがあり、この場合、ユーザは、本方法を選択することができる。また、機器の仕様上の制限によってネットワーク経由で送信可能な資産情報が制限されている場合、ユーザは、本方法を選択することができる。
【００７５】
（方法３）
（方法３）は、マスタ１２０が、識別情報の受信は行うが、機器への直接アクセスを行うことなく、資産情報を同定し、同定した資産情報の更新内容を取得する方法である。この方法では、識別情報を用いてマスタ１２０側でどの資産情報に相当（対応）するかの解決を図ること（同定）が求められる。
【００７６】
図８は、上記（方法３）を実現する構成の一例を示す。（方法３）では、マスタ１２０は、内部またはネットワークを介して、識別情報と資産情報との対応関係を示すデータを格納するデータベース（例えば、資産情報解決ＤＢ８００）と情報をやり取りする仕組みを有する。資産情報解決ＤＢ８００は、マスタ１２０に設けられていてもよいし、マスタ１２０とは異なるコンピュータに設けられていてもよい。
【００７７】
資産情報解決ＤＢ８００は、識別情報がどの資産情報に相当かを解決するために必要な情報を有する。マスタ１２０は、資産情報解決ＤＢ８００を用いて、識別情報から資産名を逆引きすることで資産名を同定する。
【００７８】
資産情報解決ＤＢ８００は、ＤＢ生成部８１０により生成（更新）される。ＤＢ生成部８１０は、マスタ１２０に設けられていてもよいし、マスタ１２０とは異なるコンピュータに設けられていてもよい。
【００７９】
図９は、資産情報解決ＤＢ８００のデータのデータ構造の一例（データ構造９００）を示す図である。データ構造９００は、１つの資産名９１０に対して複数の識別情報（識別情報Ａ９２０、識別情報Ｂ９３０、識別情報Ｃ９３０等）が付与された形式であり、ある識別情報から資産名が一意に識別できるような構造を有する。例えば、マスタ１２０がエージェント１１０から受信した識別情報が識別情報Ｂ９３０と同値である場合、マスタ１２０は、識別情報Ｂ９３０に対応する資産名９１０の資産情報を有すると結論付ける。
【００８０】
ある資産に対応する識別情報の数は、識別情報をどのように計算または取得するかによって決定される。例えば、識別情報にハッシュを使う場合、１つの資産情報に対応する識別情報は、ハッシュの衝突が発生した場合を除くと単一となる。一方、識別情報に限られた領域のバイナリ情報を用いると、領域のサイズにも依存するが、ハッシュの場合と比較しても資産情報あたりの識別情報が多くなる傾向がある。この場合、ある識別情報が複数の資産情報に対応する場合、該当する資産情報を解決できない問題が生じる。
【００８１】
ここで、エージェント１１０は、例えば、複数の識別情報を生成してマスタ１２０に送信することで、重複問題を解決することもできる。ただし、かかる構成では、エージェント１１０にかかる処理負荷が増えることになるので、マスタ１２０側で解決する方法が求められる。
【００８２】
この点、識別情報の重複問題を解決するための１つの方法として、他の資産情報の有無を踏まえて識別情報に対応する複数の資産情報のうち、どれが正しいかを判別する方法が挙げられる。例えば、複数の資産情報が必ず同じ環境に存在する場合、マスタ１２０は、複数の識別情報に対応する資産情報のうち、同じ環境に存在する資産情報を当該資産情報と識別する。
【００８３】
図１０は、複数の識別情報に対応する資産情報が存在するケースの一例（ケース１０００）を示す図である。ケース１０００では、識別情報Ｘ１０１０が資産Ａ１０２０と資産Ｂ１０３０との何れにも対応する場合、マスタ１２０は、資産Ａ１０２０と同じ環境に資産Ｙが存在するときは、資産Ａ１０２０であると判定し、資産Ｂ１０３０と同じ環境に資産Ｙが存在しないときは、資産Ｂ１０３０であると判定する。この方法は、１つの識別情報が複数の資産情報に対応する場合であっても、資産情報を識別する精度を向上することができる。付言するならば、マスタ１２０は、どの資産情報とどの資産情報とが関係しているかを示す資産関係情報と、どのエージェント１１０がどの資産情報を監視しているかを示す構成情報とを有している。つまり、マスタ１２０は、同定した資産情報が複数である場合、資産関係情報と構成情報とを用いて関係する他の資産情報の存在有無を判定し、判定した結果に基づいて資産情報を同定する。
【００８４】
なお、受信した識別情報が資産情報解決ＤＢ８００に該当（存在）しない場合、マスタ１２０は、不明資産として検出する。マスタ１２０は、不明資産を検出した場合、セキュリティに問題があると見なして、問題があることを外部に出力する。この場合、ユーザは、資産情報解決ＤＢ８００の内容を更新または拡充するために、該当不明資産に対応する資産が存在するか、どの資産が更新されたか等を機器に直接アクセスして情報を取得（検証）する。
【００８５】
資産情報解決ＤＢ８００の更新（生成）は、必ずしもエージェント１１０、管理対象の資産情報を介して取得する必要はない。例えば、ＤＢ生成部８１０は、ベンダ、Ｗｅｂ等から提供されるソフトウェア情報、機器の仕様書、機器のマニュアルなどに基づいて資産情報（識別情報）を生成し、生成した情報で資産情報解決ＤＢ８００を更新してもよい。
【００８６】
また、手動で変更されるパターンが多い資産情報である場合、ＤＢ生成部８１０は、想定される変更パターンを記憶（網羅）し、それぞれの変更パターンから資産情報および識別情報を生成してもよい。機器の用途が限られていることから、許容されるパターンは、限定的であることが多い。その場合、ＤＢ生成部８１０は、許容されるパターンを事前に把握し、該当する識別情報を生成して資産情報と結びつけることで、許容された（識別可能な）資産情報であるか、そうでないかを判定してもよい。
【００８７】
また、識別情報の定義方法によっては、コンピュータ資産管理システム１００は、識別情報を用いて、資産情報の改ざん、マルウェアの汚染など（不正プログラムによる脅威）を検知することができる。
【００８８】
図１１は、不正プログラムによる脅威を検知する脅威検出部１１０１を備えるマスタ１１００に係る構成の一例を示す図である。なお、マスタ１１００は、マスタ１２０と同様の構成であるので、マスタ１２０と異なる構成について主に説明する。
【００８９】
ここでは、資産情報の識別情報が、例えば、不正プログラムによる脅威が存在することを示す痕跡（本例では、ＩＯＣ（Indicator of Compromise））の情報をベースとして定義されている。ユーザは、識別情報１１０２を定義する場合、ＩＯＣファイル１１１１の項目と一致させることで、マスタ１１００は、識別情報１１０２とＩＯＣファイル１１１１との比較ができるようになる。
【００９０】
例えば、エージェント１１０は、ＩＯＣファイル１１１１の項目の情報を資産情報の識別情報としてマスタ１２０に送信する。脅威検出部１１０１は、ＩＯＣＤＢ１１１０に記憶されているＩＯＣファイル１１１１とエージェント１１０から取得した識別情報１１０２とを照合し、ＩＯＣファイル１１１１に定義された条件の項目の情報と識別情報１１０２とが一致するかどうかを検証する。なお、ＩＯＣファイル１１１１は、マルウェアの感染有無について細分化された１つ以上の項目と、それらの成立条件（ＡＮＤ、ＯＲなどの論理演算子）とを含んで構成される。
【００９１】
かかる構成によれば、マスタ１１００は、マルウェア等への感染有無を機器にアクセスすることなく、検知および検証することができる。
【００９２】
（２）他の実施の形態
なお上述の実施の形態においては、本発明をコンピュータ資産管理システム１００に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々のコンピュータ資産管理システム、コンピュータ資産管理方法、コンピュータ資産管理装置などに広く適用することができる。
【００９３】
また上述の実施の形態においては、図１において、エージェント１１０が１つ設けられ例を示したが、本発明はこれに限らず、エージェント１１０は、複数設けられていてもよい。
【００９４】
また上述の実施の形態においては、エージェント１１０は、産業関連システムの機器（ハードウェア）である場合について述べたが、本発明はこれに限らず、エージェント１１０は、イベント監視部１１５、ハッシュ計算部１１６、通信処理部１１７などを実現するためのプログラム（ソフトウェア）であってもよい。この場合、エージェント１１０は、産業関連システムの機器に、１つ設けられてもよいし、複数設けられてもよい。
【００９５】
また上述の実施の形態においては、エージェント１１０は、産業関連システムの機器ごとに設けられる場合について述べたが、本発明はこれに限らず、エージェント１１０は、産業関連システムの複数の機器に対して設けられるようにしてもよい（複数の機器を監視するようにしてもよい）。
【００９６】
また上述の実施の形態においては、エージェント１１０がステップＳ４３０を実行する場合について述べたが、本発明はこれに限らず、エージェント１１０がステップＳ４３０を実行することなく、ステップＳ４４０の処理を行うようにしてもよい。かかる構成は、例えば、機器のコンピュータリソースに余裕がなく、ネットワークリソースに余裕があるシステムにおいて好適となる。
【００９７】
また上述の実施の形態においては、説明の便宜上、ＸＸテーブル、ＸＸファイルを用いて各種のデータを説明したが、データ構造は限定されるものではなく、ＸＸ情報などと表現してもよい。
【００９８】
また、上記の説明において各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の記憶装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【００９９】
また上述した構成については、本発明の要旨を超えない範囲において、適宜に、変更したり、組み替えたり、組み合わせたり、省略したりしてもよい。
【０１００】
以上の通り、上述した実施の形態のコンピュータ資産管理システム（例えば、コンピュータ資産管理システム１００）は、コンピュータ（例えば、産業関連システムの制御装置、産業関連システムを構成するＩｏＴ機器などの機器）の資産情報を管理するコンピュータ資産管理システムであって、マスタ（例えば、マスタ１２０）とエージェント（例えば、エージェント１１０）とを備え、上記エージェントは、監視対象とするコンピュータで発生する所定のイベント（例えば、イベント資産対応データ１１１に示されるイベント、イベント資産対応テーブル２００に登録されたイベント）を監視し、発生したイベントによって追加または変更された可能性がある資産情報（例えば、管理対象資産データ１１２）を識別可能な識別情報（例えば、資産情報が更新されたことを識別可能な情報、資産情報の全体または一部のハッシュ、資産情報の全体、資産情報の一部、資産情報の名称などのエイリアス情報、資産情報を特定可能な情報が含まれるヘッダ情報の全体または一部）を上記マスタに送信することを特徴とする。
【０１０１】
また、上記エージェントは、イベントと資産情報とが対応付けられたイベント資産対応データ（例えば、イベント資産対応データ１１１、イベント資産対応テーブル２００）に基づいて、上記イベント資産対応データに示されるイベントの発生を検知した場合、検知したイベントに対応する資産情報を取得し、取得した資産情報に基づいて上記資産情報の識別情報を生成し、生成した識別情報を上記マスタに送信する（例えば、ステップＳ４１０〜ステップＳ４５０の処理を行う）ことが望ましい。
【０１０２】
また、上記エージェント（例えば、ハッシュ計算部１１６）は、上記資産情報の識別情報として、上記資産情報に基づいてハッシュを算出することが望ましい。
【０１０３】
また、上記エージェントは、上記資産情報の識別情報として、上記資産情報の全体、上記資産情報の一部、上記資産情報を規定したファイルのヘッダ情報の全体、または上記ファイルのヘッダ情報の一部を用いることが望ましい。
【０１０４】
また、上記エージェントは、発生したイベントによって追加または変更された可能性がある資産情報の識別情報を一回の通信（例えば、１つの通信フレーム、１つの通信パケット、１つの通信セグメント）で１ユニット以上（例えば、ハッシュを１つ以上）送信することが望ましい。
【０１０５】
また、上記コンピュータの資産情報の識別情報（例えば、管理対象資産データ１２１）を記憶する記憶部（例えば、ＨＤＤ）を備え、上記マスタ（例えば、ハッシュ比較部１２３）は、上記エージェントから送信された資産情報の識別情報と、上記記憶部に記憶された識別情報とを比較し、上記資産情報の更新の有無を検知することが望ましい。
【０１０６】
また、上記エージェントは、複数の資産情報と、上記複数の資産情報が属するグループとを対応付けた資産グループデータ（例えば、資産グループデータ、資産グループテーブル６００）に基づいて、発生したイベントによって追加または変更された可能性がある資産情報が対応付けられるグループを特定し、特定したグループに属する全ての資産情報を上記イベントによって追加または変更された可能性があると判断することが望ましい。
【０１０７】
また、上記エージェント（例えば、通信処理部１１７）は、上記グループを識別可能な識別情報（例えば、資産グループの識別情報）を上記マスタに送信することが望ましい。
【０１０８】
また、上記エージェント（例えば、ハッシュ計算部１１６）は、上記グループの識別情報として、上記全ての資産情報のうちの一部の資産情報を組み合わせてハッシュを算出することが望ましい。
【０１０９】
また、上記エージェント（例えば、ハッシュ計算部１１６）は、上記グループの識別情報として、上記全ての資産情報を組み合わせてハッシュを算出することが望ましい。
【０１１０】
また、上記エージェント（例えば、ハッシュ計算部１１６）は、上記グループの識別情報として、上記全ての資産情報の全体、または上記全ての資産情報のうちの一部を用いることが望ましい。
【０１１１】
また、上記マスタ（更新データ取得部１２４）は、上記コンピュータの資産情報の更新を検知した場合、上記エージェントから送信された資産情報の識別情報を用いて上記識別情報に対応する資産情報を同定し、上記記憶部に記憶された同定した資産情報の識別情報を更新することが望ましい。
【０１１２】
また、上記コンピュータの資産情報の識別情報と上記資産情報とが対応付けられたデータを格納するデータベース（例えば、資産情報解決ＤＢ８００）を備えることが望ましい。
【０１１３】
また、上記マスタは、同定した資産情報が複数である場合、資産情報間の関係を規定した情報（例えば、資産関係情報、構成情報）を用いて関係する他の資産情報の存在有無を判定し、判定した結果に基づいて資産情報を同定することが望ましい。
【０１１４】
また、上記エージェントとの通信処理を発生させない処理によって取得した情報（例えば、ベンダ、Ｗｅｂ等から提供されるソフトウェア情報、機器の仕様書、機器のマニュアル）に基づいて上記データベースを生成するデータベース生成部（例えば、ＤＢ生成部８１０）を備えることが望ましい。
【０１１５】
また、上記エージェントは、不正プログラムによる脅威が存在することが示される項目（例えば、ＩＯＣファイル１１１１の項目）の情報を資産情報の識別情報として上記マスタに送信し、上記マスタ（例えば、脅威検出部１１０１）は、不正プログラムによる脅威が存在することを示す痕跡情報（例えば、ＩＯＣファイル１１１１に定義された条件の項目の情報）と、上記エージェントから送信された資産情報の識別情報とを比較して、不正プログラムによる脅威を検出することが望ましい。
【０１１６】
上述した構成によれば、資産情報を適切に管理することができる。
【符号の説明】
【０１１７】
１００……コンピュータ資産管理システム、１１０……エージェント、１２０……マスタ。
【図１】
2020004127.tif 000003
【図２】
2020004127.tif 000004
【図３】
2020004127.tif 000005
【図４】
2020004127.tif 000006
【図５】
2020004127.tif 000007
【図６】
2020004127.tif 000008
【図７】
2020004127.tif 000009
【図８】
2020004127.tif 000010
【図９】
2020004127.tif 000011
【図１０】
2020004127.tif 000012
【図１１】
2020004127.tif 000013