(57)【要約】【課題】強制アクセス制御される情報処理装置において、プログラムを更新したときに、不正なアクセスが発生しセキュリティポリシーが更新された場合でも、システムを容易に復旧できるようにする。【解決手段】情報処理装置は、セキュリティポリシーに従ってリソースへのアクセスが管理され、セキュリティポリシーに違反したプログラムに対応するセキュリティポリシーを自動的に更新する情報処理装置であって、情報処理装置のプログラムを更新する更新部と、プログラム毎に、更新後のプログラムに関する第１の更新情報と、更新前のプログラムに関する第２の更新情報とを記憶部に記憶して管理する管理部と、更新後のプログラムに更新した後、所定の期間内に前記セキュリティポリシーに違反するアクセスが発生した場合、第２の更新情報を用いて更新後のプログラムを更新前のプログラムに復旧する復旧部と、を有する。【選択図】図３
2020086979.tif 000002
【特許請求の範囲】
【請求項１】
セキュリティポリシーに従ってリソースへのアクセスが管理され、前記セキュリティポリシーに違反したプログラムに対応するセキュリティポリシーを自動的に更新する情報処理装置であって、
前記情報処理装置にインストールされているプログラムを更新する更新部と、
プログラム毎に、更新後のプログラムに関する第１の更新情報と、更新前のプログラムに関する第２の更新情報とを記憶部に記憶して管理する管理部と、
前記更新後のプログラムに更新した後、所定の期間内に前記セキュリティポリシーに違反するアクセスが発生した場合、前記第２の更新情報を用いて前記更新後のプログラムを前記更新前のプログラムに復旧する復旧部と、
を有する、情報処理装置。
【請求項２】
前記情報処理装置の起動回数を計数する計数部を有し、
前記所定の期間は、前記更新後のプログラムに更新した後に、前記計数部が計数した前記起動回数が予め定められた回数になるまでの期間を含む、請求項１に記載の情報処理装置。
【請求項３】
前記所定の期間は、前記更新後のプログラムが更新直後であるか否かを判断するために定められた期間である、請求項１又は２に記載の情報処理装置。
【請求項４】
前記所定の期間は、前記セキュリティポリシーに違反したアクセスの原因が、前記更新後のプログラムであると判断するために定められた期間である、請求項１に記載の情報処理装置。
【請求項５】
前記更新後のプログラムに更新した後、前記所定の期間内に前記セキュリティポリシーに違反するアクセスが発生した場合、前記セキュリティポリシーに違反したプログラムに関する解析情報を、所定の送信先に送信する情報送信部を有する、請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
前記解析情報は、前記セキュリティポリシーに違反したプログラムのセキュリティポリシーの情報を含む、請求項５に記載の情報処理装置。
【請求項７】
前記第２の更新情報は、前記更新前のプログラムのバージョン情報と更新用のファイルとセキュリティポリシーとを含む、請求項１乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
前記第１の更新情報は、前記更新後のプログラムのバージョン情報と更新ファイルとセキュリティポリシーとを含み、
前記管理部は、前記更新後のプログラムを新たなプログラムに更新する場合、前記第１の更新情報を、前記第２の更新情報として前記記憶部に記憶する、請求項１乃至７のいずれか一項に記載の情報処理装置。
【請求項９】
セキュリティポリシーに従ってリソースへのアクセスが管理され、前記セキュリティポリシーに違反したプログラムに対応するセキュリティポリシーを自動的に更新する情報処理装置が、
前記情報処理装置にインストールされているプログラムを更新する処理と、
プログラム毎に、更新後のプログラムに関する第１の更新情報と、更新前のプログラムに関する第２の更新情報とを記憶部に記憶して管理する処理と、
前記更新後のプログラムに更新した後、所定の期間内に前記セキュリティポリシーに違反するアクセスが発生した場合、前記第２の更新情報を用いて前記更新後のプログラムを前記更新前のプログラムに復旧する処理と、
を実行する、プログラム更新方法。
【請求項１０】
セキュリティポリシーに従ってリソースへのアクセスが管理され、前記セキュリティポリシーに違反したプログラムに対応するセキュリティポリシーを自動的に更新する情報処理装置を、
前記情報処理装置にインストールされているプログラムを更新する更新部と、
プログラム毎に、更新後のプログラムに関する第１の更新情報と、更新前のプログラムに関する第２の更新情報とを記憶部に記憶して管理する管理部と、
前記更新後のプログラムに更新した後、所定の期間内に前記セキュリティポリシーに違反するアクセスが発生した場合、前記第２の更新情報を用いて前記更新後のプログラムを前記更新前のプログラムに復旧する復旧部と、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プログラム更新方法、及びプログラムに関する。
【背景技術】
【０００２】
情報処理装置を不正な利用から守るシステム制御の一つである強制アクセス制御が知られている。強制アクセス制御では、ユーザは、例えば、プロセス、ファイル、システム、デバイス等のリソースにアクセスする権限を自己で管理することができず、管理者等によって設定されたセキュリティポリシーに従って利用可能なリソースが決定される。
【０００３】
このような強制アクセス制御では、誰が、何を、どのようにアクセスできるかが、セキュリティポリシーによって厳格に定められており、例えば、プログラムが更新された場合には、プログラムの更新に合わせてセキュリティポリシーも更新される場合がある。
【０００４】
また、セキュリティポリシーを更新する際の作業負荷を軽減させるために、セキュリティポリシーに違反したアクセス情報を解析し、脆弱性の変化に対応できるようにセキュリティポリシーを自動的に更新する技術が知られている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１に開示された技術では、更新されたプログラムに不具合等による脆弱性があり、不正なアクセスが発生した場合、セキュリティポリシーを自動的に更新することにより、当該プログラムを更新しない限りシステムを復旧できなくなる場合がある。
【０００６】
本発明の一実施形態は、上記の問題点に鑑みてなされたものであって、強制アクセス制御される情報処理装置において、プログラムを更新したときに、不正なアクセスが発生しセキュリティポリシーが更新された場合でも、システムを容易に復旧できるようにする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明の一実施形態に係る情報処理装置は、セキュリティポリシーに従ってリソースへのアクセスが管理され、前記セキュリティポリシーに違反したプログラムに対応するセキュリティポリシーを自動的に更新する情報処理装置であって、前記情報処理装置にインストールされているプログラムを更新する更新部と、プログラム毎に、更新後のプログラムに関する第１の更新情報と、更新前のプログラムに関する第２の更新情報とを記憶部に記憶して管理する管理部と、前記更新後のプログラムに更新した後、所定の期間内に前記セキュリティポリシーに違反するアクセスが発生した場合、前記第２の更新情報を用いて前記更新後のプログラムを前記更新前のプログラムに復旧する復旧部と、を有する。
【発明の効果】
【０００８】
本発明の一実施形態によれば、強制アクセス制御される情報処理装置において、プログラムを更新したときに不正なアクセスが発生し、セキュリティポリシーが更新された場合でも、システムを容易に復旧できるようになる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態に係る情報処理システムのシステム構成の例を示す図である。
【図２】一実施形態に係るコンピュータのハードウェア構成の例を示す図である。
【図３】一実施形態に係る情報処理装置の機能構成の例を示す図である。
【図４】一実施形態に係るプログラムの更新情報について説明するための図である。
【図５】第１の実施形態に係るプログラムの更新処理の例を示すフローチャートである。
【図６】第１の実施形態に係るプログラム更新後の処理の例を示すフローチャートである。
【図７】第１の実施形態に係るセキュリティポリシーの更新処理のイメージを示す図である。
【図８】第１の実施形態に係るセキュリティポリシーに違反したプログラムを特定する処理の例を示すフローチャートである。
【図９】第１の実施形態に係るアプリ定義情報、及びアクセスログ解析結果のイメージを示す図である。
【図１０】第１の実施形態に係るプログラムの復旧処理の例を示すフローチャートである。
【図１１】第２の実施形態に係るプログラムの更新処理の例を示す図である。
【図１２】第２実施形態に係るプログラム更新後の処理の例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に、本発明の実施の形態について、添付の図面を参照して説明する。
【００１１】
＜システム構成＞
図１は、一実施形態に係る情報処理システムのシステム構成の例を示す図である。情報処理システム１００は、例えば、インターネットやＬＡＮ（Local Area Network）等のネットワーク１０４に接続された、１つ以上の情報処理装置１０１と、管理サーバ１０２とを含む。
【００１２】
情報処理装置１０１は、強制アクセス制御機能、及びセキュリティポリシーに違反したアクセス情報を解析して、脆弱性の変化に対応できるようにセキュリティポリシーを自動的に更新する機能を備えたコンピュータである。情報処理装置１０１は、例えば、ＰＣ（Personal Computer）等の汎用の情報処理装置であっても良いし、例えば、画像形成装置、プロジェクタ、電子ホワイトボード、デジタルサイネージ等の電子機器であっても良い。
【００１３】
ここで、強制アクセス制御とは、情報処理装置１０１のリソースを、ユーザが自己で管理するのではなく、例えば、システム管理者等によって設定されたセキュリティポリシーに従って管理するリソースのアクセス制御方式である。また、情報処理装置１０１は、例えば、特許文献１に開示された技術のように、セキュリティポリシーに違反したアクセス情報を解析し、脆弱性の変化に対応できるようにセキュリティポリシーを自動的に更新する機能を有しているものとする。
【００１４】
管理サーバ１０２は、コンピュータの構成を有する情報処理装置、又は複数の情報処理装置を含むシステムである。管理サーバ１０２は、例えば、情報処理装置１０１を管理するリモート管理センタ１０３等に設けられ、情報処理装置１０１に関する情報や、情報処理装置１０１にインストールされたプログラム等を管理する。
【００１５】
例えば、情報処理装置１０１は、情報処理装置１０１を利用するユーザ、又は情報処理装置１０１を管理する管理者等の更新操作に応じて、メモリカード等に記憶した更新プログラムにより、情報処理装置１０１にインストールされたプログラムを更新する。
【００１６】
別の一例として、管理サーバ１０２は、情報処理装置１０１にインストールされたプログラムの最新版がリリースされると、プログラムが更新されたことを情報処理装置１０１に通知する。これに応じて、情報処理装置１０１は、管理サーバ１０２から最新版のプログラムに更新するための更新プログラムを取得し、取得した更新プログラムにより、情報処理装置１０１にインストールされたプログラムを更新する。
【００１７】
好ましくは、情報処理装置１０１は、プログラムの更新結果（例えば、プログラムの更新の成否、現在のプログラムのバージョン、動作状態等）を管理サーバ１０２に通知する。これにより、管理サーバ１０２は、情報処理システム１００に含まれる１つ以上の情報処理装置１０１にインストールされたプログラムを最新の状態に維持すると共に、各情報処理装置１０１の状態を管理することができる。
【００１８】
ただし、上記の構成だけでは、例えば、更新されたプログラムに不具合等による脆弱性があり不正なアクセスが発生した場合、セキュリティポリシーを自動的に更新されてしまうので、当該プログラムを更新しない限りシステムを復旧できなくなる場合がある。
【００１９】
例えば、ネットワーク機能を実現するプログラムを更新した際に、更新したプログラムに脆弱性があり、一部の環境において、データ通信による書き換え等の不正アクセスが発生する恐れがあるものとする。
【００２０】
このような場合、従来の技術では、セキュリティポリシーの更新処理のみが実行される。この状態で、不正なアクセスが今後許可しても良い内容でない場合には、システムを再起動しても、毎回強制アクセス制御が行われシステムが立ち上がらない状態となる場合がある。このとき、従来の技術では、例えば、プログラムを更新する、又はシステムを元に戻す等の操作を、ユーザが判断して実施する必要がある。
【００２１】
そこで、本実施形態に係る情報処理装置１０１は、例えば、更新後のプログラムがセキュリティポリシーに違反してセキュリティポリシーが更新された場合でも、更新後のプログラムを更新前のプログラムに容易に復旧できるようにする機能を有している。
【００２２】
例えば、情報処理装置１０１は、プログラム毎に、更新前のプログラムに関するバージョン情報、更新プログラム、セキュリティポリシー等の更新情報と、更新後のプログラムに関する更新情報とを不揮発性の記憶部に記憶して管理する機能を有している。また、情報処理装置１０１は、更新後のプログラムに更新した後、所定の期間内にセキュリティポリシーに違反するアクセスが発生した場合、更新前のプログラムの更新情報を用いて、更新後のプログラムを更新前のプログラムに、復旧する機能を有している。
【００２３】
ここで、所定の期間は、例えば、更新後のプログラムが更新された直後（更新直後）であるか否か、又はセキュリティポリシーに違反するアクセスの原因が更新後のプログラムであるか否か等を判断するために定められた期間である。
【００２４】
例えば、情報処理装置１０１は、情報処理装置１０１の起動回数をカウントする計数機能を有し、更新後のプログラムに更新した後に、計数機能でカウントされた起動回数が所定の回数未満である場合、更新後のプログラムが更新された直後であると判断する。ただし、これに限られず、所定の期間は、例えば、２４時間、５日、１週間等の予め定められた期間等であっても良い。
【００２５】
上記の構成により、強制アクセス制御される情報処理装置１０１において、プログラムを更新したときに、不正なアクセスが発生し、セキュリティポリシーが更新された場合でも、システムを容易に復旧することができるようになる。
【００２６】
＜ハードウェア構成＞
（情報処理装置、及び管理サーバのハードウェア構成）
情報処理装置１０１、及び管理サーバ１０２は、例えば、図２に示すような一般的なコンピュータ２００のハードウェア構成を備えている。
【００２７】
図２は、一実施形態に係るコンピュータのハードウェア構成の例を示す図である。コンピュータ２００は、例えば、ＣＰＵ（Central Processing Unit）２０１、ＲＡＭ（Random Access Memory）２０２、ＲＯＭ（Read Only Memory）２０３、ストレージ２０４、ネットワークＩ／Ｆ（Interface）２０５、入力装置２０６、表示装置２０７、外部接続Ｉ／Ｆ２０８、及びバス２０９等を有する。
【００２８】
ＣＰＵ２０１は、ＲＯＭ２０３やストレージ２０４等に格納されたプログラムやデータをＲＡＭ２０２上に読み出し、処理を実行することで、コンピュータ２００の各機能を実現する演算装置である。ＲＡＭ２０２は、ＣＰＵ２０１のワークエリア等として用いられる揮発性のメモリである。ＲＯＭ２０３は、電源を切ってもプログラムやデータを保持する不揮発性のメモリである。
【００２９】
ストレージ２０４は、例えば、ＨＤＤ（Hard Disk Drive）や、ＳＳＤ（Solid State Drive）等の大容量の不揮発性の記憶装置であり、ＯＳ（Operating System）、アプリ、各種のデータ等を記憶する。ネットワークＩ／Ｆ２０５は、コンピュータ２００をネットワーク１０４等に接続するための通信インタフェースである。
【００３０】
入力装置２０６は、例えば、マウス等のポインティングデバイスや、キーボード等の入力デバイスであり、コンピュータ２００に各操作信号を入力するために用いられる。表示装置２０７はディスプレイ等の表示デバイスであり、コンピュータ２００による処理結果等を表示する。なお、入力装置２０６、及び表示装置２０７は、一体化されたタッチパネルディスプレイ等の表示入力装置であっても良い。
【００３１】
外部接続Ｉ／Ｆ２０８は、コンピュータ２００に外部装置を接続するためのインタフェースである。外部装置には、例えば、各種のメモリカード等の記憶媒体２１０が含まれる。コンピュータ２００は、外部接続Ｉ／Ｆ２０８を介して、記憶媒体２１０の読取り、書き込みを行うことができる。記憶媒体２１０には、例えば、メモリカード、ＵＳＢ（Universal Serial Bus）メモリ等が含まれる。また、コンピュータ２００は、記憶媒体２１０に所定のプログラムを格納し、この記憶媒体２１０に格納されたプログラムを外部接続Ｉ／Ｆ２０８を介して、コンピュータ２００にインストールすることにより、所定のプログラムが実行可能となる。
【００３２】
バス２０９は、上記の各構成要素に接続され、アドレス信号、データ信号、及び各種制御信号等を伝送する。
【００３３】
＜機能構成＞
図３は、一実施形態に係る情報処理装置の機能構成の例を示す図である。情報処理装置１０１は、例えば、図２のＣＰＵ２０１で所定のプログラムを実行することにより、通信部３０１、アクセス制御部３０２、プログラム更新部３０３、プログラム管理部３０４、解析部３０５、セキュリティポリシー更新部３０６、復旧部３０７、計数部３０８、情報送信部３０９、及び記憶部３１０等を実現している。なお、上記の各機能構成のうち、少なくとも一部は、ハードウェアによって実現されるものであっても良い。
【００３４】
通信部３０１は、例えば、図２のＣＰＵ２０１で実行されるプログラム（ＯＳ等）、及びネットワークＩ／Ｆ２０５等によって実現され、情報処理装置１０１をネットワーク１０４に接続して、管理サーバ１０２等と通信を行う。
【００３５】
アクセス制御部３０２は、例えば、図２のＣＰＵ２０１で実行されるプログラム（ＯＳ等）によって実現され、記憶部３１０に記憶したセキュリティポリシー３１１に従って、情報処理装置１０１のリソースへのアクセスを管理する強制アクセス制御を行う。例えば、アクセス制御部３０２は、各プログラムに対応するセキュリティポリシー３１１に基づいて、各プログラムによるリソースへのアクセスの可否等を制御する。また、アクセス制御部３０２は、強制アクセス制御に違反したプロセス名、アクセス先等の情報をアクセスログ情報として、例えば、記憶部３１０の解析情報３１５等に記憶する。
【００３６】
プログラム更新部３０３は、例えば、図２のＣＰＵ２０１で実行されるプログラム（更新用アプリ等）によって実現され、情報処理装置１０１のプログラムを更新する。一例として、プログラム更新部３０３は、ユーザ（又は管理者）の操作に従って、記憶媒体２１０等に記憶された更新プログラム等を取得し、取得した更新プログラム等を用いて情報処理装置１０１のプログラムを更新する。
【００３７】
別の一例として、プログラム更新部３０３は、管理サーバ１０２から更新プログラム等があることが通知されると、管理サーバ１０２等から更新プログラム等を取得し、取得した更新プログラム等を用いて、情報処理装置１０１のプログラムを更新しても良い。
【００３８】
プログラム管理部（管理部）３０４は、例えば、図２のＣＰＵ２０１で実行されるプログラム（更新用アプリ等）によって実現される。プログラム管理部３０４は、プログラム毎に、プログラム更新部３０３によって更新された更新後のプログラムに関する更新情報（更新後）３１２と、更新前のプログラムに関する更新情報（更新前）３１３とを、記憶部３１０に記憶して管理する。
【００３９】
好ましくは、プログラム管理部３０４は、プログラム更新部３０３がプログラムを更新するときに、記憶部３１０に記憶していた更新情報（更新前）３１３を、更新情報（バックアップ）３１４にバックアップとして記憶しておく。
【００４０】
図４は、一実施形態に係るプログラムの更新情報について説明するための図である。例えば、プログラムがアプリである場合、図４（ａ）に示すように、各更新情報４００には、アプリ名、バージョン、アプリ定義用セキュリティポリシー、世代、更新ファイル等が含まれる。なお、ここでは、プログラムがアプリであるものとして以下の説明を行うが、プログラムは、アプリ以外のプログラム（例えば、ライブラリ、フレームワーク、ドライバ、ファームウェア等）であっても良い。
【００４１】
アプリ名は、アプリの名前等を示す情報である。バージョンは、アプリのバージョンを示す情報（バージョン情報）である。アプリ定義用セキュリティポリシーは、アプリに対応するセキュリティポリシーである。世代は、更新情報が、更新後、更新前、バックアップのいずれの世代であるかを示す情報であり、３世代分の更新情報を管理するための情報として用いられる。更新ファイルは、アプリをインストールするために用いる更新用のファイル等である。
【００４２】
図４（ｂ）は、プログラム更新部３０３によって更新された更新後のプログラムの更新情報（第１の更新情報）である更新情報（更新後）３１２の一例を示している。また、図４（ｃ）は、プログラム更新部３０３による更新前のプログラムの更新情報（第２の更新情報）である更新情報（更新前）３１３の一例を示している。
【００４３】
好ましくは、プログラム管理部３０４は、プログラム更新部３０３によってプログラムが更新されるとき、更新情報（更新前）３１３に記憶されていた更新情報を、図４（ｄ）に示すような更新情報（バックアップ）３１４に、バックアップとして記憶しておく。このように、プログラム管理部３０４は、例えば、３世代分の更新情報４００を、記憶部３１０等に記憶して管理する。
【００４４】
ここで、図３に戻り、情報処理装置１０１の機能構成の説明を続ける。
【００４５】
解析部３０５は、例えば、図２のＣＰＵ２０１で実行されるプログラム（解析用アプリ等）によって実現される。解析部３０５は、アクセス制御部３０２が記憶部３１０に記憶するアクセスログ情報を解析して、セキュリティポリシーに違反したプログラムを特定し、特定したプログラムの情報等をアクセスログ解析結果として、記憶部３１０の解析情報３１５等に記憶する。
【００４６】
なお、記憶部３１０の解析情報３１５には、アクセス制御部３０２が記憶するアクセスログ情報、解析部３０５が記憶するアクセスログ解析結果、及びプロセス名とアプリ名の対応関係を記憶したアプリ定義情報等が含まれる。
【００４７】
セキュリティポリシー更新部３０６は、例えば、図２のＣＰＵ２０１で実行されるプログラム（ＯＳ等）によって実現される。セキュリティポリシー更新部３０６は、例えば、特許文献１と同様に、セキュリティポリシーに違反したアクセス情報を解析し、脆弱性の変化に対応できるようにセキュリティポリシーを自動的に更新する。
【００４８】
復旧部３０７は、例えば、図２のＣＰＵ２０１で実行されるプログラム（更新用アプリ等）によって実現される。復旧部３０７は、プログラム更新部３０３が更新後のプログラムに更新した後、所定の期間内にセキュリティポリシーに違反するアクセスが発生した場合、更新情報（更新前）３１３を用いて、更新後のプログラムを更新前のプログラムに復旧する。このとき、復旧部３０７は、更新情報（更新前）３１３に記憶された、セキュリティポリシー更新部３０６によって更新される前のセキュリティポリシーも復旧させる。
【００４９】
計数部３０８は、例えば、図２のＣＰＵ２０１で実行されるプログラム（更新用アプリ等）によって実現される。計数部３０８は、プログラム更新部３０３によりプログラムが更新された後に、情報処理装置１０１の起動回数をカウント（計数）し、記憶部３１０のカウンタ値３１６に記憶する。例えば、計数部３０８は、情報処理装置１０１が起動後、初めてシステムコールされたとき等に、カウンタ値３１６に「１」を加算する。
【００５０】
このカウンタ値３１６は、例えば、プログラム更新部３０３によりプログラムが更新されたときにリセットされ、プログラムが更新された直後であるか否か（所定の期間内であるか否か）を判断するために用いられる。例えば、復旧部３０７は、プログラム更新部３０３が更新後のプログラムに更新した後、セキュリティポリシーに違反するアクセスが発生し、かつカウンタ値３１６が所定の値以下である場合、更新後のプログラムを更新前のプログラムに復旧する。
【００５１】
情報送信部３０９は、例えば、図２のＣＰＵ２０１で実行されるプログラム（リモート通知用アプリ等）によって実現される。情報送信部３０９は、プログラム更新部３０３が更新後のプログラムに更新した後、所定の期間内にセキュリティポリシーに違反するアクセスが発生した場合、セキュリティポリシーに違反したプログラムの情報を含む解析情報を管理サーバ１０２等に送信する。なお、管理サーバ１０２は、所定の通知先の一例である。
【００５２】
この解析情報には、例えば、解析部３０５が解析したアクセスログ解析結果や、セキュリティポリシーに違反するアクセスが発生したときのセキュリティポリシー等の情報が含まれる。
【００５３】
記憶部３１０は、例えば、図２のＣＰＵ２０１で実行されるプログラム（ＯＳ等）、及びストレージ２０４等によって実現され、セキュリティポリシー３１１、３世代の更新情報、解析情報３１５及びカウンタ値３１６等の様々な情報を記憶する。
【００５４】
＜処理の流れ＞
続いて、本実施形態に係るプログラム更新方法の処理の流れについて説明する。なお、ここでは、プログラムがアプリであるものとして以下の説明を行うが、プログラムは、前述したようにアプリ以外のプログラムであっても良い。
【００５５】
［第１の実施形態］
（プログラムの更新処理）
図５は、第１の実施形態に係るプログラムの更新処理の例を示すフローチャートである。この処理は、情報処理装置１０１が、プログラムを更新するときに実行する処理の例を示している。ここでは、一例として、図２の外部接続Ｉ／Ｆ２０８に接続された記憶媒体２１０に更新用のファイル（以下、更新ファイルと呼ぶ）が記憶されているものとする。
【００５６】
ステップＳ５０１において、情報処理装置１０１のプログラム更新部３０３は、記憶部３１０に記憶した、更新対象となるアプリに対応する更新情報（更新前）３１３を、更新情報（バックアップ）３１４に記憶する。
【００５７】
ステップＳ５０２において、プログラム更新部３０３は、記憶部３１０に記憶した、更新対象となるプログラムに対応する更新情報（更新後）３１２を、更新情報（更新前）３１３に記憶する。
【００５８】
なお、各更新情報には、例えば、図４（ａ）に示すように、アプリ名、バージョン、アプリ定義用セキュリティポリシー、世代、及び更新ファイル等の情報、データ等が含まれる。
【００５９】
ステップＳ５０３において、プログラム更新部３０３は、記憶媒体２１０に記憶されている更新ファイルを用いて、アプリの更新処理を実行する。これにより、情報処理装置１０１にインストールされている所定のアプリが、例えば、最新版のアプリに更新される。
【００６０】
ステップＳ５０４において、プログラム更新部３０３は、更新されたアプリの更新情報（アプリ名、バージョン、アプリ定義用セキュリティポリシー、更新ファイル等）を、記憶部３１０の更新情報（更新後）３１２に記憶する。
【００６１】
ステップＳ５０５、Ｓ５０６において、プログラム更新部３０３は、例えば、記憶部３１０に記憶したカウンタ値３１６を初期値「１」（又は「０」）に設定する。
【００６２】
なお、プログラム更新部３０３が、カウンタ値３１６を初期値に設定する処理は一例である。例えば、プログラム更新部３０３は、プログラムが更新されたときのカウンタ値を、記憶部３１０に記憶しておくものであっても良い。この場合、例えば、復旧部３０７は、プログラムが更新されたときのカウンタ値３１６と、セキュリティポリシーに違反するアクセスが発生したときのカウンタ値３１６との差により、更新前のプログラムに復旧するか否かを判断することができる。
【００６３】
（プログラム更新後の処理）
図６は、第１の実施形態に係るプログラム更新後の処理の例を示すフローチャートである。情報処理装置１０１は、図５に示すプログラム更新処理を実行した後に、図６に示すプログラム更新後の処理を繰り返し実行する。
【００６４】
ステップＳ６０１、Ｓ６０２において、情報処理装置１０１の計数部３０８は、情報処理装置１０１が起動後、初めてシステムコールされるときに、記憶部３１０に記憶したカウンタ値３１６に「１」を加算する。
【００６５】
なお、この処理は、計数部３０８が、プログラム更新後の情報処理装置１０１の起動回数をカウントする処理の一例である。計数部３０８は、他の方法により、情報処理装置１０１の起動回数をカウントしても良い。
【００６６】
ステップＳ６０３において、例えば、アプリがシステムコールを呼出してリソースにアクセスするものとする。これに応じて、情報処理装置１０１のアクセス制御部３０２は、ステップＳ６０４において、アプリのセキュリティポリシーを確認する。
【００６７】
ステップＳ６０５において、アクセス制御部３０２は、アプリがセキュリティポリシーに違反しているか否かを判断する。アプリがセキュリティポリシーに違反していない場合、アクセス制御部３０２は、処理をステップＳ６０６に移行させる。一方、アプリがセキュリティポリシーに違反している場合、アクセス制御部３０２は、処理をステップＳ６０７に移行させる。
【００６８】
ステップＳ６０６に移行すると、情報処理装置１０１は、アプリから呼出しされたシステムコールの処理を実行する。
【００６９】
一方、ステップＳ６０７に移行すると、情報処理装置１０１は、例えば、不正アクセスを防ぐためにシステムを一時的に停止し、ステップＳ６０８以降の処理を実行する。
【００７０】
ステップＳ６０８において、情報処理装置１０１の解析部３０５は、アクセス制御部３０２が記憶部３１０に記憶したアクセスログ情報を解析して、アクセスポリシーに違反したアプリ（プログラム）を特定する。なお、セキュリティポリシーに違反したプログラムを特定する処理の例については後述する。
【００７１】
ステップＳ６０９において、情報処理装置１０１のセキュリティポリシー更新部３０６は、ステップＳ６０８で特定したアプリのセキュリティポリシーを、脆弱性の変化に対応できるように自動的に更新する。なお、この処理は、例えば、特許文献１等の従来技術と同様の処理であって良い。
【００７２】
ステップＳ６１０において、情報処理装置１０１の復旧部３０７は、記憶部３１０に記憶されたカウンタ値３１６が、所定の値未満（例えば、１０回未満）であるか否かを判断する。
【００７３】
カウンタ値３１６が所定の値未満である場合、復旧部３０７は、例えば、アプリを更新した直後であると判断し、処理をステップＳ６１１に移行させる。一方、カウンタ値３１６が所定の値未満でない場合（カウンタ値３１６が所定の値以上である場合）、復旧部３０７は、例えば、アプリを更新した直後ではないと判断し、処理をステップＳ６１３に移行させる。
【００７４】
ステップＳ６１１に移行すると、復旧部３０７は、記憶部３１０に記憶した更新情報（更新前）３１３を用いて、プログラム更新部３０３が更新したアプリを、更新前のバージョンのアプリに戻す（復旧する）。なお、更新したアプリを更新前のバージョンのアプリに戻す、プログラムの復旧処理の例については後述する。
【００７５】
ステップＳ６１２において、情報処理装置１０１の情報送信部３０９は、セキュリティポリシーに違反したアプリの解析情報を、管理サーバ１０２等の所定の送信先に送信する。例えば、情報送信部３０９は、セキュリティポリシーに違反するアクセスが発生したときのアクセスログ情報、アクセスログ解析結果、及びセキュリティポリシーに違反したアプリのセキュリティポリシー等の情報を、解析情報として管理サーバ１０２に送信する。
【００７６】
ステップＳ６１３において、情報処理装置１０１はシステムを再起動する。なお、情報処理装置１０１は、システムの再起動に代えて、異常状態を画面に通知するもの等であっても良い。
【００７７】
上記の処理により、情報処理装置１０１は、アプリを更新したときに、不正なアクセスが発生し、セキュリティポリシーが更新された場合でも、システムを容易に復旧することができる。
【００７８】
図７は、第１の実施形態に係るセキュリティポリシーの更新処理のイメージを示す図である。この処理は、例えば、図６のステップＳ６０３〜Ｓ６０５、及びステップＳ６０７〜Ｓ６０９の処理に対応している。
【００７９】
ここでは、説明用の一例として、情報処理装置１０１には、アプリＡ７０１ａ、及びアプリＢ７０１ｂがインストールされているものとする。
【００８０】
また、情報処理装置１０１の記憶部３１０には、アプリＡ７０１ａに対応するセキュリティポリシー７０２ａ、及びアプリＢ７０１ｂに対応するセキュリティポリシー７０２ｂが記憶されているものとする。
【００８１】
さらに、情報処理装置１０１には、アプリＡ７０１ａに対応するリソース（例えば、ファイル、ネットワークＩ／Ｆ等）であるリソースＡ７０３ａ、及びアプリＢ７０１ｂに対応するリソースであるリソースＢ７０３ｂがあるものとする。
【００８２】
この状態で、アプリＡ７０１ａが、例えば、不具合等により、ｒｅａｄ関数を呼出して本来はアクセスできないリソースＢ７０３ｂにアクセスするものとする。
【００８３】
このとき、情報処理装置１０１のアクセス制御部３０２は、強制アクセス制御処理として、アプリＡ７０１ａのセキュリティポリシー７０２ａを確認する。ここでは、アプリＡ７０１ａによるリソースＢ７０３ｂに対するアクセスが、アプリＡ７０１ａのセキュリティポリシー７０２ａに違反していると判断され、リソースＢ７０３ｂにアクセスできないものとする。この場合、アクセス制御部３０２は、セキュリティポリシー７０２ａに違反したアクセスに関する情報（例えば、アクセス日時、プロセス名、リソース名等）をアクセスログ情報７０４に順次に記憶（保存）する。
【００８４】
続いて、情報処理装置１０１の解析部３０５は、アクセスログ情報７０４を解析してセキュリティポリシーに違反したアプリＡ７０１ａを特定し、アプリＡ７０１ａのセキュリティポリシー７０２ａを、例えば、セキュリティポリシー７０２ｃに更新する。
【００８５】
図７の例では、更新後のセキュリティポリシー７０２ｃには、アプリＡ７０１ａによるリソースＢ７０３ｂへのアクセスを禁止するルールが追加されている。
【００８６】
なお、図７に示す処理は、セキュリティポリシーの更新処理の一例であり、情報処理装置１０１によるセキュリティポリシーの更新処理は、図７に示す処理に限られない。
【００８７】
（セキュリティポリシーに違反したプログラムを特定する処理）
図８は、第１の実施形態に係るセキュリティポリシーに違反したプログラムを特定する処理の例を示すフローチャートである。この処理は、図６のステップＳ６０８の処理に対応している。
【００８８】
ステップＳ８０１において、情報処理装置１０１の解析部３０５は、記憶部３１０の解析情報３１５に含まれる、例えば、図９に示すようなアクセスログ情報７０４を読出する。このアクセスログ情報７０４には、前述したように、セキュリティポリシーに違反するアクセスが発生したときに、アクセス日時、プロセス名、リソース名等の情報が順次に記憶されている。
【００８９】
図９の例では、アクセスログ情報７０４の「ｒｏｍ＿ｕｐｄａｔｅ」等の文字列がプロセス名に対応しており、「ｐｒｉｎｔｅｒ／ｐｒｉｎｔｅｒ＿ｄａｔａ３．ｔｘｔ」等の文字列がリソース名に対応している。
【００９０】
ステップＳ８０２において、解析部３０５は、記憶部３１０の解析情報３１５に含まれる、例えば、図９に示すようなアプリ定義情報９０１を読出する。このアプリ定義情報９０１には、プロセス名とアプリ名との対応関係が予め記憶されている。これにより、例えば、図９のアクセスログ情報７０４において、セキュリティポリシーに違反したプロセス名「ｒｏｍ＿ｕｐｄａｔｅ」に対応するアプリ名が「ｒｏｍ＿ｕｐｄａｔｅ＿ａｐｐ」であることを特定することができる。
【００９１】
ステップＳ８０４において、解析部３０５は、例えば、図９に示すように、セキュリティポリシーに違反したプロセス名と、プロセス名に対応するアプリ名とを対応付けて、アクセスログ解析結果９０２として、記憶部３１０の解析情報３１５等に記憶する。
【００９２】
上記の処理により、情報処理装置１０１は、セキュリティポリシーに違反したアプリを特定し、アクセスログ解析結果９０２として、記憶部３１０に記憶することができる。
【００９３】
（プログラムの復旧処理）
図１０は、第１の実施形態に係るプログラムの復旧処理の例を示すフローチャートである。この処理は、図６のステップＳ６１１の処理に対応しており、情報処理装置１０１の復旧部３０７が、プログラムのバージョンを更新前のバージョンに戻す際に実行する。
【００９４】
ステップＳ１００１において、情報処理装置１０１の復旧部３０７は、復旧対象となるアプリの更新情報（更新前）３１３を記憶部３１０から読出する。
【００９５】
ステップＳ１００２において、復旧部３０７は、読出した更新情報（更新前）３１３に基づいて、プログラム更新部３０３が更新した更新後のアプリを、更新前のプログラムに復旧する。例えば、復旧部３０７は、図４（ｃ）に示すような更新情報（更新前）３１３に含まれる更新ファイルを用いて、更新前のアプリを再インストールする。また、復旧部３０７は、更新情報（更新前）３１３に含まれるアプリ定義用セキュリティポリシーを、当該アプリに対応するセキュリティポリシーとして記憶部３１０に記憶する。
【００９６】
ステップＳ１００３において、復旧部３０７は、記憶部３１０に記憶されている更新情報（更新前）３１３を、更新情報（更新後）３１２に記憶する。
【００９７】
ステップＳ１００４において、復旧部３０７は、記憶部３１０に記憶されている更新情報（バックアップ）３１４を、更新情報（更新前）３１３に記憶する。
【００９８】
上記の処理により、情報処理装置１０１は、更新後のプログラムを更新前のプログラムに復旧することができる。
【００９９】
以上、本実施形態の各処理により、強制アクセス制御される情報処理装置１０１において、アプリを更新したときに不正なアクセスが発生し、セキュリティポリシーが更新された場合でも、システムを容易に復旧できるようになる。
【０１００】
なお、上記の実施形態は一例であり、本発明は様々な応用や変形が可能である。例えば、上記の実施形態において、アプリはプログラムの一例であり、情報処理装置１０１にインストールされているアプリ以外のプログラムであっても良い。また、例えば、図６のステップＳ６１０において、プログラムのバージョンを更新前のバージョンに戻すか否かの判断は、カウンタ値３１６以外の情報に基づいて行われても良い。
【０１０１】
［第２の実施形態］
第２の実施形態では、プログラムのバージョンを更新前のバージョンに戻すか否かの判断を、カウンタ値３１６以外の情報に基づいて行う場合の例について説明する。
【０１０２】
（プログラムの更新処理）
図１１は、第２の実施形態に係るプログラムの更新処理の例を示すフローチャートである。なお、基本的な処理内容は、図５に示す第１の実施形態に係るプログラムの更新処理と同様なので、ここでは同様の処理に対する詳細な説明は省略する。
【０１０３】
ステップＳ１１０１において、情報処理装置１０１のプログラム更新部３０３は、記憶部３１０に記憶した、更新対象となるプログラムに対応する更新情報（更新前）３１３を、更新情報（バックアップ）３１４に記憶する。
【０１０４】
ステップＳ１１０２において、プログラム更新部３０３は、記憶部３１０に記憶した、更新対象となるプログラムに対応する更新情報（更新後）３１２を、更新情報（更新前）３１３に記憶する。
【０１０５】
ステップＳ１１０３において、プログラム更新部３０３は、記憶媒体２１０に記憶されている更新ファイルを用いて、更新対象となるプログラムの更新処理を実行する。これにより、情報処理装置１０１にインストールされている更新対象となるプログラムが、例えば、最新版のプログラムに更新される。
【０１０６】
ステップＳ１１０４において、プログラム更新部３０３は、更新されたプログラムの更新情報（プログラム名、バージョン、プログラム定義用セキュリティポリシー、更新ファイル等）を、記憶部３１０の更新情報（更新後）３１２に記憶する。
【０１０７】
ステップＳ１１０５において、プログラム更新部３０３は、プログラムの更新日時の情報を記憶部３１０に記憶する。一例として、プログラム更新部３０３は、図４に示すような更新情報（更新後）３１２に更新日時の項目を追加して、プログラムの更新日時の情報を記憶しても良い。
【０１０８】
（プログラム更新後の処理）
図１２は、第２の実施形態に係るプログラム更新後の処理の例を示すフローチャートである。情報処理装置１０１は、図１１に示すプログラム更新処理を実行した後に、図１２に示すプログラム更新後の処理を繰り返し実行する。なお、基本的な処理内容は、図６に示す第１の実施形態に係るプログラム更新後の処理と同様なので、ここでは、同様の処理内容に対する詳細な説明は省略する。
【０１０９】
ステップＳ１２０１において、例えば、プログラムがシステムコールを呼出してリソースにアクセスするものとする。これに応じて、情報処理装置１０１のアクセス制御部３０２は、ステップＳ１２０１２において、プログラムのセキュリティポリシーを確認する。
【０１１０】
ステップＳ１２０３において、アクセス制御部３０２は、プログラムがセキュリティポリシーに違反しているか否かを判断する。プログラムがセキュリティポリシーに違反していない場合、アクセス制御部３０２は、処理をステップＳ１２０４に移行させる。一方、プログラムがセキュリティポリシーに違反している場合、アクセス制御部３０２は、処理をステップＳ１２０５に移行させる。
【０１１１】
ステップＳ１２０４に移行すると、情報処理装置１０１は、プログラムから呼出しされたシステムコールの処理を実行する。
【０１１２】
一方、ステップＳ１２０５に移行すると、情報処理装置１０１は、例えば、不正アクセスを防ぐためにシステムを一時的に停止し、ステップＳ１２０６以降の処理を実行する。
【０１１３】
ステップＳ１２０６において、情報処理装置１０１の解析部３０５は、アクセス制御部３０２が記憶部３１０に記憶したアクセスログ情報を解析して、アクセスポリシーに違反したプログラムを特定する。
【０１１４】
ステップＳ１２０７において、情報処理装置１０１のセキュリティポリシー更新部３０６は、ステップＳ１１１６で特定したプログラムのセキュリティポリシーを自動的に更新する。
【０１１５】
ステップＳ１２０８において、情報処理装置１０１の復旧部３０７は、プログラム更新部３０３がプログラムを更新した後、所定の期間を経過したか否かを判断する。
【０１１６】
ここで、所定の期間は、例えば、セキュリティポリシーに違反したアクセスの原因が、プログラム更新部３０３が更新した更新後のプログラムであると判断するために定められた期間（例えば、２４時間、５日、１週間等）である。この所定の期間は、予め定められ情報処理装置１０１に記憶されているものであっても良いし、更新用のプログラム等に設定されているものであっても良い。さらに、この所定の期間は、プログラムを更新する際に、ユーザ、又は管理者等によって設定されるものであっても良い。
【０１１７】
なお、所定の期間を経過したか否かは、例えば、図１１のステップＳ１１０５で記憶部３１０に記憶したプログラムの更新日時の情報と、現在の日時とにより判断することができる。
【０１１８】
プログラムを更新した後、所定の期間を経過したと判断した場合、復旧部３０７は、処理をステップＳ１２１１に移行させる。一方、プログラムを更新した後、所定の期間を経過していないと判断した場合、復旧部３０７は、処理をステップＳ１２０９に移行させる。
【０１１９】
ステップＳ１２０９に移行すると、復旧部３０７は、記憶部３１０に記憶した更新情報（更新前）３１３を用いて、プログラム更新部３０３が更新したプログラムを、更新前のバージョンのプログラムに戻す（復旧する）。
【０１２０】
ステップＳ１２１０において、情報処理装置１０１の情報送信部３０９は、セキュリティポリシーに違反したプログラムの解析情報を、管理サーバ１０２等の所定の送信先に送信する。
【０１２１】
ステップＳ１２１１において、情報処理装置１０１はシステムを再起動する。なお、情報処理装置１０１は、システムの再起動に代えて、異常状態を画面に通知するもの等であっても良い。
【０１２２】
上記の処理により、情報処理装置１０１は、プログラムを更新したときに、不正なアクセスが発生し、セキュリティポリシーが更新された場合でも、システムを容易に復旧することができる。
【０１２３】
以上、本発明の各実施形態によれば、強制アクセス制御される情報処理装置１０１において、プログラムを更新したときに不正なアクセスが発生し、セキュリティポリシーが更新された場合でも、システムを容易に復旧できるようになる。
【符号の説明】
【０１２４】
１００      情報処理システム
１０１      情報処理装置
１０２      管理サーバ（所定の送信先の一例）
３０３      プログラム更新部（更新部）
３０４      プログラム管理部（管理部）
３０７      復旧部
３０８      計数部
３０９      情報送信部
３１０      記憶部
【先行技術文献】
【特許文献】
【０１２５】
【特許文献１】特開２０１７−２１５７９９号公報
【図１】
2020086979.tif 000003
【図２】
2020086979.tif 000004
【図３】
2020086979.tif 000005
【図４】
2020086979.tif 000006
【図５】
2020086979.tif 000007
【図６】
2020086979.tif 000008
【図７】
2020086979.tif 000009
【図８】
2020086979.tif 000010
【図９】
2020086979.tif 000011
【図１０】
2020086979.tif 000012
【図１１】
2020086979.tif 000013
【図１２】
2020086979.tif 000014