JP7346187B2 - サーバー装置及びプログラム - Google Patents

サーバー装置及びプログラム Download PDF

Info

Publication number
JP7346187B2
JP7346187B2 JP2019167152A JP2019167152A JP7346187B2 JP 7346187 B2 JP7346187 B2 JP 7346187B2 JP 2019167152 A JP2019167152 A JP 2019167152A JP 2019167152 A JP2019167152 A JP 2019167152A JP 7346187 B2 JP7346187 B2 JP 7346187B2
Authority
JP
Japan
Prior art keywords
software
processor
update
client device
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019167152A
Other languages
English (en)
Other versions
JP2021043863A (ja
Inventor
史彦 池上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba TEC Corp
Original Assignee
Toshiba TEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba TEC Corp filed Critical Toshiba TEC Corp
Priority to JP2019167152A priority Critical patent/JP7346187B2/ja
Publication of JP2021043863A publication Critical patent/JP2021043863A/ja
Application granted granted Critical
Publication of JP7346187B2 publication Critical patent/JP7346187B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Description

本発明の実施形態は、サーバー装置及びプログラムに関する。
コンピューターが、OS(operating system)、アプリケーションソフトウェア及びその他のソフトウェアが改竄されているか否かを起動時に検査し、改竄を検出した場合に安全でないとして起動を中止する、セキュアブートと呼ばれる技術がある。また、ソフトウェアの改竄を検出した場合に、サーバー又は当該コンピューターなどに予め記憶された真正である(改竄が無い)ことが確かなソフトウェアを用いてソフトウェアの修復を行うなどして、ソフトウェアを改竄されていない状態にする技術が存在する。
しかしながら、ソフトウェアの改竄検出において、ソフトウェアの改竄が無いと判断されたことをもって安全であると判断し、アップデート(更新)を怠るユーザーが存在する。アップデートを怠れば、ソフトウェアの脆弱性が放置されることとなり、セキュリティ上問題である。
ソフトウェアのアップデートについては、自動的にアップデートを行う技術が広く用いられている。このような技術が適用されたコンピューターは、例えば、インストールされているソフトウェアのアップデートの有無をサーバーなどに問い合わせ、アップデートが存在するものについてはアップデートデータをダウンロードし、アップデートを実行する。
しかしながら、自動的にアップデートを行う場合、軽微な脆弱性へ対応するもの及び新規機能の追加などを目的として脆弱性とは関係無いものについても自動的にアップデートが実行される。このため、セキュリティ上問題が無い又は少ないにもかかわらずこのようなアップデートが自動的に実行され、その間コンピューターが使用不可能となってしまう場合がある。
特開2012-252701号公報
"What is System Restore?"、[online]、2018年4月20日、Microsoft、[2019年7月17日検索]、インターネット(URL: https://support.microsoft.com/en-us/help/959063/what-is-system-restore)
本発明の実施形態が解決しようとする課題は、コンピューターの使用を必要以上に妨げずに、セキュリティ上問題のある状態を放置しないサーバー装置及びプログラムを提供することである。
実施形態のサーバー装置は、取得部、処理部及び指示部を備える。取得部は、クライアント装置にインストールされているソフトウェアのバージョンを取得する。処理部は、前記ソフトウェアの前記バージョンを含む情報に基づき、前記ソフトウェアの脆弱性それぞれの深刻度の値を調べ、前記脆弱性それぞれの前記深刻度の値を足し合わせたポイント又は前記脆弱性それぞれの前記深刻度の中で最大の値を前記脆弱性の前記深刻度を示す評価値として求め、前記評価値に基づき前記ソフトウェアをアップデートするか否かを決定する。指示部は、前記ソフトウェアをアップデートしないと決定された場合、前記クライアント装置に前記ソフトウェアのアップデート指示を行わず、前記ソフトウェアをアップデートすると決定された場合、前記アップデート指示を行う。
第1実施形態に係るアップデートシステム及び当該アップデートシステムに含まれる構成要素についての要部回路構成の一例を示すブロック図。 図1中のクライアント装置のプロセッサーによる第1実施形態に係る処理の一例を示すフローチャート。 図1中のサーバー装置のプロセッサーによる第1実施形態に係る処理の一例を示すフローチャート。 第2実施形態に係るアップデートシステム及び当該アップデートシステムに含まれる構成要素についての要部回路構成の一例を示すブロック図。 図4中のクライアント装置のプロセッサーによる第2実施形態に係る処理の一例を示すフローチャート。 図4中のサーバー装置のプロセッサーによる第2実施形態に係る処理の一例を示すフローチャート。 図4中の端末装置のプロセッサーによる第2実施形態及び第3実施形態に係る処理の一例を示すフローチャート。 図4中のサーバー装置のプロセッサーによる第3実施形態に係る処理の一例を示すフローチャート。
以下、いくつかの実施形態に係るアップデートシステムについて図面を用いて説明する。なお、以下の実施形態の説明に用いる各図面は、説明のため、構成を省略して示している場合がある。また、各図面及び以下の説明において、同一の符号は同様の要素を示す。
〔第1実施形態〕
図1は、第1実施形態に係るアップデートシステム1及びアップデートシステム1に含まれる構成要素についての要部回路構成の一例を示すブロック図である。アップデートシステム1は、クライアント装置にインストールされたソフトウェアのアップデート及び修復を制御するためのシステムである。なお、本明細書及び特許請求の範囲中において「アップデート」は、アップグレードを含むものとする。アップデートシステム1は、一例として、サーバー装置10及びクライアント装置20を含む。なお、図1にはサーバー装置10及びクライアント装置20をそれぞれ1台ずつ示すが、典型的には、それぞれの台数は複数である。ただし、以下の説明では、基本的に、1台のサーバー装置10及び1台のクライアント装置20に着目して説明する。
サーバー装置10及びクライアント装置20は、ネットワークNWに接続する。ネットワークNWは、典型的にはインターネットを含む通信網である。ネットワークNWは、典型的にはWAN(wide area network)を含む通信網である。ネットワークNWは、イントラネットなどのプライベートネットワークを含む通信網であっても良い。ネットワークNWは、LAN(local area network)を含む通信網であっても良い。また、ネットワークNWは、公衆交換電話網及び公衆携帯電話網などを含む通信網であっても良い。
サーバー装置10は、一例として、プロセッサー11、ROM(read-only memory)12、RAM(random-access memory)13、補助記憶デバイス14及び通信インターフェース15を含む。そして、バス16などが、これら各部を接続する。
プロセッサー11は、サーバー装置10の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分に相当する。プロセッサー11は、ROM12又は補助記憶デバイス14などに記憶されたファームウェア、システムソフトウェア及びアプリケーションソフトウェアなどのプログラムに基づいて、サーバー装置10の各種の機能を実現するべく各部を制御する。なお、当該プログラムの一部又は全部は、プロセッサー11の回路内に組み込まれていても良い。プロセッサー11は、例えば、CPU(central processing unit)、MPU(micro processing unit)、SoC(system on a chip)、DSP(digital signal processor)、GPU(graphics processing unit)、ASIC(application specific integrated circuit)、PLD(programmable logic device)又はFPGA(field-programmable gate array)などである。あるいは、プロセッサー11は、これらのうちの複数を組み合わせたものである。
ROM12は、プロセッサー11を中枢とするコンピューターの主記憶装置に相当する。ROM12は、専らデータの読み出しに用いられる不揮発性メモリである。ROM12は、上記のプログラムのうち、例えばファームウェアなどを記憶する。また、ROM12は、プロセッサー11が各種の処理を行う上で使用するデータ又は各種の設定値などを記憶する。
RAM13は、プロセッサー11を中枢とするコンピューターの主記憶装置に相当する。RAM13は、データの読み書きに用いられるメモリである。RAM13は、プロセッサー11が各種の処理を行う上で一時的に使用するデータを記憶しておく、いわゆるワークエリアなどとして利用される。RAM13は、典型的には揮発性メモリである。
補助記憶デバイス14は、プロセッサー11を中枢とするコンピューターの補助記憶装置に相当する。補助記憶デバイス14は、例えばEEPROM(electric erasable programmable read-only memory)、HDD(hard disk drive)又はフラッシュメモリなどである。補助記憶デバイス14は、上記のプログラムのうち、例えば、システムソフトウェア及びアプリケーションソフトウェアなどを記憶する。また、補助記憶デバイス14は、プロセッサー11が各種の処理を行う上で使用するデータ、プロセッサー11での処理によって生成されたデータ又は各種の設定値などを保存する。
また、補助記憶デバイス14は、ソフトウェアDB(database)141を記憶する。
ソフトウェアDB141は、クライアント装置20にインストールされる各ソフトウェアについての情報を記憶及び管理する。ソフトウェアDB141は、当該各ソフトウェアの脆弱性に関するデータを記憶及び管理する。ソフトウェアDB141は、当該各ソフトウェアのアップデートデータを記憶及び管理する。また、ソフトウェアDB141は、当該各ソフトウェアの各バージョンのデータのハッシュ値を記憶する。さらに、ソフトウェアDB141は、当該ソフトウェアの各バージョンについて、真正であることが確かであるデータを記憶する。
ROM12又は補助記憶デバイス14に記憶されるプログラムは、後述する処理を実行するためのプログラムを含む。一例として、サーバー装置10は、当該プログラムがROM12又は補助記憶デバイス14に記憶されない状態でサーバー装置10の利用者又は管理者などへと譲渡される。そして、別途に当該利用者又は管理者などへと譲渡された当該プログラムが、当該利用者又は管理者などによる操作の下に補助記憶デバイス14へと書き込まれる。しかしながら、サーバー装置10は、当該プログラムがROM12又は補助記憶デバイス14に記憶された状態で当該利用者又は管理者などへと譲渡されても良い。上述のプログラムの譲渡は、例えば、磁気ディスク、光磁気ディスク、光ディスク又は半導体メモリなどのようなリムーバブルな記憶媒体に記録して、あるいはネットワークNWなどを介したダウンロードにより実現できる。
通信インターフェース15は、サーバー装置10がネットワークNWなどを介して通信するためのインターフェースである。
バス16は、コントロールバス、アドレスバス及びデータバスなどを含み、サーバー装置10の各部で授受される信号を伝送する。
クライアント装置20は、例えば、PC(personal computer)、サーバー、POS(point of sale)端末、事務機器、産業用コンピューター、組み込み機器、又はIoT機器などである。クライアント装置20は、一例として、プロセッサー21、ROM22、RAM23、補助記憶デバイス24、通信インターフェース25、表示デバイス26及び入力デバイス27を含む。そして、バス28などが、これら各部を接続する。
プロセッサー21は、クライアント装置20の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分に相当する。プロセッサー21は、ROM22又は補助記憶デバイス24などに記憶されたファームウェア、システムソフトウェア及びアプリケーションソフトウェアなどのプログラムに基づいて、クライアント装置20の各種の機能を実現するべく各部を制御する。なお、当該プログラムの一部又は全部は、プロセッサー21の回路内に組み込まれていても良い。プロセッサー21は、例えば、CPU、MPU、SoC、DSP、GPU、ASIC、PLD又はFPGAなどである。あるいは、プロセッサー21は、これらのうちの複数を組み合わせたものである。
ROM22は、プロセッサー21を中枢とするコンピューターの主記憶装置に相当する。ROM22は、専らデータの読み出しに用いられる不揮発性メモリである。ROM22は、上記のプログラムのうち、例えばファームウェアなどを記憶する。また、ROM22は、プロセッサー21が各種の処理を行う上で使用するデータ又は各種の設定値などを記憶する。
RAM23は、プロセッサー21を中枢とするコンピューターの主記憶装置に相当する。RAM23は、データの読み書きに用いられるメモリである。RAM23は、プロセッサー21が各種の処理を行う上で一時的に使用するデータを記憶しておく、いわゆるワークエリアなどとして利用される。RAM23は、典型的には揮発性メモリである。
補助記憶デバイス24は、プロセッサー21を中枢とするコンピューターの補助記憶装置に相当する。補助記憶デバイス24は、例えばEEPROM、HDD又はフラッシュメモリなどである。補助記憶デバイス24は、上記のプログラムのうち、例えば、OSなどのシステムソフトウェア及びアプリケーションソフトウェアなどを記憶する。また、補助記憶デバイス24は、プロセッサー21が各種の処理を行う上で使用するデータ、プロセッサー21での処理によって生成されたデータ又は各種の設定値などを保存する。
ROM22又は補助記憶デバイス24に記憶されるプログラムは、後述する処理を実行するためのプログラムを含む。一例として、クライアント装置20は、当該プログラムがROM22又は補助記憶デバイス24に記憶されない状態でクライアント装置20の利用者又は管理者などへと譲渡される。そして、別途に当該利用者又は管理者などへと譲渡された当該プログラムが、当該利用者又は管理者などによる操作の下に補助記憶デバイス24へと書き込まれる。しかしながら、クライアント装置20は、当該プログラムがROM22又は補助記憶デバイス24に記憶された状態で当該利用者又は管理者などへと譲渡されても良い。上述のプログラムの譲渡は、例えば、磁気ディスク、光磁気ディスク、光ディスク又は半導体メモリなどのようなリムーバブルな記憶媒体に記録して、あるいはネットワークNWなどを介したダウンロードにより実現できる。
通信インターフェース25は、クライアント装置20がネットワークNWなどを介して通信するためのインターフェースである。
表示デバイス26は、クライアント装置20の操作者に各種情報を通知するための画面を表示する。表示デバイス26は、例えば、液晶ディスプレイ又は有機EL(electro-luminescence)ディスプレイなどのディスプレイである。
入力デバイス27は、クライアント装置20の操作者による操作を受け付ける。入力デバイス27は、例えば、キーボード、キーパッド、タッチパッド又はマウスなどである。また、表示デバイス26及び入力デバイス27としては、タッチパネルを用いることもできる。すなわち、タッチパネルが備える表示パネルを表示デバイス26として用いることができる。そして、タッチパネルが備える、タッチ入力によるポインティングデバイスを入力デバイス27として用いることができる。
バス28は、コントロールバス、アドレスバス及びデータバスなどを含み、クライアント装置20の各部で授受される信号を伝送する。
以下、第1実施形態に係るアップデートシステム1の動作を図2及び図3などに基づいて説明する。なお、以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。図2は、クライアント装置20のプロセッサー21による処理の一例を示すフローチャートである。プロセッサー21は、例えば、補助記憶デバイス24に記憶されたOSに含まれるプログラムに基づいてこの処理を実行する。図3は、サーバー装置10のプロセッサー11による処理の一例を示すフローチャートである。プロセッサー11は、例えば、ROM12又は補助記憶デバイス14などに記憶されたプログラムに基づいてこの処理を実行する。
クライアント装置20は、例えば、電源が投入されたことに応じて、ブートローダーを用いてOSをロードする。クライアント装置20のプロセッサー21は、例えば、ロードしたOSの実行開始にともない図2に示す処理を開始する。
ACT12においてプロセッサー21は、クライアント装置20にインストールされたOS、アプリケーションソフトウェア及びその他のソフトウェアそれぞれのバージョンを示すバージョン情報を取得する。当該バージョン情報は、例えば、各ソフトウェアに含まれる。
ACT13においてプロセッサー21は、クライアント装置20にインストールされたOS、アプリケーションソフトウェア及びその他のソフトウェアそれぞれのハッシュ値を取得する。例えば、プロセッサー21は、各ソフトウェアのデータの一部又は全部を入力値としてハッシュ値を算出することでハッシュ値を取得する。
図2のACT11においてプロセッサー21は、OSの起動処理を途中まで行う。ここでは、プロセッサー21は、少なくとも、次に示すACT14~ACT18の処理を実行可能な段階までOSの起動処理を行う。
ACT14においてプロセッサー21は、ソフトウェア情報を生成する。当該ソフトウェア情報は、クライアント装置20にインストールされたOS、アプリケーションソフトウェア及びその他のソフトウェアそれぞれについての各種情報を含む。当該各種情報は、ACT12で取得されたバージョン情報及びACT13で取得されたハッシュ値を含む。プロセッサー21は、ソフトウェア情報を生成した後、当該ソフトウェア情報をサーバー装置10に送信するように通信インターフェース25に対して指示する。この送信の指示を受けて通信インターフェース25は、当該ソフトウェア情報をサーバー装置10に送信する。送信された当該ソフトウェア情報は、サーバー装置10の通信インターフェース15によって受信される。
一方、図3のACT31においてサーバー装置10のプロセッサー11は、通信インターフェース15によってソフトウェア情報が受信されるのを待ち受けている。プロセッサー11は、ソフトウェア情報が受信されたならば、ACT31においてYesと判定してACT32へと進む。なお、ここで受信されたソフトウェア情報を、以下「受信ソフトウェア情報」というものとする。
ソフトウェア情報は、バージョン情報を含む。したがって、プロセッサー11は、通信インターフェース15と協働して、ソフトウェア情報を受信することで、クライアント装置にインストールされているソフトウェアのバージョンを取得する取得部として機能する。また、ソフトウェア情報は、ハッシュ値を含む。したがって、プロセッサー11は、通信インターフェース15と協働して、ソフトウェア情報を受信することで、ハッシュ値を取得する取得部として機能する。
ACT32においてプロセッサー11は、受信ソフトウェア情報にハッシュ値及びバージョン情報が含まれるソフトウェアの中から1つを選択する。ただし、プロセッサー11は、当該ソフトウェアのうち、まだ選択されていないソフトウェアを選択する。なお、ACT32の処理で最後に選択されたソフトウェアを以下「対象ソフトウェア」というものとする。プロセッサー11は、対象ソフトウェアに対して以下に説明にするACT33~ACT36の処理を行う。
ACT33においてプロセッサー11は、受信ソフトウェア情報に含まれる対象ソフトウェアのハッシュ値及びバージョン情報を用いて、クライアント装置20にインストールされた対象ソフトウェアの整合性をチェックする。このために、プロセッサー11は、ソフトウェアDBを参照して、受信ソフトウェア情報に含まれるバージョン情報に対応するハッシュ値を取得する。そして、プロセッサー11は、受信ソフトウェア情報に含まれるハッシュ値とソフトウェアDBから取得したハッシュ値とが同一であるか否かを判定する。
したがって、プロセッサー11は、ACT33の処理を行うことで、データの誤りを検出する処理部として機能する。
ACT34においてプロセッサー11は、ACT33の処理の結果、対象ソフトウェアのデータに誤りを検出したか否かを判定する。なお、プロセッサー11は、ACT33の処理により、ハッシュ値が同一でなかった場合に、対象ソフトウェアのデータに誤りがあると判定する。対象ソフトウェアのデータの誤りは、例えば、データの改竄又は破損などにより発生する。プロセッサー11は、対象ソフトウェアのデータに誤りを検出したならば、ACT34においてYesと判定してACT35へと進む。
ACT35においてプロセッサー11は、修復指示情報を生成する。修復指示情報は、対象ソフトウェアを修復するようにクライアント装置20に指示するための情報である。修復指示情報は、対象ソフトウェアの修復に必要なデータ及び修復方法を示す情報を含む。
ACT36においてプロセッサー11は、対象ソフトウェアを修復指示情報と関連付けて修復リストに登録する。修復リストは、修復が必要な対象ソフトウェアのリストである。
プロセッサー11は、ACT36の処理の後、ACT37へと進む。また、プロセッサー11は、対象ソフトウェアのデータに誤りを検出していないならば、ACT34においてNoと判定してACT37へと進む。
ACT37においてプロセッサー21は、ACT32の処理においてまだ選択されていないソフトウェアがあるか否かを判定する。プロセッサー21は、まだ選択されていないソフトウェアがあるならば、ACT37においてYesと判定してACT32へと進む。かくして、プロセッサー31は、受信ソフトウェア情報にハッシュ値及びバージョン情報が含まれるソフトウェアそれぞれに対してACT32~ACT36の処理を行う。対して、プロセッサー21は、まだ選択されていないソフトウェアがないならば、ACT37においてNoと判定してACT38へと進む。
ACT38においてプロセッサー11は、受信ソフトウェア情報に含まれる各ソフトウェアのバージョン情報などを用いて、クライアント装置20及びクライアント装置20にインストールされたソフトウェアの脆弱性を評価する。例えば、プロセッサー11は、受信ソフトウェアに含まれる各ソフトウェアのバージョン情報から、各ソフトウェアの脆弱性を評価して数値(以下「ソフトウェア脆弱性ポイント」という。)として示す。そして、プロセッサー11は、例えば、各ソフトウェアのソフトウェア脆弱性ポイントから、クアイアント装置の脆弱性を示す数値(以下「クライアント脆弱性ポイント」という。)を求める。例えば、プロセッサー11は、各ソフトウェアのソフトウェア脆弱性ポイントを足し合わせた数値をクライアント脆弱性ポイントとする。なお、ソフトウェア脆弱性ポイント及びクライアント脆弱性ポイントは、脆弱性の深刻度を数値として示したものであり、ここでは数値が大きいほど脆弱性の深刻度が高い(セキュリティ上の問題が大きい)ことを示すものとする。また、反対に、ソフトウェア脆弱性ポイント及びクライアント脆弱性ポイントは、数値が小さいほど安全度が高いことを示すといえる。ソフトウェア脆弱性ポイント及びクライアント脆弱性ポイントは、脆弱性の深刻度を示す評価値の例である。
プロセッサー11は、ソフトウェアの脆弱性を評価するために、例えば、当該ソフトウェアのベンダー名(ソフトウェア製作者名)、名称及びバージョンなどの情報に基づき、JVN(Japan Vulnerability Notes)などの脆弱性情報データベースを参照することで、当該ソフトウェアにどのような脆弱性があるかを調べる。そして、プロセッサー11は、当該ソフトウェアの脆弱性それぞれについて、CVSS(Common Vulnerability Scoring System)による深刻度の値を調べる。さらに、プロセッサー11は、脆弱性の深刻度の値の中で最大の値を当該ソフトウェアの脆弱性ポイントとする。あるいは、プロセッサー11は、脆弱性の深刻度の値を全て足し合わせたものを当該ソフトウェアの脆弱性ポイントとする。
また、プロセッサー11は、2種類以上のソフトウェアの組み合わせの影響を考慮して脆弱性を評価しても良い。例えば、プロセッサー11は、特定のソフトウェアの特定のバージョンと、当該特定のソフトウェアとは別のソフトウェアの特定のバージョンとを組み合わせると脆弱性の深刻度が高まることを考慮して脆弱性を評価する。
ACT39においてプロセッサー11は、クライアント装置20にインストールされたソフトウェアのアップデートが必要であるか否かを判定する。プロセッサー11は、例えば、クライアント装置20又はクライアント装置20にインストールされたソフトウェアの脆弱性が高い場合に当該アップデートが必要であると判定する。このために、プロセッサー11は、例えば、クライアント脆弱性ポイントが閾値T1以上であるならば当該アップデートが必要であると判定する。あるいは、プロセッサー11は、クライアント脆弱性ポイントが閾値T1以上であり、且ついずれかのソフトウェアのソフトウェア脆弱性ポイントが閾値T2以上であるソフトウェアがある場合に、当該アップデートが必要であると判定する。なお、プロセッサー11は、クライアント脆弱性ポイントが閾値T1未満であるが、いずれかのソフトウェアのソフトウェア脆弱性ポイントが閾値T3以上である場合にも、当該アップデートが必要であると判定しても良い。プロセッサー11は、当該アップデートが必要であると判定するならば、ACT39においてYesと判定してACT40へと進む。
プロセッサー11は、ACT39の処理を行うことで、評価値に基づきソフトウェアをアップデートするか否かを決定する処理部として機能する。
ACT40においてプロセッサー11は、更新指示情報を生成する。更新指示情報は、クライアント装置20にソフトウェアのアップデートを指示する情報を含む。また、更新指示情報は、ソフトウェアのアップデートに必要なアップデートデータを含む。プロセッサー11は、更新指示情報を生成するために、クライアント装置20にインストールされたソフトウェアのうちどのソフトウェアをアップデート対象とするかを決定する。例えば、プロセッサー11は、ソフトウェア脆弱性ポイントが一定以上であるソフトウェアをアップデート対象とする。例えば、プロセッサー11は、ソフトウェア脆弱性ポイントが高いものを優先してアップデート対象とする。例えば、プロセッサー11は、アップデート後のクライアント脆弱性ポイントが閾値T3以下となるようにアップデート対象のソフトウェアを決定する。例えば、プロセッサー11は、依存性が高いソフトウェアを優先してアップデート対象とする。ここで、依存性とは、どれぐらいの数のソフトウェアから参照されているかを示す。例えば、プロセッサー11は、アップデートに時間がかかるもの及びアップデートデータのデータサイズが大きいソフトウェアをアップデート対象とする優先度を下げる。このように、プロセッサー11は、様々な要因を加味してアップデート対象を決定する。例えば、プロセッサー11は、ソフトウェア脆弱性ポイントが低いソフトウェアでも、アップデートデータのデータサイズが大きい場合は後回しにし、アップデートデータのデータサイズが小さい場合にはアップデート対象にすることなどが可能である。ただし、プロセッサー11は、アップデートが可能な全てのソフトウェアをアップデート対象としても良い。なお、プロセッサー11は、上記のようにアップデート対象を決定する際、ソフトウェアのバージョンが最新であるなどの理由でアップデートできないものについてはアップデート対象としない。また、プロセッサー11は、予め定められた特定のソフトウェアについては、ソフトウェア脆弱性ポイントにかかわらずアップデート対象としても良い。
プロセッサー11は、以上のようにアップデート対象として決定したソフトウェアをアップデートするように指示する情報及びアップデート対象のアップデートデータを含む更新指示情報を生成する。
プロセッサー11は、クライアント装置20にインストールされたソフトウェアのアップデートが必要であると判定しないならば、ACT39においてNoと判定してACT41へと進む。
ACT41においてプロセッサー11は、修復リストが空であるか否かを判定する。プロセッサー11は、修復リストが空でない、すなわち修復リストにソフトウェアが1つ以上登録されているならば、ACT41においてNoと判定してACT42へと進む。また、プロセッサー11は、ACT40の処理の後、ACT42へと進む。
ACT42においてプロセッサー11は、指示情報を生成する。指示情報は、更新指示情報及び修復指示情報の少なくともいずれかを含む。プロセッサー11は、ACT40からACT42に進んだ場合、すなわちACT42で更新指示情報を生成していた場合、当該更新指示情報を指示情報に含める。また、プロセッサー11は、修復リストが空でないならば、修復リストに登録されているソフトウェアに関連付けられている修復指示情報を指示情報に含める。プロセッサー11は、指示情報を生成した後、当該指示情報をクライアント装置20に送信するように通信インターフェース15に対して指示する。この送信の指示を受けて通信インターフェース15は、当該指示情報をクライアント装置20に送信する。送信された当該指示情報は、クライアント装置20の通信インターフェース25によって受信される。プロセッサー11は、ACT42の処理の後、ACT31へと進む。なお、プロセッサー11は、ACT31へと戻るとき、修復リストをリセットして、ソフトウェアが登録されていない状態にする。
一方、図2のACT15においてクライアント装置20のプロセッサー21は、通信インターフェース25によって起動許可情報が受信されたか否かを判定する。プロセッサー21は、起動許可情報が受信されないならば、ACT15においてNoと判定してACT16へと進む。なお、起動許可情報については後述する。
ACT16においてプロセッサー21は、通信インターフェース25によって指示情報が受信されたか否かを判定する。プロセッサー21は、指示情報が受信されないならば、ACT16においてNoと判定してACT15へと戻る。かくして、プロセッサー21は、起動許可情報又は指示情報が受信されるまでACT15及びACT16を繰り返す。
プロセッサー21は、ACT15及びACT16の待受状態にあるときに指示情報が受信されたならば、ACT16においてYesと判定してACT17へと進む。
ACT17においてプロセッサー21は、ACT16で受信された指示情報に修復指示情報が含まれるか否かを判定する。プロセッサー21は、指示情報に修復指示情報が含まれるならば、ACT17においてYesと判定してACT18へと進む。
ACT18においてプロセッサー21は、指示情報に含まれる修復指示情報に基づきインストールされているソフトウェアを修復する。
プロセッサー21は、ACT18の処理の後、ACT19へと進む。また、プロセッサー21は、指示情報に修復指示情報が含まれないならば、ACT17においてNoと判定してACT19へと進む。
ACT19においてプロセッサー21は、ACT16で受信された指示情報に更新指示情報が含まれるか否かを判定する。プロセッサー21は、指示情報に更新指示情報が含まれるならば、ACT19においてYesと判定してACT20へと進む。
ACT20においてプロセッサー21は、指示情報に含まれる更新指示情報に基づきインストールされているソフトウェアをアップデートする。
プロセッサー21は、ACT20の処理の後、ACT21へと進む。また、プロセッサー21は、指示情報に更新指示情報が含まれないならば、ACT19においてNoと判定してACT21へと進む。
ACT21においてプロセッサー21は、途中まで実行しているOSの起動処理の続きを実行して、起動処理を完了する。プロセッサー21は、ACT21の処理の後、図2に示す処理を終了する。
一方、プロセッサー11は、修復リストが空であるならば、図3のACT41においてYesと判定してACT43へと進む。
ACT43においてプロセッサー11は、起動許可情報を補助記憶デバイス14に送信するように通信インターフェース15に対して指示する。起動許可情報は、クライアント装置20に、ソフトウェアのアップデート及び修復無しで起動を完了しても良いことを通知する。この送信の指示を受けて通信インターフェース15は、当該起動許可情報を補助記憶デバイス14に送信する。送信された当該起動許可情報は、補助記憶デバイス14によって受信される。プロセッサー11は、ACT43の処理の後、ACT31へと戻る。
以上より、プロセッサー11は、ACT39の処理結果に応じて更新指示情報を送信するか否かを決定する。したがって、プロセッサー11は、通信インターフェース15と協働して、ソフトウェアをアップデートしないと決定した場合、アップデート指示を行わず、前記ソフトウェアをアップデートすると決定した場合、前記アップデート指示を行う指示部として機能する。また、プロセッサー11は、通信インターフェース15と協働して、データに誤りが検出された場合、前記ソフトウェアを修復するようにクライアント装置20に指示する指示部として機能する。
一方、クライアント装置20のプロセッサー21は、図2のACT15及びACT16の待受状態にあるときに起動許可情報が受信されたならば、ACT15においてYesと判定してACT21へと進む。
第1実施形態のアップデートシステム1によれば、サーバー装置10は、クライアント装置20にインストールされたソフトウェアの脆弱性の深刻度に応じて、クライアント装置20に当該ソフトウェアのアップデートを指示するか否かを決定する。ソフトウェアのアップデートには時間がかかるため、その間クライアント装置20は使えなくなる。したがって、サーバー装置10は、脆弱性の深刻度が所定より低い場合にはアップデートを指示しないことで、クライアント装置20の使用を必要以上に妨げない。また、サーバー装置10は、脆弱性の深刻度が所定より高い場合には当該ソフトウェアのアップデートを指示することで、セキュリティ上問題のある状態を放置しない。
また、第1実施形態のアップデートシステム1によれば、サーバー装置10は、ソフトウェア脆弱性ポイント又はクライアント脆弱性ポイントが閾値未満である場合、アップデートの指示を行わない。これにより、サーバー装置10は、クライアント装置20に対して必要以上にアップデートを実行させない。
また、第1実施形態のアップデートシステム1によれば、サーバー装置10は、アップデートにかかる時間に基づきアップデートを指示するか否かを決定する。アップデートにかかる時間が短い場合には、クライアント装置20の使用を妨げる時間も短いので、脆弱性の深刻度に拘らずアップデートを行うことでセキュリティ性を向上することができる。
また、第1実施形態のアップデートシステム1は、サーバー装置10は、クライアント装置20にインストールされたソフトウェアにデータの誤りを検出した場合には、データの修復を行うようにクライアント装置20に指示する。これによりクライアント装置20のセキュリティ性が向上する。
〔第2実施形態〕
図4は、第2実施形態に係るアップデートシステム1b及びアップデートシステム1bに含まれる構成要素についての要部回路構成の一例を示すブロック図である。
第2実施形態のアップデートシステム1bは、ソフトウェアの更新又は修復にサービスマンなどによる作業が必要であるクライアント装置20に対して特に好適である。このようなクライアント装置20としては、例えば、一部のIoT(internet of things)機器及び制御機器などが挙げられる。アップデートシステム1bは、第1実施形態のアップデート1システムと同様にサーバー装置10及びクライアント装置20を含む。さらに、アップデートシステム1bは、端末装置30を含む。
端末装置30は、例えば、スマートホン又はPCなどである。端末装置30は、一例として、プロセッサー31、ROM32、RAM33、補助記憶デバイス34、通信インターフェース35及びタッチパネル36を含む。そして、バス37などが、これら各部を接続する。
プロセッサー31は、端末装置30の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分に相当する。プロセッサー31は、ROM32又は補助記憶デバイス34などに記憶されたファームウェア、システムソフトウェア及びアプリケーションソフトウェアなどのプログラムに基づいて、端末装置30の各種の機能を実現するべく各部を制御する。なお、当該プログラムの一部又は全部は、プロセッサー31の回路内に組み込まれていても良い。プロセッサー31は、例えば、CPU、MPU、SoC、DSP、GPU、ASIC、PLD又はFPGAなどである。あるいは、プロセッサー31は、これらのうちの複数を組み合わせたものである。
ROM32は、プロセッサー31を中枢とするコンピューターの主記憶装置に相当する。ROM32は、専らデータの読み出しに用いられる不揮発性メモリである。ROM32は、上記のプログラムのうち、例えばファームウェアなどを記憶する。また、ROM32は、プロセッサー31が各種の処理を行う上で使用するデータ又は各種の設定値などを記憶する。
RAM33は、プロセッサー31を中枢とするコンピューターの主記憶装置に相当する。RAM33は、データの読み書きに用いられるメモリである。RAM33は、プロセッサー31が各種の処理を行う上で一時的に使用するデータを記憶しておく、いわゆるワークエリアなどとして利用される。RAM33は、典型的には揮発性メモリである。
補助記憶デバイス34は、プロセッサー31を中枢とするコンピューターの補助記憶装置に相当する。補助記憶デバイス34は、例えばEEPROM、HDD又はフラッシュメモリなどである。補助記憶デバイス34は、上記のプログラムのうち、例えば、システムソフトウェア及びアプリケーションソフトウェアなどを記憶する。また、補助記憶デバイス34は、プロセッサー31が各種の処理を行う上で使用するデータ、プロセッサー31での処理によって生成されたデータ又は各種の設定値などを保存する。
ROM32又は補助記憶デバイス34に記憶されるプログラムは、後述する処理を実行するためのプログラムを含む。一例として、端末装置30は、当該プログラムがROM32又は補助記憶デバイス34に記憶されない状態で端末装置30の利用者又は管理者などへと譲渡される。そして、別途に当該利用者又は管理者などへと譲渡された当該プログラムが、当該利用者又は管理者などによる操作の下に補助記憶デバイス34へと書き込まれる。しかしながら、端末装置30は、当該プログラムがROM32又は補助記憶デバイス34に記憶された状態で当該利用者又は管理者などへと譲渡されても良い。上述のプログラムの譲渡は、例えば、磁気ディスク、光磁気ディスク、光ディスク又は半導体メモリなどのようなリムーバブルな記憶媒体に記録して、あるいはネットワークNWなどを介したダウンロードにより実現できる。
通信インターフェース35は、端末装置30がネットワークNWなどを介して通信するためのインターフェースである。
タッチパネル36は、例えば、液晶ディスプレイ又は有機ELディスプレイなどのディスプレイとタッチ入力によるポインティングデバイスとが積層されたものである。タッチパネル36が備えるディスプレイは、端末装置30の操作者に各種情報を通知するための画面を表示する表示デバイスとして機能する。また、タッチパネル36は、当該操作者によるタッチ操作を受け付ける入力デバイスとして機能する。
バス37は、コントロールバス、アドレスバス及びデータバスなどを含み、端末装置30の各部で授受される信号を伝送する。
なお、第2実施形態では、サーバー装置10は、クライアント装置20についての設置場所情報及び連絡先情報を補助記憶デバイス14などに記憶する。なお、サーバー装置10は、例えば、クライアントIDと設置場所情報及び連絡先情報を関連付けて記憶する。クライアントIDは、クライアント装置20ごとにユニークに付与される識別情報である。設置場所情報は、クライアント装置20の設置場所を示す情報である。設置場所情報は、例えば、クライアント装置20が設置されている場所の住所などを含む。また、連絡先情報は、クライアント装置20を使用している使用者又は管理者などの連絡先を示す情報である。
以下、第2実施形態に係るアップデートシステム1bの動作を図5及び図6などに基づいて説明する。なお、以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。図5は、クライアント装置20のプロセッサー21による処理の一例を示すフローチャートである。プロセッサー21は、例えば、補助記憶デバイス24に記憶されたOSに含まれるプログラムに基づいてこの処理を実行する。図6は、サーバー装置10のプロセッサー11による処理の一例を示すフローチャートである。プロセッサー11は、例えば、ROM12又は補助記憶デバイス14などに記憶されたプログラムに基づいてこの処理を実行する。図7は、端末装置30のプロセッサー31による処理の一例を示すフローチャートである。プロセッサー31は、例えば、ROM32又は補助記憶デバイス34などに記憶されたプログラムに基づいてこの処理を実行する。
第2実施形態では、サーバー装置10のプロセッサー11は、図6のACT40の処理の後、ACT61へと進む。また、プロセッサー11は、ACT41においてNoと判定したならば、ACT61へと進む。
ACT61においてプロセッサー11は、通知情報を生成する。通知情報は、クライアント装置20にインストールされたソフトウェアについて、修復及びアップデートの少なくともいずれかが必要であることを、クライアント装置20に通知する。なお、プロセッサー11は、ACT40からACT61に進んだ場合、クライアント装置20にインストールされたソフトウェアのアップデートが必要であることを通知するものとして通知情報を生成する。また、プロセッサー11は、修復リストが空でないならば、クライアント装置20にインストールされたソフトウェアの修復が必要であることを通知するものとして通知情報を生成する。プロセッサー11は、通知情報を生成した後、当該通知情報をクライアント装置20に送信するように通信インターフェース15に対して指示する。この送信の指示を受けて通信インターフェース15は、当該通知情報をクライアント装置20に送信する。送信された当該通知情報は、クライアント装置20の通信インターフェース25によって受信される。
一方、クライアント装置20のプロセッサー21は、第2実施形態では、図5のACT15の処理においてNoと判定したならば、ACT51へと進む。
ACT51においてプロセッサー21は、通信インターフェース25によって通知情報が受信されたか否かを判定する。プロセッサー21は、通知情報が受信されないならば、ACT51においてNoと判定してACT15へと戻る。かくして、プロセッサー21は、起動許可情報又は通知情報が受信されるまでACT15及びACT51を繰り返す。
プロセッサー21は、ACT15及びACT51の待受状態にあるときに起動許可情報が受信されたならば、ACT15においてYesと判定してACT21へと進む。
プロセッサー21は、ACT15及びACT51の待受状態にあるときに通知情報が受信されたならば、ACT51においてYesと判定してACT52へと進む。
ACT52においてプロセッサー21は、通知画面に対応した画像を生成する。そして、プロセッサー21は、生成したこの画像を表示するように表示デバイス26に対して指示する。表示の指示を受けて表示デバイス26は、通知画面を表示する。
通知画面は、クライアント装置20にインストールされたソフトウェアについて、修復及びアップデートの少なくともいずれかが必要であることをクライアント装置20の操作者に報知するための画面である。通知画面は、ACT51で受信された通知情報が当該ソフトウェアの修復が必要であることを示す場合、当該ソフトウェアの修復が必要であることを示す画像を含む。なお、文字列なども画像の一種である。また、通知画面は、当該通知情報が当該ソフトウェアのアップデートが必要であることを示す場合、当該ソフトウェアのアップデートが必要であることを示す画像を含む。さらに、通知画面は、起動中止ボタン及び起動ボタンを含む。起動中止ボタンは、OSの起動を中止するようにクライアント装置20に指示する場合にクライアント装置20の操作者が操作するためのボタンである。起動ボタンは、OSの起動を継続するようにクライアント装置20に指示する場合に当該操作者が操作するためのボタンである。
ACT53においてプロセッサー21は、OSの起動を中止するように指示する操作が行われたか否かを判定する。すなわちプロセッサー21は、起動中止ボタンを操作するなどの予め定められた操作が行われたか否かを判定する。プロセッサー21は、OSの起動を中止するように指示する操作が行われないならば、ACT53においてNoと判定してACT54へと進む。
ACT54においてプロセッサー21は、OSの起動を継続するように指示する操作が行われたか否かを判定する。すなわちプロセッサー21は、起動ボタンを操作するなどの予め定められた操作が行われたか否かを判定する。プロセッサー21は、OSの起動を継続するように指示する操作が行われないならば、ACT54においてNoと判定してACT53へと戻る。かくして、プロセッサー21は、OSの起動を中止するように指示する操作が行われるか、OSの起動を継続するように指示する操作が行われるまでACT53及びACT54を繰り返す。
プロセッサー21は、ACT53及びACT54の待受状態にあるときにOSの起動を中止するように指示する操作が行われたならば、ACT53においてYesと判定してACT55へと進む。
ACT55においてプロセッサー21は、OSの起動を中止する。そして、プロセッサー21は、例えば、クライアント装置20をシャットダウンする。プロセッサー21は、ACT55の処理の後、図5に示す処理を終了する。
プロセッサー21は、ACT53及びACT54の待受状態にあるときにOSの起動を継続するように指示する操作が行われたならば、ACT54においてYesと判定してACT21へと進む。
一方、図6のACT62においてサーバー装置10のプロセッサー11は、サービスマン通知を生成する。サービスマン通知は、クライアント装置20にインストールされたソフトウェアについて、修復及びアップデートの少なくともいずれかが必要であることをサービスマンに対して通知するために送信される。サービスマン通知は、更新指示情報及び修復指示情報の少なくとも何れかを含む。プロセッサー11は、ACT40からACT61に進んだ場合、すなわちACT42で更新指示情報を生成していた場合、当該更新指示情報を指示情報に含める。また、プロセッサー11は、修復リストが空でないならば、修復リストに登録されているソフトウェアに関連付けられている修復指示情報をサービスマン通知に含める。また、サービスマン通知は、クライアント装置20についての設置場所情報及び連絡先情報を含む。プロセッサー11は、サービスマン通知を生成した後、当該サービスマン通知を端末装置30に送信するように通信インターフェース15に対して指示する。この送信の指示を受けて通信インターフェース15は、当該サービスマン通知を端末装置30に送信する。送信された当該サービスマン通知は、端末装置30の通信インターフェース35によって受信される。プロセッサー11は、ACT62の処理の後、ACT31へと戻る。
プロセッサー11は、通信インターフェース15と協働して、サービスマン通知を送信することで、ソフトウェアをアップデートするように指示する情報をサービスマンが使用する端末装置に送信する送信部として機能する。
一方、図7のACT71において端末装置30のプロセッサー31は、通信インターフェース35によってサービスマン通知が受信されるのを待ち受けている。プロセッサー31は、サービスマン通知が受信されたならば、ACT71においてYesと判定してACT72へと進む。
ACT72においてプロセッサー31は、端末装置30を使用しているサービスマンに対して、クライアント装置20にインストールされたソフトウェアについて、修復及びアップデートの少なくともいずれかが必要であることを知らせるための報知動作を実行する。プロセッサー31は、例えば、報知動作として、スピーカーなどから音声を出力する。また、プロセッサー31は、例えば、報知動作として、端末装置30に内蔵されたバイブレーターを振動させる。また、プロセッサー31は、例えば、タッチパネル36に、インストールされたソフトウェアの修復及びアップデートの少なくともいずれかが必要なクライアント装置20があることなどを示す報知画面を表示させる。プロセッサー31は、ACT72の処理の後、ACT71へと戻る。
ACT71で受信されたサービスマン通知に更新指示情報が含まれる場合、報知画面は、クライアント装置20にインストールされたソフトウェアのアップデートが必要であることを示す画像を含む。当該サービスマン通知に修復指示情報が含まれる場合、報知画面は、クライアント装置20にインストールされたソフトウェアの修復が必要であることを示す画像を含む。また、報知画面は、クライアント装置20について、設置場所情報が示す設置場所及び連絡先情報が示す連絡先を示す画像を含む。
サービスマンは、報知画面に表示された情報を見て、クライアント装置20にインストールされたソフトウェアのアップデート及び修復の少なくともいずれかを行う。このために、サービスマンは、例えば、連絡先情報が示す連絡先に連絡する、及び設置場所情報が示す設置場所に向かうなどの行動をする。そして、サービスマンは、例えば、修復指示情報及び更新指示情報に基づき、クライアント装置20にインストールされたソフトウェアのアップデート及び修復の少なくともいずれかを行うべくクライアント装置20のメンテナスなどを行う。
第2実施形態のアップデートシステム1bによれば、サーバー装置10は、サービスマンが必要なクライアント装置20に対しても、第1実施形態と同様の効果が得られる。
〔第3実施形態〕
第3実施形態のアップデートシステム1bの構成は、第2実施形態と同様であるので説明を省略する。
第3実施形態では、サーバー装置10は、各クライアント装置20について、インストールされたOS、アプリケーションソフトウェア及びその他のソフトウェアそれぞれのバージョン情報を補助記憶デバイス14などに記憶する。サーバー装置10は、例えば、クライアントIDと関連づけてこれら当該バージョン情報を記憶する。
サーバー装置10のプロセッサー11は、例えば、クライアント装置20から送信されるバージョン情報を記憶する。あるいは、サーバー装置10のプロセッサー11は、例えば、サービスマンなどによる操作によって入力されたバージョン情報を記憶する。
以下、第3実施形態に係るアップデートシステム1bの動作を図8などに基づいて説明する。なお、以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。図8は、サーバー装置10のプロセッサー11による処理の一例を示すフローチャートである。プロセッサー11は、例えば、ROM12又は補助記憶デバイス14などに記憶されたプログラムに基づいてこの処理を実行する。
ACT81においてプロセッサー11は、アップデート処理を開始か否かを判定する。アップデート処理は、クライアント装置20にインストールされたソフトウェアのアップデートが必要であるか否かを判定し、必要であると判定した場合に当該ソフトウェアをアップデートさせるための動作を実行する処理である。プロセッサー11は、例えば、定期的にアップデート処理を実行するために、特定の日時になったことに応じてアップデート処理を開始すると判定する。また、プロセッサー11は、クライアント装置20にインストールされるソフトウェアについて、新たなアップデートデータが追加された、すなわち、当該ソフトウェアの新しいバージョンが出たことに応じてアップデート処理を開始すると判定してもよい。プロセッサー11は、アップデート処理を開始すると判定しないならば、ACT81においてNoと判定してACT81を繰り返す。対して、プロセッサー11は、アップデート処理を開始すると判定するならば、ACT81においてYesと判定してACT38へと進む。
なお、プロセッサー11は、クライアント装置20ごとにACT81の処理を行い、ACT81の処理においてYesと判定した対象のクライアント装置20それぞれに対してACT81より後の処理を実行する。
第3実施形態では、プロセッサー11は、ACT38において、受信ソフトウェア情報に含まれる各ソフトウェアのバージョン情報に代えて、補助記憶デバイス14などに記憶されたバージョン情報を取得して用いる。
したがって、プロセッサー11は、補助記憶デバイス14などに記憶されたバージョン情報を取得することで、クライアント装置にインストールされているソフトウェアのバージョンを取得する取得部として機能する。
第3実施形態では、プロセッサー11は、ACT39の処理においてNoと判定したならば、ACT81へと戻る。また、第3実施形態では、プロセッサー11は、ACT40の処理の後、ACT82へと進む。
ACT82においてプロセッサー11は、クライアント装置20に対して自動アップデートを実行させるか否かを判定する。サーバー装置10は、例えば、クライアント装置20ごとに自動アップデートを実行させるか否かを設定などとして記憶している。プロセッサー11は、当該設定に基づき自動アップデートを実行させるか否かを判定する。当該設定は、例えば、クライアント装置20が自動アップデート可能であるならば、自動アップデートを実行させる設定とする。また、例えば、当該設定は、クライアント装置20にインストールされたソフトウェアのアップデートにサービスマンが必要であるならば、自動アップデートを実行させない設定とする。プロセッサー11は、自動アップデートを実行させると判定するならば、ACT82においてYesと判定してACT83へと進む。
ACT83においてプロセッサー11は、指示情報を生成する。ただし、ACT83において生成される指示情報は、更新指示情報を含む。プロセッサー11は、指示情報を生成した後、当該指示情報をクライアント装置20に送信するように通信インターフェース15に対して指示する。この送信の指示を受けて通信インターフェース15は、当該指示情報をクライアント装置20に送信する。送信された当該指示情報は、クライアント装置20の通信インターフェース25によって受信される。プロセッサー11は、ACT83の処理の後、ACT81へと戻る。
一方、ここで指示情報を受信したクライアント装置20は、第1実施形態の図2のACT20と同様の処理を行う。
対して、プロセッサー11は、自動アップデートを実行させると判定しないならば、図8のACT82においてNoと判定してACT84へと進む。
ACT84においてプロセッサー11は、サービスマン通知を生成する。ただし、ACT84において生成されるサービスマン通知は、クライアント装置20にインストールされたソフトウェアについて、アップデートが必要であることをサービスマンに対して通知するために送信される。また、ACT84において生成されるサービスマン通知は、更新指示情報を含む。プロセッサー11は、サービスマン通知を生成した後、当該サービスマン通知を端末装置30に送信するように通信インターフェース15に対して指示する。この送信の指示を受けて通信インターフェース15は、当該サービスマン通知を端末装置30に送信する。送信された当該サービスマン通知は、端末装置30の通信インターフェース35によって受信される。プロセッサー11は、ACT84の処理の後、ACT81へと戻る。
一方、ここでサービスマン通知を受信した端末装置30は、第2実施形態の図7のACT72と同様の処理を行う。ただし、端末装置30のプロセッサー31は、ここでは、サービスマンに対して、クライアント装置20にインストールされたソフトウェアについて、アップデートが必要であることを知らせるための報知動作を実行する。
第3実施形態のアップデートシステム1bによれば、サーバー装置10は、脆弱性の深刻度が所定より低い場合には定期アップデートを中止する。これにより、サーバー装置10は、クライアント装置20の使用を必要以上に妨げない。
上記の第1実施形態~第3実施形態は以下のような変形も可能である。
第1実施形態及び第2実施形態では、アップデートシステム1は、クライアント装置20のOSの起動時に、ソフトウェア情報の送信、修復処理及び更新処理などの処理を行った。しかしながら、アップデートシステム1は、クライアント装置20のアプリケーションソフトウェアの起動時に、同様の処理を行っても良い。
第1実施形態及び第2実施形態では、サーバー装置10のプロセッサー11は、ハッシュ値を用いて対象ソフトウェアの整合性チェックを行った。しかしながら、プロセッサー11は、ハッシュ値に限らず、例えば、対象ソフトウェアのファイルサイズ、作成日時、更新日時、チェックサム、ハッシュ値若しくは対象ソフトウェアの特徴を示すその他の特徴情報又はこれらのうちの複数を用いて整合性チェックを行っても良い。そして、プロセッサー11は、整合性チェックにおいて特徴情報が同一でない場合にデータに誤りを検出したと判定する。
ソフトウェアDBは、ハッシュ値を記憶していなくても良い。この場合、プロセッサー11は、ハッシュ値を、真正であることが確かなソフトウェアのデータから算出する。
第2実施形態及び第3実施形態では、通知情報は、アップデート及び修復に必要なデータを含む。しかしながら、実施形態のアップデートシステムは、サービスマンが別途サーバー装置10からアップデート及び修復に必要なデータを取得するような形態であっても良い。
プロセッサー11、プロセッサー21及びプロセッサー31は、上記実施形態においてプログラムによって実現する処理の一部又は全部を、回路のハードウェア構成によって実現するものであっても良い。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
なお、以下に本願の出願当初の特許請求の範囲の記載を付記する。
[C1]
クライアント装置にインストールされているソフトウェアのバージョンを取得する取得部と、
前記ソフトウェアの前記バージョンの脆弱性の深刻度を示す評価値を求め、前記評価値に基づき前記ソフトウェアをアップデートするか否かを決定する処理部と、
前記ソフトウェアをアップデートしないと決定された場合、前記クライアント装置に前記ソフトウェアのアップデート指示を行わず、前記ソフトウェアをアップデートすると決定された場合、前記アップデート指示を行う指示部と、を備えるサーバー装置。
[C2]
前記取得部は、前記ソフトウェアの特徴を示す特徴情報を取得し、
前記処理部は、前記特徴情報を用いて前記ソフトウェアのデータの誤りを検出し、
前記指示部は、前記データに誤りが検出された場合、前記ソフトウェアを修復するように前記クライアント装置に指示する、請求項1に記載のサーバー装置。
[C3]
前記処理部は、前記ソフトウェアのアップデートにかかる時間を求め、前記評価値及び前記時間に基づき前記ソフトウェアをアップデートするか否かを決定する、請求項1又は請求項2に記載のサーバー装置。
[C4]
前記処理部は、前記評価値が閾値未満である場合、前記ソフトウェアをアップデートしないと決定する、請求項1乃至請求項3のいずれか1項に記載のサーバー装置。
[C5]
クライアント装置にインストールされているソフトウェアのバージョンを取得する取得部と、
前記ソフトウェアの前記バージョンの脆弱性の深刻度を示す評価値を求め、前記評価値に基づき前記ソフトウェアをアップデートするか否かを決定する処理部と、
前記ソフトウェアをアップデートすると決定された場合、前記ソフトウェアをアップデートするように指示する情報をサービスマンが使用する端末装置に送信する送信部と、を備えるサーバー装置。
[C6]
サーバー装置が備えるプロセッサーを、
クライアント装置にインストールされているソフトウェアのバージョンを取得する取得部と、
前記ソフトウェアの前記バージョンの脆弱性の深刻度を示す評価値を求め、前記評価値に基づき前記ソフトウェアをアップデートするか否かを決定する処理部と、
前記ソフトウェアをアップデートしないと決定された場合、前記クライアント装置に前記ソフトウェアのアップデート指示を行わず、前記ソフトウェアをアップデートすると決定された場合、前記アップデート指示を行う指示部と、して機能させるためのプログラム。
1,1b……アップデートシステム、10……サーバー装置、11,21,31……プロセッサー、12,22,32……ROM、13,23,33……RAM、14,24,34……補助記憶デバイス、15,25,35……通信インターフェース、16,28,37……バス、20……クライアント装置、26……表示デバイス、27……入力デバイス、30……端末装置、36……タッチパネル、141……ソフトウェアDB

Claims (6)

  1. クライアント装置にインストールされているソフトウェアのバージョンを取得する取得部と、
    前記ソフトウェアの前記バージョンを含む情報に基づき、前記ソフトウェアの脆弱性それぞれの深刻度の値を調べ、前記脆弱性それぞれの前記深刻度の値を足し合わせたポイント又は前記脆弱性それぞれの前記深刻度の中で最大の値を前記脆弱性の前記深刻度を示す評価値として求め、前記評価値に基づき前記ソフトウェアをアップデートするか否かを決定する処理部と、
    前記ソフトウェアをアップデートしないと決定された場合、前記クライアント装置に前記ソフトウェアのアップデート指示を行わず、前記ソフトウェアをアップデートすると決定された場合、前記アップデート指示を行う指示部と、を備えるサーバー装置。
  2. 前記取得部は、前記ソフトウェアの特徴を示す特徴情報を取得し、
    前記処理部は、前記特徴情報を用いて前記ソフトウェアのデータの誤りを検出し、
    前記指示部は、前記データに誤りが検出された場合、前記ソフトウェアを修復するように前記クライアント装置に指示する、請求項1に記載のサーバー装置。
  3. 前記処理部は、前記ソフトウェアのアップデートにかかる時間を求め、前記評価値及び前記時間に基づき前記ソフトウェアをアップデートするか否かを決定する、請求項1又は請求項2に記載のサーバー装置。
  4. 前記処理部は、前記評価値が閾値未満である場合、前記ソフトウェアをアップデートしないと決定する、請求項1乃至請求項3のいずれか1項に記載のサーバー装置。
  5. クライアント装置にインストールされているソフトウェアのバージョンを取得する取得部と、
    前記ソフトウェアの前記バージョンを含む情報に基づき、前記ソフトウェアの脆弱性それぞれの深刻度の値を調べ、前記脆弱性それぞれの前記深刻度の値を足し合わせたポイント又は前記脆弱性それぞれの前記深刻度の中で最大の値を前記脆弱性の前記深刻度を示す評価値として求め、前記評価値に基づき前記ソフトウェアをアップデートするか否かを決定する処理部と、
    前記ソフトウェアをアップデートすると決定された場合、前記ソフトウェアをアップデートするように指示する情報をサービスマンが使用する端末装置に送信する送信部と、を備えるサーバー装置。
  6. サーバー装置が備えるプロセッサーを、
    クライアント装置にインストールされているソフトウェアのバージョンを取得する取得部と、
    前記ソフトウェアの前記バージョンを含む情報に基づき、前記ソフトウェアの脆弱性それぞれの深刻度の値を調べ、前記脆弱性それぞれの前記深刻度の値を足し合わせたポイント又は前記脆弱性それぞれの前記深刻度の中で最大の値を前記脆弱性の前記深刻度を示す評価値として求め、前記評価値に基づき前記ソフトウェアをアップデートするか否かを決定する処理部と、
    前記ソフトウェアをアップデートしないと決定された場合、前記クライアント装置に前記ソフトウェアのアップデート指示を行わず、前記ソフトウェアをアップデートすると決定された場合、前記アップデート指示を行う指示部と、して機能させるためのプログラム。
JP2019167152A 2019-09-13 2019-09-13 サーバー装置及びプログラム Active JP7346187B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019167152A JP7346187B2 (ja) 2019-09-13 2019-09-13 サーバー装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019167152A JP7346187B2 (ja) 2019-09-13 2019-09-13 サーバー装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2021043863A JP2021043863A (ja) 2021-03-18
JP7346187B2 true JP7346187B2 (ja) 2023-09-19

Family

ID=74861696

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019167152A Active JP7346187B2 (ja) 2019-09-13 2019-09-13 サーバー装置及びプログラム

Country Status (1)

Country Link
JP (1) JP7346187B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003087424A (ja) 2001-09-07 2003-03-20 Nobuyoshi Sakatani インターネット接続サーバ、初期設定サーバ、ホストサーバ、およびインターネット接続サーバの遠隔管理システム
JP2005088452A (ja) 2003-09-18 2005-04-07 Dainippon Printing Co Ltd ガスバリア性フィルム及びそれを用いてなる積層体
JP2015079440A (ja) 2013-10-18 2015-04-23 富士通株式会社 修正プログラム確認方法、修正プログラム確認プログラム、及び情報処理装置
JP2019057133A (ja) 2017-09-21 2019-04-11 富士ゼロックス株式会社 画像処理装置およびプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070261050A1 (en) * 2004-03-16 2007-11-08 Matsushita Electric Industrial Co., Ltd. Terminal Device for Updating Computer Program and Update Method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003087424A (ja) 2001-09-07 2003-03-20 Nobuyoshi Sakatani インターネット接続サーバ、初期設定サーバ、ホストサーバ、およびインターネット接続サーバの遠隔管理システム
JP2005088452A (ja) 2003-09-18 2005-04-07 Dainippon Printing Co Ltd ガスバリア性フィルム及びそれを用いてなる積層体
JP2015079440A (ja) 2013-10-18 2015-04-23 富士通株式会社 修正プログラム確認方法、修正プログラム確認プログラム、及び情報処理装置
JP2019057133A (ja) 2017-09-21 2019-04-11 富士ゼロックス株式会社 画像処理装置およびプログラム

Also Published As

Publication number Publication date
JP2021043863A (ja) 2021-03-18

Similar Documents

Publication Publication Date Title
CN109684849B (zh) 信息处理装置、其控制方法和存储介质
US20130160126A1 (en) Malware remediation system and method for modern applications
EP3399408B1 (en) Information processing apparatus and computer readable storage medium
JP2019057217A (ja) 情報処理装置、ファームウェア更新プログラム
KR20150048136A (ko) 보안 펌웨어 업데이트 기법
US20090044056A1 (en) Maintenance management system, database server, maintenance management program, and maintenance management method
EP2302550A2 (en) System, method and computer-readable storage medium for managing licenses of multi-function peripherals
US11074059B2 (en) Non-transitory computer-readable recording medium storing instructions controlling operation of mobile terminal
US10055174B2 (en) Information processing apparatus, method, and storage medium storing program
US8819689B2 (en) Management apparatus for managing network devices, control method thereof, and recording medium
US9612781B2 (en) Printing system and information processing apparatus, method, and program for controlling job transmission based on authentication setting of an image forming apparatus
US10089102B2 (en) Information processing apparatus, method, and program
US20110173606A1 (en) Information processing apparatus, control method thereof, and program
US9792107B2 (en) Image forming apparatus that performs firmware update, control method therefor, and storage medium
US9086938B2 (en) Information processing apparatus, control method thereof, and storage medium
JP7013775B2 (ja) 制御プログラム、情報処理装置、及び、制御方法
JP7346187B2 (ja) サーバー装置及びプログラム
US20110088025A1 (en) Use of software update policies
JP2019066998A (ja) 制御プログラム、情報処理装置、及び、制御方法
JP2019160133A (ja) 情報処理装置、情報処理システムおよび方法
JP2011060142A (ja) 統合管理装置、統合管理システム、統合管理方法、統合管理プログラム、及びそのプログラムを記録した記録媒体
JP2019128857A (ja) デバイスドライバー
US11340880B2 (en) Application management service including package file
JP2021174418A (ja) プログラム、プログラムセット、および情報処理装置
US11023216B2 (en) Storage medium, information processing apparatus, and control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220819

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20230104

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230530

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230725

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230808

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230906

R150 Certificate of patent or registration of utility model

Ref document number: 7346187

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150