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

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

▶ アクロニス・インターナショナル・ゲーエムベーハーの特許一覧

特許7390932マルウェアについて複数のアーカイブスライスを検査するシステムおよび方法
<>
  • 特許-マルウェアについて複数のアーカイブスライスを検査するシステムおよび方法 図1
  • 特許-マルウェアについて複数のアーカイブスライスを検査するシステムおよび方法 図2
  • 特許-マルウェアについて複数のアーカイブスライスを検査するシステムおよび方法 図3
  • 特許-マルウェアについて複数のアーカイブスライスを検査するシステムおよび方法 図4
  • 特許-マルウェアについて複数のアーカイブスライスを検査するシステムおよび方法 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-24
(45)【発行日】2023-12-04
(54)【発明の名称】マルウェアについて複数のアーカイブスライスを検査するシステムおよび方法
(51)【国際特許分類】
   G06F 21/56 20130101AFI20231127BHJP
【FI】
G06F21/56 380
G06F21/56 320
【請求項の数】 20
【外国語出願】
(21)【出願番号】P 2020033308
(22)【出願日】2020-02-28
(65)【公開番号】P2021018799
(43)【公開日】2021-02-15
【審査請求日】2022-08-22
(31)【優先権主張番号】62/874,548
(32)【優先日】2019-07-16
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/798,709
(32)【優先日】2020-02-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】313015247
【氏名又は名称】アクロニス・インターナショナル・ゲーエムベーハー
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】ウラジミール ストローゴフ
(72)【発明者】
【氏名】アナトリー ストゥパク
(72)【発明者】
【氏名】アンドレイ クラーガ
(72)【発明者】
【氏名】アレクセイ セルゲエフ
(72)【発明者】
【氏名】セルゲイ ベロウソフ
(72)【発明者】
【氏名】スタニスラフ プロタソフ
【審査官】宮司 卓佳
(56)【参考文献】
【文献】米国特許第08607342(US,B1)
【文献】特開2009-110225(JP,A)
【文献】米国特許第09268689(US,B1)
【文献】国際公開第2010/140222(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/56
(57)【特許請求の範囲】
【請求項1】
コンピューターがマルウェアについて複数のアーカイブスライスを検査する方法であって、
前記コンピューターが、
バックアップアーカイブ内の複数のスライスのうちの、第1スライスをディスクにマウントし、ここで、前記第1スライスは第1時刻でのユーザーデータのイメージであり、
前記複数のスライスのうちの、第2スライスの複数のブロックと、マウントされた前記第1スライスの複数のブロックとを比較することによって、マウントされた前記第1スライスの修正ブロックを検出し、ここで、前記第2スライスは前記第1時刻よりも前に取り込まれた前記ユーザーデータのイメージであり、
検出された前記修正ブロックに対応する、マウントされた前記第1スライス内の少なくとも1つのファイルを前記ディスクのファイルシステム上で識別
ウイルスおよび/または悪意のあるソフトウェアについて前記少なくとも1つのファイルをスキャン
前記少なくとも1つのファイルがウイルスおよび/または悪意のあるソフトウェアに感染したことを検出したことに応じて、前記少なくとも1つのファイルを除く、マウントされた前記第1スライスの前記ユーザーデータを備える治癒スライスを生成する、
処理を実行する方法。
【請求項2】
前記治癒スライスを生成する処理は、マウントされた前記第1スライスから前記少なくとも1つのファイルを取り除く処理を含む、請求項1に記載の方法。
【請求項3】
前記第2スライスに対する複数の修正ブロックは、マウントされた前記第1スライスのために存在し、
前記治癒スライスを生成する処理は、
前記第2スライスのコピーを生成
前記複数の修正ブロックに対応するとともに前記少なくとも1つのファイルを含まない全ファイルを、前記第2スライスの前記コピーに転送する処理を含み、ここで、前記第2スライスの前記コピーは前記治癒スライスである、請求項1に記載の方法。
【請求項4】
前記第2スライスは、マウントされた前記第1スライスよりも前または同時に前記ディスクにマウントされる、請求項1に記載の方法。
【請求項5】
新しい前記治癒スライスを前記バックアップアーカイブに加える処理前記コンピューターがさらに実行する、請求項1に記載の方法。
【請求項6】
前記バックアップアーカイブ内の前記複数のスライスのうちの、第3スライスをウイルスおよび悪意のあるソフトウェアについてスキャンする処理を前記コンピューターがさらに実行し、ここで、前記第3スライスは前記第2スライスの生成時刻よりも前に取り込まれた前記ユーザーデータのイメージであり、
前記第3スライス内で感染したファイルを検出したことに応じて、データリカバリーに不適切なものとして、前記第3スライスの生成時刻の後に取り込まれた、前記複数のスライスのサブセットをマークする処理を前記コンピューターがさらに実行し、ここで、前記サブセットは前記第2スライスおよび前記第1スライスを備える、請求項1に記載の方法。
【請求項7】
前記コンピューターが、
前記感染したファイルに対応する前記第3スライスのブロックを識別
前記第2スライスおよび前記第1スライスを前記ディスクにマウント
前記ブロックを追跡すること、および前記第2スライスおよび前記第1スライスのいずれかに前記感染したファイルが存在するかを特定
それぞれの治癒スライスを生成することによって、前記第2スライスおよび前記第1スライスのいずれかから前記感染したファイルを取り除く、
処理をさらに実行する、請求項6に記載の方法。
【請求項8】
前記第1スライスは、仮想ディスクとしてマウントされる、請求項1に記載の方法。
【請求項9】
前記少なくとも1つのファイルおよび前記修正ブロックの対応は、前記バックアップアーカイブのブロックマップを用いて特定される、請求項1に記載の方法。
【請求項10】
マルウェアについて複数のアーカイブスライスを検査するシステムであって、
バックアップアーカイブ内の複数のスライスのうちの、第1スライスをディスクにマウントし、ここで、前記第1スライスは第1時刻でのユーザーデータのイメージであり、
前記複数のスライスのうちの、第2スライスの複数のブロックと、マウントされた前記第1スライスの複数のブロックとを比較することによって、マウントされた前記第1スライスの修正ブロックを検出し、ここで、前記第2スライスは前記第1時刻よりも前に取り込まれた前記ユーザーデータのイメージであり、
検出された前記修正ブロックに対応する、マウントされた前記第1スライス内の少なくとも1つのファイルを前記ディスクのファイルシステム上で識別し、
ウイルスおよび/または悪意のあるソフトウェアについて前記少なくとも1つのファイルをスキャンし、
前記少なくとも1つのファイルがウイルスおよび/または悪意のあるソフトウェアに感染したことを検出したことに応じて、前記少なくとも1つのファイルを除く、マウントされた前記第1スライスの前記ユーザーデータを備える治癒スライスを生成するように構成されるハードウェアプロセッサーを備えるシステム。
【請求項11】
前記ハードウェアプロセッサーは、マウントされた前記第1スライスから前記少なくとも1つのファイルを取り除くことによって、前記治癒スライスを生成するように構成される、請求項10に記載のシステム。
【請求項12】
前記第2スライスに対する複数の修正ブロックは、マウントされた前記第1スライスのために存在し、
前記ハードウェアプロセッサーは、
前記第2スライスのコピーを生成することと、
前記複数の修正ブロックに対応するとともに前記少なくとも1つのファイルを含まない全ファイルを、前記第2スライスの前記コピーに転送し、ここで、前記第2スライスの前記コピーは前記治癒スライスである、ということと、
によって、前記治癒スライスを生成するように構成される、請求項10に記載のシステム。
【請求項13】
前記第2スライスは、マウントされた前記第1スライスよりも前または同時に前記ディスクにマウントされる、請求項10に記載のシステム。
【請求項14】
前記ハードウェアプロセッサーは、新しい前記治癒スライスを前記バックアップアーカイブに加えるようにさらに構成される、請求項10に記載のシステム。
【請求項15】
前記ハードウェアプロセッサーは、
前記バックアップアーカイブ内の前記複数のスライスのうちの、第3スライスをウイルスおよび悪意のあるソフトウェアについてスキャンし、ここで、前記第3スライスは前記第2スライスの生成時刻よりも前に取り込まれた前記ユーザーデータのイメージであり、
前記第3スライス内で感染したファイルを検出したことに応じて、データリカバリーに不適切なものとして、前記第3スライスの生成時刻の後に取り込まれた、前記複数のスライスのサブセットをマークし、ここで、前記第2スライスおよび前記第1スライスを備える、ようにさらに構成される、請求項10に記載のシステム。
【請求項16】
前記ハードウェアプロセッサーは、
前記感染したファイルに対応する前記第3スライスのブロックを識別し、
前記第2スライスおよび前記第1スライスを前記ディスクにマウントし、
前記ブロックを追跡し、前記第2スライスおよび前記第1スライスのいずれかに前記感染したファイルが存在するかを特定し、
それぞれの治癒スライスを生成することによって、前記第2スライスおよび前記第1スライスのいずれかから前記感染したファイルを取り除くようにさらに構成される、請求項15に記載のシステム。
【請求項17】
前記第1スライスは、仮想ディスクとしてマウントされる、請求項10に記載のシステム。
【請求項18】
前記少なくとも1つのファイルおよび前記修正ブロックの対応は、前記バックアップアーカイブのブロックマップを用いて、前記ハードウェアプロセッサーによって特定される、請求項10に記載のシステム。
【請求項19】
マルウェアについてアーカイブスライスを検査する、コンピューターが実行可能なインストラクションを保存する非一時的コンピューター読取可能媒体であって、
バックアップアーカイブ内の複数のスライスのうちの、第1スライスをディスクにマウントし、ここで、前記第1スライスは第1時刻でのユーザーデータのイメージであり、
前記複数のスライスのうちの、第2スライスの複数のブロックと、マウントされた前記第1スライスの複数のブロックとを比較することによって、マウントされた前記第1スライスの修正ブロックを検出し、ここで、前記第2スライスは前記第1時刻よりも前に取り込まれた前記ユーザーデータのイメージであり、
検出された前記修正ブロックに対応する、マウントされた前記第1スライス内の少なくとも1つのファイルを前記ディスクのファイルシステム上で識別し、
ウイルスおよび/または悪意のあるソフトウェアについて前記少なくとも1つのファイルをスキャンし、
前記少なくとも1つのファイルがウイルスおよび/または悪意のあるソフトウェアに感染したことを検出したことに応じて、前記少なくとも1つのファイルを除く、マウントされた前記第1スライスの前記ユーザーデータを備える治癒スライスを生成するインストラクションを含む、非一時的コンピューター読取可能媒体。
【請求項20】
前記バックアップアーカイブ内の前記複数のスライスのうちの、第3スライスをウイルスおよび悪意のあるソフトウェアについてスキャンし、ここで、前記第3スライスは前記第2スライスの生成時刻よりも前に取り込まれた前記ユーザーデータのイメージであり
前記第3スライス内で感染したファイルを検出したことに応じて、データリカバリーに不適切なものとして、前記第3スライスの生成時刻の後に取り込まれた、前記複数のスライスのサブセットをマークし、ここで、前記サブセットは前記第2スライスおよび前記第1スライスを備える、
ようにするためのインストラクションをさらに備える、請求項19に記載の非一時的コンピューター読取可能媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、保存されたアーカイブ内のウイルスおよびマルウェアの検出の分野に関しており、より具体的には、マルウェアについてアーカイブスライスを検査することによりバックアップアーカイブをスキャンするシステムおよび方法に関する。
【背景技術】
【0002】
一般的に、リカバリーのためのアーカイブのバックアップおよびストレージは、スケジュールに応じて定期的に行われる。バックアップが悪意のあるソフトウェアで汚染されているかもしれない、ということがよくある。そのため、複数の会社が、バックアップの前や、バックアップ中や、レストアの前などに、マルウェアのスキャンを行うソフトウェアを、しばしば自動化してきた。新しいタイプのマルウェアの出現によりアンチウイルスデータベースがしばしばアップデートされるため、ウイルスおよびマルウェアのスキャンは、周期的にかつ定期的に行われるべきである。しかしながら、大きなアーカイブの完全なスキャンは相当の時間および計算リソースを要するが、それらはしばしば利用できないか、時間とリソースを効率的に使用することができない。(ネットワークまたは用いられる通信チャネルのスピードおよび/またはチャネルに負荷の重さ次第で)クラウド内のアーカイブへのアクセスのスピードがローカルストレージデバイスにアクセスするよりも著しく遅いため、アーカイブがローカルではなくクラウドストレージに保存される場合、アーカイブのスキャンは、特に危険となる。さらに、あらゆる問題、たとえばウイルスおよび/または悪意のあるファイルがアーカイブ内で見つかるようなことが起こる場合、アーカイブは損傷または感染しているものとみなされ、システムリカバリーに使用したりファイルおよびデータを抽出したりすることには、全く適さないであろう。
【0003】
従来、感染したデータをレストアされることを回避するために、保存中に、複数の新しいスライスがアーカイブに加えられるときに、および/またはデータをレストアする前に、アンチウイルススキャナーでアーカイブが周期的にスキャンされる。しかしながら、現在、アーカイブ内の任意の時点をスキャンするためのソリューションがない。代わりに、全アーカイブをスキャンするソリューションが強いられる。その上、アーカイブ内で現在損傷しているまたは感染しているデータを修復することができない。
【発明の概要】
【発明が解決しようとする課題】
【0004】
開示の態様は、保存されたアーカイブ内のウイルスおよびマルウェアの検出の分野に関する。特に、開示の態様は、複数のアーカイブスライスを検査することにより複数のバックアップアーカイブをスキャンする方法およびシステムを説明する。
【課題を解決するための手段】
【0005】
例示的な一態様において、方法は、バックアップアーカイブ内の複数のスライスのうちの、第1スライスをディスクにマウントすることを含み、ここで当該第1スライスは第1時刻でのユーザーデータのイメージである。当該方法は、複数のスライスのうちの、第2スライスの複数のブロックと、マウントされた第1スライスの複数のブロックとを比較することによって、マウントされた第1スライスの修正ブロックを検出することをさらに含み、ここで、当該第2スライスは第1時刻よりも前に取り込まれたユーザーデータのイメージである。当該方法は、検出された修正ブロックに対応する、マウントされた第1スライス内の少なくとも1つのファイルをディスクのファイルシステム上で識別することと、ウイルスおよび悪意のあるソフトウェアについて少なくとも1つのファイルをスキャンすることとを含む。少なくとも1つのファイルが感染していることを検出したことに応じて、当該方法は、当該少なくとも1つのファイルを除く、マウントされた第1スライスのユーザーデータを備える治癒スライスを生成することを含む。
【0006】
いくつかの態様において、治癒スライスを生成することは、マウントされた第1スライスから少なくとも1つのファイルを取り除くことを含む。
【0007】
いくつかの態様において、第2スライスに対する複数の修正ブロックは、マウントされた第1スライスのために存在し、治癒スライスを生成することは、第2スライスのコピーを生成することと、複数の修正ブロックに対応するとともに当該少なくとも1つのファイルを含まない全ファイルを、第2スライスのコピーに転送することと、を含み、ここで、第2スライスのコピーは治癒スライスである。
【0008】
いくつかの態様において、第2スライスは、マウントされた第1スライスよりも前または同時にディスクにマウントされる。
【0009】
いくつかの態様において、当該方法は、新しい治癒スライスをバックアップアーカイブに加えることを含む。
【0010】
いくつかの態様において、当該方法は、第3スライスをウイルスおよび悪意のあるソフトウェアについてスキャンすることを含み、ここで、第3スライスは、バックアップアーカイブ内の複数のスライスのうちの、第2スライスの生成時刻よりも前に取り込まれたユーザーデータのイメージである。第3スライス内で感染したファイルを検出したことに応じて、当該方法は、データリカバリーに不適切なものとして、第3スライスの生成時刻の後に取り込まれた複数のスライスのサブセットをマークすることを含み、ここで、サブセットは、第2スライスおよび第1スライスを備える。
【0011】
いくつかの態様において、当該方法は、感染したファイルに対応する第3スライスのブロックを識別することと、第2スライスおよび第1スライスをディスクにマウントすることと、ブロックを追跡することと、第2スライスおよび第1スライスのいずれかに感染したファイルが存在するかを特定することとを含む。特定(すなわち、感染したファイルが少なくとも1つのスライス上に存在すること)に基づいて、当該方法は、それぞれの治癒スライスを生成することによって、第2スライスおよび第1スライスのいずれかから感染したファイルを取り除くことを含む。
【0012】
いくつかの態様において、1または複数の仮想ディスクとして複数のスライスをマウントすることができる。
【0013】
いくつかの態様において、少なくとも1つのファイルおよび修正ブロックの対応は、バックアップアーカイブのブロックマップを用いて特定される。
【0014】
ハードウェアプロセッサーを備えるシステムで上述の方法を実施してもよいことに注意すべきである。代わりに、非一時的コンピューター読取可能媒体の、コンピューターが実行可能なインストラクションを用いて、方法を実施してもよい。
【0015】
例示の態様の上記の簡単な概要は、本開示の基本的な理解を提供するのに役立つ。本概要は、想定されるすべての態様の広い概観ではなく、すべての態様の重要なまたは重大なエレメントを識別するものでも、本開示のいくつかのまたはすべての態様の範囲を描写するものでもない。その唯一の目的は、以下の開示のより詳細な説明の前置きとして簡単な形式で、1または複数の態様を提示することにある。前述のことを達成するために、本開示の1または複数の態様は、特許請求の範囲において記載されて例示的に指示される特徴を含む。
【図面の簡単な説明】
【0016】
本明細書の一部に組み込まれ、本明細書の一部を構成する添付図面は、本開示の1または複数の例示の態様を示し、詳細な説明とともに、それらの原理および実施態様を説明するのに役立つ。
【0017】
図1図1は、本開示の例示的な態様に従って、複数のアーカイブスライスを検査することにより複数のバックアップアーカイブをスキャンするシステムのブロック図である。
図2図2は、本開示の例示的な態様に応じて、複数のアーカイブスライスを検査することにより複数のバックアップアーカイブをスキャンするシーケンスのブロック図である。
図3図3は、本開示の例示的な態様に応じて、複数のアーカイブスライスを検査することにより複数のバックアップアーカイブをスキャンする方法のフロー図である。
図4図4は、本開示の例示的な態様に従って、複数のアーカイブスライスを検査することにより複数のバックアップアーカイブをスキャンする方法を示すフローチャートである。
図5図5は、例示的な態様に応じて、開示されたシステムおよび方法を実施することができるコンピューターシステムのブロック図である。
【発明を実施するための形態】
【0018】
マルウェアについて複数のアーカイブスライスを検査するシステム、方法、およびコンピュータープログラム製品の文脈において、例示的な態様がここで記載される。以下の説明が例示的であるに過ぎず、いかなる方法においても限定を意図していないことを、当業者は認識するであろう。本開示の利益を有する当業者は、他の態様を容易に思い付くであろう。以下、添付図面に示されるような例示の態様の実施態様に詳細に言及する。同じまたは同様の項目を表すために、図面および以下の説明の全体を通じて、可能な範囲で同じ参照指標が用いられる。
【0019】
図1は、本開示の例示的な態様に従って、複数のアーカイブスライスを検査することにより複数のバックアップアーカイブをスキャンするシステム100のブロック図である。
【0020】
システム100は、コンピューティングデバイス102と、アーカイブスキャナー110と、ディスク120と、クラウドアーカイブ130とを備える。クライアントコンピューティングデバイス102は、ラップトップコンピューター、タブレットコンピューター、モバイルデバイス、または同様のものなどの任意のタイプのモバイルコンピューティングデバイスであってもよい。また、コンピューティングデバイス102は、コンピューティングデバイス102に保存されるユーザーデータのバックアップを行うバックアップモジュール104を含み、ユーザーデータは、コンピューティングデバイス102のディスクの全体のバックアップイメージ、デバイス102にインストールされるソフトウェア、パーソナルドキュメントなどのユーザーアプリケーションデータ、または同様のものを含んでもよい。
【0021】
また、バックアップモジュール104は、コンピューティングデバイス102にローカルに保存されないデータを検索してもよい。例示的な態様において、バックアップモジュール104は、クラウドアーカイブ130へ、あるいは代わりにコンピューティングデバイス102に関連する物理ディスク上のローカルアーカイブへ、複数のバックアップスライス106のセットとしてユーザーデータを保存し、および/またはクラウドアーカイブ130から、あるいは代わりにコンピューティングデバイス102に関連する物理ディスク上のローカルアーカイブから、バックアップスライス106のセットとしてユーザーデータを検索する。複数のバックアップスライス106は、クラウドアーカイブ130内のバックアップアーカイブ108にまとめて保存される。それぞれのバックアップスライスは、特定の時点でのコンピューティングデバイス102のユーザーデータまたは物理ディスクのイメージである。時が経つにつれて、クラウドアーカイブ130は、それぞれが複数のバックアップスライスを備える、異なるコンピューティングデバイスについての多くのバックアップアーカイブ108を含む。
【0022】
バックアップモジュール104は、ネットワーク101(例えば、インターネット)上で、クラウドアーカイブ130と通信する。場合により、バックアップモジュール104がバックアップアーカイブ108からデータをレストアしたい場合、スキャンが行われる。バックアップアーカイブ108のサイズが大幅に(例えば、500GBなどの所定の閾値を超えて)増加したとき、行われるスキャンのリクエストは、大量の時間およびリソースを取ってもよい。アーカイブ108がローカルに保存される場合、バックアップモジュール104は、他の場所で必要とされてもよいコンピューティングデバイス102の大量のリソースを取ってもよい。そのようなリソースは、ストレージスペース、メモリー(例えば、RAM)、および処理能力を有していてもよい。
【0023】
リソースの過剰な消費を回避するために、ローカルおよび/またはクラウドプラットフォームで、クラウドアーカイブ130は、いくつかの例示的な態様に応じて、アーカイブスキャナー110によって周期的なスキャンを受ける。アーカイブスキャナー110は、アーカイブマウンターサービス112と、アーカイブAPI114と、アーカイブマウントドライバー116とを備える。ある態様においては、アーカイブスキャナー110は、ネットワーク101上のサービスとして実行しているが、ある態様においては、アーカイブスキャナー110は、コンピューティングデバイス102上で実行していてもよい。その上、他の構成が想定され、当該構成において、アーカイブスキャナーは、異なるサーバーまたは同じサーバーでクラウドアーカイブ130として作動してもよい。
【0024】
クラウドアーカイブからデータを検索するときに、コンピューティングデバイス102などのコンピューティングデバイスが偶発的に感染しないことを保証するために、アーカイブスキャナー110は、バックアップアーカイブ108でアンチウイルスおよびマルウェアのスキャンを行う。アーカイブスキャナー110を実行しているデバイス(例えば、サーバー)は、物理ディスク120を有していてもよい。例示的な態様において、デバイスは、ホストマシンおよび仮想マシンを備えていてもよい。例示的な態様において、アーカイブスキャナー110は、バックアップアーカイブ108をスキャンするリクエストを受信する。アーカイブAPI114は、バックアップアーカイブ108に保存される複数のスライスから、複数の新しい修正ブロックを検索するために用いられる。アーカイブマウントドライバー116は、バックアップアーカイブ108から、アーカイブスライスをマウントするリクエストを受信し、アーカイブスキャナー110がディスクとしてアーカイブを処理することが可能となる。アーカイブマウントドライバー116は、アーカイブスライスを仮想ディスク122としてマウントしてもよい。いくつかの態様に応じて、アーカイブマウントドライバー116は、変更が行われた場合、マウントされたスライスにおけるデータへの変更をセーブできるようにする。
【0025】
例示的な態様において、アーカイブスキャナー110は、最新スライスが生成されてからの、複数の最新スライスにおけるすべての修正ブロックを検出する。次に、アーカイブスキャナー110は、1または複数のスライス内の複数のファイルと、マウントされたディスク上の複数のデータブロックとの対応を特定するために、アーカイブAPI114を用いる。そのような特定は、ブロックマップを用いて行われてもよい。また、一度対応が生成されると、複数の修正ブロックと連携する、マウントされた仮想ディスク122上の複数のファイルは、新しいまたは修正されたものとみなされる。このため、仮想ディスク122上のこれらの新しいファイルを、感染、ウイルス、および悪意のあるソフトウェアについてスキャンすることができる。感染および/または損傷した複数のファイルならびにマルウェアを仮想ディスク122から取り除くために、アーカイブスキャナー110によって、アーカイブAPI114をさらに起動することができる。最後に、アーカイブスキャナー110は、クラウドアーカイブ130に保存された(またはコンピューティングデバイス102のローカルのストレージデバイスに保存された)バックアップアーカイブ108内の新しい治癒スライスとして、仮想ディスク122をセーブすることができる。いくつかの他の態様において、既存のスライスが取り除かれて新しい治癒スライスに置き換えられてもよい。
【0026】
ブロックマップを形成する態様は、特定のOSおよびファイルシステムに依存する。例えば、WindowsのNTFSにおいて、複数のファイルは、マスターファイルテーブル(Master File Table:MFT)に常駐する(MFTレコード内に保存される)ことができるか、またはボリュームストレージスペースに保存されて非常駐にすることができる。一態様において、非常駐ファイルの、割り当てられた複数のブロックは、システムファンクションコール、例えば、「FSCTL_GET_RETRIEVAL_POINTERS API」を用いて検索されてもよい。MFT常駐ファイルブロックマップは、MFTアロケーションおよび一般にMFTレコードナンバーである既知のファイル識別子の分析で特定されてもよい。MFTレコードナンバーは、MFT常駐ファイルの複数のブロックの検査および認識を可能にする。また、ファイルでもある全MFTがなければ、システムファンクション、例えば、「FSCTL_GET_RETRIEVAL_POINTERS」の助力によって、MFTアロケーションの分析を特定することができる。他のファイルシステムは、ファイルブロックマップを構築する独自の特別なアルゴリズムを要求することができる。
【0027】
感染したスライスを発見するために、バックアップアーカイブ108内の1または複数の古いスライスをスキャンするように、アーカイブスキャナー110を構成してもよい。そのような感染さもなければ破損したスライスが一度識別されると、アーカイブスキャナー110は、感染したスライスと、後に(一時的に)取り込まれた複数のスライスとを、感染しており、いかなるコンピューティングデバイスのデータリカバリーにも不適切なものとしてマークする。したがって、バックアップモジュール104は、感染したとしてマークされる複数のスライスをレストアしようとするいかなる試みもブロックするように構成される。その上、これにより、感染のタイプと、破損において関与してきたかもしれない要因とに関するさらなる分析のために用いることができる破損の時刻をアーカイブスキャナー110が確立することが可能になる。いくつかの態様において、コンピューティングデバイス102の過去の属性を、クラウドアーカイブ130または他の場所で保存することができ、破損/感染の原因のセットを確立するために、破損の時刻とともに分析することができる。将来の感染またはマルウェアの攻撃を防ぐためにこの分析を用いることができる。
【0028】
図2は、開示の例示的な態様に応じて、複数のアーカイブスライスを検査することにより複数のバックアップアーカイブをスキャンするシステムおよび方法のシーケンスを示すブロック図である。
【0029】
例示的な態様において、アーカイブマウンターサービス112、アーカイブAPI114、ならびにクラウドアーカイブ130およびローカルアーカイブ200は、ユーザーメモリー(User Memory:UM)スペース内に配置されてもよいが、アーカイブマウントドライバー116は、カーネルメモリー(Kernel Memory:KM)スペース内に配置されてもよい。クラウドアーカイブ130またはローカルアーカイブ200にアクセスするために、アーカイブスキャナー110は、アーカイブマウンターサービス112とコンタクトをとる。アーカイブマウンターサービス112は、アーカイブをディスク(例えば、仮想ディスク)にマウントするために、マウントドライバー116を用いる。
【0030】
図2を参照して、マウントドライバー116は、クラウドアーカイブ130内の複数のスライス(例えば、スライス202~206)のうちの、第1時刻での(例えば、コンピューティングデバイス102上の)ユーザーデータのイメージである第1スライス202をディスク120にマウントする。そして、アーカイブAPI114は、複数のスライスのうちの、第2スライス204の複数のブロックと、マウントされた第1スライスの複数のブロックとを比較することによって、マウントされた第1スライスの修正ブロックを検出する。ここで、第2スライス204は第1時刻よりも前に取り込まれたユーザーデータのイメージである。例えば、第1スライス202は、時刻tに生成されていてもよい。第2スライス204は、時刻t-1に生成されていてもよい。
【0031】
そして、アーカイブAPI114は、複数の変更されたブロックを見つけるために、それぞれのスライスのそれぞれのマウントされたディスクの複数のブロックを比較してもよい。修正ブロックが見つかると、アーカイブマウンターサービス112は、検出された修正ブロックに対応するマウントされた第1スライス内の少なくとも1つのファイルをディスクのファイルシステム上で識別する。そして、アーカイブスキャナー110は、ウイルスおよび悪意のあるソフトウェアについて少なくとも1つのファイルをスキャンする。少なくとも1つのファイルが感染していることを検出したことに応じて、アーカイブスキャナー110は、当該少なくとも1つのファイルを除く、マウントされた第1スライスのユーザーデータを備える治癒スライスを生成する。この生成プロセスは、マウントされた第1スライス202から当該少なくとも1つのファイルを取り除くことを含んでもよい。複数の修正ブロックがスライス204に対してスライス202内で見つけられるいくつかの場合において、生成プロセスは、第2スライス204のコピーを生成することと、複数の修正ブロックに対応するとともにいかなる感染したファイルも含まない全ファイルを第2スライスのコピーに転送することとを伴う(ここで、第2スライスのコピーは治癒スライスである)。
【0032】
いくつかの態様において、アーカイブスキャナー110は、ウイルスおよび悪意のあるソフトウェアについて、バックアップアーカイブ内の複数のスライスのうちの第3スライス206を任意にスキャンしてもよい。第3スライス206は、第2スライスの生成時刻よりも前(すなわち、t-N)に取り込まれたユーザーデータのイメージであってもよい。第3スライス206で、感染したファイルを検出したことに応じて、アーカイブスキャナー110は、第3スライスの生成時刻の後に取り込まれた複数のスライスのサブセットを、データリカバリーに不適切なものとしてマークしてもよい。この特定の例において、第1スライス202および第2スライス204の両方がサブセットに含まれる。
【0033】
いくつかの態様において、アーカイブスキャナー110は、感染したファイルに対応する第3スライス206のブロックを識別してもよい。アーカイブスキャナー110は、第2スライス204および第1スライス202をディスク120にマウントしてもよい。アーカイブスキャナー110は、ブロックを追跡し、第2スライスおよび第1スライスのいずれかに、感染したファイルが存在するかを特定してもよい。例えば、感染したファイルは、第2スライス204に存在するかもしれないが、ユーザーは、第1スライス202から、感染したファイルを既にマニュアルで取り除いていてもよい。感染したファイルは第1スライス202には存在しないため、第3スライス206および第2スライス204のみ治癒する必要がある。これにより、複数のスライスのクリーンなセットをバックアップアーカイブが有することが保証され、当該セットからユーザーはバックアップを行うことができる。
【0034】
いくつかの態様において、複数の感染したスライスをアーカイブが含む場合、アーカイブスキャナー110は、複数のスライスをスキャンすることによって、(スライス生成時刻に基づいて)感染がいつ発生したか、および感染源またはマルウェアの出所を特定するためにこれらのスライスを発見してもよい。
【0035】
図3は、本開示の例示的な態様に従って、アーカイブスライスを検査することによるバックアップアーカイブのスキャン方法300を示すフローチャートである。
【0036】
方法は、302で開始し、304へ進む。
【0037】
304で、アーカイブスキャナー110のコンポーネントは、複数のアーカイブスライスを検査することによって、バックアップアーカイブをスキャンする。アーカイブスキャナーのコンポーネントは、例えば、仮想ディスクをマウントすることによって、バックアップアーカイブからディスクへ最新スライスをマウントする。いくつかの態様において、仮想ディスクは、アーカイブスキャナー110を実行するサーバー上でマウントされてもよいが、本開示はその構成に限定されない。
【0038】
306で、アーカイブAPI114は、最新スライスが生成されてからの、複数の最新スライスにおけるすべての修正ブロックを検出することをリクエストされる。例示的な態様において、API114は、複数の修正ブロックを特定するために、スライスがマウントされる仮想ディスクの複数の下位ブロックを検査する。他の態様において、最新スライスの複数のブロックを、コンピューティングデバイスの以前の複数のバックアップのために以前に生成された複数のスライスの複数のブロックと比較することによって、修正ブロックが検出される。スライスによって異なる複数のブロックは、複数のブロックの修正されたセットを備える。
【0039】
308で、アーカイブスキャナー110は、1または複数のスライス内の複数のファイルと、マウントされたディスク上の複数のデータブロックとの対応を特定する。いくつかの態様において、アーカイブスキャナー110は、マウントされている特定のバックアップスライスのブロックマップを確立するかまたは読み取り、ブロックマップは、どのブロックがどのファイルに対応するかを示す。
【0040】
310で、アーカイブスキャナー110は、ディスクのファイルシステム上で、複数の修正データブロックを識別することによって複数の修正されたファイルを特定する。複数の修正データブロックが識別されているので、どのファイルが修正データブロックに対応するのかを識別するためにブロックを用いることができる。
【0041】
312で、ウイルスおよび悪意のあるソフトウェアについて前のバックアップスライスが完了したので、アーカイブスキャナー110は、ファイルシステム上の複数の修正されたファイルをスキャンする。
【0042】
314で、アーカイブスキャナー110は、感染および/または損傷した複数のファイルならびにマルウェアを仮想ディスクから取り除いてもよい。そして、仮想ディスクを、最新スライスとしてセーブすることができ、クラウドアーカイブ130またはローカルディスクでバックアップアーカイブ108へ再挿入することができる。
【0043】
方法は320で終了する。
【0044】
図4は、本開示の例示的な態様に従って、複数のアーカイブスライスを検査することにより複数のバックアップアーカイブをスキャンする別の方法400を示すフローチャートである。
【0045】
方法は、402で開始し、404へ進む。
【0046】
404で、アーカイブスキャナー110は、方法300で仮想ディスクにマウントされたバックアップイメージをスキャンする。例示的な態様において、示されるように、バックアップイメージまたはアーカイブイメージは、仮想ディスクとしてマウントされてもよく、または他の態様において、スライスを物理ディスクへレストアする。
【0047】
406で、複数の感染したファイルは、識別されてマークされる。いくつかの態様において、ブロックマップまたは他の方法を用いて方法300で識別される、複数の修正ブロックに基づいて複数のファイルが識別される。ブロックマップは、マウントされたイメージ上の複数のブロックと複数のファイルとの対応を示す。このため、複数の修正ブロックが識別されるとき、アーカイブスキャナー310は、複数の修正ファイルを識別することができる。
【0048】
408で、マウントされたバックアップイメージ上にある、いかなるマルウェアも、仮想ディスク上の複数のファイルに対してウイルスおよびマルウェアのスキャンを行うことによって識別される。
【0049】
410で、複数の感染したファイルおよびマルウェアは、アーカイブスキャナー110によってディスク(例えば、仮想ディスク)のファイルシステムから取り除かれる。いくつかの態様において、複数の感染したファイルおよび/またはマルウェアは、仮想ディスクまたは他の場所に隔離される。複数の感染したファイルを仮想ディスクの隔離状態に移動することは、隔離状態を有する、治癒スライスを生成することを要求することに注意すべきである。
【0050】
412で、仮想ディスクを新しいスライスとして転送することによって、複数の感染したファイルおよびマルウェアを除外して、新しいスライスがアーカイブスキャナー110によって生成される。新しいスライスは、新しい仮想ディスクもしくは仮想ディスク122などの他の場所に、または図2に示すようなクラウドアーカイブ130(例えば、最新スライス202)に保存される。
【0051】
414で、アーカイブスキャナーは、バックアップアーカイブ(例えば、アーカイブ108)内の最新スライスのトップに、新しく生成された治癒スライスを加える。いくつかの代替の態様において、新しく生成されたスライスは、最新スライスまたは感染したスライスに置き換えてもよい。
【0052】
方法は420で終了する。
【0053】
図5は、複数のアーカイブスライスを検査することにより複数のバックアップアーカイブをスキャンするシステムおよび方法の態様が例示的な態様に従って実施されるコンピューターシステム20を示すブロック図である。コンピューターシステム20は、前述のシステム100の任意のコンポーネントに対応し得ることに注意すべきである。コンピューターシステム20は、複数のコンピューティングデバイスの形式で、または、例えば、デスクトップコンピューター、ノートブックコンピューター、ラップトップコンピューター、モバイルコンピューティングデバイス、スマートフォン、タブレットコンピューター、サーバー、メインフレーム、組み込みデバイス、および他の形式のコンピューティングデバイスの単一のコンピューティングデバイスの形式にすることができる。
【0054】
示すように、コンピューターシステム20は、中央処理装置(Central Processing Unit:CPU)21と、システムメモリー22と、CPU21に関連するメモリーを含む様々なシステムコンポーネントを接続するシステムバス23とを含む。システムバス23は、バスメモリーまたはバスメモリーコントローラーと、ペリフェラルバスと、他のバスアーキテクチャーと相互に作用することができるローカルバスとを備えてもよい。バスの例は、PCI、ISA、PCI-Express、HyperTransport(商標)、InfiniBand(商標)、Serial ATA、IC、および他の適切なインターコネクトを含んでもよい。(プロセッサーとも呼ばれる)CPU21は、単一のまたは複数のコアを有するプロセッサーの単一のまたは複数のセットを含むことができる。プロセッサー21は、本開示の技術を実施する、1または複数の、コンピューターが実行可能なコードを実行してもよい。システムメモリー22は、ここで用いられるデータおよび/またはプロセッサー21によって実行可能なコンピュータープログラムを保存するための任意のメモリーであってもよい。システムメモリー22は、ランダムアクセスメモリー(Random Access Memory:RAM)25などの揮発性メモリー、およびリードオンリーメモリー(Read Only Memory:ROM)24やフラッシュメモリーなどの不揮発性メモリー、またはその任意の組み合わせを含んでもよい。ベーシックインプット/アウトプットシステム(Basic Input/Output System:BIOS)26は、ROM24を使用するオペレーティングシステムをロードする際のものなどのコンピューターシステム20のエレメント間の情報の転送のためのベーシックプロシージャーを保存してもよい。
【0055】
コンピューターシステム20は、1または複数のリムーバブルストレージデバイス27、1または複数のノンリムーバブルストレージデバイス28、またはその組み合わせなどの1または複数のストレージデバイスを含んでもよい。1または複数のリムーバブルストレージデバイス27およびノンリムーバブルストレージデバイス28は、ストレージインターフェイス32を通じてシステムバス23に接続される。一態様において、ストレージデバイスおよび対応するコンピューター読取可能記憶媒体は、コンピューターインストラクション、データ構造、プログラムモジュール、およびコンピューターシステム20の他のデータのストレージのための電力独立モジュールである。システムメモリー22、リムーバブルストレージデバイス27、およびノンリムーバブルストレージデバイス28は、様々なコンピューター読取可能記憶媒体を用いてもよい。コンピューター読取可能記憶媒体の例は、キャッシュ、SRAM、DRAM、ゼロキャパシターRAM、ツイントランジスターRAM、eDRAM、EDO RAM、DDR RAM、EEPROM、NRAM、RRAM、SONOS、PRAMなどのマシンメモリーと、フラッシュメモリー、またはソリッドステートドライブ(Solid State Drives:SSDs)もしくはフラッシュドライブなどの他のメモリー技術と、磁気カセット、磁気テープ、およびハードディスクドライブまたはフロッピーディスクなどの磁気ディスクストレージと、コンパクトディスク(CD-ROM)またはデジタルバーサタイルディスク(Digital Versatile Disks:DVDs)などの光ストレージと、所望のデータを保存するために用いられ、コンピューターシステム20によってアクセスされ得る他の媒体とを含む。
【0056】
コンピューターシステム20のシステムメモリー22、リムーバブルストレージデバイス27、およびノンリムーバブルストレージデバイス28は、オペレーティングシステム35、追加のプログラムアプリケーション37、他のプログラムモジュール38、およびプログラムデータ39を保存するために用いられてもよい。コンピューターシステム20は、インプットデバイス40からデータを通信するためのペリフェラルデバイス46を含んでもよい。インプットデバイス40は、キーボード、マウス、スタイラス、ゲームコントローラー、ボイスインプットデバイス、タッチインプットデバイス、または他のペリフェラルデバイスなどである。他のペリフェラルデバイスは、1または複数のI/Oポートによるプリンターまたはスキャナーなどである。I/Oポートは、シリアルポート、パラレルポート、ユニバーサル・シリアル・バス(Universal Serial Bus:USB)、または他のペリフェラルインターフェイスなどである。また、1または複数のモニター、プロジェクター、または一体型ディスプレーなどのディスプレーデバイス47は、ビデオアダプターなどのアウトプットインターフェイス48を超えてシステムバス23に接続されてもよい。コンピューターシステム20は、ディスプレーデバイス47の他に、スピーカーおよび他の音響映像デバイスなどの他のペリフェラルアウトプットデバイス(図示せず)を備えていてもよい。
【0057】
コンピューターシステム20は、1または複数のリモートコンピューター49へのネットワーク接続を用いて、ネットワーク環境内で作動してもよい。リモートコンピューター(またはコンピューター)49は、コンピューターシステム20の性質を表す、ほとんどのまたはすべての前述のエレメントを備える、ローカルコンピューターワークステーションまたはサーバーであってもよい。また、他のデバイスは、限定されないが、ルーター、ネットワークステーション、ピアデバイス、または他のネットワークノードなどのコンピューターネットワーク内にあってもよい。コンピューターシステム20は、1または複数のネットワークを通じてリモートコンピューター49と通信するための、1または複数のネットワークインターフェイス51またはネットワークアダプターを含んでもよい。ネットワークは、ローカルエリアコンピューターネットワーク(Local-Area computer Network:LAN)、ワイドエリアコンピューターネットワーク(Wide-Area computer Network:WAN)、イントラネット、およびインターネットなどである。ネットワークインターフェイス51の例は、イーサネットインターフェイス、フレームリレーインターフェイス、ソネットインターフェイス、およびワイヤレスインターフェイスを含んでもよい。
【0058】
本開示の態様は、システム、方法、および/またはコンピュータープログラム製品であってもよい。コンピュータープログラム製品は、コンピューター読取可能記憶媒体(または媒体)を含んでもよい。コンピューター読取可能記憶媒体(または媒体)は、本開示の態様をプロセッサーに実行させるコンピューター読取可能プログラム命令をそこに有する。
【0059】
コンピューター読取可能記憶媒体は、コンピューターシステム20などの、コンピューティングデバイスのプロセッサーによってアクセスされ得るインストラクションまたはデータ構造の形式のプログラムコードを保持および保存することができるタンジブルデバイスにすることができる。コンピューター読取可能記憶媒体は、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁気ストレージデバイス、半導体ストレージデバイス、またはその任意の適切な組み合わせであってもよい。一例として、そのようなコンピューター読取可能記憶媒体は、RAM、ROM、EEPROM、ポータブルコンパクトディスクリードオンリーメモリー(Compact Disc Read-Only Memory:CD-ROM)、デジタルバーサタイルディスク(Digital Versatile Disk:DVD)、フラッシュメモリー、ハードディスク、ポータブルコンピューターディスケット、メモリーステイック、フロッピーディスク、または機械的にコード化されたデバイスさえも備えることができる。機械的にコード化されたデバイスは、パンチカードまたは、インストラクションを記録させる溝における向上した構造などである。ここで用いられるように、コンピューター読取可能記憶媒体は、一時的なシグナルそれ自体として解釈されるべきでない。一時的なシグナル自体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは送信媒体を通じて伝播する電磁波、またはワイヤを通じて送信される電気信号などである。
【0060】
コンピューター読取可能記憶媒体からそれぞれのコンピューティングデバイスへ、またはネットワークを通じて外部のコンピューターまたは外部のストレージデバイスへ、ここで記載されるコンピューター読取可能プログラム命令をダウンロードすることができる。ネットワークは、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはワイヤレスネットワークである。ネットワークは、送信銅ケーブル、光送信ファイバー、ワイヤレス送信、ルーター、ファイアウォール、スイッチ、ゲートウェイコンピューター、および/またはエッジサーバーを備えてもよい。それぞれのコンピューティングデバイスにおけるネットワークインターフェイスは、ネットワークからコンピューター読取可能プログラム命令を受信し、それぞれのコンピューティングデバイス内のコンピューター読取可能記憶媒体内のストレージのコンピューター読取可能プログラム命令を転送する。
【0061】
本開示のオペレーションを実行するコンピューター読取可能プログラム命令は、アセンブリーインストラクション、インストラクションセットアーキテクチャー(Instruction-Set-Architecture:ISA)インストラクション、マシンインストラクション、マシン依存のインストラクション、マイクロコード、ファームウェアインストラクション、状態設定データ、またはソースコードか1または複数のプログラミング言語の任意の組み合わせで書かれたオブジェクトコードであってもよい。プログラミング言語は、オブジェクト指向プログラミング言語および従来の手続き型プログラミング言語を含む。コンピューター読取可能プログラム命令は、ユーザーのコンピューター全体で、スタンドアローンのソフトウェアパッケージとしてユーザーのコンピューターの一部で、ユーザーコンピューターの一部およびリモートコンピューターの一部で、またはリモートコンピューターもしくはサーバー全体で実行してもよい。後者のシナリオにおいて、リモートコンピューターは、LANまたはWANを含む任意のタイプのネットワークを通じてユーザーのコンピューターに接続されてもよく、または接続は、(例えば、インターネットを通じて、)外部のコンピューターに対して行われてもよい。いくつかの態様において、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(Field-Programmable Gate Arrays:FPGA)、またはプログラマブルロジックアレイ(Programmable Logic Arrays:PLA)を含む電子回路は、本開示の態様を行うために、電子回路をパーソナライズするコンピューター読取可能プログラム命令の状態情報を利用することによって、コンピューター読取可能プログラム命令を実行してもよい。
【0062】
様々な態様において、本開示に記載されるシステムおよび方法を、モジュールの観点で扱うことができる。ここで用いられる「モジュール」という用語は、実世界のデバイス、コンポーネント、またはコンポーネントの配置を表す。当該コンポーネントは、アプリケーションスペシフィックインテグレイテッドサーキット(Application Specific Integrated Circuit:ASIC)もしくはFPGAなどによってハードウェアを用いて実施されるか、または、例えば、マイクロプロセッサーシステムと、(実行されている間に)マイクロプロセッサーシステムを特別な目的のデバイスに変換するモジュールの機能を実施するインストラクションのセットなどによってハードウェアおよびソフトウェアの組み合わせとして実施される。また、モジュールは、上記2つの組み合わせとして、ハードウェア単体によって容易になるある機能、ならびにハードウェアおよびソフトウェアの組み合わせによって容易になる他の機能を用いて実施されてもよい。ある実施態様において、モジュールの少なくとも一部、場合により、すべてが、(上記の図5でより詳細に記載されるものなどの)コンピューターシステムのプロセッサー上で実行されてもよい。したがって、それぞれのモジュールは、様々な適切な構成で実現されてもよく、ここで例示されるいかなる特定の実施態様にも限定されるべきではない。
【0063】
明瞭にするために、すべての定型の特徴がここで記載されているわけではない。本開示の任意の実際の実施態様の開発において、開発者の特定の目的を達成するために、数多くの実施態様特有の決定をしなければならず、当該特定の目的は、様々な実施態様および様々な開発者によって変わることが理解されるであろう。そのような開発努力は、複雑で時間を要するものかもしれないが、本開示の利益を有する当業者にとって日常的な技術業務であることが理解される。
【0064】
その上、本明細書の語法または術語が、ここで提示される教示および案内の観点で関連技術の当業者の知識と組み合わせて、当業者によって解釈されるように、ここで用いられる語法または術語は、説明の目的であって制限の目的でないことが理解される。さらに、明細書または特許請求の範囲のいかなる用語も、特に明示されていない限り、一般的でないまたは特別な意味があるとみなされることを意図していない。
【0065】
ここで開示される様々な態様は、例示によってここで示された既知のモジュールと同等の現在および将来において既知のものを包含する。さらに、態様および応用が示されて説明されているが、本開示の利益を有する当業者にとって、ここで開示された発明のコンセプトから外れることなく、上述のものよりも多くの変更が可能であることが明らかであろう。
図1
図2
図3
図4
図5