(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-08
(45)【発行日】2022-08-17
(54)【発明の名称】セキュアストレージデバイス
(51)【国際特許分類】
G06F 21/78 20130101AFI20220809BHJP
G06F 21/56 20130101ALI20220809BHJP
G06F 21/60 20130101ALI20220809BHJP
【FI】
G06F21/78
G06F21/56 360
G06F21/60 320
(21)【出願番号】P 2020506237
(86)(22)【出願日】2018-07-31
(86)【国際出願番号】 EP2018070692
(87)【国際公開番号】W WO2019025423
(87)【国際公開日】2019-02-07
【審査請求日】2021-03-03
(32)【優先日】2017-08-04
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-07-25
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】312016539
【氏名又は名称】ビットディフェンダー アイピーアール マネジメント リミテッド
(74)【代理人】
【識別番号】100118902
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100120112
【氏名又は名称】中西 基晴
(74)【代理人】
【識別番号】100196508
【氏名又は名称】松尾 淳一
(72)【発明者】
【氏名】ルカクス,サンドル
(72)【発明者】
【氏名】トゥリク,ダン-クリスチャン
【審査官】小林 秀和
(56)【参考文献】
【文献】特開2010-257112(JP,A)
【文献】特開2009-048543(JP,A)
【文献】特開2000-089992(JP,A)
【文献】特開平08-328962(JP,A)
【文献】特開2006-146608(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/78
G06F 21/56
G06F 21/60
(57)【特許請求の範囲】
【請求項1】
第1のハードウェアプロセッサと、セキュアストレージデバイスとを備えるコンピュータシステムであって、前記セキュアストレージデバイスは、前記第1のハードウェアプロセッサに、ストレージ送信プロトコルに従ってフォーマットされたストレージアクセス要求を受信するように構成されたストレージインターフェースを介して接続されており、前記セキュアストレージデバイスは、第2のハードウェアプロセッサと、不揮発性ストレージユニットとを備え、
前記第1のハードウェアプロセッサは、
前記第1のハードウェアプロセッサ上で実行されるソフトウェアによる、データパケットを前記ストレージユニット上に記憶するための要求の検出に応答して、前記データパケットを暗号化し、
前記データパケットの暗号化に応答して、暗号化された前記データパケットを含む真のストレージアクセス要求を前記ストレージインターフェースに送信し、
暗号鍵の少なくとも一部を含むダミーストレージアクセス要求を、前記ストレージ送信プロトコルに従って生成し、
前記ダミーストレージアクセス要求を前記ストレージインターフェースに送信する
ように構成され、
前記第2のハードウェアプロセッサは、
前記ストレージインターフェースを介した通信の受信に応答して、前記通信が前記ダミーストレージアクセス要求を含むか否かを判定し、
それに応答して、前記通信が前記ダミーストレージアクセス要求を含む場合に、前記暗号鍵を前記ダミーストレージアクセス要求に従って決定し、
前記真のストレージアクセス要求の受信に応答して、前記暗号鍵を使用して前記データパケットを解読し、
解読された前記データパケットが悪意のあるソフトウェアを含むか否かを判定する
ように構成される、コンピュータシステム。
【請求項2】
請求項1に記載の
コンピュータシステムであって、前記第2のハードウェアプロセッサは、解読された前記データパケットが悪意のあるソフトウェアを含むか否かの判定に応答して、解読された前記データパケットが悪意のあるソフトウェアを含む場合に、前記ストレージ送信プロトコルに従ってフォーマットされた通知を前記ストレージインターフェースに送信するようにさらに構成され、前記通知は、前記第1のハードウェアプロセッサに、前記通知のメッセージをセキュリティ警告として解釈させるように構成された、
コンピュータシステム。
【請求項3】
請求項2に記載の
コンピュータシステムであって、前記通知は、前記第1のハードウェアプロセッサにおけるハードウェア割り込みを引き起こすように構成された、
コンピュータシステム。
【請求項4】
請求項1に記載の
コンピュータシステムであって、前記通信は、前記ストレージユニット上の位置を示すアドレスを含み、前記第2のハードウェアプロセッサは、前記通信が前記ダミーストレージアクセス要求を含むか否かを前記アドレスに従って判定するように構成された、
コンピュータシステム。
【請求項5】
請求項4に記載の
コンピュータシステムであって、前記通信が前記ダミーストレージアクセス要求を含むか否かを判定することは、
前記アドレスを所定のアドレスと比較することと、
それに応答して、前記通信が前記ダミーストレージアクセス要求を含むことを前記比較の結果に従って判定することと
を含む、
コンピュータシステム。
【請求項6】
請求項1に記載の
コンピュータシステムであって、前記通信は、ペイロードを前記ストレージユニットに書き込むための要求を含み、前記第2のハードウェアプロセッサは、前記通信が前記ダミーストレージアクセス要求を含むか否かを前記ペイロードに従って判定するように構成された、
コンピュータシステム。
【請求項7】
請求項1に記載の
コンピュータシステムであって、前記第2のハードウェアプロセッサは、
前記ストレージユニット上に記憶された複数のデータパケットと、前記第1のハードウェアプロセッサ上で実行されるオペレーティングシステムによって維持される一次ファイルシステムの複数のファイルとの間のマッピングを含むシャドウファイルシステムを維持し、
前記真のストレージアクセス要求の受信に応答して、前記シャドウファイルシステムに従って、前記複数のファイルのうちのファイルを、前記データパケットが該ファイルの一部を形成するように特定し、
前記ファイルの特定に応答して、前記ファイルが悪意のあるソフトウェアを含むか否かを判定する
ようにさらに構成された、
コンピュータシステム。
【請求項8】
請求項
7に記載の
コンピュータシステムであって、前記第2のハードウェアプロセッサは、
前記シャドウファイルシステムに従って、前記第1のハードウェアプロセッサから前記ストレージインターフェースを介して受信された別の通信が、新たなファイルの作成を示すか否かを判定し、
それに応答して、前記別の通信が前記新たなファイルの前記作成を示す場合に、前記シャドウファイルシステムを、前記新たなファイルの前記作成を示すように更新する
ようにさらに構成された、
コンピュータシステム。
【請求項9】
請求項1に記載の
コンピュータシステムであって、前記第2のハードウェアプロセッサは、前記データパケットの解読に応答して、解読された前記データパケットを前記ストレージユニットに書き込むようにさらに構成された、
コンピュータシステム。
【請求項10】
請求項1に記載の
コンピュータシステムであって、前記ストレージインターフェースは、シリアルATAインターフェースおよびユニバーサルシリアルバス(USB)インターフェースを含む群から選択されたアイテムを含む、
コンピュータシステム。
【請求項11】
第1のハードウェアプロセッサと、不揮発性ストレージユニットとを備えるセキュアストレージデバイスであって、前記セキュアストレージデバイスは、第2のハードウェアプロセッサに、ストレージ送信プロトコルに従ってフォーマットされたストレージアクセス要求を受信するように構成されたストレージインターフェースを介して接続するように構成され、
前記第2のハードウェアプロセッサは、
前記第2のハードウェアプロセッサ上で実行されるソフトウェアによる、データパケットを前記ストレージユニット上に記憶するための要求の検出に応答して、前記データパケットを暗号化し、
前記データパケットの暗号化に応答して、暗号化された前記データパケットを含む真のストレージアクセス要求を前記ストレージインターフェースに送信し、
暗号鍵の少なくとも一部を含むダミーストレージアクセス要求を、前記ストレージ送信プロトコルに従って生成し、
前記ダミーストレージアクセス要求を前記ストレージインターフェースに送信する
ように構成され、
前記第1のハードウェアプロセッサは、
前記ストレージインターフェースを介した通信の受信に応答して、前記通信が前記ダミーストレージアクセス要求を含むか否かを判定し、
それに応答して、前記通信が前記ダミーストレージアクセス要求を含む場合に、前記暗号鍵を前記ダミーストレージアクセス要求に従って決定し、
前記真のストレージアクセス要求の受信に応答して、前記暗号鍵を使用して前記データパケットを解読し、
解読された前記データパケットが悪意のあるソフトウェアを含むか否かを判定する
ように構成された、セキュアストレージデバイス。
【請求項12】
コンピュータセキュリティ方法であって、
セキュアストレージデバイスを、第1のハードウェアプロセッサに、ストレージ送信プロトコルに従ってフォーマットされたストレージアクセス要求を受信するように構成されたストレージインターフェースを介して接続するステップであって、前記セキュアストレージデバイスは、第2のハードウェアプロセッサと、不揮発性ストレージユニットとを備える、接続するステップと、
前記第1のハードウェアプロセッサ上で実行されるソフトウェアによる、データパケットを前記ストレージユニット上に記憶するための要求の検出に応答して、前記第1のハードウェアプロセッサを使用して、前記データパケットを暗号化するステップと、
前記データパケットの暗号化に応答して、前記第1のハードウェアプロセッサを使用して、真のストレージアクセス要求を前記ストレージインターフェースに送信するステップであって、前記真のストレージアクセス要求は、暗号化された前記データパケットを含む、送信するステップと、
前記第1のハードウェアプロセッサを使用して、暗号鍵の少なくとも一部を含むダミーストレージアクセス要求を、前記ストレージ送信プロトコルに従って生成するステップと、
前記第1のハードウェアプロセッサを使用して、前記ダミーストレージアクセス要求を前記ストレージインターフェースに送信するステップと、
前記ストレージインターフェースを介した通信の受信に応答して、前記第2のハードウェアプロセッサを使用して、前記通信が前記ダミーストレージアクセス要求を含むか否かを判定するステップと、
それに応答して、前記通信が前記ダミーストレージアクセス要求を含む場合に、前記第2のハードウェアプロセッサを使用して、前記暗号鍵を使用して前記データパケットを解読するステップと、
前記データパケットの解読に応答して、前記第2のハードウェアプロセッサを使用して、解読された前記データパケットが悪意のあるソフトウェアを含むか否かを判定するステップと
を含む方法。
【請求項13】
請求項12に記載の方法であって、解読された前記データパケットが悪意のあるソフトウェアを含むか否かの判定に応答して、解読された前記データパケットが悪意のあるソフトウェアを含む場合に、前記第2のハードウェアプロセッサを使用して、前記ストレージ送信プロトコルに従ってフォーマットされた通知を前記ストレージインターフェースに送信するステップをさらに含み、前記通知は、前記第1のハードウェアプロセッサに、前記通知のメッセージをセキュリティ警告として解釈させるように構成された、方法。
【請求項14】
請求項13に記載の方法であって、前記通知は、前記第1のハードウェアプロセッサにおけるハードウェア割り込みを引き起こすように構成された、方法。
【請求項15】
請求項12に記載の方法であって、前記通信は、前記ストレージユニット上の位置を示すアドレスを含み、前記第2のハードウェアプロセッサは、前記通信が前記ダミーストレージアクセス要求を含むか否かを前記アドレスに従って判定するように構成された、方法。
【請求項16】
請求項15に記載の方法であって、前記通信が前記ダミーストレージアクセス要求を含むか否かを判定するステップは、
前記第2のハードウェアプロセッサを使用して、前記アドレスを所定のアドレスと比較するステップと、
それに応答して、前記通信が前記ダミーストレージアクセス要求を含むことを前記比較の結果に従って判定するステップと
を含む、方法。
【請求項17】
請求項12に記載の方法であって、前記通信は、ペイロードを前記ストレージユニットに書き込むための要求を含み、前記第2のハードウェアプロセッサは、前記通信が前記ダミーストレージアクセス要求を含むか否かを前記ペイロードに従って判定するように構成された、方法。
【請求項18】
請求項12に記載の方法であって、
前記第2のハードウェアプロセッサを使用して、前記ストレージユニット上に記憶された複数のデータパケットと、前記第1のハードウェアプロセッサ上で実行されるオペレーティングシステムによって維持される一次ファイルシステムの複数のファイルとの間のマッピングを含むシャドウファイルシステムを維持するステップと、
前記真のストレージアクセス要求の受信に応答して、前記第2のハードウェアプロセッサを使用して、前記シャドウファイルシステムに従って、前記複数のファイルのうちのファイルを、前記データパケットが該ファイルの一部を形成するように特定するステップと、
前記ファイルの特定に応答して、前記第2のハードウェアプロセッサを使用して、前記ファイルが悪意のあるソフトウェアを含むか否かを判定するステップと
をさらに含む方法。
【請求項19】
請求項
18に記載の方法であって、
前記第2のハードウェアプロセッサを使用して、前記シャドウファイルシステムに従って、前記第1のハードウェアプロセッサから前記ストレージインターフェースを介して受信された別の通信が、新たなファイルの作成を示すか否かを判定するステップと、
それに応答して、前記別の通信が前記新たなファイルの前記作成を示す場合に、前記第2のハードウェアプロセッサを使用して、前記シャドウファイルシステムを、前記新たなファイルの前記作成を示すように更新するステップと
をさらに含む方法。
【請求項20】
請求項12に記載の方法であって、前記データパケットの解読に応答して、前記第2のハードウェアプロセッサを使用して、解読された前記データパケットを前記ストレージユニットに書き込むステップをさらに含む方法。
【請求項21】
請求項12に記載の方法であって、前記ストレージインターフェースは、シリアルATAインターフェースおよびユニバーサルシリアルバス(USB)インターフェースを含む群から選択されたアイテムを含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願
[0001]本出願は、2017年8月4日に出願された「Secure Storage Device(セキュアストレージデバイス(安全な記憶装置))」と題する米国仮特許出願第62/541,505号の出願日の利益を主張し、参照によりその内容全体が本明細書に組み込まれる。
【0002】
[0001]本発明は、コンピュータセキュリティに関し、特に、悪意のあるソフトウェア(マルウェア)に対してコンピュータを保護することに関する。
【背景技術】
【0003】
[0002]悪意のあるソフトウェアは、世界中で多数のコンピュータシステムに影響を与えている。コンピュータウイルス、ワーム、ルートキット、およびスパイウェアのような、その多くの形態において、マルウェアは、非常に多数のコンピュータユーザに深刻な危険性を呈し、コンピュータユーザに、中でも、データおよび機密情報の喪失、個人情報の盗難、ならびに生産性の損失を受けやすくする。ランサムウェアは、コンピュータのハードドライブのような記憶媒体上で見つかるファイルのセットを暗号化し、次いで、ファイルの所有者に、それぞれのデータを復元するために代償を支払うよう求める、特に危険なタイプのマルウェアである。
【0004】
[0003]悪意のあるソフトウェアを検出および/または無力化するために、マルウェア対策ソフトウェアが使用され得る。しかしながら、マルウェアは、検出を逃れるために様々な戦略を利用する。1つのそのような戦略は、例えば、悪意のあるコードを暗号化するか、または、感染を受ける各コンピュータ上でわずかに異なるコードバージョンを使用する(一般的に多様性として知られる機能)、難読化を含む。別の例示的な検出回避方法は、悪意のある活動を複数のエージェントの間で分割し、各エージェントが、別個の行動セットを実施し、これは、分離して行われる場合、マルウェアを示すとみなされ得ない。
【発明の概要】
【発明が解決しようとする課題】
【0005】
[0004]デジタルで記憶されているデータを、悪意のあるソフトウェアによるものを含め、盗難および許可されていない改変から保護するためのロバストなシステムおよび方法を開発することに、強い関心が集まっている。
【課題を解決するための手段】
【0006】
[0005]一態様によれば、コンピュータシステムは、第1のハードウェアプロセッサと、セキュアストレージデバイスとを備え、セキュアストレージデバイスは、ストレージ送信プロトコルに従ってフォーマットされているストレージアクセス要求を受信するように構成されているストレージインターフェースを介して第1のハードウェアプロセッサに接続されている。セキュアストレージデバイスは、第2のハードウェアプロセッサと、不揮発性ストレージユニット(記憶ユニット)とを備える。第1のハードウェアプロセッサは、ストレージユニット上にデータパケットを記憶することを求める、第1のハードウェアプロセッサ上で実行しているソフトウェアによる要求の検出に応答して、データパケットを暗号化するように構成される。第1のハードウェアプロセッサは、データパケットの暗号化に応答して、ストレージインターフェースに真のストレージアクセス要求を送信するようにさらに構成され、真のストレージアクセス要求は、暗号化データパケットを含む。第1のハードウェアプロセッサは、ストレージ送信プロトコルに従って、暗号鍵の少なくとも一部分を含むダミーストレージアクセス要求を生成し、ストレージインターフェースにダミーストレージアクセス要求を送信するようにさらに構成される。第2のハードウェアプロセッサは、ストレージインターフェースを介した通信の受信に応答して、通信がダミーストレージアクセス要求を含むか否かを判定するように構成される。応答して、通信がダミーストレージアクセス要求を含むとき、第2のハードウェアプロセッサは、ダミーストレージアクセス要求に従って暗号鍵を決定するように構成される。第2のハードウェアプロセッサは、真のストレージアクセス要求の受信に応答して、暗号鍵を利用してデータパケットを解読し、解読されたデータパケットが悪意のあるソフトウェアを含むか否かを判定するようにさらに構成される。
【0007】
[0006]別の態様によれば、セキュアストレージデバイスは、第1のハードウェアプロセッサと、不揮発性ストレージユニットとを備え、セキュアストレージデバイスは、ストレージ送信プロトコルに従ってフォーマットされているストレージアクセス要求を受信するように構成されているストレージインターフェースを介して第2のハードウェアプロセッサに接続するように構成される。第2のハードウェアプロセッサは、ストレージユニット上にデータパケットを記憶することを求める、第2のハードウェアプロセッサ上で実行しているソフトウェアによる要求の検出に応答して、データパケットを暗号化するように構成される。第2のハードウェアプロセッサは、データパケットの暗号化に応答して、ストレージインターフェースに真のストレージアクセス要求を送信するようにさらに構成され、真のストレージアクセス要求は、暗号化データパケットを含む。第2のハードウェアプロセッサは、ストレージ送信プロトコルに従って、暗号鍵の少なくとも一部分を含むダミーストレージアクセス要求を生成し、ストレージインターフェースにダミーストレージアクセス要求を送信するようにさらに構成される。第1のハードウェアプロセッサは、ストレージインターフェースを介した通信の受信に応答して、通信がダミーストレージアクセス要求を含むか否かを判定するように構成される。応答して、通信がダミーストレージアクセス要求を含むとき、第1のハードウェアプロセッサは、ダミーストレージアクセス要求に従って暗号鍵を決定するように構成される。第1のハードウェアプロセッサは、真のストレージアクセス要求の受信に応答して、暗号鍵を利用してデータパケットを解読し、解読されたデータパケットが悪意のあるソフトウェアを含むか否かを判定するようにさらに構成される。
【0008】
[0007]別の態様によれば、コンピュータセキュリティ方法は、ストレージ送信プロトコルに従ってフォーマットされているストレージアクセス要求を受信するように構成されているストレージインターフェースを介して、セキュアストレージデバイスを第1のハードウェアプロセッサに接続するステップを含み、セキュアストレージデバイスは、第2のハードウェアプロセッサと、不揮発性ストレージユニットとを備える。方法は、ストレージユニット上にデータパケットを記憶することを求める、第1のハードウェアプロセッサ上で実行しているソフトウェアによる要求の検出に応答して、第1のハードウェアプロセッサを利用して、データパケットを暗号化するステップをさらに含む。方法は、データパケットの暗号化に応答して、第1のハードウェアプロセッサを利用して、ストレージインターフェースに真のストレージアクセス要求を送信するステップをさらに含み、真のストレージアクセス要求は、暗号化データパケットを含む。方法は、第1のハードウェアプロセッサを利用して、ストレージ送信プロトコルに従って、暗号鍵の少なくとも一部分を含むダミーストレージアクセス要求を生成するステップと、第1のハードウェアプロセッサを利用して、ストレージインターフェースにダミーストレージアクセス要求を送信するステップとをさらに含む。方法は、ストレージインターフェースを介した通信の受信に応答して、第2のハードウェアプロセッサを利用して、通信がダミーストレージアクセス要求を含むか否かを判定するステップをさらに含む。応答して、通信がダミーストレージアクセス要求を含むとき、方法は、第2のハードウェアプロセッサを利用して、暗号鍵を利用してデータパケットを解読し、解読されたデータパケットが悪意のあるソフトウェアを含むか否かを判定するステップをさらに含む。
【0009】
[0008]本発明の上記の態様および利点は、以下の詳細な説明を読み、添付の図面を参照するとよりよく理解されるようになる。
【図面の簡単な説明】
【0010】
【
図1】[0009]本発明のいくつかの実施形態によるコンピュータセキュリティ脅威から保護されたホストシステムの例示的なハードウェア構成を示す図である。
【
図2】[0010]本発明のいくつかの実施形態によるセキュアストレージデバイスの例示的なハードウェア構成を示す図である。
【
図3-A】[0011]本発明のいくつかの実施形態による保護されたホストシステム上で実行する例示的なソフトウェア構成要素を示す図である。
【
図3-B】[0012]本発明のいくつかの実施形態による代替的なソフトウェア構成要素のセットを示す図である。
【
図4】[0013]本発明のいくつかの実施形態によるセキュアストレージデバイス内で実行する例示的なソフトウェア構成要素を示す図である。
【
図5】[0014]本発明のいくつかの実施形態による、
図3-A~
図3-Bのコンピュータセキュリティモジュール(CSM)によって遂行される例示的なステップのセットを示す図である。
【
図6】[0015]本発明のいくつかの実施形態による、セキュアストレージデバイス内で実行するソフトウェアによって遂行される例示的な一連のステップを示す図である。
【
図7】[0016]本発明のいくつかの実施形態による、ストレージ意味マップを維持するためにセキュアストレージデバイス内で実行するソフトウェアによって実施される例示的な一連のステップを示す図である。
【発明を実施するための形態】
【0011】
[0017]以下の説明において、構造間のすべての記載されている接続は、直接的な動作接続、または、中間構造を通じた間接的な動作接続とすることができることが理解される。要素のセットは、1つまたは複数の要素を含む。要素の任意の記載は、少なくとも1つの要素を参照するものとして理解される。複数の要素は、少なくとも2つの要素を含む。別途要求されない限り、任意の記載されている方法ステップは、必ずしも特定の例示されている順序において実施される必要はない。第2の要素から導出される第1の要素(例えば、データ)は、第2の要素に等しい第1の要素、ならびに、第2の要素および任意選択的に他のデータを処理することによって生成される第1の要素を包含する。パラメータに従って判定または決定を行うことは、パラメータに従って、および、任意選択的に他のデータに従って、判定または決定を行うことを包含する。別途指定されない限り、何らかの量/データの指示は、量/データ自体であってもよく、または量/データ自体とは異なる指示であってもよい。コンピュータプログラムは、タスクを遂行する一連のプロセッサ命令である。本は積み絵のいくつかの実施形態において記載されているコンピュータプログラムは、独立型ソフトウェアエンティティまたは他のコンピュータプログラムのサブエンティティ(例えば、サブルーチン、ライブラリ)であってもよい。コンピュータ可読媒体は、磁気、光、および半導体記憶媒体のような非一時的媒体(例えば、ハードドライブ、光ディスク、フラッシュメモリ、DRAM)、ならびに、導電性ケーブルおよび光ファイバリンクのような通信リンクを包含する。いくつかの実施形態によれば、本発明は、とりわけ、本明細書において記載されている方法を実施するようにプログラムされているハードウェア(例えば、1つまたは複数のプロセッサ)を備えるコンピュータシステム、および、本明細書において記載されている方法を実施するための命令を符号化するコンピュータ可読媒体を提供する。
【0012】
[0018]以下の説明は、必ずしも限定ではなく、例として、本発明の実施形態を例示する。
[0019]
図1は、本発明のいくつかの実施形態によるコンピュータセキュリティ脅威に対して保護されるホストシステム10の例示的なハードウェア構成を示す。例示的なホストシステム10は、コンピュータ(例えば、パーソナルコンピュータ、企業サーバなど)、モバイルコンピューティングデバイス(例えば、ラップトップ、タブレットPC)、遠隔通信装置(例えば、スマートフォン)、デジタル家電(TV、ゲームコンソールなど)、ウェアラブルコンピューティングデバイス)例えば、スマートウォッチ)、または、プロセッサおよびメモリを有し、コンピュータセキュリティ保護を必要とする任意の他の電子装置を含む。単純にするために、図示されているホストシステムはコンピュータシステムであり、携帯電話、スマートウォッチなどのような、他のホストシステムノハードウェア構成は、図示されている構成とはいくらか異なる場合がある。
【0013】
[0020]ホストシステム10は、ハードウェアプロセッサ16およびメモリユニット18を含む、物理装置のセットを備える。いくつかの実施形態において、プロセッサ16は、信号および/またはデータのセットを用いて計算および/または論理演算を実行するように構成されている物理装置(例えば、マイクロプロセッサ、半導体基板上に形成されるマルチコア集積回路など)を含む。いくつかの実施形態において、そのような演算は、一連のプロセッサ命令の形態(例えば、機械コードまたは他のタイプの符号化)でプロセッサ16に送達される。メモリユニット18は、プロセッサ16によってアクセスまたは生成される命令および/またはデータを記憶する揮発性コンピュータ可読媒体(例えば、DRAM、SRAM)を含んでもよい。
【0014】
[0021]入力デバイス(入力装置)20は、ユーザが、データおよび/または命令をホストシステム10に導入することを、そのような導入を可能にするそれぞれのインターフェースおよび/またはアダプタとともに、可能にする装置を含むことができる。例示的な入力デバイスは、中でも、ボタン、キーボード、マウス、ジョイスティック、タッチスクリーン、マイクロフォン、カメラ、ゲームコントローラ、ジェスチャ検出システム、および運動検出センサを含む。出力デバイス(出力装置)22は、中でも、モニタのような表示装置およびスピーカ、ならびに、ホストシステム10がデータをユーザに通信することを可能にするグラフィックカードのようなハードウェアインターフェース/アダプタを含んでもよい。いくつかの実施形態において、入力デバイス20および出力デバイス22は、タッチスクリーン装置の場合のように、共通のハードウェアピースを共有することができる。ネットワークアダプタ26は、ホストシステム10が、ローカルエリアネットワーク(LAN)のような通信ネットワークおよび/または他の装置/コンピュータシステムに接続することを可能にする。
【0015】
[0022]セキュアストレージデバイス24は、ソフトウェア命令および/または他のデータの不揮発性記憶、読み出し、および書き込みを可能にするコンピュータ可読媒体を含む。例示的なストレージデバイス24は、磁気、光、およびフラッシュメモリ装置、ならびに、CDおよび/またはDVDディスクおよびドライブのようなリムーバブル媒体を含む。いくつかの実施形態において、セキュアストレージデバイス24は、下記に詳細に示されるように、記憶されるデータのセキュリティを増強するように特に構成される他のハードウェアおよびソフトウェア構成要素を与えられる。
【0016】
[0023]いくつかの実施形態において、コントローラハブ28は、複数のシステム、周辺機器、および/もしくはチップセットバス、ならびに/または、プロセッサ16とデバイス18、20、22、24、および26との間の通信を可能にするすべての他の回路を含む。コントローラハブ28の例示的な構成要素は、メモリコントローラ、入出力(I/O)コントローラ、および割り込みコントローラを含む。ハードウェア製造元および装置に応じて、すべてのそのようなコントローラの一部は、単一の集積回路に組み込まれてもよく、および/または、プロセッサ16と統合されてもよい。いくつかの実施形態において、出力デバイス22の一部分を形成するグラフィックスアダプタのようないくつかの他の装置もまた、プロセッサ16と統合されてもよい。
【0017】
[0024]
図2は、本発明のいくつかの実施形態によるセキュアストレージデバイス24の例示的なハードウェア構成を示す。いくつかの実施形態は、従来のストレージデバイス(記憶装置)-一次ストレージ(記憶装置)30(例えば、磁気またはソリッドステートドライブ)を、ホスト10の一次プロセッサとは別個の専用セキュリティプロセッサ116と対にすることによって、悪意のあるソフトウェアによって課される危険性を軽減する。この補助プロセッサは、従来のハードドライブフォームファクタをとる共通のプリント回路基板上で、ストレージユニットおよび/または追加のハードウェアと統合され得る。別の例示的な実施形態において、セキュアストレージデバイス24は、ユニバーサルシリアルバス(USB)またはThunderbolt(登録商標)インターフェース/コネクタのような従来のインターフェースを介してホストシステムに接続することができる、外部大容量ストレージデバイス(例えば、フラッシュドライブ、外部ハードドライブ)としてパッケージされてもよい。
【0018】
[0025]一次ストレージ30は、ホストシステム10の事実上のストレージデバイスとして作用することができる。そのため、一次ストレージ30は、ホストプロセッサ16上で実行するオペレーティングシステムおよび/または他のソフトウェアアプリケーションに属するコードおよび/またはデータ、ならびに、文書、画像、音声ファイルなどのようなユーザのデータを記憶することができる。
【0019】
[0026]セキュリティプロセッサ116は、信号および/またはデータのセットを用いて数学および/または論理演算を実施するように構成されている物理電子回路(例えば、半導体基板上に形成される集積回路など)を含む。いくつかの実施形態において、プロセッサ116は、パーソナルコンピュータおよび/または携帯電話内の中央処理装置(CPU)として使用されるタイプの多目的汎用マイクロプロセッサである。そのようなプロセッサの例は、Intel(登録商標)、AMD(登録商標)、およびARM(登録商標)のような製造元からの従来のプロセッサである。代替的な実施形態において、プロセッサ116は、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)のような、カスタマイズされた電子回路を含む。プロセッサ116の他の実施形態は、グラフィックスプロセッシングユニット(GPU)、または上記の組み合わせを含む。そのような特殊化されたプロセッサは、それらのアーキテクチャが、並列計算および特定の特殊化されたタスクのために特に作成および最適化され得るという点において有利であり得る。並列の特殊化されたアーキテクチャは、下記にさらに説明されるような、暗号化/解読のような用途に利するものであり得る。
【0020】
[0027]セキュアストレージデバイス24の追加のハードウェア構成要素は、プロセッサ116によってアクセスまたは生成される命令および/またはデータを記憶するための揮発性コンピュータ可読媒体(例えば、DRAM、SRAM)を提供するセキュリティメモリ118を含むことができる。装置24は、一般的に、バス、および/または、装置24のハードウェア構成要素を相互接続するすべての他の回路を表す、セキュリティコントローラ34をさらに備えることができる。セキュアストレージデバイス24は、ストレージインターフェース36(例えば、シリアルATアタッチメント-SATA、または、PCIエクスプレスインターフェースおよび/もしくはコネクタ)によってホストシステム10のコントローラハブ28にさらに接続することができる。
【0021】
[0028]いくつかの実施形態において、セキュアストレージデバイス24は、不揮発性コンピュータ可読媒体を含む二次ストレージデバイス32をさらに含むことができる。いくつかの実施形態において、一次ストレージ30および二次ストレージ32は、磁気、光、またはソリッドステートドライブのような、単一の物理的な大容量ストレージデバイスの個別の論理区画として実装される。二次ストレージ32は、プロセッサ16上で実行するソフトウェアに対して不可視であり得、補助セキュリティプロセッサ116上で実行するソフトウェアにとってのみアクセス可能であり得る。そのような分離は、限られた範囲の記憶アドレスをホストプロセッサ16に露出するように構成されるハードウェア論理(セキュリティコントローラ34の回路)を使用して達成され得る。
【0022】
[0029]二次ストレージ32は、セキュリティコード、および、とりわけ、マルウェアを示すシグネチャのようなデータを記憶するために使用され得る。二次ストレージ32は、開始(ブートアップ)時にプロセッサ116によって実行されるコードをさらに記憶することができる。セキュアストレージデバイス24のいくつかの実施形態は、下記により詳細に示されるように、ファイルシステム意味マップの符号化を記憶するために、二次ストレージ32を使用する。ストレージ32の他の実施形態は、一次ストレージ30内に記憶されるデータの部分コピー(例えば、バックアップ)を記憶することができる。
【0023】
[0030]いくつかの実施形態において、一次ストレージ30および二次ストレージ32は、位置指定子(アドレス)のセットを介してアドレス指定可能である。実施態様に応じて、ストレージ30、32は、個々のアドレス指定可能な単位、例えば、セクタ、ブロック、および/またはクラスタに分割され得る。
【0024】
[0031]
図3-Aは、本発明のいくつかの実施形態によるホストプロセッサ16上で実行する例示的なソフトウェア構成要素を示す。オペレーティングシステム(OS)40は、ホストシステム10のハードウェアと、アプリケーション41a~bのような他のソフトウェアとの間のインターフェースを提供するコンピュータプログラムのセットを含む。OS40は、とりわけ、Windows(登録商標)、MacOS(登録商標)、Linux(登録商標)、iOS(登録商標)、またはAndroid(登録商標)のような、広く利用可能なオペレーティングシステムを含んでもよい。アプリケーション41a~bは、一般的に、ワードプロセッサ、表計算アプリケーション、撮像アプリケーション、ゲーム、ブラウザおよび電子通信アプリケーションを含む、任意のコンピュータプログラムを表す。
【0025】
[0032]本発明のいくつかの実施形態は、マルウェアに対してホストシステム10を保護するソフトウェアを含むコンピュータセキュリティモジュール(CSM)44をさらに含む。CSM44は、例えば、悪意のあるソフトウェアを検出するためのコンピュータプログラム、および/または、そのようなソフトウェアを無力化するためのコンピュータプログラムを含むことができる。そのような構成要素は、コンピュータセキュリティの技術分野において知られている任意の方法を利用してもよい。いくつかの実施形態において、CSM44は、OS40とセキュアストレージデバイス24との間のインターフェースとして動作するストレージメディエータ構成要素42をさらに備える。例示的なストレージメディエータ42は、一次ストレージ30から読み出しおよび一次ストレージ30への書き込みを可能にするストレージドライバとして動作することができる。ストレージメディエータ42は、下記により詳細に示されるように、セキュリティプロセッサ116上で実行するソフトウェアとメッセージおよび/またはデータを交換するようにさらに構成され得る。
【0026】
[0033]
図3-Bは、例えば、クラウドコンピューティングアプリケーション内などの、ハードウェア仮想化環境内で動作する代替的な実施形態を示す。仮想マシン(VM)は、当該技術分野において、実際の物理的な機械/コンピュータシステムのエミュレーションを説明するために使用される用語であり、VMは、オペレーティングシステムおよび他のアプリケーションを作動させることが可能である。ハイパーバイザは、仮想プロセッサおよび仮想MMUのような、複数の仮想化装置を作成または有効化し、ホストシステム10の現実の物理装置の代わりに、そのような仮想化装置をソフトウェアに提示するように構成されているソフトウェアを含む。そのような動作は、一般的に、仮想マシンを露出させることとして知られている。ハイパーバイザは、複数の仮想マシンによってホストシステム10のハードウェア資源を共有することを可能にすることができ、さらに、各VMが独立して動作し、それぞれのホスト上で実行している他のVMを意識しないような多重化を管理することができる。有名なハイパーバイザの例は、とりわけ、VMware Inc.製のVMware vSphere(商標)、およびオープンソースのXenハイパーバイザを含む。本明細書において、ソフトウェアは、それぞれの仮想マシンの仮想プロセッサ上で実行するとき、仮想マシン内で実行すると記載される。
【0027】
[0034]
図3-Bに示されている例示的な構成において、ハイパーバイザ46は、ゲストVM48aを露出させる。オペレーティングシステムおよびユーザアプリケーションセットは、ゲスト仮想マシン48a内で実行し、一方。CSM44は、ゲストVM48aとは別個の専用セキュリティ仮想マシン48b内で実行する。
図3-Bの代替的な実施形態において、CSM44および/またはストレージメディエータ42は、ハイパーバイザ46によってロードされ/呼び出されるライブラリのセットを含み得る。そのため、CSM44および/またはストレージメディエータ42は、ハイパーバイザ46のプロセッサ特権レベル(例えば、Intel(登録商標)プラットフォーム上のリング1またはVMXroot)において、ゲストVM48aの下で実行することができる。
図3-Bに示されているような構成は、セキュリティが増大されているため、
図3-Aに示されているものにとって好適であり得る。ゲストVM48aおよびセキュリティVM48bの仮想環境は、互いから相対的に良好に分離され得、結果、ゲストVM48a内で実行する悪意のあるソフトウェアは、セキュリティVM48b内で実行するソフトウェアに感染することができず、または他の様態でセキュリティVM48b内で実行するソフトウェアと干渉することができない。
【0028】
[0035]
図4は、本発明のいくつかの実施形態による、セキュアストレージデバイス24内で(すなわち、プロセッサ116上で実行する例示的なソフトウェア構成要素セットを示す。図示されているソフトウェアは、ストレージセキュリティエージェント50および暗号エンジン52を含む。エージェント50は、一次ストレージ30のファイルシステム意味マップを維持し、ヒューリスティクス(例えば、決定規則)のセットを適用して、一次ストレージ30にアクセスすることを求める、ホストプロセッサ16上で実行するソフトウェアによる要求が、コンピュータセキュリティ脅威を示すか否かを判定するように構成され得る。エンジン52は、一次ストレージ30に入来するおよび/または一次ストレージ30から入来するデータパケットに対して暗号化および/または解読動作を実施するように構成され得る。構成要素50および52の動作は、下記に詳述される。
【0029】
[0036]いくつかの実施形態において、CSM44は、タッチ、ストレージメディエータ42によって管理される通信チャネルを介して通知/信号を交換することによって、セキュアストレージデバイス24内で実行するソフトウェア(例えば、セキュリティエージェント50)と協働する。プロセッサ16からセキュアストレージデバイス24への例示的な通知(本明細書においてはダウンリンク通知として参照される)は、プロセッサ116によって実施されるべき動作の指示、および、ファイル名、暗号化鍵、フラグのセットなどのような他のデータを含む。CSM44はまた、下記にさらに詳述されるように、特定のセキュリティ関連イベントに応答してダウンリンク通知を送信してもよい。
【0030】
[0037]例示的な通信チャネルは、プロセッサと大容量ストレージユニットとの間でデータを伝送する通常の手段を使用してもよい。例えば、CSM44およびセキュリティエージェント50は、シリアルATAまたは小型コンピュータシステムインターフェース(SCSI)プロトコルのようなストレージ送信プロトコルに従ってメッセージを交換してもよい。ストレージ送信プロトコルは、ストレージインターフェースを介した通信、フレーム/パケットのサイズおよび内容、カウント、サイズ、順序のフォーマット、ならびに/または、ヘッダおよび/もしくはペイロード、様々な制御ビットおよびデータフィールドの重要性、コマンドの符号化などのフォーマットを確立する。
【0031】
[0038]いくつかの実施形態において、ダウンリンク通知は、ダミーアクセス要求として偽装される。ダミーアクセス要求とは、本明細書においては、通信プロトコル(例えば、良好に形成されたSATAコマンド)に従って適切にフォーマットされているが、それ自体が遂行されることにはなっておらず、代わりに通知として解釈されるストレージアクセス要求を指す。「ダミー」という用語は、そのような要求を、それ自体が遂行されるように意図されているストレージアクセス動作を表す「真の」または「本物の」ストレージアクセス要求から区別するために使用される。
【0032】
[0039]いくつかの実施形態において、ダミー要求は、1つのそのようなダミー要求を実行することが例外/障害を引き起こすという意味において、無効なストレージアクセス要求である。そのような場合、フォルトハンドラが、それぞれの障害をインターセプトし、それぞれの障害を引き起こしている要求をダウンリンク通知として決定することができる。他の実施形態において、ダミー要求は、それ自体に欠陥があるものではないが、パラメータ値(フラグ)の特定の、異常な、または矛盾する組み合わせを含み得る。また他の実施形態において、ダミー要求は、有効な通常の要求を含み得、そのようなダミー要求は、例えば、ペイロードの、または、ストレージ通信プロトコルによって定義される他のデータフィールドの内容に従って、そのようなものとして識別され得る。
【0033】
[0040]ダミーアクセス要求の1つの例は、範囲外アドレス、すなわち、一次ストレージ30の通常のアドレス指定可能範囲の外部のアドレスにアクセスすることを求める要求を含む。例は、「ブロックBを読み出す」または「アドレスAにおけるペイロードPに書き込む」を含み、ブロックBのアドレスおよびアドレスAは、一次ストレージ30の通常のアドレス指定可能範囲の外部にある。そのような各アドレス(Aおよび/またはBの特定の値)は、セキュアストレージデバイス24の内部で実行するソフトウェアに通信される特定の命令またはイベントに対応し得る。別の例において、ダウンリンク通知が、通常のアドレス指定可能範囲内にあるが、通常の動作中は一般的にアクセスされないアドレスにおいてストレージにアクセスすることを求める要求として偽装され得る。例えば、マスタブートレコード(MBR)または重要なOS構成要素(例えば、Windows(登録商標)内のNTOSKRNL.EXE)を現在保持している記憶位置に書き込むことを求める要求は、セキュアストレージデバイス24によってインターセプトされ得、CSM44からのダウンリンク通知として解釈され得る。
【0034】
[0041]また別の例において、ダミーアクセス要求は、特定のペイロード内容(例えば、特定のビットパターンまたはシグネチャ)に従って識別され得る。そのような実施形態において、セキュリティプロセッサ116上で実行するソフトウェア構成要素は、ペイロード内容を解析して、ダミーアクセス要求を検出することができる。様々なペイロードPが、セキュアストレージデバイス24に対する様々な通知/命令に対応し得る。
【0035】
[0042]また別の例において、ダミーアクセス要求は、例えば、シリアルATAプロトコルにおいて指定される「コマンド(Command)」および/または「補助(Auxiliary)」フィールドの内容に従ってなど、ストレージ通信プロトコルによって定義される別のデータフィールドの内容に従って、そのようなものとして識別され得る。1つのそのような例において、マルウェアシグネチャを更新するためのコマンドは、CSM44によって発行されるダミーアクセス要求の「コマンド」フィールド内に符号化され得る。実際のシグネチャは、別のダミーアクセス要求のペイロードとして送信され得る。
【0036】
[0043]ダウンリンク通知のいくつかの他の例は、特定の記憶位置に記憶されているデータをスキャンするための命令を含み、それぞれの位置は、ダミーアクセス要求のペイロード内に符号化され得る。また別の例において、複数の個別のアドレスAを含むダミー書き込み要求が、個別のマルウェア対策方法またはパラメータを示し得る。複数のアドレスAの各アドレスまたは範囲が、個別のヒューリスティクス、または、マルウェアを示すシグネチャの個別のグループを示し得る。
【0037】
[0044]これを受けて、ストレージメディエータ42は、例えば、ハードウェア割り込み-IRQ、または、装置24によって送信され、ストレージメディエータ42によっておよび/もしくはOS40の別のイベントハンドラによって処理される非同期SATA通知を介するなど、確認応答および/またはダウンリンク通知に対する別の形態の応答を介して、装置24から通知/信号(本明細書においてはアップリンク通知として参照される)を受信することができる。例示的なアップリンク通知は、とりわけ、例えば、可能性のあるランサムウェア攻撃の指示、および、ストレージデバイス24のファームウェアを更新しようとする試みの指示などのセキュリティ警告を含む。
【0038】
[0045]また別の例示的なアップリンク通知は、暗号鍵を求める要求を含む。1つのそのような例においては、セキュリティエージェント50は、暗号化されたデータパケットへの書き込みを行おうとする試みを検出することができる。そのような試みは、ディスクデータの自動暗号化が起動されることを示し得る(例えば、Microsoft(登録商標)のBitlocker(登録商標)技術)。応答して、いくつかの実施形態は、CSM44から暗号鍵を要求することができる。この方法のさらなる詳細は、下記においてさらに説明する。
【0039】
[0046]いくつかの実施形態は、一連のダウンリンク-アップリンク通知を使用した反復的なマルウェア検出のバージョンを実装する。1つのそのような例では、ダウンリンク通知は、ストレージセキュリティエージェント50に、特定のファイルをマルウェアについてスキャンするように命令する。エージェント50は、次いで、スキャンの結果をCSM44に通信することができ、CSM44は、第1のスキャンの結果に従って別のファイルまたはフォルダを選択し、新たなダウンリンク通知などを介して、セキュリティエージェント50に新たなスキャン目標を通信することができる。そのような反復方式は、セキュアストレージデバイス24上に複雑なソフトウェアをインストールする必要がある、相当に複雑なマルウェア検出手順を可能にすることができる。
【0040】
[0047]
図5は、本発明のいくつかの実施形態による、CSM44によって実施される例示的な一連のステップを示す。CSM44は、ホストシステム10内の複数のソースからセキュリティ関連データを集約することができ、ソフトウェアの実行中に一定のイベントの発生に関する通知を受信することができる。1つの例示的なソースは、それぞれのシステムコールが発生する度に、CSM44への信号に結びつけることによって修正される、OS40のシステムコール関数である。セキュリティ情報および通知の他の例示的なソースは、OSミニフィルタを含む。いくつかの実施形態において、CSM44は、さらに、セキュアストレージデバイス24からに関するアップリンク通知を受信することができる。イベントの発生の検出に応答して、ステップ206において、CSM44は、ヒューリスティクスのセットを提供して、ホストシステム10が現在攻撃を受けているか否かを判定することができる。分析によってマルウェアの疑いが明らかになったとき、CSM44は、例えば、悪意のあるプロセスの実行をブロックしまたは他の方法で防止し、ユーザまたはホストシステム10の管理者に警告するなど、適切なマルウェア対策手段(ステップ212~214)をとることができる。いくつかの検出されるイベントは、セキュアストレージデバイス24へのダウンリンク通知を行うに値する。1つのそのような例においては、CSM44は、セキュリティエージェント50に、ストレージアクセスの試みに対する調査を実施するように指示することができる。ダウンリンク通知は、
図5においてはステップ208~210として示されている。
【0041】
[0048]いくつかの実施形態において、ストレージセキュリティエージェント50は、OS40のファイルシステムから独立して、ストレージ30上に記憶されているメタデータから、OS40によって使用されるファイルシステムのセマンティクスを作成し直す。言い換えると、エージェント50は、OS40のファイルシステムの代替形態またはシャドウに相当する、ファイルシステムの意味論的知識ベースを維持する。従来のコンピュータシステムにおいては、ハードウェアレベルにおいて、データは、意味情報を欠くブロックとして記憶される。例えば、データのいずれのチャンクがいずれのファイル/フォルダに属するかは明確ではない。さらなる複雑な事態は断片化であり、単一ファイルのデータが隣接して記憶されず、記憶媒体全体を通じて様々な位置に分散される。資産を記憶位置と関連付け、ハードウェアレベル情報を意味のあるデータに変換する記帳タスクは、一般的にOSによってなされる。OSは、メタデータとして符号化され、記憶媒体の特定のセクション内に記憶されている、ファイルシステムとして知られている特化されたデータ構造を維持することによって、そのようなタスクを管理する。例示的なファイルシステムは、とりわけ、FAT、FAT32、およびNTFSを含む。
【0042】
[0049]いくつかの実施形態において、ファイルシステム意味マップは、一次ストレージ30のセクションと、OS40のファイルシステムのアイテムとの間のマッピングの符号化を含む。例示的なファイルシステムアイテムは、ディレクトリおよびファイルを含む。例示的な意味マップアイテムは、アドレスの範囲[A1 A2]を、ファイルFと関連付ける(Fは、例えば、C:¥user¥docs¥Letter.txtまたは/home/user/docs/Letter.txtのようなパスとして表され得る)。そのような関連付けは、実効的に、それぞれのアドレス範囲内に記憶されているデータが、ファイルFの一部分を形成することを示す。別の例示的なファイルシステム意味マップアイテムは、アドレス範囲[A3 A4]が、ファイルシステムメタデータを記憶することを指定する。また別の例示的なファイルシステム意味マップアイテムは、個々のアドレス指定可能な単位(例えば、アドレス範囲とは対照的に、記憶ブロックまたはセクタ)を、ファイルシステムアイテムと関連付ける。意味マップデータは、例えば、ビットマップ、リンクリストなどとして、当該技術分野において知られている任意の方法を使用して符号化され得る。
【0043】
[0050]
図6は、本発明のいくつかの実施形態による、ストレージセキュリティエージェント50によって実施される例示的な一連のステップを示す。エージェント50は、ストレージインターフェース36を介してOS40からストレージアクセス要求を受信する。典型的な要求は、動作の指示(読み出し、書き込み)、アドレスの指示、およびペイロードを含む。例示的なストレージアクセス要求は、「アドレスAにおいてNバイトのブロックを読み出す」および「アドレスAにおいてペイロードPに書き込む」のセマンティクスを有する。アクセス要求は、それぞれの要求のパラメータ値(例えば、フラグ、属性)のセットをさらに含むことができる。ストレージアクセス要求の実際のフォーマットおよび符号化は、ハードウェアおよびソフトウェアの実装形態の間で変化し得る。
【0044】
[0051]アクセス要求が装置24に到達すると、エージェント50は、要求のパラメータに従って、それぞれの要求が真のストレージアクセスを示すか、または、ダミーストレージアクセス(すなわち、CSM44からの通知)を示すかを判定することができる。1つの例示的な実施形態において、範囲外アドレスにアクセスすることを求める要求は、そのような通知を示し得る。それぞれのアクセス要求がダウンリンク通知を含むとき、ステップ236は、それぞれの要求のパラメータに従って特定の動作を選択肢、実施することができる(下記のいくつかの例を参照されたい)。
【0045】
[0052]一連のステップ228~230において、セキュリティエージェント50は、さらに、意味マップに従ってそれぞれのストレージアクセス要求のセマンティクスを復号することができる。例えば、エージェント50は、書き込まれているものがメタデータであるかまたは実際のファイルであるか、新たなファイルが作成されているか、どの特定ファイルが現在書き込みまたは読み出しされているかなどを判定することができる。さらなるステップ232は、アクセスヒューリスティクスのセットを適用して、要求されているアクセスがコンピュータセキュリティ脅威を示すか否かを判定することができる。そうでないとき、エージェント50は、それぞれのアクセスが進行することを可能にすることができる。ヒューリスティクスが、要求されているアクセス要求は、コンピュータセキュリティモジュール44への通知を行うに値することを示すとき、エージェント50は、セキュリティ警告に相当するアップリンク通知を実施することができる。
【0046】
[0053]
図7は、ファイルシステム意味マップを維持するためにストレージセキュリティエージェント50によって遂行される例示的な一連のステップを示す。マップ作成は、例えば、ブートアップにおいて開始され得る。いくつかの実施形態において、エージェント50は、OS40によって使用されるファイルシステムメタデータが記憶される、一次ストレージ30上の位置を決定することができる。これを達成するためのいくつかの方法が、コンピュータ科学捜査の技術分野において知られている。いくつかの実施形態は、ファイルシステムデータの位置を決定するために、ホスト(例えば、CSM44)上で実行するソフトウェア構成要素を使用する。CSM44はその後、ダウンリンク通知を使用して、それぞれの位置をセキュリティエージェント50に通信することができる。
【0047】
[0054]一連のステップ254~256において、エージェント50は、一次ストレージ30内に記憶されているファイルシステムメタデータを解析し、それぞれのメタデータに従って意味マップを組み立てる。いくつかの実施形態は、セキュリティメモリ118および/または二次ストレージ32内に、決定されている意味マップデータ(すなわち、シャドウファイルシステム)を記憶する。その後、プロセッサ16上でのソフトウェアの実行中、エージェント50は、ストレージアクセス要求をリッスンし、そのような要求が、メタデータの変化(例えば、ファイル/ディレクトリの作成または削除)を示すか否かを判定することができる。そうであるとき、エージェント50は、それに従って意味マップを更新することができる(
図7のステップ260-262-264)。
【0048】
[0055]通知およびヒューリスティクスの例示されているシステムは、様々な用途に使用され得、そのいくつかの例が、下記に与えられる。
ハードウェアを保護するためのコマンドフィルタリング
[0056]慎重に作成された悪意のあるソフトウェアは、ATAコマンドセット(例えば、DOWNLOAD MICROCODEコマンド)の特定の機能を利用して、ストレージデバイスのファームウェアを不正に更新し、結果、ハードウェアレベルのマルウェアを装置自体に導入することができる。1つのそのような例示的なマルウェアは、それぞれのストレージデバイスの挙動を改変し、および/または、それぞれのストレージデバイスを制御するためにホスト上で実行するソフトウェアによって使用され得るバックドアである。
【0049】
[0057]そのような進歩した攻撃を防止するために、いくつかの実施形態において、ストレージセキュリティエージェント50は、ストレージインターフェース36を介して受信されるストレージアクセス要求をフィルタリングするように構成される。フィルタリング規則は、基本的なものであり得、例えば、最も一般的なアクセス要求(例えば、読み出し、書き込み、装置を識別するためのコマンドなど)の実行を可能にし、すべての他のコマンド/要求をブロックすることができる。他の実施形態は、例えば、現在のコンテキストに適合されたフィルタリング規則など、より洗練されたフィルタリングヒューリスティクスを実施することができる。別の例においては、セキュリティエージェント50は、ホストシステム10の管理者からの明示的な確認を受けて、特定のATAコマンド/アクセス要求の実行を調整することができる。
【0050】
[0058]いくつかの実施形態において、特定のコマンド/要求はブロックされず、代わりにエミュレートされ、セキュリティプロセッサ116上で実行するソフトウェアによって(例えば、セキュリティエージェント50によって)さらに分析される。そのようなコマンドの受信に応答して、セキュリティソフトウェアは、それぞれのコマンド/アクセス要求の遂行に成功したと信じ込ませるように、ホストプロセッサ16上で実行するソフトウェアを騙すために、人為的な応答を返すことができる。セキュリティエージェント50はさらに、マルウェア対策研究を補助するために、そのようなコマンドをログ記録することができる。
【0051】
ハードウェアレベルにおけるイベントインターセプトおよび解釈
[0059]意味マップ(シャドウファイルシステム)を維持することによって、ストレージセキュリティエージェント50は、アクセス要求の受信に応答して、プロセッサ16上のソフトウェアの実行中に発生するセキュリティ関連イベントを検出することが可能になる。例えば、書き込み要求に応答して、エージェント50は、書き込まれているものがメタデータであるか、または、ファイルの実際の内容であるか、それぞれの書き込みが空の記憶セクションに向けられているか、または、既存の情報を上書きしているか、それぞれの書き込みが本物の書き込みであるか、または、プロセッサ16からのダウンリンク通知であるか、などを判定することができる。
【0052】
[0060]ファイル作成、ファイル削除、およびファイル書き換えのようなファイルシステムイベントが、イベント特有の動作シーケンスに従って遂行される。例示的なパターンは、メタデータ読み出し、その後のメタデータ書き込み、その後のペイロード書き込みを含んでもよい。エージェント50は、そのようなパターンを符号化するヒューリスティクスのセットを使用して、各ファイルシステムイベントのタイプを識別することができる。さらに、エージェント50は、例えば、いずれのファイルが書き込まれているか、いずれのファイルが読み出されているかなど、各読み出し/書き込み動作の目標を識別することができる。
【0053】
[0061]従来のコンピュータセキュリティシステム/方法とは対照的に、そのようなイベントインターセプトは、プロセッサ16上で実行するソフトウェアを知ることなく仮想的に行われる。それゆえ、悪意のあるソフトウェアは、イベント検出を妨げることができず、または、他の様態でイベント検出に干渉することができない。エージェント50のようなセキュリティソフトウェアは、その後、アップリンク通知を使用して、セキュリティに関連すると考えられる特定のイベントの発生をCSM44に通知することができる。
【0054】
オンアクセスマルウェアスキャン
[0062]セキュリティエージェント50は、ファイルを開こうとする試みおよび/または実行可能ファイルを実行しようとする試みを検出することができる。このように検出され得る他の動作は、ファイル添付および後続の書き込みのためのストレージの配分を含む。そのような各イベントは、それぞれのファイルのスキャン、または、それぞれのストレージアクセスを指図したプロセスに属するリソース(メイン実行ファイル、ライブラリなど)のスキャンを起動するためのトリガとして使用され得る。スキャンは、ストレージアクセス要求を発行したプロセスが一時中断されている間に搬送され得、または、それぞれのプロセスが実行を継続することを可能にしている間はオフラインであり得る。
【0055】
[0063]スキャンは、それぞれのファイルの内容を、マルウェアを示すシグネチャまたはコードパターンのライブラリと照合することによって、コンピュータセキュリティの技術分野において知られる任意の方法に従って、実施されてもよい。マルウェアを示すシグネチャのライブラリは、この目的のために二次ストレージ32上に記憶され得る。ライブラリは、定期的なまたは要求に応じた更新を介して最新に維持され得る。いくつかの実施形態は、ダウンリンク通知(例えば、ダミーストレージアクセス要求)のセットを介して、シグネチャライブラリおよび/またはセキュアストレージデバイス24上で実行する他のソフトウェアを更新する。
【0056】
[0064]オンアクセススキャンの変形形態において、エージェント50は、ヒューリスティクスのセットを使用して、ホストシステム10および/またはOS40のブートシーケンスを検出することができる。言い換えれば、一連のストレージアクセス要求を分析することによって、エージェント50は、ホストシステム10が現在ブート過程にある(すなわち、ハードウェアおよび/またはソフトウェアを初期化している)と判定することができる。例示的なブートシーケンスは、典型的には、マスタブートレコード(MBR)またはGUIDパーティションテーブル(GPT)として知られるデータ構造を記憶する位置からの一連の読み出し要求によって開始する。
【0057】
Identify Device(装置を識別する)
Read DMA Ext A:00000000 C:0001
Read DMA Ext A:00000000 C:0001
Read DMA Ext A:00000001 C:0001
Read DMA Ext A:E8E088AF C:0001
Read DMA Ext A:00000002 C:0020
Read DMA Ext A:E8E0888F C:0020
Read DMA Ext A:00000002 C:0020
・・・
OS40がロードを開始したことを示す例示的な一連のストレージアクセス要求が、下記に示される。
【0058】
Identify Device(装置を識別する)
Read FPDMA Queued A:00000000 C:0001 T:04
Read FPDMA Queued A:00000001 C:0001 T:05
Read FPDMA Queued A:00000002 C:0020 T:06
Read FPDMA Queued A:00000000 C:0001 T:07
・・・
[0065]アクセス要求のブートシーケンスの別の典型的な機能は、2~5個の書き込み要求からなる短いシーケンスによって割り込まれる読み出し要求(例えば2~3000個の連続する読み出し要求)の非常に長いシーケンスを含む。そのようなパターンは、OS特有であり得る。パターン分析は、連続する読み出し/書き込み要求のカウントを、アドレス情報および/または他のパラメータ値の分析と組み合わせて、ブートプロセスの様々な段階を推論することができる。
【0059】
[0066]いくつかの実施形態は、アクセス要求パターン照合を、意味マップ情報と組み合わせて、OS40の初期化を検出することができる。1つのそのような例において、セキュリティエージェント50は、反復手順を搬送して、ホストプロセッサ16上で実行するソフトウェアのタイプおよび/または位置に関する情報を、ストレージアクセスイベントから直接的に収集することができる。マスタブートレコードに対するアクセスを検出することによって、エージェント50は、パーティション情報を決定することができる。次いで、一連の読み出し要求が、ボリュームヘッダにおいて標的化される。そのような要求から、エージェント50は、それぞれのボリュームに関する情報を決定および検証することができる。次に、エージェント50は、ブートに伴う一連の読み出しおよび/または書き込みに従うことによって、重要なOSファイル(例えば、Windows(登録商標)におけるNTOSKRNL.EXEのような、OS40が初期化時にロードするリソース)のセットの記憶位置を自動的に識別することができる。それぞれのブートシーケンスはまた、オペレーティングシステムのタイプ(例えば、OS40の型、バージョンなど)も明らかにすることができる。
【0060】
[0067]いくつかの実施形態は、その後、検出されたブート/初期化段階に後続する時間期間(例えば、数秒)中に開かれているすべてのファイルをスキャンすることができる。スキャンは、完全性の検証、すなわち、ファイルの内容が、例えば、悪意のあるソフトウェアによって損なわれているか否かの判定を含むことができる。完全性の検証は、それぞれのファイルの現在の内容のハッシュを、二次ストレージ32上に記憶されている基準ハッシュと比較することを含むことができる。
【0061】
[0068]ブートシーケンスに関係付けられるまた別の例示的な応用形態において、いくつかの実施形態は、セキュアストレージデバイス24を、OS40の外部で実行し、OS40の完全性および/または信用性を試験するように構成されるエージェントとして使用することができる。例えば、エージェント50は、ホストシステム10をリブートすることを求める要求を自動的に検出することができる。その後、(例えば、装置検出および初期化動作から、または、CSM44によるダウンリンク通知に応答して)リブートが実際に進行中であるという検出に応答して、エージェント50は、通常のブートシーケンスを一時中断し、OS40のデータ構造および/または一次ストレージ30のブート領域をスキャンするように構成されている代替的なOSまたはセキュリティエージェントを露出させることができる。スキャンが完了され、システムが安全であるとみなされると、エージェント50は、OS40のブートを再開することができる。
【0062】
記憶されている資産の保護
[0069]一次ストレージ30のブート領域は、典型的には、OSがロードされる前に読み出されるリソースを記憶する。意味マップを維持することによって、エージェント50は、書き込み要求がそれぞれのブート領域を標的化するか否かを判定することができ、応答して、それぞれの書き込みをブロックし、および/または、CSM44に通知することができる。特定のファイル、ライブラリなどのような、OS40または他のアプリケーションの貴重な資産を保護するために、同様の戦略が使用され得る。
【0063】
暗号化データによる動作
[0070]OS40のいくつかのバージョンは、データを一次ストレージ30上に暗号化された形態で保持するオプションを有する。1つのそのような例が、Microsoft(登録商標)Windows(登録商標)のBitlocker(登録商標)機能である。記憶されているデータが暗号化されている場合、OS40の外部で実行するエンティティ(ストレージセキュリティエージェント50を含む)は、それぞれのデータ、または、ファイルシステム意味マップの構築を可能にするシステムメタデータにアクセスすることができなくなる場合がある。
【0064】
[0071]しかしながら、エージェント50は、CSM44と協働して、暗号化鍵、または、それぞれの鍵を導出することを助成する情報を取得することができる。そのような情報は、例えば、パスワード、秘密、ノンスなどを含むことができ、本明細書では、暗号化鍵材料と称される。CSM44は、ユーザパスワードまたはそれぞれの鍵に関連して使用される別の秘密を要求するユーザインターフェースを露出させ、パスワード/秘密をエージェント50に通信することができる。別の実施形態において、CSM44は、OSの暗号化エージェント(例えば、Bitlocker(登録商標)モジュール)と直接的にインターフェースして、鍵材料を取得することができる。鍵材料を取得するのに応答して、CSM44は、鍵材料自体、または、当該鍵材料の記憶位置を、ダウンリンク通知(例えば、ダミーストレージアクセス要求)を介してエージェント50に通信することができる。
【0065】
[0072]暗号化鍵を保持すると、エージェント50は、ファイルシステム意味マップを構築および/または維持するために、暗号エンジン52を使用して、記憶されているデータを解読することができる。いくつかの実施形態において、エージェント50は、暗号鍵をさらに使用して、実質的にOS40またはホストプロセッサ16上で実行する他のソフトウェアを知ることなく、一次ストレージ30へのデータトラフィックおよび/または一次ストレージ30からのデータトラフィックのオンラインスキャン/分析を実施することができる。1つの例では、書き込み要求のインターセプトに応答して、セキュリティエージェント50は、元の(暗号化された)ペイロードを意図されるアドレスに書き込む前に、それぞれのペイロードを解読および分析することができる。いくつかの実施形態において、それぞれのペイロードの解読に応答して、エージェント50は、ペイロードの暗号化されていないバージョンを二次ストレージ32に保存することができる。
【0066】
一般的な暗号化の検出
[0073]ストレージセキュリティエージェント50のいくつかの実施形態は、ストレージ30のセクション(例えば、ブロック、セクタなど)内に記憶されているデータが暗号化されているか否かを自動的に判定することができる。そのような判定は、エントロピーまたは当該技術分野において知られている他の方法などの情報複雑性測度を使用することができる。誤判定を回避するために、いくつかの実施形態は、それぞれのファイルが、それぞれのファイルが必ずしも暗号化されることなく高いエントロピーを有する可能性があるか否かを判定するために利用可能なメタデータを使用することができる。そのような例は、MP3、JPG、MPG、ZIPなどのようなフォーマットに従って圧縮されているデータを含む。それぞれのファイルがこれらのカテゴリのうちの1つに入るか否かを判定するために、いくつかの実施形態は、メタデータに従ってそれぞれのファイルのヘッダセクションを位置特定し、それぞれのヘッダ内のファイルタイプ情報を検索することができる。
【0067】
[0074]いくつかの実施形態において、ファイルシステム意味マップの各エントリは、例えば、それぞれのファイルシステムアイテム(ファイル、フォルダなど)が暗号化されているか否か、それぞれのファイルシステムアイテムが圧縮されているか否かなどを示す、フラグのセットによって増強され得る。フラグは、意味マップデータの残りの部分とともに、エージェント50によって維持され得る。
【0068】
進歩したランサムウェアの検出
[0075]本明細書において記載されているシステムおよび方法は、記憶されているデータを暗号化しようとする試みを自動的に検出することを可能にする。検出は、プロセッサ16上で実行するソフトウェアから独立して実施され、実質的に、プロセッサ16上で実行するソフトウェアによって検出することができない。そのような自動暗号化検出の有用な用途は、ランサムウェア、および、その動作がユーザデータの許可されていないまたは意図されていない暗号化を含む他のタイプの悪意のあるソフトウェアの検出を含む。
【0069】
[0076]1つの例示的な検出ヒューリスティクスは、暗号化されていない内容を、暗号化された内容によって上書きしようとする試みを検出することを含む。検出ヒューリスティクスの別のセットは、統計を利用して、ストレージアクセス要求の現在のストリームを、特定のユーザおよび/または作動中のアプリケーションに対応する「通常の」パターンと比較する。検出を達成するために、いくつかの実施形態は、例えば、いずれのアプリケーション/プロセスが特定のユーザによって開始される可能性が高いか、いずれの記憶位置がそれぞれのユーザによって典型的にアクセスされるか、各プロセス/アプリケーションと関連付けられるストレージ要求の典型的なパターンは何かなどを示す、ユーザプロファイルおよび/またはアプリケーションプロファイルのセットを決定する。例えば、エージェント50がファイル作成活動において異常なスパイクを検出する場合であって、それぞれのファイルの内容が暗号化されている場合など、現在の一連のストレージアクセス要求が「通常」のパターンを逸脱する場合、エージェント50は、ランサムウェア攻撃が進行中であると判定することができる。
【0070】
[0077]疑わしい暗号化活動をエージェント50が検出すると、エージェント50は、それぞれの活動(例えば、疑いのある書き込みのセットをブロックすること)を一時中断し、および/または、アップリンク通知メカニズムを使用してCSM44にシグナリングすることができる。これを受けて、CSM44は、この通知を攻撃の可能性があるという警報として使用することができ、または、さらなるヒューリスティクスを適用して、例えば、エージェント50によって通知されるイベントを、ホストシステム10または通信ネットワークを介してホストシステム10に接続される他のコンピュータ上で発生する他のマルウェア指示イベントと相関付けることができる。
【0071】
ソフトウェアバージョニングおよびバックアップのような用途のための資産シャドウイング
[0078]いくつかの実施形態において、ストレージセキュリティエージェント50は、ファイルを削除または上書きしようとする試みを自動的に検出し、応答して、削除/上書きされたデータのコピーを、一次ストレージ30または二次ストレージ32のいずれかの上の別個の位置に保存する。したがって、削除または上書きされているファイルのシャドウコピーが、新たに書き込まれるデータとともに維持される。いくつかの実施形態は、同じファイルの3つ以上の連続するバージョンを保存し、それぞれのバージョンの少なくとも1つは暗号化されていない。このメカニズムは、場合によってそれぞれのファイルを保存されているバージョンのいずれかに復元することによって、データの安全な回復を可能にすることができる。
【0072】
[0079]そのような資産シャドウイングの可能性のある用途は、とりわけ、セキュリティ、バックアップ、およびソフトウェアバージョニングを含む。コンピュータセキュリティ実施形態において、エージェント50は、例えば、特定のファイルが比較的短い時間間隔の中で繰り返し上書きされることを検出することができる。そのようなファイル活動は、マルウェアを示す可能性がある。いくつかの実施形態は、同じファイルの連続するバージョンを比較して、例えば、古い方のバージョンが暗号化されていない一方で、新しい方のバージョンが暗号化されているかを判定することができる。前述されているように、そのような暗号化の変化は、ランサムウェア攻撃を示す可能性がある。より一般的には、ファイルのバックアップコピーを保持することによって、可能性として、悪意のあるソフトウェアが重要なOS資産を改変することを防止することができ、したがって、例えば、OS機能の悪意のあるフックを防止することができる。そのような改変が検出されるとき、エージェント50はCSM44に通知することができる。これを受けて、CSM44は、エージェント50に、特定のファイルへの変更をロールバックするように指示することができる。
【0073】
最適化
[0080]いくつかの実施形態は、ファイルシステムのセマンティクスをセキュアストレージデバイス24のレベルから解読する計算オーバヘッドを下げるようにさらに最適化され得る。ハイブリッド環境において、セマンティスクス指示がCSM44からセキュリティエージェント50へと送達され、一方で、エージェント50は、ファイル削除、ファイル上書き、許可されていないデータ暗号化などのような、悪意のあるストレージイベントをインターセプトし、これに対抗することができる。そのような実施形態において、CSM44は、Windows(登録商標)におけるファイルシステムミニフィルタのものと同様の機能性を有する軽量ストレージアクセスフィルタを含むことができる。ストレージアクセスフィルタは、例えば、とりわけ、ファイル、それぞれのデータ/ファイルの名前および/またはディスク位置、ならびに、書き込み動作を遂行するプロセスのアイデンティティに書き込もうとする試行を判定することができる。次いで、ストレージアクセスフィルタは、そのような意味情報を、ダウンリンク通知を介してストレージセキュリティエージェント50に送信することができる。エージェント50は、確認応答パケットまたはアップリンク通知を使用して、受信を確認応答することができる。いくつかの実施形態において、ダウンリンク通知が通知待ち行列に追加される。
【0074】
[0081]セキュアストレージデバイス24のレベルにおいて、エージェント50は、書き込もうとする試みを特定し、それぞれの書き込みの試みを、ダウンリンク通知待ち行列からのデータと照合することを試みることができる。照合に成功することによって、エージェント50が、それぞれの書き込みの試みのセマンティクスを決定することが可能になり、これによって、エージェント50が、より洗練されたヒューリスティクスを適用して、それぞれの書き込みの試みが疑わしいか、保護される必要があるかなどを判定することが可能になり得る。ハードウェアレベルにおいて(例えば、特定のメタデータ変更から)検出される書き込みの試みを、ダウンリンク通知を介して伝達される書き込みの試みと照合することができないことは、OS40のストレージアクセスミニフィルタによる検出を回避することが可能な悪意のあるソフトウェアを示す可能性がある。そのような場合、セキュリティエージェント50は、それぞれの書き込みの試みをブロックし、および/または、アップリンク通知を介してCSM44に通知することができる。
【0075】
[0082]本発明は、ホストシステムを、とりわけ、悪意のあるソフトウェアのようなコンピュータセキュリティ脅威に対して保護するためのシステムおよび方法に関する。記載されているシステムおよび方法は、ホストシステム(例えば、コンピュータ、モバイル通信装置など)を、従来の防御を覆すことが可能である洗練されたマルウェアに対して保護するのに特に適している。例示的な用途は、ランサムウェア、ならびに、私有の、私的な、および/または機密のデータの盗難に対する保護を含む。
【0076】
[0083]本発明のいくつかの実施形態は、悪意のあるソフトウェアが、ホストシステムのプロセッサと、不揮発性ストレージ(例えば、磁気、光、またはソリッドステートドライブ)との間のデータのトラフィックにおける干渉に成功する可能性があるという観察に依拠する。それぞれのプロセッサ上で実行するセキュリティソフトウェアは、すべてのそのような干渉をブロックまたは防止することが可能でない場合があり、結果として、データ盗難または喪失の危険性が甚大になる可能性がある。この問題に対処するために、本発明の例示的な実施形態は、セキュリティソフトウェアの部分を、ホストシステムのメインプロセッサとストレージデバイスとの間のデータトラフィックをインターセプト、分析、および/または選択的にブロックするように構成されている別個のプロセッサに移行する。この補助セキュリティプロセッサは、例えば、共通のプリント回路基板上で、ストレージデバイスおよび/または追加のハードウェアと統合されて、増強されたセキュアストレージデバイスを形成することができる。上記セキュアストレージデバイスは、ハードドライブまたは他の不揮発性ストレージの従来のフォームファクタをとることができ、シリアルATアタッチメント(SATA)または周辺構成要素相互接続(PCI)エクスプレスインターフェース/コネクタのような、従来のストレージインターフェース/コネクタを介して、ホストシステムのハードウェアの残りの部分に接続することができる。代替的な実施形態において、セキュアストレージデバイス(すなわち、ストレージ+補助プロセッサ)は、例えば、ユニバーサルシリアルバス(USB)または別の従来のインターフェース/コネクタによってホストシステムに接続される、外部ドライブとしてパッケージされ得る。
【0077】
[0084]従来のマルウェア対策システムにおいて、防止、検出、および対抗措置は、悪意のあるコードも作動する同じ物理プロセッサ上で実行するソフトウェア内で実施される。さらに、従来のシステムにおいては、マルウェアと合法ソフトウェアの両方が、同じ物理的ストレージデバイス(例えば、ハードドライブ)にアクセスすることができる。そのような構成は、慎重に作成された悪意のあるコードが、セキュリティソフトウェアを弱体化させることを許容する可能性がある。対照的に、本発明のいくつかの実施形態において、物理的ストレージへのアクセスは、ユーザアプリケーション(および、場合によっては悪意のあるコード)を作動させるメインプロセッサとは別個の、補助プロセッサによって制御される。それゆえ、補助プロセッサ上で実行するセキュリティソフトウェアは、マルウェアの手に届かない。
【0078】
[0085]本発明の範囲から逸脱することなく、上記実施形態を多くの方法において改変することができることは、当業者には明らかであろう。したがって、本発明の範囲は添付の特許請求の範囲およびそれらの適法の均等物によって画定されるものとする。