(57)【要約】【課題】ファイルへの不正な更新を抑止するとともに、ファイルの更新を効率よく行うことができるストレージ装置及びストレージ制御方法を提供する。【解決手段】ファイルを分割したブロックデータと、ブロックデータに基づいて生成したコンテンツアドレスとを関連付けて記憶する記憶部２と、ブロックデータの更新が開始されることを検出した場合、ブロックデータと当該ブロックデータに対応するコンテンツアドレスの複製を生成する生成部３と、複製したコンテンツアドレスのうち、更新開始前のコンテンツアドレスに関連付けられたブロックデータに対する、更新完了後のコンテンツアドレスに関連付けられたブロックデータの変化が、異常であると判定した場合、更新開始前のコンテンツアドレスを記憶部２に記憶する判定部４と、を有するストレージ装置１である。【選択図】図１
2019159721.tif 000002
【特許請求の範囲】
【請求項１】
ファイルを分割したブロックデータと、前記ブロックデータに基づいて生成したコンテンツアドレスとを関連付けて記憶する、記憶部と、
前記ブロックデータの更新が開始されることを検出した場合、前記ブロックデータと当該ブロックデータに対応する前記コンテンツアドレスの複製を生成する、生成部と、
複製した前記コンテンツアドレスのうち、更新開始前の前記コンテンツアドレスに関連付けられた前記ブロックデータに対する、更新完了後の前記コンテンツアドレスに関連付けられた前記ブロックデータの変化が、異常であると判定した場合、更新開始前の前記コンテンツアドレスを前記記憶部に記憶する、判定部と、
を有することを特徴とするストレージ装置。
【請求項２】
請求項１に記載のストレージ装置であって、
前記判定部は、更新開始前の前記コンテンツアドレスに関連付けられた前記ブロックデータの圧縮率に対する、更新完了後の前記コンテンツアドレスに関連付けられた前記ブロックデータの圧縮率が、所定圧縮率以上の変化をしている場合、異常であると判定する
ことを特徴とするストレージ装置。
【請求項３】
請求項１又は２に記載のストレージ装置であって、
前記生成部は、複製した前記コンテンツアドレスを有する第一のファイルを識別する第一の識別情報と、更新完了後の前記コンテンツアドレスを有する第二のファイルを識別する第二の識別情報とを対応づけて更新情報を生成し、
前記更新情報を参照し、更新完了後の前記コンテンツアドレスを、更新開始前の前記コンテンツアドレスに置き換え、前記コンテンツアドレスに基づいて復元をする、復元部と
を有することを特徴とするストレージ装置。
【請求項４】
（Ａ）ファイルを分割したブロックデータと、前記ブロックデータに基づいて生成したコンテンツアドレスとを関連付けて記憶する、ステップと、
（Ｂ）前記ブロックデータの更新が開始されることを検出した場合、前記ブロックデータと当該ブロックデータに対応する前記コンテンツアドレスの複製を生成する、ステップと、
（Ｃ）複製した前記コンテンツアドレスのうち、更新開始前の前記コンテンツアドレスに関連付けられた前記ブロックデータに対する、更新完了後の前記コンテンツアドレスに関連付けられた前記ブロックデータの変化が、異常であると判定した場合、更新開始前の前記コンテンツアドレスを前記記憶部に記憶する、ステップと、
を有することを特徴とするストレージ装置の制御方法。
【請求項５】
請求項４に記載のストレージ装置の制御方法であって、
前記（Ｃ）のステップにおいて、更新開始前の前記コンテンツアドレスに関連付けられた前記ブロックデータの圧縮率に対する、更新完了後の前記コンテンツアドレスに関連付けられた前記ブロックデータの圧縮率が、所定圧縮率以上の変化をしている場合、異常であると判定する
ことを特徴とするストレージ装置の制御方法。
【請求項６】
請求項４又は５に記載のストレージ装置の制御方法であって、
前記（Ｂ）のステップにおいて、複製した前記コンテンツアドレスを有する第一のファイルを識別する第一の識別情報と、更新完了後の前記コンテンツアドレスを有する第二のファイルを識別する第二の識別情報とを対応づけて更新情報を生成し、
（Ｄ）前記更新情報を参照し、更新完了後の前記コンテンツアドレスを、更新開始前の前記コンテンツアドレスに置き換え、前記コンテンツアドレスに基づいて復元をする、ステ
ップと
を有することを特徴とするストレージ装置の制御方法。
【請求項７】
コンピュータに、
（Ａ）ファイルを分割したブロックデータと、前記ブロックデータに基づいて生成したコンテンツアドレスとを関連付けて記憶する、ステップと、
（Ｂ）前記ブロックデータの更新が開始されることを検出した場合、前記ブロックデータと当該ブロックデータに対応する前記コンテンツアドレスの複製を生成する、ステップと、
（Ｃ）複製した前記コンテンツアドレスのうち、更新開始前の前記コンテンツアドレスに関連付けられた前記ブロックデータに対する、更新完了後の前記コンテンツアドレスに関連付けられた前記ブロックデータの変化が、異常であると判定した場合、更新開始前の前記コンテンツアドレスを前記記憶部に記憶する、ステップと、
を実行させることを特徴とするストレージ装置の制御プログラム。
【請求項８】
請求項７に記載のストレージ装置の制御プログラムであって、
前記（Ｃ）のステップにおいて、更新開始前の前記コンテンツアドレスに関連付けられた前記ブロックデータの圧縮率に対する、更新完了後の前記コンテンツアドレスに関連付けられた前記ブロックデータの圧縮率が、所定圧縮率以上の変化をしている場合、異常であると判定する
ことを特徴とするストレージ装置の制御プログラム。
【請求項９】
請求項７又は８に記載のストレージ装置の制御プログラムであって、
前記（Ｂ）のステップにおいて、複製した前記コンテンツアドレスを有する第一のファイルを識別する第一の識別情報と、更新完了後の前記コンテンツアドレスを有する第二のファイルを識別する第二の識別情報とを対応づけて更新情報を生成し、
前記コンピュータに、
（Ｄ）前記更新情報を参照し、更新完了後の前記コンテンツアドレスを、更新開始前の前記コンテンツアドレスに置き換え、前記コンテンツアドレスに基づいて復元をする、ステップ
を実行させることを特徴とするストレージ装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不正な更新を抑止するストレージ装置、制御方法及び制御プログラムに関する。
【背景技術】
【０００２】
近年、ランサムウェアなどの不正プログラムに起因する、不正なファイル更新などが発生している。そこで、オーバーレイファイルシステム、又はランサムウェアに対抗するアンチウイルスソフトなどが提案されている。
【０００３】
オーバーレイファイルシステムによれば、ファイル更新をする際、ファイル全体のコピー、及びボリュームのスナップショットを作成して、ファイル更新前のファイル内容を残している。また、アンチウイルスソフトによれば、ランサムウェアがストレージシステムに送り込まれた場合、ランサムウェアがファイルに対して実行する悪意あるデータ暗号化を検知し、ファイルが暗号化される前に、ファイルのコピーを作成している。
【０００４】
関連する技術として、特許文献１に示されるプログラムが開示されている。そのプログラムによれば、監視対象プログラムの挙動がランサムウェア特有の挙動をした場合、監視対象プログラムがファイルにアクセスする前に、アクセスをブロックする。このようにして、ランサムウェアによるファイルの暗号化を阻止する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１８−０１０４９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、オーバーレイファイルシステム、及びアンチウイルスソフトを用いた場合、ファイルの容量が増加すると、ファイルのコピーを作成する時間が増加する。また、コピーしたファイルを記憶できる記憶容量を、事前に確保しなくてはならない。更に、オーバーレイファイルシステムでは、暗号化されたファイルをコピーしている可能性がある。
【０００７】
本発明の目的の一例は、ファイルへの不正更新を抑止するとともに、ファイルの更新を効率よく行うストレージ装置、制御方法及び制御プログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の一側面におけるストレージ装置は、
ファイルを分割したブロックデータと、前記ブロックデータに基づいて生成したコンテンツアドレスとを関連付けて記憶する、記憶部と、
前記ブロックデータの更新が開始されることを検出した場合、前記ブロックデータと当該ブロックデータに対応する前記コンテンツアドレスの複製を生成する、生成部と、
複製した前記コンテンツアドレスのうち、更新開始前の前記コンテンツアドレスに関連付けられた前記ブロックデータに対する、更新完了後の前記コンテンツアドレスに関連付けられた前記ブロックデータの変化が、異常であると判定した場合、更新開始前の前記コンテンツアドレスを前記記憶部に記憶する、判定部と、
を有することを特徴とする。
【０００９】
また、上記目的を達成するため、本発明の一側面におけるストレージ装置の制御方法は、
（Ａ）ファイルを分割したブロックデータと、前記ブロックデータに基づいて生成したコンテンツアドレスとを関連付けて記憶する、ステップと、
（Ｂ）前記ブロックデータの更新が開始されることを検出した場合、前記ブロックデータと当該ブロックデータに対応する前記コンテンツアドレスの複製を生成する、ステップと、
（Ｃ）複製した前記コンテンツアドレスのうち、更新開始前の前記コンテンツアドレスに関連付けられた前記ブロックデータに対する、更新完了後の前記コンテンツアドレスに関連付けられた前記ブロックデータの変化が、異常であると判定した場合、更新開始前の前記コンテンツアドレスを前記記憶部に記憶する、ステップと、
を有することを特徴とする。
【００１０】
更に、上記目的を達成するため、本発明の一側面におけるストレージ装置の制御プログラムは、
コンピュータに、
（Ａ）ファイルを分割したブロックデータと、前記ブロックデータに基づいて生成したコンテンツアドレスとを関連付けて記憶する、ステップと、
（Ｂ）前記ブロックデータの更新が開始されることを検出した場合、前記ブロックデータと当該ブロックデータに対応する前記コンテンツアドレスの複製を生成する、ステップと、
（Ｃ）複製した前記コンテンツアドレスのうち、更新開始前の前記コンテンツアドレスに関連付けられた前記ブロックデータに対する、更新完了後の前記コンテンツアドレスに関連付けられた前記ブロックデータの変化が、異常であると判定した場合、更新開始前の前記コンテンツアドレスを前記記憶部に記憶する、ステップと、
を実行させることを特徴とする。
【発明の効果】
【００１１】
以上のように本発明によれば、ファイルへの不正更新を抑止するとともに、ファイルの更新を効率よく行うことができる
【図面の簡単な説明】
【００１２】
【図１】図１は、ストレージ装置の一例を示す図である。
【図２】図２は、ブロックデータとコンテンツアドレスとの関係を説明するための図である。
【図３】図３は、ストレージ装置を更に具体的に示す図である。
【図４】図４は、更新情報のデータ構造の一例を示す図である。
【図５】図５は、ストレージ装置の動作の一例を示す図である。
【図６】図６は、ストレージ装置の動作を更に具体的に示す図である。
【図７】図７は、ストレージ装置の復元動作の一例を示す図である。
【発明を実施するための形態】
【００１３】
（実施の形態）
以下、本発明の実施の形態におけるストレージ装置、ストレージシステム、ストレージ制御方法、及びストレージ制御プログラムについて、図１から図７を参照しながら説明する。
【００１４】
［装置構成］
最初に、図１、図２を用いて、本実施の形態におけるストレージ装置の構成について説明する。図１は、ストレージ装置の一例を示す図である。図２は、ブロックデータとコン
テンツアドレスの関係を説明するための図である。
【００１５】
図１に示すように、ストレージ装置１は、ファイルへの不正な更新を抑止するとともに、ファイルの更新を効率よく行う装置である。ストレージ装置１は、記憶部２と、生成部３と、判定部４とを有する。
【００１６】
このうち、記憶部２は、ファイルを分割したブロックデータと、ブロックデータに基づいて生成したコンテンツアドレスとを関連付けて記憶する。具体的には、図２に示すように、ファイルを分割したブロックデータＤ１、Ｄ２、Ｄ３、Ｄ４…Ｄｎ…（ｎは正の整数）と、ブロックデータの記憶先を示すコンテンツアドレスＣＡ１、ＣＡ２、ＣＡ３、ＣＡ２…ＣＡｍ…（ｍは正の整数）とを関連付けて記憶する。従って、ファイルは、図２に示すように、コンテンツアドレスを用いて表すことができる。
【００１７】
生成部３は、ブロックデータの更新が開始されること検出した場合、ブロックデータと当該ブロックデータに対応するコンテンツアドレスの複製を生成する。具体的には、図２に示すように、ブロックデータＤ３の更新が開始されることを検出した場合、ブロックデータＤ３と、ブロックデータＤ３に対応するコンテンツアドレスＣＡ３との複製を生成する。
【００１８】
判定部３は、複製したコンテンツアドレスのうち、更新開始前のコンテンツアドレスに関連付けられたブロックデータに対する、更新完了後のコンテンツアドレスに関連付けられたブロックデータの変化が、異常であると判定した場合、更新開始前のブロックデータと当該ブロックデータに対応するコンテンツアドレスとを記憶部２に記憶する。
【００１９】
具体的には、図２に示すように、複製した更新前ファイルに含まれるコンテンツアドレスのうち、更新開始前のコンテンツアドレスＣＡ３に関連付けられたブロックデータＤ３と、更新後ファイルに含まれるコンテンツアドレスＣＡ３′に関連付けられたブロックデータＤ３′とを比較する。その後、ブロックデータＤ３に対してブロックデータＤ３′に変化がある場合、すなわち異常を検出した場合、更新開始前のブロックデータＤ３と、当該ブロックデータＤ３に対応するコンテンツアドレスＣＡ３とを記憶部２に記憶する。
【００２０】
このように、本実施の形態では、ブロックデータとコンテンツアドレスとを関連付けて記憶する。従って、図２に示すように、同じ内容のブロックデータＤ２があっても、二つのコンテンツアドレスＣＡ２を用いて表せばよいので、ブロックデータＤ２を重複して記憶部２に記憶しないようにできる。そのため、記憶装置１の記憶容量を有効に活用することができる。
【００２１】
また、ブロックデータの更新が開始されることを検出した場合、ブロックデータの更新開始前に、更新前ブロックデータと当該ブロックデータに対応するコンテンツアドレスの複製を生成できる。そのため、バックアップを実行する時間（例えば、静止点など）を待たず、更新ごとに、更新前ファイルをバックアップできるため、バックアップを高速に実行することができる。また、ファイルはコンテンツアドレスを用いて表しているので、バックアップをする場合、従来のようにファイルをすべて複製せず、コンテンツアドレスと当該コンテンツアドレスに対応するブロックデータを複製すればよい。言い換えれば、ファイルの更新を効率よく行うことができる。
【００２２】
更に、複製した更新前ファイルのコンテンツアドレスに関連付けられたブロックデータに対して、更新後ファイルのコンテンツアドレスに関連付けられたブロックデータに異常がある場合、更新前のブロックデータと複製した更新前ファイルを記憶する。そうすることで、ブロックデータがランサムウェアにより暗号化されていた場合でも、複製した更新
前ファイルのコンテンツアドレスと当該コンテンツアドレスに対応するブロックデータを記憶しているので、更新後のファイルを更新前の状態に復元することができる。言い換えれば、ランサムウェアなどによる、ファイルへの不正更新を抑止することができる。
【００２３】
続いて、図３を用いて、本実施の形態における記憶装置の構成をより具体的に説明する。図３は、ストレージ装置を更に具体的に示す図である。
【００２４】
図３に示すように、本実施の形態におけるストレージ装置１は、図１に示した記憶部２と、生成部３と、判定部４とに加え、ファイル書き込み部２１と、ファイル読み出し部２２とを有する。記憶部２は、ブロックデータ記憶部２３と、コンテンツアドレス記憶部２４と、複製情報記憶部２５とを有する。判定部４は、更新判定部２６と、圧縮率判定部２７と、破棄部２８と、復元部３０とを有する。
【００２５】
記憶部２は、ブロックデータ記憶部２３が有する複数のブロックデータと、ファイル３２が有する複数のコンテンツアドレスとを関連付けて記憶する。また、記憶部２は、複製した複製ファイル３３が有する複製したコンテンツアドレスと、当該複製したコンテンツアドレスに対応するブロックデータ３１とを関連付けて記憶する。記憶部２には、ファイル書き込み部２１により、ファイルが書き込まれ、また、ファイル読み出し部２２により、ファイルが読み出される。記憶部２は、例えば、ＨＤＤ（Hard Disk Drive）、又はＳＳＤ（Solid State Drive）などの記憶媒体である。なお、記憶部２はストレージ装置１の外部に設けてもよい。
【００２６】
ファイル書き込み部２１は、ファイルを書き込む場合、ストレージ装置１と通信可能な情報処理装置などから、ファイルを受信する。続いて、ファイル書き込み部２１は、受信したファイルを、予め設定したファイルを分割するための基準に従い、ファイルを分割してブロックデータを生成し、記憶部２のブロックデータ記憶部２３に記憶する。続いて、ファイル書き込み部２１は、ブロックデータの内容に基づいて、ブロックデータの記憶先を示すコンテンツアドレスを生成し、記憶部２のコンテンツアドレス記憶部２４に記憶する。また、ファイル書き込み部２１は、ブロックデータをブロックデータ記憶部２３に記憶する場合、ブロックデータを圧縮して記憶する。
【００２７】
コンテンツアドレスは、ブロックデータの記憶先を示す情報である。コンテンツアドレスは、例えば、ブロックデータの情報に基づいて算出したハッシュ値を用いる。また、コンテンツアドレスは、例えば、ブロックデータの有する、ファイル識別番号と、ブロックの先頭アドレスと、ブロックサイズとを用いて、算出したハッシュ値としてもよい。
【００２８】
ファイル読み出し部２２は、ファイルを読み出す場合、読み出すファイルのコンテンツアドレスに基づいて、コンテンツアドレスに対応するブロックデータを読み出し、読み出したブロックデータを用いてファイルを統合（復元）する。その後、ファイル読み出し先の情報処理装置などへ送信する。
【００２９】
生成部３は、ブロックデータの更新が開始されることを検出した場合、ブロックデータと当該ブロックデータに対応するコンテンツアドレスの複製を生成する。
【００３０】
具体的には、生成部３は、図３に示すように、まず、ファイル書き込み部２２による、記憶部２への、ブロックデータＤ３に対する書き込みが開始されることを検出する。例えば、生成部３は、ファイル書き込み部２２から書き込みを開始することを示す指示などを取得する。続いて、生成部３は、ブロックデータＤ３の更新が開始されることを検出した場合、ブロックデータＤ３の更新が開始される前に、ブロックデータＤ３及びブロックデータＤ３に対応するコンテンツアドレスＣＡ３を有する複製ファイル３３の複製を生成し
、記憶部２の複製情報記憶部２５に記憶する。
【００３１】
判定部３は、図３に示すように、複製ファイル３３が有するコンテンツアドレスＣＡ３に関連付けられたブロックデータＤ３に対する、更新が完了した後のファイル３２が有する更新されたコンテンツアドレスＣＡ３′に関連付けられたブロックデータＤ３′の変化が、異常であるか否かを判定する。異常であると判定した場合、判定部３は、更新を検出する前のコンテンツアドレスＣＡ３を有する複製ファイル３３を記憶部２の複製情報記憶部２５に記憶する。
【００３２】
具体的には、判定部４に設けられている更新判定部２６は、更新が完了した後、更新後ファイル３２と複製ファイル３３とを取得する。続いて、更新判定部２６は、更新後ファイル３２と複製ファイル３３とを比較して、更新されたコンテンツアドレスＣ３′を検出する。
【００３３】
続いて、判定部４に設けられている圧縮率判定部２７は、更新されたコンテンツアドレスＣＡ３′に関連付けられているブロックデータＤ３′が有する圧縮率を取得する。また、圧縮率判定部２７は、更新前のコンテンツＣＡ３に関連付けられたブロックデータＤ３が有する圧縮率を取得する。
【００３４】
続いて、圧縮率判定部２７は、ブロックデータＤ３とＤ３′の圧縮率を比較し、圧縮率に大きな変化が生じているか否かを判定する。大きな変化が生じている場合、利用者が意図しない書き込み、つまり異常な更新である可能性が高いので、ブロックデータＤ３と、コンテンツアドレスＣＡ３を有する複製ファイル３３とをバックアップとして、複製情報記憶部２５に記憶しておく。
【００３５】
異常な更新の判定について説明する。上述したように、ファイル書き込み部２２がブロックデータを記憶する場合、ブロックデータに対して圧縮をしている。ところが、ランサムウェアによりブロックデータが攻撃を受けると、ブロックデータは暗号化されるため、ブロックデータに対して圧縮がほとんど掛けられない状態になる。本実施の形態では、この現象を利用して、ランサムウェアによる悪意のある更新であるか否かを判定する。例えば、ブロックデータがテキストファイルである場合、圧縮率は通常９０［％］程度であるが、ランサムウェアにより暗号化された場合には、例えば圧縮率は０［％］近くになる。そこで、本実施の形態では、圧縮率の差を算出し、予め設定した所定圧縮率と比較し、その差が所定圧縮率以上の場合、圧縮率が異常であると判定する。なお、ブロックデータが異常であるか否かの判定は、上述した圧縮率以外を用いて行ってもよい。
【００３６】
また、大きな変化が生じていない場合、正常な更新と見做せるので、判定部３に設けられている破棄部２８が、複製ファイル及びブロックデータを記憶部２の複製情報記憶部２５から破棄する。具体的には、図３に示す更新後ファイル３２が正常な更新である場合、破棄部２８は、複製ファイル３３とブロックデータ３１を複製情報記憶部２５に記憶せず破棄する。
【００３７】
（変形例）
バックアップしたファイルを復元する方法について説明する。ストレージ装置１は、変形例において、更に、復元部３０を有する。
【００３８】
生成部３は、複製したブロックデータ３１と複製ファイル３３とを、通常運用中において利用者から読み書きできない状態で、記憶部２の複製情報記憶部２５に記憶する。また、生成部３は、更新をする場合、複製ファイル３３と更新後ファイル３２とを関連付けて更新情報を生成し、記憶部２に記憶する。
【００３９】
次に、バックアップした複製ファイル３３を復元する場合、復元部３０は、更新情報を参照して、バックアップした複製ファイル３３に関連付けられているコンテンツアドレスを、更新後ファイル３２それぞれに関連付けられているコンテンツアドレスと置き換える。すなわち、更新開始前の状態にファイルを復元する。
【００４０】
具体的には、生成部３は、複製したコンテンツアドレスを有する更新前ファイル（第一のファイル）を識別するファイル名（第一の識別情報）と、更新を完了した後のコンテンツアドレスを有する更新後ファイル（第二のファイル）を識別するファイル名（第二の識別情報）とを関連付けて更新情報を生成する。
【００４１】
図４は、更新情報のデータ構造の一例を示す図である。更新情報４０は、更新後ファイル３２のファイル名を示す「ファイル名」と、複製ファイル３３のファイル名を示す「複製ファイル名」とから構成される。図４の例では、「ファイル名」には、更新後ファイル３２のファイル名「Ｆｉｌｅ＿Ａ」「Ｆｉｌｅ＿Ｂ」「Ｆｉｌｅ＿Ｃ」が記憶されている。また、「複製ファイル名」には、複製ファイル３３のファイル名「Ｆｉｌｅ＿Ａ＿ｃ」「Ｆｉｌｅ＿Ｂ＿ｃ」「Ｆｉｌｅ＿Ｃ＿ｃ」が記憶されている。
【００４２】
復元部３０は、更新情報４０を参照し、更新が完了した後のコンテンツアドレスを有する更新後ファイル３２を、更新開始前のコンテンツアドレスを有する複製ファイル３３に置き換え、コンテンツアドレスに基づいて、ファイルを復元する。
【００４３】
具体的に説明する。例えば、図３に示す更新後ファイル３２のファイル名が、図４に示す「Ｆｉｌｅ＿Ａ」であり、図３に示す複製ファイル３３のファイル名が、図４に示す「Ｆｉｌｅ＿Ａ＿ｃ」であるとする。このような場合、復元部３０は、「Ｆｉｌｅ＿Ａ」を用いて、更新情報４０を参照し、「Ｆｉｌｅ＿Ａ＿ｃ」を検出する。続いて、復元部３０は、「Ｆｉｌｅ＿Ａ＿ｃ」に対応する複製ファイル３３を、「Ｆｉｌｅ＿Ａ」に対応する更新後ファイル３２に置き換える。
【００４４】
このように、変形例によれば、更新ごとに、複製（バックアップ）される複製ファイル３３を用いて復元ができるため、複製ファイル３３が生成された時点まで、ファイルを復元することができる。
【００４５】
［装置動作］
次に、本発明の実施の形態におけるストレージ装置の動作について図５を用いて具体的に説明する。図５は、ストレージ装置の動作の一例を示す図である。
【００４６】
なお、以下の説明においては、適宜図２から図４を参酌する。また、本実施の形態では、ストレージ装置を動作させることによって、ストレージ制御方法が実施される。よって、本実施の形態におけるストレージ制御方法の説明は、以下のストレージ装置の動作説明に代える。
【００４７】
図５に示すように、ファイル書き込み部２２は、ファイルを分割したブロックデータと、ブロックデータに基づいて生成したコンテンツアドレスとを関連付けて記憶する（ステップＡ１）。次に、生成部３は、コンテンツアドレスへの更新が開始されることを検出した場合、更新が完了する前にコンテンツアドレスの複製を生成する（ステップＡ２）。次に、判定部３は、複製したコンテンツアドレスのうち、更新開始前のコンテンツアドレスに関連付けられたブロックデータに対する、更新が完了した後のコンテンツアドレスに関連付けられたブロックデータの変化が、異常であると判定した場合、更新を検出する前のコンテンツアドレスを記憶する（ステップＡ３）。
【００４８】
続いて、図６を用いて、図５に示した処理（ステップＡ２、Ａ３）について詳細に説明する。図６は、ストレージ装置の動作を更に具体的に示す図である。
【００４９】
ステップＡ１１において、生成部３は、ファイルへの書き込みが開始されることを検出する。具体的には、生成部３は、ファイル書き込み部２２による、記憶部２へのブロックデータＤ３の書き込みを検出する。
【００５０】
ステップＡ１２において、生成部３は、ブロックデータと当該ブロックデータに対応するコンテンツアドレスの複製を生成する。具体的には、生成部３は、ブロックデータＤ３への更新が開始されることを検出した場合、ブロックデータＤ３と、ブロックデータＤ３に対応するコンテンツアドレスＣＡ３を有する複製ファイル３３とを複製情報記憶部２５に記憶する。
【００５１】
また、ステップＡ１２において、生成部３は、複製ファイル３３と更新後ファイル３２とを関連付けて更新情報を生成して、記憶部２に記憶する。
【００５２】
ステップＡ１３において、更新判定部２６は、更新後のファイルのコンテンツアドレスと、複製ファイルのコンテンツアドレスとを比較して更新されたブロックデータを検出する。具体的には、更新判定部２６は、更新が完了した後、更新後ファイル３２と複製ファイル３３とを取得する。続いて、更新判定部２６は、更新後ファイル３２と複製ファイル３３とを比較して、複製ファイル３３の更新前のコンテンツアドレスＣＡ３と、更新後ファイル３２の更新されたコンテンツアドレスＣ３′とを検出する。
【００５３】
ステップＡ１４において、圧縮率判定部２７は、ブロックデータＤ３とＤ３′の圧縮率を比較し、圧縮率に大きな変化が生じているか否かを判定する。大きな変化が生じている場合（ステップＡ１４：Ｙｅｓ）、利用者が意図しない書き込み、つまり異常な更新である可能性が高いので、ステップＡ１５において、ブロックデータＤ３と、コンテンツアドレスＣＡ３を有する複製ファイル３３とをバックアップとして、複製情報記憶部２５に記憶しておく。
【００５４】
ステップＡ１６において、破棄部２８は、更新後ファイル３２に対して正常な更新がされている場合（ステップＡ１４：Ｎｏ）、複製ファイル３３とブロックデータ３１とを複製情報記憶部２５に記憶せず破棄する。
【００５５】
なお、バックアップしたブロックデータＤ３及び複製ファイル３３の復元又は破棄は、利用者が、ブロックデータＤ３′が正常に更新されたか否かを確認してから実行してもよい。
【００５６】
続いて、図７を用いて、復元処理について説明する。図７は、ストレージ装置の復元動作の一例を示す図である。
【００５７】
ステップＡ１７において、復元部３０は、情報処理装置などから復元指示を受信する。続いて、ステップＡ１８において、復元部３０は、例えば、更新情報４０を参照し、更新が完了した後のコンテンツアドレスＣＡ３′を有する更新後ファイル３２を、更新開始前のコンテンツアドレスが有する複製ファイル３３に置き換える。すなわち、復元部３０は、複製ファイル３３が有するコンテンツアドレスＣＡ３に基づいて、ファイルを復元する。
【００５８】
［本実施の形態の効果］
以上のように本実施の形態によれば、ブロックデータとコンテンツアドレスとを関連付けて記憶する。従って、同じ内容のブロックデータがあっても、コンテンツアドレスを用いて表せばよいので、ブロックデータを重複して記憶部２に記憶しないようにできる。そのため、記憶装置１の記憶容量を有効に活用することができる。
【００５９】
また、ブロックデータの更新が開始されることを検出した場合、ブロックデータの更新開始前に、更新前ブロックデータと当該ブロックデータに対応するコンテンツアドレスの複製を生成できる。そのため、バックアップを実行する時間（例えば、静止点など）を待たず、更新ごとに、更新前ファイルを複製できるため、バックアップを高速に実行することができる。また、ファイルはコンテンツアドレスを用いて表しているので、更新をする場合、従来のようにファイルをすべて複製せず、コンテンツアドレスと当該コンテンツアドレスに対応するブロックデータを複製すればよい。言い換えれば、ファイルの更新を効率よく行うことができる。
【００６０】
更に、複製した更新前ファイルのコンテンツアドレスに関連付けられたブロックデータに対して、更新後ファイルのコンテンツアドレスに関連付けられたブロックデータに異常がある場合、更新前のブロックデータと複製した更新前ファイルを記憶する。そうすることで、ブロックデータがランサムウェアにより暗号化されていた場合でも、複製した更新前ファイルのコンテンツアドレスと当該コンテンツアドレスに対応するブロックデータを記憶しているので、更新後のファイルを更新前の状態に復元することができる。言い換えれば、ランサムウェアなどによる、不正なファイル更新を抑止することができる。
【００６１】
［プログラム］
なお、上述した、ファイル書き込み部２１、ファイル読み出し部２２、生成部３、判定部４（更新判定部２６、圧縮率判定部２７、破棄部２８）、復元部３０は、プロセッサを用いて実現してもよい。その場合、ストレージ装置１に設けられるプロセッサに、図５に示すステップＡ１からＡ３、図６に示すステップＡ１１からＡ１６、図７に示すステップＡ１７、Ａ１８を実行させるプログラムをインストールし、実行することによって、本実施の形態におけるストレージ装置１とその制御方法とを実現することができる。
【００６２】
［ストレージ制御装置］
ストレージ装置１から記憶部２を分離した構成について説明する。ストレージ制御装置は、上述した、ファイル書き込み部２１、ファイル読み出し部２２、生成部３、判定部４（更新判定部２６、圧縮率判定部２７、破棄部２８）、復元部３０を有する。また、記憶部２を外部に設けた場合、ストレージ制御装置と記憶部２とは、通信をする機能を有する。
【００６３】
更に、上述した、ファイル書き込み部２１、ファイル読み出し部２２、生成部３、判定部４（更新判定部２６、圧縮率判定部２７、破棄部２８）、復元部３０は、そのストレージ制御装置に搭載されているプロセッサを用いて実現してもよいし、ストレージ制御装置をコンピュータにより実現してもよい。その場合、ストレージ装置１に設けられるプロセッサに、図５に示すステップＡ１からＡ３、図６に示すステップＡ１１からＡ１６、図７に示すステップＡ１７、Ａ１８を実行させるプログラムをインストールし、実行することによって、ストレージ制御装置とその制御方法とを実現することができる。
【産業上の利用可能性】
【００６４】
以上のように本発明によれば、ファイルへの不正更新を抑止するとともに、ファイルの更新を効率よく行うことができる。本発明は、ファイルへの不正更新を抑止又はファイル更新を効率よく行うことが必要な分野において有用である。
【符号の説明】
【００６５】
１  ストレージ装置
２  記憶部
３  生成部
４  判定部
２１  ファイル書き込み部
２２  ファイル読み出し部
２３  ブロックデータ記憶部
２４  コンテンツアドレス記憶部
２５  複製情報記憶部
２７  更新判定部
２８  圧縮率判定部
２９  破棄部
３０  復元部
４０  更新情報
１１０  コンピュータ
１１１  ＣＰＵ
１１２  メインメモリ
１１３  記憶装置
１１４  入力インターフェイス
１１５  表示コントローラ
１１６  データリーダ／ライタ
１１７  通信インターフェイス
１１８  入力機器
１１９  ディスプレイ装置
１２０  記録媒体
１２１  バス
【図１】
2019159721.tif 000003
【図２】
2019159721.tif 000004
【図３】
2019159721.tif 000005
【図４】
2019159721.tif 000006
【図５】
2019159721.tif 000007
【図６】
2019159721.tif 000008
【図７】
2019159721.tif 000009