(57)【要約】  記載されているシステムおよび方法は、ホストシステムを、コンピュータセキュリティ脅威に対して、特に、ランサムウェアおよび私的データに対する許可されていないアクセスに対して保護することを可能にする。いくつかの実施形態において、従来の不揮発性ストレージユニット（例えば、磁気、光、またはソリッドステートドライブ）が、専用のセキュリティプロセッサと対にされ、ＳＡＴＡ、ＰＣＩ、またはＵＳＢコネクタのような従来のストレージインターフェースを介してホストシステムの一次プロセッサに接続することができるセキュアストレージデバイスを形成する。一次プロセッサおよびセキュリティプロセッサは、ストレージインターフェースを介してメッセージおよびデータを交換する。セキュリティプロセッサは、一次プロセッサのストレージユニットへのアクセスを制御し、セキュリティおよびデータ暗号化動作を実行することができる。
2020529681.tif 000002
【特許請求の範囲】
【請求項１】
第１のハードウェアプロセッサと、セキュアストレージデバイスとを備えるコンピュータシステムであって、前記セキュアストレージデバイスは、前記第１のハードウェアプロセッサに、ストレージ送信プロトコルに従ってフォーマットされたストレージアクセス要求を受信するように構成されたストレージインターフェースを介して接続されており、前記セキュアストレージデバイスは、第２のハードウェアプロセッサと、不揮発性ストレージユニットとを備え、
前記第１のハードウェアプロセッサは、
前記第１のハードウェアプロセッサ上で実行されるソフトウェアによる、データパケットを前記ストレージユニット上に記憶するための要求の検出に応答して、前記データパケットを暗号化し、
前記データパケットの暗号化に応答して、暗号化された前記データパケットを含む真のストレージアクセス要求を前記ストレージインターフェースに送信し、
暗号鍵の少なくとも一部を含むダミーストレージアクセス要求を、前記ストレージ送信プロトコルに従って生成し、
前記ダミーストレージアクセス要求を前記ストレージインターフェースに送信する
ように構成され、
前記第２のハードウェアプロセッサは、
前記ストレージインターフェースを介した通信の受信に応答して、前記通信が前記ダミーストレージアクセス要求を含むか否かを判定し、
それに応答して、前記通信が前記ダミーストレージアクセス要求を含む場合に、前記暗号鍵を前記ダミーストレージアクセス要求に従って決定し、
前記真のストレージアクセス要求の受信に応答して、前記暗号鍵を使用して前記データパケットを解読し、
解読された前記データパケットが悪意のあるソフトウェアを含むか否かを判定する
ように構成される、コンピュータシステム。
【請求項２】
請求項１に記載のホストシステムであって、前記第２のハードウェアプロセッサは、解読された前記データパケットが悪意のあるソフトウェアを含むか否かの判定に応答して、解読された前記データパケットが悪意のあるソフトウェアを含む場合に、前記ストレージ送信プロトコルに従ってフォーマットされた通知を前記ストレージインターフェースに送信するようにさらに構成され、前記通知は、前記第１のハードウェアプロセッサに、前記通知のメッセージをセキュリティ警告として解釈させるように構成された、ホストシステム。
【請求項３】
請求項２に記載のホストシステムであって、前記通知は、前記第１のハードウェアプロセッサにおけるハードウェア割り込みを引き起こすように構成された、ホストシステム。
【請求項４】
請求項１に記載のホストシステムであって、前記通信は、前記ストレージユニット上の位置を示すアドレスを含み、前記第２のハードウェアプロセッサは、前記通信が前記ダミーストレージアクセス要求を含むか否かを前記アドレスに従って判定するように構成された、ホストシステム。
【請求項５】
請求項４に記載のホストシステムであって、前記通信が前記ダミーストレージアクセス要求を含むか否かを判定することは、
前記アドレスを所定のアドレスと比較することと、
それに応答して、前記通信が前記ダミーストレージアクセス要求を含むことを前記比較の結果に従って判定することと
を含む、ホストシステム。
【請求項６】
請求項１に記載のホストシステムであって、前記通信は、ペイロードを前記ストレージユニットに書き込むための要求を含み、前記第２のハードウェアプロセッサは、前記通信が前記ダミーストレージアクセス要求を含むか否かを前記ペイロードに従って判定するように構成された、ホストシステム。
【請求項７】
請求項１に記載のホストシステムであって、前記第２のハードウェアプロセッサは、
前記ストレージユニット上に記憶された複数のデータパケットと、前記第１のハードウェアプロセッサ上で実行されるオペレーティングシステムによって維持される一次ファイルシステムの複数のファイルとの間のマッピングを含むシャドウファイルシステムを維持し、
前記真のストレージアクセス要求の受信に応答して、前記シャドウファイルシステムに従って、前記複数のファイルのうちのファイルを、前記データパケットが該ファイルの一部を形成するように特定し、
前記ファイルの特定に応答して、前記ファイルが悪意のあるソフトウェアを含むか否かを判定する
ようにさらに構成された、ホストシステム。
【請求項８】
請求項１に記載のホストシステムであって、前記第２のハードウェアプロセッサは、
前記シャドウファイルシステムに従って、前記第１のハードウェアプロセッサから前記ストレージインターフェースを介して受信された別の通信が、新たなファイルの作成を示すか否かを判定し、
それに応答して、前記別の通信が前記新たなファイルの前記作成を示す場合に、前記シャドウファイルシステムを、前記新たなファイルの前記作成を示すように更新する
ようにさらに構成された、ホストシステム。
【請求項９】
請求項１に記載のホストシステムであって、前記第２のハードウェアプロセッサは、前記データパケットの解読に応答して、解読された前記データパケットを前記ストレージユニットに書き込むようにさらに構成された、ホストシステム。
【請求項１０】
請求項１に記載のホストシステムであって、前記ストレージインターフェースは、シリアルＡＴＡインターフェースおよびユニバーサルシリアルバス（ＵＳＢ）インターフェースを含む群から選択されたアイテムを含む、ホストシステム。
【請求項１１】
第１のハードウェアプロセッサと、不揮発性ストレージユニットとを備えるセキュアストレージデバイスであって、前記セキュアストレージデバイスは、第２のハードウェアプロセッサに、ストレージ送信プロトコルに従ってフォーマットされたストレージアクセス要求を受信するように構成されたストレージインターフェースを介して接続するように構成され、
前記第２のハードウェアプロセッサは、
前記第２のハードウェアプロセッサ上で実行されるソフトウェアによる、データパケットを前記ストレージユニット上に記憶するための要求の検出に応答して、前記データパケットを暗号化し、
前記データパケットの暗号化に応答して、暗号化された前記データパケットを含む真のストレージアクセス要求を前記ストレージインターフェースに送信し、
暗号鍵の少なくとも一部を含むダミーストレージアクセス要求を、前記ストレージ送信プロトコルに従って生成し、
前記ダミーストレージアクセス要求を前記ストレージインターフェースに送信する
ように構成され、
前記第１のハードウェアプロセッサは、
前記ストレージインターフェースを介した通信の受信に応答して、前記通信が前記ダミーストレージアクセス要求を含むか否かを判定し、
それに応答して、前記通信が前記ダミーストレージアクセス要求を含む場合に、前記暗号鍵を前記ダミーストレージアクセス要求に従って決定し、
前記真のストレージアクセス要求の受信に応答して、前記暗号鍵を使用して前記データパケットを解読し、
解読された前記データパケットが悪意のあるソフトウェアを含むか否かを判定する
ように構成された、セキュアストレージデバイス。
【請求項１２】
コンピュータセキュリティ方法であって、
セキュアストレージデバイスを、第１のハードウェアプロセッサに、ストレージ送信プロトコルに従ってフォーマットされたストレージアクセス要求を受信するように構成されたストレージインターフェースを介して接続するステップであって、前記セキュアストレージデバイスは、第２のハードウェアプロセッサと、不揮発性ストレージユニットとを備える、接続するステップと、
前記第１のハードウェアプロセッサ上で実行されるソフトウェアによる、データパケットを前記ストレージユニット上に記憶するための要求の検出に応答して、前記第１のハードウェアプロセッサを使用して、前記データパケットを暗号化するステップと、
前記データパケットの暗号化に応答して、前記第１のハードウェアプロセッサを使用して、真のストレージアクセス要求を前記ストレージインターフェースに送信するステップであって、前記真のストレージアクセス要求は、暗号化された前記データパケットを含む、送信するステップと、
前記第１のハードウェアプロセッサを使用して、暗号鍵の少なくとも一部を含むダミーストレージアクセス要求を、前記ストレージ送信プロトコルに従って生成するステップと、
前記第１のハードウェアプロセッサを使用して、前記ダミーストレージアクセス要求を前記ストレージインターフェースに送信するステップと、
前記ストレージインターフェースを介した通信の受信に応答して、前記第２のハードウェアプロセッサを使用して、前記通信が前記ダミーストレージアクセス要求を含むか否かを判定するステップと、
それに応答して、前記通信が前記ダミーストレージアクセス要求を含む場合に、前記第２のハードウェアプロセッサを使用して、前記暗号鍵を使用して前記データパケットを解読するステップと、
前記データパケットの解読に応答して、前記第２のハードウェアプロセッサを使用して、解読された前記データパケットが悪意のあるソフトウェアを含むか否かを判定するステップと
を含む方法。
【請求項１３】
請求項１２に記載の方法であって、解読された前記データパケットが悪意のあるソフトウェアを含むか否かの判定に応答して、解読された前記データパケットが悪意のあるソフトウェアを含む場合に、前記第２のハードウェアプロセッサを使用して、前記ストレージ送信プロトコルに従ってフォーマットされた通知を前記ストレージインターフェースに送信するステップをさらに含み、前記通知は、前記第１のハードウェアプロセッサに、前記通知のメッセージをセキュリティ警告として解釈させるように構成された、方法。
【請求項１４】
請求項１３に記載の方法であって、前記通知は、前記第１のハードウェアプロセッサにおけるハードウェア割り込みを引き起こすように構成された、方法。
【請求項１５】
請求項１２に記載の方法であって、前記通信は、前記ストレージユニット上の位置を示すアドレスを含み、前記第２のハードウェアプロセッサは、前記通信が前記ダミーストレージアクセス要求を含むか否かを前記アドレスに従って判定するように構成された、方法。
【請求項１６】
請求項１５に記載の方法であって、前記通信が前記ダミーストレージアクセス要求を含むか否かを判定するステップは、
前記第２のハードウェアプロセッサを使用して、前記アドレスを所定のアドレスと比較するステップと、
それに応答して、前記通信が前記ダミーストレージアクセス要求を含むことを前記比較の結果に従って判定するステップと
を含む、方法。
【請求項１７】
請求項１２に記載の方法であって、前記通信は、ペイロードを前記ストレージユニットに書き込むための要求を含み、前記第２のハードウェアプロセッサは、前記通信が前記ダミーストレージアクセス要求を含むか否かを前記ペイロードに従って判定するように構成された、方法。
【請求項１８】
請求項１２に記載の方法であって、
前記第２のハードウェアプロセッサを使用して、前記ストレージユニット上に記憶された複数のデータパケットと、前記第１のハードウェアプロセッサ上で実行されるオペレーティングシステムによって維持される一次ファイルシステムの複数のファイルとの間のマッピングを含むシャドウファイルシステムを維持するステップと、
前記真のストレージアクセス要求の受信に応答して、前記第２のハードウェアプロセッサを使用して、前記シャドウファイルシステムに従って、前記複数のファイルのうちのファイルを、前記データパケットが該ファイルの一部を形成するように特定するステップと、
前記ファイルの特定に応答して、前記第２のハードウェアプロセッサを使用して、前記ファイルが悪意のあるソフトウェアを含むか否かを判定するステップと
をさらに含む方法。
【請求項１９】
請求項１２に記載の方法であって、
前記第２のハードウェアプロセッサを使用して、前記シャドウファイルシステムに従って、前記第１のハードウェアプロセッサから前記ストレージインターフェースを介して受信された別の通信が、新たなファイルの作成を示すか否かを判定するステップと、
それに応答して、前記別の通信が前記新たなファイルの前記作成を示す場合に、前記第２のハードウェアプロセッサを使用して、前記シャドウファイルシステムを、前記新たなファイルの前記作成を示すように更新するステップと
をさらに含む方法。
【請求項２０】
請求項１２に記載の方法であって、前記データパケットの解読に応答して、前記第２のハードウェアプロセッサを使用して、解読された前記データパケットを前記ストレージユニットに書き込むステップをさらに含む方法。
【請求項２１】
請求項１２に記載の方法であって、前記ストレージインターフェースは、シリアルＡＴＡインターフェースおよびユニバーサルシリアルバス（ＵＳＢ）インターフェースを含む群から選択されたアイテムを含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
[0001]本出願は、２０１７年８月４日に出願された「Ｓｅｃｕｒｅ  Ｓｔｏｒａｇｅ  Ｄｅｖｉｃｅ（セキュアストレージデバイス（安全な記憶装置））」と題する米国仮特許出願第６２／５４１，５０５号の出願日の利益を主張し、参照によりその内容全体が本明細書に組み込まれる。
【０００２】
[0001]本発明は、コンピュータセキュリティに関し、特に、悪意のあるソフトウェア（マルウェア）に対してコンピュータを保護することに関する。
【背景技術】
【０００３】
[0002]悪意のあるソフトウェアは、世界中で多数のコンピュータシステムに影響を与えている。コンピュータウイルス、ワーム、ルートキット、およびスパイウェアのような、その多くの形態において、マルウェアは、非常に多数のコンピュータユーザに深刻な危険性を呈し、コンピュータユーザに、中でも、データおよび機密情報の喪失、個人情報の盗難、ならびに生産性の損失を受けやすくする。ランサムウェアは、コンピュータのハードドライブのような記憶媒体上で見つかるファイルのセットを暗号化し、次いで、ファイルの所有者に、それぞれのデータを復元するために代償を支払うよう求める、特に危険なタイプのマルウェアである。
【０００４】
[0003]悪意のあるソフトウェアを検出および／または無力化するために、マルウェア対策ソフトウェアが使用され得る。しかしながら、マルウェアは、検出を逃れるために様々な戦略を利用する。１つのそのような戦略は、例えば、悪意のあるコードを暗号化するか、または、感染を受ける各コンピュータ上でわずかに異なるコードバージョンを使用する（一般的に多様性として知られる機能）、難読化を含む。別の例示的な検出回避方法は、悪意のある活動を複数のエージェントの間で分割し、各エージェントが、別個の行動セットを実施し、これは、分離して行われる場合、マルウェアを示すとみなされ得ない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
[0004]デジタルで記憶されているデータを、悪意のあるソフトウェアによるものを含め、盗難および許可されていない改変から保護するためのロバストなシステムおよび方法を開発することに、強い関心が集まっている。
【課題を解決するための手段】
【０００６】
[0005]一態様によれば、コンピュータシステムは、第１のハードウェアプロセッサと、セキュアストレージデバイスとを備え、セキュアストレージデバイスは、ストレージ送信プロトコルに従ってフォーマットされているストレージアクセス要求を受信するように構成されているストレージインターフェースを介して第１のハードウェアプロセッサに接続されている。セキュアストレージデバイスは、第２のハードウェアプロセッサと、不揮発性ストレージユニット（記憶ユニット）とを備える。第１のハードウェアプロセッサは、ストレージユニット上にデータパケットを記憶することを求める、第１のハードウェアプロセッサ上で実行しているソフトウェアによる要求の検出に応答して、データパケットを暗号化するように構成される。第１のハードウェアプロセッサは、データパケットの暗号化に応答して、ストレージインターフェースに真のストレージアクセス要求を送信するようにさらに構成され、真のストレージアクセス要求は、暗号化データパケットを含む。第１のハードウェアプロセッサは、ストレージ送信プロトコルに従って、暗号鍵の少なくとも一部分を含むダミーストレージアクセス要求を生成し、ストレージインターフェースにダミーストレージアクセス要求を送信するようにさらに構成される。第２のハードウェアプロセッサは、ストレージインターフェースを介した通信の受信に応答して、通信がダミーストレージアクセス要求を含むか否かを判定するように構成される。応答して、通信がダミーストレージアクセス要求を含むとき、第２のハードウェアプロセッサは、ダミーストレージアクセス要求に従って暗号鍵を決定するように構成される。第２のハードウェアプロセッサは、真のストレージアクセス要求の受信に応答して、暗号鍵を利用してデータパケットを解読し、解読されたデータパケットが悪意のあるソフトウェアを含むか否かを判定するようにさらに構成される。
【０００７】
[0006]別の態様によれば、セキュアストレージデバイスは、第１のハードウェアプロセッサと、不揮発性ストレージユニットとを備え、セキュアストレージデバイスは、ストレージ送信プロトコルに従ってフォーマットされているストレージアクセス要求を受信するように構成されているストレージインターフェースを介して第２のハードウェアプロセッサに接続するように構成される。第２のハードウェアプロセッサは、ストレージユニット上にデータパケットを記憶することを求める、第２のハードウェアプロセッサ上で実行しているソフトウェアによる要求の検出に応答して、データパケットを暗号化するように構成される。第２のハードウェアプロセッサは、データパケットの暗号化に応答して、ストレージインターフェースに真のストレージアクセス要求を送信するようにさらに構成され、真のストレージアクセス要求は、暗号化データパケットを含む。第２のハードウェアプロセッサは、ストレージ送信プロトコルに従って、暗号鍵の少なくとも一部分を含むダミーストレージアクセス要求を生成し、ストレージインターフェースにダミーストレージアクセス要求を送信するようにさらに構成される。第１のハードウェアプロセッサは、ストレージインターフェースを介した通信の受信に応答して、通信がダミーストレージアクセス要求を含むか否かを判定するように構成される。応答して、通信がダミーストレージアクセス要求を含むとき、第１のハードウェアプロセッサは、ダミーストレージアクセス要求に従って暗号鍵を決定するように構成される。第１のハードウェアプロセッサは、真のストレージアクセス要求の受信に応答して、暗号鍵を利用してデータパケットを解読し、解読されたデータパケットが悪意のあるソフトウェアを含むか否かを判定するようにさらに構成される。
【０００８】
[0007]別の態様によれば、コンピュータセキュリティ方法は、ストレージ送信プロトコルに従ってフォーマットされているストレージアクセス要求を受信するように構成されているストレージインターフェースを介して、セキュアストレージデバイスを第１のハードウェアプロセッサに接続するステップを含み、セキュアストレージデバイスは、第２のハードウェアプロセッサと、不揮発性ストレージユニットとを備える。方法は、ストレージユニット上にデータパケットを記憶することを求める、第１のハードウェアプロセッサ上で実行しているソフトウェアによる要求の検出に応答して、第１のハードウェアプロセッサを利用して、データパケットを暗号化するステップをさらに含む。方法は、データパケットの暗号化に応答して、第１のハードウェアプロセッサを利用して、ストレージインターフェースに真のストレージアクセス要求を送信するステップをさらに含み、真のストレージアクセス要求は、暗号化データパケットを含む。方法は、第１のハードウェアプロセッサを利用して、ストレージ送信プロトコルに従って、暗号鍵の少なくとも一部分を含むダミーストレージアクセス要求を生成するステップと、第１のハードウェアプロセッサを利用して、ストレージインターフェースにダミーストレージアクセス要求を送信するステップとをさらに含む。方法は、ストレージインターフェースを介した通信の受信に応答して、第２のハードウェアプロセッサを利用して、通信がダミーストレージアクセス要求を含むか否かを判定するステップをさらに含む。応答して、通信がダミーストレージアクセス要求を含むとき、方法は、第２のハードウェアプロセッサを利用して、暗号鍵を利用してデータパケットを解読し、解読されたデータパケットが悪意のあるソフトウェアを含むか否かを判定するステップをさらに含む。
【０００９】
[0008]本発明の上記の態様および利点は、以下の詳細な説明を読み、添付の図面を参照するとよりよく理解されるようになる。
【図面の簡単な説明】
【００１０】
【図１】[0009]本発明のいくつかの実施形態によるコンピュータセキュリティ脅威から保護されたホストシステムの例示的なハードウェア構成を示す図である。
【図２】[0010]本発明のいくつかの実施形態によるセキュアストレージデバイスの例示的なハードウェア構成を示す図である。
【図３−Ａ】[0011]本発明のいくつかの実施形態による保護されたホストシステム上で実行する例示的なソフトウェア構成要素を示す図である。
【図３−Ｂ】[0012]本発明のいくつかの実施形態による代替的なソフトウェア構成要素のセットを示す図である。
【図４】[0013]本発明のいくつかの実施形態によるセキュアストレージデバイス内で実行する例示的なソフトウェア構成要素を示す図である。
【図５】[0014]本発明のいくつかの実施形態による、図３−Ａ〜図３−Ｂのコンピュータセキュリティモジュール（ＣＳＭ）によって遂行される例示的なステップのセットを示す図である。
【図６】[0015]本発明のいくつかの実施形態による、セキュアストレージデバイス内で実行するソフトウェアによって遂行される例示的な一連のステップを示す図である。
【図７】[0016]本発明のいくつかの実施形態による、ストレージ意味マップを維持するためにセキュアストレージデバイス内で実行するソフトウェアによって実施される例示的な一連のステップを示す図である。
【発明を実施するための形態】
【００１１】
[0017]以下の説明において、構造間のすべての記載されている接続は、直接的な動作接続、または、中間構造を通じた間接的な動作接続とすることができることが理解される。要素のセットは、１つまたは複数の要素を含む。要素の任意の記載は、少なくとも１つの要素を参照するものとして理解される。複数の要素は、少なくとも２つの要素を含む。別途要求されない限り、任意の記載されている方法ステップは、必ずしも特定の例示されている順序において実施される必要はない。第２の要素から導出される第１の要素（例えば、データ）は、第２の要素に等しい第１の要素、ならびに、第２の要素および任意選択的に他のデータを処理することによって生成される第１の要素を包含する。パラメータに従って判定または決定を行うことは、パラメータに従って、および、任意選択的に他のデータに従って、判定または決定を行うことを包含する。別途指定されない限り、何らかの量／データの指示は、量／データ自体であってもよく、または量／データ自体とは異なる指示であってもよい。コンピュータプログラムは、タスクを遂行する一連のプロセッサ命令である。本は積み絵のいくつかの実施形態において記載されているコンピュータプログラムは、独立型ソフトウェアエンティティまたは他のコンピュータプログラムのサブエンティティ（例えば、サブルーチン、ライブラリ）であってもよい。コンピュータ可読媒体は、磁気、光、および半導体記憶媒体のような非一時的媒体（例えば、ハードドライブ、光ディスク、フラッシュメモリ、ＤＲＡＭ）、ならびに、導電性ケーブルおよび光ファイバリンクのような通信リンクを包含する。いくつかの実施形態によれば、本発明は、とりわけ、本明細書において記載されている方法を実施するようにプログラムされているハードウェア（例えば、１つまたは複数のプロセッサ）を備えるコンピュータシステム、および、本明細書において記載されている方法を実施するための命令を符号化するコンピュータ可読媒体を提供する。
【００１２】
[0018]以下の説明は、必ずしも限定ではなく、例として、本発明の実施形態を例示する。
[0019]図１は、本発明のいくつかの実施形態によるコンピュータセキュリティ脅威に対して保護されるホストシステム１０の例示的なハードウェア構成を示す。例示的なホストシステム１０は、コンピュータ（例えば、パーソナルコンピュータ、企業サーバなど）、モバイルコンピューティングデバイス（例えば、ラップトップ、タブレットＰＣ）、遠隔通信装置（例えば、スマートフォン）、デジタル家電（ＴＶ、ゲームコンソールなど）、ウェアラブルコンピューティングデバイス）例えば、スマートウォッチ）、または、プロセッサおよびメモリを有し、コンピュータセキュリティ保護を必要とする任意の他の電子装置を含む。単純にするために、図示されているホストシステムはコンピュータシステムであり、携帯電話、スマートウォッチなどのような、他のホストシステムノハードウェア構成は、図示されている構成とはいくらか異なる場合がある。
【００１３】
[0020]ホストシステム１０は、ハードウェアプロセッサ１６およびメモリユニット１８を含む、物理装置のセットを備える。いくつかの実施形態において、プロセッサ１６は、信号および／またはデータのセットを用いて計算および／または論理演算を実行するように構成されている物理装置（例えば、マイクロプロセッサ、半導体基板上に形成されるマルチコア集積回路など）を含む。いくつかの実施形態において、そのような演算は、一連のプロセッサ命令の形態（例えば、機械コードまたは他のタイプの符号化）でプロセッサ１６に送達される。メモリユニット１８は、プロセッサ１６によってアクセスまたは生成される命令および／またはデータを記憶する揮発性コンピュータ可読媒体（例えば、ＤＲＡＭ、ＳＲＡＭ）を含んでもよい。
【００１４】
[0021]入力デバイス（入力装置）２０は、ユーザが、データおよび／または命令をホストシステム１０に導入することを、そのような導入を可能にするそれぞれのインターフェースおよび／またはアダプタとともに、可能にする装置を含むことができる。例示的な入力デバイスは、中でも、ボタン、キーボード、マウス、ジョイスティック、タッチスクリーン、マイクロフォン、カメラ、ゲームコントローラ、ジェスチャ検出システム、および運動検出センサを含む。出力デバイス（出力装置）２２は、中でも、モニタのような表示装置およびスピーカ、ならびに、ホストシステム１０がデータをユーザに通信することを可能にするグラフィックカードのようなハードウェアインターフェース／アダプタを含んでもよい。いくつかの実施形態において、入力デバイス２０および出力デバイス２２は、タッチスクリーン装置の場合のように、共通のハードウェアピースを共有することができる。ネットワークアダプタ２６は、ホストシステム１０が、ローカルエリアネットワーク（ＬＡＮ）のような通信ネットワークおよび／または他の装置／コンピュータシステムに接続することを可能にする。
【００１５】
[0022]セキュアストレージデバイス２４は、ソフトウェア命令および／または他のデータの不揮発性記憶、読み出し、および書き込みを可能にするコンピュータ可読媒体を含む。例示的なストレージデバイス２４は、磁気、光、およびフラッシュメモリ装置、ならびに、ＣＤおよび／またはＤＶＤディスクおよびドライブのようなリムーバブル媒体を含む。いくつかの実施形態において、セキュアストレージデバイス２４は、下記に詳細に示されるように、記憶されるデータのセキュリティを増強するように特に構成される他のハードウェアおよびソフトウェア構成要素を与えられる。
【００１６】
[0023]いくつかの実施形態において、コントローラハブ２８は、複数のシステム、周辺機器、および／もしくはチップセットバス、ならびに／または、プロセッサ１６とデバイス１８、２０、２２、２４、および２６との間の通信を可能にするすべての他の回路を含む。コントローラハブ２８の例示的な構成要素は、メモリコントローラ、入出力（Ｉ／Ｏ）コントローラ、および割り込みコントローラを含む。ハードウェア製造元および装置に応じて、すべてのそのようなコントローラの一部は、単一の集積回路に組み込まれてもよく、および／または、プロセッサ１６と統合されてもよい。いくつかの実施形態において、出力デバイス２２の一部分を形成するグラフィックスアダプタのようないくつかの他の装置もまた、プロセッサ１６と統合されてもよい。
【００１７】
[0024]図２は、本発明のいくつかの実施形態によるセキュアストレージデバイス２４の例示的なハードウェア構成を示す。いくつかの実施形態は、従来のストレージデバイス（記憶装置）−一次ストレージ（記憶装置）３０（例えば、磁気またはソリッドステートドライブ）を、ホスト１０の一次プロセッサとは別個の専用セキュリティプロセッサ１１６と対にすることによって、悪意のあるソフトウェアによって課される危険性を軽減する。この補助プロセッサは、従来のハードドライブフォームファクタをとる共通のプリント回路基板上で、ストレージユニットおよび／または追加のハードウェアと統合され得る。別の例示的な実施形態において、セキュアストレージデバイス２４は、ユニバーサルシリアルバス（ＵＳＢ）またはＴｈｕｎｄｅｒｂｏｌｔ（登録商標）インターフェース／コネクタのような従来のインターフェースを介してホストシステムに接続することができる、外部大容量ストレージデバイス（例えば、フラッシュドライブ、外部ハードドライブ）としてパッケージされてもよい。
【００１８】
[0025]一次ストレージ３０は、ホストシステム１０の事実上のストレージデバイスとして作用することができる。そのため、一次ストレージ３０は、ホストプロセッサ１６上で実行するオペレーティングシステムおよび／または他のソフトウェアアプリケーションに属するコードおよび／またはデータ、ならびに、文書、画像、音声ファイルなどのようなユーザのデータを記憶することができる。
【００１９】
[0026]セキュリティプロセッサ１１６は、信号および／またはデータのセットを用いて数学および／または論理演算を実施するように構成されている物理電子回路（例えば、半導体基板上に形成される集積回路など）を含む。いくつかの実施形態において、プロセッサ１１６は、パーソナルコンピュータおよび／または携帯電話内の中央処理装置（ＣＰＵ）として使用されるタイプの多目的汎用マイクロプロセッサである。そのようなプロセッサの例は、Ｉｎｔｅｌ（登録商標）、ＡＭＤ（登録商標）、およびＡＲＭ（登録商標）のような製造元からの従来のプロセッサである。代替的な実施形態において、プロセッサ１１６は、特定用途向け集積回路（ＡＳＩＣ）またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）のような、カスタマイズされた電子回路を含む。プロセッサ１１６の他の実施形態は、グラフィックスプロセッシングユニット（ＧＰＵ）、または上記の組み合わせを含む。そのような特殊化されたプロセッサは、それらのアーキテクチャが、並列計算および特定の特殊化されたタスクのために特に作成および最適化され得るという点において有利であり得る。並列の特殊化されたアーキテクチャは、下記にさらに説明されるような、暗号化／解読のような用途に利するものであり得る。
【００２０】
[0027]セキュアストレージデバイス２４の追加のハードウェア構成要素は、プロセッサ１１６によってアクセスまたは生成される命令および／またはデータを記憶するための揮発性コンピュータ可読媒体（例えば、ＤＲＡＭ、ＳＲＡＭ）を提供するセキュリティメモリ１１８を含むことができる。装置２４は、一般的に、バス、および／または、装置２４のハードウェア構成要素を相互接続するすべての他の回路を表す、セキュリティコントローラ３４をさらに備えることができる。セキュアストレージデバイス２４は、ストレージインターフェース３６（例えば、シリアルＡＴアタッチメント−ＳＡＴＡ、または、ＰＣＩエクスプレスインターフェースおよび／もしくはコネクタ）によってホストシステム１０のコントローラハブ２８にさらに接続することができる。
【００２１】
[0028]いくつかの実施形態において、セキュアストレージデバイス２４は、不揮発性コンピュータ可読媒体を含む二次ストレージデバイス３２をさらに含むことができる。いくつかの実施形態において、一次ストレージ３０および二次ストレージ３２は、磁気、光、またはソリッドステートドライブのような、単一の物理的な大容量ストレージデバイスの個別の論理区画として実装される。二次ストレージ３２は、プロセッサ１６上で実行するソフトウェアに対して不可視であり得、補助セキュリティプロセッサ１１６上で実行するソフトウェアにとってのみアクセス可能であり得る。そのような分離は、限られた範囲の記憶アドレスをホストプロセッサ１６に露出するように構成されるハードウェア論理（セキュリティコントローラ３４の回路）を使用して達成され得る。
【００２２】
[0029]二次ストレージ３２は、セキュリティコード、および、とりわけ、マルウェアを示すシグネチャのようなデータを記憶するために使用され得る。二次ストレージ３２は、開始（ブートアップ）時にプロセッサ１１６によって実行されるコードをさらに記憶することができる。セキュアストレージデバイス２４のいくつかの実施形態は、下記により詳細に示されるように、ファイルシステム意味マップの符号化を記憶するために、二次ストレージ３２を使用する。ストレージ３２の他の実施形態は、一次ストレージ３０内に記憶されるデータの部分コピー（例えば、バックアップ）を記憶することができる。
【００２３】
[0030]いくつかの実施形態において、一次ストレージ３０および二次ストレージ３２は、位置指定子（アドレス）のセットを介してアドレス指定可能である。実施態様に応じて、ストレージ３０、３２は、個々のアドレス指定可能な単位、例えば、セクタ、ブロック、および／またはクラスタに分割され得る。
【００２４】
[0031]図３−Ａは、本発明のいくつかの実施形態によるホストプロセッサ１６上で実行する例示的なソフトウェア構成要素を示す。オペレーティングシステム（ＯＳ）４０は、ホストシステム１０のハードウェアと、アプリケーション４１ａ〜ｂのような他のソフトウェアとの間のインターフェースを提供するコンピュータプログラムのセットを含む。ＯＳ４０は、とりわけ、Ｗｉｎｄｏｗｓ（登録商標）、ＭａｃＯＳ（登録商標）、Ｌｉｎｕｘ（登録商標）、ｉＯＳ（登録商標）、またはＡｎｄｒｏｉｄ（登録商標）のような、広く利用可能なオペレーティングシステムを含んでもよい。アプリケーション４１ａ〜ｂは、一般的に、ワードプロセッサ、表計算アプリケーション、撮像アプリケーション、ゲーム、ブラウザおよび電子通信アプリケーションを含む、任意のコンピュータプログラムを表す。
【００２５】
[0032]本発明のいくつかの実施形態は、マルウェアに対してホストシステム１０を保護するソフトウェアを含むコンピュータセキュリティモジュール（ＣＳＭ）４４をさらに含む。ＣＳＭ４４は、例えば、悪意のあるソフトウェアを検出するためのコンピュータプログラム、および／または、そのようなソフトウェアを無力化するためのコンピュータプログラムを含むことができる。そのような構成要素は、コンピュータセキュリティの技術分野において知られている任意の方法を利用してもよい。いくつかの実施形態において、ＣＳＭ４４は、ＯＳ４０とセキュアストレージデバイス２４との間のインターフェースとして動作するストレージメディエータ構成要素４２をさらに備える。例示的なストレージメディエータ４２は、一次ストレージ３０から読み出しおよび一次ストレージ３０への書き込みを可能にするストレージドライバとして動作することができる。ストレージメディエータ４２は、下記により詳細に示されるように、セキュリティプロセッサ１１６上で実行するソフトウェアとメッセージおよび／またはデータを交換するようにさらに構成され得る。
【００２６】
[0033]図３−Ｂは、例えば、クラウドコンピューティングアプリケーション内などの、ハードウェア仮想化環境内で動作する代替的な実施形態を示す。仮想マシン（ＶＭ）は、当該技術分野において、実際の物理的な機械／コンピュータシステムのエミュレーションを説明するために使用される用語であり、ＶＭは、オペレーティングシステムおよび他のアプリケーションを作動させることが可能である。ハイパーバイザは、仮想プロセッサおよび仮想ＭＭＵのような、複数の仮想化装置を作成または有効化し、ホストシステム１０の現実の物理装置の代わりに、そのような仮想化装置をソフトウェアに提示するように構成されているソフトウェアを含む。そのような動作は、一般的に、仮想マシンを露出させることとして知られている。ハイパーバイザは、複数の仮想マシンによってホストシステム１０のハードウェア資源を共有することを可能にすることができ、さらに、各ＶＭが独立して動作し、それぞれのホスト上で実行している他のＶＭを意識しないような多重化を管理することができる。有名なハイパーバイザの例は、とりわけ、ＶＭｗａｒｅ  Ｉｎｃ．製のＶＭｗａｒｅ  ｖＳｐｈｅｒｅ（商標）、およびオープンソースのＸｅｎハイパーバイザを含む。本明細書において、ソフトウェアは、それぞれの仮想マシンの仮想プロセッサ上で実行するとき、仮想マシン内で実行すると記載される。
【００２７】
[0034]図３−Ｂに示されている例示的な構成において、ハイパーバイザ４６は、ゲストＶＭ４８ａを露出させる。オペレーティングシステムおよびユーザアプリケーションセットは、ゲスト仮想マシン４８ａ内で実行し、一方。ＣＳＭ４４は、ゲストＶＭ４８ａとは別個の専用セキュリティ仮想マシン４８ｂ内で実行する。図３−Ｂの代替的な実施形態において、ＣＳＭ４４および／またはストレージメディエータ４２は、ハイパーバイザ４６によってロードされ／呼び出されるライブラリのセットを含み得る。そのため、ＣＳＭ４４および／またはストレージメディエータ４２は、ハイパーバイザ４６のプロセッサ特権レベル（例えば、Ｉｎｔｅｌ（登録商標）プラットフォーム上のリング１またはＶＭＸｒｏｏｔ）において、ゲストＶＭ４８ａの下で実行することができる。図３−Ｂに示されているような構成は、セキュリティが増大されているため、図３−Ａに示されているものにとって好適であり得る。ゲストＶＭ４８ａおよびセキュリティＶＭ４８ｂの仮想環境は、互いから相対的に良好に分離され得、結果、ゲストＶＭ４８ａ内で実行する悪意のあるソフトウェアは、セキュリティＶＭ４８ｂ内で実行するソフトウェアに感染することができず、または他の様態でセキュリティＶＭ４８ｂ内で実行するソフトウェアと干渉することができない。
【００２８】
[0035]図４は、本発明のいくつかの実施形態による、セキュアストレージデバイス２４内で（すなわち、プロセッサ１１６上で実行する例示的なソフトウェア構成要素セットを示す。図示されているソフトウェアは、ストレージセキュリティエージェント５０および暗号エンジン５２を含む。エージェント５０は、一次ストレージ３０のファイルシステム意味マップを維持し、ヒューリスティクス（例えば、決定規則）のセットを適用して、一次ストレージ３０にアクセスすることを求める、ホストプロセッサ１６上で実行するソフトウェアによる要求が、コンピュータセキュリティ脅威を示すか否かを判定するように構成され得る。エンジン５２は、一次ストレージ３０に入来するおよび／または一次ストレージ３０から入来するデータパケットに対して暗号化および／または解読動作を実施するように構成され得る。構成要素５０および５２の動作は、下記に詳述される。
【００２９】
[0036]いくつかの実施形態において、ＣＳＭ４４は、タッチ、ストレージメディエータ４２によって管理される通信チャネルを介して通知／信号を交換することによって、セキュアストレージデバイス２４内で実行するソフトウェア（例えば、セキュリティエージェント５０）と協働する。プロセッサ１６からセキュアストレージデバイス２４への例示的な通知（本明細書においてはダウンリンク通知として参照される）は、プロセッサ１１６によって実施されるべき動作の指示、および、ファイル名、暗号化鍵、フラグのセットなどのような他のデータを含む。ＣＳＭ４４はまた、下記にさらに詳述されるように、特定のセキュリティ関連イベントに応答してダウンリンク通知を送信してもよい。
【００３０】
[0037]例示的な通信チャネルは、プロセッサと大容量ストレージユニットとの間でデータを伝送する通常の手段を使用してもよい。例えば、ＣＳＭ４４およびセキュリティエージェント５０は、シリアルＡＴＡまたは小型コンピュータシステムインターフェース（ＳＣＳＩ）プロトコルのようなストレージ送信プロトコルに従ってメッセージを交換してもよい。ストレージ送信プロトコルは、ストレージインターフェースを介した通信、フレーム／パケットのサイズおよび内容、カウント、サイズ、順序のフォーマット、ならびに／または、ヘッダおよび／もしくはペイロード、様々な制御ビットおよびデータフィールドの重要性、コマンドの符号化などのフォーマットを確立する。
【００３１】
[0038]いくつかの実施形態において、ダウンリンク通知は、ダミーアクセス要求として偽装される。ダミーアクセス要求とは、本明細書においては、通信プロトコル（例えば、良好に形成されたＳＡＴＡコマンド）に従って適切にフォーマットされているが、それ自体が遂行されることにはなっておらず、代わりに通知として解釈されるストレージアクセス要求を指す。「ダミー」という用語は、そのような要求を、それ自体が遂行されるように意図されているストレージアクセス動作を表す「真の」または「本物の」ストレージアクセス要求から区別するために使用される。
【００３２】
[0039]いくつかの実施形態において、ダミー要求は、１つのそのようなダミー要求を実行することが例外／障害を引き起こすという意味において、無効なストレージアクセス要求である。そのような場合、フォルトハンドラが、それぞれの障害をインターセプトし、それぞれの障害を引き起こしている要求をダウンリンク通知として決定することができる。他の実施形態において、ダミー要求は、それ自体に欠陥があるものではないが、パラメータ値（フラグ）の特定の、異常な、または矛盾する組み合わせを含み得る。また他の実施形態において、ダミー要求は、有効な通常の要求を含み得、そのようなダミー要求は、例えば、ペイロードの、または、ストレージ通信プロトコルによって定義される他のデータフィールドの内容に従って、そのようなものとして識別され得る。
【００３３】
[0040]ダミーアクセス要求の１つの例は、範囲外アドレス、すなわち、一次ストレージ３０の通常のアドレス指定可能範囲の外部のアドレスにアクセスすることを求める要求を含む。例は、「ブロックＢを読み出す」または「アドレスＡにおけるペイロードＰに書き込む」を含み、ブロックＢのアドレスおよびアドレスＡは、一次ストレージ３０の通常のアドレス指定可能範囲の外部にある。そのような各アドレス（Ａおよび／またはＢの特定の値）は、セキュアストレージデバイス２４の内部で実行するソフトウェアに通信される特定の命令またはイベントに対応し得る。別の例において、ダウンリンク通知が、通常のアドレス指定可能範囲内にあるが、通常の動作中は一般的にアクセスされないアドレスにおいてストレージにアクセスすることを求める要求として偽装され得る。例えば、マスタブートレコード（ＭＢＲ）または重要なＯＳ構成要素（例えば、Ｗｉｎｄｏｗｓ（登録商標）内のＮＴＯＳＫＲＮＬ．ＥＸＥ）を現在保持している記憶位置に書き込むことを求める要求は、セキュアストレージデバイス２４によってインターセプトされ得、ＣＳＭ４４からのダウンリンク通知として解釈され得る。
【００３４】
[0041]また別の例において、ダミーアクセス要求は、特定のペイロード内容（例えば、特定のビットパターンまたはシグネチャ）に従って識別され得る。そのような実施形態において、セキュリティプロセッサ１１６上で実行するソフトウェア構成要素は、ペイロード内容を解析して、ダミーアクセス要求を検出することができる。様々なペイロードＰが、セキュアストレージデバイス２４に対する様々な通知／命令に対応し得る。
【００３５】
[0042]また別の例において、ダミーアクセス要求は、例えば、シリアルＡＴＡプロトコルにおいて指定される「コマンド（Ｃｏｍｍａｎｄ）」および／または「補助（Ａｕｘｉｌｉａｒｙ）」フィールドの内容に従ってなど、ストレージ通信プロトコルによって定義される別のデータフィールドの内容に従って、そのようなものとして識別され得る。１つのそのような例において、マルウェアシグネチャを更新するためのコマンドは、ＣＳＭ４４によって発行されるダミーアクセス要求の「コマンド」フィールド内に符号化され得る。実際のシグネチャは、別のダミーアクセス要求のペイロードとして送信され得る。
【００３６】
[0043]ダウンリンク通知のいくつかの他の例は、特定の記憶位置に記憶されているデータをスキャンするための命令を含み、それぞれの位置は、ダミーアクセス要求のペイロード内に符号化され得る。また別の例において、複数の個別のアドレスＡを含むダミー書き込み要求が、個別のマルウェア対策方法またはパラメータを示し得る。複数のアドレスＡの各アドレスまたは範囲が、個別のヒューリスティクス、または、マルウェアを示すシグネチャの個別のグループを示し得る。
【００３７】
[0044]これを受けて、ストレージメディエータ４２は、例えば、ハードウェア割り込み−ＩＲＱ、または、装置２４によって送信され、ストレージメディエータ４２によっておよび／もしくはＯＳ４０の別のイベントハンドラによって処理される非同期ＳＡＴＡ通知を介するなど、確認応答および／またはダウンリンク通知に対する別の形態の応答を介して、装置２４から通知／信号（本明細書においてはアップリンク通知として参照される）を受信することができる。例示的なアップリンク通知は、とりわけ、例えば、可能性のあるランサムウェア攻撃の指示、および、ストレージデバイス２４のファームウェアを更新しようとする試みの指示などのセキュリティ警告を含む。
【００３８】
[0045]また別の例示的なアップリンク通知は、暗号鍵を求める要求を含む。１つのそのような例においては、セキュリティエージェント５０は、暗号化されたデータパケットへの書き込みを行おうとする試みを検出することができる。そのような試みは、ディスクデータの自動暗号化が起動されることを示し得る（例えば、Ｍｉｃｒｏｓｏｆｔ（登録商標）のＢｉｔｌｏｃｋｅｒ（登録商標）技術）。応答して、いくつかの実施形態は、ＣＳＭ４４から暗号鍵を要求することができる。この方法のさらなる詳細は、下記においてさらに説明する。
【００３９】
[0046]いくつかの実施形態は、一連のダウンリンク−アップリンク通知を使用した反復的なマルウェア検出のバージョンを実装する。１つのそのような例では、ダウンリンク通知は、ストレージセキュリティエージェント５０に、特定のファイルをマルウェアについてスキャンするように命令する。エージェント５０は、次いで、スキャンの結果をＣＳＭ４４に通信することができ、ＣＳＭ４４は、第１のスキャンの結果に従って別のファイルまたはフォルダを選択し、新たなダウンリンク通知などを介して、セキュリティエージェント５０に新たなスキャン目標を通信することができる。そのような反復方式は、セキュアストレージデバイス２４上に複雑なソフトウェアをインストールする必要がある、相当に複雑なマルウェア検出手順を可能にすることができる。
【００４０】
[0047]図５は、本発明のいくつかの実施形態による、ＣＳＭ４４によって実施される例示的な一連のステップを示す。ＣＳＭ４４は、ホストシステム１０内の複数のソースからセキュリティ関連データを集約することができ、ソフトウェアの実行中に一定のイベントの発生に関する通知を受信することができる。１つの例示的なソースは、それぞれのシステムコールが発生する度に、ＣＳＭ４４への信号に結びつけることによって修正される、ＯＳ４０のシステムコール関数である。セキュリティ情報および通知の他の例示的なソースは、ＯＳミニフィルタを含む。いくつかの実施形態において、ＣＳＭ４４は、さらに、セキュアストレージデバイス２４からに関するアップリンク通知を受信することができる。イベントの発生の検出に応答して、ステップ２０６において、ＣＳＭ４４は、ヒューリスティクスのセットを提供して、ホストシステム１０が現在攻撃を受けているか否かを判定することができる。分析によってマルウェアの疑いが明らかになったとき、ＣＳＭ４４は、例えば、悪意のあるプロセスの実行をブロックしまたは他の方法で防止し、ユーザまたはホストシステム１０の管理者に警告するなど、適切なマルウェア対策手段（ステップ２１２〜２１４）をとることができる。いくつかの検出されるイベントは、セキュアストレージデバイス２４へのダウンリンク通知を行うに値する。１つのそのような例においては、ＣＳＭ４４は、セキュリティエージェント５０に、ストレージアクセスの試みに対する調査を実施するように指示することができる。ダウンリンク通知は、図５においてはステップ２０８〜２１０として示されている。
【００４１】
[0048]いくつかの実施形態において、ストレージセキュリティエージェント５０は、ＯＳ４０のファイルシステムから独立して、ストレージ３０上に記憶されているメタデータから、ＯＳ４０によって使用されるファイルシステムのセマンティクスを作成し直す。言い換えると、エージェント５０は、ＯＳ４０のファイルシステムの代替形態またはシャドウに相当する、ファイルシステムの意味論的知識ベースを維持する。従来のコンピュータシステムにおいては、ハードウェアレベルにおいて、データは、意味情報を欠くブロックとして記憶される。例えば、データのいずれのチャンクがいずれのファイル／フォルダに属するかは明確ではない。さらなる複雑な事態は断片化であり、単一ファイルのデータが隣接して記憶されず、記憶媒体全体を通じて様々な位置に分散される。資産を記憶位置と関連付け、ハードウェアレベル情報を意味のあるデータに変換する記帳タスクは、一般的にＯＳによってなされる。ＯＳは、メタデータとして符号化され、記憶媒体の特定のセクション内に記憶されている、ファイルシステムとして知られている特化されたデータ構造を維持することによって、そのようなタスクを管理する。例示的なファイルシステムは、とりわけ、ＦＡＴ、ＦＡＴ３２、およびＮＴＦＳを含む。
【００４２】
[0049]いくつかの実施形態において、ファイルシステム意味マップは、一次ストレージ３０のセクションと、ＯＳ４０のファイルシステムのアイテムとの間のマッピングの符号化を含む。例示的なファイルシステムアイテムは、ディレクトリおよびファイルを含む。例示的な意味マップアイテムは、アドレスの範囲［Ａ１  Ａ２］を、ファイルＦと関連付ける（Ｆは、例えば、Ｃ：￥ｕｓｅｒ￥ｄｏｃｓ￥Ｌｅｔｔｅｒ．ｔｘｔまたは／ｈｏｍｅ／ｕｓｅｒ／ｄｏｃｓ／Ｌｅｔｔｅｒ．ｔｘｔのようなパスとして表され得る）。そのような関連付けは、実効的に、それぞれのアドレス範囲内に記憶されているデータが、ファイルＦの一部分を形成することを示す。別の例示的なファイルシステム意味マップアイテムは、アドレス範囲［Ａ３  Ａ４］が、ファイルシステムメタデータを記憶することを指定する。また別の例示的なファイルシステム意味マップアイテムは、個々のアドレス指定可能な単位（例えば、アドレス範囲とは対照的に、記憶ブロックまたはセクタ）を、ファイルシステムアイテムと関連付ける。意味マップデータは、例えば、ビットマップ、リンクリストなどとして、当該技術分野において知られている任意の方法を使用して符号化され得る。
【００４３】
[0050]図６は、本発明のいくつかの実施形態による、ストレージセキュリティエージェント５０によって実施される例示的な一連のステップを示す。エージェント５０は、ストレージインターフェース３６を介してＯＳ４０からストレージアクセス要求を受信する。典型的な要求は、動作の指示（読み出し、書き込み）、アドレスの指示、およびペイロードを含む。例示的なストレージアクセス要求は、「アドレスＡにおいてＮバイトのブロックを読み出す」および「アドレスＡにおいてペイロードＰに書き込む」のセマンティクスを有する。アクセス要求は、それぞれの要求のパラメータ値（例えば、フラグ、属性）のセットをさらに含むことができる。ストレージアクセス要求の実際のフォーマットおよび符号化は、ハードウェアおよびソフトウェアの実装形態の間で変化し得る。
【００４４】
[0051]アクセス要求が装置２４に到達すると、エージェント５０は、要求のパラメータに従って、それぞれの要求が真のストレージアクセスを示すか、または、ダミーストレージアクセス（すなわち、ＣＳＭ４４からの通知）を示すかを判定することができる。１つの例示的な実施形態において、範囲外アドレスにアクセスすることを求める要求は、そのような通知を示し得る。それぞれのアクセス要求がダウンリンク通知を含むとき、ステップ２３６は、それぞれの要求のパラメータに従って特定の動作を選択肢、実施することができる（下記のいくつかの例を参照されたい）。
【００４５】
[0052]一連のステップ２２８〜２３０において、セキュリティエージェント５０は、さらに、意味マップに従ってそれぞれのストレージアクセス要求のセマンティクスを復号することができる。例えば、エージェント５０は、書き込まれているものがメタデータであるかまたは実際のファイルであるか、新たなファイルが作成されているか、どの特定ファイルが現在書き込みまたは読み出しされているかなどを判定することができる。さらなるステップ２３２は、アクセスヒューリスティクスのセットを適用して、要求されているアクセスがコンピュータセキュリティ脅威を示すか否かを判定することができる。そうでないとき、エージェント５０は、それぞれのアクセスが進行することを可能にすることができる。ヒューリスティクスが、要求されているアクセス要求は、コンピュータセキュリティモジュール４４への通知を行うに値することを示すとき、エージェント５０は、セキュリティ警告に相当するアップリンク通知を実施することができる。
【００４６】
[0053]図７は、ファイルシステム意味マップを維持するためにストレージセキュリティエージェント５０によって遂行される例示的な一連のステップを示す。マップ作成は、例えば、ブートアップにおいて開始され得る。いくつかの実施形態において、エージェント５０は、ＯＳ４０によって使用されるファイルシステムメタデータが記憶される、一次ストレージ３０上の位置を決定することができる。これを達成するためのいくつかの方法が、コンピュータ科学捜査の技術分野において知られている。いくつかの実施形態は、ファイルシステムデータの位置を決定するために、ホスト（例えば、ＣＳＭ４４）上で実行するソフトウェア構成要素を使用する。ＣＳＭ４４はその後、ダウンリンク通知を使用して、それぞれの位置をセキュリティエージェント５０に通信することができる。
【００４７】
[0054]一連のステップ２５４〜２５６において、エージェント５０は、一次ストレージ３０内に記憶されているファイルシステムメタデータを解析し、それぞれのメタデータに従って意味マップを組み立てる。いくつかの実施形態は、セキュリティメモリ１１８および／または二次ストレージ３２内に、決定されている意味マップデータ（すなわち、シャドウファイルシステム）を記憶する。その後、プロセッサ１６上でのソフトウェアの実行中、エージェント５０は、ストレージアクセス要求をリッスンし、そのような要求が、メタデータの変化（例えば、ファイル／ディレクトリの作成または削除）を示すか否かを判定することができる。そうであるとき、エージェント５０は、それに従って意味マップを更新することができる（図７のステップ２６０−２６２−２６４）。
【００４８】
[0055]通知およびヒューリスティクスの例示されているシステムは、様々な用途に使用され得、そのいくつかの例が、下記に与えられる。
ハードウェアを保護するためのコマンドフィルタリング
[0056]慎重に作成された悪意のあるソフトウェアは、ＡＴＡコマンドセット（例えば、ＤＯＷＮＬＯＡＤ  ＭＩＣＲＯＣＯＤＥコマンド）の特定の機能を利用して、ストレージデバイスのファームウェアを不正に更新し、結果、ハードウェアレベルのマルウェアを装置自体に導入することができる。１つのそのような例示的なマルウェアは、それぞれのストレージデバイスの挙動を改変し、および／または、それぞれのストレージデバイスを制御するためにホスト上で実行するソフトウェアによって使用され得るバックドアである。
【００４９】
[0057]そのような進歩した攻撃を防止するために、いくつかの実施形態において、ストレージセキュリティエージェント５０は、ストレージインターフェース３６を介して受信されるストレージアクセス要求をフィルタリングするように構成される。フィルタリング規則は、基本的なものであり得、例えば、最も一般的なアクセス要求（例えば、読み出し、書き込み、装置を識別するためのコマンドなど）の実行を可能にし、すべての他のコマンド／要求をブロックすることができる。他の実施形態は、例えば、現在のコンテキストに適合されたフィルタリング規則など、より洗練されたフィルタリングヒューリスティクスを実施することができる。別の例においては、セキュリティエージェント５０は、ホストシステム１０の管理者からの明示的な確認を受けて、特定のＡＴＡコマンド／アクセス要求の実行を調整することができる。
【００５０】
[0058]いくつかの実施形態において、特定のコマンド／要求はブロックされず、代わりにエミュレートされ、セキュリティプロセッサ１１６上で実行するソフトウェアによって（例えば、セキュリティエージェント５０によって）さらに分析される。そのようなコマンドの受信に応答して、セキュリティソフトウェアは、それぞれのコマンド／アクセス要求の遂行に成功したと信じ込ませるように、ホストプロセッサ１６上で実行するソフトウェアを騙すために、人為的な応答を返すことができる。セキュリティエージェント５０はさらに、マルウェア対策研究を補助するために、そのようなコマンドをログ記録することができる。
【００５１】
ハードウェアレベルにおけるイベントインターセプトおよび解釈
[0059]意味マップ（シャドウファイルシステム）を維持することによって、ストレージセキュリティエージェント５０は、アクセス要求の受信に応答して、プロセッサ１６上のソフトウェアの実行中に発生するセキュリティ関連イベントを検出することが可能になる。例えば、書き込み要求に応答して、エージェント５０は、書き込まれているものがメタデータであるか、または、ファイルの実際の内容であるか、それぞれの書き込みが空の記憶セクションに向けられているか、または、既存の情報を上書きしているか、それぞれの書き込みが本物の書き込みであるか、または、プロセッサ１６からのダウンリンク通知であるか、などを判定することができる。
【００５２】
[0060]ファイル作成、ファイル削除、およびファイル書き換えのようなファイルシステムイベントが、イベント特有の動作シーケンスに従って遂行される。例示的なパターンは、メタデータ読み出し、その後のメタデータ書き込み、その後のペイロード書き込みを含んでもよい。エージェント５０は、そのようなパターンを符号化するヒューリスティクスのセットを使用して、各ファイルシステムイベントのタイプを識別することができる。さらに、エージェント５０は、例えば、いずれのファイルが書き込まれているか、いずれのファイルが読み出されているかなど、各読み出し／書き込み動作の目標を識別することができる。
【００５３】
[0061]従来のコンピュータセキュリティシステム／方法とは対照的に、そのようなイベントインターセプトは、プロセッサ１６上で実行するソフトウェアを知ることなく仮想的に行われる。それゆえ、悪意のあるソフトウェアは、イベント検出を妨げることができず、または、他の様態でイベント検出に干渉することができない。エージェント５０のようなセキュリティソフトウェアは、その後、アップリンク通知を使用して、セキュリティに関連すると考えられる特定のイベントの発生をＣＳＭ４４に通知することができる。
【００５４】
オンアクセスマルウェアスキャン
[0062]セキュリティエージェント５０は、ファイルを開こうとする試みおよび／または実行可能ファイルを実行しようとする試みを検出することができる。このように検出され得る他の動作は、ファイル添付および後続の書き込みのためのストレージの配分を含む。そのような各イベントは、それぞれのファイルのスキャン、または、それぞれのストレージアクセスを指図したプロセスに属するリソース（メイン実行ファイル、ライブラリなど）のスキャンを起動するためのトリガとして使用され得る。スキャンは、ストレージアクセス要求を発行したプロセスが一時中断されている間に搬送され得、または、それぞれのプロセスが実行を継続することを可能にしている間はオフラインであり得る。
【００５５】
[0063]スキャンは、それぞれのファイルの内容を、マルウェアを示すシグネチャまたはコードパターンのライブラリと照合することによって、コンピュータセキュリティの技術分野において知られる任意の方法に従って、実施されてもよい。マルウェアを示すシグネチャのライブラリは、この目的のために二次ストレージ３２上に記憶され得る。ライブラリは、定期的なまたは要求に応じた更新を介して最新に維持され得る。いくつかの実施形態は、ダウンリンク通知（例えば、ダミーストレージアクセス要求）のセットを介して、シグネチャライブラリおよび／またはセキュアストレージデバイス２４上で実行する他のソフトウェアを更新する。
【００５６】
[0064]オンアクセススキャンの変形形態において、エージェント５０は、ヒューリスティクスのセットを使用して、ホストシステム１０および／またはＯＳ４０のブートシーケンスを検出することができる。言い換えれば、一連のストレージアクセス要求を分析することによって、エージェント５０は、ホストシステム１０が現在ブート過程にある（すなわち、ハードウェアおよび／またはソフトウェアを初期化している）と判定することができる。例示的なブートシーケンスは、典型的には、マスタブートレコード（ＭＢＲ）またはＧＵＩＤパーティションテーブル（ＧＰＴ）として知られるデータ構造を記憶する位置からの一連の読み出し要求によって開始する。
【００５７】
Ｉｄｅｎｔｉｆｙ  Ｄｅｖｉｃｅ（装置を識別する）
Ｒｅａｄ  ＤＭＡ  Ｅｘｔ  Ａ：００００００００  Ｃ：０００１
Ｒｅａｄ  ＤＭＡ  Ｅｘｔ  Ａ：００００００００  Ｃ：０００１
Ｒｅａｄ  ＤＭＡ  Ｅｘｔ  Ａ：０００００００１  Ｃ：０００１
Ｒｅａｄ  ＤＭＡ  Ｅｘｔ  Ａ：Ｅ８Ｅ０８８ＡＦ  Ｃ：０００１
Ｒｅａｄ  ＤＭＡ  Ｅｘｔ  Ａ：０００００００２  Ｃ：００２０
Ｒｅａｄ  ＤＭＡ  Ｅｘｔ  Ａ：Ｅ８Ｅ０８８８Ｆ  Ｃ：００２０
Ｒｅａｄ  ＤＭＡ  Ｅｘｔ  Ａ：０００００００２  Ｃ：００２０
・・・
ＯＳ４０がロードを開始したことを示す例示的な一連のストレージアクセス要求が、下記に示される。
【００５８】
Ｉｄｅｎｔｉｆｙ  Ｄｅｖｉｃｅ（装置を識別する）
Ｒｅａｄ  ＦＰＤＭＡ  Ｑｕｅｕｅｄ  Ａ：００００００００  Ｃ：０００１  Ｔ：０４
Ｒｅａｄ  ＦＰＤＭＡ  Ｑｕｅｕｅｄ  Ａ：０００００００１  Ｃ：０００１  Ｔ：０５
Ｒｅａｄ  ＦＰＤＭＡ  Ｑｕｅｕｅｄ  Ａ：０００００００２  Ｃ：００２０  Ｔ：０６
Ｒｅａｄ  ＦＰＤＭＡ  Ｑｕｅｕｅｄ  Ａ：００００００００  Ｃ：０００１  Ｔ：０７
・・・
[0065]アクセス要求のブートシーケンスの別の典型的な機能は、２〜５個の書き込み要求からなる短いシーケンスによって割り込まれる読み出し要求（例えば２〜３０００個の連続する読み出し要求）の非常に長いシーケンスを含む。そのようなパターンは、ＯＳ特有であり得る。パターン分析は、連続する読み出し／書き込み要求のカウントを、アドレス情報および／または他のパラメータ値の分析と組み合わせて、ブートプロセスの様々な段階を推論することができる。
【００５９】
[0066]いくつかの実施形態は、アクセス要求パターン照合を、意味マップ情報と組み合わせて、ＯＳ４０の初期化を検出することができる。１つのそのような例において、セキュリティエージェント５０は、反復手順を搬送して、ホストプロセッサ１６上で実行するソフトウェアのタイプおよび／または位置に関する情報を、ストレージアクセスイベントから直接的に収集することができる。マスタブートレコードに対するアクセスを検出することによって、エージェント５０は、パーティション情報を決定することができる。次いで、一連の読み出し要求が、ボリュームヘッダにおいて標的化される。そのような要求から、エージェント５０は、それぞれのボリュームに関する情報を決定および検証することができる。次に、エージェント５０は、ブートに伴う一連の読み出しおよび／または書き込みに従うことによって、重要なＯＳファイル（例えば、Ｗｉｎｄｏｗｓ（登録商標）におけるＮＴＯＳＫＲＮＬ．ＥＸＥのような、ＯＳ４０が初期化時にロードするリソース）のセットの記憶位置を自動的に識別することができる。それぞれのブートシーケンスはまた、オペレーティングシステムのタイプ（例えば、ＯＳ４０の型、バージョンなど）も明らかにすることができる。
【００６０】
[0067]いくつかの実施形態は、その後、検出されたブート／初期化段階に後続する時間期間（例えば、数秒）中に開かれているすべてのファイルをスキャンすることができる。スキャンは、完全性の検証、すなわち、ファイルの内容が、例えば、悪意のあるソフトウェアによって損なわれているか否かの判定を含むことができる。完全性の検証は、それぞれのファイルの現在の内容のハッシュを、二次ストレージ３２上に記憶されている基準ハッシュと比較することを含むことができる。
【００６１】
[0068]ブートシーケンスに関係付けられるまた別の例示的な応用形態において、いくつかの実施形態は、セキュアストレージデバイス２４を、ＯＳ４０の外部で実行し、ＯＳ４０の完全性および／または信用性を試験するように構成されるエージェントとして使用することができる。例えば、エージェント５０は、ホストシステム１０をリブートすることを求める要求を自動的に検出することができる。その後、（例えば、装置検出および初期化動作から、または、ＣＳＭ４４によるダウンリンク通知に応答して）リブートが実際に進行中であるという検出に応答して、エージェント５０は、通常のブートシーケンスを一時中断し、ＯＳ４０のデータ構造および／または一次ストレージ３０のブート領域をスキャンするように構成されている代替的なＯＳまたはセキュリティエージェントを露出させることができる。スキャンが完了され、システムが安全であるとみなされると、エージェント５０は、ＯＳ４０のブートを再開することができる。
【００６２】
記憶されている資産の保護
[0069]一次ストレージ３０のブート領域は、典型的には、ＯＳがロードされる前に読み出されるリソースを記憶する。意味マップを維持することによって、エージェント５０は、書き込み要求がそれぞれのブート領域を標的化するか否かを判定することができ、応答して、それぞれの書き込みをブロックし、および／または、ＣＳＭ４４に通知することができる。特定のファイル、ライブラリなどのような、ＯＳ４０または他のアプリケーションの貴重な資産を保護するために、同様の戦略が使用され得る。
【００６３】
暗号化データによる動作
[0070]ＯＳ４０のいくつかのバージョンは、データを一次ストレージ３０上に暗号化された形態で保持するオプションを有する。１つのそのような例が、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）のＢｉｔｌｏｃｋｅｒ（登録商標）機能である。記憶されているデータが暗号化されている場合、ＯＳ４０の外部で実行するエンティティ（ストレージセキュリティエージェント５０を含む）は、それぞれのデータ、または、ファイルシステム意味マップの構築を可能にするシステムメタデータにアクセスすることができなくなる場合がある。
【００６４】
[0071]しかしながら、エージェント５０は、ＣＳＭ４４と協働して、暗号化鍵、または、それぞれの鍵を導出することを助成する情報を取得することができる。そのような情報は、例えば、パスワード、秘密、ノンスなどを含むことができ、本明細書では、暗号化鍵材料と称される。ＣＳＭ４４は、ユーザパスワードまたはそれぞれの鍵に関連して使用される別の秘密を要求するユーザインターフェースを露出させ、パスワード／秘密をエージェント５０に通信することができる。別の実施形態において、ＣＳＭ４４は、ＯＳの暗号化エージェント（例えば、Ｂｉｔｌｏｃｋｅｒ（登録商標）モジュール）と直接的にインターフェースして、鍵材料を取得することができる。鍵材料を取得するのに応答して、ＣＳＭ４４は、鍵材料自体、または、当該鍵材料の記憶位置を、ダウンリンク通知（例えば、ダミーストレージアクセス要求）を介してエージェント５０に通信することができる。
【００６５】
[0072]暗号化鍵を保持すると、エージェント５０は、ファイルシステム意味マップを構築および／または維持するために、暗号エンジン５２を使用して、記憶されているデータを解読することができる。いくつかの実施形態において、エージェント５０は、暗号鍵をさらに使用して、実質的にＯＳ４０またはホストプロセッサ１６上で実行する他のソフトウェアを知ることなく、一次ストレージ３０へのデータトラフィックおよび／または一次ストレージ３０からのデータトラフィックのオンラインスキャン／分析を実施することができる。１つの例では、書き込み要求のインターセプトに応答して、セキュリティエージェント５０は、元の（暗号化された）ペイロードを意図されるアドレスに書き込む前に、それぞれのペイロードを解読および分析することができる。いくつかの実施形態において、それぞれのペイロードの解読に応答して、エージェント５０は、ペイロードの暗号化されていないバージョンを二次ストレージ３２に保存することができる。
【００６６】
一般的な暗号化の検出
[0073]ストレージセキュリティエージェント５０のいくつかの実施形態は、ストレージ３０のセクション（例えば、ブロック、セクタなど）内に記憶されているデータが暗号化されているか否かを自動的に判定することができる。そのような判定は、エントロピーまたは当該技術分野において知られている他の方法などの情報複雑性測度を使用することができる。誤判定を回避するために、いくつかの実施形態は、それぞれのファイルが、それぞれのファイルが必ずしも暗号化されることなく高いエントロピーを有する可能性があるか否かを判定するために利用可能なメタデータを使用することができる。そのような例は、ＭＰ３、ＪＰＧ、ＭＰＧ、ＺＩＰなどのようなフォーマットに従って圧縮されているデータを含む。それぞれのファイルがこれらのカテゴリのうちの１つに入るか否かを判定するために、いくつかの実施形態は、メタデータに従ってそれぞれのファイルのヘッダセクションを位置特定し、それぞれのヘッダ内のファイルタイプ情報を検索することができる。
【００６７】
[0074]いくつかの実施形態において、ファイルシステム意味マップの各エントリは、例えば、それぞれのファイルシステムアイテム（ファイル、フォルダなど）が暗号化されているか否か、それぞれのファイルシステムアイテムが圧縮されているか否かなどを示す、フラグのセットによって増強され得る。フラグは、意味マップデータの残りの部分とともに、エージェント５０によって維持され得る。
【００６８】
進歩したランサムウェアの検出
[0075]本明細書において記載されているシステムおよび方法は、記憶されているデータを暗号化しようとする試みを自動的に検出することを可能にする。検出は、プロセッサ１６上で実行するソフトウェアから独立して実施され、実質的に、プロセッサ１６上で実行するソフトウェアによって検出することができない。そのような自動暗号化検出の有用な用途は、ランサムウェア、および、その動作がユーザデータの許可されていないまたは意図されていない暗号化を含む他のタイプの悪意のあるソフトウェアの検出を含む。
【００６９】
[0076]１つの例示的な検出ヒューリスティクスは、暗号化されていない内容を、暗号化された内容によって上書きしようとする試みを検出することを含む。検出ヒューリスティクスの別のセットは、統計を利用して、ストレージアクセス要求の現在のストリームを、特定のユーザおよび／または作動中のアプリケーションに対応する「通常の」パターンと比較する。検出を達成するために、いくつかの実施形態は、例えば、いずれのアプリケーション／プロセスが特定のユーザによって開始される可能性が高いか、いずれの記憶位置がそれぞれのユーザによって典型的にアクセスされるか、各プロセス／アプリケーションと関連付けられるストレージ要求の典型的なパターンは何かなどを示す、ユーザプロファイルおよび／またはアプリケーションプロファイルのセットを決定する。例えば、エージェント５０がファイル作成活動において異常なスパイクを検出する場合であって、それぞれのファイルの内容が暗号化されている場合など、現在の一連のストレージアクセス要求が「通常」のパターンを逸脱する場合、エージェント５０は、ランサムウェア攻撃が進行中であると判定することができる。
【００７０】
[0077]疑わしい暗号化活動をエージェント５０が検出すると、エージェント５０は、それぞれの活動（例えば、疑いのある書き込みのセットをブロックすること）を一時中断し、および／または、アップリンク通知メカニズムを使用してＣＳＭ４４にシグナリングすることができる。これを受けて、ＣＳＭ４４は、この通知を攻撃の可能性があるという警報として使用することができ、または、さらなるヒューリスティクスを適用して、例えば、エージェント５０によって通知されるイベントを、ホストシステム１０または通信ネットワークを介してホストシステム１０に接続される他のコンピュータ上で発生する他のマルウェア指示イベントと相関付けることができる。
【００７１】
ソフトウェアバージョニングおよびバックアップのような用途のための資産シャドウイング
[0078]いくつかの実施形態において、ストレージセキュリティエージェント５０は、ファイルを削除または上書きしようとする試みを自動的に検出し、応答して、削除／上書きされたデータのコピーを、一次ストレージ３０または二次ストレージ３２のいずれかの上の別個の位置に保存する。したがって、削除または上書きされているファイルのシャドウコピーが、新たに書き込まれるデータとともに維持される。いくつかの実施形態は、同じファイルの３つ以上の連続するバージョンを保存し、それぞれのバージョンの少なくとも１つは暗号化されていない。このメカニズムは、場合によってそれぞれのファイルを保存されているバージョンのいずれかに復元することによって、データの安全な回復を可能にすることができる。
【００７２】
[0079]そのような資産シャドウイングの可能性のある用途は、とりわけ、セキュリティ、バックアップ、およびソフトウェアバージョニングを含む。コンピュータセキュリティ実施形態において、エージェント５０は、例えば、特定のファイルが比較的短い時間間隔の中で繰り返し上書きされることを検出することができる。そのようなファイル活動は、マルウェアを示す可能性がある。いくつかの実施形態は、同じファイルの連続するバージョンを比較して、例えば、古い方のバージョンが暗号化されていない一方で、新しい方のバージョンが暗号化されているかを判定することができる。前述されているように、そのような暗号化の変化は、ランサムウェア攻撃を示す可能性がある。より一般的には、ファイルのバックアップコピーを保持することによって、可能性として、悪意のあるソフトウェアが重要なＯＳ資産を改変することを防止することができ、したがって、例えば、ＯＳ機能の悪意のあるフックを防止することができる。そのような改変が検出されるとき、エージェント５０はＣＳＭ４４に通知することができる。これを受けて、ＣＳＭ４４は、エージェント５０に、特定のファイルへの変更をロールバックするように指示することができる。
【００７３】
最適化
[0080]いくつかの実施形態は、ファイルシステムのセマンティクスをセキュアストレージデバイス２４のレベルから解読する計算オーバヘッドを下げるようにさらに最適化され得る。ハイブリッド環境において、セマンティスクス指示がＣＳＭ４４からセキュリティエージェント５０へと送達され、一方で、エージェント５０は、ファイル削除、ファイル上書き、許可されていないデータ暗号化などのような、悪意のあるストレージイベントをインターセプトし、これに対抗することができる。そのような実施形態において、ＣＳＭ４４は、Ｗｉｎｄｏｗｓ（登録商標）におけるファイルシステムミニフィルタのものと同様の機能性を有する軽量ストレージアクセスフィルタを含むことができる。ストレージアクセスフィルタは、例えば、とりわけ、ファイル、それぞれのデータ／ファイルの名前および／またはディスク位置、ならびに、書き込み動作を遂行するプロセスのアイデンティティに書き込もうとする試行を判定することができる。次いで、ストレージアクセスフィルタは、そのような意味情報を、ダウンリンク通知を介してストレージセキュリティエージェント５０に送信することができる。エージェント５０は、確認応答パケットまたはアップリンク通知を使用して、受信を確認応答することができる。いくつかの実施形態において、ダウンリンク通知が通知待ち行列に追加される。
【００７４】
[0081]セキュアストレージデバイス２４のレベルにおいて、エージェント５０は、書き込もうとする試みを特定し、それぞれの書き込みの試みを、ダウンリンク通知待ち行列からのデータと照合することを試みることができる。照合に成功することによって、エージェント５０が、それぞれの書き込みの試みのセマンティクスを決定することが可能になり、これによって、エージェント５０が、より洗練されたヒューリスティクスを適用して、それぞれの書き込みの試みが疑わしいか、保護される必要があるかなどを判定することが可能になり得る。ハードウェアレベルにおいて（例えば、特定のメタデータ変更から）検出される書き込みの試みを、ダウンリンク通知を介して伝達される書き込みの試みと照合することができないことは、ＯＳ４０のストレージアクセスミニフィルタによる検出を回避することが可能な悪意のあるソフトウェアを示す可能性がある。そのような場合、セキュリティエージェント５０は、それぞれの書き込みの試みをブロックし、および／または、アップリンク通知を介してＣＳＭ４４に通知することができる。
【００７５】
[0082]本発明は、ホストシステムを、とりわけ、悪意のあるソフトウェアのようなコンピュータセキュリティ脅威に対して保護するためのシステムおよび方法に関する。記載されているシステムおよび方法は、ホストシステム（例えば、コンピュータ、モバイル通信装置など）を、従来の防御を覆すことが可能である洗練されたマルウェアに対して保護するのに特に適している。例示的な用途は、ランサムウェア、ならびに、私有の、私的な、および／または機密のデータの盗難に対する保護を含む。
【００７６】
[0083]本発明のいくつかの実施形態は、悪意のあるソフトウェアが、ホストシステムのプロセッサと、不揮発性ストレージ（例えば、磁気、光、またはソリッドステートドライブ）との間のデータのトラフィックにおける干渉に成功する可能性があるという観察に依拠する。それぞれのプロセッサ上で実行するセキュリティソフトウェアは、すべてのそのような干渉をブロックまたは防止することが可能でない場合があり、結果として、データ盗難または喪失の危険性が甚大になる可能性がある。この問題に対処するために、本発明の例示的な実施形態は、セキュリティソフトウェアの部分を、ホストシステムのメインプロセッサとストレージデバイスとの間のデータトラフィックをインターセプト、分析、および／または選択的にブロックするように構成されている別個のプロセッサに移行する。この補助セキュリティプロセッサは、例えば、共通のプリント回路基板上で、ストレージデバイスおよび／または追加のハードウェアと統合されて、増強されたセキュアストレージデバイスを形成することができる。上記セキュアストレージデバイスは、ハードドライブまたは他の不揮発性ストレージの従来のフォームファクタをとることができ、シリアルＡＴアタッチメント（ＳＡＴＡ）または周辺構成要素相互接続（ＰＣＩ）エクスプレスインターフェース／コネクタのような、従来のストレージインターフェース／コネクタを介して、ホストシステムのハードウェアの残りの部分に接続することができる。代替的な実施形態において、セキュアストレージデバイス（すなわち、ストレージ＋補助プロセッサ）は、例えば、ユニバーサルシリアルバス（ＵＳＢ）または別の従来のインターフェース／コネクタによってホストシステムに接続される、外部ドライブとしてパッケージされ得る。
【００７７】
[0084]従来のマルウェア対策システムにおいて、防止、検出、および対抗措置は、悪意のあるコードも作動する同じ物理プロセッサ上で実行するソフトウェア内で実施される。さらに、従来のシステムにおいては、マルウェアと合法ソフトウェアの両方が、同じ物理的ストレージデバイス（例えば、ハードドライブ）にアクセスすることができる。そのような構成は、慎重に作成された悪意のあるコードが、セキュリティソフトウェアを弱体化させることを許容する可能性がある。対照的に、本発明のいくつかの実施形態において、物理的ストレージへのアクセスは、ユーザアプリケーション（および、場合によっては悪意のあるコード）を作動させるメインプロセッサとは別個の、補助プロセッサによって制御される。それゆえ、補助プロセッサ上で実行するセキュリティソフトウェアは、マルウェアの手に届かない。
【００７８】
[0085]本発明の範囲から逸脱することなく、上記実施形態を多くの方法において改変することができることは、当業者には明らかであろう。したがって、本発明の範囲は添付の特許請求の範囲およびそれらの適法の均等物によって画定されるものとする。
【図１】
2020529681.tif 000003
【図２】
2020529681.tif 000004
【図３−Ａ】
2020529681.tif 000005
【図３−Ｂ】
2020529681.tif 000006
【図４】
2020529681.tif 000007
【図５】
2020529681.tif 000008
【図６】
2020529681.tif 000009
【図７】
2020529681.tif 000010
【国際調査報告】
2020529681.tif 000011
2020529681.tif 000012
2020529681.tif 000013