(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-18
(45)【発行日】2024-04-26
(54)【発明の名称】オンデマンドのファイル・システムのロックダウンおよび自動修復機能を伴う自動ランサムウェア検出
(51)【国際特許分類】
G06F 21/55 20130101AFI20240419BHJP
【FI】
G06F21/55 320
(21)【出願番号】P 2022507554
(86)(22)【出願日】2020-07-10
(86)【国際出願番号】 IB2020056502
(87)【国際公開番号】W WO2021028740
(87)【国際公開日】2021-02-18
【審査請求日】2022-12-23
(32)【優先日】2019-08-13
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】ミュラー-ヴィッケ、ドミニク
(72)【発明者】
【氏名】ベンダー、ステファン
(72)【発明者】
【氏名】シュレイバー、トーマス
(72)【発明者】
【氏名】ベーナー、カイ
【審査官】宮司 卓佳
(56)【参考文献】
【文献】米国特許出願公開第2019/0108340(US,A1)
【文献】米国特許出願公開第2019/0236274(US,A1)
【文献】特開2018-147127(JP,A)
【文献】特開2018-128910(JP,A)
【文献】特表2019-505919(JP,A)
【文献】米国特許出願公開第2019/0087572(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/55
(57)【特許請求の範囲】
【請求項1】
ランサムウェア検出および管理システムであって、
コンピュータ・ノードと、
ファイル・システムと、
複数のディスク・ストレージ・コンポーネントと、
バックアップ・クライアントと、
バックエンド・サーバと、
階層型ストレージ・クライアントであって、
ファイル・システム内のファイルのファイル統計情報を収集することと、
収集されたファイル統計情報に基づいて影響を受けたファイルを識別することと、
識別された影響を受けたファイルに応答して、前記ファイル・システムへのアクセスをロックダウンすることと、
調整処理を取り消すことと、
前記影響を受けたファイルを修復することと、
前記ファイル・システムへのアクセスをロック解除することとを実行するように構成された前記階層型ストレージ・クライアントとを備え、
前記収集されたファイル統計情報が、
収集されたファイル・アクセス統計情報と、
収集されたファイルの重複排除率および圧縮率とを含む、
ランサムウェア検出および管理システム。
【請求項2】
ランサムウェア検出および管理システムであって、
コンピュータ・ノードと、
ファイル・システムと、
複数のディスク・ストレージ・コンポーネントと、
バックアップ・クライアントと、
バックエンド・サーバと、
階層型ストレージ・クライアントであって、
ファイル・システム内のファイルのファイル統計情報を収集することと、
収集されたファイル統計情報に基づいて影響を受けたファイルを識別することと、
識別された影響を受けたファイルに応答して、前記ファイル・システムへのアクセスをロックダウンすることと、
調整処理を取り消すことと、
前記影響を受けたファイルを修復することと、
前記ファイル・システムへのアクセスをロック解除することとを実行するように構成された前記階層型ストレージ・クライアントとを備え、
前記階層型ストレージ・クライアントが、
観察および制御モジュール(OCM)と、
観察および制御モジュール・テーブル(OCMt)と、
拡張移行モジュール(EMM)と、
拡張ファイル・システム調整モジュール(EFRM)と、
拡張再呼び出しモジュール(ERM)とをさらに備え、
前記OCMが、
前記ファイル・システムに登録することと、
新しいファイルが作成されたか、または前記ファイル・システム内の既存のファイルが変更されたときに、前記ファイル・システムから通知を受信することと、
前記新しいファイルまたは前記変更されたファイルを前記EMMに通知することと、
前記新しいファイルまたは前記変更されたファイルの事前移行を開始することとを実行するように構成される、システム。
【請求項3】
前記OCMが、
書き込みアクセスが前記新しいファイルまたは前記既存のファイルに発生したときに通知を受信するために、前記新しいファイルまたは前記既存のファイルでの変更追跡プロセスを登録するようにさらに構成される、請求項
2に記載のシステム。
【請求項4】
前記OCMが、
前記ファイルへの書き込みアクセスの通知を受信することに応答して、前記ファイルに関連付けられたデータを前記OCMtに追加するようにさらに構成される、請求項
3に記載のシステム。
【請求項5】
前記ファイルに関連付けられた前記データが、
前記ファイルのファイル名と、
前記ファイルに対するアクセスの時間とを含む、請求項
4に記載のシステム。
【請求項6】
前記OCMが、
前記ファイルへの書き込みアクセスの第2の通知またはその後の通知に応答して、前記ファイルに関連付けられた第2のデータまたはその後のデータを前記OCMtに追加するようにさらに構成される、請求項
4に記載のシステム。
【請求項7】
ランサムウェア検出および管理システムであって、
コンピュータ・ノードと、
ファイル・システムと、
複数のディスク・ストレージ・コンポーネントと、
バックアップ・クライアントと、
バックエンド・サーバと、
階層型ストレージ・クライアントであって、
ファイル・システム内のファイルのファイル統計情報を収集することと、
収集されたファイル統計情報に基づいて影響を受けたファイルを識別することと、
識別された影響を受けたファイルに応答して、前記ファイル・システムへのアクセスをロックダウンすることと、
調整処理を取り消すことと、
前記影響を受けたファイルを修復することと、
前記ファイル・システムへのアクセスをロック解除することとを実行するように構成された前記階層型ストレージ・クライアントとを備え、
前記階層型ストレージ・クライアントが、
観察および制御モジュール(OCM)と、
観察および制御モジュール・テーブル(OCMt)と、
拡張移行モジュール(EMM)と、
拡張ファイル・システム調整モジュール(EFRM)と、
拡張再呼び出しモジュール(ERM)とをさらに備え、
前記EMMが、
前記ファイルの事前移行中に前記ファイルの重複排除率および圧縮率を計算することと、
前記重複排除率および圧縮率を前記OCMに知らせることと、
前記ファイルの前記重複排除率および圧縮率を前記OCMt内の前記ファイルのエントリに入力することとを実行するように構成される、システム。
【請求項8】
前記EMMが、ファイルが移行されるときに前記重複排除率および圧縮率を収集するようにさらに構成される、請求項
7に記載のシステム。
【請求項9】
ランサムウェア検出および管理システムであって、
コンピュータ・ノードと、
ファイル・システムと、
複数のディスク・ストレージ・コンポーネントと、
バックアップ・クライアントと、
バックエンド・サーバと、
階層型ストレージ・クライアントであって、
ファイル・システム内のファイルのファイル統計情報を収集することと、
収集されたファイル統計情報に基づいて影響を受けたファイルを識別することと、
識別された影響を受けたファイルに応答して、前記ファイル・システムへのアクセスをロックダウンすることと、
調整処理を取り消すことと、
前記影響を受けたファイルを修復することと、
前記ファイル・システムへのアクセスをロック解除することとを実行するように構成された前記階層型ストレージ・クライアントとを備え、
前記階層型ストレージ・クライアントが、
観察および制御モジュール(OCM)と、
観察および制御モジュール・テーブル(OCMt)と、
拡張移行モジュール(EMM)と、
拡張ファイル・システム調整モジュール(EFRM)と、
拡張再呼び出しモジュール(ERM)とをさらに備え、
前記EMMが、
第1の事前移行時にファイルのブロック・レベルのハッシュ・マップを生成することと、
前記ファイルの第2の事前移行時に前記ファイルの第2のブロック・レベルのハッシュ・マップを生成することと、
前記ブロック・レベルのハッシュ・マップを前記第2のブロック・レベルのハッシュ・マップと比較することと、
前記比較されたブロック・レベルのハッシュ・マップの既定の部分が一致しないということを決定することと、
前記既定の部分を超えることに応答して、影響を受けたとして前記ファイルを識別することとを実行するようにさらに構成され、
前記OCMが、前記ファイルの前記ブロック・レベルのハッシュ・マップを前記OCMtに格納するようにさらに構成されることをさらに含む、システム。
【請求項10】
ランサムウェア検出および管理システムであって、
コンピュータ・ノードと、
ファイル・システムと、
複数のディスク・ストレージ・コンポーネントと、
バックアップ・クライアントと、
バックエンド・サーバと、
階層型ストレージ・クライアントであって、
ファイル・システム内のファイルのファイル統計情報を収集することと、
収集されたファイル統計情報に基づいて影響を受けたファイルを識別することと、
識別された影響を受けたファイルに応答して、前記ファイル・システムへのアクセスをロックダウンすることと、
調整処理を取り消すことと、
前記影響を受けたファイルを修復することと、
前記ファイル・システムへのアクセスをロック解除することとを実行するように構成された前記階層型ストレージ・クライアントとを備え、
前記階層型ストレージ・クライアントが、
観察および制御モジュール(OCM)と、
観察および制御モジュール・テーブル(OCMt)と、
拡張移行モジュール(EMM)と、
拡張ファイル・システム調整モジュール(EFRM)と、
拡張再呼び出しモジュール(ERM)とをさらに備え、
前記OCMが、異常な量のファイル書き込みアクセスが前記ファイル・システムに発生したかどうかを判定するようにさらに構成され、
前記OCMが、
前記OCMtをトラバースすることと、
前の観察サイクル内でアクセスされた前記テーブル内のファイルごとに、前記OCMtからの各ファイルの関連する重複排除率および圧縮率のエントリを最新の比率として読み取ることと、
ファイルごとに、前記関連するファイルの現在の重複排除率および圧縮率を現在の比率として計算することと、
ファイルごとの前記現在の比率を、前記前の観察サイクルからの対応するファイルの最新の比率と比較することと、
前記現在の比率が前記最新の比率よりも低い場合に、前記関連するファイルに異常なファイル・アクセスが存在するということを決定することとを実行するようにさらに構成される、システム。
【請求項11】
ランサムウェア検出および管理システムであって、
コンピュータ・ノードと、
ファイル・システムと、
複数のディスク・ストレージ・コンポーネントと、
バックアップ・クライアントと、
バックエンド・サーバと、
階層型ストレージ・クライアントであって、
ファイル・システム内のファイルのファイル統計情報を収集することと、
収集されたファイル統計情報に基づいて影響を受けたファイルを識別することと、
識別された影響を受けたファイルに応答して、前記ファイル・システムへのアクセスをロックダウンすることと、
調整処理を取り消すことと、
前記影響を受けたファイルを修復することと、
前記ファイル・システムへのアクセスをロック解除することとを実行するように構成された前記階層型ストレージ・クライアントとを備え、
前記階層型ストレージ・クライアントが、
観察および制御モジュール(OCM)と、
観察および制御モジュール・テーブル(OCMt)と、
拡張移行モジュール(EMM)と、
拡張ファイル・システム調整モジュール(EFRM)と、
拡張再呼び出しモジュール(ERM)とをさらに備え、
前記OCMが、前記ファイル・システム内の前記ファイルへの容認される書き込みアクセスの水準を定義するようにさらに構成され、
前記OCMが、
操作および制御モジュールがランサムウェア攻撃をチェックする観察間隔を定義することと、
既定の数の観察間隔にわたって前記ファイル・システム内の書き込まれたファイルの平均量を計算することと、
前記平均量の分布を計算することと、
現在の観察間隔の間に書き込まれたファイルの量を計算することと、
前記現在の観察間隔の間に書き込まれた前記ファイルの量を計算された平均値と比較することと、
前記現在の観察間隔の間に書き込まれた前記ファイルの量が、前記計算された平均値と比較して、既定の変化率を超えているかどうかを判定することと、
前記既定の変化率を超えている場合に、
前記OCMtをトラバースして、前の観察間隔内で変更されたすべてのファイルを識別することと、
変更されたファイルごとに、前記ファイル全体が変更されたかどうか、および重複排除率および圧縮率が減少したかどうかを判定することと、
肯定的であるということが決定された場合に、前記ファイルが影響を受けたファイルであるということを決定することとを実行するようにさらに構成される、システム。
【請求項12】
ランサムウェア検出および管理システムであって、
コンピュータ・ノードと、
ファイル・システムと、
複数のディスク・ストレージ・コンポーネントと、
バックアップ・クライアントと、
バックエンド・サーバと、
階層型ストレージ・クライアントであって、
ファイル・システム内のファイルのファイル統計情報を収集することと、
収集されたファイル統計情報に基づいて影響を受けたファイルを識別することと、
識別された影響を受けたファイルに応答して、前記ファイル・システムへのアクセスをロックダウンすることと、
調整処理を取り消すことと、
前記影響を受けたファイルを修復することと、
前記ファイル・システムへのアクセスをロック解除することとを実行するように構成された前記階層型ストレージ・クライアントとを備え、
前記階層型ストレージ・クライアントが、
観察および制御モジュール(OCM)と、
観察および制御モジュール・テーブル(OCMt)と、
拡張移行モジュール(EMM)と、
拡張ファイル・システム調整モジュール(EFRM)と、
拡張再呼び出しモジュール(ERM)とをさらに備え、
前記OCMが、
前記OCMtをトラバースして、しきい値数のファイルが影響を受けたファイルとしてマーク付けされたかどうかを判定することと、
前記ファイル・システムへのさらなる書き込みアクセスを遮断することとを実行するようにさらに構成され、
前記EMMが、前記OCMによる前記遮断の通知に応答して、すべての移行処理を停止するように構成され、
前記EFRMが、前記OCMによる前記遮断の通知に応答して、すべての調整処理を停止するように構成される、システム。
【請求項13】
ランサムウェア検出および管理システムであって、
コンピュータ・ノードと、
ファイル・システムと、
複数のディスク・ストレージ・コンポーネントと、
バックアップ・クライアントと、
バックエンド・サーバと、
階層型ストレージ・クライアントであって、
ファイル・システム内のファイルのファイル統計情報を収集することと、
収集されたファイル統計情報に基づいて影響を受けたファイルを識別することと、
識別された影響を受けたファイルに応答して、前記ファイル・システムへのアクセスをロックダウンすることと、
調整処理を取り消すことと、
前記影響を受けたファイルを修復することと、
前記ファイル・システムへのアクセスをロック解除することとを実行するように構成された前記階層型ストレージ・クライアントとを備え、
前記階層型ストレージ・クライアントが、
観察および制御モジュール(OCM)と、
観察および制御モジュール・テーブル(OCMt)と、
拡張移行モジュール(EMM)と、
拡張ファイル・システム調整モジュール(EFRM)と、
拡張再呼び出しモジュール(ERM)とをさらに備え、
前記OCMが、
前記OCMtをトラバースして、影響を受けたファイルとしてマーク付けされた各ファイルを識別することと、
前記影響を受けたファイルを隔離フォルダに移動することと、
前記影響を受けたファイルの現在のバージョンに関連付けられたタイムスタンプより前の移行タイムスタンプを有しているストレージ・サーバから、前記影響を受けたファイルの最新バージョンを復元することとを実行するようにさらに構成される、システム。
【請求項14】
ランサムウェア検出および管理システムであって、
コンピュータ・ノードと、
ファイル・システムと、
複数のディスク・ストレージ・コンポーネントと、
バックアップ・クライアントと、
バックエンド・サーバと、
階層型ストレージ・クライアントであって、
ファイル・システム内のファイルのファイル統計情報を収集することと、
収集されたファイル統計情報に基づいて影響を受けたファイルを識別することと、
識別された影響を受けたファイルに応答して、前記ファイル・システムへのアクセスをロックダウンすることと、
調整処理を取り消すことと、
前記影響を受けたファイルを修復することと、
前記ファイル・システムへのアクセスをロック解除することとを実行するように構成された前記階層型ストレージ・クライアントとを備え、
前記階層型ストレージ・クライアントが、
観察および制御モジュール(OCM)と、
観察および制御モジュール・テーブル(OCMt)と、
拡張移行モジュール(EMM)と、
拡張ファイル・システム調整モジュール(EFRM)と、
拡張再呼び出しモジュール(ERM)とをさらに備え、
前記OCMが、
前記OCMtをトラバースして、影響を受けたファイルとしてマーク付けされた各ファイルを識別することと、
前記影響を受けたファイルのスタブを作成することと、
前記影響を受けたファイルのスタブ・バージョンを、前記影響を受けたファイルの現在のバージョンに関連付けられたタイムスタンプより前に移行されたストレージ・サーバ内の前記影響を受けたファイルのバージョンにリンクすることとを実行するようにさらに構成される、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ファイル・システムの保護に関連しており、より詳細には、ファイル・システムに対するマルウェア攻撃またはランサムウェア攻撃を検出して対応することに関連している。
【背景技術】
【0002】
ランサムウェアは、身代金が払われなければ被害者のデータを公開するか、またはデータへのアクセスを永久に遮断すると脅迫する、暗号ウイルス学からのマルウェアの一種である。単純なランサムウェアは、知識が豊富な人が無効にすることが難しくない方法で、システムをロックすることがある。しかし、より高度なマルウェアは、暗号化ウイルス恐喝と呼ばれる技術を使用し、この技術では、マルウェアが被害者のファイルを暗号化してアクセスできないようにし、それらのファイルを復号するための身代金の支払いを要求する。適切に実装された暗号化ウイルス恐喝攻撃では、復号鍵なしでファイルを回復することは、解決困難な問題である。
【0003】
ランサムウェア攻撃は、通常、本物のファイルを装ったトロイの木馬を使用して実行され、ユーザは、だまされてトロイの木馬をダウンロードするか、または電子メールの添付ファイルとして届いたときに、トロイの木馬を開いてしまう。しかし、一部のバージョンは、ユーザの操作なしでコンピュータ間を移動することができる。
【0004】
現在の解決策は、ファイル・システム全体または少なくともファイル・システムの大部分(複数のディレクトリ)が暗号化された後に、初めてランサムウェア攻撃を検出する。ランサムウェア攻撃から影響を受けたファイルを修復するには、ファイル・システムの完全な復元が実行されなければならない。通常、システムの完全な復元は、使用可能な場合、バックアップを基にする。しかし、このような復元は、多くの時間がかかり、影響を受けたファイル・システムの運用を停止する。最悪の場合、ユーザは、バックアップを持っていないか、または暗号化されたファイルがすでにバックアップされており、すべてのファイルを失う。あるいはユーザは、ファイルを取り戻すために、ランサムウェア攻撃者に支払うことを余儀なくされる。
【発明の概要】
【0005】
本開示の実施形態によれば、ランサムウェア検出および管理システムが開示される。このシステムの実施形態は、コンピュータ・ノード、ファイル・システム、複数のディスク・ストレージ・コンポーネント、バックアップ・クライアント、および階層型ストレージ・クライアントを含む。階層型ストレージ・クライアントは、ファイル・システム内のファイルのファイル統計情報を収集することと、ファイルの収集されたファイル統計情報に基づいて影響を受けたファイルを識別することと、識別された影響を受けたファイルに応答して、ファイル・システムへのアクセスをロックダウンすることと、調整処理を取り消すことと、影響を受けたファイルを修復することと、ファイル・システムへのアクセスをロック解除することとを実行するように構成される。一部の実施形態では、収集されたファイル統計情報は、収集されたファイル・アクセス統計情報と、収集されたファイルの重複排除率および圧縮率とを含む。一部の実施形態では、階層型ストレージ・クライアントは、観察および制御モジュール(OCM:observation and control module)、観察および制御モジュール・テーブル(OCMt:observation and control module table)、拡張移行モジュール(EMM:enhanced migration module)、拡張ファイル・システム調整モジュール(EFRM:enhanced file system reconciliation module)、および拡張再呼び出しモジュール(ERM:enhanced recall module)をさらに備える。実施形態では、OCMは、ファイル・システムに登録することと、新しいファイルが作成されたか、またはファイル・システム内の既存のファイルが変更されたときに、ファイル・システムから通知を受信することと、新しいファイルまたは変更されたファイルをEMMに通知することと、新しいファイルまたは変更されたファイルの事前移行を開始することとを実行するように構成される。一部の実施形態では、EMMは、ファイルの事前移行中にファイルの重複排除率および圧縮率を計算することと、重複排除率および圧縮率をOCMに知らせることと、ファイルの重複排除率および圧縮率をOCMt内のファイルのエントリに入力することとを実行するように構成される。一部の実施形態では、EMMは、ファイルが移行されるときに重複排除率および圧縮率を収集するようにさらに構成される。一部の実施形態では、EMMは、第1の事前移行時にファイルのブロック・レベルのハッシュ・マップを生成することと、ファイルの第2の事前移行時にファイルの第2のブロック・レベルのハッシュ・マップを生成することと、ブロック・レベルのハッシュ・マップを第2のブロック・レベルのハッシュ・マップと比較することと、比較されたブロック・レベルのハッシュ・マップの既定の部分が一致しないということを決定することと、既定の部分を超えることに応答して、影響を受けたとしてファイルを識別することとを実行するように、さらに構成される。一部の実施形態では、OCMは、ファイルのブロック・レベルのハッシュ・マップをOCMtに格納するようにさらに構成される。一部の実施形態では、OCMは、異常な量のファイル書き込みアクセスがファイル・システムに発生したかどうかを判定するようにさらに構成される。一部の実施形態では、OCMは、ファイル・システム内のファイルへの容認される書き込みアクセスの水準(watermark)を定義するようにさらに構成される。
【0006】
本開示の実施形態によれば、ランサムウェアを検出するための方法が開示される。この方法は、ファイル・システム内のファイルのファイル統計情報を収集することと、収集されたファイル統計情報に基づいて影響を受けたファイルを識別することと、影響を受けたファイルを識別することに応答して、ファイル・システムへのアクセスをロックダウンすることと、調整処理を取り消すことと、影響を受けたファイルを修復することと、ファイル・システムへのアクセスをロック解除することとを含む。一部の実施形態では、ファイル統計情報を収集することは、ファイル・アクセス統計情報を収集することと、ファイルの重複排除率および圧縮率を収集することとを含む。一部の実施形態では、ファイル・アクセス統計情報を収集することは、観察および制御モジュール(OCM)をファイル・システムに登録することと、新しいファイルが作成されたか、またはファイル・システム内の既存のファイルが変更されたときに、OCMに通知することと、OCMによって、新しいファイルまたは変更されたファイルを拡張移行モジュールに通知することと、新しいファイルまたは変更されたファイルの事前移行を開始することとを含む。一部の実施形態では、この方法は、OCMによって、書き込みアクセスが新しいファイルまたは既存のファイルに発生したときの通知のために、新しいファイルまたは既存のファイルでの変更追跡プロセスを登録することを含む。一部の実施形態では、この方法は、書き込みアクセスの通知を受信することと、ファイルに関連付けられたデータを観察および制御モジュール・テーブル(OCMt)に追加することとを含む。一部の実施形態では、この方法は、ファイルへの第2の書き込みアクセスおよびその後の書き込みアクセスの通知を受信することと、ファイルに関連付けられたデータをOCMtに追加することとを含む。一部の実施形態では、ファイルの重複排除率および圧縮率を収集することは、拡張移行モジュール(EMM)によって、ファイルの事前移行中にファイルの重複排除率および圧縮率を計算することと、EMMによって、ファイルの重複排除率および圧縮率をOCMに知らせることと、ファイルの重複排除率および圧縮率を観察および制御モジュール・テーブル(OCMt)内のファイルのエントリに入力することとを含む。
【0007】
一部の実施形態では、影響を受けたファイルを識別することは、ファイルの第1の事前移行時にファイルのブロック・レベルのハッシュ・マップを生成して、ファイルのブロック・レベルのハッシュ・マップを観察および制御モジュール・テーブル(OCMTt)に格納することと、ファイルの第2の事前移行時にファイルの第2のブロック・レベルのハッシュ・マップを生成することと、ブロック・レベルのハッシュ・マップを第2のブロック・レベルのハッシュ・マップと比較し、比較されたブロック・レベルのハッシュ・マップの既定の部分が一致しないということを決定することと、決定することに応答して、影響を受けたとしてファイルを識別することとを含む。一部の実施形態では、影響を受けたファイルを識別することは、異常な量のファイル書き込みアクセスがファイル・システムに発生したかどうかを判定することを含む。一部の実施形態では、異常な量のファイル書き込みアクセスがファイル・システムに発生したかどうかを判定することは、観察および制御モジュール・テーブル(OCMt)をトラバースすることと、最新の観察サイクルに関してOCMt内のファイルの書き込みアクセスの合計を作成することと、最新の観察サイクルの前の観察サイクルに関してOCMt内のファイルの書き込みアクセスの合計を作成することとを含む。一部の実施形態では、異常な量のファイル書き込みアクセスがファイル・システムに発生したかどうかを判定することは、観察および制御モジュール・テーブル(OCMt)をトラバースすることと、前の観察サイクル内でアクセスされたテーブル内のファイルごとに、OCMtからの各ファイルの関連する重複排除率および圧縮率のエントリを最新の比率として読み取ることとを含む。ファイルごとに、関連するファイルの現在の重複排除率および圧縮率を現在の比率として計算し、ファイルごとの現在の比率を、前の観察サイクルからの対応するファイルの最新の比率と比較し、現在の比率が最新の比率よりも低い場合に、関連するファイルに異常なファイル・アクセスが存在するということを決定する。一部の実施形態では、影響を受けたファイルを識別することは、ファイル・システム内のファイルへの容認される書き込みアクセスの水準を定義することを含む。
【0008】
一部の実施形態では、影響を受けたファイルを識別することに応答してファイル・システムへのアクセスをロックダウンすることは、観察および制御モジュール・テーブル(OCMt)をトラバースして、しきい値数のファイルが影響を受けたファイルとしてマーク付けされたかどうかを判定することと、ファイル・システムへの書き込みアクセスを遮断することと、拡張移行モジュール(EMM)によって、すべての移行処理を停止することと、拡張ファイル・システム調整モジュール(EFRM)によって、すべての調整処理を停止することとを含む。一部の実施形態では、調整処理を取り消すことは、拡張ファイル・システム調整モジュール(EFRM)によって、調整に対する変更の取り消しログを書き込むことと、EFRMでの調整処理が停止されたことを決定することと、取り消しログを適用して、ストレージ・サーバでのすべての調整活動を取り消すこととを含む。一部の実施形態では、影響を受けたファイルを修復することは、観察および制御モジュール・テーブル(OCMt)をトラバースして、影響を受けたファイルとしてマーク付けされたOCMt内の各ファイルを識別することと、影響を受けたファイルを隔離フォルダに移動することと、影響を受けたファイルの現在のバージョンに関連付けられたタイムスタンプより前の移行タイムスタンプを有している、ストレージ・サーバからの影響を受けたファイルの最新バージョンを復元することとを含む。一部の実施形態では、影響を受けたファイルを修復することは、観察および制御モジュール・テーブル(OCMt)をトラバースして、影響を受けたファイルとしてマーク付けされたOCMt内の各ファイルを識別することと、影響を受けたファイルのスタブを作成することと、影響を受けたファイルのスタブ・バージョンを、影響を受けたファイルの現在のバージョンに関連付けられたタイムスタンプより前に移行されたストレージ・サーバ内の影響を受けたファイルのバージョンにリンクすることとを含む。
【0009】
上記の概要は、本開示の各実施形態例もすべての実装も説明するよう意図されていない。
【0010】
本出願に含まれている図面は、本明細書に組み込まれ、本明細書の一部を形成する。各図面は、本開示の実施形態を示し、説明と共に本開示の原理を説明するのに役立つ。各図面は、特定の実施形態の単なる例であり、本開示を制限していない。
【図面の簡単な説明】
【0011】
【
図1】実施形態例に記載された、ランサムウェアの検出および管理を含むバックアップ・アーキテクチャを提供するためのシステムを示すブロック図である。
【
図2】実施形態例に記載された、HSMクライアントのコンポーネントをさらに詳細に示すブロック図である。
【
図3】本開示のさまざまな実施形態に記載された、ランサムウェア攻撃を検出してシステムをランサムウェア攻撃から保護するためのプロセスを示すフロー図である。
【
図4】1つの実施形態に記載された、コンピューティング・システムを示すブロック図である。
【
図5】例示的なクラウド・コンピューティング環境の図示表現である。
【
図6】1つの実施形態例に記載された、クラウド・コンピューティング環境によって提供される機能的抽象レイヤのセットを示す図である。
【発明を実施するための形態】
【0012】
本発明は、さまざまな変更および代替の形態を受け入れるが、その詳細が、図面において例として示されており、詳細に説明される。しかし、本発明を説明されている特定の実施形態に限定することが意図されていないということが、理解されるべきである。反対に、本発明の思想および範囲に含まれるすべての変更、同等のもの、および代替手段を対象にすることが意図されている。
【0013】
本開示の態様は、ファイル・システムの保護に関連しており、より詳細には、マルウェア攻撃またはランサムウェア攻撃からのファイル・システムの保護に関連している。本開示はそのような適用に必ずしも限定されないが、この文脈を使用するさまざまな実施例の説明を通じて、本開示のさまざまな態様が理解されてよい。
【0014】
ランサムウェア攻撃は、ファイル・システム内のファイルに発生する可能性がある最も破壊的な問題の1つである。ランサムウェア攻撃は、ファイル・システムおよびファイル所有者に著しい影響を与えることがある。ランサムウェア攻撃は、ファイルへのアクセスの喪失を防ぐことができるほど十分に素早く検出されることができない。通常、ファイル・システムの所有者は、ファイルが暗号化され後に、初めてランサムウェア攻撃を理解する。
【0015】
最新のバックアップ・ソフトウェア(例えば、IBM Spectrum Protect)は、ファイル・システムのバックアップにおいてバックアップ率または重複排除率が通常の処理との差異を示しているかどうかを検出することができる。残念ながら、この検出は、ファイル・システムが感染した後に発生する次のバックアップの実行時に生じる。つまり、すべてのファイルがすでに暗号化されており、攻撃を止めるには遅過ぎる。影響を受けたファイルを修復するには、ファイル・システムの完全な復元が実行されなければならない。しかし、このような復元は、多くの時間がかかり、影響を受けたファイル・システム上の実稼働を停止する。最悪の場合、ユーザは、バックアップを持っておらず、すべてのファイルを失うか、またはファイルを取り戻すためにランサムウェア攻撃者に支払うことを余儀なくされる。
【0016】
現在の解決策は、ファイル・システム全体に影響を与える攻撃を防ぐことができない。現在の解決策は、ファイル・システム全体が暗号化された後に、初めてランサムウェア攻撃を検出する。このファイル・システムを修復するには、バックアップが使用可能な場合に、システム全体がバックアップから復元されなければならない。
【0017】
本開示は、ランサムウェア攻撃を素早く(ほぼリアルタイムに)検出し、検出されたランサムウェア攻撃に対するほぼリアルタイムの反応を提供して、ファイルまたはファイル・システムあるいはその両方のさらなる暗号化を防ぐことによって、現在の保護の中心部における弱点に対処する。本開示は、ランサムウェア攻撃の検出の前に暗号化されたファイルの自動修復をさらに提供する。さらに、本開示は、ウイルス・スキャナと連動または連係して、ウイルスに感染したファイルまたはその他の破損を自動的に修復することができる。
【0018】
図1は、実施形態例に記載された、ランサムウェアの検出および管理を含むバックアップ・アーキテクチャを提供するためのシステムを示すブロック図である。バックアップ・システム100は、ファイルを管理するために、階層型ストレージ管理(HSM:hierarchical storage management)ソリューションを採用している。バックアップ・システム100は、コンピュータ・ノード110、ファイル・システム120、ディスク・ストレージ・コンポーネント130-1、130-2、130-N(集合的に、ディスク・ストレージ・コンポーネント130)、バックアップ・クライアント140、バックエンド・サーバ150、および階層型ストレージ管理クライアント160(HSMクライアント160)を含んでいる。
【0019】
簡単に言えば、
図1では、バックアップ・クライアント140が計算ノード110上で実行される。計算ノードは、ファイル・システム120のローカル・マウントを含み、ネットワークを介してディスク・ストレージ・コンポーネント130にアクセスすることができる。バックアップ・クライアント140のコンポーネント140は、バックエンド・サーバ150に接続される。HSMクライアント160は、通常、1つの(または、クラスタ環境内の複数の)計算ノード110にインストールされる。HSMクライアント160は、計算ノード110にマウントされたファイル・システム120からデータを読み取り、移行を介してファイル・データをバックエンド・サーバ150に送信する。HSMクライアント160は、計算ノード110上で実行される。計算ノードは、ファイル・システム120のローカル・マウントを含み、ネットワークを介してディスク・ストレージ・コンポーネント130にアクセスすることができる。HSMクライアント160のコンポーネント160は、バックエンド・サーバ150に接続される。
【0020】
階層型ストレージ管理ソリューションは、通常、追加の階層型ストレージ層を導入することによる、ファイル・システム120の空間の仮想拡張である。ストレージ層を導入する理由は、大量のデータを、従来の回転磁気ディスクより低いコストおよび高い効率で格納するためである。多くの場合、HSMの階層環境は、階層内の異なるフラッシュまたは半導体ドライブ(SSD:solid state drives)(層0)およびハード・ディスク・ドライブ(HDD:hard disk drives)(層1~N-1)、ならびに最後の層(層N)としてのテープから成る。層間でファイルを移動するプロセスは、移行および再呼び出しと呼ばれる。移行は、ファイル・データを次のより低い層に移動し、より高い層上のデータを、より低い層内のファイル・データの新しい位置を識別して後で再呼び出しするために必要なメタデータのみに置き換えることを意味する。メタデータは、通常、「スタブ・ファイル」と呼ばれ、空間を消費しない。再呼び出しは、データをストレージ階層内のより高い層に戻すことを意味する。ファイル・データの物理的位置は、ファイル・システム120および格納されたデータのユーザにとって透過的である。HSMソリューションは、ファイルの異なるバージョンを区別しない。ファイル・データに対する変更は、より低い層からオンラインの層への再呼び出しを必要とする。これらの機能は、対応する移行モジュールおよび再呼び出しモジュール(
図2に示されている)を介して、HSMクライアント160のコンポーネント160によって実施される。
【0021】
ファイルをより高い層からより低い層に移行することに関して、Unix(R) HSMは、3つの異なるファイル移行状態(常駐、事前移行済み、および移行済み)を識別する。常駐状態では、ファイル・データは活動中のファイル・システム120(層0)のみに存在する。Spectrum Protect Server(層1)などのバックアップ・サーバには、このファイルの有効なコピーが存在しない。常駐状態は、新たに作成されたファイルまたは変更されたファイルのための移行状態である。事前移行済み状態では、ファイル・データは、ファイル・システム120(層0)とバックアップ・サーバ(層1)の両方に、有効なコピーを有する。事前移行済み状態は、読み取りのためにバックアップ・サーバから再呼び出しされたファイルにも当てはまる。HSMファイルの事前移行済み状態は、デュアル・モードとも呼ばれる。移行済み状態では、このファイルは、層0内でスタブ・ファイルに置き換えられており、バックアップ・サーバ(層1)のみに存在している。この移行状態は、ファイル・データに対してデータ・アクセスが試みられるまで、持続する。
【0022】
ファイル・データ・アクセスが実行されたときに、透過的な再呼び出しが開始される。データが層0にステージングされ、その間に、データ・アクセス・システム・コールが、ステージングの完了を待機しながら遮断される。より低い層からより高い層へのファイルのユーザの再呼び出しは、ファイルまたはファイルのリストを呼び出しするためのHSMコマンドの明示的な呼び出しによって、またはSpectrum Scaleのmmapplypolicyコマンドなどのコマンドを使用して、ポリシー・ルールの一連の基準に一致する属性を有するファイルの呼び出しを動作させることによって、実行されることができる。アプリケーションが、ファイルにアクセスすることによって再呼び出しをトリガーした場合、アプリケーションは、完全なファイル・データがバックアップ・サーバからファイル・システム120に再呼び出しされるまで、待機する必要がある。アクセスの種類は、読み取り、書き込み、または切り詰めであることができる。
【0023】
調整方法は、ファイル・システム120の内容およびバックアップ・サーバでの内容が同期されることを保証する。調整機能は、対応する調整モジュール(
図2に示されている)を介して、HSMクライアント160のコンポーネント160によって実施される。例えば、Spectrum Protect for Space Managementでは、クライアントは、Spectrum Scaleポリシー・エンジンを使用して、ファイル・システム120内のすべての移行されたファイルのリストを生成し、リストに示されたファイルとSpectrum Protect Serverに格納されたファイルの間の高速な比較を実行する。
【0024】
標準的なアンチランサムウェア・システムは、ランサムウェアの実行を防ぐための2つの異なる種類のアーキテクチャに基づく。
【0025】
第1の種類のアーキテクチャは、アンチウイルス・アーキテクチャのクローンである。アンチランサムウェア・ソフトウェアは、オブザーバのようなローカルな計算ノードにインストールされる。アンチランサムウェア・ソフトウェアは、既知のランサムウェアの特定のシグネチャについて、ファイル・システムのデータおよび実行されたプログラムを監視する。ウイルススキャナ(virus-scanner)が新しいウイルスの最新の更新情報を必要とするのと同様に、アンチランサムウェア・ソフトウェアは、既知のランサムウェア・ソフトウェアのシグネチャの入力を取得する必要がある。ランサムウェア・ソフトウェアのシグネチャの知識なしでは、アンチランサムウェア・ソフトウェアは、ランサムウェア・ソフトウェアがローカル・ファイル・システムを攻撃して暗号化するのを識別して検出し、防ぐことができない。
【0026】
アンチランサムウェア・ソフトウェアの第2の種類のアーキテクチャは、ファイル、ディレクトリ、およびファイル・システムに対する直接的なアクセス制限を定義することに基づく。このソフトウェアは、ローカルな計算ノードにインストールされる必要があり、特定の信頼できるアプリケーションに、特定の領域に対する書き込みアクセス権限を付与する。例えば、ディレクトリに、保護されているとしてマーク付けすることができ、登録されたアプリケーションのみが、データをそれらのディレクトリに書き込むことを許可される。このソフトウェアは、ランサムウェアの検出を実行しない。このソフトウェアは、単にデータが未知のアプリケーションまたは信頼できないアプリケーションによって上書きされるのを防ぐ。このアプリケーションは、ランサムウェアであることもあれば、単に利用者が使用したい別のアプリケーションであることもある。そのようなアンチランサムウェア・ソフトウェアは、多くの場合、内部に挙動検出を有していると主張するが、標準的なデスクトップ・ファイアウォールが、このアプリケーションの実行が許可されるかどうかを利用者に尋ねるのと同様に、単に利用者から多数のフィードバックを収集する。
【0027】
Bitdefender、Zone Alarm、Panda、またはWebrootのような既知のランサムウェア検出および防止アプリケーションは、通常、次の方法を適用する。ディレクトリに、保護されているとしてマーク付けすることができ、登録されたアプリケーションのみが、データをそれらのディレクトリに書き込むことを許可される。ファイルに対するランサムウェア攻撃を識別するために、ローカル・ファイルの変更追跡が使用される。悪意があるとして検出されたアプリケーションが、ローカル・システム上のランサムウェア検出アプリケーションによって停止される。この方法の制限は、ランサムウェア検出アプリケーションが、攻撃されたローカル・システム上で実行される必要があるということである。さらに、ディレクトリの手動の保護が、非柔軟性をシステムに導入する。
【0028】
以前のシステムとは異なり、本開示のHSMクライアント160は、ローカル・システム上で実行される必要があるという制限を有していない。保護されるファイル・システム120は、ローカルであることができるが、リモートであることもできる。保護されたディレクトリを手動で識別する必要はない。アプリケーションが停止されることが無く、ファイルに対するさらなる変更を防ぐために、ファイル・システム120のアクセスがロックダウンされる。
【0029】
図2は、HSMクライアント160のコンポーネントをさらに詳細に示しているブロック図である。HSMクライアント160は、観察および制御モジュール220(OCM220)、移行モジュール240、再呼び出しモジュール260、および調整モジュール280を含んでいる。
【0030】
OCM220のモジュール220は、ファイル・アクセス統計情報を収集して維持するように構成され、ファイル重複排除統計情報を収集して維持するように構成された、HSMクライアント160のモジュールである。OCM220のモジュール220は、収集されたデータを観察および制御モジュール・テーブル225(OCMt225)内で維持する。OCM220は、ファイル・システム120の制御インターフェイス(例えば、DMAPIまたはWindows(R)フィルタ・ドライバ)を使用してファイル情報を収集し、ファイル・システム120内で観察された影響を受けるファイルへの書き込みアクセスを防ぐ。
【0031】
移行モジュール240は、移行は、ファイル・データを次のより低い層に移動し、より高い層上のデータを、より低い層内のファイル・データの新しい位置を識別して後で再呼び出しするために必要なメタデータのみに置き換えるように構成された、システムのコンポーネントである。移行モジュール240は、拡張移行モジュール245(EMM245)を含んでいる。EMM245は、ファイルの重複排除率および圧縮率をOCM220のモジュール220に外在化するように構成される。さらに、EMM245は、ファイルを移行しながら、ファイルのブロック・レベルのハッシュ・マップを作成し、そのハッシュ・マップをOCM220のモジュール220に外在化するように構成される。EMM245は、ファイルをバックエンド・サーバ150(例えば、Spectrum Protect Server)に移行するようにさらに構成される。バックエンド・サーバ150は、ランサムウェアの感染が排除されるまで削除を遅延させるためのモジュールを使用して構成される。
【0032】
再呼び出しモジュールは、データをストレージ階層内のより高い層に戻すように構成された、システムのコンポーネントである。再呼び出しモジュール260は、拡張再呼び出しモジュール265(ERM265)を含んでいる。ERM265は、ファイル・システム120へのファイル・アクセスを停止するように構成されたモジュールである。
【0033】
調整モジュール280は、ファイル・システム120の内容をバックエンド・サーバ150の内容と同期させるように構成された、システムのコンポーネントである。調整モジュールは、拡張ファイル・システム調整モジュール285(EFRM285)をさらに含んでいる。EFRM285は、要求に応じて調整処理を直ちに停止するように構成される。さらに、EFRM285は、取り消しログ機能を含むことができる。
【0034】
図3は、本開示のさまざまな実施形態に従って、ランサムウェア攻撃を検出してシステムをランサムウェア攻撃から保護するためのプロセスを示すフロー図である。プロセス300は、ファイルの統計情報を収集することから開始する。これが、ステップ310に示されている。このステップで、OCM220がファイル・アクセス統計情報と、ファイルの重複排除率および圧縮率とを収集する。
【0035】
ファイル・アクセス統計情報を収集するために、OCM220は、ファイル・システム120に登録し、新しいファイルが作成されたかどうか、または既存のファイルが変更されたかどうかの通知を受信する。OCM220は、新たに作成されたファイルまたは変更されたファイルに関する通知を受信した場合、ファイルでの変更追跡メカニズムを登録し、書き込みアクセスが発生したときに通知を受信する。登録が終了したときに、OCM220は、新しいファイルまたは変更されたファイルに関してEMM245に知らせ、ファイルの事前移行を開始する。第1の書き込みアクセスが発生した場合、OCM220は、ファイル名をOCMt225に追加し、特定のファイルに対するアクセスの時間を入力する。同じ観察期間内の同じファイルへのその後の書き込みアクセスは、追加のタイムスタンプをテーブルに追加する。
【0036】
事前移行時にファイルの重複排除率および圧縮率を収集するために、EMM245は、EHSへの効率的なデータ転送のために、ファイルを重複排除して圧縮する。EMM245は、ファイルの重複排除率および圧縮率を計算する。ファイルの事前移行が終了した後に、EMM245は、移行が終了したことをOCM220に知らせ、重複排除率および圧縮率をOCM220に提供する。OCM220は、特定のファイルの重複排除率および圧縮率をOCMt225に入力する。その後の移行は、同じファイルに関する追加の入力が追加されることをもたらす。常駐ファイルが事前移行されずに移行される場合に、同じことが起こる。事前移行済みのファイルが移行される場合、前回(事前移行時に)データがEHSに送信されたときに情報がすでに収集されているため、追加の情報が収集される必要はない。
【0037】
【0038】
表1は、ステップ310および320のプロセスに基づいて、OCMt225内のファイル(ファイルA)に関するエントリの例を示している。表1のコメント列は、OCMt225内に存在しないが、この例では、各エントリ内で変化したことに関する追加の情報を読者に示すために提供されているということに、注意するべきである。一部の実施形態では、ファイル・アクセス統計情報は、ファイルへの書き込みアクセスの頻度に基づくだけでなく、書き込みアクセスに関してファイル・サイズが変化していないということも考慮する。しかし、ファイルに対して暗号化が実行された場合、ファイル・サイズの変化が発生する。一部の実施形態では、プロセスは、ファイルへのアクセスがあるパターンに従うということを考慮する。このパターンは、ディレクトリのトラバース、iノード・テーブルのトラバース、ユーザ固有のファイル・システム120のトラバース、または記録されたアクセス拒否率であることができる。この情報を使用して、異常なアクセス活動を検出することができる。一部の実施形態では、ファイル・アクセス統計情報は、ファイルの書き込みの再呼び出し率に基づく。この実施形態では、OCM220は、ERM265と対話してこの情報を収集し、テーブルOCMt225に入力する。この情報を使用して、異常なアクセス・パターン識別することもできる。一部の実施形態では、ファイル・アクセス統計情報は、ファイルの調整の期限切れ率に基づく。この方法では、OCM220は、EFRM285と対話してこの情報を収集し、テーブルOCMt225に入力する。やはりこの情報を使用して、システム内の異常なパターンを識別することができる。
【0039】
収集されたファイル統計情報に基づいて、次にプロセスは、影響を受けたファイルを識別する。これが、ステップ320に示されている。このステップで、OCM220は、ファイルがEHSに送信されている間に影響を受けたかどうかを識別する。ファイルの事前移行が初めて発生した場合、EMM245は、ファイルのブロック・レベルのハッシュ・マップを作成し、このハッシュをOCM220に送信する。OCM220は、この情報をOCMt225に格納する。その後、2回目のファイルの事前移行が発生した場合、ブロック・レベルのハッシュ・マップが作成され、前の実行からOCMt225に格納されたハッシュ・マップ情報と比較される。ハッシュ・マップに100%の差異がある場合、EMM245は、ファイルが暗号化の影響を受けたと仮定する。EMM245によって、ファイルが影響を受けたということがOCM220に知らされる。OCM220は、この情報をOCMt225に入力する。しかし、一部の実施形態では、EMM245が、ファイルが暗号化の影響を受けたと仮定するために、ハッシュ・マップにおける差異のパーセンテージが100%未満であることができる。
【0040】
OCM220は、ファイル・システム120内で異常な量のファイル書き込みアクセスが発生しているかどうかをさらに識別する。OCM220は、OCMt225をトラバースし、最新の観察サイクルの間の、テーブル内のすべてのファイルの書き込みアクセスの合計Snを作成する。OCM220は、最新の観察サイクルの前の観察サイクルの間の、テーブル内のすべてのファイルの書き込みアクセスの第2の合計Sn-1をさらに作成する。Snの結果がSn-1の結果より大幅に大きい場合、プロセスは、ファイル・システム120へのアクセスを遮断することに移行することができる。代替として、OCM220はOCMt225をトラバースすることができる。最後の観察サイクル内でアクセスされたテーブル内のファイルごとに、重複排除率および圧縮率のエントリを読み取る。OCM220は、ファイルにアクセスし、特定のファイルの現在の重複排除率および圧縮率を計算する。現在の重複排除率および圧縮率が、最新の重複排除率と比較して大幅に低い場合、OCM220は、テーブルOCMt225内に、異常なファイル・アクセスのマークを付けることができる。
【0041】
OCM220は、ファイル・システム120内のファイルへの容認される書き込みアクセスの水準を定義することができる。
【0042】
OCM220がランサムウェア攻撃をチェックする間隔が定義される。この間隔は、観察間隔(OI:observation interval)と呼ばれる。観察間隔は、管理者によって定義されることができ、OCM220が攻撃を検出できる速度を決定する。OIが小さいほど、攻撃が速く検出される。しかし、非常に小さい間隔は、誤検出のリスクを負う。OCM220の能力から恩恵を受けるために、OIは、ファイル・システム120がバックアップされる通常の間隔(24時間など)よりもはるかに小さくなるべきである。OCM220は、最後のX個のOIに対してファイル・アクセス統計を実行し、X個のOIは、数日または数週間の期間を表す。ファイル・システム120内の書き込まれたファイルの平均量および平均の分布が計算される。次に、OCM220は、現在のOIに対してファイル・アクセス統計を実行し、ファイル・システム120に書き込まれたファイルの量を計算する。最後のX個のOIからの結果が、現在のOIからの結果と比較される。標準的な統計的方法(例えば、3シグマ法)が適用され、現在のOIに異常に高いファイルの変化率が存在するかどうかを判定する。しかし、任意の統計的方法が適用されることができる。異常に高い変化率が検出された場合、OCMt225がトラバースされ、最後のOIにおいて変更されたすべてのファイルを識別する。次に、OCM220は、ハッシュされたブロックを比較することによって、ファイル全体(またはその他のしきい値)が変更されたかどうかをチェックし、重複排除率および圧縮率が減少したかどうかをチェックすることができる。これらのチェックに対する回答が両方とも「はい」である場合、次にOCM220は、ファイル・システム120へのアクセスをロックダウンすることができる。
【0043】
攻撃が進行中であることが決定された場合、次にシステムは、ファイルまたはファイル・システム120あるいはその両方へのアクセスをロックダウンする。これが、ステップ330に示されている。このステップでは、異常な書き込みアクセスが検出された場合に、OCM220がファイル・システム120内のファイルへの書き込みアクセスをロックする。ファイル・アクセスをロックダウンするために、OCMt225テーブルがトラバースされる。異常な書き込みアクセスが存在するとして、事前に定義された数のファイルがマーク付けされた場合、次にOCM220は、ERM265を使用して、さらなるすべての書き込みアクセスをロックし、ファイル・システム120を完成させる。これは、さらに多くのファイルが上書きされるのを防ぐためである。OCM220は、すべての移行処理を停止するようにEMM245に通知する。これは、影響を受けたファイルがバックエンド・サーバ150に移行され、バックエンド・サーバ150上の影響を受けていないバージョンのファイルを無効にするのを防ぐためである。OCM220は、すべての調整処理を停止するようにEFRM285に通知する。これは、バックエンド・サーバ150上の影響を受けていないバージョンの移行済みファイルが削除されるのを防ぐためである。一部の実施形態では、OCM220は、ウイルス・スキャナと対話する。OCM220は、観察されたファイル・システム120内のファイルがウイルスに感染した場合、ウイルス・スキャナから通知を受信する。OCM220は、特定のファイルに対する書き込みアクセスをロックダウンし、下で説明されているように、自動修復を開始する。別の実施形態では、OCM220は、攻撃が観察されたときにOCM220によって自動的に開始され、影響を受けたシステムからマルウェアまたはウイルスを除去するために使用される、ウイルスまたはマルウェア・スキャナ・ツールと対話する。
【0044】
ファイル・アクセスがロックダウンされると、次にシステムは、すでに発生した調整処理を取り消す。これが、ステップ340に示されている。異常な書き込みが検出された場合、次にOCM220は、調整処理を取り消す。攻撃の前に調整処理を開始した場合、EFRM285は、バックエンド・サーバ150で調整されるすべての変更を含んでいる取り消しログを書き込む。バックエンド・サーバ150は、EFRM285から調整活動を収集するが、EFRM285が調整を最終的にコミットするまでファイルを削除しないように構成される。実際の削除は、ファイルが廃止されることが検出されてから後の複数の観察サイクルに、ようやく発生する。ファイル・システム120への異常な書き込みアクセスのために、EFRM285がOCM220から停止された場合、バックエンド・サーバ150で、取り消しログが、すべての調整活動を取り消すために使用される。EFRM285が調整を定期的に終了するときに、バックエンド・サーバ150での変更がコミットされ、取り消しログが削除される。
【0045】
調整プロセスの停止に続いて、次にシステムは、攻撃によって損傷したファイルを修復する。これが、ステップ350に示されている。
【0046】
OCM220は、OCMt225をトラバースして、異常な書き込みアクセスのマークが付けられたファイルを識別することによって、影響を受けたファイルを自動的に修復する。一部の実施形態では、次にOCM220は、ファイルを隔離フォルダに移動する。その後、OCM220は、最新バージョンのファイルをバックエンド・サーバ150から復元する。OCM220は、この復元を、ファイルの元の名前に対して、異常な書き込みアクセスが検出される前からの移行のタイムスタンプを有しているファイルのバージョンをバックエンド・サーバ150で識別することによって実行する。この復元は、テーブル内の影響を受けたすべてのファイルについて継続する。
【0047】
一部の実施形態では、OCM220は、影響を受けたファイルのスタブを作成することによってファイルを復元する。次にスタブ・ファイルが、移行のタイムスタンプに基づいて、異常な書き込みアクセスの前に移行されたバックエンド・サーバ150でのファイルのバージョンにリンクされる。
【0048】
ファイルが復元されると、次にシステムは、ロックされたファイルをロック解除する。これが、ステップ360に示されている。OCM220は、攻撃の開始から、またはファイルが復元されたときから、事前に定義された時間の経過後に、ファイルをロック解除することができる。一部の実施形態では、ロック解除プロセスは、ファイル・システム120の管理者によって手動で実行される。一部の実施形態では、OCM220は、検出された攻撃をユーザに知らせる通知を生成してよい。このようにしてユーザは、暗号化が意図的であること、または意図的でないことを、システムに警告することができる。暗号化が意図的だった場合、次にシステムは、暗号化の続行を許可することができる。一部の実施形態では、ユーザは、ファイルをロック解除する前に、ランサムウェアを識別して除去することを課せられる。次にユーザは、除去ツールを使用して、ランサムウェアをシステムから除去することができる。ランサムウェアがシステムから除去された後に、ユーザは、ランサムウェアが除去されたこと、およびファイル・システムをロック解除できることを、OCM220に示すことができる。一部の実施形態では、ユーザは、影響を受けたファイルの復元の前にランサムウェアを除去する必要があることがある。
【0049】
ここで
図4を参照すると、本開示の実施形態に従って、(例えば、コンピュータの1つまたは複数のプロセッサ回路またはコンピュータ・プロセッサを使用して)本明細書に記載された方法、ツール、およびモジュール、ならびに関連する機能のうちの1つまたは複数を実装することにおいて使用されてよい例示的なコンピュータ・システム401の上位のブロック図が示されている。一部の実施形態では、コンピュータ・システム401の主要なコンポーネントは、1つまたは複数のCPU402、メモリ・サブシステム404、端末インターフェイス412、ストレージ・インターフェイス416、I/O(Input/Output:入出力)デバイス・インターフェイス414、およびネットワーク・インターフェイス418を含んでよく、これらすべては、メモリ・バス403、I/Oバス408、およびI/Oバス・インターフェイス・ユニット410を介したコンポーネント間の通信のために、直接的または間接的に通信によって結合されてよい。
【0050】
コンピュータ・システム401は、本明細書では総称的にCPU402と呼ばれる、1つまたは複数のプログラム可能な汎用中央処理装置(CPU:central processing units)402-1、402-2、402-3、および402-Nを含んでよい。一部の実施形態では、コンピュータ・システム401は、比較的大きいシステムでは標準的な、複数のプロセッサを含んでよいが、他の実施形態では、コンピュータ・システム401は、代替として単一CPUシステムであってよい。各CPU402は、メモリ・サブシステム404に格納された命令を実行してよく、1つまたは複数のレベルのオンボード・キャッシュを含んでよい。
【0051】
システム・メモリ404は、ランダム・アクセス・メモリ(RAM:random access memory)422またはキャッシュ・メモリ424などの、揮発性メモリの形態でのコンピュータ・システム可読媒体を含んでよい。コンピュータ・システム401は、その他の取り外し可能/取り外し不可、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含んでよい。単に例として、「ハード・ドライブ」などの、取り外し不可、不揮発性の磁気媒体に対する読み取りと書き込みを行うために、ストレージ・システム426を提供することができる。図示されていないが、取り外し可能、不揮発性の磁気ディスク(例えば、「フロッピー(R)・ディスク」)に対する読み取りと書き込みを行うための磁気ディスク・ドライブ、あるいはCD-ROM、DVD-ROM、またはその他の光媒体などの取り外し可能、不揮発性の光ディスクに対する読み取りと書き込みを行うための光ディスク・ドライブを提供することができる。加えて、メモリ404は、フラッシュ・メモリ(例えば、フラッシュ・メモリ・スティック・ドライブまたはフラッシュ・ドライブ)を含むことができる。メモリ・デバイスは、1つまたは複数のデータ媒体インターフェイスによってメモリ・バス403に接続されることができる。メモリ404は、さまざまな実施形態の機能を実行するように構成された一連の(例えば、少なくとも1つの)プログラム・モジュールを備えている少なくとも1つのプログラム製品を含んでよい。
【0052】
図4では、メモリ・バス403が、CPU402、メモリ・サブシステム404、およびI/Oバス・インターフェイス410の間の直接通信経路を提供する単一のバス構造として示されているが、メモリ・バス403は、一部の実施形態では、複数の異なるバスまたは通信経路を含んでよく、それらのバスまたは通信経路は、階層的構成、星形構成、またはWeb構成でのポイントツーポイント・リンク、複数の階層的バス、冗長な並列経路、または任意のその他の適切な種類の構成などのさまざまな形態のいずれかで、配置されてよい。さらに、I/Oバス・インターフェイス410およびI/Oバス408がそれぞれ単一のユニットとして示されているが、コンピュータ・システム401は、一部の実施形態では、複数のI/Oバス・インターフェイス・ユニット410、複数のI/Oバス408、またはその両方を含んでよい。さらに、I/Oバス408を、さまざまなI/Oデバイスに達するさまざまな通信経路から分離する複数のI/Oインターフェイス・ユニットが示されているが、他の実施形態では、I/Oデバイスの一部または全部が、1つまたは複数のシステムI/Oバスに直接接続されてよい。
【0053】
一部の実施形態では、コンピュータ・システム401は、複数ユーザのメインフレーム・コンピュータ・システム、単一ユーザのシステム、あるいはサーバ・コンピュータ、または直接的ユーザ・インターフェイスを少ししか持たないか、もしくは全く持たないが、他のコンピュータ・システム(クライアント)から要求を受信する同様のデバイスであってよい。さらに、一部の実施形態では、コンピュータ・システム401は、デスクトップ・コンピュータ、ポータブル・コンピュータ、ラップトップ・コンピュータまたはノートブック・コンピュータ、タブレット・コンピュータ、ポケット・コンピュータ、電話、スマートフォン、ネットワーク・スイッチまたはルータ、あるいは任意のその他の適切な種類の電子デバイスとして実装されてよい。
【0054】
図4が、例示的なコンピュータ・システム401の主要な代表的コンポーネントを示すよう意図されていることに注意する。しかし、一部の実施形態では、個別のコンポーネントが、
図4に表されているコンポーネントよりも大きい複雑さまたは小さい複雑さを有してよく、
図4に示されているコンポーネント以外のコンポーネントまたは追加のコンポーネントが存在してよく、そのようなコンポーネントの数、種類、および構成が変化してよい。
【0055】
プログラム・モジュール430の少なくとも1つのセットをそれぞれ含んでいる1つまたは複数のプログラム/ユーティリティ428が、メモリ404に格納されてよい。プログラム/ユーティリティ428は、ハイパーバイザ(仮想マシン・モニタとも呼ばれる)、1つまたは複数のオペレーティング・システム、1つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データを含んでよい。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データ、またはこれらの組み合わせの各々は、ネットワーク環境の実装を含んでよい。プログラム428またはプログラム・モジュール403あるいはその両方は、通常、さまざまな実施形態の機能または方法を実行する。
【0056】
本開示にはクラウド・コンピューティングに関する詳細な説明が含まれているが、本明細書において述べられる教示の実装は、クラウド・コンピューティング環境に限定されないと理解されるべきである。本発明の実施形態は、現在既知であるか、または今後開発される任意のその他の種類のコンピューティング環境と組み合わせて実装できる。
【0057】
クラウド・コンピューティングは、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間またはサービス・プロバイダとのやりとりを最小限に抑えて、これらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメント・モデルを含むことができる。
【0058】
特徴は、次のとおりである。
【0059】
オンデマンドのセルフ・サービス:クラウドの利用者は、サーバの時間、ネットワーク・ストレージなどの計算能力を一方的に、サービス・プロバイダとの人間のやりとりを必要とせず、必要に応じて自動的にプロビジョニングすることができる。
【0060】
幅広いネットワーク・アクセス:クラウドの能力は、ネットワークを経由して利用可能であり、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による利用を促進する標準的なメカニズムを使用してアクセスできる。
【0061】
リソース・プール:プロバイダの計算リソースは、プールされ、マルチテナント・モデルを使用して複数の利用者に提供される。さまざまな物理的および仮想的リソースが、要求に従って動的に割り当ておよび再割り当てされる。利用者は通常、提供されるリソースの正確な場所に関して管理することも知ることもないが、さらに高い抽象レベルでは、場所(例えば、国、州、またはデータセンター)を指定できる場合がある点で、場所に依存しない感覚がある。
【0062】
迅速な順応性:クラウドの能力は、迅速かつ柔軟に、場合によっては自動的に、プロビジョニングされて素早くスケールアウトし、迅速に解放されて素早くスケールインすることができる。利用者には、プロビジョニングに使用できる能力は、無制限で、任意の量をいつでも購入できるように見えることがよくある。
【0063】
測定されるサービス:クラウド・システムは、計測機能を活用することによって、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザのアカウント)に適した抽象レベルで、リソースの使用を自動的に制御および最適化する。リソースの使用状況は監視、制御、および報告することができ、利用されるサービスのプロバイダと利用者の両方に透明性が提供される。
【0064】
サービス・モデルは、次のとおりである。
【0065】
SaaS(Software as a Service):利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Webブラウザなどのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる(例えば、Webベースの電子メール)。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能を含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
【0066】
PaaS(Platform as a Service):利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、デプロイされたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御することができる。
【0067】
IaaS(Infrastructure as a Service):利用者に提供される能力は、処理、ストレージ、ネットワーク、およびその他の基本的な計算リソースのプロビジョニングであり、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをデプロイして実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションを制御することができ、場合によっては、選択されたネットワーク・コンポーネント(例えば、ホスト・ファイアウォール)を限定的に制御できる。
【0068】
デプロイメント・モデルは、次のとおりである。
【0069】
プライベート・クラウド:このクラウド・インフラストラクチャは、ある組織のためにのみ運用される。このクラウド・インフラストラクチャは、この組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
【0070】
コミュニティ・クラウド:このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項)を共有している特定のコミュニティをサポートする。このクラウド・インフラストラクチャは、これらの組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
【0071】
パブリック・クラウド:このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
【0072】
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、データとアプリケーションの移植を可能にする標準化された技術または独自の技術(例えば、クラウド間の負荷バランスを調整するためのクラウド・バースト)によって固有の実体を残したまま互いに結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
【0073】
クラウド・コンピューティング環境は、ステートレス、疎結合、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを含んでいるインフラストラクチャである。
【0074】
システム600は、クラウド・コンピューティング環境内で採用されてよい。
図5は、1つの実施形態に従う、例示的なクラウド・コンピューティング環境550の図示表現である。図示されているように、クラウド・コンピューティング環境550は、クラウドの利用者によって使用されるローカル・コンピューティング・デバイス(例えば、パーソナル・デジタル・アシスタント(PDA:personal digital assistant)または携帯電話554A、デスクトップ・コンピュータ554B、ラップトップ・コンピュータ554C、または自動車コンピュータ・システム554N、あるいはその組み合わせなど)が通信できる1つまたは複数のクラウド・コンピューティング・ノード510を含んでいる。ノード9Yは、互いに通信してよい。ノード9Yは、1つまたは複数のネットワーク内で、本明細書において前述されたプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組み合わせなどに、物理的または仮想的にグループ化されてよい(図示されていない)。これによって、クラウド・コンピューティング環境550は、クラウドの利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム、またはSaaS、あるいはその組み合わせを提供できる。
図5に示されたコンピューティング・デバイス554A~Nの種類は、例示のみが意図されており、コンピューティング・ノード510およびクラウド・コンピューティング環境550は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続あるいはその両方を経由して任意の種類のコンピュータ制御デバイスと(例えば、Webブラウザを使用して)通信することができると理解される。
【0075】
ここで
図6を参照すると、クラウド・コンピューティング環境550(
図5)によって提供される機能的抽象レイヤのセットが示されている。
図6に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、本開示の実施形態がこれらに限定されないということが、あらかじめ理解されるべきである。図示されているように、次のレイヤおよび対応する機能が提供される。
【0076】
ハードウェアおよびソフトウェア・レイヤ660は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム661、RISC(Reduced Instruction Set Computer)アーキテクチャベースのサーバ662、サーバ663、ブレード・サーバ664、ストレージ・デバイス665、ならびにネットワークおよびネットワーク・コンポーネント666が挙げられる。一部の実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア667およびデータベース・ソフトウェア668を含む。
【0077】
仮想化レイヤ670は、仮想サーバ671、仮想ストレージ672、仮想プライベート・ネットワークを含む仮想ネットワーク673、仮想アプリケーションおよびオペレーティング・システム674、ならびに仮想クライアント675などの仮想的実体を提供できる抽象レイヤを備える。
【0078】
一例を挙げると、管理レイヤ680は、以下で説明される機能を提供することができる。リソース・プロビジョニング681は、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよびその他のリソースの動的調達を行う。計測および価格設定682は、クラウド・コンピューティング環境内でリソースが利用された際のコスト追跡、およびそれらのリソースの利用に対する請求書の作成と送付を行う。一例を挙げると、それらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウドの利用者およびタスクの識別情報の検証を行うとともに、データおよびその他のリソースの保護を行う。ユーザ・ポータル683は、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理684は、必要なサービス・レベルを満たすように、クラウドの計算リソースの割り当てと管理を行う。サービス水準合意(SLA:Service Level Agreement)計画および実行685は、今後の要求が予想されるクラウドの計算リソースの事前準備および調達を、SLAに従って行う。
【0079】
ワークロード・レイヤ690は、クラウド・コンピューティング環境で利用できる機能の例を示している。このレイヤから提供されてよいワークロードおよび機能の例としては、マッピングおよびナビゲーション691、ソフトウェア開発およびライフサイクル管理692、レイアウト検出693、データ解析処理694、トランザクション処理695、およびデータベース696が挙げられる。
【0080】
本発明は、任意の可能な統合の技術的詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読ストレージ媒体を含んでよい。
【0081】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー(R)・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル・バーサタイル・ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【0082】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0083】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
【0084】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【0085】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであってもよい。
【0086】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれてもよく、それによって、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
【0087】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【0088】
本発明は、任意の可能な統合の技術的詳細レベルにおける、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読ストレージ媒体を含んでよい。
【0089】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー(R)・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル・バーサタイル・ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【0090】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0091】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
【0092】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【0093】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであってもよい。
【0094】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれてもよく、それによって、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
【0095】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【0096】
本開示のさまざまな実施形態の説明は、例示の目的で提示されているが、網羅的であることは意図されておらず、開示された実施形態に制限されない。記載された実施形態の範囲および思想を逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかであろう。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするために選択されている。