(57)【特許請求の範囲】
【請求項１】
不正アプリケーションを検出するためのコンピュータによって実施される方法であって、該方法の少なくとも一部が少なくとも１つのプロセッサを備えるコンピューティングデバイスによって実行され、
コンピューティングシステム上のアプリケーションのインストールを識別することと、
前記アプリケーションの前記インストールの識別に応じて、前記コンピューティングシステム上の特権アクセスを有する少なくとも１つのシステムファイルが、前記アプリケーションの前記インストールの前に変更されたと判定することと、
前記システムファイルの変更時刻に対する前記アプリケーションの前記インストールの時刻に少なくとも部分的には基づき、前記アプリケーションが不正であると判定することと、
前記アプリケーションが不正であるとの判定に応じて前記アプリケーションで修復アクションを実行することと、を含む方法。
【請求項２】
複数のコンピューティングシステムを識別することと、
前記複数のコンピューティングシステムそれぞれにおいてシステムファイルの変更後に、前記アプリケーションが前記複数のコンピューティングシステムそれぞれにインストールされたと判定することと、とを更に含み、
前記アプリケーションが不正であると判定することが、前記複数のコンピューティングシステムそれぞれに前記アプリケーションがインストールされたと判定することに更に基づく、請求項１に記載のコンピュータによって実施される方法。
【請求項３】
前記システムファイルが変更されたと判定することが、前記システムファイルに対して正当にシステムを更新することなく前記システムファイルが変更されたと判定することを更に含む、請求項１に記載のコンピュータによって実施される方法。
【請求項４】
前記アプリケーションが不正であると判定することが、前記システムファイルの前記変更時刻に対する前記アプリケーションの活動レベルに更に基づく、請求項１に記載のコンピュータによって実施される方法。
【請求項５】
前記コンピューティングシステム上の前記アプリケーションの前記インストールを識別することが、前記コンピューティングシステム上の前記アプリケーションの更新を識別することを含む、請求項１に記載のコンピュータによって実施される方法。
【請求項６】
前記アプリケーションの前記インストールの前に前記システムファイルが変更されたと判定することが、
前記アプリケーションの前記インストールの前に前記システムファイルの属性を記憶することと、
前記システムファイルの前記属性の現在の状態を識別すること、及び前記属性の記憶後であるが前記アプリケーションの前記インストール前に前記属性が変更されたと判定することと、を含む、請求項１に記載のコンピュータによって実施される方法。
【請求項７】
前記システムファイルの前記変更前に追加アプリケーションがインストールされたと判定することと、
前記システムファイルの前記変更前に前記追加アプリケーションがインストールされたと判定することに少なくとも部分的には基づき、前記追加アプリケーションが前記システムファイルの前記変更及び前記アプリケーションの前記インストールを引き起こしたと判定すること、とを更に含む、請求項１に記載のコンピュータによって実施される方法。
【請求項８】
前記コンピューティングシステム上の特権アクセスを有する前記システムファイルが、前記アプリケーションの前記インストールの前に変更されたと判定することが、アプリケーションのインストール履歴をシステムファイル履歴と比較することを含む、請求項１に記載のコンピュータによって実施される方法。
【請求項９】
不正アプリケーションを検出するためのシステムであって、
コンピューティングシステム上のアプリケーションのインストールを識別するようにプログラムされた識別モジュールと、
前記アプリケーションの前記インストールの識別に応じて、前記コンピューティングシステム上の特権アクセスを有する少なくとも１つのシステムファイルが、前記アプリケーションの前記インストールの前に変更されたと判定するようにプログラムされた変更モジュールと、
前記システムファイルの変更時刻に対する前記アプリケーションの前記インストールの時刻に少なくとも部分的には基づき、前記アプリケーションが不正であると判定するようにプログラムされた判定モジュールと、
前記アプリケーションが不正であるとの判定に応じて前記アプリケーションで修復アクションを実行するようにプログラムされた修復モジュールと、
前記識別モジュール、前記変更モジュール、前記判定モジュール、及び前記修復モジュールを実行するように構成される、少なくとも１つのプロセッサと、を含むシステム。
【請求項１０】
前記変更モジュールが、
複数のコンピューティングシステムの識別と、
前記複数のコンピューティングシステムそれぞれにおいてシステムファイルの変更後に、前記アプリケーションが前記複数のコンピューティングシステムそれぞれにインストールされたとの判定と、を行うように更にプログラムされ、
前記判定モジュールが、前記アプリケーションが前記複数のコンピューティングシステムそれぞれにインストールされたとの判定に更に基づき、前記アプリケーションが不正であると判断するようにプログラムされる、請求項９に記載のシステム。
【請求項１１】
前記変更モジュールが、前記システムファイルに対して正当にシステムを更新することなく前記システムファイルが変更されたと判定することによって、前記システムファイルが変更されたと判定するようにプログラムされる、請求項９に記載のシステム。
【請求項１２】
前記判定モジュールが、前記システムファイルの前記変更時刻に対する前記アプリケーションの活動レベルに更に基づき、前記アプリケーションが不正であると判定するようにプログラムされる、請求項９に記載のシステム。
【請求項１３】
前記識別モジュールが、前記コンピューティングシステム上の前記アプリケーションの更新を識別することによって、前記コンピューティングシステム上の前記アプリケーションの前記インストールを識別されるようにプログラムされる、請求項９に記載のシステム。
【請求項１４】
前記変更モジュールが、
前記アプリケーションの前記インストールの前に前記システムファイルの属性を記憶することと、
前記システムファイルの前記属性の現在の状態を識別し、前記属性の記憶後であるが前記アプリケーションの前記インストール前に前記属性が変更されたと判定することと、によって、前記システムファイルが前記アプリケーションの前記インストールの前に変更されたと判定するようにプログラムされる、請求項９に記載のシステム。
【請求項１５】
前記変更モジュールは、追加のアプリケーションが前記システムファイルに対する前記変更の前にインストールされたと判定するように更にプログラムされ、
前記判定モジュールは、前記システムファイルの前記変更の前に前記追加のアプリケーションがインストールされたとの判定に少なくとも部分的には基づき、前記追加のアプリケーションが前記システムファイルの前記変更及び前記アプリケーションの前記インストールを引き起こしたと判定するように更にプログラムされる、請求項９に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
モバイルコンピューティングの発達によって、消費者は今ではどこからでもインターネットにアクセスすることができる。携帯電話、タブレットコンピュータ、電子書籍端末などのモバイルコンピューティングデバイスは、日常生活のユビキタス部分になった。しかしながら、これらの装置からインターネットにアクセスできることはまた、これらの装置にインターネットの様々な危険ももたらす。モバイルアプリケーションの信用できない供給元は、ダウンロード用に悪意あるアプリケーションを提供する場合がある。更に、一部のモバイルプラットフォーム用のデジタル配信プラットフォーム（つまり「アプリケーションストア」）などの信用できる供給元は、意図せずマルウェアを提供することがあり得る。加えて、悪意あるウェブページは、マルウェアをユーザーのモバイルコンピューティングデバイスにダウンロードすることを可能にし得るウェブブラウザソフトウェアにおける脆弱性を悪用する場合がある。場合によっては、マルウェアは、ユーザーのモバイルコンピューティングデバイスでｒｏｏｔアクセスを得ることができ、ユーザーが無意識のうちにシステムファイルの変更及び／又は不正アプリケーションのインストールを行う。
【０００２】
従来のアンチマルウェア技術は、アプリケーションパッケージファイルで特定の文字列及び／又はバイトコードシーケンスを検索することによって、マルウェアに対抗しようとし得る。しかしながら、これらの従来技術は、モバイルプラットフォームで実施するには費用がかかる場合がある。更に、これらの従来技術は、マルウェアの作者らが、一般に用いられる静的文字列ベースのマルウェア検出機構を回避しようとしてマルウェアを定期的に変更することがあるため、効果がない恐れがある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
したがって、本開示は、マルウェアを検出する追加の改善されたシステム及び方法の必要性を確認する。
【課題を解決するための手段】
【０００４】
以下に詳細に述べるように、本開示は、システムファイルの予期せぬ変更に近接してインストールされた（及び／又は近接してアクティブになった）アプリケーションを識別することによって、不正アプリケーションを検出するシステム及び方法に概ね関連する。
【０００５】
一実施例では、不正アプリケーションを検出するコンピュータによって実施される方法は、１）コンピューティングシステム上のアプリケーションのインストールを識別することと、２）アプリケーションのインストールの識別に応じて、コンピューティングシステム上の特権アクセスを有する少なくとも１つのシステムファイルが、そのアプリケーションのインストールの前に変更されたと判定することと、３）システムファイルの変更時刻に対するアプリケーションのインストール時刻に少なくとも部分的には基づき、そのアプリケーションが不正であると判定することと、４）そのアプリケーションが不正であるとの判定に応じてアプリケーションで修復アクションを実行することと、を含んでもよい。
【０００６】
いくつかの実施例では、コンピューティングシステム上のアプリケーションのインストールを識別することは、コンピューティングシステム上のアプリケーションの更新を識別することを含んでもよい。一実施例では、システムファイルが変更されたと判定することは、１）複数のコンピューティングシステムを識別することと、２）複数のコンピューティングシステムそれぞれにおいてシステムファイルの変更後に、そのアプリケーションが複数のコンピューティングシステムそれぞれにインストールされたと判定することと、を含んでもよい。この実施例では、アプリケーションが不正であると判定することは、複数のコンピューティングシステムそれぞれにアプリケーションがインストールされたと判定することに更に基づいてもよい。
【０００７】
いくつかの実施形態では、システムファイルが変更されたと判定することは、システムファイルに対して正当にシステムを更新することなくシステムファイルが変更されたと判定することを含んでもよい。追加的に又は代替的に、システムファイルが変更されたと判定することは、１）アプリケーションのインストールの前にシステムファイルの属性を記憶することと、２）システムファイルの属性の現在の状態を識別すること、及び属性の記憶後であるがアプリケーションのインストール前に属性が変更されたと判定することと、を含んでもよい。一実施例では、システムファイルが変更されたと判定することは、アプリケーションのインストール履歴をシステムファイル履歴と比較することによって、アプリケーションのインストール前にシステムファイルが変更されたと判定することを含んでもよい。
【０００８】
いくつかの実施例では、コンピュータによって実施される方法は、１）システムファイルの変更前に追加アプリケーションがインストールされたと判定することと、２）システムファイルの変更前に追加アプリケーションがインストールされたと判定することに少なくとも部分的には基づき、追加アプリケーションがシステムファイルの変更及びアプリケーションのインストールを引き起こしたと判定すること、を更に含んでもよい。いくつかの実施形態では、アプリケーションが不正であると判定することは、システムファイルの変更時刻に対するアプリケーションの活動レベルに更に基づいてもよい。
【０００９】
一実施形態では、上記の方法を実施するシステムは、１）コンピューティングシステム上のアプリケーションのインストールを識別するようにプログラムされた識別モジュールと、２）アプリケーションのインストールの識別に応じて、コンピューティングシステム上の特権アクセスを有する少なくとも１つのシステムファイルが、そのアプリケーションのインストールの前に変更されたと判定するようにプログラムされた変更モジュールと、３）システムファイルの変更時刻に対するアプリケーションのインストール時刻に少なくとも部分的には基づき、そのアプリケーションが不正であると判定するようにプログラムされた判定モジュールと、４）そのアプリケーションが不正であるとの判定に応じてアプリケーションで修復アクションを実行するようにプログラムされた修復モジュールと、を含んでもよい。システムはまた、識別モジュール、変更モジュール、判定モジュール、及び修復モジュールを実行するように構成される、少なくとも１つのプロセッサを含んでもよい。
【００１０】
いくつかの実施例では、上述の方法は、コンピュータ可読記憶媒体上のコンピュータ可読命令としてコード化されてもよい。例えば、コンピュータ可読記憶媒体は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されるとき、コンピューティングデバイスに、１）コンピューティングシステム上のアプリケーションのインストールの識別と、２）アプリケーションのインストールの識別に応じて、コンピューティングシステム上の特権アクセスを有する少なくとも１つのシステムファイルが、そのアプリケーションのインストールの前に変更されたとの判定と、３）システムファイルの変更時刻に対するアプリケーションのインストール時刻に少なくとも部分的には基づき、そのアプリケーションが不正であるとの判定と、４）そのアプリケーションが不正であるとの判定に応じてアプリケーションでの修復アクションの実行と、をさせることができる１つ以上のコンピュータ実行可能命令を含んでもよい。
【００１１】
上述の実施形態のいずれかの特徴は、本明細書に記載される一般原理に従って、互いと組み合わせて使用されてもよい。これら及び他の実施形態、特徴、並びに利点は、添付の図面及び特許請求の範囲と併せて以下の発明を実施するための最良の形態を読むことにより、更に十分に理解されるであろう。
【図面の簡単な説明】
【００１２】
以下の図面は、いくつかの例示的な実施形態を示し、本明細書の一部である。以下の説明と共に、これらの図面は、本開示の様々な原理を例証及び説明する。
【図１】不正アプリケーションを検出する、例示的なシステムのブロック図である。
【図２】不正アプリケーションを検出する、例示的なシステムのブロック図である。
【図３】不正アプリケーションを検出する、例示的な方法の流れ図である。
【図４】不正アプリケーションを検出する、例示的なシステムのブロック図である。
【図５】本明細書に記載及び／又は図示される実施形態のうちの１つ以上を実施することができる、例示的なコンピューティングシステムのブロック図である。
【図６】本明細書に記載及び／又は図示される実施形態のうちの１つ以上を実施することができる、例示的なコンピューティングネットワークのブロック図である。
【００１３】
図面を通して、同一の参照文字及び説明は、類似だが必ずしも同一ではない要素を示す。本明細書に記載される例示的な実施形態は、様々な修正及び代替的な形態に影響されやすいが、特定の実施形態が例として図面に示され、本明細書に詳細に記載されるであろう。しかしながら、本明細書に記載される例示的な実施形態は、開示される特定の形態に限定されることを意図しない。むしろ、本開示は、添付の特許請求の範囲の範囲に入る全ての修正、等価物、及び代替物を網羅する。
【発明を実施するための形態】
【００１４】
本開示は、一般に不正アプリケーションを検出するシステム及び方法を対象とする。より詳細に以下に説明されるように、システムファイルの予期せぬ変更に近接してインストールされた（及び／又は近接してアクティブになった）アプリケーションを識別することによって、本明細書に記載のシステム及び方法は、ユーザーに知られずに、並びに／又はマルウェアを識別するための従来のシグニチャベースの手法及び／若しくは発見的手法によって検出されずに、インストールされる恐れがある悪意あるアプリケーションを識別することができる。追加的に又は代替的に、いくつかの実施例では、これらのシステム及び方法は、コンピューティングシステムの悪意あるルーティング及び／又は悪意あるルーティングを可能にし、したがって追加の不正アプリケーションのインストールをもたらす悪意あるアプリケーションを識別してもよい。
【００１５】
以下に、図１、２、及び４を参照して、不正アプリケーションを検出するための例示的なシステムを詳細に説明する。対応するコンピュータによって実施される方法の詳細な説明はまた、図３と併せて提供される。加えて、本明細書に記載される実施形態のうちの１つ以上を実施できる例示的なコンピューティングシステム及びネットワークアーキテクチャについては、図５及び６に関連してそれぞれ詳細に説明する。
【００１６】
図１は、不正アプリケーションを検出する例示的なシステム１００のブロック図である。この図に図示されるように、例示的なシステム１００は、１つ以上のタスクを実行するための１つ以上のモジュール１０２を含んでもよい。例えば、より詳細に以下に説明されるように例示的なシステム１００は、コンピューティングシステム上のアプリケーションのインストールを識別するようにプログラムされた識別モジュール１０４を含んでもよい。例示的なシステム１００はまた、アプリケーションのインストールの識別に応じて、コンピューティングシステム上の特権アクセスを有する少なくとも１つのシステムファイルが、そのアプリケーションのインストールの前に変更されたと判定するようにプログラムされた変更モジュール１０６も含んでもよい。
【００１７】
加えて、またより詳細に以下に説明されるように例示的なシステム１００は、システムファイルの変更時刻に対するアプリケーションのインストール時刻に少なくとも部分的には基づき、そのアプリケーションが不正であると判定するようにプログラムされた判定モジュール１０８を含んでもよい。例示的なシステム１００はまた、そのアプリケーションが不正であるとの判定に応じてアプリケーションで修復アクションを実施するようにプログラムされた修復モジュール１１０も含んでもよい。別個の要素として図示されるが、図１にあるモジュール１０２のうちの１つ以上は、単一のモジュール又はアプリケーションの部分を表し得る。
【００１８】
ある実施形態において、図１のモジュール１０２のうちの１つ以上は、コンピューティングデバイスにより実行されるとき、コンピューティングデバイスに１つ以上のタスクを実行させ得る、１つ以上のソフトウェアアプリケーション又はプログラムを表し得る。例えば、より詳細に以下に説明されるように、モジュール１０２のうちの１つ以上は、図２に図示されるコンピューティングデバイス２０２、図５にあるコンピューティングシステム５１０、及び／又は図６にある例示的なネットワークアーキテクチャ６００の部分など、１つ以上のコンピューティングデバイスに記憶され、そこで作動するように構成される、ソフトウェアモジュールを表し得る。図１のモジュール１０２のうちの１つ以上はまた、１つ以上のタスクを実行するように構成される、１つ以上の専用コンピュータの全て又は部分を表し得る。
【００１９】
図１にある例示的なシステム１００は、多様な方法で実施されてもよい。例えば、例示的なシステム１００の全て又は一部は、図２における例示的なシステム２００の部分を表し得る。図２に示されるように、システム２００は、モジュール１０２のうちの１つ以上でプログラムされたコンピューティングデバイス２０２を含んでもよい。
【００２０】
一実施形態では、図１からモジュール１０２のうちの１つ以上は、コンピューティングデバイス２０２の少なくとも１つのプロセッサによって実行される場合、（例えば、コンピューティングデバイス２０２及び／又はコンピューティングデバイス２０２と通信している１つ以上のコンピューティングデバイスにインストールされた）不正アプリケーションを検出する際にコンピューティングデバイス２０２に役立てることができる。例えば、またより詳細に以下に説明されるように、モジュール１０２のうちの１つ以上は、コンピューティングデバイス２０２に、１）コンピューティングデバイス２０２上のアプリケーション２１０のインストールの識別と、２）アプリケーション２１０のインストールの識別に応じて、コンピューティングデバイス２０２上の特権アクセスを有するシステムファイル２２０がアプリケーション２１０のインストール時刻２１２の前に変更されたとの判定と、３）システムファイル２２０の変更の時刻（例えば、変更時刻２２２）に対するアプリケーション２１０のインストール時刻に少なくとも部分的には基づき、アプリケーション２１０が不正であるとの判定と、４）アプリケーション２１０が不正であるとの判定に応じてアプリケーション２１０での修復アクション２３０の実行と、をさせることができる。
【００２１】
コンピューティングデバイス２０２は、概して、コンピュータで実行可能な命令を読み取ることが可能な任意のタイプ又は形態のコンピューティングデバイスを表す。コンピューティングデバイス２０２の例としては、サーバ、ラップトップ、タブレット、デスクトップ、携帯電話、個人用デジタル補助装置（ＰＤＡ）、マルチメディアプレーヤ、組み込みシステム、これらの１つ以上の組み合わせ、図５の例示的なコンピューティングシステム５１０、又は任意の他の好適なコンピューティングデバイスが挙げられるが、これらに限定されない。
【００２２】
図３は、不正アプリケーションを検出するための例示的なコンピュータによって実施される方法３００の流れ図である。図３に示されるステップは、任意の好適なコンピュータで実行可能なコード及び／又はコンピューティングシステムにより実施されてもよい。一部の実施形態において、図３に示されるステップは、図１のシステム１００の構成要素のうちの１つ以上、図２のシステム２００、図５のコンピューティングシステム５１０、及び／又は図６の例示的なネットワークアーキテクチャ６００の部分により実施されてもよい。
【００２３】
図３に図示されるように、ステップ３０２において本明細書に記載のシステムのうちの１つ以上は、コンピューティングシステム上のアプリケーションのインストールを識別することができる。例えば、ステップ３０２において識別モジュール１０４は、図２におけるコンピューティングデバイス２０２の一部として、コンピューティングデバイス２０２上のアプリケーション２１０のインストールを識別する。
【００２４】
本明細書で使用される場合、「コンピューティングシステム」という表現は、任意のコンピューティングデバイス、ソフトウェアフレームワーク、及び／又はそれらの組み合わせを指してよい。いくつかの実施例では、「コンピューティングシステム」という表現は、モバイルコンピューティングプラットフォームを指す。本明細書で使用される場合、「モバイルコンピューティングプラットフォーム」という表現は、携帯電話、タブレットコンピュータ、電子書籍端末、携帯情報端末などを含む、多様なモバイル機器のいずれかを含んでもよい。いくつかの実施例では、「コンピューティングシステム」という表現は、ユーザー入力時のアプリケーションのインストール及び／又は更新だけをするように構成されたシステムを指してもよい。本明細書で使用される場合、「アプリケーション」という用語は、コンピューティングシステム上で実行することができる任意のアプリケーション、アプリケーションパッケージ、プログラム、モジュール、スクリプト、デーモン、及び／又はプロセスを指してよい。
【００２５】
識別モジュール１０４は、多様な状況のいずれにおいてもアプリケーションのインストールを識別することができる。例えば、識別モジュール１０４は、コンピューティングシステム上にインストールされたアプリケーションを識別することによって（例えば、コンピューティングシステム上のアプリケーションの１つ以上のファイルを識別することによって）、アプリケーションのインストールを識別することができる。いくつかの実施例では、識別モジュール１０４は、アプリケーションの活動を識別することによって（例えば、プロセスリストで実行中のアプリケーションを識別することによって、アプリケーションによって実施されるオペレーションを識別することによって、など）、アプリケーションのインストールを識別することができる。いくつかの実施例では、識別モジュール１０４は、インストールのオペレーションを識別することによって、アプリケーションのインストールを識別することができる。追加的に又は代替的に、識別モジュール１０４は、コンピューティングシステム上のアプリケーションの更新を識別してもよい。例えば、識別モジュール１０４は、コンピューティングシステムのアプリケーションインストール（及び／又は更新）イベントをサブスクライブすることができ、アプリケーションがインストールされている及び／又はインストールされたことを示すイベントサブスクリプションを介してメッセージを受信する。追加的に又は代替的に、識別モジュール１０４は、アプリケーションのインストールを識別するインストールのログを読み取ってもよい。
【００２６】
図３に戻ると、ステップ３０４において本明細書に記載のシステムのうちの１つ以上は、アプリケーションのインストールの識別に応じて、コンピューティングシステム上で特権アクセスを有する少なくとも１つのシステムファイルが、そのアプリケーションのインストールの前に変更されたと判定することができる。例えば、ステップ３０４において変更モジュール１０６は、図２におけるコンピューティングデバイス２０２の一部として、アプリケーション２１０のインストールの識別に応じて、コンピューティングデバイス２０２上で特権アクセスを有するシステムファイル２２０が、アプリケーション２１０のインストール時刻２１２の前に変更されたと判定することができる。
【００２７】
本明細書で使用される場合、「システムファイル」という表現は、オペレーティングシステムの実行時にオペレーティングシステムによって使用される任意のファイルを指してよい。例えば、システムファイルは、ドライバを含んでよい。いくつかの実施例では、「システムファイル」という表現は、オペレーティングシステムのカーネルの一部の、及び／又はオペレーティングシステムのオペレーションに寄与するためにオペレーティングシステムのカーネルと直接インタフェースをとる、ファイルを指してよい。本明細書で使用される場合、「特権アクセス」と言う表現は、不正アプリケーションのインストールを可能にする、容易にする、及び／又は覆い隠すことができる任意のアクセスレベル及び／又は許可を指してよい。例えば、特権アクセスは、ｒｏｏｔ及び／又は管理者アクセスを含んでもよい。いくつかの実施例では、特権アクセスは、アプリケーションのインストール、アプリケーションの（例えば、ユーザー入力及び／又は通知のない）サイレントインストール、並びに／又は無署名の及び／若しくは未検証のアプリケーションのインストールを、可能及び／又は容易にすることができる。いくつかの実施例では、システムファイルは、ＡＮＤＲＯＩＤ（登録商標）オペレーティングシステムの「／ｓｙｓｔｅｍ／ｂｉｎ」ディレクトリ内のファイルを含んでもよい。
【００２８】
いくつかの実施例では、変更モジュール１０６は、アプリケーションが（例えば、システムファイルの変更後に）複数のコンピューティングシステム上にインストールされたと判定することができる。例えば、変更モジュール１０６は、複数のコンピューティングシステムを識別し、次に、複数のファイルシステムのそれぞれにおいてシステムファイルの変更後に、アプリケーションが複数のコンピューティングシステムのそれぞれにインストールされたと判定することができる。より詳細に以下に説明されるように、いくつかの実施例では、本明細書に記載のシステムのうちの１つ以上は、コンピューティングシステム上にインストールされるアプリケーションに更に基づきアプリケーションが不正であると判定することができる。
【００２９】
いくつかの実施例では、変更モジュール１０６は、システムファイルに対して正当にシステムを更新することなくシステムファイルが変更されたと判定することができる。本明細書で使用される場合、「正当なシステム更新」という表現は、１つ以上のシステムファイルに対する、信頼できるオペレーティングシステム及び／又は更新マネージャによって開始、計画、及び／又は推奨される任意の更新を指してよい。変更モジュール１０６は、正当なシステム更新がないことを、任意の好適な方法で判定してよい。例えば、変更モジュール１０６は、システムファイルの変更前からオペレーティングシステムのビルド番号を識別して、システムファイルの変更後にオペレーティングシステムのビルド番号に変更がないと判定することができる。
【００３０】
変更モジュール１０６は、システムファイルが変更されたことを、任意の好適な方法で判定してよい。例えば、変更モジュール１０６は、１）アプリケーションのインストールの前にシステムファイルの属性を記憶し、２）システムファイルの属性の現在の状態を識別して、属性の記憶後であるがアプリケーションのインストール前に属性が変更されたと判定することができる。変更モジュール１０６は、システムファイルが変更されたかどうかを判定するのに役立つシステムファイルの多様な属性をいずれも記憶することができる。例えば、変更モジュール１０６は、システムファイルの変更時刻、システムファイルのファイルサイズ、及び／又はシステムファイルのハッシュ（例えば、ＭＤ５ハッシュ及び／又はＳＨＡハッシュ）を記憶することができる。変更モジュール１０６は、多様なスケジュールのいずれかによって属性を記憶してよい。例えば、変更モジュール１０６は、コンピューティングシステム上で識別されたアプリケーションのインストールのそれぞれに応じて属性を記憶することができる。追加的に又は代替的に、変更モジュール１０６は、定期的に（例えば、毎日１回）属性を記憶してもよい。
【００３１】
いくつかの実施例では、変更モジュール１０６は、アプリケーションのインストール履歴をシステムファイル履歴と比較することによって、アプリケーションのインストール前にシステムファイルが変更されたと判定することができる。例えば、本明細書に記載のシステムのうちの１つ以上は、アプリケーションのインストール時刻のログ及びシステムファイルの変更のログを保持及び／又は識別することができる。したがって、変更モジュール１０６は、そのアプリケーションがシステムファイルの変更後にインストールされた最初のアプリケーションであったと判定することができる。追加的に又は代替的に、変更モジュール１０６は、アプリケーションがシステムファイル変更の所定時間内（例えば、２４時間）にインストールされたと判定してもよい。
【００３２】
いくつかの実施例では、変更モジュール１０６は、追加のアプリケーションがシステムファイルに対する変更の前にインストールされたと判定することもできる。より詳細に以下に説明されるように、本明細書に記載のシステムのうちの１つ以上は、追加のアプリケーションが不正であること（例えば、追加のアプリケーションがシステムファイルに対する変更を誘発したこと）を判定することができる。
【００３３】
図４は、不正アプリケーションを検出する、例示的なシステム４００を図示する。図４に示されるように、例示的なシステム４００は、ネットワーク４０４を介してモバイルコンピューティングデバイス４０６（１）〜（３）と通信するセキュリティサーバ４０２を含んでもよい。
【００３４】
ネットワーク４０４は、概して、通信又はデータ転送を容易にすることが可能な任意の媒体又はアーキテクチャを表す。ネットワーク４０４の例としては、イントラネット、広域ネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、インターネット、電力線通信（ＰＬＣ）、セルラーネットワーク（例えば、グローバルシステムフォーモービルコミュニケーションズ（ＧＳＭ（登録商標））ネットワーク）、図６の例示的なネットワークアーキテクチャ６００などが挙げられるが、これらに限定されない。ネットワーク４０４は、無線又は有線接続を使用して、通信又はデータ転送を容易にし得る。一実施形態では、ネットワーク４０４は、モバイルコンピューティングデバイス４０６（１）〜（３）とセキュリティサーバ４０２との間の通信を容易にし得る。
【００３５】
図４に示されるように、セキュリティサーバ４０２は、モジュール１０２のうちの１つ以上でプログラムされてもよい。追加的に又は代替的に、モバイルコンピューティングデバイス４０６（１）〜（３）は、モジュール１０２のうちの１つ以上でプログラムされてもよい。
【００３６】
実施例として図４を使用すると、変更モジュール１０６は、セキュリティサーバ４０２の一部として、モバイルコンピューティングデバイス４０６（１）からシステムファイル履歴２１０（１）及びインストール履歴２１０（１）、モバイルコンピューティングデバイス４０６（２）からシステムファイル履歴２１０（２）及びインストール履歴２１０（２）、並びにモバイルコンピューティングデバイス４０６（３）からシステムファイル履歴２１０（３）及びインストール履歴２１０（３）を受信することができる。インストール履歴２１０（１）は、（例えば、モバイルコンピューティングデバイス４０６（１）上のアプリケーション２４０及びアプリケーション２４２のインストール時刻を含む）モバイルコンピューティングデバイス４０６（１）上のアプリケーションのインストールを識別することができる。同様に、インストール履歴２１０（２）は、モバイルコンピューティングデバイス４０６（２）上のアプリケーション２４０及び２４２のインストール時刻を識別することができ、インストール履歴２１０（３）は、モバイルコンピューティングデバイス４０６（３）上のアプリケーション２４０及び２４２のインストール時刻を識別することができる。システムファイル履歴２１０（１）、２１０（２）、及び２１０（３）は、システムファイル２３０（１）、２３０（２）、及び２３０（３）に対する変更をそれぞれ識別することができる。例えば、変更モジュール１０６は、インストール履歴２１０（１）、２１０（２）、及び２１０（３）をシステムファイル履歴２１０（１）、２１０（２）、及び２１０（３）とそれぞれ比較することによって、アプリケーション２４２がモバイルコンピューティングデバイス４０６（１）〜（３）のそれぞれに、対応するシステムファイル２３０（１）〜（３）に対する変更直後にインストールされたと判定することができる。いくつかの実施例では、変更モジュール１０６はまた、アプリケーション２４０がモバイルコンピューティングデバイス４０６（１）〜（３）に、対応するシステムファイル２３０（１）〜（３）に対する変更直前にインストールされたと判定することもできる。
【００３７】
図３に戻ると、ステップ３０６において本明細書に記載のシステムのうち１つ以上は、システムファイルの変更時刻に対するアプリケーションのインストール時刻に少なくとも部分的には基づき、アプリケーションが不正であると判定することができる。例えば、ステップ３０６において判定モジュール１０８は、図２におけるコンピューティングデバイス２０２の一部として、システムファイル２２０の変更時刻（例えば、変更時刻２２２）に対するアプリケーション２１０のインストール時刻２１２に少なくとも部分的には基づき、アプリケーション２１０が不正であると判定することができる。
【００３８】
判定モジュール１０８は、多様な方法のいずれかでアプリケーションが不適切であると判定することができる。例えば、判定モジュール１０８は、アプリケーションがシステムファイルの変更後にインストールされた最初のアプリケーションであったとの判定に少なくとも部分的には基づき、アプリケーションが不正であると判定することができる。追加的に又は代替的に、判定モジュール１０８は、システムファイルの変更時刻に対するアプリケーションの活動レベルに少なくとも部分的には基づき、アプリケーションが不正であると判定してもよい。例えば、判定モジュール１０８は、システムファイルの変更の１時間以内に実行するアプリケーションに少なくとも部分的には基づき、アプリケーションが不正であると判定することができる。
【００３９】
前述したように、いくつかの実施例では、本明細書に記載のシステムのうち１つ以上は、複数のファイルシステムのそれぞれでシステムファイルの変更後にアプリケーションが複数のコンピューティングシステムのそれぞれにインストールされたと判定した場合もある。これらの実施例では、判定モジュール１０８は、（例えば、それぞれの場合において、コンピューティングシステム上のシステムファイルの変更後に）複数のコンピューティングシステムのそれぞれにアプリケーションがインストールされたとの判定に少なくとも部分的には基づき、アプリケーションが不正であると判定することができる。いくつかの実施例では、判定モジュール１０８は、複数のコンピューティングシステムの数に基づき、アプリケーションが不正であると判定することができる。追加的に又は代替的に、判定モジュール１０８は、関連するシステムファイルの変更なしにインストールされたアプリケーションを有するコンピューティングシステムに対する複数のコンピューティングシステムの割合に基づき、アプリケーションが不正であると判定してもよい。
【００４０】
いくつかの実施例では、判定モジュール１０８は、多様な追加のデータを使用して、アプリケーションが不正であるかどうかを判定することができる。例えば、判定モジュール１０８は、変更されたシステムファイルを分析することができる（例えば、変更されたシステムファイル（例えば、変更されたシステムファイルによって記憶及び／又は作成されたアプリケーションの名前及び／又は識別子）によるアプリケーションのインストールへの潜在的寄与を識別するために静的及び／又は動的分析を実施する。いくつかの実施例では、判定モジュール１０８は機械学習方法を使用して、コンピューティングシステムからの利用可能なデータに基づく妥当性によりアプリケーションを分類することができる。
【００４１】
前述したように、いくつかの実施例では、本明細書に記載のシステムのうち１つ以上はまた、システムファイルの変更の前に追加のアプリケーションがインストールされたと判定することができる。これらの実施例では、判定モジュール１０８はまた、システムファイルの変更の前に追加のアプリケーションがインストールされたとの判定に少なくとも部分的には基づき、追加のアプリケーションがシステムファイルの変更及びアプリケーションのインストールを引き起こしたと判定することができる。例えば、追加のアプリケーションは、システムファイルを変更し、したがってアプリケーションをインストールするためにｒｏｏｔエクスプロイトを使用した恐れがある。
【００４２】
図３に戻ると、ステップ３０８において本明細書に記載のシステムのうち１つ以上は、アプリケーションが不正であるとの判定に応じて、アプリケーションで修復アクションを実行することができる。例えば、ステップ３０８において修復モジュール１１０は、図２におけるコンピューティングデバイス２０２の一部として、アプリケーション２１０が不正であるとの判定に応じて、アプリケーション２１０で修復アクション２３０を実行することができる。
【００４３】
修復モジュール１１０は、アプリケーションで多様な修復アクションのいずれかを実行してよい。例えば、修復モジュール１１０は、アプリケーションのアンインストール、削除、及び／又は検疫を行ってもよい。いくつかの実施例では、修復モジュール１１０は、アプリケーションを不正アプリケーションとして分類してもよい（例えば、アプリケーションのフィンガープリントを作成する）。追加的に又は代替的に、修復モジュール１１０は、（例えば、将来的に不正アプリケーションの変異形をより容易に識別するために）システムファイルとアプリケーションとの間の関連性を記憶してもよい。いくつかの実施例では、修復モジュール１１０は、アプリケーションで実施される（例えば、アプリケーションを不正な状態及び／又はバージョンにさせる）更新を無効にしてもよい。
【００４４】
上述のように、システムファイルの予期せぬ変更に近接してインストールされた（及び／又は近接してアクティブになった）アプリケーションを識別することによって、本明細書に記載のシステム及び方法は、ユーザーに知られずに、並びに／又はマルウェアを識別するための従来のシグニチャベースの手法及び／若しくは発見的手法によって検出されずに、インストールされる恐れがある悪意あるアプリケーションを識別することができる。追加的に又は代替的に、いくつかの実施例では、これらのシステム及び方法は、コンピューティングシステムの悪意あるルーティング及び／又は悪意あるルーティングを可能にし、したがって追加の不正アプリケーションのインストールをもたらす悪意あるアプリケーションを識別してもよい。
【００４５】
図５は、本明細書に説明及び／又は例解される実施形態のうちの１つ以上を実施できる、例示的なコンピューティングシステム５１０のブロック図である。例えば、コンピューティングシステム５１０の全て又は一部は、それぞれ単独で、又は他の要素と組み合わせて、本明細書に記載される識別、判定、記憶、及び実施のステップのうちの１つ以上を実施し得る、及び／又は実施するための手段であり得る。コンピューティングシステム５１０の全て又は一部はまた、本明細書に記載及び／若しくは図示される任意の他のステップ、方法、又はプロセスを実行し、及び／又はそれらを実行するための手段であり得る。
【００４６】
コンピューティングシステム５１０は、コンピュータ可読命令を実行することができるあらゆるシングル又はマルチプロセッサのコンピューティングデバイスを広く表す。コンピューティングシステム５１０の例としては、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散型コンピューティングシステム、ハンドヘルドデバイス、又は任意の他のコンピューティングシステム若しくはデバイスが挙げられるが、これらに限定されない。その最も基本的な構成では、コンピューティングシステム５１０は、少なくとも１つのプロセッサ５１４と、システムメモリ５１６と、を含むことができる。
【００４７】
プロセッサ５１４は一般に、データを処理するか、又は命令を解釈及び実行することができるあらゆるタイプ又は形態の処理ユニットを表す。特定の実施形態では、プロセッサ５１４は、ソフトウェアアプリケーション又はモジュールから命令を受信することができる。これらの命令は、本明細書に記載及び／又は図示される例示的な実施形態のうちの１つ以上の機能をプロセッサ５１４に実行させることができる。
【００４８】
システムメモリ５１６は一般に、データ及び／又は他のコンピュータ可読命令を記憶することができるあらゆるタイプ又は形態の揮発性又は不揮発性記憶デバイス若しくは媒体を表す。システムメモリ５１６の例としては、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、フラッシュメモリ、又は任意の他の好適なメモリデバイスが挙げられるが、これらに限定されない。必須ではないが、特定の実施形態では、コンピューティングシステム５１０は、揮発性メモリユニット（例えば、システムメモリ５１６など）及び不揮発性記憶デバイス（以下に詳細に記載されるように、例えば、一次記憶デバイス５３２など）の両方を含むことができる。一実施例において、図１からのモジュール１０２のうちの１つ以上は、システムメモリ５１６にロードされ得る。
【００４９】
特定の実施形態では、例示的なコンピューティングシステム５１０はまた、プロセッサ５１４及びシステムメモリ５１６に加えて、１つ以上の構成要素又は要素を含むことができる。例えば、図５に示されるように、コンピューティングシステム５１０は、メモリコントローラ５１８と、入力／出力（Ｉ／Ｏ）コントローラ５２０と、通信インタフェース５２２とを含むことができ、これらの各々は、通信基盤５１２を介して相互接続され得る。通信基盤５１２は一般に、コンピューティングデバイスのうちの１つ以上の構成要素間の通信を容易にすることができるあらゆるタイプ又は形態の基盤を表す。通信インフラストラクチャ５１２の例としては、非限定的に、通信バス（産業標準構成（ＩＳＡ）、周辺装置相互接続（ＰＣＩ）、ＰＣＩエクスプレス（ＰＣＩｅ）、又は類似のバスなど）及びネットワークが挙げられる。
【００５０】
メモリコントローラ５１８は一般に、メモリ若しくはデータを処理するか、又はコンピューティングシステム５１０のうちの１つ以上の構成要素間の通信を制御することができるあらゆるタイプ又は形態のデバイスを表す。例えば、特定の実施形態では、メモリコントローラ５１８は、通信基盤５１２を介してプロセッサ５１４と、システムメモリ５１６と、Ｉ／Ｏコントローラ５２０との間の通信を制御することができる。
【００５１】
Ｉ／Ｏコントローラ５２０は一般に、コンピューティングデバイスの入力及び出力関数を調整及び／又は制御することができるあらゆるタイプ又は形態のモジュールを表す。例えば、特定の実施形態では、Ｉ／Ｏコントローラ５２０は、プロセッサ５１４、システムメモリ５１６、通信インタフェース５２２、ディスプレイアダプタ５２６、入力インタフェース５３０、及び記憶インタフェース５３４など、コンピューティングシステム５１０のうちの１つ以上の要素間のデータの転送を制御又は容易にすることができる。
【００５２】
通信インタフェース５２２は、例示的なコンピューティングシステム５１０と１つ以上の追加のデバイスとの間の通信を容易にすることができるあらゆるタイプ又は形態の通信デバイス又はアダプタを広く表す。例えば、特定の実施形態では、通信インタフェース５２２は、コンピューティングシステム５１０と追加のコンピューティングシステムを含む私的又は公的ネットワークとの間の通信を容易にすることができる。通信インタフェース５２２の例としては、有線ネットワークインタフェース（ネットワークインタフェースカードなど）、無線ネットワークインタフェース（無線ネットワークインタフェースカードなど）、モデム、及び任意の他の好適なインタフェースが挙げられるが、これらに限定されない。少なくとも１つの実施形態では、通信インタフェース５２２は、インターネットなどのネットワークへの直接リンクを介してリモートサーバへの直接接続を提供することができる。通信インタフェース５２２はまた、例えば、ローカルエリアネットワーク（イーサネットネットワークなど（「イーサネット」は登録商標、以下同じ））、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、携帯電話接続、衛星データ接続、又は任意の他の好適な接続を介するかかる接続を間接的に提供することができる。
【００５３】
特定の実施形態では、通信インタフェース５２２はまた、外部バス又は通信チャネルを介して、コンピューティングシステム５１０と１つ以上の追加のネットワーク又は記憶デバイスとの間の通信を容易にするように構成されるホストアダプタを表すことができる。ホストアダプタの例としては、非限定的に、小型コンピュータシステムインタフェース（ＳＣＳＩ）ホストアダプタ、ユニバーサルシリアルバス（ＵＳＢ）ホストアダプタ、米国電気電子学会（ＩＥＥＥ）１３９４ホストアダプタ、アドバンストテクノロジーアタッチメント（ＡＴＡ）ホストアダプタ、パラレルＡＴＡ（ＰＡＴＡ）ホストアダプタ、シリアルＡＴＡ（ＳＡＴＡ）ホストアダプタ、外部ＳＡＴＡ（ｅＳＡＴＡ）ホストアダプタ、ファイバーチャネルインタフェースアダプタ、イーサネットアダプタなどが挙げられる。通信インタフェース５２２はまた、コンピューティングシステム５１０が分散型又はリモートコンピューティングに関与するのを可能にすることができる。例えば、通信インタフェース５２２は、リモートデバイスから命令を受信し、実行するためにリモートデバイスに命令を送信することができる。
【００５４】
図５に示されるように、コンピューティングシステム５１０はまた、ディスプレイアダプタ５２６を介して通信基盤５１２に連結された少なくとも１つの表示デバイス５２４を含むことができる。表示デバイス５２４は一般に、ディスプレイアダプタ５２６によって転送された情報を視覚的に表示することができるあらゆるタイプ又は形態のデバイスを表す。同様に、ディスプレイアダプタ５２６は一般に、表示デバイス５２４に表示するために通信基盤５１２から（又は当該技術分野において既知であるようにフレームバッファから）グラフィックス、テキスト、及び他のデータを転送するように構成されるあらゆるタイプ又は形態のデバイスを表す。
【００５５】
図５に示されるように、例示的なコンピューティングシステム５１０はまた、入力インタフェース５３０を介して通信基盤５１２に連結された少なくとも１つの入力デバイス５２８を含むことができる。入力デバイス５２８は一般に、コンピュータ又は人間のいずれかが生成した入力を例示的なコンピューティングシステム５１０に提供することができるあらゆるタイプ又は形態の入力デバイスを表す。入力デバイス５２８の例としては、キーボード、ポインティングデバイス、音声認識デバイス、又は任意の他の入力デバイスが挙げられるが、これらに限定されない。
【００５６】
図５に示されるように、例示的なコンピューティングシステム５１０はまた、記憶インタフェース５３４を介して通信基盤５１２に連結された一次記憶デバイス５３２と、バックアップ記憶デバイス５３３と、を含むことができる。記憶デバイス５３２及び５３３は一般に、データ及び／又は他のコンピュータ可読命令を記憶することができるあらゆるタイプ又は形態の記憶デバイス若しくは媒体を表す。例えば、記憶デバイス５３２及び５３３は、磁気ディスクドライブ（例えば、いわゆるハードドライブ）、ソリッドステートドライブ、フロッピーディスクドライブ（「フロッピー」は登録商標、以下同じ）、磁気テープドライブ、光ディスクドライブ、フラッシュドライブなどであってもよい。記憶インタフェース５３４は一般に、記憶デバイス５３２及び５３３とコンピューティングシステム５１０の他の構成要素との間のデータを転送するためのあらゆるタイプ又は形態のインタフェース又はデバイスを表す。
【００５７】
特定の実施形態では、記憶デバイス５３２及び５３３は、コンピュータソフトウェア、データ、又は他のコンピュータ可読情報を記憶するように構成される取り外し可能な記憶ユニットから読み出す、及び／又はそれに書き込むように構成されてもよい。好適な取り外し可能な記憶ユニットの例としては、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイスなどが挙げられるが、これらに限定されない。記憶デバイス５３２及び５３３はまた、コンピュータソフトウェア、データ、又は他のコンピュータ可読命令がコンピューティングシステム５１０にロードされるのを可能にするために他の類似の構造又はデバイスを含むことができる。例えば、記憶デバイス５３２及び５３３は、ソフトウェア、データ、又は他のコンピュータ可読情報を読み出す、及び書き込むように構成されてもよい。記憶デバイス５３２及び５３３はまた、コンピューティングシステム５１０の一部であってもよく、又は他のインタフェースシステムを介してアクセスされた別個のデバイスであってもよい。
【００５８】
多くの他のデバイス又はサブシステムが、コンピューティングシステム５１０に接続されてもよい。逆に、図５に示される構成要素及びデバイスの全ては、本明細書に記載及び／又は図示される実施形態を実践するために存在する必要はない。上記で言及されたデバイス及びサブシステムはまた、図５に示されるものとは異なる手法で相互接続されてもよい。コンピューティングシステム５１０はまた、任意の数のソフトウェア、ファームウェア、及び／又はハードウェア構成を用いることができる。例えば、本明細書に開示される例示的な実施形態のうちの１つ以上は、コンピュータ可読記憶媒体にコンピュータプログラム（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御論理とも称される）としてコード化されてもよい。「コンピュータ可読記憶媒体」という表現は一般に、コンピュータ可読命令を記憶又は実施することができるあらゆる形態のデバイス、キャリア、又は媒体を指す。コンピュータ可読記憶媒体の例としては、搬送波などの伝送型媒体、並びに磁気記憶媒体（例えば、ハードディスクドライブ及びフロッピーディスク）、光記憶媒体（例えば、コンパクトディスク（ＣＤ）又はディジタルビデオディスク（ＤＶＤ））、電子記憶媒体（例えば、ソリッドステートドライブ及びフラッシュメディア）、及び他の分散システムなどの非一時的型媒体が挙げられるが、これらに限定されない。
【００５９】
コンピュータプログラムを含むコンピュータ可読記憶媒体は、コンピューティングシステム５１０にロードされてもよい。次いで、コンピュータ可読記憶媒体に記憶されたコンピュータプログラムの全て又は一部は、システムメモリ５１６並びに／又は記憶デバイス５３２及び５３３の様々な部分の中に記憶されてもよい。プロセッサ５１４によって実行されるとき、コンピューティングシステム５１０にロードされたコンピュータプログラムは、プロセッサ５１４を実行させ、並びに／又は本明細書に記載及び／若しくは図示される例示的な実施形態のうちの１つ以上の機能を実行するための手段であってもよい。追加的に又は代替的に、本明細書に記載及び／又は図示される例示的な実施形態のうちの１つ以上は、ファームウェア及び／又はハードウェアに実装されてもよい。例えば、コンピューティングシステム５１０は、本明細書に開示される例示的な実施形態のうちの１つ以上を実装するように適合された特定用途向け集積回路（ＡＳＩＣ）として構成されてもよい。
【００６０】
図６は、クライアントシステム６１０、６２０、及び６３０、並びにサーバ６４０及び６４５がネットワーク６５０に連結され得る、例示的なネットワークアーキテクチャ６００のブロック図である。上に詳述されるように、ネットワークアーキテクチャ６００の全て又は一部は、単独で、又は他の要素と組み合わせて、本明細書に開示される識別、判定、記憶、及び実施のステップを実施し得る、及び／又は実施するための手段であり得る。ネットワークアーキテクチャ６００の全て又は一部はまた、本開示に記載される他のステップ及び特徴を実行するための手段を実行するために使用され、並びに／又はそれらを実行するための手段であり得る。
【００６１】
クライアントシステム６１０、６２０、及び６３０は一般に、図５の例示的なコンピューティングシステム５１０など、あらゆるタイプ又は形態のコンピューティングデバイス又はシステムを表す。同様に、サーバ６４０及び６４５は一般に、様々なデータベースサービスを提供する、及び／又は特定のソフトウェアアプリケーションを実行するように構成されるアプリケーションサーバ又はデータベースサーバなど、コンピューティングデバイス又はシステムを表す。ネットワーク６５０は一般に、例えば、イントラネット、ＷＡＮ、ＬＡＮ、ＰＡＮ、又はインターネットを含む任意の電気通信又はコンピュータネットワークを表す。一実施例では、クライアントシステム６１０、６２０、及び／若しくは６３０、並びに／又はサーバ６４０及び／若しくは６４５は、図１のシステム１００の全て又は一部を含むことができる。
【００６２】
図６に示されるように、１つ以上の記憶デバイス６６０（１）〜（Ｎ）は、サーバ６４０に直接接続されてもよい。同様に、１つ以上の記憶デバイス６７０（１）〜（Ｎ）は、サーバ６４５に直接接続されてもよい。記憶デバイス６６０（１）〜（Ｎ）及び記憶デバイス６７０（１）〜（Ｎ）は一般に、データ及び／又は他のコンピュータ可読命令を記憶することができるあらゆるタイプ又は形態の記憶デバイス又は媒体を表す。特定の実施形態では、記憶デバイス６６０（１）〜（Ｎ）及び記憶デバイス６７０（１）〜（Ｎ）は、ネットワークファイルシステム（ＮＦＳ）、サーバメッセージブロック（ＳＭＢ）、又は共通インターネットファイルシステム（ＣＩＦＳ）など、様々なプロトコルを使用して、サーバ６４０及び６４５と通信するように構成された、ネットワーク接続ストレージ（ＮＡＳ）デバイスを意味してもよい。
【００６３】
サーバ６４０及び６４５はまた、記憶エリアネットワーク（ＳＡＮ）ファブリック６８０に接続されてもよい。ＳＡＮファブリック６８０は一般に、複数の記憶デバイス間の通信を容易にすることができるあらゆるタイプ又は形態のコンピュータネットワーク又はアーキテクチャを表す。ＳＡＮファブリック６８０は、サーバ６４０及び６４５、複数の記憶デバイス６９０（１）〜（Ｎ）、並びに／又はインテリジェント記憶アレイ６９５間の通信を容易にすることができる。ＳＡＮファブリック６８０はまた、デバイス６９０（１）〜（Ｎ）及びアレイ６９５がクライアントシステム６１０、６２０、及び６３０へのローカル接続のデバイスとして現れるように、ネットワーク６５０並びにサーバ６４０及び６４５を介して、クライアントシステム６１０、６２０、及び６３０、記憶デバイス６９０（１）〜（Ｎ）、並びに／又はインテリジェント記憶アレイ６９５間の通信を容易にすることができる。記憶デバイス６６０（１）〜（Ｎ）及び記憶デバイス６７０（１）〜（Ｎ）と同様に、記憶デバイス６９０（１）〜（Ｎ）及びインテリジェント記憶アレイ６９５は一般に、データ及び／又は他のコンピュータ可読命令を記憶することができるあらゆるタイプ又は形態の記憶デバイス又は媒体を表す。
【００６４】
特定の実施形態では、図５の例示的なコンピューティングシステム５１０を参照すると、図５の通信インタフェース５２２などの通信インタフェースは、各クライアントシステム６１０、６２０、及び６３０、並びにネットワーク６５０間の接続性を提供するために使用されてもよい。クライアントシステム６１０、６２０、及び６３０は、例えば、ウェブブラウザ又は他のクライアントソフトウェアを使用して、サーバ６４０又は６４５に関する情報にアクセスすることができてもよい。このようなソフトウェアは、クライアントシステム６１０、６２０、及び６３０がサーバ６４０、サーバ６４５、記憶デバイス６６０（１）〜（Ｎ）、記憶デバイス６７０（１）〜（Ｎ）、記憶デバイス６９０（１）〜（Ｎ）、又はインテリジェント記憶アレイ６９５によってホストされたデータにアクセスするのを可能にすることができる。図６は、データを交換するためのネットワーク（インターネットなど）の使用を示すが、本明細書に記載され、及び／又は図示される実施形態は、インターネット又は任意の特定のネットワークベースの環境に限定されない。
【００６５】
少なくとも１つの実施形態では、本明細書に開示される例示的な実施形態のうちの１つ以上の全て又は一部は、コンピュータプログラムとしてコード化され、サーバ６４０、サーバ６４５、記憶デバイス６６０（１）〜（Ｎ）、記憶デバイス６７０（１）〜（Ｎ）、記憶デバイス６９０（１）〜（Ｎ）、インテリジェント記憶アレイ６９５、又はこれらの任意の組み合わせにロードされ、それらによって実行されてもよい。本明細書に開示される例示的な実施形態のうちの１つ以上の全て又は一部はまた、サーバ６４０内に記憶され、サーバ６４５によって実行され、かつネットワーク６５０を介してクライアントシステム６１０、６２０、及び６３０に配布されたコンピュータプログラムとしてコード化されてもよい。
【００６６】
上で詳述されたように、コンピューティングシステム５１０及び／又はネットワークアーキテクチャ６００の１つ以上の構成要素は、それぞれ単独で、又は他の要素と組み合わせて、不正アプリケーションを検出する例示的な方法の１つ以上のステップを実施し得る、及び／又は実施するための手段であり得る。
【００６７】
先述の開示は、特定のブロック図、流れ図、及び実施例を使用して様々な実施形態を説明するが、本明細書に記載される及び／又は図示される各ブロック図の構成要素、流れ図のステップ、動作、及び／又は構成要素は、個別に及び／又は集合的に、広範なハードウェア、ソフトウェア、又はファームウェア（又はそれらの任意の組み合わせ）構成を使用して、実装され得る。加えて、他の構成要素内に含まれた構成要素のあらゆる開示は、多くの他のアーキテクチャが同じ機能を達成するために実装され得ることにより、本質的に例示的であると考慮されるべきである。
【００６８】
一部の実施例において、図１の例示的なシステム１００の全ての又は一部は、クラウドコンピューティング又はネットワークに基づく環境の部分を表し得る。クラウドコンピューティング環境は、インターネットを介して様々なサービス及びアプリケーションを提供することができる。これらのクラウドに基づくサービス（例えば、ＳａａＳ（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）、ＰａａＳ（Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）、ＩａａＳ（Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）など）は、ウェブブラウザ又は他のリモートインタフェースを通じてアクセス可能であり得る。本明細書に記載される様々な機能は、リモートデスクトップ環境又は他の任意のクラウドベースのコンピューティング環境を通して提供されてもよい。
【００６９】
様々な実施形態において、図１の例示的なシステム１００の全ての又は一部は、クラウドベースのコンピューティング環境内でマルチテナント機能を容易にし得る。換言すれば、本明細書に記載のソフトウェアモジュールは、本明細書に記載される機能の１つ以上のマルチテナント機能を容易にするようにコンピューティングシステム（例えば、サーバ）を構成し得る。例えば、本明細書に記載のソフトウェアモジュールの１つ以上は、２つ以上のクライアント（例えば、顧客）がサーバで実行中のアプリケーションを共有できるように、サーバをプログラムし得る。この方法でプログラムされたサーバは、アプリケーション、オペレーティングシステム、処理システム、及び／又はストレージシステムを複数の顧客（例えば、テナント）の間で共有することができる。本明細書に記載のモジュールの１つ以上はまた、ある顧客が別の顧客のデータ及び／又は構成情報にアクセスできないように顧客別にマルチテナントアプリケーションのデータ及び／又は構成情報を分割することもできる。
【００７０】
様々な実施形態によって、図１の例示的なシステム１００の全ての又は一部は、仮想環境内で実装され得る。例えば、本明細書に記載のモジュール及び／又はデータは、仮想マシン内で常駐及び／又は実行してもよい。本明細書で使用される場合、「仮想マシン」という表現は、一般に仮想マシンマネージャ（例えば、ハイパーバイザ）によってコンピューティングハードウェアから抽出された任意のオペレーティングシステム環境を指す。追加的に又は代替的に、本明細書に記載のモジュール及び／又はデータは、仮想化層内で常駐及び／又は実行してもよい。本明細書で使用される場合、「仮想化層」という表現は、一般にオペレーティングシステム環境を覆う、及び／又はオペレーティングシステム環境から抽出された任意のデータ層及び／又はアプリケーション層を指す。仮想化層は、根底にあるベースオペレーティングシステムの一部であるかのように仮想化層を表現するソフトウェア仮想化ソリューション（例えば、ファイルシステムフィルタ）によって管理され得る。例えば、ソフトウェア仮想化ソリューションは、当初ベースファイルシステム内の場所に向けられた、及び／又は仮想化層内の場所に登録された要求をリダイレクトすることができる。
【００７１】
本明細書に記載される及び／又は図示されるプロセスパラメータ及びステップの順序は、単なる例として提供され、所望に応じて変更することができる。例えば、本明細書に図示される及び／又は記載されるステップが特定の順序で示される又は考察されるが、これらのステップは、必ずしも図示される又は考察される順序で実施される必要はない。本明細書に記載及び／又は図示される様々な例示的な方法はまた、本明細書に記載及び／又は図示されるステップのうちの１つ以上を省略するか、又は開示されるものに加えて追加のステップを含むことができる。
【００７２】
様々な実施形態は、完全に機能的なコンピューティングシステムとの関連で本明細書に記載及び／又は図示されているが、これらの例示的な実施形態のうちの１つ以上は、実際に配布を実行するために使用される特定のタイプのコンピュータ可読記憶媒体にかかわらず、様々な形態でプログラム製品として配布されてもよい。本明細書に開示の実施形態はまた、一定のタスクを実行するソフトウェアモジュールを使用して実装され得る。これらのソフトウェアモジュールは、スクリプト、バッチ、又はコンピュータ可読記憶媒体上若しくはコンピューティングシステムに記憶され得る、他の実行可能なファイルを含んでもよい。いくつかの実施形態では、これらのソフトウェアモジュールは、本明細書に開示される例示的な実施形態のうちの１つ以上を実行するようにコンピューティングシステムを構成することができる。
【００７３】
加えて、本明細書に記載されるモジュールのうちの１つ以上は、データ、物理的デバイス、及び／又は物理的デバイスの表現をある形態から別の形態に変換することができる。例えば、本明細書に詳述されたモジュールの１つ以上は、変換対象のシステムファイルの変更及びアプリケーションのインストールについてデータを受信し、データを変換し、変換の結果を使用してアプリケーションを不正として分類し、変換の結果をマルウェアデータベースに格納することができる。追加的に又は代替的に、本明細書に詳述されたモジュールの１つ以上は、コンピューティングデバイスでの実行、コンピューティングデバイスでのデータの記憶、及び／又は別の方法でのコンピューティングデバイスとの相互作用によって、プロセッサ、揮発性メモリ、不揮発性メモリ、及び／又は物理的コンピューティングデバイスの任意の他の一部をある形態から別の形態に変換することができる。
【００７４】
前述の説明は、当業者が本明細書に開示される例示的な実施形態の様々な態様を最良に利用するのを可能にするために提供されている。この例示的な説明は、包括的であるか、又は開示されるあらゆる正確な形態に限定されることを意図しない。本開示の趣旨及び範囲から逸脱することなく、多くの修正及び変形が可能である。本明細書に開示される実施形態は、あらゆる点で例示的であり、限定的ではないと見なされるべきである。本開示の範囲を決定する際に添付の特許請求の範囲及びその等価物を参照するべきである。
【００７５】
特に記載されない限り、「１つ（a）」又は「１つ（an）」という用語は本明細書及び特許請求の範囲に使用される際、「少なくとも１つの（at least one of）」を意味すると解釈されるべきである。加えて、使いやすさのために、「含む（including）」及び「有する（having）」という語は、本明細書及び特許請求の範囲に使用される際、語「含む、備える（comprising）」と同義的であり、それと同じ意味を有する。
【図１】
0005916956.tif 000002
【図２】
0005916956.tif 000003
【図３】
0005916956.tif 000004
【図４】
0005916956.tif 000005
【図５】
0005916956.tif 000006
【図６】
0005916956.tif 000007