IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日立ヴァンタラ株式会社の特許一覧

特許7587558ランサムウェア攻撃検知機能を備えたストレージ装置及び管理システム
<>
  • 特許-ランサムウェア攻撃検知機能を備えたストレージ装置及び管理システム 図1
  • 特許-ランサムウェア攻撃検知機能を備えたストレージ装置及び管理システム 図2
  • 特許-ランサムウェア攻撃検知機能を備えたストレージ装置及び管理システム 図3
  • 特許-ランサムウェア攻撃検知機能を備えたストレージ装置及び管理システム 図4
  • 特許-ランサムウェア攻撃検知機能を備えたストレージ装置及び管理システム 図5
  • 特許-ランサムウェア攻撃検知機能を備えたストレージ装置及び管理システム 図6
  • 特許-ランサムウェア攻撃検知機能を備えたストレージ装置及び管理システム 図7
  • 特許-ランサムウェア攻撃検知機能を備えたストレージ装置及び管理システム 図8
  • 特許-ランサムウェア攻撃検知機能を備えたストレージ装置及び管理システム 図9
  • 特許-ランサムウェア攻撃検知機能を備えたストレージ装置及び管理システム 図10
  • 特許-ランサムウェア攻撃検知機能を備えたストレージ装置及び管理システム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-12
(45)【発行日】2024-11-20
(54)【発明の名称】ランサムウェア攻撃検知機能を備えたストレージ装置及び管理システム
(51)【国際特許分類】
   G06F 21/55 20130101AFI20241113BHJP
   G06F 21/56 20130101ALI20241113BHJP
   G06F 3/06 20060101ALI20241113BHJP
   G06F 11/30 20060101ALI20241113BHJP
