JP4807970B2 - 自動開始拡張ポイントを介したスパイウェアおよび不要ソフトウェアの管理 - Google Patents

自動開始拡張ポイントを介したスパイウェアおよび不要ソフトウェアの管理 Download PDF

Info

Publication number
JP4807970B2
JP4807970B2 JP2005157138A JP2005157138A JP4807970B2 JP 4807970 B2 JP4807970 B2 JP 4807970B2 JP 2005157138 A JP2005157138 A JP 2005157138A JP 2005157138 A JP2005157138 A JP 2005157138A JP 4807970 B2 JP4807970 B2 JP 4807970B2
Authority
JP
Japan
Prior art keywords
computer
software applications
asep
user
spyware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005157138A
Other languages
English (en)
Other versions
JP2005339565A (ja
Inventor
アール.ジョンソン アーロン
イー.バーボウスキー チャド
エー.ロセフ ルーシー
ワン イー−ミン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005339565A publication Critical patent/JP2005339565A/ja
Application granted granted Critical
Publication of JP4807970B2 publication Critical patent/JP4807970B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、一般に、コンピュータシステムおよびオペレーティングシステムの分野に関し、より詳細には、コンピュータシステム上の不要なソフトウェアの識別に関する。
スパイウェアは、コンピュータのユーザの振舞いを、マーケティングまたは不法な目的のために追跡し報告するソフトウェアプログラムの種類の一般名称である。より一般的には、スパイウェアは、ユーザに分かることなく、かつ/またはユーザの同意を得ずに、ユーザのマシンにダウンロードされインストールされるタイプのソフトウェアである。このような不要なソフトウェアは、例えば、ウィンドウをポップアップさせる、ウェブブラウザの開始ページを変更する、ページを検索する、また、ブックマークの設定を変更することにより、ユーザに盛んに広告を押し付ける。スパイウェアは、しばしば、密かにインターネットを介してサーバと通信して、収集したユーザ情報を報告し、また、ユーザのマシンに追加のソフトウェアをインストールするためにコマンドを受け取ることもある。通常、スパイウェアに感染したマシンのユーザは、ブート時間の増大、動作速度の低下、および、アプリケーションの頻繁なクラッシュなど、信頼性および性能の大幅な低下を経験する。クラッシュレポート(crash report)全体の50パーセントについては、スパイウェアプログラムが原因となっていることが、信頼性データにより示されている。さらに、スパイウェアプログラムに対する脆弱性は、セキュリティの問題を引き起こすことが分かっている。100万台を超えるマシンを調査した最近の研究では、憂慮すべきスパイウェアの感染率が明らかにされており、(ウェブブラウザのクッキーを含まずに)平均4から5つのスパイウェアプログラムが各コンピュータで実行されている。
既存のスパイウェアに対する解決策は、主として、ウィルス対策ソフトウェアに通常使用されるようなシグネチャ手法に基づいており、このシグネチャ手法では、各スパイウェアのインストレーションを、そのファイルおよびレジストリのシグネチャを決定するために調査し、それらのシグネチャは、後でスキャナソフトウェアによってスパイウェアのインスタンスを検出するために使用される。この手法には、いくつかの問題がある。
第1に、多数のスパイウェアプログラムは、スパイウェアの企業は、一般的なフリーウェアのスポンサとなって、それをスパイウェアのインストレーションのためのベースとして利用しているので、「合法」とみなせる場合がある。というのは、ユーザはフリーウェアをインストールするときソフトウェア使用許諾契約(EULA)に承諾しているためであり、そのフリーウェアにバンドルされたスパイウェアを削除することはこの契約に違反する可能性がある。多くの場合、フリーウェアは、バンドルされているスパイウェアが削除された場合に、フリーウェア自体の実行を拒否することにより、ユーザシステム上でスパイウェアが稼動するのを保証する。
第2に、この手法の有効性は、既知のスパイウェアに対するシグネチャデータベースの完全性に依存している。この手法は、新しいスパイウェアを手作業で突き止めカタログに入れる難しさを越えて、さらに複雑なものである。というのは、一般に、スパイウェアは、通常のウィルスよりかなり強力な本格的なアプリケーションであり、検出および除去されるのを回避するために積極的な対抗策を取るためである。スパイウェアを作成する企業は、このアプリケーションの普及をベースにして収益を得るので、そのスパイウェアの検出および除去を難しいものにするための技術を作り出していく経済的動機を有する。このような企業は、洗練され変異する振舞いの開発に投資する必要性および資源を有している。
第3に、いくつかのスパイウェアのインストレーションでは、スパイウェア以外のアプリケーションが使用する通常のライブラリファイルを含むことができる。スパイウェアのシグネチャからこれらのファイル取り除くように措置が取られない場合、これらのシグネチャを使用しているスキャナにより、スパイウェアではないアプリケーションが中断する恐れがある。
最後に、一般的なスパイウェア除去プログラムは、通常、要求に応じまたは定期的に呼び出されるが、これはスパイウェアがインストールされてからかなり後になる。このため、スパイウェアが、個人情報を収集することが可能になり、また、それがいつインストールされどこから来たのかを決定することを難しくすることが可能になる。
スパイウェアまたは他の不要なソフトウェアがインストールされたときに、それを検出し、かつ/または、スパイウェアの除去を可能にする、監視サービスを提供する。
スパイウェアまたは他の不要なソフトウェアがインストールされた時点で、スパイウェアまたは他の不要なソフトウェアの検出および/または除去を行う監視システムが提供される。このサービスは、スパイウェアのインストレーションを検出するために、「自動開始拡張ポイント(Auto−Start Extensibility Points)(「ASEP」)」を監視する。ASEPは、ユーザの明示的な呼出しなしにプログラムの自動的開始を可能にするために「フック(hooked)」することができる構成ポイントのことを指す。スパイウェアプログラムの圧倒的多数が、リブートが行われ通常使用される多くのアプリケーションが起動する際に、自動的に開始する方法でシステムに感染するため、このようなサービスは著しく有効である。したがって、この監視サービスは、スパイウェアのインストレーションの事後の完全な除去をもたらすことができ、頻繁なシグネチャベースのクリーニングを必要としない。シグネチャベースの手法とは異なり、この監視サービスは、既知のシグネチャをまだ有していない新規または未知のスパイウェアを検出する。
ある態様では、潜在的な不要ソフトウェアを識別するための方法が提供され、この方法は、ASEPフックに関連するアクティビティについて複数の自動開始拡張ポイント(ASEP)を監視すること、および、ASEPフックに関連するアクティビティを介して不要なソフトウェアアプリケーションを検出することを含む。
他の態様では、コンピューティングデバイスのユーザが、不要なソフトウェアを除去するのを支援するためのユーザインターフェースが提供され、このユーザインターフェースは、ユーザのコンピューティングデバイスにインストールされた自動開始実行可能ファイルが含まれる、ユーザに選択可能な項目のリストを備え、このリスト内の実行可能ファイルが、共通のインストレーションから派生した実行可能ファイルのバンドルの一部としてインストールされた場合、このリストは、そのバンドルに関する情報を表示する。
さらに他の態様では、コンピューティングデバイスのソフトウェアにおける自動開始拡張ポイント(ASEP)を発見するための方法が提供され、この方法は、自動開始トレースを実行すること、および、自動開始トレースにおける少なくとも1つの未知のASEPを検出することを含む。
さらに別の態様では、潜在的に不要のソフトウェアの識別を容易にするためのコンピュータ実行可能命令を含むコンピュータ可読媒体が提供され、このコンピュータ実行可能命令は、ASEPフックに関連するアクティビティについて複数の自動開始拡張ポイント(ASEP)を監視するステップと、ASEPフックに関連するアクティビティを介して不要なソフトウェアアプリケーションを検出するステップとを実行する。
さらに別の態様では、コンピューティングデバイスのソフトウェア内の自動開始拡張ポイント(ASEP)の発見を容易にするためのコンピュータ実行可能命令を含むコンピュータ可読媒体が提供され、このコンピュータ実行可能命令は、第1のチェックポイントの作成時に、そのコンピューティングデバイス上に存在することが知られるASEPフックのリストを第1のチェックポイントで格納するステップと、第2のチェックポイントの作成時に、そのコンピューティングデバイス上に存在することが知られるASEPフックのリストを第2のチェックポイントで格納するステップと、第1のチェックポイントにはなく第2のチェックポイントにはある少なくとも1つのASEPを検出するステップとを実行する。
添付の特許請求の範囲で本発明の特徴を詳細に説明するが、本発明およびその利点は、添付の図面と併せて以下の詳細な説明を読めば最も良く理解することができる。
ここでは、好ましい実施形態に関して、自動開始拡張ポイント(auto−start extensibility)を介してスパイウェアを管理するための方法およびシステムを説明するが、本発明の方法およびシステムは、自動開始拡張ポイントを介してスパイウェアを管理することに限定されない。さらに、本明細書に記載の方法およびシステムは、単に例示的なものであり、本発明の精神および範囲から逸脱することなく変形がなされうることは当業者には容易に理解されよう。
本発明は、添付の図面と併せて読むべき以下の詳細な説明により、より完全に理解されよう。本説明では、本発明の様々な実施形態の同様の要素については同じ番号で参照する。本発明は、適切なコンピューティング環境で実装されるものとして説明される。必須ではないが、パーソナルコンピュータによって実行されるプロシージャなどのコンピュータ実行可能命令の一般的コンテキストにおいて本発明を説明する。一般に、プロシージャには、プログラムモジュール、ルーチン、関数、プログラムオブジェクト、コンポーネント、およびデータ構造体などが含まれ、プロシージャは、特定のタスクを実行し、または特定の抽象データ型を実装する。さらに、本発明は、携帯端末、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能家庭用電化製品、ネットワークPC、ミニコンピュータ、およびメインフレームコンピュータなどを含めた、他のコンピュータシステム構成によって実施することができることは、当業者には理解されよう。本発明は、通信ネットワークを介して接続されたリモート処理装置によってタスクが実行される、分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールを、ローカルとリモートの両方のメモリ記憶装置に配置することができる。コンピュータシステムという用語は、分散コンピューティング環境に見られるいくつかのコンピュータのシステムを指すのに使用することもできる。
図1は、本発明を実装することができる適切なコンピューティングシステム環境100の例を示す。コンピューティングシステム環境100は、適切なコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲に関していかなる限定を示唆するものではない。コンピューティング環境100は、例示的動作環境100に示す任意のコンポーネントまたはその組合せに関係するどのような依存関係または要件も有するものとして解釈されるべきではない。本発明の一実施形態は、例示的動作環境100に示す各コンポーネントを含むが、本発明のより典型的な他の実施形態では、不必要なコンポーネント、例えば、ネットワーク通信に必要な入出力装置以外の入出力装置が除外される。
図1を参照すると、本発明を実装するための例示的システムは、コンピュータ110の形態で汎用コンピューティングデバイスを含んでいる。コンピュータ110のコンポーネントには、これらに限定されないが、処理装置120、システムメモリ130、および、システムメモリを含めて様々なシステムコンポーネントを処理装置120に結合するシステムバス121が含まれ得る。システムバス121は、様々なバスアーキテクチャのうち任意のアーキテクチャを使用した、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含めて、いくつかのタイプのうち任意のバス構造とすることができる。このようなアーキテクチャには、限定ではなく例として挙げれば、ISA(業界標準アーキテクチャ)バス、MCA(マイクロチャネルアーキテクチャ)バス、EISA(拡張ISA)バス、VESA(ビデオ電子規格協会)ローカルバス、および、メザニン(Mezzanine)バスとしても知られるPCI(周辺コンポーネント相互接続)バスが含まれる。
コンピュータ110は、多様なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110がアクセスすることができる任意の利用可能な媒体とすることができ、それには、揮発性と不揮発性の両方の媒体、および、リムーバブルと非リムーバブルの両方の媒体が含まれる。コンピュータ可読媒体には、限定ではなく例として、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造体、プログラムモジュール、または他のデータなどの情報を格納するための任意の方法または技術で実装される、揮発性と不揮発性の両方の媒体、および、リムーバブルと非リムーバブルの両方の媒体が含まれる。コンピュータ記憶媒体には、これだけに限定しないが、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリ技術、CD−ROM、DVD(デジタル多用途ディスク)、または他の光ディスクストレージ、あるいは、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気ディスク記憶装置、あるいは、所望の情報を格納するために使用することができコンピュータ110によってアクセスすることができる他の任意の媒体が含まれる。通信媒体は、通常、搬送波または他の移送メカニズムなどの変調されたデータ信号中に、コンピュータ可読命令、データ構造体、プログラムモジュール、または他のデータを具現化し、また任意の情報伝達媒体を含む。用語「変調されたデータ信号」は、信号として情報を符号化するようにセットまたは変更された1つまたは複数の信号特性を有する信号を意味する。限定ではなく例として挙げると、通信媒体には、有線ネットワークまたは直接配線接続などの有線媒体、ならびに、音響、RF、赤外線、および他の無線媒体などの無線媒体が含まれる。上記の媒体の任意の組合せも、コンピュータ可読媒体の範囲に含まれることになる。
システムメモリ130は、コンピュータ記憶媒体を、ROM(リードオンリメモリ)131およびRAM(ランダムアクセスメモリ)132などの揮発性および/または不揮発性のメモリの形態で含む。始動時などにコンピュータ110内の要素間で情報を転送する助けとなる基本的ルーチンを含むBIOS(基本入出力システム)133は、通常、ROM131に格納されている。RAM132は、通常、処理装置120により、即座にアクセス可能および/または現在処理中である、データおよび/またはプログラムモジュールを含む。図1は、限定ではなく例として、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137を示す。
コンピュータ110は、他のリムーバブル/非リムーバブル、および揮発性/不揮発性のコンピュータ記憶媒体を含むこともできる。単に例として示すが、図1では、非リムーバブルで不揮発性の磁気媒体から読み取りまたはそれに書き込むハードディスクドライブ141、リムーバブルで不揮発性の磁気ディスク152から読み取りまたはそれに書き込む磁気ディスクドライブ151、および、CD−ROMまたは他の光媒体などリムーバブルで不揮発性の光ディスク156から読み取りまたはそれに書き込みを行う光ディスクドライブ155を示している。例示的動作環境において使用することができる他のリムーバブル/非リムーバブルで揮発性/不揮発性のコンピュータ記憶媒体には、これだけに限定しないが、磁気テープカセット、フラッシュメモリカード、DVD、デジタルビデオテープ、半導体RAM、および半導体ROMなどが含まれる。ハードディスクドライブ141は、通常、インターフェース140などの非リムーバブルメモリインターフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は、通常、インターフェース150などのリムーバブルメモリインターフェースによってシステムバス121に接続される。
前述の図1に示すドライブおよび関連するコンピュータ記憶媒体は、コンピュータ110のための、コンピュータ可読命令、データ構造体、プログラムモジュール、および他のデータの記憶を提供する。たとえば、図1では、ハードディスクドライブ141が、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147を格納するものとして図示されている。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137と同じものにも異なるものにもすることができることに留意されたい。オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147には、これらが少なくとも異なるコピーであることを示すために、ここでは異なる番号を与えている。ユーザは、タブレットまたは電子デジタイザ164、マイク163、キーボード162、ならびにマウス、トラックボール、またはタッチパッドとして通常は示されるポインティングデバイス161などの入力装置を介して、コマンドおよび情報をコンピュータ110に入力することができる。他の入力装置(図示せず)には、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナなどが含まれ得る。上記その他の入力装置は、多くの場合、システムバスに結合されたユーザ入力インターフェース160を介して処理装置120に接続されるが、パラレルポート、ゲームポート、またはUSB(ユニバーサルシリアルバス)など他のインターフェースおよびバス構造によって接続してもよい。モニタ191または他のタイプの表示装置も、ビデオインターフェース190などのインターフェースを介してシステムバス121に接続される。モニタ191は、タッチスクリーンパネルなどと一体化することもできる。タブレット型のパーソナルコンピュータなどでは、モニタおよび/またはタッチスクリーンパネルは、コンピューティングデバイス110を内蔵するハウジングに物理的に結合することができることに留意されたい。さらに、コンピューティングデバイス110などのコンピュータは、スピーカ197およびプリンタ196など他の出力周辺装置も含むことができ、これらは、出力周辺装置インターフェース195を介して接続することができる。
コンピュータ110は、リモートコンピュータ180など1つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク化された環境で動作することもできる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の共通ネットワークノードとすることができ、図1にはメモリ記憶装置181のみが示されているが、通常、コンピュータ110に関係する上述の要素の多くまたは全部を含む。図1に示す論理接続は、LAN(ローカルエリアネットワーク)171、およびWAN(広域ネットワーク)173を含むが、他のネットワークを含むこともできる。このようなネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいて一般的なものである。例えば、本発明では、コンピュータ110は、発信元マシン(source machine)を含み、データは発信元マシンから移行され、リモートコンピュータ180は、その送信先マシンを含むことができる。ただし、発信元と送信先のマシンを、ネットワークまたは他の任意の手段によって接続する必要はなく、代わりに、発信元プラットフォームによって書き込み、1つまたは複数の送信先プラットフォームによって読み取ることができる任意の媒体を介してデータを移行することもできることに留意されたい。
LANネットワーク環境で使用する場合、コンピュータ110は、ネットワークインターフェースまたはアダプタ170を介してLAN171に接続される。WANネットワーク環境で使用する場合、コンピュータ110は、通常、モデム172、または、インターネットなどのWAN173を介して接続を確立する他の手段を含む。モデム172は、内蔵モデムでも外部のモデムでもよく、ユーザ入力インターフェース160または他の適切なメカニズムを介してシステムバス121に接続することができる。ネットワーク環境では、コンピュータ110に関連して示したプログラムモジュールまたはその部分をリモートメモリ記憶装置に格納することができる。図1に、限定ではなく例として、メモリ装置181に常駐するリモートアプリケーションプログラム185が示されている。ここに示したネットワーク接続は例示であり、コンピュータ間で接続リンクを確立する他の手段を使用することもできることが理解されよう。
典型的なネットワーク環境では、コンピュータ110は、リモートコンピュータ180からインターネットなどの通信ネットワークを介して送信される、データファイルおよび実行可能ファイルを受信する。受信または「ダウンロード」は、コンピュータ110上で現在実行されているプログラムによって自動的に行われるか、または、例えばユーザが特定のURL(ユニフォームリソースロケータ)をウェブブラウザに指示することにより手動で行われる。ユーザに知られずにコンピュータ110にダウンロードされたいくつかの実行可能ファイルが、コンピュータ110に関するユーザの振舞いを監視する場合がある。コンピュータ110にダウンロードされた他の実行可能ファイルが、やはりユーザに知られずに、このような監視プログラムのインストールおよび/または実行を引き起こす場合がある。このような監視プログラムは、一般に「スパイウェア」と呼ばれる。
本発明の実施形態では、スパイウェアのインストレーションを検出するためにASEPの監視を行う。一般に、「自動開始」ソフトウェアプログラムは、ユーザの介入なしに自動的に実行が開始される(例えば、Microsoft Windows(登録商標)オペレーティングシステムにおけるWindows(登録商標)エクスプローラのプログラム)か、もしくは、ユーザによって極めて一般的に実行される(例えば、インターネットウェブブラウザのプログラム)プログラムである。ASEPについては2つの見方をすることができ、つまり、既存の自動開始ソフトウェアアプリケーションに「フック」(すなわち拡張)するものとして、あるいは、オペレーティングシステムの自動開始拡張機能(auto−start extensions)として登録されたスタンドアロンのソフトウェアアプリケーション、例えば、Microsoft Windows(登録商標)オペレーティングシステムにおけるNTサービス、またはUNIX(登録商標)OSにおけるデーモンなどとして捉えることができる。
図2では、本発明の実施形態による、コンピュータオペレーティングシステムを複数組のゲートとして示している。外側ゲート202は、プログラムファイルがインターネット204からユーザのマシンに入る入口点である。ユーザ同意206は、(例えばフリーウェアプログラムを)インストールすることに対する明示的な同意だけでなく、スパイウェアプログラムがフリーウェアにバンドルされているとき、そのスパイウェアプログラムのインストールを許可する暗黙的な同意を含む。不適切なセキュリティ設定208は、インターネットゾーンセキュリティに関する「低い」ユーザ設定、信頼済みサイトのリストにおける不適切なエントリ、および、信頼された発行元のリストの不適切なエントリを含み、そのため、「ドライブバイ(drive−by)」ダウンロードが許容されることになる(すなわち、明示的同意なしに、コントロールがダウンロードされユーザのマシンにインストールされる)。中間ゲート210は、プログラムが、ユーザの視点から実質的に「システムの部分」になるためにシステムにフックすることが可能なASEPである。中間ゲート210により、プログラムがリブートを乗り切り存続することが可能になり、したがって、そのプログラムがユーザのマシン上で常に実行されている機会が最大化される。周知の一般的なASEPのタイプには、ブラウザヘルパーオブジェクト(Browser Helper Object)(BHO)212、およびレイヤードサービスプロバイダ(Layered Service Provider)(LSP)214が含まれる。内部ゲート216は、プログラムファイルを、アクティブな実行中のプログラムインスタンスにインスタンス化するのを制御する。Microsoft Windows(登録商標)オペレーティングシステムでは、内部ゲートは、CreateProcess218、LoadLibrary220、および他のプログラム実行メカニズムを含み、有害の可能性がある任意のプログラムが「既知の良好な(known good)」リストに載っていない場合、それを遮断するために使用される。本発明の実施形態で使用されるASEP監視サービスは、中間ゲート210の識別および監視を行い、すべてのASEPフックを明らかにする。ASEPは、スパイウェアの効率的な管理を可能にするユーザフレンドリな方法で明示される。
本発明の実施形態では、「Gatekeeper」と呼ばれるソフトウェアツールが使用され、スパイウェアおよび潜在的なスパイウェアをシステムから識別し除去する助けとなる。このツールが動作を行うコンポーネントアーキテクチャを図3に示す。Gatekeeperソフトウェアエンジン302は、既知および未知のASEPを介してスパイウェアおよび潜在的スパイウェアを検出するためのいくつかの機能を実行する。ユーザインターフェース304は、ユーザがGatekeeperエンジン302と対話するのを可能にし、好ましくは、API(アプリケーションプログラミングインターフェース)306に対する中継の呼出しによって行われる。ユーザインターフェース304は、スタンドアロンのアプリケーション、ウェブベースのコントロール、コマンドラインインターフェース、ならびに、システムコントロールパネルなどとすることができる。API306は、さらに、他のアプリケーションがGatekeeperエンジン302の機能にアクセスすることを可能にする。Gatekeeperエンジン302は、オペレーティングシステム308から情報を収集し、また、ファイルシステム310を介してアクセスしデータファイルから情報を収集する。Gatekeeperエンジン302は、いくつかの公開OS API312を介して、または、非公開OSレジスタ314に直接アクセスすることにより、オペレーティングシステム308と交信する。Gatekeeperエンジン302とオペレーティングシステム308の間の対話は、さらに、Strider/AskStriderエンジン316などの他のアプリケーションを介して間接的なものとすることができる。Strider/Askstriderエンジン316は、いくつかのトラブルシューティングツールの基盤となるが、これに関して、より完全にはWangらによる"STRIDER A Black-box State-based Approach to Change and Configuration Management and Support", Proceedings of Usenix Large Installation Systems Administration Conference, pp.159-171, October 2003や、"AskStrider What Has Changed on My Machine Lately?", Microsoft Research Technical Report MSR-TR-2004-03, January 2004に記載されており、これらの文献のどの部分も除外することなくその教示のすべてについて、参照により本明細書に援用する。
より詳細には、Gatekeeperエンジン302は、ASEPのアクティビティをフックするためにオペレーティングシステム308を監視する。Gatekeeperエンジン302は、リスト318にある既知のASEPを監視する。Gatekeeperエンジン302は、例えばMicrosoft Windows(登録商標)オペレーティングシステムのプログラムの追加/削除(ARP)サービス320など、登録されたソフトウェアアプリケーションのインベントリと連携して動作する。Gatekeeperエンジン302はまた、災害からリカバリする場合またはその必要があるときにシステム状態を元に戻すために使用することができる、ファイル/構成チェックポイントアプリケーションと連携して動作する。チェックポイントアプリケーションの一例は、Microsoft Windows(登録商標)オペレーティングシステムのシステム復元サービス322である。Gatekeeperエンジン302は、ASEPと、識別されたスパイウェアとの間のフックを除去することにより、コンピュータから識別されたスパイウェアを、ユーザが選択して無効にすることを可能にし、これにより、スパイウェアの自動的な実行が防止される。さらに、Gatekeeperエンジン302は、既知のスパイウェアのシグネチャと公開レジスタ324内のシグネチャを比較することにより、スパイウェアを識別することができる。さらにGatekeeperエンジン302は、レジストリのスナップショットによってマシンの現在の状態と前の状態を比較し、ファイルシステムの差分についてのファイル変更ログ325を使用することにより、スパイウェアを識別することができる。このような状態比較およびファイル変更ログを、自動開始トレースログ326と交差させる(intersect)ことによってスパイウェアプログラムが識別される。
ウェブブラウザアプリケーション327によりインターネットを閲覧する間に、多くのスパイウェアプログラムがインストールされるため、Gatekeeperブラウザヘルパーオブジェクト(BHO)328がウェブブラウザ327のアクティビティを監視するために提供される。BHO328は、その結果をURL(ユニフォームリソースロケータ)トレースログ330に記録し、このログには、ブラウザ327により訪問したウェブページのURLおよびタイムスタンプが、ブラウザ327のインスタンス化についてのプロセス識別番号と一緒に記録される。イベントログ332もまた、インストールプロセスについてのタイムスタンプおよびプロセス識別番号を含めたソフトウェアのインストレーションの詳細を記録するために維持される。
図4は、本発明の実施形態による、GatekeeperなどのASEP監視サービスによって実施されるスパイウェア管理の方法を「ライフサイクル」として示す。ステップ402では、スパイウェアに感染したマシンが与えられると、既存スパイウェアを除去するために、既知の不正シグネチャのデータベース、および、シグネチャに基づくスキャン/除去ツールが使用される。例示的スキャン/除去ツールは、LavaSoftによるAd−Aware、およびSpybotを含む。ステップ404では、望ましくない可能性があるASEPのフック動作を記録し、それについて警告を出し、その動作を遮断することによって、すべてのASEPを継続的に監視する。シグネチャデータベース406は、好ましくは、ユーザに処理可能情報を提示することを可能にするための、既知の良好なASEPフックおよび既知の不正なASEPフックのユーザフレンドリな記述を含む。
ユーザが、(例えばフリーウェアのソフトウェア使用許諾契約に明記されている)バンドルされているスパイウェアプログラムのリスクを判断した後、フリーウェアアプリケーションをインストールすると決定した場合、ステップ408のバンドル追跡により、フリーウェアによってインストールされたすべてのコンポーネントが捕捉され、それらは1つのグループとして表示される。ユーザがグループを単位として管理することを可能にするために、このようなグループは、ユーザフレンドリな名前と共に表示されることが好ましい。ステップ410では、バンドルがインストールされてからのシステムの性能および信頼性が監視され、どの問題も、それを担うコンポーネントと関連付けられる。これらの「信用レポート」により、フリーウェアの機能の「値札」がユーザに提供され、ユーザが、フリーウェアについて費用対価値の判断をすることが可能になる。
スパイウェアの管理方法の有効性は、ASEPリストの完全性に関係する。ステップ412で、監視サービスは、ファイルおよびレジストリのトレース、または他の持続的状態のトレースにおける間接的パターンを解析することにより、オペレーティングシステムのASEP、および頻繁に実行される一般的なソフトウェアのASEPを発見する。あるいは、ステップ414で、監視サービスは、既知の感染済みマシンの揮発的な状態をスキャンして、スパイウェアに関連する実行可能ファイルを識別し、次いで、これを、マシン構成の逆引き参照スキャンの索引として使用して、新しいASEPを識別する。ASEPリストは、ユーザのコンピューティングデバイスにデータベースとして格納され、それによりGatekeeperなどのツールによる参照が可能になることが好ましい。あるいは、ASEPリストは、リモートのコンピューティングデバイスに安全に格納され、ローカルでスキャンするときに、セキュア接続を介してアクセスされる。一実施形態では、ユーザのコンピューティングデバイス上のASEPリストは、例えば、インターネットなどのネットワークを介して、信頼されるASEPデータベース保守ソースから更新情報をダウンロードすることによって、定期的に更新される。あるいは、ユーザのコンピューティングデバイスは、潜在的に有害なプログラムによってフックされ得る未知のASEPを発見したとき、そのデータベースにASEPを追加する。いくつかの実施形態では、ユーザのコンピューティングデバイスは、発見した新しい潜在的ASEPを、信頼されるASEPデータベース保守ソースにアップロードし、したがって、信頼されるソースは、この新しい潜在的ASEPを調べ、これを他のユーザがダウンロードするための更新情報に追加する。さらに他の実施形態では、ユーザのコンピューティングデバイスは、既知のASEPに対する新しいフックを検出し、このフックを、信頼されるASEPデータベース保守ソースにアップロードする。
ステップ416で、ユーザは、バンドルのインストレーションを管理するためのインターフェースと対話する。前述のように、いくつかのインストレーションプログラムは、2つ以上のソフトウェアアプリケーションの「バンドル」をインストールし、それぞれのアプリケーションが、1つまたは複数のASEPフックをインストールする。ユーザは、個別のソフトウェアアプリケーションを無効にするために、バンドルされたソフトウェアから個別のASEPフックを除去するか、または、全部のバンドルを無効にするために、すべてのASEPフックを除去することができる。どちらの場合でも、ユーザは、ソフトウェアコンポーネントが実際には除去されるようにはせず、単にコンポーネントからそれぞれのASEPの「フックを外す」。それによって、これらのコンポーネントが自動的にロードされるのを防止し、ユーザがアプリケーションまたはバンドルを再び有効にすることを決定した場合には、除去されたASEPフックを簡単に復元することができるようになる。
図5を参照すると、ASEPが5つの異なるカテゴリに分類されている。この分類により、ASEPフックを介したスパイウェアの検出および除去を論じるために有用な枠組みが与えられる。Microsoft Windows(登録商標)プラットフォーム上では、ハードウェア、ソフトウェア、ユーザ、およびコンピューティングデバイスのプリファレンス(preference)の情報および設定を格納するために使用するデータベースであるレジストリに、ほとんどのASEPが存在している。わずかに少数のASEPについては、通常、ファイルシステムに存在している。第1のカテゴリ501は、新しいプロセスを開始するASEPであり、例えば、HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Run Registry key、および、%USERPROFILE%/Start Menu/Programs/Startup file folderなどである。これらは、追加のプロセスの自動開始のための特に知られているASEPである。第2のカテゴリ502は、HKLM/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Winlogon/Notify/などの、システムプロセスをフックするASEPであり、これによりDLLをwinlogon.exeに読み込むことが可能になる。第3のカテゴリ503は、ドライバのロードを可能にするASEPであり、例えば、HKLM/System/CurrentControlSet/Control/Class/{4D36E96B−E325−11CE−BFC1−08002BE10318}/Upper Filterは、キーロガ(keylogger)ドライバのロードを可能にし、HKLM/System/CurrentControlSet/Servicesは、汎用ドライバのロードを可能にする。第4のカテゴリ504は、例えばWinsockなど、複数のプロセスをフックするASEPである。Winsockにより、レイヤードサービスプロバイダ(LSP)DLL、または名前空間プロバイダ(NSP)DLLを、Winsockソケットを使用するすべてのプロセス内にロードすることが可能になる。第4のカテゴリ504におけるもう1つのASEPは、HKLM/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Windows/AppInit _Dllsであり、User32.dllにリンクするすべてのプロセス内へのDLLのロードを可能にする。第5のカテゴリ505は、アプリケーション固有のASEPである。例えばHKLM/SOFTWARE/Microsoft/Internet Explorer/Toolbarは、Microsoft Internet Explorerウェブブラウザ内へのツールバーのロードを可能にする。同様に、HKCR/PROTOCOLS/Name−Space HandlerおよびHKCR/PROTOCOLS/Filterにより、Internet Explorerが他の種類のDLLをロードすることが可能になる。
本発明の実施形態では、ASEPの監視は、3つのタイプの変更、すなわち、(1)新しいASEPフックの追加、(2)既存のASEPフックの修正、および(3)既存のASEPフックによりポイントされる実行可能ファイルの修正のいずれについても、すべての既知のASEPを監視する。上記の変更のそれぞれは、オプションの通知を生成し、処理のために、それをユーザに送るかまたは企業管理システムに転送する。信頼された発行元によって署名されたASEPプログラムについての通知に関しては、偽陽性を減らすために、任意選択で抑止することができる。図6は、本発明の実施形態で使用されるユーザ通知警告のスクリーンショットを示す。フリーウェアのスクリーンセーバをインストレーションの間に、5つの新しいASEPフック601〜605がユーザに通知される。「スクリーンセーバ」フックの警告605は予想されている。他の4つの警告601〜604からの情報により(警告をクリックすることによって)ASEPのシグネチャおよび記述データベースを検索することにより、これらの警告が、「eXact Search Bar」および「Bargain Buddy」に属することが明らかになる。次いで、ユーザは、これら2つのソフトウェアについて提供された情報、およびスクリーンセーバによって得られる利益に基づいて、このバンドルを維持するかどうかを、情報を得た上で決定することができる。
同じインストレーションプロセスの間に出現する複数のASEP警告は、通常、それらのASEPが同じバンドルに属するが、この時間ベースのグループ化は、並行するインストレーションに対して頑強でないことがある。例えば、図7は、(ASEPフック703および704を有する)DivXバンドル702と(ASEPフック711〜715を有する)Desktop Destroyer(DD)バンドル710の2つの並行したインストレーションを示す。時間ベースのグループ化は、7つすべてのASEPフックを単一のバンドルに誤ってグループ化する。しかし、本発明の実施形態では、常時オンとなっているStriderレジストリおよびファイル追跡の上にさらに構築されたバンドル追跡技術を用いる。同じプロセスツリーに属するプロセスによって作られたASEPフックは、同じバンドルに割り当てられる。追加/除去プログラム(ARP)の入口は、同じプロセスツリーによって作られ、それらのARP表示名の連結が、バンドル名として使用される。上側のプロセスツリーは、2つのAPR名720および721を有するDivXバンドル702を定義し、下側のツリーは、3つのAPR名722〜724を有するDDバンドルを定義する。
除去のためのARPのエントリを提供していない不正なソフトウェアは、名前を持たないバンドルとして現れる。例えば、あるソフトウェアは、インストレーション時に、ARPのエントリを伴わずに密かに1つのASEPフックを作成する。したがって、このようなソフトウェアについては、潜在的な不要のインストレーションとしてフラグが立てられる。
いくつかの悪質なソフトウェアでは、最初に部分的にインストールを行い、後でユーザが、どのウェブサイトが、不要なソフトウェアのインストールについて実際に責任があるか識別することがより困難になるまで、完全なインストレーションを遅延させる。例えば、あるASEPフックを伴う部分的なインストレーションのあと、あるソフトウェアはその後の何回かのリブートを経たある時点を非確定的に選択し、7つの追加のASEPフックを有するインストレーションを完了する。本発明の実施形態は、このような巧妙な振舞いを捕捉するために、図8に示す以下のようなバンドル追跡を用いる。まず、各ウェブベースのインストレーションを、そのソースURLと相互に関連付けるために、ステップ802で、URLの追跡が実行される。ウェブブラウザの履歴には、訪問したすべてのウェブサイトについてURLおよびタイムスタンプが既に記録されているが、それは、一般的に、ブラウザのすべてのインスタンスについての大域的な履歴であり、数週間後にガーベジ(garbage)として収集されるものであるため、より古いインストレーションに関する情報は除去されることになる。各URLにナビゲートしたウェブブラウザのインスタンスのプロセスIDを記録するために、本発明の実施形態では、カスタマイズされたブラウザヘルパーオブジェクト(「BHO」)を使用し、したがって、ステップ804で、URLトレースをASEPフックトレースと相互に関連付けることができる。BHOは、アクセスされたURLを、いつそのURLがアクセスされたかを示すタイムスタンプと共に、URLトレースログに記録する。URLトレースログのエントリをバンドルトレースログのエントリと相互に関連付けることにより、ウェブベースのインストレーションのソースURLが識別される。潜在的なインストレーションを取り扱うために、バンドル追跡は、各バンドルによって作成されたすべてのファイルを追跡する。後でこれらのファイルのいずれかがインスタンス化され、ASEPフックがさらに作成された場合、ステップ806で、これらの追加のフックは元のバンドルに追加される。アプリケーションをインストールするプロセスまたはコンポーネントを、識別し、次いで、このルートイメージ名をトレースバックして、そのファイルをシステムに追加したバンドルを突き止めることにより、元のバンドルを決定する。
本発明の実施形態では、例えば図9に示すMicrosoft Windows(登録商標)オペレーティングシステムの「追加/削除プログラム」インターフェースなどの改良型のソフトウェアインベントリ管理アプリケーションが提供される。このアプリケーションは、すべてのASEPをスキャンし、バンドルによる現在のフックを表示する。ユーザは、新しくインストールされたバンドルを強調表示するために、バンドルをインストールの時間によってソートすることができる。このアプリケーションにより、バンドルの除去/無効化のための3つの選択肢が提供される。例えば、バンドル名902は、「eXact Search Bar」および「Bargain Buddy」が、「Desktop Destroyer」バンドルの一部分としてインストールされたことを、はっきりと示している。例えば、「DivX Pro Coded Adware|DivX Player」バンドル904は、共通するインストレーションからもたらされた2つのASEPフック、すなわち、GMT.exe906、およびCMESys.exe908を含む。「Desktop Destroyer FREE|eXact Search Bar|Bargain Buddy」バンドル902は、5つのASEPフック910〜914を含む。ユーザがDesktop Destroyerを除去したい場合、ユーザは、バンドル無効化915ボタンをクリックし、マシンをリブートすることができる。これにより、5つのASEPフック910〜914のすべてが除去され、その結果、これらのファイルはマシン上に残存するにもかかわらず、3つのバンドルされているプログラムの自動開始が差し止められる。
あるいは、ユーザは、従来のARPページにある3つのARPの名前を探し、そこで除去されたそれぞれのプログラムを呼び出すことができる。スパイウェアが信頼できないAPR除去プログラムを提供することは珍しくないので、ユーザは、APRによる除去のあと、どのASEPフックも残っていないことを確かめるために、改良型のARPインターフェースで二重の確認をすることができる。改良型インターフェースはまた、既存のシステム復元機能と統合されることが好ましい。除去のオプションが両方とも失敗した場合、ユーザは「復元(Restore)」ボタン917をクリックして、バンドルがインストールされる前に設定されたチェックポイントにまでマシン構成を戻すことができる。
周知のASEPおよび文書に記載されているASEPに加えて、本発明の実施形態により、別の2つの経路を介して新しいASEPが発見される。第1の経路は、スパイウェアプログラムが未知のASEPを使用しているため、ロードされている現在のGatekeeperのバージョンではクリーンアップすることができない実際の感染を有するマシンを、トラブルシューティングすることに関する。この目的のために、Strider TroubleshooterとAskStriderの2つのツールが提供される。この2つのツールについては、Wangらによる前述の参照文献に記載されている。第2の経路は、将来のスパイウェアによってフックされる可能性のある新しいASEPを発見するために、レジストリおよび任意のマシンから収集されたファイルトレースを解析することに関する。新しいASEPが発見されると、スパイウェアの除去の範囲を広げるために、それらは既知のASEPのリストに追加される。同様のASEP発見手順は、システム管理者により、指定のASEPのリストには無いサードパーティまたは内製のアプリケーションにおけるASEPを発見するために利用することもできる。
AskStriderは、Microsoft Windows(登録商標)のタスクマネージャやUNIX(登録商標)のpsコマンドなどの、プロセスをリスト表示するツールに対する拡張機能である。実行中のプロセスのリストを表示するのに加えて、AskStriderは、各プロセスによってロードされたモジュールのリスト、およびシステムによってロードされたドライバのリストを表示する。さらに重要なことに、AskStriderは、ローカルマシンからコンテキスト情報の収集を行って、ユーザが、大量のコンテキスト情報を解析し、その最も興味深い部分を識別するのを支援する。このようなコンテキスト情報は、システム復元ファイル変更ログ、パッチ(patch)インストレーションのためのメタデータ、および、ドライバとデバイスの関連付けを含む。
AskStriderのスクリーンショットの2つの実例を示す図10で、本発明の実施形態で用いられる、ASEPを見つけるためのAskStriderの使用の例を示す。上方のペイン(pane)1002は、システム復元によるファイルのほぼ最終更新のタイムスタンプでソートされたプロセスのリストを表示する。過去1週間以内に更新されたファイル1004は、強調表示されている。上方のペイン1002内のユーザが選択したファイル1005も、異なる色で強調表示されている。下方のペイン1006は、上方のペインで選択されたプロセスによってロードされたモジュールのリストを、同様の時間ソートおよび強調表示で表示する。さらに、ファイルがパッチによりもたらされた場合は、そのファイルが、スパイウェアのインストレーションによりもたらされた可能性がかなり低いことを示すものとして、そのパッチIDが表示される。
図10および11はまた、本発明の実施形態に従って、AskStriderが、新しいASEPを見つけるためにどのように使用されるかを例示している。図10は、プログラムのインストレーションのあと、新しいプロセスDAP.exe1008が開始され、ブラウザのプロセスexplorer.exe1010により、同じインストレーションから、4つの新しく更新されたDLLファイルがロードされた様子を示している。すべての新しいASEPフックを(例えば図9の改良型のARPインターフェースを使用して)無効にし、リブートを行ったのちも、explorer.exe1102は、2つの新しいDLL1104を依然としてロードしている。そのレジストリを、ファイル名DAPIE.dllを使用して検索すると、アプリケーションが、HKCR/PROTOCOLS/Name−Space Handlerで追加のASEPをフックしていることが明らかになる。このような手順を、例えば、AskStriderの表示において、各プロセス/モジュールごとのボタンを提供し、ユーザがボタンをクリックすると、逆引き参照が行われASEPが表示されるようにすることにより、自動化できる可能性がある。次いで、この新しいASEPは、監視すべき既知のASEPのリストに追加される。
AskStriderは、完全に自動であり、たいていは実行するのにかかる時間はわずか1分のみだが、実行プロセス、およびロードされたモジュールを捕捉するのは、スキャンを行うときだけである。スパイウェアプログラムが、未知のASEPを介してインスタンスを作成し、AskStriderが呼び出されるのに先立ち存在する場合、AskStriderは、未知のASEPを明らかにするいかなる情報も捕捉することができないおそれがある。したがって、本発明の実施形態では、このようなシナリオにおいて、ASEPの発見のためにStriderトラブルシュータが使用される。このツールは、感染したマシンのユーザに、感染前に設定された(ファイルおよびレジストリの)システム復元チェックポイントを選択するよう求める。ツールは、チェックポイントでの状態と感染している現在の状態を比較することにより、スパイウェアのインストレーションによるすべての変更を含む差集合を計算する。次いで、この差集合を、(自動開始プロセス中のすべての各ファイルおよびレジストリの読取り/書込みを記録する)「自動開始トレースログ」と交差させることによって、スパイウェアにより行われたすべてのASEPフックを必然的に含むレポートを作成する。
一般に、ASEPプログラムは、(1)ブートプロセスの開始から、マシンがすべての初期化を完了しユーザと対話することができる状態になる時点までの実行ウィンドウを対象とする自動開始トレースにおいて現れ、(2)他の自動開始プログラムに対して固定したファイル名を持つのではなく、拡張ポイント参照によってインスタンス化が行われる。したがって、本発明の実施形態では、任意のマシンからの自動開始トレースを解析して、間接的パターンを識別する、つまり、ファイルまたはレジストリ照会動作の部分として実行可能ファイル名が返され、続いて、その実行可能ファイルのインスタンス化が行われるパターンを識別することによって、新しいASEPを発見する。一般に、検出されるこのような間接化は、3つの特徴的パターンのうちの1つに分類される。第1は、複数のフックを収容することができるASEPである。例えば、HKLM/SOFTWARE/Microsoft/InetStp/Extensionsは、IISサーバに対する複数の管理拡張機能を可能にし、HKLM/SOFTWARE/Microsoft/Cryptography/Defaults/Providerは、複数プロバイダを可能にし、HKLM/SOFTWARE/Microsoft/Windows NT/Current Version/Winlogon/Userinitは、コンマで区切られた文字列で指定された複数の初期化プログラムを可能にする。第2の間接的パターンでは、単一のフックを有するASEPを示す。例えば、Microsoft Windows(登録商標)エクスプローラのASEPの HKCR/Network/SharingHandlerは、1つのハンドラのみを可能にすると考えられる。第3の間接的パターンでは、ファイル名を取り寄せるために追加のクラスID参照を必要とするASEPを示す。例えば、ASEPのHKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/ShellServiceObjectDelayLoadに対するすべてのフックは、クラスIDを含み、クラスIDは、HKCR/CLSID/<Class ID>/InProcServer32から実行可能ファイル名を取り寄せるために追加のレジストリ参照で使用される。
いくつかの事例では、監視するリストに含めるべきかどうか議論の余地があるという意味で「偽陽性」のASEPが作られる可能性がある。本発明の実施形態では、このような事例を監視するかしないかの選択が可能になる。まず、いくつかのDLLファイルは、どの関数もエクスポートせず、データを提供するためのリソースファイルとしてのみ使用され、したがって、これは、ASEPと見なされない場合がある。しかし、コードを実行させるための特定のルーチン(例えば、Microsoft Windows(登録商標)オペレーティングシステムにおけるDllMainなど)が追加される場合、これらのファイルもASEPと見なすことができる。もう1つの事例は、組織に特有のASEPである。例えば、同じ組織内のすべてのマシンが、その組織のIT部門によって導入された自動開始プログラムを実行する場合、その自動開始プログラムに固有のASEPが提示される。明らかに、このようなASEPは、監視のための大域的なリストに追加されるはずがないが、この組織のシステム管理者は、これらのASEPがフックされるのを懸念する場合、これらのASEPを組織のローカルリストに追加したいと考える。
本発明の実施形態により、さらに、ASEPチェックポイントおよび差分比較が提供される。すべての既知のASEPフック、および、チェックポイントを形成するARPレジストリキーを記録するツールが提供される。チェックポイントは、要求時に、または定期的間隔で自動的に記録される。ASEPチェックポイントは、3秒から10秒しか時間を取らずに効率的に作成される。新しいチェックポイントが作られるたびに、ASEPフックおよびAPRキーについての変更を検出するために、新しいチェックポイントとその前のチェックポイントが比較される。これによって、押し付けがましくないやり方で、処理オーバヘッドのない任意の2つの連続したチェックポイントの間の、おおよその時間ベースのバンドル情報が与えられる。
不要なソフトウェアのインストレーションを含めた恣意的なコードの実行をするために不当に利用することが可能なブラウザの脆弱性が、Netscape Navigator、およびMozilla Firefoxを含めて様々なウェブブラウザに存在する。ホームページおよび検索ページに関連する、いくつかのブラウザのASEPは、通常、Windows(登録商標)のレジストリではなく設定ファイルに格納される。例えば、Netscape/Mozillaのプロファイルディレクトリには、2つのユーザプリファレンスファイル、すなわち、(自動生成された既定のプリファレンスを含む)prefs.jsと、(既定のプリファレンスを指定変更するためにユーザが作成することができるオプションのファイルである)user.jsが存在する。スパイウェアは、prefs.js内のuser_pref(“browser.startup.homepage”, “<homepage>”)およびuser_pref(“browser.search.defaultengine”, <search page>)の値を変更することによって、ブラウザのホームページおよび既定の検索ページを乗っ取ることができる。例えば、Lop.comソフトウェアがNetscape/Mozillaのホームページを乗っ取ることが知られている。
ASEPは、Linux、AIX、およびSolarisなどのUNIX(登録商標)オペレーティングシステム上でも見つかり、したがって、本発明の実施形態では、これらのオペレーティングシステム上のスパイウェアの検出を行い、また、UNIX(登録商標)システム上のASEPは、4つのカテゴリに大雑把に分類することができる。第1のカテゴリは、inittabおよびrcファイルであり、例えば/etc/inittabファイルなどがある。システムが起動し初期化するとき、この/etc/inittabファイルにより、initプロセスが行うことが指示される。一般に、このようなファイルによって、initプロセスは、ユーザのログオン(getty)を可能にし、また、/etc/rc.d/rcファイル、および/etc/rc.d/rc.localなどの他のrcファイルで指定されたディレクトリのすべてのプロセスを開始するように求められる。/etc/rc.d/rc.localは、ユーザ(通常は「ルート」レベルのアクセス権を有するユーザ)が、追加のデーモンをロードすることを含めシステムに対する変更をカスタマイズする場所である。第2のカテゴリには、crontabツールが含まれる。cronデーモンは、rcまたはrc.localファイルにより開始し、特定の時間にまたは定期的にプロセスを実行するためのタスクスケジューリングサービスを提供する。Cronは、常に、/etc/passwdファイル内のユーザと合致するエントリを求めてvar/spool/cronを検索し、また、システムエントリを求めて/etc/crontabを検索する。次いで、Cronは、実行するようにスケジュールされたコマンドを実行する。第3のカテゴリは、ASEPとなる可能性があるユーザ環境の設定プロファイル(例えば、bashシェルでのbash、X環境でのxinitrcまたはXdefaults、および、/etc/における他のプロファイル)である。通常、ユーザは、X Windowにログオンするまたはそれを始動させたときに何がロードされるかについて気付いていない。ASEPをフックして、ASEPの位置に応じてシステム全体または特定のユーザアカウントについての端末のアクティビティを記録するために、コマンド「script −fq/tmp/syslog」を含む単純なスクリプトファイルを使用することができる。このような記録は、通常、world−writableである/tmpディレクトリ下にある(ファイル名が「.」で始まる)隠しファイルに記憶される。第4のカテゴリは、ローダブル(loadable)カーネルモジュール(LKM)を含み、LKMは、いくつかのオブジェクトコードであり、新しい機能を提供するために、動的にカーネルにロードすることができる。ほとんどのLKMオブジェクトファイルは、/lib/modulesディレクトリ内にデフォルトで置かれる。ただし、いくつかのカスタマイズされたLKMファイルは、システム上のどこにでも存在することができる。insmodおよびrmmodのプログラムはそれぞれ、LKMの挿入および除去を担当する。
本発明の原理を適用することができる多数の可能な実施形態に照らし、図面に関連して本明細書に記載した実施形態は、説明を目的にしたものにすぎず、本発明の範囲を限定するものとして解釈すべきでないことは理解されよう。例えば、例示の実施形態は、本発明の趣旨から逸脱することなく、その構成および細部を修正することができることは当業者には理解されよう。ソフトウェアモジュールまたはソフトウェアコンポーネントの用語で本発明を記述したが、これをハードウェアコンポーネントで等価に置き換えることができることは当業者には理解されよう。したがって、本明細書に記載の本発明では、すべてのこのような実施形態が、添付の特許請求の範囲およびその均等物の範囲にあるものとして企図されている。
本発明の実施形態による、スパイウェアおよび不要ソフトウェアの検出および管理を実行するためのコンピューティングデバイスの例示的アーキテクチャを示す簡潔な概略図である。 本発明の実施形態による、コンピュータオペレーティングシステムを一連のゲートとして示す図である。 本発明の実施形態による、スパイウェアの検出および除去に使用するコンポーネントアーキテクチャを示す図である。 本発明の実施形態による、スパイウェアの管理方法を示す図である。 本発明の実施形態による、自動開始拡張ポイントのいくつかのカテゴリを示す図である。 本発明の実施形態による、スパイウェアの管理のためのユーザ通知警告を示す図である。 本発明の実施形態による、ソフトウェアバンドルおよびASEPフックの実装の例を示す図である。 本発明の実施形態による、バンドルの管理方法を示す概略的流れ図である。 本発明の実施形態による、バンドルされたスパイウェアの除去および管理のためのユーザインターフェースを示す図である。 本発明の実施形態による、スパイウェアを管理するために使用されるトラブルシューティングツールを示す図である。 本発明の実施形態による、スパイウェアを管理するために使用されるトラブルシューティングツールを示す図である。
符号の説明
120 処理装置
121 システムバス
130 システムメモリ
134 オペレーティングシステム
135 アプリケーションプログラム
136 他のプログラムモジュール
137 プログラムデータ
140 非リムーバブル不揮発性メモリインターフェース
144 オペレーティングシステム
145 アプリケーションプログラム
146 他のプログラムモジュール
147 プログラムデータ
150 リムーバブル不揮発性メモリインターフェース
160 ユーザ入力インターフェース
161 マウス
162 キーボード
170 ネットワークインターフェース
171 ローカルエリアネットワーク
172 モデム
173 ワイドエリアネットワーク
180 リモートコンピュータ
185 リモートアプリケーションプログラム
190 ビデオインターフェース
195 出力周辺装置インターフェース
196 プリンタ
197 スピーカ

Claims (15)

  1. コンピュータにおいて潜在的な不要ソフトウェアアプリケーションを識別するための方法であって、前記コンピュータは、既存の自動開始拡張ポイント(ASEP)に関連付けられた情報を含むASEPリストを有し、前記方法は、
    前記コンピュータに第1のセットのソフトウェアアプリケーションがインストールされると、前記第1のセットのソフトウェアアプリケーションのインストールの前後における前記コンピュータの状態のトレースと前記コンピュータのファイルシステムにおけるファイルのトレースとに基づいて、前記第1のセットのソフトウェアアプリケーションの複数のASEPを識別し、監視することであって、前記複数のASEPは、前記第1のセットのソフトウェアアプリケーションの複数の自動開始実行可能ファイルの実行に応答して第2のセットのソフトウェアアプリケーションの複数の実行可能ファイルの自動実行をフックする構成ポイントであることと
    前記第1のセットのソフトウェアアプリケーションの前記複数の自動開始実行可能ファイルと前記第2のセットのソフトウェアアプリケーションの前記複数の実行可能ファイルとを含む複数のユーザ選択可能な項目のリストと、前記複数のユーザ選択可能な項目のうちの少なくとも1つの項目に対応する実行可能ファイルを無効にするためのユーザ選択可能なオプションとを含む、ユーザインターフェースを提供することと、
    前記ユーザ選択可能なオプションが選択されると、前記複数のASEPと前記少なくとも1つの項目に対応する実行可能ファイルとの間のフックを除去することと、 前記複数のASEPと前記ASEPリストとを比較することによって、前記第1のセットのソフトウェアアプリケーションの前記複数のASEPによって自動実行がフックされる前記第2のセットのソフトウェアアプリケーションに、不要ソフトウェアアプリケーションが含まれるかどうかを検出すること
    を備えることを特徴とする方法。
  2. 前記第2のセットのソフトウェアアプリケーションにおいて前記不要なソフトウェアアプリケーションが検出されたとき、前記複数のASEPと前記不要なソフトウェアアプリケーションの実行可能ファイルとの間のフックを除去することをさらに備えることを特徴とする請求項1に記載の方法。
  3. 前記複数のASEPを識別した後、前記複数のASEPをユーザに通知することをさらに含むことを特徴とする請求項1に記載の方法。
  4. 前記複数のASEPは、1つまたは複数のバンドルとして構成されることを特徴とする請求項1に記載の方法。
  5. 前記コンピュータは、前記第1のセットのソフトウェアアプリケーションをインストールするときにウェブブラウザがアクセスしたウェブページのユニフォームリソースロケータ(URL)情報と、前記ウェブページにアクセスした前記ウェブブラウザのインスタンスのプロセス識別情報とを記録したログを有し、前記方法は、前記第2のセットのソフトウェアアプリケーションにおいて前記不要なソフトウェアアプリケーションが検出されると、
    前記ウェブブラウザのインスタンスについての前記URL情報を前記ログから取り出すこと、
    前記ウェブブラウザのインスタンスによって生成された1つまたは複数のプロセスについての前記プロセス識別情報を前記ログから取り出すこと、および、
    前記取り出されたプロセス識別情報に従って、前記取り出されたURL情報を、前記ウェブブラウザインスタンスによって生成された少なくとも1つのプロセスと関連付けることをさらに備えることを特徴とする請求項に記載の方法。
  6. 前記ユーザインターフェースは、前記複数のユーザ選択可能な項目のリスト内の前記複数の自動開始実行可能ファイルのいずれか1つの自動開始実行可能ファイル前記第2のセットのソフトウェアアプリケーションの前記複数の実行可能ファイルのバンドルの一部としてインストールされたことを示す情報をさらに表示することを特徴とする請求項1に記載の方法
  7. 前記ユーザインターフェースの前記ユーザ選択可能なオプションは、前記複数のユーザ選択可能項目のうち前記少なくとも1つの項目対応する前記実行可能ファイルを含むバンドルを無効にすることを特徴とする請求項に記載の方法
  8. 前記ユーザインターフェースは、以前に記録されたチェックポイントまで前記コンピュータのシステムを復元するためのユーザ選択可能オプションをさらに備えることを特徴とする請求項に記載の方法
  9. コンピュータに、潜在的な不要ソフトウェアアプリケーションを識別するための処理を実行させるコンピュータ実行可能命令を記憶したコンピュータ可読記憶媒体であって、前記コンピュータは、既存の自動開始拡張ポイント(ASEP)に関連付けられた情報を含むASEPリストを有し、前記コンピュータ実行可能命令は、前記コンピュータに、
    前記コンピュータに第1のセットのソフトウェアアプリケーションがインストールされると、前記第1のセットのソフトウェアアプリケーションのインストールの前後における前記コンピュータの状態のトレースと前記コンピュータのファイルシステムにおけるファイルのトレースとに基づいて、前記第1のセットのソフトウェアアプリケーションの複数のASEPを識別し、監視するステップであって、前記複数のASEPは、前記第1のセットのソフトウェアアプリケーションの複数の自動開始実行可能ファイルの実行に応答して第2のセットのソフトウェアアプリケーションの複数の実行可能ファイルの自動実行をフックする構成ポイントである、ステップと、
    前記第1のセットのソフトウェアアプリケーションの前記複数の自動開始実行可能ファイルと前記第2のセットのソフトウェアアプリケーションの前記複数の実行可能ファイルとを含む複数のユーザ選択可能な項目のリストと、前記複数のユーザ選択可能な項目のうちの少なくとも1つの項目に対応する実行可能ファイルを無効にするためのユーザ選択可能なオプションとを含む、ユーザインターフェースを提供するステップと、
    前記ユーザ選択可能なオプションが選択されると、前記複数のASEPと前記少なくとも1つの項目に対応する実行可能ファイルとの間のフックを除去するステップと、 前記複数のASEPと前記ASEPリストとを比較することによって、前記第1のセットのソフトウェアアプリケーションの前記複数のASEPによって自動実行がフックされる前記第2のセットのソフトウェアアプリケーションに、不要ソフトウェアアプリケーションが含まれるかどうかを検出するステップ
    含む処理を実行させることを特徴とするコンピュータ可読記憶媒体。
  10. 前記処理は、前記第2のセットのソフトウェアアプリケーションにおいて前記不要なソフトウェアアプリケーションが検出されたとき、前記複数のASEPと前記不要なソフトウェアアプリケーションの実行ファイルとの間のフックを取り除くステップをさらに備えることを特徴とする請求項に記載のコンピュータ可読記憶媒体。
  11. 前記処理は、前記複数のASEPを識別した後、前記複数のASEPをユーザに通知するステップをさらに含むことを特徴とする請求項9に記載のコンピュータ可読記憶媒体。
  12. 前記複数のASEPは、1つまたは複数のバンドルとして構成されることを特徴とする請求項9に記載のコンピュータ可読記憶媒体。
  13. 前記コンピュータは、前記第1のセットのソフトウェアアプリケーションをインストールするときにウェブブラウザがアクセスしたウェブページのユニフォームリソースロケータ(URL)情報と、前記ウェブページにアクセスした前記ウェブブラウザのインスタンスのプロセス識別情報とを記録したログを有し、前記処理は、前記第2のセットのソフトウェアアプリケーションにおいて前記不要なソフトウェアアプリケーションが検出されると、
    前記ウェブブラウザのインスタンスについての前記URL情報を前記ログから取り出すステップと、
    前記ウェブブラウザのインスタンスによって生成された1つまたは複数のプロセスについての前記プロセス識別情報を前記ログから取り出すステップと、
    前記取り出されたプロセス識別情報に従って、前記取り出されたURL情報を、前記ウェブブラウザのインスタンスによって生成された少なくとも1つのプロセスと関連付けるステップとをさらに含むことを特徴とする請求項9に記載のコンピュータ可読記憶媒体。
  14. 前記ユーザインターフェースは、前記複数のユーザ選択可能な項目のリスト内の前記複数の自動開始実行可能ファイルのいずれか1つの自動開始実行可能ファイルが、前記第2のセットのソフトウェアアプリケーションの前記複数の実行可能ファイルのバンドルの一部としてインストールされたことを示す情報をさらに表示することを特徴とする請求項9に記載のコンピュータ可読記憶媒体。
  15. 前記ユーザインターフェースの前記ユーザ選択可能なオプションは、前記複数のユーザ選択可能な項目のうち前記少なくとも1つの項目に対応する前記実行可能ファイルを含むバンドルを無効にすることを特徴とする請求項9に記載のコンピュータ可読記憶媒体。
JP2005157138A 2004-05-28 2005-05-30 自動開始拡張ポイントを介したスパイウェアおよび不要ソフトウェアの管理 Expired - Fee Related JP4807970B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US57532204P 2004-05-28 2004-05-28
US60/575,322 2004-05-28
US10/952,336 US20050268112A1 (en) 2004-05-28 2004-09-28 Managing spyware and unwanted software through auto-start extensibility points
US10/952,336 2004-09-28

Publications (2)

Publication Number Publication Date
JP2005339565A JP2005339565A (ja) 2005-12-08
JP4807970B2 true JP4807970B2 (ja) 2011-11-02

Family

ID=35058106

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005157138A Expired - Fee Related JP4807970B2 (ja) 2004-05-28 2005-05-30 自動開始拡張ポイントを介したスパイウェアおよび不要ソフトウェアの管理

Country Status (5)

Country Link
US (1) US20050268112A1 (ja)
EP (1) EP1605332A3 (ja)
JP (1) JP4807970B2 (ja)
KR (1) KR20060046231A (ja)
CN (1) CN1740945B (ja)

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8707251B2 (en) * 2004-06-07 2014-04-22 International Business Machines Corporation Buffered viewing of electronic documents
US20060015940A1 (en) * 2004-07-14 2006-01-19 Shay Zamir Method for detecting unwanted executables
US20060015939A1 (en) * 2004-07-14 2006-01-19 International Business Machines Corporation Method and system to protect a file system from viral infections
US20060069675A1 (en) * 2004-09-30 2006-03-30 Ogilvie John W Search tools and techniques
US7480683B2 (en) 2004-10-01 2009-01-20 Webroot Software, Inc. System and method for heuristic analysis to identify pestware
EP1828902A4 (en) * 2004-10-26 2009-07-01 Rudra Technologies Pte Ltd SYSTEM AND METHOD FOR IDENTIFYING AND REMOVING MALWARE ON A COMPUTER SYSTEM
US7654590B2 (en) 2005-01-04 2010-02-02 Illinois Tool Works, Inc. Magnetic appliance latch
US20060212940A1 (en) * 2005-03-21 2006-09-21 Wilson Michael C System and method for removing multiple related running processes
US7685149B2 (en) * 2005-03-28 2010-03-23 Microsoft Corporation Identifying and removing potentially unwanted software
US7565695B2 (en) * 2005-04-12 2009-07-21 Webroot Software, Inc. System and method for directly accessing data from a data storage medium
US7591016B2 (en) * 2005-04-14 2009-09-15 Webroot Software, Inc. System and method for scanning memory for pestware offset signatures
US7571476B2 (en) * 2005-04-14 2009-08-04 Webroot Software, Inc. System and method for scanning memory for pestware
US7349931B2 (en) 2005-04-14 2008-03-25 Webroot Software, Inc. System and method for scanning obfuscated files for pestware
US8316446B1 (en) * 2005-04-22 2012-11-20 Blue Coat Systems, Inc. Methods and apparatus for blocking unwanted software downloads
US8060860B2 (en) * 2005-04-22 2011-11-15 Apple Inc. Security methods and systems
US7730532B1 (en) * 2005-06-13 2010-06-01 Symantec Corporation Automatic tracking cookie detection
US7730040B2 (en) * 2005-07-27 2010-06-01 Microsoft Corporation Feedback-driven malware detector
US7712132B1 (en) * 2005-10-06 2010-05-04 Ogilvie John W Detecting surreptitious spyware
US20070168285A1 (en) * 2006-01-18 2007-07-19 Jurijs Girtakovskis Systems and methods for neutralizing unauthorized attempts to monitor user activity
US7716530B2 (en) * 2006-02-28 2010-05-11 Microsoft Corporation Thread interception and analysis
US20090157803A1 (en) * 2006-03-16 2009-06-18 Aerielle Technologies, Inc. Method for capture, aggregation, storage, and transfer of internet content for time-shifted playback on a portable multimedia device
US20070250818A1 (en) * 2006-04-20 2007-10-25 Boney Matthew L Backwards researching existing pestware
US8201243B2 (en) * 2006-04-20 2012-06-12 Webroot Inc. Backwards researching activity indicative of pestware
US8181244B2 (en) * 2006-04-20 2012-05-15 Webroot Inc. Backward researching time stamped events to find an origin of pestware
US20070289019A1 (en) * 2006-04-21 2007-12-13 David Lowrey Methodology, system and computer readable medium for detecting and managing malware threats
US8888585B1 (en) * 2006-05-10 2014-11-18 Mcafee, Inc. Game console system, method and computer program product with anti-malware/spyware and parental control capabilities
US8065736B2 (en) * 2006-06-06 2011-11-22 Microsoft Corporation Using asynchronous changes to memory to detect malware
US7890756B2 (en) * 2006-06-14 2011-02-15 International Business Machines Corporation Verification system and method for accessing resources in a computing environment
US20080005797A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Identifying malware in a boot environment
US8190868B2 (en) 2006-08-07 2012-05-29 Webroot Inc. Malware management through kernel detection
US8056134B1 (en) 2006-09-10 2011-11-08 Ogilvie John W Malware detection and identification via malware spoofing
US9639696B1 (en) * 2006-09-29 2017-05-02 Symantec Operating Corporation Method and apparatus for analyzing end user license agreements
WO2008067371A2 (en) * 2006-11-29 2008-06-05 Wisconsin Alumni Research Foundation System for automatic detection of spyware
JP2010517170A (ja) * 2007-01-26 2010-05-20 ヴァーダシス・インコーポレーテッド 不正侵入された顧客マシンとの信頼された取引の保証
US9021590B2 (en) * 2007-02-28 2015-04-28 Microsoft Technology Licensing, Llc Spyware detection mechanism
US8413247B2 (en) * 2007-03-14 2013-04-02 Microsoft Corporation Adaptive data collection for root-cause analysis and intrusion detection
US8955105B2 (en) * 2007-03-14 2015-02-10 Microsoft Corporation Endpoint enabled for enterprise security assessment sharing
US8959568B2 (en) * 2007-03-14 2015-02-17 Microsoft Corporation Enterprise security assessment sharing
US20080229419A1 (en) * 2007-03-16 2008-09-18 Microsoft Corporation Automated identification of firewall malware scanner deficiencies
US8424094B2 (en) * 2007-04-02 2013-04-16 Microsoft Corporation Automated collection of forensic evidence associated with a network security incident
US9092823B2 (en) * 2007-06-01 2015-07-28 F-Secure Oyj Internet fraud prevention
US8296848B1 (en) * 2007-06-20 2012-10-23 Symantec Corporation Control flow redirection and analysis for detecting vulnerability exploitation
US8082218B2 (en) * 2007-08-21 2011-12-20 Microsoft Corporation Analysis of software conflicts
US8341736B2 (en) 2007-10-12 2012-12-25 Microsoft Corporation Detection and dynamic alteration of execution of potential software threats
US20090100519A1 (en) * 2007-10-16 2009-04-16 Mcafee, Inc. Installer detection and warning system and method
US20090144821A1 (en) * 2007-11-30 2009-06-04 Chung Shan Institute Of Science And Technology, Armaments Bureau, M.N.D. Auxiliary method for investigating lurking program incidents
US8635701B2 (en) * 2008-03-02 2014-01-21 Yahoo! Inc. Secure browser-based applications
US20090292735A1 (en) * 2008-05-22 2009-11-26 Microsoft Corporation Decluttering a computing system
KR101074624B1 (ko) * 2008-11-03 2011-10-17 엔에이치엔비즈니스플랫폼 주식회사 브라우저 기반 어뷰징 방지 방법 및 시스템
US8099784B1 (en) * 2009-02-13 2012-01-17 Symantec Corporation Behavioral detection based on uninstaller modification or removal
US11489857B2 (en) 2009-04-21 2022-11-01 Webroot Inc. System and method for developing a risk profile for an internet resource
WO2012039726A1 (en) * 2009-11-04 2012-03-29 Georgia Tech Research Corporation Systems and methods for secure in-vm monitoring
EP2400387B1 (de) * 2010-06-25 2013-03-13 AVG Netherlands B.V. Verfahren zur Performanceverbesserung von Computern
US20120030760A1 (en) * 2010-08-02 2012-02-02 Long Lu Method and apparatus for combating web-based surreptitious binary installations
US8781985B2 (en) * 2010-12-14 2014-07-15 Microsoft Corporation Addressing system degradation by application disabling
US10356106B2 (en) 2011-07-26 2019-07-16 Palo Alto Networks (Israel Analytics) Ltd. Detecting anomaly action within a computer network
CN102722375A (zh) * 2012-06-08 2012-10-10 四川川大智胜软件股份有限公司 基于x协议的景象记录与回放的实现方法
CN103577754B (zh) * 2012-08-02 2018-05-08 腾讯科技(深圳)有限公司 插件安装的检测方法及装置
CN103685150B (zh) * 2012-09-03 2015-08-12 腾讯科技(深圳)有限公司 上传文件的方法和装置
US8732834B2 (en) * 2012-09-05 2014-05-20 Symantec Corporation Systems and methods for detecting illegitimate applications
RU2531565C2 (ru) 2012-09-28 2014-10-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ анализа событий запуска файлов для определения рейтинга их безопасности
CN103019674B (zh) * 2012-11-15 2016-09-28 北京奇虎科技有限公司 注册表重定向方法和装置
CN103034803B (zh) * 2012-11-29 2016-03-09 北京奇虎科技有限公司 误装软件提示系统
CN102929768B (zh) * 2012-11-29 2016-06-01 北京奇虎科技有限公司 提示误装软件的方法和客户端
US9979739B2 (en) 2013-01-16 2018-05-22 Palo Alto Networks (Israel Analytics) Ltd. Automated forensics of computer systems using behavioral intelligence
CN103235913B (zh) * 2013-04-03 2016-12-28 北京奇虎科技有限公司 一种用于识别、拦截捆绑软件的系统、设备及方法
CN104679785B (zh) * 2013-12-02 2020-06-05 腾讯科技(深圳)有限公司 一种区分软件类型的方法和装置
CN103631628B (zh) * 2013-12-16 2017-04-05 北京奇虎科技有限公司 软件清理方法和系统
CN103646209B (zh) * 2013-12-20 2017-01-04 北京奇虎科技有限公司 基于云安全拦截捆绑软件的方法和装置
KR101585968B1 (ko) * 2014-06-16 2016-01-15 주식회사 예티소프트 웹 쉘 탐지 장치와 이를 이용한 함수 실행 제어 방법
CN104050409B (zh) * 2014-06-30 2016-10-05 安一恒通(北京)科技有限公司 一种识别被捆绑软件的方法及其装置
CN104123490A (zh) * 2014-07-02 2014-10-29 珠海市君天电子科技有限公司 恶意捆绑软件的处理方法、装置和移动终端
US9413774B1 (en) * 2014-10-27 2016-08-09 Palo Alto Networks, Inc. Dynamic malware analysis of a URL using a browser executed in an instrumented virtual machine environment
US10089095B2 (en) * 2015-05-06 2018-10-02 Mcafee, Llc Alerting the presence of bundled software during an installation
US10075461B2 (en) 2015-05-31 2018-09-11 Palo Alto Networks (Israel Analytics) Ltd. Detection of anomalous administrative actions
CN106407098B (zh) * 2015-07-27 2021-06-11 腾讯科技(深圳)有限公司 一种应用程序状态监测方法及装置
CN105138366A (zh) * 2015-08-24 2015-12-09 百度在线网络技术(北京)有限公司 一种识别软件的静默安装的方法与装置
RU2634177C1 (ru) * 2016-05-20 2017-10-24 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения нежелательного программного обеспечения
EP3246840B1 (en) * 2016-05-20 2019-05-22 AO Kaspersky Lab System and method of detecting unwanted software
US10686829B2 (en) 2016-09-05 2020-06-16 Palo Alto Networks (Israel Analytics) Ltd. Identifying changes in use of user credentials
CN108055582A (zh) * 2017-12-14 2018-05-18 深圳市雷鸟信息科技有限公司 应用安装方法及智能电视
US10977364B2 (en) 2018-02-16 2021-04-13 Microsoft Technology Licensing, Llc System and method for monitoring effective control of a machine
EP3769247B1 (en) * 2018-03-22 2023-07-26 Morphisec Information Security 2014 Ltd. System and method for preventing unwanted bundled software installation
US10999304B2 (en) 2018-04-11 2021-05-04 Palo Alto Networks (Israel Analytics) Ltd. Bind shell attack detection
CN109145591B (zh) * 2018-09-10 2021-11-16 上海连尚网络科技有限公司 应用程序的插件加载方法
US11184376B2 (en) 2019-01-30 2021-11-23 Palo Alto Networks (Israel Analytics) Ltd. Port scan detection using destination profiles
US11070569B2 (en) 2019-01-30 2021-07-20 Palo Alto Networks (Israel Analytics) Ltd. Detecting outlier pairs of scanned ports
US11184378B2 (en) 2019-01-30 2021-11-23 Palo Alto Networks (Israel Analytics) Ltd. Scanner probe detection
US11316872B2 (en) 2019-01-30 2022-04-26 Palo Alto Networks (Israel Analytics) Ltd. Malicious port scan detection using port profiles
US11184377B2 (en) 2019-01-30 2021-11-23 Palo Alto Networks (Israel Analytics) Ltd. Malicious port scan detection using source profiles
US11316873B2 (en) 2019-06-28 2022-04-26 Bank Of America Corporation Detecting malicious threats via autostart execution point analysis
US11012492B1 (en) 2019-12-26 2021-05-18 Palo Alto Networks (Israel Analytics) Ltd. Human activity detection in computing device transmissions
US11509680B2 (en) 2020-09-30 2022-11-22 Palo Alto Networks (Israel Analytics) Ltd. Classification of cyber-alerts into security incidents
RU2762079C1 (ru) * 2021-03-24 2021-12-15 Федеральное государственное бюджетное образовательное учреждение высшего образования "Владивостокский государственный университет экономики и сервиса" (ВГУЭС) Способ обнаружения вредоносных программ и элементов
US11799880B2 (en) 2022-01-10 2023-10-24 Palo Alto Networks (Israel Analytics) Ltd. Network adaptive alert prioritization system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0830611A4 (en) * 1995-06-02 2007-05-09 Cisco Systems Inc TELECONTROL OF COMPUTER PROGRAMS
US6687902B1 (en) * 1999-08-05 2004-02-03 International Business Machines Corporation Method, system, and program for deleting user selected file sets of a program
US6785818B1 (en) * 2000-01-14 2004-08-31 Symantec Corporation Thwarting malicious registry mapping modifications and map-loaded module masquerade attacks
CN1262945C (zh) * 2000-02-24 2006-07-05 英业达股份有限公司 一种可防止电子邮件病毒的电子邮件处理系统
US20020178375A1 (en) * 2001-01-31 2002-11-28 Harris Corporation Method and system for protecting against malicious mobile code
US7356736B2 (en) * 2001-09-25 2008-04-08 Norman Asa Simulated computer system for monitoring of software performance
CN1352426A (zh) * 2001-11-26 2002-06-05 北京实达铭泰计算机应用技术开发有限公司 一种计算机病毒防御方法
US6981248B2 (en) * 2002-05-02 2005-12-27 International Business Machines Corporation Conditional breakpoint encountered indication
US20040006715A1 (en) * 2002-07-05 2004-01-08 Skrepetos Nicholas C. System and method for providing security to a remote computer over a network browser interface
US7487543B2 (en) * 2002-07-23 2009-02-03 International Business Machines Corporation Method and apparatus for the automatic determination of potentially worm-like behavior of a program
GB2391965B (en) * 2002-08-14 2005-11-30 Messagelabs Ltd Method of, and system for, heuristically detecting viruses in executable code
US7832011B2 (en) * 2002-08-30 2010-11-09 Symantec Corporation Method and apparatus for detecting malicious code in an information handling system
US7543238B2 (en) * 2003-01-21 2009-06-02 Microsoft Corporation System and method for directly accessing functionality provided by an application

Also Published As

Publication number Publication date
US20050268112A1 (en) 2005-12-01
CN1740945B (zh) 2011-01-19
EP1605332A2 (en) 2005-12-14
JP2005339565A (ja) 2005-12-08
EP1605332A3 (en) 2006-04-05
KR20060046231A (ko) 2006-05-17
CN1740945A (zh) 2006-03-01

Similar Documents

Publication Publication Date Title
JP4807970B2 (ja) 自動開始拡張ポイントを介したスパイウェアおよび不要ソフトウェアの管理
US11687653B2 (en) Methods and apparatus for identifying and removing malicious applications
US7765592B2 (en) Changed file identification, software conflict resolution and unwanted file removal
Wang et al. Gatekeeper: Monitoring Auto-Start Extensibility Points (ASEPs) for Spyware Management.
US9886578B2 (en) Malicious code infection cause-and-effect analysis
Wang et al. Detecting stealth software with strider ghostbuster
JP4903879B2 (ja) システム解析および管理
US7870612B2 (en) Antivirus protection system and method for computers
JP5011436B2 (ja) コンピュータプログラムの悪意ある行為を見つける方法及び装置
US20140053267A1 (en) Method for identifying malicious executables
US7669059B2 (en) Method and apparatus for detection of hostile software
US7665139B1 (en) Method and apparatus to detect and prevent malicious changes to tokens
US8607339B2 (en) Systems and methods for improved identification and analysis of threats to a computing system
KR101086203B1 (ko) 악성 프로세스의 행위를 판단하여 사전에 차단하는 악성프로세스 사전차단 시스템 및 방법
US20060236108A1 (en) Instant process termination tool to recover control of an information handling system
US8201253B1 (en) Performing security functions when a process is created
US11763004B1 (en) System and method for bootkit detection

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080509

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110225

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110524

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110527

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110725

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110809

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110816

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140826

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees