(57)【特許請求の範囲】
【請求項１】
プログラムのインストールを制御する方法であって、前記方法は、
ハードウェアプロセッサによって、コンピュータへの未知のプログラムのインストールを検出する工程と、
前記ハードウェアプロセッサによって、前記未知のプログラムのインストールを停止する工程と、
前記ハードウェアプロセッサによって、安全な環境で前記未知のプログラムを実行する工程と、
前記ハードウェアプロセッサによって、前記未知のプログラムの望ましくないアクションを検出する工程と、
前記ハードウェアプロセッサによって、前記プログラムにおける前記検出された望ましくないアクションに基づいて、前記未知のプログラムが望ましくないかどうかを判断する工程と、
前記未知のプログラムが望ましくないと判断された場合、前記コンピュータに前記望ましくないプログラムのインストールを許可又は禁止するかどうかの選択をユーザに示す工程と、
前記未知のプログラムが望ましくないと判断されなかった場合、前記ハードウェアプロセッサによって、前記コンピュータに前記未知のプログラムのインストールを許可する工程とを含み、
前記望ましくないアクションは、
ユーザが知ることなく前記プログラムによって実行されるアクション、
前記コンピュータにあるユーザの個人データへのアクセスするアクション、及び
前記コンピュータの他のプログラム又はオペレーティング・システムでのユーザ作業に影響を与えるアクション、
の少なくとも1つのアクションを含み、
前記未知のプログラムが望ましくないものであるかを判断する工程は、
前記検出された望ましくないアクションに対して数値的重みを割り当てる工程をさらに含み、
ユーザが知ることなく実行される望ましくないアクションは、他のプログラム又はオペレーティング・システムでのユーザ作業に影響を与える、他の望ましくないアクションよりも大きい数値的重みを有する、プログラムのインストールを制御する方法。
【請求項２】
前記未知のプログラムが望ましくないものであるかを判断する工程は、
前記検出された望ましくないアクションに対して前記数値的重みを増す工程と、
全ての検出された望ましくないアクションの前記数値的重みの合計が、所定の閾値を超えた場合、前記未知のプログラムが望ましくないと特定される工程とをさらに備える、
請求項1に記載の方法。
【請求項３】
前記方法は、
前記コンピュータに前記未知のプログラムのインストールを許可又は禁止するかについて、ユーザの選択を保存する工程と、
前記ユーザのコンピュータに、前記プログラムと同じプログラムのインストール又は実行のその後の試みがあった場合、前記ユーザに再度示すことなく、前記保存されたユーザの選択を自動的に実行する工程とをさらに含む、
請求項1に記載の方法。
【請求項４】
前記コンピュータに前記望ましくないプログラムのインストールを許可する工程は、
前記プログラムにおける1つ又は複数の検出された望ましくないアクションの実行を防止する工程をさらに含む、
請求項1に記載の方法。
【請求項５】
前記プログラムにおける1つ又は複数の検出された望ましくないアクションの実行を防止する工程は、
アクティブである状態の望ましくないGUI要素の存在について、未知のプログラムをインストールするプログラムインストーラーのグラフィカル・ユーザ・インターフェース（GUI）を解析する工程と、
前記プログラムインストーラーの前記検出された望ましくないGUI要素をアクティブでない状態にする工程とをさらに含む、
請求項4に記載の方法。
【請求項６】
望ましくないアクションは、
ネットワーク設定の変更、ブラウザ設定の変更、前記コンピュータのデスクトップでのアイコンの作成、ポップアップ・ウィンドウのアクティブ化、のうち少なくとも1つをさらに含む、
請求項１に記載の方法。
【請求項７】
プログラムのインストールを制御するシステムであって、
前記システムは、
コンピュータへの未知のプログラムのインストールを検出し、
前記未知のプログラムのインストールを停止し、
安全な環境で、前記未知のプログラムを実行し、
前記未知のプログラムの望ましくないアクションを検出し、
前記プログラムにおける前記検出された望ましくないアクションに基づいて、前記未知のプログラムが、望ましくないものであるかどうかを判断し、
前記未知のプログラムが、望ましくないと判断された場合、前記コンピュータに前記望ましくないプログラムのインストールを許可又は禁止するかどうかについてユーザが選択できるように示し、
前記未知のプログラムが、望ましくないと判断されなかった場合、前記コンピュータに前記未知のプログラムのインストールを許可する、ように構成されたハードウェアプロセッサを含み、
前記望ましくないアクションは、
ユーザが知ることなく、前記プログラムによって実行されるアクション、前記コンピュータにあるユーザの個人データへのアクセスするアクション、及び、前記コンピュータの他のプログラムまたはオペレーティング・システムでのユーザの作業に影響を与えるアクション、
の少なくとも1つのアクションを含み、
前記未知のプログラムが望ましくないかどうかを判断することは、
前記検出された望ましくないアクションに数値的重みを割り当てることをさらに含み、
ユーザが知ることなく実行される望ましくないアクションは、他のプログラム又はオペレーティング・システムでのユーザの作業に影響を与える他の望ましくないアクションよりも大きい数値的重みを有する、プログラムのインストールを制御するシステム。
【請求項８】
前記未知のプログラムが望ましいかどうかを判断することは、
前記検出された望ましくないアクションの前記数値的重みを増すことと、
全ての検出された望ましくないアクションの前記数値的重みの合計が、所定の閾値を超えた場合、前記未知のプログラムが望ましくないものであると特定されることとを含む、
請求項7に記載のシステム。
【請求項９】
前記コンピュータに前記未知のプログラムのインストールを許可又は禁止するかどうかにおける前記ユーザの選択を保存し、
前記ユーザのコンピュータに前記プログラムと同じプログラムのインストール又は実行のその後の試みがあった場合、前記ユーザに再度示すことなく、前記保存されたユーザの選択を自動的に実行する、
請求項7に記載のシステム。
【請求項１０】
前記コンピュータに前記望ましくないプログラムのインストールを許可することは、前記プログラムにおける1つ又は複数の検出された望ましくないアクションの実行を防止する、
請求項7に記載のシステム。
【請求項１１】
前記プログラムにおける1つ又は複数の検出された望ましくないアクションの実行を防止することは、
アクティブである状態の望ましくないGUI要素の存在のために、未知のプログラムをインストールするプログラムインストーラーのグラフィカル・ユーザ・インターフェース（GUI）を解析することと、
前記プログラムインストーラーの前記検出された望ましくないGUI要素をアクティブでない状態にすることとを含む、
請求項10に記載のシステム。
【請求項１２】
望ましくないアクションは、
ネットワーク設定の変更、ブラウザ設定の変更、前記コンピュータのデスクトップでのアイコンを作成、及びポップアップ・ウィンドウのアクティブ化のうち、少なくとも1つをさらに含む、
請求項7に記載のシステム。
【請求項１３】
ハードウェアプロセッサによって、コンピュータにインストールされる未知のプログラムを検出する工程と、
前記ハードウェアプロセッサによって、前記コンピュータに前記未知のプログラムによって実行される望ましくないアクションを識別する工程と、
前記ハードウェアプロセッサによって、前記プログラムの前記検出された望ましくないアクションに基づいて、前記未知のプログラムが、望ましくないものであるかを判断する工程と、
前記未知のプログラムが望ましくないと判断された場合、前記コンピュータに前記望ましくないプログラムの実行を許可又は禁止するかどうかについてユーザが選択できるように示す工程と、
前記未知のプログラムが望ましくないと判断されなかった場合、前記ハードウェアプロセッサによって、前記コンピュータに前記未知のプログラムの実行を許可する工程とを含み、
前記望ましくないアクションは、
ユーザが知ることなく前記プログラムによって実行されるアクション、前記コンピュータでの個人ユーザデータにアクセスするアクション、及び、前記コンピュータの他のプログラム又はオペレーティング・システムでのユーザ作業に影響を与えるアクションのうちの少なくとも１つを含み、
前記未知のプログラムが望ましくないかどうかを判断する工程は、
前記検出された望ましくないアクションに数値的重みを割り当てる工程をさらに含み、
ユーザが知ることなく実行される望ましくないアクションは、他のプログラム又はオペレーティング・システムでのユーザ作業に影響を与える他の望ましくないアクションよりも大きい数値的重みを有する、プログラムの実行を制御する方法。
【請求項１４】
前記未知のプログラムが望ましくないかどうかを判断する工程は、
前記検出された望ましくないアクションの数値的重みを増す工程と、
全ての検出された望ましくないアクションの前記数値的重みの合計が、所定の閾値を越える場合、前記未知のプログラムが望ましくないものであると特定される工程と
をさらに含む、
請求項13に記載の方法。
【請求項１５】
前記コンピュータでの前記未知のプログラムの実行を許可又は禁止するかどうかにおけるユーザの選択を保存する工程と、
前記ユーザのコンピュータに前記プログラムと同じプログラムを実行するその後の試みがあった場合、前記ユーザに再度示すことなく、前記保存されたユーザの選択を自動的に実行する工程とをさらに含む、
請求項13に記載の方法。
【請求項１６】
前記コンピュータで前記望ましくないプログラムの実行を許可する工程は、
前記プログラムにおける、1つ又は複数の検出された望ましくないアクションの実行を防止する工程を含む、
請求項13に記載の方法。
【請求項１７】
前記プログラムにおける1つ又は複数の検出された望ましくないアクションの実行を防止する工程は、
アクティブである状態の望ましくないGUI要素の存在について、未知のプログラムをインストールするプログラムインストーラーのグラフィック・ユーザ・インターフェース（GUI）を解析する工程と、
前記プログラムインストーラーの前記検出された望ましくないGUI要素のアクティブでない状態にする工程と
をさらに含む、
請求項16に記載の方法。
【請求項１８】
プログラムの実行を制御するためのシステムであって、
前記システムは、
コンピュータにインストールされる未知のプログラムを検出し、
前記コンピュータで前記未知のプログラムによって実行される望ましくないアクションを識別し、
前記プログラムの前記識別された望ましくないアクションに基づいて、前記未知のプログラムが望ましいものであるかどうかを判断し、
前記未知のプログラムが、望ましくないと判断された場合、前記コンピュータに前記望ましくないプログラムの実行を許可又は禁止かどうかについてユーザが選択できるように示し、
前記未知のプログラムが望ましくないと判断されなかった場合、前記コンピュータに前記未知のプログラムの実行を許可する、ように構成されたハードウェアプロセッサを含み、
前記望ましくないアクションは、
ユーザが知ることなく、前記プログラムによって実行されるアクションと、
前記コンピュータにあるユーザの個人データにアクセスするアクションと、
前記コンピュータの他のプログラム又はオペレーティング・システムでのユーザ作業に影響を与えるアクションと、
の少なくとも1つ含み、
前記未知のプログラムが望ましくないものであるかどうか判断する工程は、
前記検出された望ましくないアクションに対して数値的重みを割り当てる工程をさらに含み、
ユーザが知ることなく実行される望ましくないアクションは、他のプログラム又はオペレーティング・システムでのユーザ作業に影響を与える、他の望ましくないアクションよりも大きい数値的重みを有する、プログラムの実行を制御するためのシステム。
【請求項１９】
前記未知のプログラムが、望ましくないものであるかどうかを判断する工程は、
前記検出された望ましくないアクションの前記数値的重みを増す工程と、
全ての検出された望ましくないアクションの前記数値的重みの合計が、所定の閾値を超える場合、前記未知のプログラムを望ましくないと特定される工程とを、さらに含む、
請求項18に記載のシステム。
【請求項２０】
前記ハードウェアプロセッサは、
前記コンピュータで前記未知のプログラムの実行を許可又は禁止するかどうかについて、ユーザの選択を保存し、
前記ユーザのコンピュータに、前記プログラムと同じプログラムを実行するその後の試みがあった場合、前記ユーザに再度示されることなく、前記保存されたユーザの選択を自動的に実行する、ように構成される、
請求項18のシステム。
【請求項２１】
前記コンピュータで前記望ましくないプログラムの実行を許可することは、
前記プログラムにおける、1つ又は複数の検出された望ましくないアクションの実行を防止することをさらに含む、
請求項18に記載のシステム。
【請求項２２】
前記プログラムにおける、1つ又は複数の検出される望ましくないアクションの実行を防止することは、
アクティブである状態の望ましくないGUI要素の存在について、未知のプログラムをインストールするプログラムインストーラーのグラフィックユーザインターフェースを解析することと、
前記プログラムインストーラーの前記検出された望ましくないGUI要素をアクティブでない状態にすることとをさらに含む、
請求項21に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、2015年6月30日に出願されたロシア特許出願第2015125976の関連出願であり、米国特許法第119条でこの出願に基づく優先権を主張し、本明細書中に参考として援用する。
【０００２】
本開示は、一般的にコンピュータセキュリティの分野に関するものであり、より具体的には、望ましくないプログラムをインストール及び実行することを防止する、システム及び方法に関するものである。
【背景技術】
【０００３】
多くのコンピュータユーザは、悪意あるプログラム（マルウェアとしても知られている）における操作により、もたらされる結果に頻繁に直面しており、それは、ユーザのコンピュータをブロックし、個人データの盗難、スパムの配布、その他の悪質なアクションを引き起こすものである。現段階で、アンチウイルス業界は、まだ確立しておらず、未知の悪意あるプログラムに対して効果的に対抗することができるアンチウイルス技術（例えば、エミュレーション、動作解析、及びアプリケーション制御等）は発展段階である。そのようなアンチウイルス技術により、多くの場合は、マルウェアによるユーザコンピュータへの感染のリスクを下げ、又は、感染によって引き起こされる被害を軽減することができる。
【０００４】
悪意のあるプログラム、アプリケーション（悪質なアクションを直接実装しているものではないが、頻繁に、ユーザを困らせ、ユーザにとって不要なアクションが生じるように強いられるもの）の発展に伴い、例えば、その機能的特徴が無用となるようにプログラムのライセンスを支払うことは、最近、より一般的になっている。このようなアプリケーションは、多くの場合、望ましくないプログラム、ペストウェア（pestware）、又はジャンクウェア（junkware）と呼ばれている。私たちは、概して望ましくないプログラムと呼ぶことにしている。
【０００５】
これらの望ましくないプログラムの望ましくないアクションは、以下を含むが、それに限定されない。
・ブラウザのホームページ、検索エンジン、及び、ブラウザ-アドオン（プラグイン）ができる全てのインストール、における認可されてない変更。これは多くの場合、ブラウザの不要な操作を導くものである。これらは、最も一般的な望ましくないアクションである。
・多くの場合、フェイクAV（FakeAV）、フェイクアンチウイルスと呼ばれ、分類されるアプリケーション。一方でそれは、ユーザ又は自分のデータに害を引き起こすことはないが、他方で、それは、役に立たない特徴をもつ機能のライセンス購入をしつこく提案する（それは、動作はするが、実際には、どんな利益も有さない）。
・最適化プログラム。実際に有用なユーティリィティと同様に、それは、（一時的なファイル、レジスタの未使用なブランチ等を削除することによって）オペレーティング・システムの操作を最適化する。多くの有料の最適化プログラムがあり、有用なアクションを実行しないが、実行している「有用な」アクションをユーザに通知するインターフェースを含むのみである。
・望ましくないソフトウェアのリストの中に多く見られる特徴は、さらに、スパイウェアプログラムであり、それは、ユーザが知ることなく、ユーザとユーザのコンピュータに関するデータを収集できる。ユーザが自主的にそのようなソフトウェアをインストールする状況は、ほとんどの場合、注意欠如の可能性がある。
【０００６】
望ましくないプログラムは、通常、ほとんどの国で犯罪刑法制裁を発動することができるような犯罪となるアクション（例えば、悪意あるプログラムの配布又はスパムの送信）を行わない。且つ、それらはまた、正規のプログラム（グラフィカル・インターフェース、ライセンス契約等）にあるすべての兆候を持っている。それにもかかわらず、ユーザは、自分の操作において頻繁に不満を感じている。つまり、プログラムが、そのインターフェースのウィンドウを常に表示し、又は、必要である機能特性を十分に満たすものではないことに対して、ユーザは不満を感じている。従って、ユーザがプログラムの削除を望み、二度とインストールしたくないという結果をもたらすことになる。
【０００７】
そのようなプログラムを検出及び除去するための手段は、現在すでに知られている。例えば、望ましくないプログラムを削除するためのユーティリティにおいて、Microsoft（登録商標）という会社は、ユーザに、それらの「望ましくないこと（不快）」指標（グラフィカル・ユーザインターフェース（GUI）の欠乏、プログラムの操作に関する情報の欠如、広告の表示等）を示すことによって、望ましくないプログラムを区別するオプションを提供する。
【０００８】
しかしながら、このような技術は、特定の欠陥もありえ、例えば、それらは、望ましくないプログラムのインストール、又は、実行された変更の取り消し（"ロールバック"）を防止することはできない。
【０００９】
したがって、ユーザのための望ましくない機能的特徴を含む、プログラムの操作を検出及びブロックするため、より効果的な解決が必要とされている。
【発明の概要】
【００１０】
望ましくないプログラムのインストール及び実行を防止するシステム及び方法が開示されている。1つの例示的態様で、システムは、以下の工程を用いて、コンピュータへのプログラムのインストールを制御する。
コンピュータへの未知のプログラムのインストールを検出する工程と、
未知のプログラムのインストールを停止する工程と、
安全な環境で、未知のプログラムを実行する工程と、
ユーザが知ることなくプログラムにより実行されたアクション（コンピュータにある個人ユーザデータにアクセスするアクション、及び、コンピュータの他のプログラム又はオペレーティング・システムでのユーザ作業に影響を与えるアクション）を含む、未知のプログラムの望ましくないアクションを検出する工程と、
プログラムにおける検出された望ましくないアクションに基づいて、未知のプログラムが望ましくないものであるかどうかを判断する工程と、
未知のプログラムが望ましくないと判断された場合、コンピュータにその望ましくないプログラムのインストールを許可又は禁止するかどうかについてユーザが選択できるように示す工程と、
未知のプログラムが、望ましくないと判断されなかった場合、コンピュータに未知のプログラムのインストールを許可する工程を含む。
【００１１】
1つの例示的な態様では、未知のプログラムが望ましくないものであるかを判断するために、システムは、検出された望ましくないアクションに対して、数値的重みを割り当てることができる。ここで、ユーザが知ることなく実行された、望ましくないアクションは、他の望ましくないアクション（他のプログラム又はオペレーティング・システムでのユーザ作業に影響を与えるアクション）よりも大きな数値的重みを有する。
【００１２】
１つの例示的な態様では、未知のプログラムが望ましくないものであるかを判断するために、システムは、検出された望ましくないアクションに対して、数値的重みを増加することができる。そして、全ての検出された望ましくないアクションの数値的重みの合計が、所定の閾値を超える場合、未知のプログラムが望ましくないと特定される。
【００１３】
他の例示的態様では、システムは、コンピュータに未知のプログラムのインストールを許可又は禁止するかについて、ユーザの選択をさらに保存することができ、ユーザのコンピュータへの同じプログラムのインストール又は実行における、その後の試みがあった場合、再度ユーザに示すことなく、保存されたユーザ選択を自動的に実行する。
【００１４】
他の例示的な態様では、コンピュータに望ましくないプログラムのインストールを許可することは、システムが、プログラムにおける1つ又は複数の検出された望ましくないアクションを実行することをさらに防止することができる。
【００１５】
他の例示的な態様では、プログラムにおける1つ又は複数の検出された望ましくないアクションの実行を防止する工程は、
アクティブである望ましくないGUI要素の存在について、プログラムインストーラーのグラフィカル・ユーザ・インターフェース（GUI）を解析する工程と、
プログラムインストーラーの検出された望ましくないGUI要素をアクティブでない状態にする工程を含む。
【００１６】
他の例示的な態様では、望ましくないアクションは、ネットワーク設定の変更、ブラウザ設定の変更、コンピュータのデスクトップでのアイコンの作成、及びポップアップ・ウィンドウのアクティブ化のうち少なくとも1つをさらに含むことができる。
【００１７】
他の例示的な態様では、システムは、コンピュータにインストールされた未知のプログラムを検出することによる手段、コンピュータで未知のプログラムによって実行された望ましくないアクションを識別することによる手段を含む、手段によってプログラムの実行を制御することができる。
ここで、望ましくないアクションは、以下のうち少なくとも１つのアクションを含み、
それは、ユーザが知ることのないプログラムによって実行されるアクション、
コンピュータで、個人ユーザデータにアクセスするアクション、
及び、コンピュータの他のプログラム又はオペレーティング・システムでのユーザ作業に影響を与えるアクション、
プログラムにおける識別された望ましくないアクションに基づいて、未知のプログラムが望ましくないものであるかどうか判断する。未知のプログラムが、望ましくないと判断された場合、コンピュータで望ましくないプログラムの実行を許可又は禁止するかどうかについてユーザが選択できるように示し、未知のプログラムが望ましくないと判断されなかった場合、コンピュータにおいて未知のプログラムの実行が許可される。
【００１８】
他の例示的な態様では、システムは、コンピュータで未知のプログラムの実行を許可又は禁止するかについて、ユーザの選択をさらに保存することができ、そして、ユーザのコンピュータで同じプログラムの実行における、その後の試みがあった場合、ユーザに再度示すことなく、その保存されたユーザの選択を自動的に実行する。
【００１９】
他の例示的な態様では、コンピュータで望ましくないプログラムの実行を許可することは、システムが、プログラムにおける1つ又は複数の検出された望ましくないアクションを実行することを防止することができる。
【００２０】
他の例示的な態様では、プログラムにおける1つ又は複数の検出された望ましくないアクションの実行を防止するために、システムは、アクティブである状態の望ましくないGUI要素の存在について、プログラムインストーラーのグラフィカル・ユーザ・インターフェース（GUI）をさらに解析でき、プログラムインストーラーの検出された望ましくないGUI要素をアクティブでない状態にする。
【００２１】
例示的態様における上記の簡単な概要は、本開示の基本的な理解を提供するのに役立つ。本概要は、すべての企図される態様の広範な概観ではなく、すべての態様の主要又は重要な要素を特定することは意図されておらず、本開示の任意の範囲又は全ての態様を線引きすることも意図されている。その唯一の目的は、以下の開示のより詳細な説明の前置きとして、簡略化された形式で、1つ又は複数の態様を提示することである。前述の達成のために、本開示における、1つ又は複数の態様は、説明され、特に特許請求の範囲で指摘された特徴を含む。
【図面の簡単な説明】
【００２２】
添付の図面は、本明細書の中に組み込まれ、本明細書の一部を構成し、本開示の1つ又は複数の例示的態様を例示しており、詳細な説明と共に、それらの原理及び実装を説明するのに役立つ。
【図１】図1は、ユーザのコンピュータ・システムに、望ましくないプログラムのインストールと実行を防止する例示的なシステムを示す。
【図２Ａ】図2Aは、望ましくないプログラムのインストールを防止する例示的な方法を示す。
【図２Ｂ】図2Bは、望ましくないアクションの取り消しと共に、望ましくないプログラムのインストールを防止する例示的な方法を示す。
【図２Ｃ】図2Cは、潜在的に望ましくないプログラムのインストーラーのウィンドウの例を示す。
【図３】図3は、望ましくないプログラムの実行を防止する例示的な方法を示す。
【図４】図4は、開示されたシステム及び方法を実装することができる汎用コンピュータ・システムの一例を示す。
【発明を実施するための形態】
【００２３】
実施の態様は、望ましくないプログラムのインストール及び実行を防止する、システム、方法、及びコンピュータプログラム製品の事例において本明細書に記載されている。当業者は、以下の説明が単なる例示であり、決して限定であることを意図するものではないことを理解するであろう。他の態様は、この開示の利益を有する当業者に容易に示唆されるものである。添付の図面に示されるように、参照は、例示的態様の実装について詳細に説明される。同じ参照指標は、同一または同様の項目を参照するために、図面と以下の説明全体を通じて可能な限り、用いられる。
【００２４】
図1は、ユーザのコンピュータ・システムに、望ましくないプログラムのインストールと実行を防止する例示的なシステムを示す。ユーザ150は、コンピュータにインストールされた他のプログラム110（例えば、ブラウザのChrome又はInternet Explorer、テキストエディタのNotepad又はWord等、それは、さらに、「ソフトウェア」又は「サードパーティ製ソフトウェア」として以下参照される）を使用し、システム100は、ソフトウェア110の他に、オペレーティング・システム（OS）120のコンポーネントをさらに含み、それらのコンポーネントは、それぞれ他のデバイス（例えば、プリンタ、ネットワークサービス等）の間で、プログラムとユーザの相互作用に対して責任を負っている。
【００２５】
また、システム100は、サードパーティ製のソフトウェア110とその設定（例えば、そのホームページを変更することによって、ブラウザに対してプラグインの形で）を変更できる望ましくないソフトウェア130を含むことができ、それは、（例えば、情報の収集を行うために、ドライバフィルタをインストールすることによって）オペレーティング・システムOS120のコンポーネントの変更を取り入れることができ、又は、（例えば、FakeAVプログラムの形で）それぞれの種類の情報をユーザ150に定期的に示すことができる。望ましくないソフトウェア130を削除するために、OS120のコンポーネント、及び、オペレーティング・システムのグラフィカル・インターフェースでのユーザ150の作業において、サードパーティ製のソフトウェア110での変更を評価する検出器140が使用される。1つの例示的な態様では、検出器140は、アンチウイルスのソフトウェアとして実装されてもよく、又は、他のコンポーネントとして、後者に含まれてもよい。
【００２６】
図2Aは、望ましくないプログラムのインストールを防止する例示的方法を示す。工程210において、システム100は、未知のソフトウェアをインストールしようとする試みを検出する。未知のソフトウェアは、次の兆候の1つを有する任意のソフトウェアでありえる。
・ソフトウェアの製造元のデジタル署名を有していない。
・許可されたアプリケーションのホワイトリスト、又は、少なくとも１つのアンチウイルスソフトウェアの製造元でのマルウェアリストのどちらかに含まれていない。
【００２７】
1つの例示的な態様では、検出された、未知のソフトウェアをインストールするという試みは、検出器140の手段によって、任意のファイル（インストーラー）のオープンの実行を傍受するという形態をとっている。さらに他の例示的な態様では、オープンされたファイルの属性、名前（例えばSETUP.EXE）、サイズ、デジタル署名、ディスクにおける見かけの日付等は、チェックできる。これらの属性に応じて、与えられたファイルをチェックする必要性が判断される。この技術の実現の例は、同じ所有者である米国特許7392544により開示されており、参照により本明細書に組み込まれる。実行可能ファイルのオープンを傍受することは、画像ローダーを用いて、ローディングを傍受することよって実現することができる。
【００２８】
未知のソフトウェアをインストールしようとする試みを検出した後、工程220で、システム100は、安全な環境でソフトウェアを実行する。ファイルのエミュレーションも、安全な環境で動いているとみなすことができ、どの変更についても、エミュレータの構想を超えるものではない。サンドボックスは、制御可能な一連のリソース（仮想メモリ、ファイル、レジスターブランチ、ネットワーク接続等）を表すものであり、安全な環境の例として役立つものである。未知のソフトウェアのインストールのさらなる例は、続くロールバックの可能性を有するシステム100内のすべての変更を追跡することを有するインストールである。同様の技術の例は、参照により本明細書に組み込まれる同じ所有者の米国特許8181247に記載されている。ファイルにおける実行中のコードのアクションが（エミュレーションを使用するか又は安全な環境で）実施される場合、工程230において、システム100は、望ましくないこと（不快）という観点から、生成されたアクションの評価を行う。
【００２９】
既に述べたように、一般的に望ましくないアクションは、ユーザを困らせ、又は、ユーザに不要なものを強いるアプリケーションのアクションである。望ましくないアクションは、サードパーティ製のソフトウェア110及びOS120のコンポーネントを変更することができ、他のプログラム及び/またはオペレーティング・システム（例、オペレーティング・システムのグラフィカル・インターフェース）でのユーザ150の作業に影響を与えることができる。ある望ましくないアクションの例は、以下を含むことができるが、それに限定されない。
・ブラウザのホームページの変更。
・ブラウザのデフォルト設定の変更。
・ネットワークパラメータ（プロキシサーバ及びLSP(Layered Service Provider)）技術の変更。
・ユーザが知ることのない、ブラウザへの新しいツールバーの追加。
・OSレジストリでの自動起動キーの作成。
・ユーザが知ることのない、デスクトップ及び/又はタスクバーへのアイコンの追加。
・ユーザが知ることのない、ユーザのそれぞれのフォルダ（例えば、"C:/Users/<user_name>/My Documents"）からファイルにアクセスする試み。
・アプリケーションのインターフェースにおける、多数のポップアップ・ウィンドウの有無（これは、フェイクAVにとって特徴的なものでありえる）。
・未承認サイトへのURLリンクのコードの有無。それは、アプリケーションのさらなる操作、又は個人情報を提供するために、ユーザに対して、鍵の支払いを要求する。
・explorer.exeのような主要なオペレーティング・システムコンポーネント120に、付加的なグラフィカル・ユーザインターフェースのメニュー（それは、ユーザ150をいらいらさせる見た目である）を追加することによって変更すること。
【００３０】
ユーザが知ることなく任意のアクションが行われている場合、それは、実行される前に、アプリケーションのグラフィカル・インターフェースのいずれの要素における表示もなかったことを意味している。その表示は、ユーザに対して選択（例えば、デスクトップにアプリケーションのアイコンを追加するという選択等）させるように提供されるものである。このように、アクションの不快に対する主な基準は、ユーザが知ることなく実行され、又は、変更がシステムに対して成され、それは、オペレーティング・システム及びアプリケーション（例えば、ブラウザ）でのユーザの作業に直接影響を与えるというものである。
【００３１】
従って本発明では、未知のソフトウェアの導入は、多くの場合、いくつかのコンポーネントのインストールで構成されていることに留意すべきであり、その場合には、各コンポーネントのインストールが別々のソフトウェアのインストールとみなすことができる。その結果、不快の解決は、個別に各コンポーネントに対して行われる。
【００３２】
1つの例示的な態様で、一定の重みが、その不快の程度に応じて（検出器140による）、各アクションに割り当てられている。
【００３３】
例えば、表1は、不快なアクションの重みの例を紹介している。
表１
0006577399.tif 000002
【００３４】
上記の表での例によれば、ユーザ自身がブラウザのホームページの変更に同意した場合には（例えば、不明なソフトウェアのインストール時）、そのようなアクションにおける不快の重みがかなり小さいこと(例えば、約20単位)が分かる。ここで、ユーザ自身による確認のない場合の同じアクションに対して不快の重みは、あっという間に100単位が生じる。与えられた例では、100単位の不快の重みに達したときに、インストールされたアプリケーション（又は実行されるファイル）は（検出器140によって）望ましくないと認識され、そのインストールが望ましくないと見なされる（図2Aの工程240）。特定のアクションにとって、不快における重みの総計は、各アクションの不快の重みの単純な合計の形で考えることができる。しかし、不快の重みの計算における、より複雑な例は、各タイプのアクションの数も考慮に入れ、（例えば、小さな不快の重みを有する多くのアクションが100に等しい重みを加えることができないように）補正係数を用いるものである。さらに他の例示的な態様では、不快の重みの総計は、アクションのいずれかにおける不快の重みの最大のものに等しい。
【００３５】
このように、工程230で実行された評価を考慮して、工程240で、インストールが望ましくないかどうかが判断される。たとえば、チェックする1つの基準としては、"ブラウザのホームページの変更"など、エミュレーション処理（安全な環境での実装）における、そのアクションにおける不可欠な一外観であってもよい。他の例示的な態様は、ある閾値（例えば100）を有する不快の重みの総重量の比較を前提としているものであってもよい。チェックする基準を満たしている場合、または、不快の重みが総重量を超過した場合、それにもかかわらず、ユーザは、工程260において、インストールの許可を求められることがありえる。1つの例示的な態様では、これは偽陽性（例えば、正規のアプリケーションが悪意のあるものとして誤ってブロックされるという第一段階での間違い(first-order errors)）のリスクを低下させるために行うことができる。このようなアプローチの例としては、ユーザが、デジタル署名がない場合であっても、不明なアプリケーションをインストールできる場合における、Windows OSのユーザアカウント制御（UAC）技術の一部が挙げられる。ユーザがインストールに同意している場合、又は、工程240で状況が基準に達していない場合、工程250でソフトウェアのインストールが生じる。それ以外の場合、インストールは工程270で取り消される。ソフトウェアのインストール（またはその取消）に関してユーザの選択は、（検出器140の助けを借りて）記憶させることができ、同様の望ましくないソフトウェアが将来的に検出された場合、工程260は、ユーザによって行われた以前に策定された選択を考慮して、自動的に省略することができる。
【００３６】
インストールを取り消す一つの方法は、望ましくないソフトウェアをアクティブでない状態にすること（例えば、ブラウザでのプラグインをオフにすること）であってもよい。これは、安全な方法でありえ、サードパーティのソフトウェア110（特定のコンポーネントに依存している）の動作に負の影響を与える危険性が最小化され、そして、それはまた、ユーザに、今後その解決を変更する可能性を提供する。すなわち、そのユーザが実際にそれを必要とする場合、ブラウザでのプラグインを含む。
【００３７】
工程250で、ソフトウェアのインストールは、多数の望ましくないアクションの取り消しとともに実行されることができ、これにより、ユーザが必要とするプログラムをインストールすることを可能にすることができる。図2Bは、ソフトウェアのインストールに対する望ましくないアクションの取り消しを伴うアプローチを示している。工程251で、システム100は、ソフトウェアのインストール時に、インストーラーのウィンドウをチェックする。例えば、ウィンドウでの、すべてのアクティブな（例えばラジオボタンなど）要素、及びその説明は、チェックされる。図2Cは、潜在的に望ましくない可能性のあるソフトウェアのインストーラーのウィンドウの例を示す。チェックボックスタイプのチェックを外す要素（ブラウザでホームページの変更を導き、望ましくないツールバーを設定するもの）を示すことによって、望ましくないアクションを回避することができる。1つの例示的な態様で、要素の状態の変化は、検出器140によって実行される。工程252（工程251と並行して実行することができる）において、システムでの変化は、また、インストーラーの操作の結果を用いることによってチェックされる。（主に、ファイル操作及びレジストリ操作の追跡）工程253では、すべての望ましくないアクションが取り消され、又は、既にOSで変更が発生した場合、ロールバックされる。次のように、望ましくないアクションの取り消しがなされてもよい。
・インストーラーのウィンドウでのアクティブな要素（ラジオボタン、チェックボックスなど）を変更するための、Uncheckyのようなユーティリティの使用。
・自動起動レジストリエントリのインストール、又は、フォルダ"C：/ Windows/ system32"へのファイルの書き込みなどの、特定のファイル操作又はレジストリ操作のパフォーマンスの禁止。
・安全な環境でのプログラムのインストールは、ソフトウェアのインストール時に、OSそのものでそれらを実行するのではなく、インストール時に関数コールから肯定的な結果を返すことによって、多数の望ましくないアクションの"プロエミュレート"を可能にすることによって安全な環境でインストールが成される。
たとえば、ファイルがシステムフォルダで作成される場合、ファイルは、実際に作成されず、ファイル作成が成功したことを示す結果は、関数コールからインストーラーへ返されるだろう。一方、これにより、正確にソフトウェアをインストールすることができるが、一方で、安定した操作を保証するものではない。
【００３８】
図2の工程で、その統計を用いることによりその可能性を言及できることには価値もあると考えられ、且つ、そのような望ましくないプログラム130におけるインストーラーの起動を、前もって阻止するため、又はユーザ150に対する以前の警告のために、（インストーラーの起動又はシステムの変更の達成の前に）クラウドサービスへ、それに続く記憶をさせる。クラウドサービスで、他のユーザから及びその蓄積から得られた情報により、インストーラー等（起動されたファイルからの、ハッシュ又は他の有力な情報を使用して）の起動の事実を確認することは早い段階で可能である。また、これらのインストーラーのダウンロードのソースに関する他のユーザから得られた情報により、ダウンロードする前に、ダウンロードをブロックし、ユーザ150に早期に、警告することが可能である。したがって、このようなプログラム130の起動を防止するだけでなく、ユーザ150にとっての、ネットワークトラフィックと時間を節約できる。
【００３９】
工程253によれば、インストール中にユーザの警告で、切り替え又はブロックに対応するオプションを判断するために、我々は以下のアプローチを使用することができる。
・人気のあるプログラムのインストーラーの予備的な解析。そのプログラムは、インターネット経由で更新することができるデータベースへ、その結果をアップロードされているものである。
・インストーラーのグラフィカル・ユーザ・インターフェース（GUI）の解析、及び、その結果（例えば、キーワードを使用して解析）に基づいて、各種の制御要素の"望ましくないこと（不快）"におけるヒューリスティック判断の解析。
【００４０】
図3は、望ましくないプログラムの実行を防止する例示的な方法を示す。工程310で、インストールされた未知のソフトウェアは、システム100で検出される。原則として、そのような検出は、（例えば、検出器140によって）全ディスクのアンチウイルススキャンに関連付けることができ、又は、未知のインストールされたソフトウェアのダウンロード時になされる。
他の更なる一例としては、アプリケーションウィンドウの検索に関連されることができ、それは、（例えば、FakeAVの場合）周期的に前面に配置され、及びユーザに示され、1つのウィンドウを制御するプロセスにおける後続の判断を有するものである。工程320で、ソフトウェアにおける、望ましくないこと（不快）ということが評価される。この評価は、インストールされた未知のソフトウェアにより実行された望ましくないアクションに関与するものである。そのようなアクションの例は、図2Aの説明に記載されている。また、評価は、リアルタイムに、ソフトウェア自体の操作中に生じることができる（例えば、参照により本明細書に組み込まれる、同一所有者の米国特許第8566943に記載された技術を使用して）。望ましくない（不快な）ことの評価は、さらに、未知のインストールされたソフトウェアのアクションにおける評価の間、望ましくないこと（不快）の重みの用いることを含むことができる。実施例はまた、図2Aの説明において、より詳細に示されている。工程330で、未知のインストールされたソフトウェアが、望ましくないと認識される場合、その後、工程350（1つの例示的な態様ではオプションである）において、ユーザは、インストールされた未知のソフトウェアの操作を継続する許可を求められてもよい。ユーザが操作を許可した場合には、工程340で、インストールされた未知のソフトウェアは、もはや望ましくないソフトウェアとして解釈されない。そうでなければ、工程360において、インストール済みの未知のソフトウェアは削除される。そのようなソフトウェアを削除するというユーザの選択は、記憶させることができ、将来的に、類似の望ましくないアクションを有する望ましくないソフトウェアの検出において、工程350は、ユーザが以前に行った選択を考慮して、自動的に省略することができる。
【００４１】
未知のインストールされたソフトウェアは、次のいずれかの方法で削除できる。
・プログラムと機能（アプリケーションのアンインストーラーのコールアップ）からのアプリケーションの標準的な削除。
・インストールされた未知のソフトウェアに関連する、OSレジストリの、すべてのファイルとブランチの自動削除（1つの例示的な態様の検出器140で、アクティブなファイル及びアクティブなレジストリを追跡する）。
・システムに、除去することが望ましいとされる、望ましくないソフトウェアがあるということのユーザへの通知。
【００４２】
望ましくない（不快な）ことを評価するための工程における、更なる拡張の一つは、 図2Aでの工程240と図3での工程330である。望ましくないという（不快な）ことは、また、ほとんどの場合、ソフトウェアの製造元によって考慮されることができ、それは、多くの場合、デジタル署名によって識別される。一つの同じデジタル署名付きの特定の種類のソフトウェアに対して、望ましくない（不快）という評価が下された場合、その後将来的に、これは、列挙された工程で考慮される。例えば、新しいタイプの特定のデジタル署名付きのソフトウェアにおける、望ましくない（不快の）重みを増加するようにした形態で、考慮されることがありえる。このようなフィードバックは、そのソフトウェアが最初に現れたコンピュータでユーザから収集することができる。このようなユーザは、自身で望ましくないソフトウェアを指摘することができ、特定のアプリケーションのインストール（または削除）を禁止し、望ましくないものとしてそれらをマークする。これは、検出器140によって考慮されるであろう。検出器は、そのメタデータ（デジタル署名、サイズ、アイコン等）から開始して、アプリケーションの望ましくない（不快な）ことに関する一定の評価を最終的な解析で形成する。
【００４３】
1つの例示的な態様では、検出器140は、望ましくないソフトウェアの以前に策定されたリストを保持し、それにより、既にユーザのコンピュータにインストールされているソフトウェアを、すぐに検出することが可能となっている。次の表は、そのようなリストの例である。
0006577399.tif 000003
【００４４】
図4は、一般的な用途のコンピュータ・システム（パーソナルコンピュータ又はサーバであってもよい）の一例を開示しており、そこでは開示されたシステム及び方法は、実装することができる。コンピュータ・システム20は、中央処理ユニット21、システムメモリ22及びシステムバス23を含み、システムバスは、様々なシステムコンポーネント（中央処理ユニット21に付随するメモリを含む）に接続している。システムバス23は、先行文献で知られている任意のバス構造のように実現され、順にバスメモリ又はバスメモリコントローラ、周辺バス、及びローカルバスを含み、それは、任意の他のバスアーキテクチャと相互作用することができる。システムメモリは、読み出し専用メモリ（ROM）24及びランダムアクセスメモリ（RAM）25を含む。基本入出力システム（BOIS）26は、パーソナルコンピュータ20の要素間で情報の転送を保証する基本的な手順を含み、ROM24を使用してオペレーティング・システムをロードする時にも同様である。
【００４５】
パーソナルコンピュータ20は、順に、データの読み書き用ハードディスク27、リムーバブル磁気ディスク29への読み書き用磁気ディスクドライブ28、及び、リムーバブル光ディスク31（CD-ROM、DVD-ROM又は他の光情報媒体等）への読み書き用光ドライブ30を含む。ハードディスク27、磁気ディスクドライブ28、及び光ドライブ30は、それぞれ、ハードディスクインターフェース32、磁気ディスクインターフェース33及び光ドライブインターフェース34を介してシステムバス23に接続されている。ドライブ及び対応するコンピュータ情報媒体は、パーソナルコンピュータ20のコンピュータ命令、データ構造、プログラムモジュール、及びその他のデータのための電力の面で独立した記憶装置である。
【００４６】
本開示は、ハードディスク27、リムーバブル磁気ディスク29及びリムーバブル光ディスク31を使用するシステムの実装を提供するが、コンピュータによって読み取り可能な形式でデータを保存することができる他の種類のコンピュータ情報媒体56（ソリッドステートドライブ、フラッシュメモリカード、デジタルディスク、ランダムアクセスメモリ（RAM）等）を使用することも可能であることが理解されるべきであり、それらは、コントローラ55を介してシステムバス23に接続される。
【００４７】
コンピュータ20は、ファイルシステム36を有し、そこには記録されたオペレーティング・システム35が保持され、及び、追加プログラムアプリケーション37、他のプログラムモジュール38及びプログラムデータ39、もまた同様である。ユーザは、入力デバイス（キーボード40、マウス42）で、パーソナルコンピュータ20に、コマンドと情報を入力することができる。他の入力デバイス（図示せず）として、マイクロホン、ジョイスティック、ゲームコントローラ、スキャナ等を用いることができる。そのような入力デバイスは、通常、シリアルポート46を介してコンピュータ・システム20に接続され、それは、順番に、システムバスに接続される。それらは、他の方法（例えば、パラレルポート、ゲームポート、又はユニバーサルシリアルバス（USB））を用いて接続できる。モニター47又は他の種類の表示デバイスもまた、ビデオアダプタ48などのインターフェースを介してシステムバス23に接続される。モニター47に加えて、パーソナルコンピュータは、ラウドスピーカー、プリンタ等の他の周辺出力デバイス（図示せず）を搭載することができる。
【００４８】
パーソナルコンピュータ20は、1つ又は複数のリモートコンピュータ49を用いて、ネットワーク環境で作業することができる。図6に示すように、リモートコンピュータ（複数可）49も、前述の要素の大部分又は全てを有するパーソナルコンピュータ又はサーバであり、その要素は、パーソナルコンピュータ20の本質を示している。ルータ、ネットワーク局、ピアデバイスまたは他のネットワークノード等、他のデバイスも、コンピュータネットワークに存在できる。
【００４９】
ネットワーク接続は、有線及び/または無線ネットワーク等のローカルエリアコンピュータネットワーク（LAN）50、及びワイドエリアコンピュータネットワーク（WAN）を形成することができる。このようなネットワークは、企業コンピュータネットワークと社内ネットワークで使用されており、これらは一般的にインターネットへのアクセス権を有している。LANまたはWANネットワークでは、パーソナルコンピュータ20は、ネットワークで使用しているネットワークアダプタまたはネットワークインターフェース51を介してローカルエリアネットワーク50に接続される。ネットワークが用いられる場合、パーソナルコンピュータ20は、インターネットのようなワイドエリアコンピュータネットワークとの通信を提供するため、モデム54または他のモジュールを使用する。モデム54は、内部または外部デバイスであり、シリアルポート46によってシステムバス23に接続される。ネットワーク接続は、単なる例であり、ネットワークの正確な構成を示す必要はないことに留意すべきである。すなわち、現実には、Bluetooth（登録商標）などの技術的な通信モジュールによる他のコンピュータの接続を確立する他の方法がある。
【００５０】
様々な態様において、本明細書で説明するシステム及び方法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実装することができる。ソフトウェアで実装する場合、その方法は、非一時的なコンピュータ可読媒体上の1つまたは複数の命令またはコードとして保存されることができる。コンピュータ可読媒体は、データ記憶を含む。コンピュータ可読媒体を以下に例示するが、限定するものではない。コンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROM、フラッシュメモリ、又は、他の種類の電気的、磁気的、または光記憶媒体、又は他の任意の媒体、を備えることができ、命令またはデータ構造の形で所望のプログラムコードを搬送又は保存するために用いられ、汎用コンピュータのプロセッサによってアクセスすることができる。
【００５１】
様々な態様では、システム及び方法は、モジュールの観点から、本開示で説明される。本明細書で使用される用語「モジュール」とは、現実世界のデバイス、コンポーネント、または、ハードウェアを用いて実装されたコンポーネントの配置を言及しており、例えば、または、ハードウェアとソフトウェアの組み合わせとして、特定用途向け集積回路（ASIC）またはフィールド・プログラマブル・ゲート・アレイ（FPGA）などによって実装され、モジュールの機能を実装するマイクロプロセッサシステムと命令セットなどによって、（実行される間に）マイクロプロセッサシステムを専用のデバイスに変換される。モジュールも、2つの組合せとして実装されることができ、ハードウェアだけによって容易とされる特定の機能、及び、ハードウェアとソフトウェアの組み合わせによって容易とされる他の機能と、これらの組み合わせとして実現することができる。特定の実施態様では、少なくとも一部、及びいくつかのケースでは、モジュールのすべては、（例えば、図6上部に詳細に説明したもののように）汎用コンピュータのプロセッサ上で実行することができる。したがって、各モジュールは、適切な様々な構成で実現することができ、そして本明細書中に任意の例示的な実施形態に限定されるものではない。
【００５２】
明瞭にするために、態様のルーチン機能のすべてが、本明細書に開示されているわけではない。本開示における任意の実際の実装における開発で、多数の実装固有の判断が、開発者の特定の目標を達成するためになされなければならないことが理解されるであろう。さらに、これらの具体的な目標は、異なる実装及び異なる開発者に対して変化することが理解されるであろう。そのような開発努力は複雑で時間がかかるかもしれないが、それでも本開示の利益を有する当業者にとっては、エンジニアリングの日常の仕事であると理解されるであろう。
【００５３】
さらに、本明細書で使用される用語又は表現は、説明のためであり、制限するものではなく、つまり、関連技術の熟練の知識と組み合わせて、本明細書の用語または表現は、ここに示される教示及び指針に照らして当業者によって解釈されるべきであることが理解されるべきである。明示的な記載がない限り、明細書または特許請求の範囲内で、任意の用語に対して、珍しいまたは特別な意味を帰することは意図されていない。
【００５４】
本明細書で開示された様々な態様は、例示のために本明細書に言及した既知のモジュールの、現在及び将来の既知の均等物を包含する。さらに、態様及び用途を示し、説明してきたが、本明細書に開示された発明の概念から逸脱することなく、上述したよりも多くの改変が可能であることが、この開示の利益を有する当業者には明らかであろう。
【図１】
0006577399.tif 000004
【図２Ａ】
0006577399.tif 000005
【図２Ｂ】
0006577399.tif 000006
【図２Ｃ】
0006577399.tif 000007
【図３】
0006577399.tif 000008
【図４】
0006577399.tif 000009