【FI】
G06F21/55 320
G06F21/56
G06F3/06 301Z
G06F3/06 304N
G06F11/30 140M
G06F11/30 155
【請求項の数】 9
(21)【出願番号】P 2022164930
(22)【出願日】2022-10-13
(65)【公開番号】P2024057932
(43)【公開日】2024-04-25
【審査請求日】2024-03-13
(73)【特許権者】
【識別番号】524132520
【氏名又は名称】日立ヴァンタラ株式会社
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】弘中 和衛
(72)【発明者】
【氏名】出口 彰
【審査官】上島 拓也
(56)【参考文献】
【文献】特開2019-075131(JP,A)
【文献】特表2021-528773(JP,A)
【文献】米国特許出願公開第2019/0108340(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/55
G06F 21/56
G06F 3/06
G06F 11/30
(57)【特許請求の範囲】
【請求項1】
1又は複数のLDEVに割り当てられ得る複数の論理記憶領域である複数のページの各々についてライト状況特性を表す情報を含んだ管理情報を有する管理情報を記憶したメモリと、
前記1又は複数のLDEVのうちのいずれかのLDEVを指定したアクセス要求を前記1又は複数のホストのいずれかから受け付け、当該アクセス要求に応答して、前記複数のページのうちの、当該LDEVのアクセス先の領域に割り当てられたページに対してアクセスを行うプロセッサと
を備え、
前記1又は複数のLDEVは、1又は複数のホストに提供された1又は複数の論理ボリュームであり、
前記複数のページのうち、ライト状況特性に基づき比較的ライト頻度が低いと定義された低ライト頻度に該当するページは、低ライト頻度ページであり、
前記プロセッサは、
前記管理情報を基に、一定期間の間に一定回数以上のライトが生じた低ライト頻度ページであるマーク対象ページを特定し、
前記マーク対象ページの数が閾値以上であるというランサムウェア攻撃の可能性の有無をチェックする、
ストレージ装置。
【請求項2】
前記チェックの結果が偽の場合、前記プロセッサは、ランサムウェア対策として、下記のうちの少なくとも一つを行う、
(a)前記一定期間の間にライトが生じた低ライト頻度ページが割り当てられているLDEVである対象LDEVがデータのライト先であり、前記対象LDEVに割り当てられているページにおけるデータの更新のためのライトが生じる場合、更新前のデータを退避する、
(b)前記対象LDEVのスナップショットを削除する指示を受けた場合に当該指示を拒否する、
(c)前記対象LDEVにリモートコピー先の論理ボリュームがあり、且つ、前記対象LDEVに割り当てられているページ内のデータが前記リモートコピー先の論理ボリュームにリモートコピーされる場合、前記リモートコピー先の論理ボリュームにおける更新前のデータを退避させるか、或いは、前記リモートコピー先の論理ボリュームのスナップショットを取得させてから前記リモートコピー先の論理ボリュームにデータをコピーさせる、
(d)異常検知を表す情報である異常検知情報をストレージ管理者に通知する、
(e)前記対象のLDEVの他に、前記対象LDEVと同一グループに属し前記対象LDEV以外の1以上のLDEVの各々についても、(a)乃至(d)のうちの少なくとも一つを行う、
請求項1に記載のストレージ装置。
【請求項3】
前記チェックの結果が偽の場合、前記プロセッサは、少なくとも(a)を行う、
請求項2に記載のストレージ装置。
【請求項4】
前記管理情報は、
前記複数のページの各々についてアクセス状況を表す情報を含んだページアクセス管理情報と、
前記複数のページの各々についてアクセス特性を表す情報を含んだページ管理情報と
を含み、
前記複数のページの各々について、当該ページのアクセス状況は、当該ページに対するライトの回数を含み、
前記複数のページの各々について、当該ページのアクセス特性は、ページのライト頻度に基づき決定された特性であって、
前記プロセッサは、ページに対するアクセスの都度に、前記ページアクセス管理情報が表す、当該ページに対応のアクセス状況を更新するようになっており、
前記プロセッサは、前記複数のページの各々について、当該ページのアクセス状況の更新よりも低い頻度で、当該ページのアクセス状況におけるライト頻度を基に、前記ページ管理情報が表す、当該ページのアクセス特性を更新する、
請求項1に記載のストレージ装置。
【請求項5】
前記複数のページは、アクセス性能が異なる複数の記憶デバイスグループに基づくページであり、
各記憶デバイスグループは、1以上の記憶デバイスであり、
前記複数のページの各々は、前記複数の記憶デバイスグループのいずれかの記憶デバイスグループに基づいており、
前記プロセッサは、ストレージティアリングを行い、
前記ストレージティアリングは、ページのアクセス状況が当該ページの基になっている記憶デバイスグループのアクセス性能に適さない場合、当該ページ内のデータを、当該ページのアクセス状況に適したアクセス性能を持つ記憶デバイスグループに基づくページに移動することを含む、
請求項4に記載のストレージ装置。
【請求項6】
前記プロセッサは、前記閾値を、低ライト頻度ページの前記一定期間の間のライト回数と低ライト頻度ページの数との統計に基づき決定する、
請求項1に記載のストレージ装置。
【請求項7】
前記プロセッサは、前記閾値を、低ライト頻度ページの前記一定期間の間のライト回数と低ライト頻度ページの数とを機械学習モデルに入力とすることで決定し、
前記機械学習モデルは、低ライト頻度ページのライト回数と低ライト頻度ページの数とを入力とし、マーク対象ページの数が閾値を出力とするモデルである、
請求項1に記載のストレージ装置。
【請求項8】
ストレージ装置の管理システムであって、
1又は複数のLDEVに割り当てられ得る複数の論理記憶領域である複数のページの各々についてライト状況特性を表す情報を含んだ管理情報を記憶したメモリと、
前記メモリに接続されたプロセッサと
を備え、
前記1又は複数のLDEVは、1又は複数のホストに提供された1又は複数の論理ボリュームであり、
前記ストレージ装置は、前記1又は複数のLDEVのうちのいずれかのLDEVを指定したアクセス要求を前記1又は複数のホストのいずれかから受け付け、当該アクセス要求に応答して、前記複数のページのうちの、当該LDEVのアクセス先の領域に割り当てられたページに対してアクセスを行うようになっており、
前記複数のページのうち、ライト状況特性に基づき定義された低ライト頻度に該当するページは、低ライト頻度ページであり、
前記プロセッサは、
前記管理情報を基に、一定期間の間に一定回数以上のライトが生じた低ライト頻度ページであるマーク対象ページを特定し、
前記マーク対象ページの数が閾値以上であるというランサムウェア攻撃の可能性の有無をチェックする、
管理システム。
【請求項9】
1又は複数のホストに提供された1又は複数の論理ボリュームである1又は複数のLDEVのうちのいずれかのLDEVを指定したアクセス要求を前記1又は複数のホストのいずれかから受け付け、当該アクセス要求に応答して、前記1又は複数のLDEVに割り当てられ得る複数の論理記憶領域である複数のページのうちの、当該LDEVのアクセス先の領域に割り当てられたページに対してアクセスを行うようになっているストレージ装置の管理方法であって、
コンピュータが、前記複数のページの各々についてライト状況特性を表す情報を含んだ管理情報を基に、一定期間の間に一定回数以上のライトが生じた低ライト頻度ページであるマーク対象ページを特定し、
前記低ライト頻度ページは、ライト状況特性に基づき定義された低ライト頻度に該当するページであり、
コンピュータが、前記マーク対象ページの数が閾値以上であるというランサムウェア攻撃の可能性の有無をチェックする、
管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、ストレージ装置により行われるデータ処理に関する。
【背景技術】
【0002】
近年、ITシステムをターゲットとしたサイバー攻撃は増加している。特にランサムウェアと呼ばれるマルウェアは、ITシステム内に格納されたデータを暗号化や破壊することでシステムを利用不可能な状態にし、データの復元を引き換えに身代金などを要求するサイバー攻撃を行う。これらランサムウェアによる被害は国内外で後をたたず、このためITシステムにおいては、システムのレジリエンス(回復力)を高める機能又はソリューションが注目されている。
【0003】
ことに、ストレージ装置は様々なITシステムのデータを格納する装置であることから、ランサムウェアのようなデータ破壊を行うサイバー攻撃の対象となりやすい。このため、ランサムウェアによるデータ破壊を検知し、データ保護を行う技術が提供される。
【0004】
例えば、特許文献1は、ストレージ装置の外に設置されたセキュリティアプライアンスにより、ストレージ装置に格納された監視対象のファイルに対する操作イベント(ファイル名の変更回数、ファイル更新回数等)を記録し、これらの監視情報を用いてランサムウェア攻撃を検知する技術が開示されている。
【0005】
また、特許文献2及び特許文献3は、ストレージ装置にアクセスするホストのライトI/Oにおけるデータエントロピー変化を監視し、その変化幅によりランサムウェア攻撃を検知するストレージ装置が開示されている。
【0006】
また、特許文献4は、ストレージ装置のデータ格納領域内にランサムウェア検知用のおとりファイルを設置しておき、これらのおとりファイルのデータ改ざんによる変化をランサムウェア攻撃と検知する技術が開示されている。
【0007】
また、特許文献5は、ストレージ装置において定期的にデータボリュームのスナップショットを取得し、これら取得されたスナップショット間のデータ差分量やボリュームの圧縮率の差分が規定された条件となったことをランサムウェア攻撃と検知するストレージ装置が開示されている。
【0008】
また、特許文献6は、ランサムウェア攻撃によりホストI/Oのデータが暗号化されデータ圧縮やデータ重複排除の効率が悪化することに鑑みて、ストレージ装置外に設置されたアプライアンスが、ホストI/Oを監視し、一定期間(sliding-window)のデータ圧縮率又はデータ重複排除率の変化が閾値を超過したことをランサムウェア攻撃と検知する技術が開示されている。
【先行技術文献】
【特許文献】
【0009】
【文献】US10055582
【文献】US10409986
【文献】US10078459
【文献】US10609066
【文献】US2020/0042707
【文献】US2020/0099699
【発明の概要】
【発明が解決しようとする課題】
【0010】
一般に、ランサムウェアは、ITシステムの破壊自体よりも、ITシステムに格納されているデータの利用価値を失わせる事で身代金などの金銭を得ることが目的である。そのため、システムの利用者の気がつかない間に格納データの利用価値を失わせる攻撃手法が採られる。例えば、ある種のランサムウェアは、システムの動作に必要なデータを攻撃対象から除外し、ITシステム自体を正常動作させ続けながらそれ以外のデータを改ざんすることでデータ破壊攻撃を行う。また、格納データの一部のみを暗号化するなど短時間に攻撃が完了するよう洗練された処理実装が施されていることが多い。
【0011】
このため、実際のランサムウェアによる攻撃においては、実際に被害が顕在化したり、ランサムウェア攻撃に対して対処が行われるまでには、実際の攻撃開始からかなり時間が経過してしまっていたりする(つまり、被害がITシステムの広範囲に及んでいたりする)ことが多い。
【0012】
従来(特許文献1-6に開示)のランサムウェア攻撃検知技術は、主に、ホストI/Oによるデータエントロピーの変化、格納データの圧縮率又はデータ重複排除率の変動、定期的に取得したデータスナップショット間のデータ変化量など、時系列の情報を監視し、その変化量からランサムウェア攻撃を検知する。つまり、或る程度ランサムウェア攻撃が進行してからようやくそのランサムウェア攻撃の検知が可能となる。
【0013】
しかしながら前述した通り、ランサムウェアは格納データの一部のみを暗号化するなど攻撃を隠密に行うため、従来技術のような監視情報の時系列変化による検知手法で攻撃検知を行うことは実際上の困難が多いと考えられる。つまり、時系列の変化量が穏やかであるため、時間が経過してもランサムウェア攻撃の検知が困難であり、故に、ランサムウェア攻撃の被害の影響が大きくなるおそれがある。
【課題を解決するための手段】
【0014】
ストレージ装置が、1又は複数のLDEV(1又は複数のホストに提供された1又は複数の論理ボリューム)のうちのいずれかのLDEVを指定したアクセス要求をいずれかのホストから受け付け、当該アクセス要求に応答して、複数のページ(1又は複数のLDEVに割り当てられ得る複数の論理記憶領域)のうちの、当該LDEVのアクセス先の領域に割り当てられたページに対してアクセスを行うようになっている。ストレージ装置又はその管理システムが、複数のページの各々についてライト状況特性を表す情報を含んだ管理情報を基に、一定期間の間に一定回数以上のライトが生じた低ライト頻度ページであるマーク対象ページを特定し、マーク対象ページの数が閾値以上であるというランサムウェア攻撃の可能性の有無をチェックする。
【発明の効果】
【0015】
本発明の代表的な実施例によれば、ランサムウェア攻撃の被害の影響を少なくすることができる。前記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0016】
図1】実施例に係るストレージ装置の構成例を示す。
図2】ランサムウェア攻撃検知機能がストレージ装置に備えられた例を示す。
図3】ランサムウェア攻撃検知機能が管理システムに備えられた例を示す。
図4】管理情報の構成例を示す。
図5】LDEV管理テーブルの構成例を示す。
図6】アドレス管理テーブルの構成例を示す。
図7】プール管理テーブルの構成例を示す。
図8】ページ管理テーブルの構成例を示す。
図9】プールVOL管理テーブルの構成例を示す。
図10】ページアクセス管理テーブルの構成例を示す。
図11】ランサムウェア攻撃検知処理のフローの例を示す。
【発明を実施するための形態】
【0017】
本発明の一実施例について、図面を参照して説明する。
【0018】
なお、以下に説明する実施例は特許請求の範囲に係る発明を限定するものではなく、実施例の中で説明されている要素の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0019】
また、以下の説明では、「xxxテーブル」や「xxxリスト」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、この種の情報は、どのような構造のデータでもよいし、入力に対する出力を発生するニューラルネットワークのような学習モデルでもよい。従って、「xxxテーブル」や「xxxリスト」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルや各リストの構成は一例であり、1つのテーブルやリストは、2個以上のテーブルやリストに分割されてもよいし、2個以上のテーブルやリストの全部又は一部が1つのテーブルやリストであってもよい。
【0020】
また、各情報の識別情報として「番号」を用いるが、識別情報として、番号に代えて又は加えて、番号以外の情報(例えば、「名」、「名前」、「ID」)を用いることができる。図では、番号は、「#」と表記する。
【0021】
また、後述する本発明の実施例は、汎用コンピュータ上で稼動するソフトウェアで実装してもよいし、専用ハードウェア又はソフトウェアとハードウェアの組み合わせで実装してもよい。
【0022】
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ部によって実行されることで、定められた処理を、適宜に記憶部及び/又はインターフェース部等を用いながら行うため、処理の主語が、プロセッサ部(或いは、そのプロセッサ部を有するコントローラのようなデバイス)とされてもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な(例えば非一時的な)記録媒体であってもよい。また、以下の説明において、2個以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2個以上のプログラムとして実現されてもよい。
【0023】
また、以下の説明では、「ホストシステム」は、1以上のホスト計算機である。少なくとも1つのホスト計算機は、物理的な計算機上で実行される仮想的な計算機でもよい。
【0024】
また、以下の説明では、「管理システム」は、1以上の管理計算機である。少なくとも1つの管理計算機は、物理的な計算機上で実行される仮想的な計算機でもよい。また、管理システムは、入出力コンソールとしての管理計算機(例えばクライアントとしての管理計算機)を含んでもよい。
【0025】
また、以下の説明では、「ストレージ装置」は、複数個のPDEVを有するいわゆるディスクアレイ装置のようなストレージ装置でよいが、それに代えて、汎用計算機(例えば、ストレージ機能を発揮するためのソフトウェアをインストールし実行することで実現されるSDS(Software-Defined Storage)やSDDC(Software-defined Datacenter)のようなソフトウェアデファインドの装置)でもよい。また、ストレージ装置は、ストレージ装置としての機能に加えて、ホストの少なくとも一部として機能を有してもよい。
【0026】
また、以下の説明では、「PDEV」は、物理的な記憶デバイスを意味し、典型的には、永続記憶デバイスでよい。PDEVは、例えば、HDD(Hard Disk Drive)又は、SSD(Solid State Drive)でよい。ストレージ装置に異なる種類のPDEVが混在していてもよい。
【0027】
以下の説明では、「インターフェース装置」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、下記のうちの少なくとも一つでよい。
・一つ以上のI/O(Input/Output)インターフェースデバイス。I/O(Input/Output)インターフェースデバイスは、I/Oデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するI/Oインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも一つのI/Oデバイスは、ユーザインターフェースデバイス、例えば、キーボード及びポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
【0028】
また、以下の説明では、「メモリ」は、一つ以上の記憶デバイスの一例である一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
【0029】
また、以下の説明では、「永続記憶装置」は、一つ以上の記憶デバイスの一例である一つ以上の永続記憶デバイスでよい。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)でよく、具体的には、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、NVME(Non-Volatile Memory Express)ドライブ、又は、SCM(Storage Class Memory)でよい。
【0030】
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサデバイスでよい。少なくとも一つのプロセッサデバイスは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサデバイスでよいが、GPU(Graphics Processing Unit)のような他種のプロセッサデバイスでもよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサデバイスは、プロセッサコアでもよい。少なくとも一つのプロセッサデバイスは、処理の一部又は全部を行うハードウェア記述言語によりゲートアレイの集合体である回路(例えばFPGA(Field-Programmable Gate Array)、CPLD(Complex Programmable Logic Device)又はASIC(Application Specific Integrated Circuit))といった広義のプロセッサデバイスでもよい。
【0031】
また、以下の説明では、「RAID」は、Redundant Array of Inexpensive Disks の略である。RAIDグループは、永続記憶装置の一例でよく、複数のPDEV(典型的には同種のPDEV)で構成され、そのRAIDグループに関連付けられたRAIDレベルに従いデータを記憶する。RAIDグループは、パリティグループと呼ばれてもよい。パリティグループは、例えば、パリティを格納するRAIDグループのことでよい。
【0032】
また、以下の説明では「ボリューム(VOL)」は、ストレージの記憶領域を示し、これらは物理的な記憶デバイス又は、論理的な記憶デバイスによって実装されていてよい。
【0033】
また、VOLは、実体的なVOL(RVOL)であってもよいし、仮想的なVOL(VVOL)であってもよい。「RVOL」は、そのRVOLを有するストレージ装置が有する物理的な記憶資源(例えば、1以上のRAIDグループ)に基づくVOLでよい。「VVOL」は、外部接続VOL(EVOL)と、容量拡張VOL(TPVOL)と、スナップショットVOLとのうちのいずれでもよい。EVOLは、外部のストレージ装置の記憶空間(例えばVOL)に基づいており、ストレージ仮想化技術に従うVOLでよい。TPVOLは、複数の仮想領域(仮想的な記憶領域)で構成されており容量仮想化技術(典型的にはThin Provisioning)に従うVOLでよい。
【0034】
「ストレージプール(POOL)」は、論理的な記憶領域(例えば複数のプールVOLの集合)であり、用途ごとに用意されてよい。例えば、ストレージプールとして、TPプールと、スナップショットプールとのうちの少なくとも1種類があってよい。TPプールは、複数のページ(一定のサイズで区切られたデータ記憶域の単位)で構成された記憶領域でよい。ストレージコントローラが、ホストシステム(以下、ホスト)から受信したライト要求が指定するアドレスが属する仮想領域(TPVOLの仮想領域)にページが割り当てられていない場合、その仮想領域(ライト先仮想領域)にTPプールからページを割り当てる(ライト先仮想領域にページが割り当て済であってもページが新たにライト先仮想領域に割り当てられてもよい)。ストレージコントローラは、割り当てられたページに、そのライト要求に付随するライト対象データを書き込んでよい。スナップショットプールは、オリジナルのVOLから退避されたデータが格納される記憶領域でよい。1つのプールが、TPプールとしてもスナップショットプールとしても使用されてもよい。「プールVOL」は、プールの構成要素となるVOLでよい。プールVOLは、RVOLであってもよいしEVOLであってもよい。
【0035】
また、以下の説明では、ホストから認識されるVOL(ストレージ装置がホストに提供するVOL)を「LDEV」と言う。以下の説明では、LDEVは、TPVOL(又はRVOL)であり、プールは、TPプールである。しかし、本発明は、容量拡張技術(Thin Provisioning)が採用されていないストレージ装置にも適用できる。
【0036】
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通符号を使用し、同種の要素を区別する場合は、参照符号を使用することがある。
【0037】
図1は、本実施例に係るストレージ装置の構成例を示す。
【0038】
ストレージ装置100に、ネットワーク108を介して1以上のホスト104が接続されている。また、ストレージ装置100に管理ネットワーク109を介して管理システム105が接続されている。ネットワーク108は、例えばFC(Fibre Channel)やiSCSI (Internet Small Computer System Interface)である。管理ネットワーク109は、例えばインターネット又はWAN(Wide Area Network)である。ネットワーク109及び管理ネットワーク109は同一ネットワークでもよい。
【0039】
ホスト104は、ホストシステムの略であり、1以上のホストである。ホスト104は、H-I/F(ホストインタフェースデバイス)106を有しており、H-I/F106経由で、アクセス要求(ライト要求又はリード要求)をストレージ装置100に送信したり、アクセス要求の応答(例えば、ライト完了を含んだライト応答、又は、リード対象のデータを含んだリード応答)を受信したりする。H-I/F106は、例えば、HBA(Host Bus Adapter)又はNIC(Network Interface Card)である。
【0040】
管理システム105は、ストレージ装置100の構成及び状態を管理する。管理システム105、M-I/F(管理インターフェースデバイス)107を有しており、M-I/F経由で、ストレージ装置100に命令を送信したりその命令の応答を受信したりする。M-I/F107は、例えばNICである。
【0041】
また、管理システム105は、ストレージ装置100を管理するサーバやPC上で実行されるソフトウェアでよいし、ストレージ装置100に接続されるホスト104の管理を行うセキュリティアプライアンスやソフトウェアの機能として実装されてもよい。管理システム105は、M-I/F107の他に、メモリと、M-I/F107及びメモリに接続されたプロセッサとを有する。
【0042】
ストレージ装置100は、複数のドライブ118と、複数のドライブ118に接続されたストレージコントローラ103とを有する。複数のドライブ118を含んだ1以上のRAIDグループが構成されていてよい。ドライブ118がPDEVの一例である。
【0043】
ストレージコントローラ103は、F-I/F(フロントエンドインタフェースデバイス)110と、B-I/F(バックエンドインタフェースデバイス)117と、CM(キャッシュメモリ)111と、NVRAM(Non-Volatile RAM)112と、MPPK114A及びMPPK114Bと、それらの要素間の通信を中継する中継器113とを有する。中継器113は、例えばバス又はスイッチである。
【0044】
F-I/F110は、ホスト104又は管理サーバと通信するI/Fである。B-I/F117は、ドライブ118と通信するI/Fである。B-I/F117は、E/D回路(暗号化及び復号化のためのハードウェア回路)を含んでいてよい。具体的には、例えば、B-I/F117は、SAS(Serial Attached SCSI)コントローラを含んでいてよく、SASコントローラが、E/D回路を含んでいてよい。
【0045】
CM111(例えばDRAM(Dynamic Random Access Memory)には、ドライブ118に書き込まれるデータ又はドライブ118から読み出されたデータがMPPK114により一時格納される。NVRAM112には、電断時にバッテリ(図示せず)から電力を受けたMPPK114によりCM111内のデータ(例えばダーティデータ(ドライブ118に書き込まれていないデータ))が退避される。
【0046】
MPPK114A及びMPPK114Bによりクラスタが構成されている。MPPK114A(MPPK114B)は、DRAM116A(DRAM116B)と、CPU115A(CPU115B)とを有する。DRAM116A(DRAM116B)には、CPU115A(CPU115B)に実行される制御プログラム101A(制御プログラム101B)と、CPU115A(CPU115B)により参照又は更新される管理情報102A(管理情報102B)とが格納される。CPU115A(CPU115B)に制御プログラム101A(制御プログラム101B)が実行されることにより、例えば、ストレージ装置100のI/O処理、アドレスの変換処理が実行される。制御プログラム101A(制御プログラム101B)及び管理情報102A(管理情報102B)のうちの少なくとも一方が、複数のMPPK114A及びMPPK114Bに共有の記憶領域(例えばCM111)に格納されてもよい。
【0047】
F-I/F110及びB-IF117が、インターフェース装置の一例でよい。CM111、NVRAM112及びDRAM116が、メモリの一例でよい。ドライブ118は、永続記憶デバイスの一例でよい。CPU115が、プロセッサの一例でよい。
【0048】
図2は、ランサムウェア攻撃検知機能がストレージ装置100に備えられた例を示す。
【0049】
ストレージ装置100がLDEV200を提供し、ホスト104がLDEV200を指定したアクセス要求を送信する。
【0050】
LDEV200の実態はVOLである。ストレージ装置100は、ストレージプール201の記憶域を、ページ207単位で、ホスト104に提供するLDEV200の記憶域に対応づける。
【0051】
また、ストレージプール201を構成する記憶域は単一又は複数のプールVOL202により提供される。ストレージ装置100は、ストレージプール201に記憶域を提供するプールVOL202とストレージプール201との対応を管理している。
【0052】
また、ストレージ装置100は、ページアクセス監視プログラム203、データ保護制御プログラム204、ランサムウェア攻撃検知プログラム205、及び閾値決定プログラム206を有する。これらのプログラム203~206は、DRAM116A(DRAM116B)に格納され、CPU115A(CPU115B)により実行される。
【0053】
ページアクセス監視プログラム203は、ストレージプール201を構成するページ207単位に、I/O情報を監視する。各ページ207について、I/O情報は、例えば、ページ割当状況(未割り当て又は割当済み)、I/O種別(リード又はライト)、I/Oパターン(シーケンシャルアクセス、ランダムアクセス)、リードアクセス回数、ライトアクセス回数、リードデータ量、及び、ライトデータ量のうちの少なくとも一つを表す情報を含む。
【0054】
これらのページ207の各々のI/O情報を用いることで、ページアクセス監視プログラム203は、ページ207毎のアクセス特性を分類することができる。例えば、ページアクセス監視プログラム203は、ページ207のアクセス特性を、当該ページ207のアクセス特性に応じた下記の何れかのアクセス特性に分類することができる。
・ホスト104から頻繁にアクセスされ頻繁にデータ更新が生じることである「HOT」。
・ホスト104からある程度の頻度でアクセスされデータ更新が生じることである「NORMAL」。
・ホスト104から低頻度でアクセスされデータ更新が生じることである「COLD」。
・ホスト104から殆どアクセスされずデータ更新が滅多に生じないことである「ARCHIVE」。
【0055】
以下、アクセス特性「KKK」を有するページを「KKKページ」と言う。本実施例では、ストレージプール201における各ページ207は、HOTページ207A、NORMALページ207B、COLDページ207C及びARCHIVEページ207Dのいずれかである。また、本実施例では、ページ207毎のI/O情報は、後述のページアクセス管理サブテーブル1000(図10参照)のエントリにおけるアクセス状況情報(情報1003~1008)を含んだ情報である。すなわち、ページ207のアクセス特性は、ページ207のアクセス状況情報に基づき決定される。
【0056】
ストレージ装置100は、ページ207毎のアクセス特性に応じた分類を行うことで、ページ207毎のアクセス特性に応じ、ストレージプール201を構成するプールVOL202の性能特性に対応する最適なページ割当を行う。このような制御のことは一般的に「ストレージティアリング」と呼ばれる。ストレージティアリングは、例えば次の通りである。すなわち、1つのストレージ装置100内にアクセス性能(及びデータ格納コスト)が異なるSSDやHDDなどのドライブ118が混載されている場合、プールVOL202毎にアクセス性能(及びデータ格納コスト)が異なる。このため、LDEV200に割り当てられているページ207内のデータを、ホスト104の当該LDEV200に対するデータアクセスの特性に最適なアクセス性能を持つドライブ118に基づくページ207に移動することで、ストレージ装置100においてデータ格納効率を向上させることができる。
【0057】
ここで、例えば、ホスト104Aがランサムウェアに感染し、LDEV200Aのデータの暗号化(改ざん)が行われるケースを考える。ランサムウェアはLDEV200Aに格納されているデータを暗号化するため、LDEV200Aに割り当てられているページ207に対してデータ更新が生じる。このとき、ランサムウェアはLDEV200Aに割り当てられている全てのページ207を対象に暗号化を行うため、例えば、ARCHIVEページ207D(データ更新が滅多に生じないページ207)に対してもデータ更新が行われる。
【0058】
そこで、ランサムウェア攻撃検知プログラム205は、一定期間中にストレージプール201内のLDEV200Aに割り当てられている複数のARCHIVEページ207Dに対してデータ更新が発生した場合を検知することで、ランサムウェア攻撃(データ改ざん)の可能性があるI/Oアクセスを検知する。
【0059】
また、ランサムウェアは複数のホスト104に同時期に感染することが多い。このため、例えばホスト104Aの他にホスト104Bやホスト104CからアクセスされるLDEV200BやLDEV200Cに割り当てられているARCHIVEページ207Dに対しても同時期にデータ更新が発生する可能性が高いと考えられる。そこで、ランサムウェア攻撃検知プログラム205は、ある一定期間の間にストレージプール201内に存在するARCHIVEページ207Dに対するデータ更新頻度が、平常時と比較して高くなったことを、ランサムウェア攻撃の可能性と検知する。
【0060】
ランサムウェア攻撃検知プログラム205は、ランサムウェア攻撃(データ改ざん)の可能性を検知すると、ランサムウェア対策の一例として、管理ネットワーク109と管理システム105を通じてストレージ管理者に異常検知情報(異常検知を表す情報)を通知する。また、データ保護制御プログラム204は、ランサムウェア対策の一例として、格納データの防護処置を行う。この格納データの防護処置は、例えば、各LDEV200のバックアップやスナップショットの取得や、取得された各LDEV200のバックアップやスナップショットの中からランサムウェアの可能性のある検知前のリストアポイントを作成し、容易にデータリストアを可能にすることでもよい。また、例えば、ランサムウェアの中にはリストアポイントやバックアップの削除操作をストレージ装置100に行うものがあり、格納データの防護処置は、これらの操作を一時的に拒否することで、バックアップやスナップショットが削除されてしまうことを防止することでもよい。また、例えば、格納データの防護処置は、ランサムウェア攻撃の可能性のある挙動を検知した後で生じるホストからのデータ更新アクセス(ライトI/O)を、Copy-on-Write(CoW)と呼ばれるI/Oモード(更新前の格納データを一度他の領域に退避させてから格納データの更新を行うI/Oモード)に変更し、それによりランサムウェアによるデータ改ざんを防ぐことでもよい。
【0061】
以上のようにして、ストレージ装置100においてランサムウェア攻撃の可能性を検知し、格納データの防護処置を行うことで、ランサムウェアの攻撃による被害の軽減、復旧の迅速化を図ることが期待できる。なお、閾値決定プログラム206は、後述するように、所定の条件を満たすARCHIVEページ207Dの数の閾値を決定する。
【0062】
図3は、ランサムウェア攻撃検知機能が管理システム105に備えられた例を示す。
【0063】
ランサムウェア攻撃検知プログラム205、データ保護制御プログラム204及び閾値決定プログラム206が、ストレージ装置100の外部に設置された管理システム105に実装され、管理システム105のプロセッサにより実行される。
【0064】
具体的には、ストレージ装置100内のページアクセス監視プログラム203が定期的に管理ネットワーク109を通じて管理システム105のランサムウェア攻撃検知プログラム205に対してストレージプール201の各ページ207のI/O情報300を送信する。
【0065】
管理システム105におけるランサムウェア攻撃検知プログラム205は、受信したI/O情報300を基にストレージプール201内の各ページ207について、ARCHIVEページ207Dに対してもデータ更新が生じるI/Oアクセスを検知する。ランサムウェア攻撃検知プログラム205は、一定期間中にストレージプール201内の複数のARCHIVEページ207Dに対してデータ更新が発生することを検知した場合は、ランサムウェア攻撃の可能性を検知し、ストレージ管理者に異常検知情報を通知する。
【0066】
また、管理システム105におけるデータ保護制御プログラム204は、ストレージ装置100に対し、管理ネットワーク109を通じて防護指示を出す。この防護指示に応答して、格納データの防護処置を、ストレージ装置100が行う。
【0067】
以上のようにして、ストレージ装置100におけるランサムウェア攻撃の可能性を検知し、格納データの防護処置を行うことで、ランサムウェアの攻撃による被害の軽減、復旧の迅速化を図ることが期待できる。
【0068】
以下、本実施例を詳細に説明する。なお、以下の説明では、図2に示した例が採用されているものとする。
【0069】
図4は、ストレージ装置100における管理情報の構成例を示す。
【0070】
管理情報102は、ストレージ装置100内のストレージコントローラ103内の制御プログラム101が利用する複数の管理テーブルで構成される。管理テーブルとして、例えば、LDEV200に関する情報を保持するLDEV管理テーブル401、LDEV200における領域のアドレスと割り当てられたページ207のアドレスの対応関係に関する情報を保持するアドレス管理テーブル404、ストレージプール201に関する情報を保持するプール管理テーブル400、ストレージプール201内のページ207を管理する情報を保持するページ管理テーブル403、プールVOL202に関する情報を保持するプールVOL管理テーブル402、及び、ページ207のアクセス状況に関する情報を保持するページアクセス管理テーブル405がある。
【0071】
図5は、LDEV管理テーブル401の構成例を示す。
【0072】
LDEV管理テーブル401は、LDEV200毎にエントリ(レコード)を有する。各エントリが格納する情報は、LDEV番号500、LDEV容量501、VOL種別502及びプール番号503である。
【0073】
LDEV番号500は、LDEV200の識別番号を表す。LDEV容量501は、LDEV200の容量を表す。VOL種別502は、LDEV200の種別(例えば、「RVOL」又は「TPVOL」)を表す。プール番号503は、LDEV200が関連付けられているストレージプール201の識別番号を表す。LDEV200には、当該LDEV200に対応したプール番号503が表すストレージプール201からページ207が割り当てられる。
【0074】
図6は、アドレス管理テーブル404の構成例を示す。
【0075】
アドレス管理テーブル404は、LDEV番号のリスト601と、LDEV番号毎のアドレス管理サブテーブル600とで構成される。アドレス管理サブテーブル600は、LDEV200の論理アドレス範囲毎にエントリを有する。各エントリが格納する情報は、先頭LBA602、プール番号604及び割当てページ番号603である。
【0076】
先頭LBA602は、当該論理アドレス範囲の先頭LBAを表す。プール番号604は、当該論理アドレス範囲に割り当てられたページ207を有するストレージプール201の識別番号を表す。割当てページ番号603は、割り当てられたページ207の識別番号を表す。
【0077】
図7は、プール管理テーブル400の構成例を示す。
【0078】
プール管理テーブル400は、ストレージプール201毎にエントリを有する。各エントリが格納する情報は、プール番号703、プール容量700、プール割当容量701及びプール使用容量702である。
【0079】
プール番号703は、ストレージプール201の識別番号を表す。プール容量700は、ストレージプール201の定義された容量(具体的には、ストレージプール201を構成する1以上のプールVOL202にそれぞれ対応した1以上のVOL容量の合計)を表す。プール割当容量701は、ストレージプール201に関連づけられた1以上のLDEV200に割り当てられた実容量(具体的には、1以上のLDEV200に割り当てられている全ページ207の総容量)を表す。プール使用容量702は、ストレージプール201に格納されているデータの総量を表す。
【0080】
図8は、ページ管理テーブル403の構成例を示す。
【0081】
ページ管理テーブル403は、プール番号のリスト801と、プール番号毎のページ管理サブテーブル800とで構成される。ページ管理サブテーブル800は、ストレージプール201におけるページ207毎にエントリを有する。各エントリが格納する情報は、ページ番号802、割当状況804、アクセス特性806、プールVOL番号805及びプールVOL先頭LBA803である。
【0082】
ページ番号802は、ページ207の識別番号を表す。割当状況804は、当該ページ207の割当状況を表し、例えば、割当済みであれば「済」、未割り当てであれば「未」である。アクセス特性806は、当該ページ207のアクセス特性(具体的には、前述した「HOT」、「COLD」、「ARCHIVE」又は「NORMAL」)を表す。アクセス特性はページアクセス監視プログラム203によりホスト104からの一定期間のI/O状況に基づき決定される。プールVOL番号805は、当該ページ207を有するプールVOL202の識別番号を表す。プールVOL先頭LBA803は、当該ページ207の先頭LBAを表す。
【0083】
図9は、プールVOL管理テーブル402の構成例を示す。
【0084】
プールVOL管理テーブル402は、プール番号のリスト910と、プール番号毎のプールVOLサブテーブル900とを有する。プールVOLサブテーブル900は、プールVOL202毎にエントリを有する。各エントリが格納する情報は、プールVOL番号905、PDEV種別901及びプールVOL容量902である。
【0085】
プールVOL番号805は、プールVOL202の識別番号を表す。PDEV種別901は、プールVOL202の基になっているPDEV(本実施例ではドライブ118)の種別を表す。プールVOL容量902は、プールVOL202の容量を表す。
【0086】
図10は、ページアクセス管理テーブル405の構成例を示す。
【0087】
ページアクセス管理テーブル405は、ストレージプール201におけるページ207毎のアクセス状況に関する情報を保持するテーブルである。ページアクセス監視プログラム203が各ページ207のアクセス状況をモニタリングしテーブル405が更新される。
【0088】
ページアクセス管理テーブル405は、プール番号のリスト1010と、プール番号毎のページアクセス管理サブテーブル1000とを有する。ページアクセス管理サブテーブル1000は、ストレージプール201を構成するページ207毎にエントリを有する。各エントリが格納する情報は、ページ番号1002、タイムスタンプ1001、リードI/O回数1003、ライトI/O回数1004、シーケンシャルアクセス比率1005、ランダムアクセス比率1006、ライトデータ量1007及びリードデータ量1008である。
【0089】
ページ番号802は、ページ207の識別番号を表す。タイムスタンプ1001は、当該ページ207がアクセスされたタイミングを示すタイムスタンプを表す。リードI/O回数1003は、当該ページ207に対するリードI/Oの回数を表す。ライトI/O回数1004は、当該ページ207に対するライトI/Oの回数を表す。シーケンシャルアクセス比率1005は、当該ページ207に対するアクセス(I/O)のうち、シーケンシャルアクセスが行われた回数を表す。ランダムアクセス比率1006は、当該ページ207に対するアクセス(I/O)のうち、ランダムアクセスが行われた回数を表す。ライトデータ量1007は、当該ページ207にライトされたデータの量の累計を表す。リードデータ量1008は、当該ページ207からリードされたデータの量の累計を表す。
【0090】
図11は、ランサムウェア攻撃検知処理のフローの例を示す。
【0091】
ランサムウェア攻撃検知処理は、定期的に行われてもよいし、ページアクセス管理テーブル405が更新された等の所定のイベントに応じて行われてもよい。ランサムウェア攻撃検知処理は、LDEV200を指定したアクセス要求に応答したI/O処理と非同期の処理であるが、I/O処理と同期の処理でもよい。
【0092】
ステップ1101で、ランサムウェア攻撃検知プログラム205は、プール管理テーブル400を参照し、プール番号のリスト801から検知対象のストレージプール201のプール番号を選択する。「検知対象のストレージプール201」とは、更新されたページアクセス管理サブテーブル1000に対応したストレージプール201でもよいし、ラウンドロビン等の所定の順序のうちランサムウェア攻撃検知処理の順番となったストレージプール201でもよい。
【0093】
ステップ1102で、ランサムウェア攻撃検知プログラム205は、検知対象のストレージプール201に対応のページ管理サブテーブル800を参照し、アクセス特性806が“ARCHIVE”のページ番号802を全て抽出する。ランサムウェア攻撃検知プログラム205は、抽出したページ番号802のうち一のページ番号802を選択する。
【0094】
ステップ1103で、ランサムウェア攻撃検知プログラム205は、検知対象のストレージプール201に対応のページアクセス管理サブテーブル1000を参照し、ステップ1102(又はステップ1107)で選択したページ番号802に一致するページ番号1002を含んだエントリを取得する。
【0095】
ステップ1104で、ランサムウェア攻撃検知プログラム205は、ステップ1103で取得したエントリからタイムスタンプ1001を参照し、当該タイムスタンプ1001が表す時刻(例えば当該エントリに対応のページ207の最終更新時刻)が現在時刻から一定期間未満であるか(つまり閾値未満か)どうかをチェックする。このチェック結果が偽の場合、処理がステップ1107へ進む。一方、このチェック結果が真の場合、処理がステップ1105へ進む。
【0096】
ステップ1105で、ランサムウェア攻撃検知プログラム205は、ステップ1103で取得したエントリからライトI/O回数1004を参照し、当該ライトI/O回数1004が表すライト回数が閾値以上であるかどうかをチェックする。このチェック結果が真の場合、処理がステップ1106へ進む。一方、このチェック結果が偽の場合、処理がステップ1107へ進む。
【0097】
ステップ1106で、ランサムウェア攻撃検知プログラム205は、当該ページを検知処理の評価対象としてマークする。
【0098】
ステップ1107で、ランサムウェア攻撃検知プログラム205は、ステップ1102で抽出したページ番号802のうち次のページ番号802を選択する。
【0099】
ステップ1108で、ランサムウェア攻撃検知プログラム205は、ステップ1107で次のページ番号802を選択したかどうかをチェックする。このチェック結果が真の場合、処理がステップ1103へ戻る。このチェック結果が偽の場合、処理がステップ1109へ進む。
【0100】
ステップ1109で、ランサムウェア攻撃検知プログラム205は、ステップ1106で検知処理の評価対象としてマークされたページの数が閾値以上かどうかをチェックする。このチェック結果が真の場合、一定数以上のARCHIVEページ207Dに対して一定期間の間に集中してデータ更新が生じたということから(通常時にアクセスが生じない多数のARCHIVEページ207Dに対してデータ更新が生じていることから)、ランサムウェア攻撃を受けている可能性がある。この場合、処理がステップ1110へ進む。一方、このチェック結果が偽の場合、処理がステップ1111へ進む。
【0101】
ステップ1110で、ランサムウェア攻撃検知プログラム205は、管理システム105に対し異常検知情報を通知する。異常検知情報の通知は、格納データの防護処置の一例である。
【0102】
ステップ1111で、ランサムウェア攻撃検知プログラム205は、未処理の検知対象のストレージプール201があるかどうかチェックする。このチェック結果が真の場合、処理がステップ1101へ戻る。このチェック結果が偽の場合、処理が終了する。
【0103】
以上、一実施例を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施例のみに限定する趣旨ではない。本発明は他の形態でも実施することが可能である。
【0104】
なお、以上の説明を、例えば下記のように総括することができる。下記の総括は、上述の説明の補足説明や変形例の説明を含んでよい。
【0105】
ストレージ装置100が、1又は複数のLDEV200(1又は複数のホスト104に提供された1又は複数の論理ボリューム)のうちのいずれかのLDEV200を指定したアクセス要求をいずれかのホスト104から受け付け、当該アクセス要求に応答して、複数のページ207(1又は複数のLDEV200に割り当てられ得る複数の論理記憶領域)のうちの、当該LDEVのアクセス先の領域に割り当てられたページ207に対してアクセスを行うようになっている。例えば、下記が行われてよい。
・制御プログラム101が、アクセス要求で指定されたLDEV200に対応のアドレス管理サブテーブル600を参照し、LDEV200のうちのアクセス先領域にページ207が割り当てられているか否かを特定する。
・アクセス要求がライト要求でありページ207が割り当てられていない場合、制御プログラム101が、上記指定されたLDEV200に対応のプール番号を、LDEV管理テーブル401から特定し、特定されたプール番号に対応のページ管理サブテーブル800から未割当のページ(空きのページ)207を特定し、特定したページ207を、LDEV200におけるアクセス先領域に割り当てる。
・制御プログラム101が、割り当てられたページ207に対するアクセスを行う。また、制御プログラム101が、必要に応じて、プール管理テーブル400のうち、アクセスされたページ207を有するプールに対応のエントリを更新する。
・ページアクセス監視プログラム203が、アクセスされたページ207のアクセス状況(情報1001~1008の少なくとも一部)を更新する。
【0106】
ランサムウェア攻撃検知プログラム205が、複数のページ207の各々についてライト状況特性を表す情報を含んだ管理情報102を基に、一定期間の間に一定回数以上のライトが生じた低ライト頻度ページであるマーク対象ページを特定する。「低ライト頻度ページ」は、複数のページ207のうち、ライト状況特性に基づき比較的ライト頻度が低いと定義された低ライト頻度に該当するページである。ランサムウェア攻撃検知プログラム205が、マーク対象ページの数が閾値以上であるというランサムウェア攻撃の可能性の有無をチェックする。
【0107】
データ更新が通常生じない二以上のページに対してデータ更新が発生していることは、ランサムウェアによるデータ改ざんや誤ったデータ操作がされている可能性、つまり、ランサムウェア攻撃の可能性があり、その可能性を検知することができる。結果として、被害が大きくならないよう防護処置を講じることができ、以って、ランサムウェア攻撃の被害の影響を少なくすることができる。また、例えば、ランサムウェアは複数のホスト104に同時期に感染することが多いと考えられ、故に、複数のホストがアクセスする複数のLDEV200に割り当てられた複数の低ライト頻度ページに対しても同時期にデータ更新が発生する可能性が高いと考えられるが、ランサムウェア攻撃検知プログラム205は、ある一定期間の間にストレージプール201内に存在する低ライト頻度ページに対するデータ更新頻度が、平常時と比較して高くなったことを、ランサムウェア攻撃の可能性と検知することができる。
【0108】
なお、管理情報102が、ページ207毎に、ライトが発生する都度にライトの時刻を含んでもよいし、或る時刻からのライト回数を表す情報を含んでもよく、そのような管理情報102から、一定期間の間に一定回数以上のライトが生じた低ライト頻度ページの特定が可能である。また、「ライト状況特性」とは、ライト頻度を表す情報(例えば、或る時刻以降のライトI/O回数1004)と、アクセス特性806とのうちの少なくとも一つにより表されてよい。
【0109】
また、低ライト頻度ページの一例が、ARCHIVEページ207Dであるが、ARCHIVEページ207Dに代えてCOLDページ207Cといった他のアクセス特性のページも低ライト頻度ページの一例とされてもよい。
【0110】
上記チェックの結果が偽の場合、ランサムウェア対策として、下記のうちの少なくとも一つが行われてよい。これにより、ランサムウェア攻撃の被害の影響を少なくすることが期待できる。
(a)一定期間の間にライトが生じた低ライト頻度ページが割り当てられているLDEV200である対象LDEV200がデータのライト先であり、対象LDEV200に割り当てられているページ207におけるデータの更新のためのライトが生じる場合、更新前のデータを退避する(例えば、Copy-On-Write)。
(b)対象LDEV200のスナップショットを削除する指示を受けた場合に当該指示を拒否する。
(c)対象LDEV200にリモートコピー先のVOL(論理ボリューム)があり、且つ、対象LDEVに割り当てられているページ207内のデータがリモートコピー先VOLにリモートコピーされる場合、リモートコピー先VOLにおける更新前のデータを退避させる(例えば、ストレージ装置100のリモートコピー先のストレージ装置に当該退避を実行させる)か、或いは、リモートコピー先VOLのスナップショットを例えばリモートコピー先のストレージ装置に取得させてからリモートコピー先VOLにデータをコピーさせる。
(d)異常検知を表す情報である異常検知情報をストレージ管理者に通知する。
(e)対象のLDEV200の他に、対象LDEV200と同一グループ(典型的には同一ホストグループ)に属し対象LDEV200以外の1以上のLDEV200の各々についても、(a)乃至(d)のうちの少なくとも一つを行う。
【0111】
なお、少なくとも(a)が行われてよい。また、(a)、(b)及び(c)は、データ保護制御プログラム204により行われてよい。(d)は、ランサムウェア攻撃検知プログラム205により行われてよい。(e)について、対象LDEV200と同一グループ(典型的には同一ホストグループ)に属し対象LDEV200以外の1以上のLDEV200は、管理情報から特定されてよい。例えば、データ保護制御プログラム204が、自律的に格納データの保護を行うことで、対象LDEV200のバックアップデータ、リストアポイント及びスナップショットの少なくとも一つを作成してよい。
【0112】
管理情報102は、複数のページ207の各々についてアクセス状況を表す情報を含んだページアクセス管理テーブル405(ページアクセス管理情報の一例)と、複数のページ207の各々についてアクセス特性を表す情報を含んだページ管理テーブル403(ページ管理情報の一例)とを含んでよい。複数のページ207の各々について、当該ページ207のアクセス状況は、当該ページに対するライトの回数(例えば、或る期間でのライト回数)を含んでよい。複数のページ207の各々について、当該ページのアクセス特性は、ページのライト頻度に基づき決定された特性であってよい。ページアクセス監視プログラム203は、ページ207に対するアクセスの都度に、ページアクセス管理テーブル405が表す、当該ページ207に対応のアクセス状況を更新するようになっていてよい。ランサムウェア攻撃検知プログラム205が、複数のページ207の各々について、当該ページ207のアクセス状況の更新よりも低い頻度で、当該ページのアクセス状況におけるライト頻度を基に、ページ管理テーブル403が表す、当該ページのアクセス特性806を更新してよい。このように、アクセス特性806を、アクセス状況の更新に追従させることができる。
【0113】
複数のページ207は、アクセス性能が異なる複数の記憶デバイスグループに基づくページ207である。複数のページ207の各々は、複数の記憶デバイスグループのいずれかの記憶デバイスグループに基づいてよい。各記憶デバイスグループは、RAIDグループでよく、1以上の記憶デバイスでよい。制御プログラム101は、ストレージティアリングを行ってよい。ストレージティアリングは、ページ207のアクセス状況が当該ページの基になっている記憶デバイスグループ(例えば、当該記憶デバイスグループに基づくプールVOL202)のアクセス性能に適さない場合、当該ページ207内のデータを、当該ページ207のアクセス状況に適したアクセス性能を持つ記憶デバイスグループに基づくページ(例えば、当該記憶デバイスグループに基づくプールVOL202内のページ)に移動することを含んでよい。ストレージティアリングでは、例えば、制御プログラム101は、ページアクセス管理テーブル405やプールVOL管理テーブル402を参照することで、ページ207のアクセス状況に適したアクセス性能を持つプールVOL202内のページを特定する。このため、ストレージティアリングで使用される情報の少なくとも一部をランサムウェア攻撃の可能性の検知に有効利用することができる。
【0114】
閾値決定プログラム206は、マーク対象ページの数の閾値を、例えば、低ライト頻度ページの一定期間の間のライト回数と低ライト頻度ページの数との統計に基づき決定してよい。統計の例として、低ライト頻度ページの数と一定期間の間のライト回数との関係に基づく分布(例えば、横軸が、一定期間の間のライト回数であり、縦軸が、低ライト頻度ページの数に基づく確率密度である分布)でよい。一定期間の間にライト(更新)が行われた低ライト頻度ページの数が全体のX%に入るといった条件を基に、マーク対象ページの閾値が決定されてよい。またこの統計処理は、前述した方法の他にも、例えば機械学習(Machine Learning)アルゴリズムを利用し、通常運用時の前記分布を学習して利用する手法を用いてよい。これにより、閾値が最適となり、以って、ランサムウェア攻撃の可能性の検知精度の向上が期待できる。例えば、閾値決定プログラム206は、機械学習モデル(具体的には、低ライト頻度ページのライト回数と低ライト頻度ページの数とを入力としマーク対象ページの閾値を出力とした機械学習モデル)に、低ライト頻度ページの一定期間の間のライト回数と低ライト頻度ページの数とを入力することにより、マーク対象ページの数の閾値を決定してよい。機械学習モデルは、ニューラルネットワークでもよいしその他の機械学習モデルでもよい。
【0115】
ランサムウェア攻撃検知プログラム205、データ保護制御プログラム204及び閾値決定プログラム206の各々は、ストレージ装置100にあってもよいし管理システム105にあってもよい。管理システム105が少なくともランサムウェア攻撃検知プログラム205を有する場合、管理情報102の少なくとも一部(例えば、ページ管理テーブル403及びページアクセス管理テーブル405が有する情報)が、管理システム105のメモリに格納されてよく、当該情報を基に、ランサムウェア攻撃検知プログラム205が、ランサムウェア攻撃の可能性の有無のチェックを行ったり、閾値決定プログラム206が、マーク対象ページの数の閾値を決定したりすることができる。
【0116】
また、ページ207は、ストレージプール201における領域に代えて、LDEV200(例えばRVOL)における領域でもよい。
【符号の説明】
【0117】
100 ストレージ装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11