(57)【要約】【課題】異常データを検出する。【解決手段】バックアップの対象となる現行データを取得するとともに、複数世代のバックアップデータを記憶する記憶装置から、現行データよりも複数世代遡った世代のバックアップデータを基準データとして取得する。そして、現行データと基準データとの間の差分値を算出し、差分値が第１閾値以上である場合に、現行データに異常が有ると判定する。【選択図】図１
2019175045.tif 000002
【特許請求の範囲】
【請求項１】
バックアップの対象となる現行データを取得する現行データ取得部と、
複数世代のバックアップデータを記憶する記憶装置から、前記現行データよりも複数世代遡った世代のバックアップデータを基準データとして取得する基準データ取得部と、
前記現行データと前記基準データとの間の差分値を算出する算出部と、
前記差分値が第１閾値以上である場合に、現行データに異常が有ると判定する判定部と、
を含む情報処理装置。
【請求項２】
前記判定部によって異常が無いと判定された現行データをバックアップデータとして前記記憶装置に格納する格納部と、
前記基準データからの世代数に対応付けて、各世代のバックアップデータが前記記憶装置に格納される際に前記算出部によって算出された差分値をログとして記憶するログ記憶部と、
前記判定部によって現行データに異常が有ると判定された場合に、前記ログ記憶部を参照して、第２閾値以上の差分値の増加が連続して表れる世代のバックアップデータを、異常を有するバックアップデータとして特定する特定部と、
を更に含む請求項１に記載の情報処理装置。
【請求項３】
前記現行データの時期情報と前記基準データの時期情報とを取得し、前記現行データの時期情報と前記基準データの時期情報との間の差に基づいて算出される値を前記第１閾値として設定する閾値設定部、
を更に含む請求項１又は２に記載の情報処理装置。
【請求項４】
前記閾値設定部は、前記現行データと前記基準データの間の世代数差に対して所定の係数を乗算して得られる乗算値と基礎閾値との合計値を前記第１閾値として設定する、請求項３に記載の情報処理装置。
【請求項５】
前記基準データが格納された時刻と前記現行データが格納される時刻との間の期間に対して所定の係数を乗算して得られる乗算値と基礎閾値との合計値を前記第１閾値として設定する、請求項３に記載の情報処理装置。
【請求項６】
前記基準データが格納された時刻と前記現行データが格納される時刻との間の期間に、前記現行データと前記基準データとの間の差分値が増加する所定イベントが含まれる場合には、前記基礎閾値に、前記所定イベントによる差分値の増加に相当する所定増加値を加算する、請求項５に記載の情報処理装置。
【請求項７】
前記差分値が、前記現行データと前記基準データとの間で相違する更新ブロック数、前記現行データの全体サイズと、前記基準データの全体サイズの差、及び／又は、前記基準データの全体ブロック数に対する更新ブロック数の比率である、
請求項１〜６のいずれか１項に記載の情報処理装置。
【請求項８】
バックアップの対象となる現行データを取得する現行データ取得ステップと、
複数世代のバックアップデータを記憶する記憶装置から、前記現行データよりも複数世代遡った世代のバックアップデータを基準データとして取得する基準データ取得ステップと、
前記現行データと前記基準データとの間の差分値を算出する算出ステップと、
前記差分値が第１閾値以上である場合に、現行データに異常が有ると判定する判定ステップと、
を含む情報処理方法。
【請求項９】
バックアップの対象となる現行データを取得する現行データ取得工程と、
複数世代のバックアップデータを記憶する記憶装置から、前記現行データよりも複数世代遡った世代のバックアップデータを基準データとして取得する基準データ取得工程と、
前記現行データと前記基準データとの間の差分値を算出する算出工程と、
前記差分値が第１閾値以上である場合に、現行データに異常が有ると判定する判定工程と、
をコンピュータに実行させる情報処理プログラム。
【請求項１０】
複数世代のバックアップデータを記憶する記憶部と、
バックアップの対象となる現行データを取得する現行データ取得部と、
前記記憶部から、前記現行データよりも複数世代遡った世代のバックアップデータを基準データとして取得する基準データ取得部と、
前記現行データと前記基準データとの間の差分値を算出する算出部と、
前記差分値が第１閾値以上である場合に、現行データに異常が有ると判定する判定部と、
を含む記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、情報処理プログラム、及び記憶装置に関する。特に、異常データを検出する情報処理装置、情報処理方法、情報処理プログラム、及びこの情報処理を適用した記憶装置に関する。
【背景技術】
【０００２】
重複排除機能を有する記憶装置、いわゆるコンテンツアドレスストレージが開発されている。このコンテンツアドレスストレージをバックアップに利用する場合には、更新前のデータと更新後のデータ（すなわち、バックアップ対象データ）の間で重複するブロックを排除することでデータ量の削減を行っている。そのため、コンテンツアドレスストレージでは、バックアップ対象データに関しては、バックアップ対象データ全体を保存する場合と比べて利用する記憶容量が少量で済み、複数世代に渡ってデータを保存することができる。
【０００３】
複数世代に渡ってデータを保存することにより、異常データを検出した際の高い復元力がもたらされる。例えば、バックアップ対象データにウィルス感染を検出した場合であっても、感染前の世代のデータを正常なデータとして復元することができる。
【０００４】
ウィルス感染を検出するための技術としては、例えば、特許文献１に開示されるものがある。具体的には、特許文献１では、更新前のデータとバックアップ対象データの間の差分量が所定の閾値を上回った場合に、バックアップ対象データがウィルスに感染していると判定している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第５１２４２３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
以下の分析は、本発明の観点からなされたものである。なお、上記先行技術文献の開示を、本書に引用をもって繰り込むものとする。
【０００７】
コンテンツアドレスストレージを用いたバックアップ機構であっても、正常なデータを復元できないことがある。すなわち、特許文献１に記載の技術では、ウィルスによる閾値未満のデータの改ざんを検出できない。つまり、日々少しずつデータを改ざんするタイプのウィルスに感染していたとしても、ウィルス感染が見過ごされてしまう。
【０００８】
このようなタイプのウィルスに感染した状態では、コンテンツアドレスストレージには、ウィルスによる改ざんブロック、すなわち異常データが蓄積される。コンテンツアドレスストレージであっても記憶容量には限度があるため、例えば、古いデータから削除するなどの処理が行われる。ここで、感染前の世代のデータが全て削除された時には、コンテンツアドレスストレージであっても正常なデータを復元できない。
【０００９】
そこで、本発明では、異常データを検出するのに貢献する情報処理装置、情報処理方法、情報処理プログラム、及びこの情報処理を適用した記憶装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の第１の視点によれば、
バックアップの対象となる現行データを取得する現行データ取得部と、
複数世代のバックアップデータを記憶する記憶装置から、前記現行データよりも複数世代遡った世代のバックアップデータを基準データとして取得する基準データ取得部と、
前記現行データと前記基準データとの間の差分値を算出する算出部と、
前記差分値が第１閾値以上である場合に、現行データに異常が有ると判定する判定部と、
を含む情報処理装置が提供される。
【００１１】
本発明の第２の視点によれば、
バックアップの対象となる現行データを取得する現行データ取得ステップと、
複数世代のバックアップデータを記憶する記憶装置から、前記現行データよりも複数世代遡った世代のバックアップデータを基準データとして取得する基準データ取得ステップと、
前記現行データと前記基準データとの間の差分値を算出する算出ステップと、
前記差分値が第１閾値以上である場合に、現行データに異常が有ると判定する判定ステップと、
を含む情報処理方法が提供される。
【００１２】
本発明の第３の視点によれば、
バックアップの対象となる現行データを取得する現行データ取得工程と、
複数世代のバックアップデータを記憶する記憶装置から、前記現行データよりも複数世代遡った世代のバックアップデータを基準データとして取得する基準データ取得工程と、
前記現行データと前記基準データとの間の差分値を算出する算出工程と、
前記差分値が第１閾値以上である場合に、現行データに異常が有ると判定する判定工程と、
をコンピュータに実行させる情報処理プログラムが提供される。
【００１３】
本発明の第４の視点によれば、
複数世代のバックアップデータを記憶する記憶部と、
バックアップの対象となる現行データを取得する現行データ取得部と、
前記記憶部から、前記現行データよりも複数世代遡った世代のバックアップデータを基準データとして取得する基準データ取得部と、
前記現行データと前記基準データとの間の差分値を算出する算出部と、
前記差分値が第１閾値以上である場合に、現行データに異常が有ると判定する判定部と、
を含む記憶装置が提供される。
【発明の効果】
【００１４】
本発明の各視点によれば、異常データを検出するのに貢献する情報処理装置、情報処理方法、情報処理プログラム、及びこの情報処理を適用した記憶装置が提供される。
【図面の簡単な説明】
【００１５】
【図１】本発明の概要を説明するための図である。
【図２】第１の実施形態に関連する情報処理装置の一例を示すブロック図である。
【図３】情報処理装置による処理の流れの一例を示すフローチャートである。
【図４】第１の実施形態に関連するストレージ装置の一例を示すブロック図である。。
【図５】第２の実施形態に関連する情報処理装置の一例を示すブロック図である。
【図６】第２の実施形態に関連するモデルの一例を説明するための図である。
【図７】第２の実施形態に関連するモデルの一例を説明するための図である。
【図８】第２の実施形態に関連するモデルの一例を説明するための図である。
【図９】情報処理装置による処理の流れの一例を示すフローチャートである。
【図１０】第３の実施形態に関連する情報処理装置の一例を示すブロック図である。
【図１１】情報処理装置による処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
本発明のとり得る好適な実施形態について図面を参照して詳細に説明する。なお、以下の記載に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。また、各図におけるブロック間の接続線は、双方向及び単方向の双方を含む。
【００１７】
先ず、図１に示すモデルを用いて本発明の１つの実施形態について説明する。図１に示すように、本発明の情報処理装置１００は、記憶装置２００及び端末装置（例えば、ＰＣ：personal computer）３００と接続される。端末装置３００においてデータの作成及び更新が行われ、バックアップデータが記憶装置２００に格納される。記憶装置２００は、複数世代のバックアップデータを記憶する。図１に示すモデルでは、記憶装置２００には、第０世代〜第ｎ−１世代のバックアップデータが既に格納されているものとする。そして、端末装置３００において、第ｎ−１世代データに改変を加えた第ｎ世代データが現行データとして作成されたものとする。
【００１８】
このようなモデルにおいて、本発明の情報処理装置１００は、現行データにウィルスによるデータの改ざんなどの異常が有るか否かを判定する。具体的には、情報処理装置１００は、現行データ取得部１２１、基準データ取得部１２２、算出部１２３、判定部１２４を含む。現行データ取得部１２１は、端末装置３００からバックアップの対象となる現行データを取得する。基準データ取得部１２２は、記憶装置２００から現行データよりも複数世代遡った世代のバックアップデータを基準データとして取得する。算出部１２３は、現行データと基準データとの間の差分値を算出する。そして判定部１２４は、差分値が第１閾値以上である場合に、現行データに異常が有ると判定する。ここで差分値とは、例えば、現行データと基準データとの間で相違する更新ブロック数、現行データの全体サイズと基準データの全体サイズの差、及び／又は、基準データの全体ブロック数に対する更新ブロック数の比率などである。
【００１９】
このような情報処理装置１００によれば、日々少しずつデータを改ざんするタイプのウィルスの感染を検出することができる。すなわち、上記の特許文献１に記載の技術では、１世代前のデータと現行データの間の差分値に基づいてウィルス感染を判定しており、仮にウィルスに感染していたとしても差分値が閾値未満であればウィルス感染が見過ごされてしまう。これに対して、本発明では数世代遡った世代のバックアップデータと現行データの間の差分値に基づいてウィルス感染を検出している。つまり、本発明では、ウィルスによるデータ改ざんの蓄積が差分値として現れるため、日々少しずつデータを改ざんするタイプのウィルスの感染を検出することができる。
【００２０】
以下では本発明のとり得る好適な実施形態について図面を参照して詳細に説明する。
【００２１】
［第１の実施形態］
第１の実施形態は図１に示した情報処理装置１００について具体的に説明する。
【００２２】
情報処理装置１００は、図１と同様に記憶装置２００及び端末装置３００と接続される。ここで記憶装置２００は、重複排除機能を有するコンテンツアドレスストレージであることが好ましいが、複数世代のバックアップデータを保存することが可能な大容量のストレージであっても良い。端末装置３００は、ＰＣなどデータの作成及び更新を行うための装置であれば良い。
【００２３】
情報処理装置１００は、図２に示すように、記憶部１１０、処理部１２０、及び送受信部１３０を含む。各構成要素は、バス等を介して互いに接続される。
【００２４】
記憶部１１０は、情報処理装置１００全体を制御するためのプログラムなどを記憶するＲＯＭ（read only memory）、ＲＡＭ（random access memory）、キャッシュメモリなどである。
【００２５】
処理部１２０は、記憶部１１０に記憶されたプログラムを読み出して実行するＣＰＵ（Central Processing Unit）やチップを含んで構成される。特に、処理部１２０は、現行データ取得部１２１、基準データ取得部１２２、算出部１２３、判定部１２４、報知部１２５、及び格納部１２６を含む。
【００２６】
現行データ取得部１２１は、バックアップの対象となる現行データを取得する。ここで、現行データは、例えば１日に１回など定期的に端末装置３００から取得してもよいし、サーバ（図示しない）からのバックアップ指令と共に受け付けるようにしても良い。
【００２７】
基準データ取得部１２２は、記憶装置２００から、現行データよりも複数世代遡った世代のバックアップデータを基準データとして取得する。ここで、基準データは、記憶装置２００に記憶されるバックアップデータの内で最古のものであっても良いし、管理者によって指定された世代のものであっても良いし、例えば、１０世代前など現行データからの世代数で決定しても良い。
【００２８】
算出部１２３は、現行データと基準データとの間の差分値を算出し、判定部１２４は、差分値が第１閾値以上である場合に、現行データに異常が有ると判定する。
【００２９】
ここで差分値とは、異常の検出に有用なものであれば良い。例えば、現行データと基準データとの間で相違するブロックの数、つまり更新ブロック数であっても良い。このケースに関して、ヒトによるデータ更新であれば、現行データと基準データとの間の世代数が多くても、同一箇所を何度も書き換える（つまり更新したブロックを再更新する）など更新ブロック数が蓄積しにくい傾向がある。一方で、データを書き換えるタイプのウィルスは、データを徐々に浸食するなど、更新ブロック数は世代を重ねるごとに蓄積する傾向がある。そのため、更新ブロック数に基づいて、すなわち、質的差分を量的差分に変換、あるいは代表させて差分値とすることで、ヒトによる正常なデータ更新とウィルスによるデータの改ざんとを判別することが可能である。
【００３０】
また、差分値は、現行データの全体サイズと、基準データの全体サイズの差（すなわち、量的差分）であっても良い。このケースに関して、上記のようにヒトによるデータ更新では同一箇所を何度も書き換える作業（つまり、データの全体サイズは不変である）も行われるため、データの全体サイズは増加しにくい傾向がある。一方で、データを追加するタイプのウィルスは、世代を重ねるごとにデータの全体サイズを増加させる。そのため、データの全体サイズの差に基づいて、ヒトによる正常なデータ更新とウィルスによるデータの改ざんとを判別することが可能である。
【００３１】
また、差分値は、基準データの全体ブロック数に対する更新ブロック数の比率であっても良い。一般的にバックアップデータは、数世代に渡ってデータの更新が行われた場合であっても、一定の比率のブロックは未更新である傾向が高い。つまり、ヒトによるデータ更新であれば、基準データの全体ブロック数に対する更新ブロック数の比率は、閾値未満に抑えられる傾向がある。これに対して、ウィルスは、データの内容を考慮せずに浸食を行うため更新ブロック数の比率が閾値以上になる傾向がある。そのため、基準データの全体ブロック数に対する更新ブロック数の比率に基づいて、ヒトによる正常なデータ更新とウィルスによるデータの改ざんとを判別することが可能である。
【００３２】
閾値に関しては、データの種類、データの重要度、バックアップの頻度、基準データのプロファイル、ヒトによるデータ更新の傾向など、種々の質的及び／又は量的な要素を勘案して任意に設定することができる。好ましくは、量的差分（増加値）に変換することが好ましい。
【００３３】
報知部１２５は、判定部１２４によって現行データに異常が有ると判定された場合に、例えば、情報処理装置１００の管理者、端末装置３００のユーザなどにその旨を報知する。報知は、例えば、ディスプレイ上での表示、アラームランプの点灯、メールの送信など、種々の仕様を適用することができる。
【００３４】
格納部１２６は、判定部１２４によって現行データに異常が無いと判定された場合に、現行データをバックアップデータとして記憶装置２００に格納する。なお、格納部１２６は、自身が現行データを記憶装置２００に格納するのではなく、端末装置３００に対して現行データの格納を許容する旨を通知するようにして、端末装置３００に現行データの格納を実行させても良い。
【００３５】
送受信部１３０は、端末装置３００などとの間で通信を行うためのインターフェイスである。
【００３６】
以下では、図３を参照しつつ情報処理装置１００による一連の処理の流れについて説明する。情報処理装置１００は、現行データ及び基準データを取得し（ステップＳ１１）、現行データと基準データとの間の差分値を算出する（ステップＳ１２）。ここで、差分値が第１閾値以上である場合には（ステップＳ１３、Ｙｅｓ）、情報処理装置１００は、現行データに異常が有ると判定して情報処理装置１００の管理者に対して異常を報知する（ステップＳ１４）。一方で、差分値が第１閾値未満である場合には（ステップＳ１３、Ｎｏ）、情報処理装置１００は、現行データを記憶装置２００に格納する（ステップＳ１５）。
【００３７】
このように、第１の実施形態の情報処理装置１００は、日々少しずつデータを改ざんするタイプのウィルスの感染を検出することができる。
【００３８】
なお、第１の実施形態は、図４に示すように、情報処理装置１００と記憶装置２００とを統合した、ストレージ装置１０００としても実現することが可能である。ここで、記憶部１１００は記憶装置２００としての機能を有し、処理部１２００は情報処理装置１００による処理を実行する。
【００３９】
また、第１の実施形態は、本発明のプログラムを既存のストレージ装置にインストールして実行させることで実現することが可能である。本発明のプログラムは、ストレージ装置の記憶部に格納され、ストレージ装置のＣＰＵが当プログラムを読み出すことで、現行データ取得部１２１などの機能部がソフトウェアによって構築される。その結果、本発明のプログラムをインストールしたストレージ装置は、図４と同様の構成を有することになる。
【００４０】
［第２の実施形態］
第１の実施形態の情報処理装置１００において現行データに異常が有ることが検出された時は、記憶装置２００には少なくとも１世代の異常データがバックアップデータとして保存されていることになる。そこで第２の実施形態では、記憶装置２００に保存された複数世代のバックアップデータの中から異常を有するバックアップデータを特定する機能を備えた情報処理装置１００について説明する。なお以下では、第１の実施形態と異なる点について説明する。
【００４１】
図５に示すように、第２の実施形態の記憶部１１０は、基準データからの世代数に対応付けて、各世代のバックアップデータが記憶装置２００に格納される際に算出部１２３によって算出された差分値をログとして記憶するログ記憶部１１１を有する。また、処理部１２０は、現行データ取得部１２１、基準データ取得部１２２、算出部１２３、判定部１２４、報知部１２５、格納部１２６に加えて、特定部１２７を更に有する。
【００４２】
特定部１２７は、判定部１２４によって現行データに異常が有ると判定された場合に、ログ記憶部１１１を参照して、第２閾値以上の差分値の増加が連続して表れる世代のバックアップデータを、異常を有するバックアップデータとして特定する。報知部１２５は、特定部１２７によって特定された世代のバックアップデータを異常を有するバックアップデータとして情報処理装置１００の管理者、端末装置３００のユーザなどに報知する。
【００４３】
以下では、図６〜８に示すモデルを用いて第２の実施形態について説明する。図６に示すモデルでは、現行データと基準データとの間の更新ブロック数に基づいて異常データを検出するパターンを説明する。図７に示すモデルでは、現行データの全体サイズと、基準データの全体サイズの差（すなわち、データサイズの差）に基づいて異常データを検出するパターンを説明する。そして、図８に示すモデルでは、現行データの全体サイズと、基準データの全体ブロック数に対する更新ブロック数の比率に基づいて異常データを検出するパターンを説明する。
【００４４】
＜更新ブロック数によるパターン＞
ログ記憶部１１１は、図６に示すように、基準データからの世代数と、基準データと各世代のバックアップデータとの間の差分値、すなわち更新ブロック数とを対応付けたログデータを記憶する。図６に示すモデルでは、基準データの世代数を「０」とし、現行データの世代数を「ｎ」とする。世代数「１」〜「ｍ−１」ではヒトによる１００ブロックの正常なデータ更新が行われ、世代数「ｍ」〜「ｎ」ではウィルスによる１００ブロックデータの改ざんが行われたものとする。なお、世代数「０」、「１」、「ｎ」のログは、本来であればログデータに含まれないが、説明の容易化のために追加している。
【００４５】
基本的には、ヒトによる正常なデータ更新又はウィルスによるデータの改ざんが行われると、更新ブロック数が蓄積する。つまり、基準データからの世代数が多ければ、更新ブロック数も多くなる。しかしながら、ヒトによるデータ更新であれば同一箇所を何度も書き換える（つまり更新したブロックを再更新する）など更新ブロック数が蓄積しにくい傾向がある（世代数「２」〜「４」を参照）。例えば、世代数「１」と世代数「２」の間では５０ブロックが増加しており、ヒトによる１００ブロックのデータ更新において、５０ブロックの新規更新と５０ブロックの再更新が行われたことを意味する。
【００４６】
これに対し、ウィルスによるデータの改ざんでは、データを徐々に浸食するなど、一定値以上の更新ブロック数の増加が連続する傾向がある（世代数「ｍ」〜「ｍ＋２」を参照）。なお、ウィルスがヒトによる更新ブロックを改ざんした場合には更新ブロックの増加には表れないが、ヒトによるデータ更新では一定の比率のブロックが未更新であるため、ウィルスは未更新のブロックを高確率で改ざんする。例えば、世代数「ｍ＋１」と世代数「ｍ＋２」の間では、９０ブロックの未更新ブロックの改ざんと１０ブロックの更新ブロックの改ざんとが行われたことを意味するが、これは、更新ブロックの比率が１０％程度の時に生じ得る。
【００４７】
そして、例えば、判定部１２４は、基準データ（すなわち、世代数「０」）と現行データ（すなわち、世代数「ｎ」）の間の差分値（すなわち、更新ブロック数）が、第１閾値（例えば、２０００）以上であるため、現行データに異常が有ると判定する。ここで、特定部１２７は、ログデータを参照して、第２閾値（例えば、７０）以上の差分値の増加が連続して表れる世代のバックアップデータを、異常を有するバックアップデータとして特定する。上述のように、世代数「ｍ」〜「ｎ−１」のバックアップデータは、ウィルスによる改ざんが行われた異常データであり、第２閾値以上の差分値の増加が連続して表れるため、異常を有するバックアップデータとして特定される。報知部１２５は、特定部１２７によって特定された世代のバックアップデータ（すなわち、世代数「ｍ」〜「ｎ−１」のバックアップデータ）を情報処理装置１００の管理者、端末装置３００のユーザなどに報知する。
【００４８】
＜データサイズの差によるパターン＞
ログ記憶部１１１は、図７に示すように、基準データからの世代数と、基準データと各世代のバックアップデータとの間の差分値、すなわち、データサイズの差とを対応付けたログデータを記憶する。なお、データ更新などの条件については図６に示すパターンと同様のものとするが、図７のパターンでは、ウィルスは改ざんデータを１００ブロックずつ追加するものとする。
【００４９】
ヒトによるデータの入力であってもデータの全体サイズは増大するが、上記のようにヒトによるデータ更新では同一箇所を何度も書き換える作業（つまり、データの全体サイズは不変である）も行われる。そのため、例えば、図７に示す、世代数「２」と世代数「３」の間のように、データサイズの差が不変な更新も行われる。これに対し、ウィルスによるデータの改ざんでは、データの全体サイズは一律的に増加する。
【００５０】
ここで、例えば、判定部１２４は、基準データ（すなわち、世代数「０」）と現行データ（すなわち、世代数「ｎ」）の間の差分値（すなわち、データサイズの差）が、第１閾値（例えば、１０００）以上であるため、現行データに異常が有ると判定する。そして、特定部１２７は、ログデータを参照して、第２閾値（例えば、５０）以上の差分値の増加が連続して表れる世代のバックアップデータを、異常を有するバックアップデータとして特定する。上述のように、世代数「ｍ」〜「ｎ−１」のバックアップデータは、ウィルスによる改ざんが行われた異常データであるが、第２閾値以上の差分値の増加が連続して表れるため、異常を有するバックアップデータとして特定される。報知部１２５は、特定部１２７によって特定された世代のバックアップデータ（すなわち、世代数「ｍ」〜「ｎ−１」のバックアップデータ）を情報処理装置１００の管理者、端末装置３００のユーザなどに報知する。
【００５１】
＜更新ブロック数の比率によるパターン＞
ログ記憶部１１１は、図８に示すように、基準データからの世代数と、基準データと各世代のバックアップデータとの間の差分値、すなわち、更新ブロック数の比率とを対応付けたログデータを記憶する。なお、データ更新などの条件については図６に示すパターンと同様のものとする。
【００５２】
ヒトによる正常なデータ更新では、数世代に渡ってデータの更新が行われた場合であっても、一定のブロックは未更新である傾向が高い。例えば、出納を管理するデータでは、出入金額等の値については更新されるが、項目名や出入金額に基づいて利益率などを算出する計算式については更新される傾向が少ない。そのため、ヒトによるデータ更新であれば、基準データの全体ブロック数に対する更新ブロック数の比率は、閾値未満に抑えられる傾向がある。これに対して、ウィルスは、データの内容を考慮せずに浸食を行うため、ウィルスによるデータの改ざんでは、更新ブロック数が一律に増加した結果、更新ブロック数の比率が閾値以上になる傾向がある。
【００５３】
例えば、図８に示すように、世代数「０」と世代数「１」の間で、出入金額の値がヒトによって更新された場合には、更新ブロック数の比率は増加する。しかしながら、世代数「１」以降の世代で出入金額の値を再更新する場合には、更新したブロックを再更新することになるため、更新ブロック数の比率は増加しない。これに対し、ウィルスによるデータの改ざんでは、出入金額の値以外のデータも改ざんするため、世代数「ｍ」以降では、更新ブロック数の比率が連続して増加する。
【００５４】
ここで、例えば、判定部１２４は、基準データ（すなわち、世代数「０」）と現行データ（すなわち、世代数「ｎ」）の間の差分値（すなわち、更新ブロック数の比率）が、第１閾値（例えば、２０％）以上であるため、現行データに異常が有ると判定する。そして、特定部１２７は、ログデータを参照して、第２閾値（例えば、１％）以上の差分値の増加が連続して表れる世代のバックアップデータを、異常を有するバックアップデータとして特定する。報知部１２５は、特定部１２７によって特定された世代のバックアップデータ（すなわち、世代数「ｍ」〜「ｎ−１」のバックアップデータ）を情報処理装置１００の管理者、端末装置３００のユーザなどに報知する。
【００５５】
以下では、図９を参照しつつ情報処理装置１００による一連の処理の流れについて説明する。情報処理装置１００は、現行データ及び基準データを取得し（ステップＳ２１）、現行データと基準データとの間の差分値を算出する（ステップＳ２２）。ここで、差分値が第１閾値以上である場合には（ステップＳ２３、Ｙｅｓ）、情報処理装置１００は、異常を有するバックアップデータを特定し（ステップＳ２４）、現行データの異常と、異常を有するバックアップデータを報知する（ステップＳ２５）。一方で、差分値が第１閾値未満である場合には（ステップＳ２３、Ｎｏ）、情報処理装置１００は、現行データを記憶装置２００に格納する（ステップＳ２６）。
【００５６】
このように、第２の実施形態の情報処理装置１００は、記憶装置２００に記憶された複数世代のバックアップデータの中から異常を有するバックアップデータを特定することができる。
【００５７】
［第３の実施形態］
第１、第２の実施形態の情報処理装置１００では、ヒトによる正常なデータ更新であっても、更新データが蓄積した結果、現行データに異常が有ると判定するエラーが生じる場合がある。そこで、第３の実施形態ではこのようなエラーを排除する機能を有する情報処理装置１００について説明する。なお以下では、第１の実施形態と異なる点について説明する。
【００５８】
図１０に示すように、第３の実施形態の記憶部１１０は、第１閾値を算出する際に用いられる所定の係数を記憶する係数記憶部１１２を有する。また、処理部１２０は、現行データ取得部１２１、基準データ取得部１２２、算出部１２３、判定部１２４、報知部１２５、格納部１２６に加えて、閾値設定部１２８を更に有する。
【００５９】
閾値設定部１２８は、現行データの時期情報と基準データの時期情報とを取得し、現行データの時期情報と基準データの時期情報との間の差に基づいて算出される値を前記第１閾値として設定する。具体的に一例を挙げると、閾値設定部１２８は、現行データと基準データの間の世代数差に対して、係数記憶部１１２に記憶された係数を乗算して得られる乗算値と基礎閾値との合計値を第１閾値として設定する。ここで、現行データと基準データの間の世代数差は、例えば、基準データ以降のバックアップデータの世代数を記憶装置２００から通知してもらうことで取得できる。
【００６０】
基礎閾値及び係数に関しては、図６に示したモデルを参照しつつ説明する。図６に示したモデルでは、ヒトによる正常なデータ更新が行われた世代（すなわち、世代数「１」〜「ｍ−１」）であっても、１世代あたりに少しずつ更新ブロック数が増加する傾向がある。このような場合に、第１閾値が固定の値であれば、いずれかの世代において更新ブロック数が第１閾値に到達することになる。そのため、閾値設定部１２８は、第１閾値を現行データと基準データの間の世代数差を考慮した値に設定する。
【００６１】
具体的な一例を挙げて説明すると、現行データと基準データとの世代数差が２００（つまり、現行データは世代数「２００」）であるとする。この場合に、閾値設定部１２８は、世代数差（２００）に対して、１世代あたりに増加するであろう更新ブロック数（１０ブロック）を係数として乗算して乗算値（２０００）を得る。そして閾値設定部１２８は、乗算値に対して基礎閾値（例えば、５００）を加算して第１閾値（２５００）を得る。世代数「２００」の現行データは、２１００程度の更新ブロック数を有することが推定されるが、第１閾値が２０００で固定の第１の実施形態とは異なり、第３の実施形態では第１閾値が２５００に設定されるので、現行データは正常であると判定される。
【００６２】
なお、基礎閾値は、ヒトによる１世代あたりのデータ更新の増減の変化を許容する緩衝値である。基礎閾値が高ければデータ更新の増減に対するキャパシティが高くなるが、ウィルスによる改ざんが多数世代に渡るまでウィルス感染を検出できない。一方で、基礎閾値が低ければ現行データに異常が有ると誤って判定するエラーが生じる可能性が高くなる。そのため、基礎閾値は、データの種類、データの重要度などを考慮して設定される。
【００６３】
また、係数は、ヒトによる１世代あたりのデータ更新の増減の変化を考慮した値であることが望ましい。このようなヒトによる１世代あたりのデータ更新の増減の変化は、例えば、一定期間、データ更新に関する情報を収集し、統計的に割り出すことで決定することができる。データ更新に関する情報については、図６〜８に示すログデータを利用することもできる。
【００６４】
以下では、図１１を参照しつつ情報処理装置１００による一連の処理の流れについて説明する。情報処理装置１００は、現行データ及び基準データを取得し（ステップＳ３１）、現行データと基準データとの間の差分値を算出する（ステップＳ３２）。そして、情報処理装置１００は、現行データの時期情報と基準データの時期情報とを取得し、現行データの時期情報と基準データの時期情報との間の差に基づいて算出される値を前記第１閾値として設定する（ステップＳ３３）。ここで、差分値が第１閾値以上である場合には（ステップＳ３４、Ｙｅｓ）、情報処理装置１００は、現行データに異常が有ると判定して情報処理装置１００の管理者に対して異常を報知する（ステップＳ３５）。一方で、差分値が第１閾値未満である場合には（ステップＳ３４、Ｎｏ）、情報処理装置１００は、現行データを記憶装置２００に格納する（ステップＳ３６）。
【００６５】
［第３の実施形態の変形例］
上述の第３の実施形態では、現行データと基準データの間の世代数差に対して係数を乗算して得られる乗算値と基礎閾値との合計値を第１閾値として設定する場合について説明した。しかしながら、基準データが格納された時刻と現行データが格納される時刻との間の期間に対して所定の係数を乗算して得られる乗算値と基礎閾値との合計値を前記第１閾値として設定しても良い。
【００６６】
具体的に説明すると、閾値設定部１２８は、基準データが格納された時刻と現行データが格納される時刻との間の期間に対して、係数記憶部１１２に記憶された係数を乗算して得られる乗算値と基礎閾値との合計値を第１閾値として設定する。なお、基準データが格納された時刻については、基準データが記憶装置２００に格納される際にログとして記憶しておいても良いし、記憶装置２００から取得するようにしても良い。また、現行データが格納される時刻については、本発明の処理が行われる時刻が一例として挙げられる。
【００６７】
このような実施形態では、定期的に表れるデータ更新の増減の変化を考慮した第１閾値を設定することもできる。具体的な一例を挙げると、出納を管理するデータなどは月末に翌月分のデータシートが作成されるなど、１カ月に１度更新ブロック数やデータサイズが増加する定期更新処理が行われる。このような場合には、基準データと現行データの間に月末のバックアップデータを含むか否かによって、更新ブロック数やデータサイズの差が顕著に異なることになる。
【００６８】
そのため、閾値設定部１２８は、基準データが格納された時刻と現行データが格納される時刻との間の期間に対して係数記憶部１１２に記憶された係数を乗算して得られる乗算値と基礎閾値との合計値を第１閾値として設定する。なお、基礎閾値とは、ヒトによる１世代あたりのデータ更新の増減の変化を許容する緩衝値である。ここで、基準データが格納された時刻と現行データが格納される時刻との間の期間に所定イベント（すなわち、月末更新）が含まれていれば、所定イベントによる差分値の増加に相当する所定増加値が基礎閾値に更に加算される。なお、所定イベントとは、例えば定期更新処理であり、所定増加値は、例えば、定期更新処理による更新ブロック数やデータサイズの増加に関する情報を収集して割り出すことができる。
【００６９】
また、この実施形態では、バックアップが不定期に行われる場合であっても対応することができる。すなわち、バックアップが不定期に行われる場合には、世代数差が同一であっても、更新ブロック数やデータサイズの増加が顕著に異なることがある。このような状況であっても、第１閾値は基準データが格納された時刻と現行データが格納される時刻との間の期間に応じた値に設定されるため、現行データに異常が有ると誤って判定するエラーを抑制することができる。
【００７０】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
【００７１】
（付記１）
バックアップの対象となる現行データを取得する現行データ取得部と、
複数世代のバックアップデータを記憶する記憶装置から、前記現行データよりも複数世代遡った世代のバックアップデータを基準データとして取得する基準データ取得部と、
前記現行データと前記基準データとの間の差分値を算出する算出部と、
前記差分値が第１閾値以上である場合に、現行データに異常が有ると判定する判定部と、
を含む情報処理装置。
（付記２）
前記判定部によって異常が無いと判定された現行データをバックアップデータとして前記記憶装置に格納する格納部と、
前記基準データからの世代数に対応付けて、各世代のバックアップデータが前記記憶装置に格納される際に前記算出部によって算出された差分値をログとして記憶するログ記憶部と、
前記判定部によって現行データに異常が有ると判定された場合に、前記ログ記憶部を参照して、第２閾値以上の差分値の増加が連続して表れる世代のバックアップデータを、異常を有するバックアップデータとして特定する特定部と、
を更に含む付記１に記載の情報処理装置。
（付記３）
前記現行データの時期情報と前記基準データの時期情報とを取得し、前記現行データの時期情報と前記基準データの時期情報との間の差に基づいて算出される値を前記第１閾値として設定する閾値設定部、
を更に含む付記１又は２に記載の情報処理装置。
（付記４）
前記閾値設定部は、前記現行データと前記基準データの間の世代数差に対して所定の係数を乗算して得られる乗算値と基礎閾値との合計値を前記第１閾値として設定する、付記３に記載の情報処理装置。
（付記５）
前記基準データが格納された時刻と前記現行データが格納される時刻との間の期間に対して所定の係数を乗算して得られる乗算値と基礎閾値との合計値を前記第１閾値として設定する、付記３に記載の情報処理装置。
（付記６）
前記基準データが格納された時刻と前記現行データが格納される時刻との間の期間に、前記現行データと前記基準データとの間の差分値が増加する所定イベントが含まれる場合には、前記基礎閾値に、前記所定イベントによる差分値の増加に相当する所定増加値を加算する、付記５に記載の情報処理装置。
（付記７）
前記差分値が、前記現行データと前記基準データとの間で相違する更新ブロック数、前記現行データの全体サイズと、前記基準データの全体サイズの差、及び／又は、前記基準データの全体ブロック数に対する更新ブロック数の比率である、
付記１〜６のいずれか１つに記載の情報処理装置。
（付記８）
バックアップの対象となる現行データを取得する現行データ取得ステップと、
複数世代のバックアップデータを記憶する記憶装置から、前記現行データよりも複数世代遡った世代のバックアップデータを基準データとして取得する基準データ取得ステップと、
前記現行データと前記基準データとの間の差分値を算出する算出ステップと、
前記差分値が第１閾値以上である場合に、現行データに異常が有ると判定する判定ステップと、
を含む情報処理方法。
（付記９）
バックアップの対象となる現行データを取得する現行データ取得工程と、
複数世代のバックアップデータを記憶する記憶装置から、前記現行データよりも複数世代遡った世代のバックアップデータを基準データとして取得する基準データ取得工程と、
前記現行データと前記基準データとの間の差分値を算出する算出工程と、
前記差分値が第１閾値以上である場合に、現行データに異常が有ると判定する判定工程と、
をコンピュータに実行させる情報処理プログラム。
（付記１０）
複数世代のバックアップデータを記憶する記憶部と、
バックアップの対象となる現行データを取得する現行データ取得部と、
前記記憶部から、前記現行データよりも複数世代遡った世代のバックアップデータを基準データとして取得する基準データ取得部と、
前記現行データと前記基準データとの間の差分値を算出する算出部と、
前記差分値が第１閾値以上である場合に、現行データに異常が有ると判定する判定部と、
を含む記憶装置。
【００７２】
なお、上記の特許文献の開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００７３】
１００  情報処理装置
１１０  記憶部
１１１  ログ記憶部
１１２  係数記憶部
１２０  処理部
１２１  現行データ取得部
１２２  基準データ取得部
１２３  算出部
１２４  判定部
１２５  報知部
１２６  格納部
１２７  特定部
１２８  閾値設定部
２００  記憶装置
３００  端末装置
１０００  ストレージ装置
１１００  記憶部
１２００  処理部
【図１】
2019175045.tif 000003
【図２】
2019175045.tif 000004
【図３】
2019175045.tif 000005
【図４】
2019175045.tif 000006
【図５】
2019175045.tif 000007
【図６】
2019175045.tif 000008
【図７】
2019175045.tif 000009
【図８】
2019175045.tif 000010
【図９】
2019175045.tif 000011
【図１０】
2019175045.tif 000012
【図１１】
2019175045.tif 000013