(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-04
(45)【発行日】2024-06-12
(54)【発明の名称】同期中にデータを保護するためのシステム及び方法
(51)【国際特許分類】
G06F 21/56 20130101AFI20240605BHJP
G06F 21/60 20130101ALI20240605BHJP
【FI】
G06F21/56 320
G06F21/60
【外国語出願】
(21)【出願番号】P 2022179626
(22)【出願日】2022-11-09
【審査請求日】2023-02-06
(32)【優先日】2021-12-21
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-09-01
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】313015247
【氏名又は名称】アクロニス・インターナショナル・ゲーエムベーハー
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】ウラジミール ストロゴフ
(72)【発明者】
【氏名】セルグ ベル
(72)【発明者】
【氏名】スタニスラフ プロタソフ
【審査官】宮司 卓佳
(56)【参考文献】
【文献】米国特許出願公開第2015/0007329(US,A1)
【文献】特開2019-204510(JP,A)
【文献】特表2008-507055(JP,A)
【文献】特開平06-110718(JP,A)
【文献】特開2009-110225(JP,A)
【文献】米国特許出願公開第2006/0294589(US,A1)
【文献】米国特許出願公開第2006/0037079(US,A1)
【文献】米国特許出願公開第2004/0158730(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/56
G06F 21/60
(57)【特許請求の範囲】
【請求項1】
同期データネットワークにおけるマルウェアの拡散を防止するための方法であって、前記方法は、
複数のコンピューティングデバイスに接続されたサーバによって、前記複数のコンピューティングデバイスのうちの第1のコンピューティングデバイスからファイルを第1の時刻に受信することと、
マルウェアについて前記ファイルをスキャンし、前記マルウェアが検出されないという判決に応答して、前記ファイルを前記サーバ上に格納することと、
前記サーバ上に格納された前記ファイルに対する変更を監視することと、
変更を検出したことに応答して、前記ファイルに対する前記変更を示すレコードを生成することと、
前記複数のコンピューティングデバイスのうちの第2のコンピューティングデバイスから、前記サーバから前記ファイルをダウンロードするためのダウンロード要求を受信することであって、前記ダウンロード要求が、前記第1の時刻に続く第2の時刻に受信される、受信することと、
前記第1の時刻と前記第2の時刻との間の前記ファイルに対する何らかの変更を示す少なくとも1つのレコードが存在するかどうかを判定することと、
前記レコードが存在すると判定したことに応答して、マルウェアについて前記ファイルをスキャンすることと、
前記サーバ上に格納された前記ファイルがマルウェアに関連付けられていると判定したことに応答して、前記ダウンロード要求を拒否することと、
を含む、方法。
【請求項2】
前記ファイルを受信することが、
前記第1のコンピューティングデバイスからの前記ファイルをアップロードするためのアップロード要求を検出することと、
前記第1のコンピューティングデバイスからの前記ファイルがマルウェアに関連付けられているかどうかを示すスキャン判決を要求することと、
前記ファイルがマルウェアに関連付けられていないというスキャン判決を受信したことに応答して、前記アップロード要求を承諾し、前記第1の時刻に前記ファイルを前記サーバ上に格納することと、
を含む、請求項1に記載の方法。
【請求項3】
前記レコードが、前記サーバ上のファイルに対して行われた変更を複数のレコードに格納する分散型台帳の一部である、請求項1に記載の方法。
【請求項4】
前記分散型台帳が、前記複数のコンピューティングデバイスにわたって同期されたファイルに限定された変更及びスキャン判決を格納し、前記複数のレコードの各レコードが、前記複数のコンピューティングデバイスによって検証される、請求項3に記載の方法。
【請求項5】
前記サーバから前記ファイルを削除すること、
前記サーバ上で前記ファイルを隔離すること、及び
前記第1のコンピューティングデバイスからのマルウェアに関連付けられていない前記ファイルのバージョンを要求すること、
のうちの1つ以上を含む、矯正アクションを実行すること
をさらに含む、請求項1に記載の方法。
【請求項6】
前記サーバ上に格納された前記ファイルがマルウェアに関連付けられていないと判定したことに応答して、前記ダウンロード要求を承諾し、前記ファイルを前記第2のコンピューティングデバイスに送信すること
をさらに含む、請求項1に記載の方法。
【請求項7】
前記サーバ上に格納された前記ファイルに対して実行された前記スキャンの結果を含む別のレコードを生成することをさらに含み、前記結果が、前記ファイルがマルウェアに関連付けられていないことを示す、
請求項6に記載の方法。
【請求項8】
第3のコンピューティングデバイスから、前記サーバから前記ファイルをダウンロードするための別のダウンロード要求を受信することであって、前記別のダウンロード要求が、前記第2の時刻に続く第3の時刻に受信される、受信することと、
前記別のレコードが前記ファイルについての最新のレコードであると判定したことに応答して、前記ファイルの別のスキャンを実行することなく前記別のダウンロード要求を承諾することと、
をさらに含む、請求項7に記載の方法。
【請求項9】
同期データネットワークにおけるマルウェアの拡散を防止するためのシステムであって、前記システムが、
メモリと、
前記メモリと通信可能に結合されたハードウェアプロセッサと、を備え、前記ハードウェアプロセッサが、
複数のコンピューティングデバイスに接続されたサーバによって、前記複数のコンピューティングデバイスのうちの第1のコンピューティングデバイスからファイルを第1の時刻に受信することと、
マルウェアについて前記ファイルをスキャンし、前記マルウェアが検出されないという判決に応答して、前記ファイルを前記サーバ上に格納することと、
前記サーバ上に格納された前記ファイルに対する変更を監視することと、
変更を検出したことに応答して、前記ファイルに対する前記変更を示すレコードを生成することと、
前記複数のコンピューティングデバイスのうちの第2のコンピューティングデバイスから、前記サーバから前記ファイルをダウンロードするためのダウンロード要求を受信することであって、前記ダウンロード要求が、前記第1の時刻に続く第2の時刻に受信される、受信することと、
前記第1の時刻と前記第2の時刻との間の前記ファイルに対する何らかの変更を示す少なくとも1つのレコードが存在するかどうかを判定することと、
前記レコードが存在すると判定したことに応答して、マルウェアについて前記ファイルをスキャンすることと、
前記サーバ上に格納された前記ファイルがマルウェアに関連付けられていると判定したことに応答して、前記ダウンロード要求を拒否することと、
を行うように構成されている、
システム。
【請求項10】
前記ハードウェアプロセッサが、
前記第1のコンピューティングデバイスからの前記ファイルをアップロードするためのアップロード要求を検出することと、
前記第1のコンピューティングデバイスからの前記ファイルがマルウェアに関連付けられているかどうかを示すスキャン判決を要求することと、
前記ファイルがマルウェアに関連付けられていないというスキャン判決を受信したことに応答して、前記アップロード要求を承諾し、前記第1の時刻に前記ファイルを前記サーバ上に格納することと、
によって前記ファイルを受信するように構成されている、請求項9に記載のシステム。
【請求項11】
前記レコードが、前記サーバ上のファイルに対して行われた変更を複数のレコードに格納する分散型台帳の一部である、請求項9に記載のシステム。
【請求項12】
前記分散型台帳が、前記複数のコンピューティングデバイスにわたって同期されたファイルに限定された変更及びスキャン判決を格納し、前記複数のレコードの各レコードが、前記複数のコンピューティングデバイスによって検証される、請求項11に記載のシステム。
【請求項13】
前記ハードウェアプロセッサが、
前記サーバから前記ファイルを削除すること、
前記サーバ上で前記ファイルを隔離すること、及び
前記第1のコンピューティングデバイスからのマルウェアに関連付けられていない前記ファイルのバージョンを要求すること、
のうちの1つ以上を含む、矯正アクションを実行すること
を行うようにさらに構成されている、請求項9に記載のシステム。
【請求項14】
前記ハードウェアプロセッサが、
前記サーバ上に格納された前記ファイルがマルウェアに関連付けられていないと判定したことに応答して、前記ダウンロード要求を承諾し、前記ファイルを前記第2のコンピューティングデバイスに送信するようにさらに構成されている、
請求項9に記載のシステム。
【請求項15】
前記ハードウェアプロセッサが、
前記サーバ上に格納された前記ファイルに対して実行された前記スキャンの結果を含む別のレコードを生成するようにさらに構成されており、前記結果が、前記ファイルがマルウェアに関連付けられていないことを示す、
請求項14に記載のシステム。
【請求項16】
前記ハードウェアプロセッサが、
第3のコンピューティングデバイスから、前記サーバから前記ファイルをダウンロードするための別のダウンロード要求を受信することであって、前記別のダウンロード要求が、前記第2の時刻に続く第3の時刻に受信される、受信することと、
前記別のレコードが前記ファイルについての最新のレコードであると判定したことに応答して、前記ファイルの別のスキャンを実行することなく前記別のダウンロード要求を承諾することと、
を行うようにさらに構成されている、請求項15に記載のシステム。
【請求項17】
同期データネットワークにおけるマルウェアの拡散を防止するためのコンピュータ実行可能命令を格納する非一時的コンピュータ可読媒体であって、前記コンピュータ実行可能命令が、
複数のコンピューティングデバイスに接続されたサーバによって、前記複数のコンピューティングデバイスのうちの第1のコンピューティングデバイスからファイルを第1の時刻に受信することと、
マルウェアについて前記ファイルをスキャンし、前記マルウェアが検出されないという判決に応答して、前記ファイルを前記サーバ上に格納することと、
前記サーバ上に格納された前記ファイルに対する変更を監視することと、
変更を検出したことに応答して、前記ファイルに対する前記変更を示すレコードを生成することと、
前記複数のコンピューティングデバイスのうちの第2のコンピューティングデバイスから、前記サーバから前記ファイルをダウンロードするためのダウンロード要求を受信することであって、前記ダウンロード要求が、前記第1の時刻に続く第2の時刻に受信される、受信することと、
前記第1の時刻と前記第2の時刻との間の前記ファイルに対する何らかの変更を示す少なくとも1つのレコードが存在するかどうかを判定することと、
前記レコードが存在すると判定したことに応答して、マルウェアについて前記ファイルをスキャンすることと、
前記サーバ上に格納された前記ファイルがマルウェアに関連付けられていると判定したことに応答して、前記ダウンロード要求を拒否することと、
のための命令を含む、
非一時的コンピュータ可読媒体。
【請求項18】
前記ファイルを受信するための命令が、
前記第1のコンピューティングデバイスからの前記ファイルをアップロードするためのアップロード要求を検出することと、
前記第1のコンピューティングデバイスからの前記ファイルがマルウェアに関連付けられているかどうかを示すスキャン判決を要求することと、
前記ファイルがマルウェアに関連付けられていないというスキャン判決を受信したことに応答して、前記アップロード要求を承諾し、前記第1の時刻に前記ファイルを前記サーバ上に格納することと、
のための命令をさらに含む、請求項17に記載の非一時的コンピュータ可読媒体。
【請求項19】
前記レコードが、前記サーバ上のファイルに対して行われた変更を複数のレコードに格納する分散型台帳の一部である、請求項17に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記分散型台帳が、前記複数のコンピューティングデバイスにわたって同期されたファイルに限定された変更及びスキャン判決を格納し、前記複数のレコードの各レコードが、前記複数のコンピューティングデバイスによって検証される、請求項19に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データセキュリティの分野に関し、より具体的には、同期中にデータを保護するためのシステム及び方法に関する。
【背景技術】
【0002】
デバイスのネットワークにおいて、データを同期させる最も一般的な方法は、1つのデバイス(例えば、スマートフォン)からデータを受信し、次いでネットワーク内の他の全てのデバイス(例えば、ラップトップ、コンピュータ、タブレット等)にデータを送信する、中央サーバを使用することである。データは、リンクとして又はコピーとして宛先デバイスに送信することができる。コピーは、宛先デバイス上にローカルに格納することができるデータの複製バージョンを提供する。対照的に、リンクは、サーバ上のデータにアドレスを提供し、宛先デバイスがデータに直接アクセスすることを可能にする。この方式は、ローカルディスクスペースを節約するために現代のクラウドサービスで広く使用されている。
【0003】
中央サーバを介さずに最も近くの利用可能なデバイスにデータを送信する直接同期方法もある。この方法は、同期されるデバイスが同じローカルエリアネットワーク内にあり、かつ中央サーバがクラウドにある場合(例えば、グローバルネットワーク)に利用される。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、どちらの同期方法でも、同期データが感染する危険性がある。これは、ソースデバイスからのデータアップロードと宛先デバイスへのダウンロードとの間でかなりの時間が経過する可能性があるためである。この時間の間、データは、中央サーバ又はソースデバイス上で感染する可能性がある。
【0005】
起こり得る感染からデータを保護するための標準アルゴリズムは、中央サーバにデータを送信するときにマルウェア対策スキャンを実行することを伴う。しかしながら、サーバ上のデータは、データがネットワーク内の他の全ての同期デバイスに送信される前に、ランサムウェア及びマルウェアによって攻撃される可能性がある。これは、例えば、ウイルス対策プログラムが一時的に停止されたときに起こり得る(サーバ上に新しいソフトウェアをインストールするときにしばしば必要とされる)。したがって、同期データが宛先デバイスに到達した途端に、ソースデバイスからのアップロード中にデータに問題がないにもかかわらず、感染する可能性がある。
【課題を解決するための手段】
【0006】
1つの例示的な態様では、本明細書に記載の技術は、同期データネットワークにおけるマルウェアの拡散を防止するための方法に関し、方法は、複数のコンピューティングデバイスに接続されたサーバによって、複数のコンピューティングデバイスのうちの第1のコンピューティングデバイスからファイルを第1の時刻に受信することと、サーバ上に格納されたファイルに対する変更を監視することと、変更を検出したことに応答して、ファイルに対する変更を示すレコードを生成することと、複数のコンピューティングデバイスのうちの第2のコンピューティングデバイスから、サーバからファイルをダウンロードするためのダウンロード要求を受信することであって、ダウンロード要求が、第1の時刻に続く第2の時刻に受信される、受信することと、第1の時刻と第2の時刻との間のファイルに対する何らかの変更を示す少なくとも1つのレコードが存在するかどうかを判定することと、レコードが存在すると判定したことに応答して、マルウェアについてファイルをスキャンすることと、サーバ上に格納されたファイルがマルウェアに関連付けられていると判定したことに応答して、ダウンロード要求を拒否することと、を含む。
【0007】
いくつかの態様では、本明細書に記載の技術は、ファイルを受信することが、第1のコンピューティングデバイスからのファイルをアップロードするためのアップロード要求を検出することと、第1のコンピューティングデバイスからのファイルがマルウェアに関連付けられているかどうかを示すスキャン判決を要求することと、ファイルがマルウェアに関連付けられていないというスキャン判決を受信したことに応答して、アップロード要求を承諾し、第1の時刻にファイルをサーバ上に格納することと、を含む、方法に関する。
【0008】
いくつかの態様では、本明細書に記載の技術は、レコードが、サーバ上のファイルに対して行われた変更を複数のレコードに格納する分散型台帳の一部である、方法に関する。
【0009】
いくつかの態様では、本明細書に記載の技術は、分散型台帳が、複数のコンピューティングデバイスにわたって同期されたファイルに限定された変更及びスキャン判決を格納し、複数のレコードの各レコードが、複数のコンピューティングデバイスによって検証される、方法に関する。
【0010】
いくつかの態様では、本明細書に記載の技術は、サーバからファイルを削除すること、サーバ上でファイルを隔離すること、及び第1のコンピューティングデバイスからのマルウェアに関連付けられていないファイルのバージョンを要求すること、のうちの1つ以上を含む、矯正アクションを実行することをさらに含む、方法に関する。
【0011】
いくつかの態様では、本明細書に記載の技術は、サーバ上に格納されたファイルがマルウェアに関連付けられていないと判定したことに応答して、ダウンロード要求を承諾し、ファイルを第2のコンピューティングデバイスに送信することをさらに含む、方法に関する。
【0012】
いくつかの態様では、本明細書に記載の技術は、サーバ上に格納されたファイルに対して実行されたスキャンの結果を含む別のレコードを生成することをさらに含み、結果が、ファイルがマルウェアに関連付けられていないことを示す、方法に関する。
【0013】
いくつかの態様では、本明細書に記載の技術は、第3のコンピューティングデバイスから、サーバからファイルをダウンロードするための別のダウンロード要求を受信することであって、別のダウンロード要求が、第2の時刻に続く第3の時刻に受信される、受信することと、別のレコードがファイルについての最新のレコードであると判定したことに応答して、ファイルの別のスキャンを実行することなく別のダウンロード要求を承諾することと、をさらに含む、方法に関する。
【0014】
上述した方法は、ハードウェアプロセッサを備えるシステムに実装されてもことに留意されたい。あるいは、方法は、非一時的コンピュータ可読媒体のコンピュータ実行可能命令を用いて実装されてもよい。
【0015】
いくつかの態様では、本明細書に記載の技術は、同期データネットワークにおけるマルウェアの拡散を防止するためのシステムに関し、システムは、メモリと、メモリと通信可能に結合されたハードウェアプロセッサと、を備え、ハードウェアプロセッサは、複数のコンピューティングデバイスに接続されたサーバによって、複数のコンピューティングデバイスのうちの第1のコンピューティングデバイスからファイルを第1の時刻に受信することと、サーバ上に格納されたファイルに対する変更を監視することと、変更を検出したことに応答して、ファイルに対する変更を示すレコードを生成することと、複数のコンピューティングデバイスのうちの第2のコンピューティングデバイスから、サーバからファイルをダウンロードするためのダウンロード要求を受信することであって、ダウンロード要求が、第1の時刻に続く第2の時刻に受信される、受信することと、第1の時刻と第2の時刻との間のファイルに対する何らかの変更を示す少なくとも1つのレコードが存在するかどうかを判定することと、レコードが存在すると判定したことに応答して、マルウェアについてファイルをスキャンすることと、サーバ上に格納されたファイルがマルウェアに関連付けられていると判定したことに応答して、ダウンロード要求を拒否することと、を行うように構成されている。
【0016】
いくつかの態様では、本明細書に記載の技術は、同期データネットワークにおけるマルウェアの拡散を防止するためのコンピュータ実行可能命令を格納する非一時的コンピュータ可読媒体に関し、コンピュータ実行可能命令は、複数のコンピューティングデバイスに接続されたサーバによって、複数のコンピューティングデバイスのうちの第1のコンピューティングデバイスからファイルを第1の時刻に受信することと、サーバ上に格納されたファイルに対する変更を監視することと、変更を検出したことに応答して、ファイルに対する変更を示すレコードを生成することと、複数のコンピューティングデバイスのうちの第2のコンピューティングデバイスから、サーバからファイルをダウンロードするためのダウンロード要求を受信することであって、ダウンロード要求が、第1の時刻に続く第2の時刻に受信される、受信することと、第1の時刻と第2の時刻との間のファイルに対する何らかの変更を示す少なくとも1つのレコードが存在するかどうかを判定することと、レコードが存在すると判定したことに応答して、マルウェアについてファイルをスキャンすることと、サーバ上に格納されたファイルがマルウェアに関連付けられていると判定したことに応答して、ダウンロード要求を拒否することと、のための命令を含む。
【0017】
例示的な態様の上記の簡略化された概要は、本開示の基本的な理解を提供するのに役立つ。この概要は、全ての企図される態様の広範な概略ではなく、全ての態様の重要又は重大な要素を特定することも、本開示のいずれか又は全ての態様の範囲を定めることも意図されていない。その唯一の目的は、以下の本開示のより詳細な説明の前置きとして、簡略化された形態で1つ以上の態様を提示することである。上記を達成するために、本開示の1つ以上の態様は、特許請求の範囲に記載され、例示的に指摘された特徴を含む。
【0018】
本明細書内に組み込まれ、本明細書の一部を構成する添付の図面は、本開示の1つ以上の例示的な態様を示し、詳細な説明とともに、それらの原理及び実装形態を説明するのに役立つ。
【図面の簡単な説明】
【0019】
【
図1】同期データネットワークにおけるマルウェアの拡散を防止するためのシステムを示すブロック図である。
【
図2】同期ファイルの選択的スキャンを示すブロック図である。
【
図3】同期データネットワークにおけるマルウェアの拡散を防止するための方法のフロー図を示す。
【
図4】分散型台帳上の同期ファイルのレコードを示すブロック図である。
【
図5】本開示の態様を実装することができる汎用コンピュータシステムの一例を提示する。
【発明を実施するための形態】
【0020】
例示的な態様は、同期データネットワークにおけるマルウェアの拡散を防止するためのシステム、方法、及びコンピュータプログラム製品の文脈で本明細書に記載されている。当業者は、以下の説明が例示にすぎず、決して限定することを意図するものではないことを理解するであろう。他の態様は、本開示の利益を有する当業者に容易に示唆されるであろう。次に、添付の図面に示す例示的な態様の実装形態を詳細に参照する。同じ又は同様の項目を参照するために、図面及び以下の説明を通して可能な限り同じ参照符号が使用される。
【0021】
前述した欠点に対処するための基本的な手法は、複数回(すなわち、ソースデバイスからアップロードされているときに1回、ファイルをダウンロードすることとなる宛先デバイスごとに1回)同期される必要がある任意のファイルをスキャンすることを伴う。しかしながら、二重のスキャンは同期時間を大幅に遅らせ、パフォーマンスを低下させる。ファイルが変更されていないにもかかわらず、全てのファイルが複数回スキャンされている場合、他の目的のためにより有効に利用することができる処理リソースが著しく浪費する。
【0022】
したがって、本開示は、データがアップロードとダウンロードとの合間で何らかの形で変更された場合にのみ、宛先デバイスへのダウンロード中に別のスキャンを実行する概念を提示する。しかしながら、データの不変性を制御するために、監視ドライバ及び分散型台帳(例えば、ブロックチェーン)が採用されている。分散型台帳は、単一のファイルの複数のコピーの必要性を防止する。例えば、ファイルが変更されたかどうかをチェックする1つの非効率的な手法は、アップロード中のファイルのバージョンとダウンロード中のファイルのバージョンとを比較することである。非効率性は、ファイルの少なくとも2つのバージョンを常に格納する必要があることとなるという事実に起因する。この手法は、アップロード及びダウンロードされている数千のファイルを比較するときに、2倍のスペースを必要とし、依然としてかなりの計算を必要とする。
【0023】
分散型台帳を使用する利点は、ファイルへの変更が台帳に記録され、(例えば、同期ネットワーク内にデバイスを含み得る)ブロックチェーンネットワークによって検証され得るという事実にある。イベントの記録は、ネットワーク内のデバイス及びサーバの通常の使用と並行して行われ、したがって、全ての計算(すなわち、ファイルの比較)は、ダウンロードプロセスあたりに焦点を当てておらず、代わりに、変更が台帳に記録されたかどうかを確認することを単に伴う。さらに、複数のコンピューティングデバイスが変更されたファイルをダウンロードしており、スキャンが既に実行されて分散型台帳上に記録されている(変更を無害なものとしてラベル付けしている)場合、各新しいコンピューティングデバイスがそのローカルコンテンツを中央サーバと同期させるために追加のスキャンは必要なく、それらは全て分散型台帳内の記録を参照することができる。これは、各新しいコンピューティングデバイスが、ファイルの現在のバージョンがアップロードされたバージョンとは異なることに基づいて新しいスキャンを必要とすることとなる総当たりファイル比較手法とは異なる。さらに、悪意のあるエンティティは、各変更が分散型台帳ネットワークのメンバーによって検証されるため、中央サーバ上のファイルに対する変更をマスク/隠すことができない。
【0024】
図1は、同期データネットワークにおけるマルウェアの拡散を防止するためのシステム100を示すブロック図である。システム100では、コンピューティングデバイス104はスマートフォンであり得、コンピューティングデバイス106はラップトップであり得、コンピューティングデバイス108はデスクトップコンピュータであり得る。各コンピューティングデバイスは、同期ネットワークにおいて互いに接続されている。例えば、ユーザは、コンピューティングデバイス104を使用して画像を取り込んでもよく、コンピューティングデバイス106及びコンピューティングデバイス108と同期させてもよい。したがって、画像のコピー又はリンクがコンピューティングデバイス106及びコンピューティングデバイス108に提供され得る。例えば、画像のコピーが最初にサーバ102上に格納され得、その後、サーバ102は、格納された画像のコピーをコンピューティングデバイス106及びコンピューティングデバイス108に送信する。
【0025】
悪意のあるアクティビティがネットワーク全体に拡散しないことを保証するために、セキュリティモジュール110が導入されている。セキュリティモジュール110は、スキャンエージェント112、監視ドライバ114、及び分散型台帳116を含む。スキャンエージェント112は、1つ以上のファイル内の悪意のあるアクティビティをチェックするウイルス対策ソフトウェアであり得る。監視ドライバ114は、サーバ102上でファイルが追加、削除、又は改変されたかどうかを判定するために、サーバ102上の改変コマンドを傍受し得る。分散型台帳116は、コンピューティングデバイス104、106、108、及びサーバ102の各々上に格納されたブロックチェーンであり得る。
【0026】
セキュリティモジュール110は、
図1に示すデバイスの各々上に格納され得る。いくつかの態様では、サーバ102上に格納されたセキュリティモジュール110のバージョンは、サーバ102上に格納されたセキュリティモジュール110のバージョンとは異なり得る。例えば、監視ドライバ114は、コンピューティングデバイス及びサーバ上にそれぞれシン・モジュール(thin module)及びシック・モジュール(thick module)として格納されてもよい。監視ドライバ114のシック・モジュールは、サーバ102上で行われた変更を追跡し、分散型台帳116を更新し得る(すなわち、分散型台帳116に書き込み得る)。監視ドライバ114のシン・モジュールは、分散型台帳116上の更新を読み取り得る。
【0027】
図2は、同期ファイルの選択的スキャンを示すブロック
図200である。ブロック
図200において、コンピューティングデバイス104は、同期用のローカルファイル(例えば、画像)を選択する。コンピューティングデバイス104又はサーバ102上のスキャンエージェント112は、選択されたファイルをスキャンして、ファイルが悪意のあるものではないことを保証し得る。次いで、スキャンエージェント112は、判決(すなわち、ファイルが悪意のあるものである、又はファイルが悪意のあるものではない、ということ)を出力し得る。例示的な一態様では、ファイルが選択され、コンピューティングデバイス104上でスキャンされ、その後、悪意のあるアクティビティが検出されないというスキャンエージェント112による判決に応答して、サーバ102に送信される。
【0028】
監視ドライバ114は、サーバ102上の変更(例えば、サーバ102に書き込まれている選択されたファイル)を監視する。変更を検出したことに応答して、監視ドライバ114は、分散型台帳116上にレコードを生成し得る。レコードは、ファイルがサーバ102に書き込まれたことを示し得る。起こり得る他の変更には、ファイルのディレクトリの変更、ファイルのリネーム、ファイルの圧縮、ファイルの暗号化等が含まれる。サーバ102上の各変更は、監視ドライバ114によって検出され、分散型台帳116上に記録される。
【0029】
いくつかの態様では、分散型台帳116は、サーバ102上で行われた全ての変更のチェーンである。例えば、単一のブロックチェーンは、サーバ102のストレージスペースに対して行われた全ての改変を含み得る。いくつかの態様では、分散型台帳116は、コンピューティングデバイス104、106、及び108を含むネットワークに関連するファイルに対して行われた全ての変更のチェーンである。例えば、サーバ102は、異なるネットワークの情報を格納し得、各ネットワークは、それに関連する独自のブロックチェーンを有し得る。いくつかの態様では、分散型台帳116は、特定のファイルに対して行われた全ての変更のチェーンであり得る。したがって、各ファイルは、サーバ102上に格納されている間にファイルに加えられた各変更を記録する独自のブロックチェーンを有する。この例では、分散型台帳116は第2のタイプのチェーン(すなわち、デバイスの特定のネットワークに関連付けられたもの)であると仮定する。分散型台帳116のコピーは、ネットワーク内の全てのデバイスと同期され、各レコードは各デバイスによっても検証される。
【0030】
コンピューティングデバイス106又は108は、同期アクションを開始し得る。例えば、コンピューティングデバイス106及び/又は108は、そのコンテンツをサーバ102と同期させようとする写真閲覧アプリケーションを起動し得る。ファイルが画像である場合、同期の開始は画像の要求とみなされ得る。コンピューティングデバイス106及び108は各々、監視ドライバ114を有し得、監視ドライバ114はその後、ファイルに対する変更について分散型台帳116をチェックする。前述したように、監視ドライバ114は、分散型台帳116上のレコードを読み取るシン・クライアントであり得る。例えば、監視ドライバ114は、ファイルの識別子(例えば、名前、サイズ、拡張子等)を含むレコードを検索し得る。アップロードレコードに続くレコードを検出したことに応答して、コンピューティングデバイス106及び/又は108は、ファイルへの変更が行われたことを確認し、ダウンロードプロセスが始まる前にスキャンを要求し得る。
【0031】
サーバ102のスキャンエージェント114は、ファイルをスキャンし、判決を出力し得る。悪意のあるアクティビティを検出したことに応答して、同期がキャンセルされ、ファイルが消去又は隔離される。これにより、悪意のあるアクティビティの拡散が防止される。悪意のあるアクティビティが検出されない場合、サーバ102は、ファイルをコンピューティングデバイス106及び/又は108に送信する。
【0032】
いくつかの態様では、スキャンの判決は、分散型台帳116上に記録される。悪意のあるアクティビティが見つからない場合、スキャンが行われた時刻及び判決を示すレコードがスキャンエージェント112によって生成される。スキャンがコンピューティングデバイス106からの同期要求によって初期化されたと仮定する。しばらくすると、コンピューティングデバイス108はファイルの同期も要求する。コンピューティングデバイス108の監視エージェント114は、ファイルの最新のレコードが、そのファイルがマルウェアではないことを示していることを検出し得る。スキャン前にファイルに変更があったにもかかわらず、最新のスキャンはマルウェアが存在しないことを既に示しているため、コンピューティングデバイス108との同期中に別のスキャンは実行されない。これにより、不要なスキャンが回避されるため、処理リソースが節約される。
【0033】
いくつかの態様では、スキャンが実行されるか、又は変更が発生するたびに、監視ドライバ114は、分散型台帳116のためのハッシュ値レコードを生成する。変更の場合には、タイムスタンプ及び変更されたファイルに適用されるハッシュ関数を用いてハッシュ値を生成し得る。スキャンの場合、ハッシュ値は、タイムスタンプ、スキャン判決、及びスキャンされたファイルに対してハッシュ関数アプリケーションを用いて生成され得る。
【0034】
図3は、同期データネットワークにおけるマルウェアの拡散を防止するための方法300のフロー図を示している。302において、セキュリティモジュール110は、複数のコンピューティングデバイスに接続されたサーバによって、複数のコンピューティングデバイスのうちの第1のコンピューティングデバイスからファイルを第1の時刻に受信する。例えば、いくつかの態様では、セキュリティモジュール110は、コンピューティングデバイス104からファイルをアップロードするアップロード要求を検出し、コンピューティングデバイス104から、ファイルがマルウェアに関連付けられているかどうかを示すスキャン判決を要求する。ファイルがマルウェアに関連付けられていないというスキャン判決を受信したことに応答して、セキュリティモジュール110はアップロード要求を承諾し、第1の時刻にファイルをサーバ102上に格納する。
【0035】
304において、セキュリティモジュール110は、サーバ102上に格納されたファイルに対する変更を監視する。306において、304で変更を検出したことに応答して、セキュリティモジュール110は、ファイルに対する変更を示すレコードを生成する。いくつかの態様では、レコードは、サーバ上のファイルに対して行われた変更を複数のレコードに格納する分散型台帳の一部である。いくつかの態様では、分散型台帳は、複数のコンピューティングデバイス間で同期されたファイルに限定された変更及びスキャン判決を格納する。さらに、複数のレコードの各レコードは、複数のコンピューティングデバイスによって検証される。
【0036】
308において、セキュリティモジュール110は、複数のコンピューティングデバイスのうちの第2のコンピューティングデバイスから、サーバからファイルをダウンロードするためのダウンロード要求を受信し、ダウンロード要求は第1の時刻に続く第2の時刻に受信される。
【0037】
310において、セキュリティモジュール110は、第1の時刻と第2の時刻との間のファイルに対する何らかの変更を示す少なくとも1つのレコードが存在するか否かを判定する。レコードが存在すると判定したことに応答して、方法300は312に進み、ここでセキュリティモジュール110は、マルウェアについてファイルをスキャンする。314において、セキュリティモジュール110は、サーバ上に格納されたファイルがマルウェアに関連付けられているかどうかを判定する。サーバ上に格納されたファイルがマルウェアに関連付けられていると判定したことに応答して、方法300は316に進み、ここでセキュリティモジュール110は、ダウンロード要求を拒否する。
【0038】
いくつかの態様では、セキュリティモジュール110は、ダウンロード要求を拒否することに加えて、サーバからファイルを削除すること、サーバ上でファイルを隔離すること、及び第1のコンピューティングデバイスからのマルウェアに関連付けられていないファイルのバージョンを要求することのうちの1つ以上を含む矯正アクションを実行する。
【0039】
310において、セキュリティモジュール110が、変更を示すレコードが存在しないと判定した場合、方法300は318に進み、ここでセキュリティモジュール110は、ダウンロード要求を承諾する。同様に、314において、セキュリティモジュール110が、ファイルが悪意のあるアクティビティに関連付けられていないと判定した場合、方法300は318に進み、ここでセキュリティモジュール110は、ダウンロード要求を承諾する。ここで、ダウンロード要求を承諾することは、ファイルを第2のコンピューティングデバイスに送信することを伴う。
【0040】
いくつかの態様では、スキャンに続いて、セキュリティモジュール110は、サーバ上に格納されたファイルに対して実行されたスキャンの結果を含む別のレコードを生成する。例えば、結果は、ファイルがマルウェアに関連付けられていないことを示し得る。続いて、セキュリティモジュール110は、サーバからファイルをダウンロードするための別のダウンロード要求を第3のコンピューティングデバイスから受信し得、別のダウンロード要求は、第2の時刻に続く第3の時刻に受信される。別のレコードがファイルについての最新のレコードであると判定したことに応答して、セキュリティモジュール110は、ファイルの別のスキャンを実行することなく別のダウンロード要求を承諾する。
【0041】
図4は、分散型台帳上の同期ファイルのレコードを示すブロック
図400である。コンピューティングデバイス104が第1のファイルをサーバ102にアップロードすると仮定する。コンピューティングデバイス104及び/又はサーバ102は、スキャンエージェントを使用して、第1のファイルが悪意のないものであることを確認する。確認に応答して、t1において、セキュリティモジュール110は、SHA1、MD5等のハッシュアルゴリズムを使用して第1のファイルのハッシュ値を計算し、分散型台帳116にレコード402を生成し得る。レコードは、タイムスタンプ、アクションタイプ、ファイル識別子(例えば、ソースデバイスアドレス、ディレクトリ、名前、サイズ、拡張子等)、前のレコードに関連付けられたハッシュ値等の情報を含み得る。しかしながら、簡単にするために、
図4のレコード402は、ファイルのハッシュ値、及びハッシュ値が何に関連付けられているかを示すペイロードのみを示している。例えば、レコード402は、コンピューティングデバイス104からサーバ102へのファイル1のアップロードを表す。
【0042】
タイムラインによれば、t2において、アップロードされた第1のファイルは、サーバ102上で改変される。いくつかの態様では、セキュリティモジュール110は、改変を表すレコードを生成するために、第1のファイルを改変するコマンドを傍受し得る。例えば、第1のファイルがソースコードを含み、かつ改変がコードの注入である場合、セキュリティモジュール110は注入を検出し、第1のファイルが改変されたこと及びその新しいハッシュ値を示すレコードを生成し得る。しかしながら、いくつかの態様では、セキュリティモジュール110は、ストレージスペースを節約するためにダウンロード要求が行われた場合にのみ改変を追跡し得る(いくつかの改変により、分散型台帳116のサイズが指数関数的に増加する可能性があるため)。例えば、
図4では、時刻t2においてレコードは作成されていない。代わりに、t4において、サーバ102は、第1のファイルのダウンロード要求(例えば、コンピューティングデバイス106から)を受信する。次に、セキュリティモジュール110は、t4において第1のファイルのハッシュ値を計算し、分散型台帳116内でハッシュ値を検索し得る。第1のファイルは時刻t2で改変されているため、セキュリティモジュール110は一致するハッシュ値を見つけられない可能性がある。
【0043】
一致が見つからない場合、セキュリティモジュール110は、第1のファイルはアップロードされてから改変されたに違いないと結論付ける。これにより、セキュリティモジュール110は、第1のファイルを再スキャンするよう促される。スキャンの結果は、改変された第1のファイルが悪意のあるものではないというものであると仮定する。セキュリティモジュール110は、ファイルがクリーンであることを示し、かつ改変された第1のファイルのハッシュ値を含む、レコード406を生成し得る。第1のファイルは改変されているにもかかわらずクリーンであるため、セキュリティモジュール110は、ダウンロード要求を実行する。
【0044】
時刻t6において、サーバ102が第1のファイルに対する別のダウンロード要求(例えば、コンピューティングデバイス108から)を受信すると仮定する。t4~t6の間、ファイルはサーバ102において別の変更を受けていない。したがって、セキュリティモジュール110が時刻t6に第1のファイルについて計算したハッシュ値は、レコード406内のハッシュ値と一致することとなる。レコード406は第1のファイルがクリーンであることを示すため、セキュリティモジュール110は、ダウンロード要求を実行する。
【0045】
いくつかのファイルが複数のコンピューティングデバイスからサーバ102にアップロードされ得ることに留意されたい。例えば、時刻t3において、第2のファイルがコンピューティングデバイス108からアップロードされ得る。第2のファイルがクリーンであることを確認すると、セキュリティモジュール110は、ファイル2がアップロードされたという表示及び第2のファイルのハッシュ値を含むレコード404を生成し得る。時刻t5において、第2のファイルは悪意をもって改変され得る(例えば、悪意のあるエンティティが第2のファイルのソースコード内にマルウェアを注入する場合がある)。t6において、ダウンロード要求が第2のファイルに対するものであると仮定する。第2のファイルはt5で改変されているため、セキュリティモジュール110がt6で第2のファイルの新しいハッシュ値を計算すると、得られたハッシュ値は分散型台帳内のハッシュ値(例えば、レコード404内のハッシュ値を含む)のいずれとも一致しない。したがって、セキュリティモジュール110は、第2のファイルをスキャンし、第2のファイルが悪意のあるものであると判定し得る。次いで、セキュリティモジュール110は、ダウンロード要求を拒否し、改変された第2のファイルが悪意のあるものであるという表示及び改変された第2のファイルのハッシュ値を含む、レコード408を生成し得る。第2のファイルに対する後続のダウンロード要求が受信されるたびに、セキュリティモジュール110は、レコード408を考慮して要求を自動的に拒否し得る。
【0046】
いくつかの態様では、分散型台帳116のサイズは非常に大きくてもよい。例えば、ファイル1がアップロードされたことを示すレコードは、ファイル1のダウンロード要求時から数百レコード離れていてもよい。各ハッシュ値を比較することは面倒で時間がかかる可能性があるため、セキュリティモジュール110は、まず、計算されたハッシュ値を最も一般的にアクセスされるファイルのハッシュ値と比較してもよく、ファイルのアップロードレコードまで時間をさかのぼってレコードを比較してもよく、指標付け方法を利用してもよく、またさらにキャッシングを利用してもよい。これにより、検索時間を改善することができる。
【0047】
図5は、同期データネットワークにおけるマルウェアの拡散を防止するためのシステム及び方法の態様が例示的な一態様に従って実装され得るコンピュータシステム20を示すブロック図である。コンピュータシステム20は、複数のコンピューティングデバイスの形態、又は単一のコンピューティングデバイス、例えば、デスクトップコンピュータ、ノートブックコンピュータ、ラップトップコンピュータ、モバイルコンピューティングデバイス、スマートフォン、タブレットコンピュータ、サーバ、メインフレーム、組込みデバイス、及び他の形態のコンピューティングデバイスの形態とすることができる。
【0048】
図示のように、コンピュータシステム20は、中央処理装置(CPU)21と、システムメモリ22と、中央処理装置21に関連付けられたメモリを含む様々なシステム構成要素を接続するシステムバス23と、を含む。システムバス23は、バスメモリ又はバスメモリコントローラと、ペリフェラルバスと、任意の他のバスアーキテクチャと相互作用することができるローカルバスと、を備え得る。バスの例として、PCI、ISA、PCI-Express、HyperTransport(商標)、InfiniBand(商標)、Serial ATA、I
2C、及び他の適切な相互接続が含まれ得る。中央処理装置21(プロセッサとも呼ばれる)は、単一又は複数のコアを有する単一又は複数のプロセッサのセットを含むことができる。プロセッサ21は、本開示の技術を実装する1つ以上のコンピュータ実行可能コードを実行し得る。例えば、
図1~
図4で論述したコマンド/ステップのうちのいずれかが、プロセッサ21によって実行され得る。システムメモリ22は、本明細書で使用されるデータ及び/又はプロセッサ21によって実行可能なコンピュータプログラムを格納するための任意のメモリであり得る。システムメモリ22は、ランダム・アクセス・メモリ(RAM)25等の揮発性メモリ、及び読み出し専用メモリ(ROM)24、フラッシュメモリ等の不揮発性メモリ、又はそれらの任意の組合せを含み得る。基本入出力システム(BIOS)26は、ROM24を使用してオペレーティングシステムをロードするときの手順等、コンピュータシステム20の要素間で情報を転送するための基本手順を格納し得る。
【0049】
コンピュータシステム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等の機械メモリ、フラッシュメモリ、又はソリッド・ステート・ドライブ(SSD)若しくはフラッシュドライブ等の他のメモリテクノロジ、磁気カセット、磁気テープ、及びハードディスクドライブ若しくはフロッピーディスク等の磁気ディスクストレージ、コンパクトディスク(CD-ROM)若しくはデジタル多用途ディスク(DVD)等の光学ストレージ、並びに所望のデータを格納するために使用され得、かつコンピュータシステム20によってアクセスすることができる、任意の他の媒体が含まれる。
【0050】
コンピュータシステム20のシステムメモリ22、リムーバブルストレージデバイス27、及び非リムーバブルストレージデバイス28は、オペレーティングシステム35、追加プログラムアプリケーション37、他のプログラムモジュール38、及びプログラムデータ39を格納するために使用され得る。コンピュータシステム20は、シリアルポート、パラレルポート、ユニバーサル・シリアル・バス(USB)、又は他のペリフェラルインターフェース等の1つ以上のI/Oポートを介して、キーボード、マウス、スタイラス、ゲームコントローラ、音声入力デバイス、タッチ入力デバイス、又はプリンタ若しくはスキャナ等の他のペリフェラルデバイス等の入力デバイス40からデータを通信するためのペリフェラルインターフェース46を含み得る。1つ以上のモニタ、プロジェクタ、又は統合ディスプレイ等のディスプレイデバイス47もまた、ビデオアダプタ等の出力インターフェース48を介してシステムバス23に接続され得る。ディスプレイデバイス47に加えて、コンピュータシステム20は、スピーカ及び他の視聴覚デバイス等の他のペリフェラル出力デバイス(図示せず)を備え得る。
【0051】
コンピュータシステム20は、1つ以上のリモートコンピュータ49へのネットワーク接続を用いて、ネットワーク環境において動作し得る。リモートコンピュータ(又は複数のリモートコンピュータ)49は、コンピュータシステム20の性質を説明する際に上述した要素の大部分又は全てを含むローカルコンピュータワークステーション又はサーバであり得る。ルータ、ネットワークステーション、ピアデバイス、又は他のネットワークノード等であるがこれらに限定されない他のデバイスもまた、コンピュータネットワーク内に存在し得る。コンピュータシステム20は、ローカルエリア・コンピュータ・ネットワーク(LAN)50、ワイドエリア・コンピュータ・ネットワーク(WAN)、イントラネット、及びインターネット等の1つ以上のネットワークを介してリモートコンピュータ49と通信するための1つ以上のネットワークインターフェース51又はネットワークアダプタを含み得る。ネットワークインターフェース51の例として、イーサネットインターフェース、フレームリレーインターフェース、SONETインターフェース、及び無線インターフェースが含まれ得る。
【0052】
本開示の態様は、システム、方法、及び/又はコンピュータプログラム製品であり得る。コンピュータプログラム製品は、プロセッサに本開示の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体(又は複数のコンピュータ可読ストレージ媒体)を含み得る。
【0053】
コンピュータ可読ストレージ媒体は、コンピューティングシステム20等のコンピューティングデバイスのプロセッサによってアクセスすることができる命令又はデータ構造の形態のプログラムコードを保持及び格納することができる有形のデバイスとすることができる。コンピュータ可読ストレージ媒体は、電子ストレージデバイス、磁気ストレージデバイス、光学ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又はそれらの任意の適切な組合せであり得る。例として、そのようなコンピュータ可読ストレージ媒体は、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、EEPROM、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、フラッシュメモリ、ハードディスク、ポータブル・コンピュータ・ディスケット、メモリスティック、フロッピーディスク、又は命令が記録されたパンチカード若しくは溝内の隆起構造等の機械的に符号化されたデバイスさえも含むことができる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波又は他の自由に伝搬する電磁波、導波路若しくは伝送媒体を通って伝搬する電磁波、又はワイヤを介して伝送される電気信号等の一時的な信号自体と解釈されるべきではない。
【0054】
本明細書に記載のコンピュータ可読プログラム命令は、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、及び/若しくは無線ネットワークを介して、コンピュータ可読ストレージ媒体からそれぞれのコンピューティングデバイスに、又は外部コンピュータ若しくは外部ストレージデバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、及び/又はエッジサーバを含み得る。各コンピューティングデバイス内のネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティングデバイス内のコンピュータ可読ストレージ媒体に格納するためにコンピュータ可読プログラム命令を転送する。
【0055】
本開示の動作を実行するためのコンピュータ可読プログラム命令は、アセンブリ命令、命令セットアーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、又はオブジェクト指向プログラミング言語及び従来の手続き型プログラミング言語を含む1つ以上のプログラミング言語の任意の組合せで記述されたソースコード若しくはオブジェクトコードのいずれかであり得る。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンソフトウェアパッケージとして、部分的にユーザのコンピュータ上かつ部分的にリモートコンピュータ上で、又は完全にリモートコンピュータ若しくはサーバ上で実行され得る。後者のシナリオでは、リモートコンピュータは、LAN又はWANを含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、又は外部コンピュータへの接続が行われてもよい(例えば、インターネットを介して)。いくつかの実施形態では、例えば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又はプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本開示の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによってコンピュータ可読プログラム命令を実行し得る。
【0056】
様々な態様において、本開示に記載されたシステム及び方法は、モジュールに関して対処することができる。本明細書で使用される「モジュール」という用語は、例えば、特定用途向け集積回路(ASIC)若しくはFPGA等によるハードウェアを使用して、又はマイクロプロセッサシステム及び(実行中に)マイクロプロセッサシステムを専用デバイスに変換するモジュールの機能を実装するための命令のセット等によるハードウェアとソフトウェアとの組合せとして実装される、実在のデバイス、コンポーネント、又はコンポーネントの構成を指す。モジュールはまた、2つの組合せとして実装されてもよく、特定の機能はハードウェアのみによって促進され、他の機能はハードウェアとソフトウェアとの組合せによって促進される。特定の実装形態では、モジュールの少なくとも一部、場合によっては全部が、コンピュータシステムのプロセッサ上で実行され得る。したがって、各モジュールは、様々な適切な構成で実現され得、本明細書に例示された特定の実装形態に限定されるべきではない。
【0057】
明確にするために、態様のルーチンの特徴の全てが本明細書に開示されているわけではない。本開示の任意の実際の実装形態の開発において、開発者の特定の目標を達成するために、多数の実装形態固有の決定を行わなければならず、これらの特定の目標は、異なる実装形態及び異なる開発者によって異なることが理解されよう。そのような開発努力は複雑で時間がかかるかもしれないが、それにもかかわらず、本開示の利益を有する当業者にとってはエンジニアリングの日常的な仕事であり得ることが理解される。
【0058】
さらに、本明細書の術語又は表現は、当業者の知識と組み合わせて、本明細書に提示される教示及びガイダンスに照らして当業者によって解釈されるべきであるように、本明細書で使用される表現又は術語は、限定ではなく説明を目的とするものであることを理解されたい。さらに、本明細書又は特許請求の範囲のいかなる用語も、そのように明示的に記載されていない限り、一般的ではない又は特別な意味とみなされることを意図しない。
【0059】
本明細書で開示される様々な態様は、例示として本明細書で参照される既知のモジュールに対する現在及び将来の既知の均等物を包含する。さらに、態様及び用途を示し説明してきたが、本明細書に開示された発明の概念から逸脱することなく、上述したよりも多くの変更が可能であることは、本開示の利益を有する当業者には明らかであろう。