(57)【要約】  拡張機能マネージャが、コンピューティングデバイスにインストールされるブラウザ拡張機能がブラウザアプリケーションの動作を修正するように構成されることを特定し得る。拡張機能マネージャは、ブラウザ拡張機能がブラウザアプリケーション内に提示されるコンテンツを修正する手法に基づいてブラウザ拡張機能が悪意のあるブラウザ拡張機能であると判定し得る。拡張機能マネージャは、ブラウザ拡張機能が悪意のあるブラウザ拡張機能であるとの判定に応じてブラウザ拡張機能を無効化し、それから、コンピューティングデバイスから拡張機能マネージャをアンインストールするアンインストールプロセスを開始し得る。
2019502973.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイスにインストールされるブラウザ拡張機能がブラウザアプリケーションの動作を修正するように構成されることを拡張機能マネージャによって特定するステップと、
前記ブラウザ拡張機能が前記ブラウザアプリケーション内に提示されるコンテンツを修正する手法に基づいて前記ブラウザ拡張機能が悪意のあるブラウザ拡張機能であると前記拡張機能マネージャによって判定するステップと、
前記ブラウザ拡張機能が悪意のあるブラウザ拡張機能であるとの判定に応じて、前記ブラウザ拡張機能を前記拡張機能マネージャによって前記ブラウザアプリケーション内で無効化するステップであって、前記ブラウザ拡張機能を無効化することにより、前記ブラウザ拡張機能が前記ブラウザアプリケーション内に提示されるコンテンツを修正することを防止する、ステップと、
前記ブラウザ拡張機能の無効化が完了すると、前記コンピューティングデバイスから前記拡張機能マネージャをアンインストールするアンインストールプロセスを前記拡張機能マネージャによって開始するステップと
を含む、方法。
【請求項２】
前記コンピューティングデバイスにおいて提示されるユーザインターフェース内に、前記ブラウザ拡張機能を悪意のあるブラウザ拡張機能として特定するテキストまたはグラフィカルな情報の視覚的表示を提供するステップと、
前記ブラウザ拡張機能を悪意のあるブラウザ拡張機能として特定する前記テキストまたはグラフィカルな情報の表示に応じて、前記ブラウザ拡張機能が無効化されることを要求するユーザ入力を受け取るステップと
をさらに含み、
前記ブラウザ拡張機能を前記拡張機能マネージャによって無効化するステップが、前記コンピューティングデバイスにおいて提示される前記ユーザインターフェースを通じて、前記ブラウザ拡張機能が無効化されることを要求する前記ユーザ入力を受け取るステップに応じて実行される、請求項1に記載の方法。
【請求項３】
前記ブラウザ拡張機能を無効化するステップが、前記ブラウザ拡張機能をアンインストールするステップを含む、請求項1または2に記載の方法。
【請求項４】
前記ブラウザ拡張機能が悪意のあるブラウザ拡張機能であると判定するステップが、
ブラウザアプリケーション内に提示されるコンテンツを修正するブラウザ拡張機能として前に特定された悪意のあるブラウザ拡張機能のリストを記憶するメモリデバイスに前記拡張機能マネージャによってアクセスするステップと、
前記メモリデバイスに記憶された悪意のあるブラウザ拡張機能の前記リストに前記ブラウザ拡張機能が含まれると判定するステップと
を含む、請求項1から3のいずれか1項に記載の方法。
【請求項５】
前記ブラウザ拡張機能が悪意のあるブラウザ拡張機能であると判定するステップが、所与のネットワークロケーションから得られ、かつ前記ブラウザアプリケーション内に表示される主コンテンツの表示に、前記ブラウザ拡張機能が認可されていないコンテンツを挿入すると判定するステップを含み、前記認可されていないコンテンツが、前記主コンテンツの前記所与のネットワークロケーションとは異なるネットワークロケーションから得られる、請求項1から4のいずれか1項に記載の方法。
【請求項６】
前記ブラウザ拡張機能が悪意のあるブラウザ拡張機能であると判定するステップが、前記ブラウザアプリケーションによって表示するために前記コンピューティングデバイスによって得られた認可されたコンテンツの表示を前記ブラウザ拡張機能が遮断すると判定するステップを含み、前記認可されたコンテンツが、前記ブラウザアプリケーションによって要求された所与のウェブページに含まれる主コンテンツ、または、前記所与のウェブページのコードの実行によって前記ブラウザアプリケーションにより要求されるサードパーティコンテンツのうちの1つである、請求項1から5のいずれか1項に記載の方法。
【請求項７】
前記ブラウザ拡張機能が悪意のあるブラウザ拡張機能であると判定するステップが、前記ブラウザ拡張機能が検索バーを前記ブラウザアプリケーションの表示の一部として表示するフォースパーティ検索バー拡張機能であると判定するステップを含む、請求項1から6のいずれか1項に記載の方法。
【請求項８】
前記ブラウザ拡張機能が悪意のあるブラウザ拡張機能であると判定するステップが、前記ブラウザ拡張機能がユーザからの要求と無関係に外部サーバと通信するか、または、そのような通信のために前記ユーザによって要求された所与のウェブページに含まれるコードの実行を通じて外部サーバと通信すると判定するステップを含む、請求項1から7のいずれか1項に記載の方法。
【請求項９】
データおよび命令を記憶するメモリと、
前記メモリに記憶された命令を実行する1つまたは複数のプロセッサと
を含み、前記命令が、請求項1から8のいずれか1項に記載の方法を実行するように構成される拡張機能マネージャを前記1つまたは複数のプロセッサに実行させる、コンピューティングデバイス。
【請求項１０】
コンピュータプログラムで符号化されたコンピュータストレージ媒体であって、前記コンピュータプログラムが、データ処理装置によって実行されると、前記データ処理装置に、請求項1から8のいずれか1項に記載の方法を含む動作を実行させる命令を記憶したコンピュータストレージ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、概して、悪意のある不所望のコンピュータ拡張機能の自動化された特定および無効化に関する。
【背景技術】
【０００２】
インターネットは、世界中のユーザの間の情報のやりとりおよび取引を容易にする。コンピューティングシステムは、ユーザにコンテンツを提示するためにウェブブラウザを使用する。ユーザは、意図的にまたは意図せずにコンピュータにソフトウェアをインストールする可能性があり、そのソフトウェアは、ブラウザによって提示される情報の提示を変更するか、あるいはそうでなければブラウザの動作またはそのソフトウェアがインストールされるコンピュータもしくは遠隔のコンピューティングシステムとのブラウザのインタラクションを変更する可能性がある。ブラウザの動作を変更するソフトウェアは、ブラウザにインストールされる「ブラウザ拡張機能」と呼ばれることがある。
【発明の概要】
【課題を解決するための手段】
【０００３】
本明細書は、集合的にならず者拡張機能(rogue extension)と呼ばれる悪意のあるまたはそうでなければ不所望のもしくは望ましくないブラウザ拡張機能を自動的に特定し、無効化するための技法、方法、システム、およびその他のメカニズムを説明する。概して、コンピューティングデバイスにインストールされたブラウザ拡張機能マネージャが、以下で検討されるように、悪意のあるブラウザ拡張機能を特定するための様々な技法のうちの1つまたは複数を使用して、コンピューティングデバイスのブラウザにインストールされた1つまたは複数のブラウザ拡張機能を悪意のあるブラウザ拡張機能であるものとして特定することができる。拡張機能マネージャは、特定された悪意のあるブラウザ拡張機能を(たとえば、特定された悪意のあるブラウザ拡張機能のアクセスを無効化する、アンインストールする、または制限することによって)自動的に無効化することができる。悪意のあるブラウザ拡張機能の無効化が完了すると、拡張機能マネージャは、コンピューティングデバイスからそれ自体を自動的にアンインストールすることができる。
【０００４】
概して、本明細書に記載の主題の1つの革新的な態様は、コンピューティングデバイスにインストールされるブラウザ拡張機能がブラウザアプリケーションの動作を修正するように構成されることを拡張機能マネージャによって特定するステップと、ブラウザ拡張機能がブラウザアプリケーション内に提示されるコンテンツを修正する手法に基づいてブラウザ拡張機能が悪意のあるブラウザ拡張機能であると判定するステップと、ブラウザ拡張機能が悪意のあるブラウザ拡張機能であるとの判定に応じて、ブラウザ拡張機能を無効化するステップであって、ブラウザ拡張機能がブラウザアプリケーション内に提示されるコンテンツを修正することを防止する、ステップと、ブラウザ拡張機能の無効化が完了すると、コンピューティングデバイスから拡張機能マネージャをアンインストールするアンインストールプロセスを開始するステップとを含む方法に具現化され得る。
【０００５】
これらのおよびその他の実施形態は、それぞれ、任意選択で、以下の特徴のうちの1つまたは複数を含む可能性がある。拡張機能マネージャは、コンピューティングデバイスにおいて提示されるユーザインターフェース内に、ブラウザ拡張機能を悪意のあるブラウザ拡張機能として特定するテキストまたはグラフィカルな情報の視覚的表示を提供するようにさらに構成される可能性がある。コンピューティングデバイスは、ブラウザ拡張機能を悪意のあるブラウザ拡張機能として特定するテキストまたはグラフィカルな情報の表示に応じて、ブラウザ拡張機能が無効化されることを要求するユーザ入力を受け取るためのユーザ入力デバイスを含む可能性がある。拡張機能マネージャは、ブラウザ拡張機能が無効化されることを要求するユーザ入力をユーザ入力デバイスを通じて受け取ることに応じてブラウザ拡張機能を無効化する可能性がある。ブラウザ拡張機能を無効化するステップは、ブラウザ拡張機能をアンインストールすることを含む可能性がある。
【０００６】
ブラウザ拡張機能が悪意のあるブラウザ拡張機能であると判定するステップは、ブラウザアプリケーション内に提示されるコンテンツを修正するブラウザ拡張機能として前に特定された悪意のあるブラウザ拡張機能のリストを記憶するメモリデバイスにアクセスすることと、メモリデバイスに記憶された悪意のあるブラウザ拡張機能のリストにブラウザ拡張機能が含まれると判定することとを含む可能性がある。ブラウザ拡張機能が悪意のあるブラウザ拡張機能であると判定するステップは、所与のネットワークロケーションから得られブラウザアプリケーション内に表示される主コンテンツの表示にブラウザ拡張機能が認可されていないコンテンツを挿入すると判定することを含む可能性があり、認可されていないコンテンツは、主コンテンツの所与のネットワークロケーションとは異なるネットワークロケーションから得られる。ブラウザ拡張機能が悪意のあるブラウザ拡張機能であると判定するステップは、ブラウザアプリケーションによって表示するためにコンピューティングデバイスによって得られた認可されたコンテンツの表示をブラウザ拡張機能が遮断すると判定することを含む可能性があり、認可されたコンテンツは、ブラウザアプリケーションによって要求された所与のウェブページに含まれる主コンテンツまたは所与のウェブページのコードの実行によってブラウザアプリケーションにより要求されるサードパーティコンテンツのうちの1つである。ブラウザ拡張機能が悪意のあるブラウザ拡張機能であると判定するステップは、ブラウザ拡張機能が検索バーをブラウザアプリケーションの表示の一部として表示するフォースパーティ(fourth party)検索バー拡張機能であると判定することを含む可能性がある。ブラウザ拡張機能が悪意のあるブラウザ拡張機能であると判定するステップは、ブラウザ拡張機能がユーザからの要求と無関係に外部サーバと通信するか、またはそのような通信のためにユーザによって要求された所与のウェブページに含まれるコードの実行を通じて外部サーバと通信すると判定することを含む可能性がある。
【０００７】
態様は任意の都合の良い形態で実装され得ることが、理解されるであろう。たとえば、態様は、有形の担持媒体(たとえば、ディスク)または無形の担持媒体(たとえば、通信信号)である可能性がある適切な担持媒体上で運ばれ得る適切なコンピュータプログラムによって実装される可能性がある。態様は、本発明を実装するように構成されたコンピュータプログラムを実行するプログラミング可能なコンピュータの形態をとる可能性がある好適な装置を使用して実装される可能性もある。態様は、1つの態様の文脈で説明された特徴が別の態様に実装され得るように組み合わされる可能性がある。
【０００８】
特定の実装形態は、特定の場合に、以下の利点のうちの1つまたは複数を実現し得る。悪意のあるブラウザ拡張機能が、最小限のユーザ入力でまたはユーザ入力なしに技術に精通していないユーザによって簡単に特定され、削除され得る。所望のコンテンツへのアクセスを制限するか、不所望のコンテンツを注入するか、またはシステムの働きを遅くする悪意のあるブラウザ拡張機能を自動的に特定し、削除することによって、ユーザのウェブ閲覧の体験が改善され得る。潜在的に機密情報(たとえば、閲覧履歴、財務情報)にアクセスし、機密情報を外部のコンピューティングシステムに提供する可能性がある悪意のあるブラウザ拡張機能を削除することによって、プライバシーが保護される。拡張機能マネージャの自動アンインストールにより、計算リソースが温存され得る。したがって、実装形態は、悪意のあるブラウザ拡張機能の効率的な削除に関連する問題に対処し得る。
【０００９】
1つまたは複数の実装形態の詳細が、添付の図面および以下の説明に記載されている。その他の特徴、目標、および利点は、説明および図面から、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１０】
【図１】本明細書に記載のシステムおよび方法を実装するために使用され得るシステムの概念図である。
【図２】主コンテンツ、サードパーティコンテンツ、および不所望のフォースパーティコンテンツを含むブラウザ内に表示される例示的なウェブページを示す図である。
【図３】図2の例示的なウェブページ上に表示される例示的な拡張機能マネージャダイアログを示す図である。
【図４】悪意のあるブラウザ拡張機能を特定し、無効化するための例示的なプロセスの流れ図である。
【図５】例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【００１１】
様々な図面における同様の参照符号は、同様の要素を示す。
【００１２】
本明細書は、概して、悪意のあるブラウザ拡張機能を特定し、無効化するためのシステムおよび方法を説明する。悪意のあるブラウザ拡張機能は、望ましくない形でウェブブラウザの働きを変更するブラウザ拡張機能である。たとえば、コンテンツブロッカー型の悪意のあるブラウザ拡張機能は、ユーザが見たいと望む所望のコンテンツへのアクセスを遮断するかまたはその他の方法で制限する可能性がある。たとえば、コンテンツブロッカー型の悪意のあるブラウザ拡張機能は、ウェブページの主コンテンツと一緒に表示するためにウェブページによって要求される追加的なサードパーティコンテンツ(たとえば、ビデオ、オーディオコンテンツ、画像など)をブラウザがロードすることを妨げる可能性がある。別の例として、コンテンツインジェクター(content injector)型の悪意のあるブラウザ拡張機能は、ユーザによって要求されたウェブページ内のコードの実行に応じて、要求されなかったフォースパーティコンテンツプロバイダによって提供される不所望のコンテンツを注入する可能性がある。さらに別の例として、フィッシング型の悪意のあるブラウザ拡張機能は、ユーザの身分証明を盗むかまたはユーザのクレジットカードに認可されていない請求をすることによってユーザから盗みを働くために使用され得る機密または個人情報(たとえば、クレジットカード情報)をユーザに入力させようと試みる可能性がある。
【００１３】
ブラウザ拡張機能マネージャが、ユーザのデバイスにインストールされ、悪意のあるブラウザ拡張機能を自動的に特定し、悪意のあるブラウザ拡張機能を無効化し、それから、ユーザのコンピューティングデバイスからそれ自体を自動的にアンインストールするために様々な技法を使用する可能性がある。拡張機能マネージャは、たとえば、ブラウザ拡張機能に関する情報を前に特定された悪意のあるブラウザ拡張機能のデータベースに含まれる情報と比較することによってコンピューティングデバイス上のブラウザにインストールされたブラウザ拡張機能が悪意のあるブラウザ拡張機能であると特定することができる。拡張機能マネージャは、それから、悪意のあるブラウザ拡張機能を非アクティブ化するか、悪意のあるブラウザ拡張機能をアンインストールするか、またはブラウザ拡張機能がブラウザのアクションを変更することを制限することによって悪意のあるブラウザ拡張機能を無効化することができる。一部の実装形態において、拡張機能マネージャは、特定された潜在的に悪意のあるブラウザ拡張機能のリストをユーザに提供し、ユーザが無効化される悪意のあるブラウザ拡張機能を選択することを可能にする。一部の実装形態において、拡張機能マネージャは、すべての特定される悪意のあるブラウザ拡張機能を特定した後、ユーザのコンピューティングデバイスからそれ自体を自動的にアンインストールする。一部の実装形態において、拡張機能マネージャは、ユーザのコンピューティングデバイス上で実行されるブラウザにインストールされるブラウザ拡張機能である可能性がある。
【００１４】
図1は、コンテンツがユーザデバイス106に配信される例示的な環境100のブロック図を示す。例示的な環境100は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、インターネット、またはこれらの組合せなどのネットワーク102を含む。ネットワーク102は、ウェブサイト104、ユーザデバイス106、およびコンテンツアイテムプロバイダ104を接続する。例示的な環境100は、多くのユーザデバイス106と、様々な主コンテンツ108を提供する多くのパブリッシャ104(すなわち、コンテンツアイテムプロバイダ)とを含み得る。
【００１５】
リソースパブリッシャ104は、ユーザデバイス106上で提示するためのリソースを提供することができる。たとえば、パブリッシャ104aは、ネットワーク102を通じてユーザデバイス106に提供され得るリソースのデータベースを含むことができる。一部の実装形態において、リソースパブリッシャ104によって発行されるリソースは、テキスト、写真、グラフィックス、埋め込まれたビデオ、埋め込まれたオーディオ、およびその他のメディアを含むウェブページの形態をとり得る。リソースパブリッシャ104によって発行されるリソースは、ストリーミングオーディオ、ストリーミングビデオ、モバイルデバイスに送信されるテキストメッセージの最新情報、またはその他のデジタルメディアの形態もとり得る。一部の実装形態において、リソースパブリッシャ104の各々は、1つまたは複数のウェブサイトの集合を制御、管理、および/または所有するエンティティである可能性がある。ウェブサイトは、ドメイン名に関連付けられ、1つまたは複数のサーバによってホストされる1つまたは複数のリソースである。例示的なウェブサイトは、テキスト、画像、マルチメディアコンテンツ、およびスクリプトなどのプログラミング要素を含み得るハイパーテキストマークアップ言語(HTML)形式のウェブページの集合である。各ウェブサイトは、ウェブサイトを制御、管理、および/または所有するエンティティであるパブリッシャによって維持される可能性がある。
【００１６】
例示的な環境100は、ユーザデバイス106へのサードパーティコンテンツアイテム112の配信を制御するサードパーティコンテンツプロバイダ110を含み得る。たとえば、サードパーティコンテンツプロバイダ110は、ユーザデバイス106において提示するためのビデオコンテンツを提供するビデオサーバの集合である可能性がある。サードパーティコンテンツプロバイダ110は、パブリッシャ104によって発行されるリソース(主コンテンツ108)と一緒に表示するためにユーザデバイスにサードパーティコンテンツアイテム112(たとえば、広告、画像、ビデオ、オーディオ、またはその他のコンテンツ)を提供することができる。(パブリッシャとは異なる)サードパーティコンテンツプロバイダ110によって提供されるサードパーティコンテンツアイテム112は、ユーザデバイス106かまたはその他の場所かのどちらかにおいて、ユーザデバイス106によって表示するためにパブリッシャ104によって提供されるリソースと合併され得る。たとえば、パブリッシャ104aは、クライアントデバイス106aによってロードされるときに、サードパーティコンテンツプロバイダ110からのロッキー山脈の画像を要求し、受信し、提供されたウェブページを含む表示に画像を組み込むように構成されたロッキー山脈についての記事を含むウェブページを提供する可能性がある。
【００１７】
クライアントデバイス106は、ネットワーク102を介してリソースを要求し、受信することができる電子デバイスである。例示的なユーザデバイス106は、パーソナルコンピュータ(たとえば、ユーザデバイス106aおよび106b)、モバイル通信デバイス(たとえば、クライアントデバイス106c)、およびネットワーク102を介してデータを送受信することができるその他のデバイスを含む。典型的には、クライアントデバイス106は、ネットワーク102を介したデータの送受信を容易にするための、ウェブブラウザなどのユーザアプリケーションを含む。たとえば、クライアントデバイス106aは、ネットワーク102を介したデータの送受信を容易にするため、ならびにリソースパブリッシャ108およびサードパーティコンテンツプロバイダ110からそれぞれ受信された主コンテンツ108およびサードパーティコンテンツ112をクライアントデバイス106aのユーザに提示するための、クライアントデバイス106aにインストールされたブラウザ126を含む。
【００１８】
クライアントデバイス106は、パブリッシャからのリソースを要求するリソース要求を送ることができる。たとえば、クライアントデバイス106bは、主コンテンツ108b(たとえば、最新の有名人のニュースについての記事)に関してネットワーク102を通じてパブリッシャ108bに要求を送信することができる。そして今度は、要求された主コンテンツ108bを表すデータが、クライアントデバイス106bによって提示するためにクライアントデバイス106bに提供され得る。要求された主コンテンツ108bは、たとえば、ウェブサイトのホームページ、ソーシャルネットワークのウェブページ、ビデオクリップ、またはワードプロセッシングドキュメントである可能性がある。要求された主コンテンツアイテム108bを表すデータは、クライアントデバイス106bにおいて主コンテンツ108bの提示を引き起こすデータを含み得る。
【００１９】
主コンテンツ108は、実行されるときにクライアントデバイス106bにサードパーティコンテンツ(たとえば、ビデオコンテンツ、オーディオコンテンツ、画像、アニメーションするグラフィックス、テキストコンテンツ、広告、またはサードパーティによって提供されるその他のコンテンツ)の要求を生成させ、サードパーティコンテンツプロバイダ110などの1つまたは複数のコンテンツアイテム配信ネットワークに要求を送信させる1つまたは複数のタグまたはインジケータを含む可能性もある。たとえば、パブリッシャ104aによってクライアントデバイス106bに提供されるウェブページが、ウェブページと一緒に表示するための2つの画像およびビデオの要求を生成させるタグを含む。クライアントデバイス106bは、ウェブページによって指定されたパラメータに一致する2つの画像およびビデオの要求をサードパーティコンテンツプロバイダ110に送信する可能性がある。要求に応じて、サードパーティコンテンツプロバイダ110は、ウェブページのコンテンツと一緒にクライアントデバイス106b上に(たとえば、ウェブページの主コンテンツの隣のウェブページの余白に、またはウェブページの最上部もしくは最下部に沿って)表示するためにネットワーク102を通じてクライアントデバイス106bに要求された画像およびビデオを提供する可能性がある。
【００２０】
一部の実装形態において、ユーザデバイス106に提供されるリソースに含まれるタグは、コンテンツアイテムのスロットを指定するデータを含み得る。コンテンツアイテムのスロットは、ビデオ、オーディオ、または画像コンテンツなどのコンテンツアイテムが提示され得るリソースの一部(たとえば、ウェブページの一部)またはユーザの表示の一部(たとえば、別のウィンドウの提示位置もしくはウェブページのスロット内)である。たとえば、コンテンツアイテムのスロットは、ユーザデバイスにおいてリソースが最初に提示されると見えるリソースの一部の下、上、または隣の指定された距離(たとえば、2cmまたは指定されたピクセル数)であるコンテンツアイテムのための空間的な位置を指定する可能性がある。一部の実装形態においては、ユーザデバイス106がリソースをレンダリングするとき、リソース内のスロットに関連するコードの実行が、スロットを埋めるためのコンテンツアイテムの要求を開始する。そして、コンテンツアイテムの要求が、コンテンツアイテムのスロットのためのコンテンツアイテムを提供するコンテンツアイテム配信システム(たとえば、サードパーティコンテンツプロバイダ110)に送信される。
【００２１】
上で検討されたように、ウェブページ(およびサードパーティコンテンツアイテム)などのリソースは、コンピューティングデバイス上で動作するブラウザによってレンダリングされる。たとえば、クライアントデバイス106a上で実行されるブラウザ126が、主コンテンツに含まれるコードがブラウザ126によって実行されるときにクライアントデバイス106aからサードパーティコンテンツプロバイダ110に送信されるサードパーティコンテンツの要求に応じてサードパーティコンテンツプロバイダ110から受信されたサードパーティコンテンツ112と一緒に、パブリッシャ104から受信された主コンテンツ108をレンダリングすることができる。たとえば、ブラウザ126は、クライアントデバイス106aにおいて受信されたウェブページをレンダリングしてウェブページの主コンテンツを表示する。また、ウェブページは、ウェブページの主コンテンツと一緒にコンテンツアイテムのスロットに表示するための(ビデオまたは画像などの)1つまたは複数のサードパーティコンテンツアイテム112をブラウザ126に要求させるコードを含む。
【００２２】
ブラウザ126は、ブラウザ126にアドオンとしてインストールされる1つまたは複数の拡張機能130も含む可能性がある。拡張機能130は、たとえば、ブラウザ126のためのソフトウェアを提供したソフトウェアプロバイダによって、またはブラウザ126とともに動作するように拡張機能130を設計したサードパーティソフトウェアプロバイダによって提供される可能性がある。拡張機能130は、ブラウザ126の実行を変更する可能性がある。たとえば、ブラウザ130aが、ブラウザ126のホーム画面のために特別な背景画像を設定する可能性がある一方、ブラウザ130bは、クライアントデバイス106aのユーザが関心を示したスポーツチームに関して現在のスポーツのスコアを表示するサイドバーをブラウザ126に追加する。場合によっては、クライアントデバイス106aのユーザは、ブラウザ拡張機能がブラウザ126の何らかの機能を変更するようにブラウザ拡張機能をオンラインで検索し、ブラウザ拡張機能をクライアントデバイス106aにインストールする可能性がある。
【００２３】
残念なことに、実際には、すべてのブラウザ拡張機能が、ブラウザ126の動作に有用なまたは有益な機能を追加するとは限らない。あるいは場合によっては、ブラウザ拡張機能は、不所望のまたは望ましくない機能も実行しながらいくつかの所望の機能を提供する可能性がある。たとえば、悪意のあるソフトウェア供給者114も、ネットワーク102に接続される可能性があり、ユーザデバイス106に悪意のあるソフトウェア116を供給する可能性がある。この悪意のあるソフトウェア116は、クライアントデバイス106aなどのユーザデバイス106のうちの1つにインストールされる場合、ブラウザ126および/またはクライアントデバイス106aの働きをユーザによって意図されていなかった望ましくないまたは不利益な形で変更する可能性がある。場合によっては、悪意のあるソフトウェア供給者114は、特定のソフトウェアが特定の機能を有することを示す可能性があるが、実際には、ソフトウェアは、一旦インストールされるとその他の不所望の機能を実行するかまたは望ましい機能および望ましくない機能を混合して実行する可能性がある。悪意のあるソフトウェア116は、ブラウザ拡張機能、またはクライアントデバイス106a上のブラウザ126とは別に動作するソフトウェアの形態をとる可能性がある。
【００２４】
(悪意のあるブラウザ拡張機能を含む)悪意のあるソフトウェア116は、いくつかの形態をとり得る。たとえば、コンテンツブロッカー型の悪意のあるソフトウェア116は、ユーザが見たいと望む所望のコンテンツへのアクセスを遮断するかまたはその他の方法で制限する可能性がある。たとえば、コンテンツブロッカー型の悪意のあるブラウザ拡張機能は、ブラウザ126によってレンダリングされるウェブページに含まれるコードの実行に応じてブラウザ126によってサードパーティコンテンツプロバイダ110に要求されるサードパーティコンテンツ112(たとえば、ビデオ、オーディオコンテンツ、画像など)をブラウザがロードすることを妨げる可能性がある。一部のコンテンツブロッカー型の悪意のあるソフトウェア116は、ユーザが特定のウェブサイトまたはウェブサイトの特定の部分にアクセスすることを完全に妨げる可能性がある。加えて、そのようなコンテンツブロッカー型の悪意のあるソフトウェア116は、ブラウザ126内に表示されるウェブページの主コンテンツを補足する情報、またはウェブページに含まれる記事に関連する記事のプレビューなどのユーザが見たいと望む可能性があるその他の情報をユーザが見ることを妨げる可能性がある。場合によっては、コンテンツブロッカー型の悪意のあるソフトウェア116は、ウェブページ内のコードの実行に応じて要求されたコンテンツを、ウェブページに含まれるコードによって示されなかったその他のコンテンツによって置き換える可能性がある。
【００２５】
別の例として、コンテンツインジェクター型の悪意のあるソフトウェア116は、ユーザによって要求されたウェブページ内のコードの実行に応じて、要求されなかったフォースパーティコンテンツプロバイダによって提供される不所望のコンテンツを注入する可能性がある。たとえば、クライアントデバイス106aのユーザは、ウェブページのURLをブラウザ126に入力する。ブラウザ126は、クライアントデバイス106aにパブリッシャ104bからの主コンテンツを含むウェブページを要求させる。パブリッシャ104bは、クライアントデバイス106aに主コンテンツ108bのストアからの主コンテンツを含むウェブページを提供する。ブラウザ126は、ウェブページをレンダリングして主コンテンツを表示し、さらに、ウェブページに含まれるコードを実行してサードパーティコンテンツプロバイダ110からの1つまたは複数のサードパーティコンテンツアイテム112の要求を生成する。ブラウザ126は、サードパーティコンテンツプロバイダ110から受信されたサードパーティコンテンツ112をウェブページの主コンテンツと一緒に表示する。加えて、この例において、ブラウザ拡張機能130aは、コンテンツインジェクター型の悪意のあるブラウザ拡張機能である。たとえば、ブラウザ拡張機能130aは、悪意のあるソフトウェア供給者114からクライアントデバイス106aにおいて前もって受信され、ブラウザ126にインストールされた。
【００２６】
(この例においてはコンテンツインジェクター型の悪意のあるブラウザ拡張機能である)ブラウザ拡張機能130aは、パブリッシャ104aから受信されたウェブページに含まれるコードの実行に応じて、要求されなかった追加のフォースパーティコンテンツをブラウザ126に表示させるようにブラウザ126の動作を変更する可能性がある。たとえば、悪意のあるブラウザ拡張機能130aは、ブラウザ126がウェブページを受信し、クライアントデバイス106aのディスプレイスクリーン上に表示するためにウェブページの主コンテンツをレンダリングしていることを検出し得る。そのとき、悪意のあるブラウザ拡張機能130aは、フォースパーティコンテンツ(たとえば、不所望のコンテンツ)の要求を生成し、クライアントデバイス106aに要求をフォースパーティコンテンツ供給者118に送信させ得る。悪意のあるブラウザ拡張機能130aは、ブラウザ126によってレンダリングされるウェブページに含まれるいかなるコードとも無関係な要求を生成する。要求を受信することに応じて、フォースパーティコンテンツ供給者118は、不所望のコンテンツアイテム120のストアからの1つまたは複数のフォースパーティコンテンツアイテムを提供する可能性がある。そして、フォースパーティコンテンツ供給者118は、不所望のフォースパーティコンテンツをクライアントデバイス106aに供給する。それから、悪意のあるブラウザ拡張機能130aは、ブラウザ126に、フォースパーティコンテンツ供給者118から受信された不所望のフォースパーティコンテンツを、ブラウザ126によってレンダリングされるウェブページのコンテンツの一部またはすべてと一緒に表示させる。
【００２７】
場合によっては、ブラウザ拡張機能130aは、ブラウザ126に、ウェブページ内のコードによって示されたようなサードパーティコンテンツプロバイダ110からの要求されたサードパーティコンテンツアイテム112の代わりに、ウェブページによって指定されたコンテンツアイテムのスロットに不所望のフォースパーティコンテンツ120を表示させる可能性がある。場合によっては、ブラウザ拡張機能130aは、ブラウザ126に、ウェブページの主コンテンツまたはサードパーティコンテンツプロバイダ110から受信された1つもしくは複数のサードパーティコンテンツアイテム112を部分的なまたは完全に遮断する可能性のある不所望のフォースパーティコンテンツ120をその他の位置に表示させる可能性がある。フォースパーティコンテンツ供給者118から受信された不所望のフォースパーティコンテンツ120とサードパーティコンテンツプロバイダ110から受信されたサードパーティコンテンツ112との間の1つの相違は、ブラウザ126がパブリッシャ104から受信されるウェブページに含まれるコードを実行することに応じてサードパーティコンテンツ112の要求を生成する一方で、それとは対照的に、悪意のあるブラウザ拡張機能130aがウェブページに含まれるコードとは無関係に不所望のフォースパーティコンテンツ120の要求を生成し、クライアントデバイス106aに要求をフォースパーティコンテンツ供給者118に送信させることである。場合によっては、ブラウザ拡張機能130aは、わずかに関係のある不所望のフォースパーティコンテンツ120が要求されるようにウェブページをスキャンしてウェブページに含まれる情報を特定する可能性があるが、フォースパーティコンテンツ120は、ウェブページに含まれる追加的なコンテンツの要求の直接的な指示に応じて要求されない。
【００２８】
場合によっては、不所望のフォースパーティコンテンツアイテム120は、たとえば、ユーザが要求しなかったまたはクライアントデバイス106aにさらなる悪意のあるソフトウェアをインストールする可能性があるネットワークロケーション(たとえば、URL)にブラウザ126を導くためのフォースパーティコンテンツアイテム120をユーザにうまく選択させようと試みる可能性がある。別の例として、不所望のフォースパーティコンテンツ120は、ユーザによって要求されたウェブページの主コンテンツと関わりのないまたは無関係である情報を表示する可能性がある。加えて、不所望のフォースパーティコンテンツ120を要求し、ブラウザ126に不所望のフォースパーティコンテンツ120をレンダリングさせる際に悪意のあるブラウザ拡張機能130aによって実行されるアクションは、クライアントデバイス106aのアクティブなメモリまたは処理能力などの計算リソースを取りあげてしまい、それによって、概してクライアントデバイス106aの働きを遅くする可能性がある。したがって、悪意のあるブラウザ拡張機能の削除は、クライアントデバイスの働きを改善する結果をもたらす。
【００２９】
悪意のあるソフトウェア116のさらに別の例として、フィッシング型の悪意のあるソフトウェア116は、たとえば、ユーザの身分証明を盗むかまたはユーザのクレジットカードに認可されていない請求をすることによってユーザから盗みを働くために使用され得る機密または個人情報(たとえば、クレジットカード情報)をユーザに入力させようと試みる可能性がある。
【００３０】
悪意のあるソフトウェア116の別の例は、クライアントデバイス106に記憶された情報にアクセスし、悪意のあるソフトウェアに関連付けられる遠隔のサーバに情報を送信するように試みる可能性があるブラウザ拡張機能である。たとえば、悪意のあるブラウザ拡張機能130は、ユーザのブラウザの履歴にアクセスし、ユーザに知られることなくまたはユーザの許可なくこの情報を遠隔のサーバに提供する可能性がある。その他の種類の悪意のあるブラウザ拡張機能は、ブラウザ126の表示エリアの一部を占有し、それによって、不所望の視覚的な情報で表示を乱雑にするブラウザ拡張機能を含む。例は、ブラウザ126のURLまたは検索バーを模倣するが、ユーザが接触しようと意図した検索サービスではない可能性がある検索サービスまたはその他のサーバにユーザを導く検索バーを含む。悪意のあるブラウザ拡張機能130は、クライアントデバイス106を遠隔の「マスタ」コンピューティングシステムの要求によりアクションを実行する「ボット」として働かせるためにクライアントデバイス106のリソースにアクセスする可能性もある。悪意のあるブラウザ拡張機能130は、(たとえば、ロードされたウェブページのコンテンツをスキャンして不所望のフォースパーティコンテンツを注入する機会を特定するためにバックグラウンドで絶えず実行されることによって、または遠隔のサーバとの不所望のもしくは認可されていない通信に携わることによって)コンピュータリソースを過剰に利用する可能性もあり、そのことが、クライアントデバイス106の全体的な働きを遅くする可能性がある。
【００３１】
図1に示される例について続けると、例示的な環境100は、クライアントデバイス106aにインストールされた拡張機能マネージャ132を含む。拡張機能マネージャ132は、クライアントデバイス106aにインストールされたブラウザ拡張機能130の動作を監視し、悪意のあるブラウザ拡張機能または1つもしくは複数のブラウザ拡張機能の潜在的に悪意のある活動を特定することができる。そして、拡張機能マネージャ132は、特定された悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能を無効化することができる。拡張機能マネージャ132は、悪意のあるブラウザ拡張機能の無効化が完了するとクライアントデバイス106aからそれ自体を自動的にアンインストールするようにさらに構成され得る。一部の実装形態において、拡張機能マネージャ132は、悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能を特定することに限定されず、むしろ、概して、ユーザデバイス106にインストールされた悪意のあるまたは潜在的に悪意のあるソフトウェアを特定し、無効化するように構成される。
【００３２】
拡張機能マネージャ132をインストールするために、クライアントデバイス106aのユーザは、たとえば、拡張機能マネージャ132をダウンロードし、インストールするために遠隔のサーバにアクセスする可能性がある。別の例として、ユーザは、CD-ROMまたはフラッシュ「サム」ドライブなどの物理的なストレージデバイスから拡張機能マネージャ132をインストールする可能性がある。拡張機能マネージャ132は、ブラウザ126への拡張機能としてインストールされる可能性がある。たとえば、ブラウザ拡張機能130bが、拡張機能マネージャである可能性がある。一部の実装形態において、拡張機能マネージャ132は、クライアントデバイス106aにインストールされるが、ブラウザ拡張機能としてはインストールされないスタンドアロンのソフトウェアである可能性がある。
【００３３】
拡張機能マネージャ132は、悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能を特定するために1つまたは複数の技法を使用することができる。たとえば、拡張機能マネージャ132は、ブラウザ126の表示機能または通信機能を修正するブラウザ拡張機能を特定することによることを含め、ブラウザ126の機能の何らかの側面を修正するソフトウェアを特定することによってクライアントデバイス106aにインストールされるブラウザ拡張機能を特定する可能性がある。拡張機能マネージャ132は、クライアントデバイス106aのプログラムレジストリをスキャンしてクライアントデバイス106aにインストールされたブラウザ拡張機能を特定する可能性もある。そして、拡張機能マネージャ132は、特定されたブラウザ拡張機能の属性および/または機能を分析して、特定されたブラウザ拡張機能のいずれかが悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能であるかどうかを判定する可能性がある。
【００３４】
1つの例示的なプロセスにおいて、拡張機能マネージャ132は、特定されたブラウザ拡張機能の(拡張機能IDなどの)識別情報をコンピュータメモリ128に記憶された前に特定された悪意のあるブラウザ拡張機能のデータベース134と比較する可能性がある。拡張機能マネージャ132は、この比較を実行して、特定されたブラウザ拡張機能のいずれかが悪意のあるブラウザ拡張機能のデータベースに含まれるかどうかを判定する可能性がある。図1に示される例示的な環境100において、悪意のある拡張機能のデータベース134は、クライアントデバイス106aのメモリ128(たとえば、アクティブメモリ、ソリッドステートメモリ、またはハードディスクメモリ空間)に記憶される。その他の例において、悪意のある拡張機能のデータベース134は、遠隔の場所に記憶される。たとえば、悪意のある拡張機能識別サーバが、ネットワーク102を通じてクライアントデバイス106aと通信する可能性がある。拡張機能マネージャ132は、クライアントデバイス106aにインストールされたブラウザ拡張機能130に関する識別情報を悪意のある拡張機能識別サーバに提供することができ、悪意のある拡張機能識別サーバは、悪意のある拡張機能のデータベース134にアクセスしてブラウザ拡張機能130のいずれかが悪意のあるブラウザ拡張機能であるかどうかを判定し、悪意のあるブラウザ拡張機能を無効化する際に拡張機能マネージャ132によって使用されるために特定された悪意のあるブラウザ拡張機能の指示をクライアントデバイス106aに返すことができる。
【００３５】
拡張機能130のいずれかが悪意のあるブラウザ拡張機能であるかどうかを判定するために使用され得る拡張機能130に関する識別情報は、いくつかの形態をとり得る。たとえば、拡張機能130のタイトルまたは名前が、拡張機能130を一意に特定するために使用され得る。拡張機能130のタイトルまたは名前が悪意のある拡張機能のデータベース134に現れる場合、拡張機能130は、悪意のあるまたは潜在的に悪意のある拡張機能として特定される。別の例として、拡張機能130に関連するファイルに関するファイル名(たとえば、拡張機能130に関連するインストールファイル、実行可能ファイル、データファイル、またはその他のファイルのファイル名)が、拡張機能130が悪意のある拡張機能であるかどうかを判定するために悪意のある拡張機能のデータベース134内のファイル名と比較される可能性がある。別の例として、拡張機能130に関する識別情報は、拡張機能130に関する識別子として働く一意の文字列の形態をとる可能性がある。
【００３６】
一部の実装形態においては、拡張機能130と通信する遠隔のコンピューティングシステムの特徴を識別することが、拡張機能130に関する識別情報として使用される可能性がある。たとえば、拡張機能マネージャ132は、特定の拡張機能130が特定の外部コンピューティングシステムと通信すると判定し得る。これらの外部コンピューティングシステムは、たとえば、IPアドレス、URL識別子、またはその他の識別子によって特定される可能性がある。そして、拡張機能マネージャ132は、拡張機能130と通信する外部コンピューティングシステムに関するこれらの識別子を悪意のある拡張機能のデータベース134に記憶された値と比較して、これらの外部コンピューティングシステムに関する識別子のいずれかがブラウザ130が悪意のあるブラウザ130であることを示すかどうかを判定することができる。たとえば、拡張機能マネージャ132は、ブラウザ拡張機能130bがフォースパーティコンテンツ供給者118と通信すると判定する可能性がある。拡張機能マネージャ132は、フォースパーティコンテンツ供給者118に関連するIPアドレスまたはURLを使用してフォースパーティコンテンツ供給者118を特定し得る。次いで、拡張機能マネージャ132は、悪意のある拡張機能のデータベース134にアクセスし、フォースパーティコンテンツ供給者118に関する識別子(たとえば、フォースパーティコンテンツ供給者118と通信するためにブラウザ拡張機能130bによって使用されるIPアドレスまたはURL)を悪意のある拡張機能のデータベース134に含まれる情報と比較することができる。フォースパーティコンテンツ供給者118に関する識別子が悪意のある拡張機能のデータベース134に含まれる場合、拡張機能マネージャ132は、ブラウザ拡張機能130bが悪意のあるブラウザ拡張機能と考えられると判定し得る。
【００３７】
ブラウザ拡張機能130のその他の属性または機能が、ブラウザ拡張機能130が悪意のあるブラウザ拡張機能であるかどうかを判定するために使用される可能性もある。たとえば、クライアントデバイス106aの特定の通信ポートにアクセスする拡張機能130が、(悪意のある拡張機能のデータベース134内の情報を使用して)悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能として特定され得る。別の例として、クライアントデバイス106aのメモリ(たとえば、ハードディスクの空間)の特定の部分にアクセスすると判定される拡張機能130が、(悪意のある拡張機能のデータベース134内の情報を使用して)悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能として特定され得る。たとえば、コンピュータメモリの制限された部分にアクセスすると判定されるブラウザ拡張機能130が、悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能として特定され得る。これらの種類の悪意のあるブラウザ拡張機能は、拡張機能マネージャ132によって特定され、無効化され得る。たとえば、拡張機能マネージャ132は、ブラウザ拡張機能によって使用される通信ポートまたはアクセスされるメモリロケーションを監視する可能性があり、ブラウザ拡張機能が通信ポートまたはメモリの一部に不適切にアクセスしたことを検出する場合、ブラウザ拡張機能を悪意のあるブラウザ拡張機能として分類し、悪意のあるブラウザ拡張機能を無効化する可能性がある。
【００３８】
一部の実装形態においては、悪意のある拡張機能のデータベース134を利用して悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能を特定することに加えてまたはその代わりに、拡張機能マネージャ132が、拡張機能130のアクションを監視して、拡張機能130が悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能を示す機能を実行しているかどうかを判定する可能性がある。たとえば、拡張機能マネージャ132は、ブラウザ拡張機能130aの活動を監視して、ウェブページの主コンテンツと一緒にブラウザ126によって提示するためにサードパーティコンテンツプロバイダ110によって提供される一部のまたはすべてのサードパーティコンテンツ112がブラウザ126によって表示されることをブラウザ拡張機能130aが妨げる(すなわち、コンテンツブロッカー型の悪意のあるブラウザ拡張機能)かどうかを判定する可能性がある。ブラウザ拡張機能130aによるそのような活動は、ブラウザ拡張機能130aを悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能として特定するために拡張機能マネージャ132によって使用され得る。別の例として、拡張機能マネージャ132は、ブラウザ126がパブリッシャ104から受信された主コンテンツのすべてまたは一部を表示することをブラウザ拡張機能130aが妨げているかどうかを判定する可能性がある。
【００３９】
別の例として、拡張機能マネージャ132は、ブラウザ拡張機能130aのアクションを監視して、ブラウザ拡張機能130aが1つまたは複数の信頼できないまたは悪意のある外部コンピューティングシステムと通信しているかどうかを判定する可能性がある。拡張機能マネージャ132は、たとえば、外部コンピューティングシステムのURLまたはIPアドレスを特定することによってブラウザ拡張機能130aと通信する外部コンピューティングシステムを特定し得る。次いで、拡張機能マネージャ132は、外部コンピューティングシステムに関するこの識別情報を特定された悪意のあるまたは信頼できないコンピューティングシステムの前もって記憶されたリストと比較して、ブラウザ拡張機能130aが悪意のあるまたは信頼できないコンピューティングシステムと通信しているかどうかを判定する可能性がある。そのような活動は、ブラウザ拡張機能130aを悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能として特定するために使用され得る。悪意のあるまたは信頼できないコンピューティングシステムは、フォースパーティコンテンツ供給者118などのフォースパーティコンテンツ供給者として特定されたコンピューティングシステム、コンテンツを遮断するブラウザ拡張機能に関連するコンピューティングシステム、フィッシングコンピューティングシステムとして特定されたコンピューティングシステム、またはその他の不所望のもしくは望ましくない活動に関連すると特定されたコンピューティングシステムを含み得る。
【００４０】
一部の実装形態においては、外部コンピューティングシステムとの通信の頻度が、ブラウザ拡張機能130aが悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能であると判定するために拡張機能マネージャ132によって使用される。この頻度は、ブラウザ拡張機能130aによって開始された外部通信の合計頻度、または前に特定された悪意のあるもしくは信頼できない外部コンピューティングシステムなどの(たとえば、IPアドレスもしくはURLによって特定されるような)1つもしくは複数の特定の外部コンピューティングシステムとの外部通信の頻度である可能性がある。拡張機能マネージャ132は、ブラウザ拡張機能130aによる通信の特定された頻度を閾値と比較して、ブラウザ拡張機能130aが悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能であるかどうかを判定し得る。
【００４１】
別の例として、拡張機能マネージャ132は、ブラウザ拡張機能130aのアクションを監視して、ブラウザ拡張機能130aがブラウザ126にブラウザ126によってレンダリングされるウェブページに含まれるコードを実行することに応じてブラウザ126によって要求されなかったフォースパーティコンテンツを表示させているかどうかを判定する可能性がある。たとえば、拡張機能マネージャ132は、ブラウザ拡張機能130aがフォースパーティコンテンツ供給者118からの不所望のフォースパーティコンテンツ120を要求し、不所望のフォースパーティコンテンツ120の要求が、ブラウザ126によってロードされるウェブページに含まれるコードによって示されることなしにブラウザ拡張機能130aによって開始されたと判定する可能性がある。そのような活動は、ブラウザ拡張機能130aが悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能であると判定するために拡張機能マネージャ132によって使用され得る。一部の実装形態において、拡張機能マネージャ132は、フォースパーティコンテンツ120がウェブページの一部の上に(たとえば、ウェブページの主コンテンツの一部の上に、またはコンテンツアイテムのスロットに表示するためにウェブページに含まれるコードの実行に応じて要求された1つもしくは複数のサードパーティコンテンツアイテム112の一部の上に)表示される場合にのみ、ブラウザ拡張機能130aを悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能として特定する。
【００４２】
別の例として、拡張機能マネージャ132は、ウェブページの主コンテンツまたはサードパーティコンテンツ112の一部またはすべてを見えなくする情報をブラウザ126に表示させる拡張機能130を(たとえ拡張機能130によって表示される情報がフォースパーティコンテンツ供給者118から受信されないとしても)悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能であるものとして特定する可能性がある。別の例として、拡張機能マネージャ132は、ブラウザ拡張機能130aの活動を監視して、ブラウザ拡張機能130aがクライアントデバイス106aのユーザに特定の情報を入力させようとしているかどうかを判定する可能性がある。そのような活動は、ブラウザ拡張機能130aに悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能としてフラグを立てるために使用され得る。さらに別の例として、拡張機能マネージャ132は、ブラウザ拡張機能130aを監視して、ブラウザ拡張機能130aが(たとえば、ウェブページにリンクもしくは画像を挿入することによって、またはブラウザ126の表示の周辺に表示されるツールバーにリンクもしくは選択可能な画像を含めることによって)クライアントデバイス106aのユーザを潜在的に悪意のあるまたは信頼できない外部サーバに導こうと試みるかどうかを判定する可能性がある。拡張機能マネージャ132は、たとえば、外部コンピューティングシステムのURLまたはIPアドレスを特定することによってブラウザ拡張機能130aがユーザを導こうと試みている外部コンピューティングシステムを特定し得る。次いで、拡張機能マネージャ132は、外部コンピューティングシステムに関するこの識別情報を特定された悪意のあるまたは信頼できないコンピューティングシステムの以前に記憶されたリストと比較して、ブラウザ拡張機能130aが悪意のあるまたは信頼できないコンピューティングシステムにユーザをリダイレクトしようと試みているかどうかを判定する可能性がある。そのような活動は、ブラウザ拡張機能130aを悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能として特定するために使用され得る。
【００４３】
一部の実装形態において、拡張機能マネージャ132は、悪意のあるブラウザ拡張機能として特定されたすべての拡張機能130を自動的に無効化し得る。拡張機能マネージャ132は、たとえば、拡張機能130を非アクティブ化することによって悪意のあるブラウザ拡張機能130を無効化し得る。悪意のある拡張機能130を非アクティブ化することは、悪意のある拡張機能130をクライアントデバイス106aにインストールされたままにするが、悪意のある拡張機能130は、活動休止状態にあり、クライアントデバイス106a上で実行されない。別の例として、拡張機能マネージャ132は、(ユーザデバイス106aにインストールされたブラウザ126またはその他のソフトウェアに悪意のある拡張機能130をアンインストールさせるプロセスを開始することを含む可能性がある)クライアントデバイス106aから悪意のある拡張機能130をアンインストールすることによって悪意のある拡張機能130を無効化し得る。さらに別の例として、拡張機能マネージャ132は、悪意のある拡張機能130がブラウザ126の機能を変更することを防止することによって、または悪意のある拡張機能130が特定の外部コンピューティングデバイスと通信することを防止することを含め、悪意のある拡張機能130が特定の機能を実行することを防止することによって、悪意のある拡張機能130を無効化し得る。
【００４４】
一部の実装形態において、拡張機能マネージャ132は、悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能を悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能として特定するとそれらの悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能を直ちに無効化しない。そのような実装形態において、拡張機能マネージャ132は、どの悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能を無効化すべきかを特定するためにクライアントデバイス106aのユーザにダイアログを提供する可能性がある。一部の実装形態において、拡張機能マネージャ132は、悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能として特定された拡張機能130を、ユーザ(または別の人)が許容可能なブラウザ拡張機能として特定したブラウザ拡張機能を示すブラウザ拡張機能の「ホワイトリスト」と比較する可能性がある。たとえば、ユーザは、ブラウザ126によってロードされたすべてのウェブページに笑顔マークを追加する特定のコンテンツインジェクターブラウザ拡張機能を承認されたブラウザ拡張機能のホワイトリストに含めることによって特定のコンテンツインジェクターブラウザ拡張機能が拡張機能マネージャ132によって無効化されるべきでないことを示し得る。
【００４５】
一部の実装形態において、拡張機能マネージャ132は、悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能の特定および無効化を完了すると、クライアントデバイス106aからそれ自体をアンインストールする。そのような機能は、ユーザデバイス106aにインストールされたブラウザ126またはその他のソフトウェアに拡張機能マネージャをアンインストールさせるプロセスを開始することを含む可能性がある。そのような自動的なアンインストールは、拡張機能マネージャ132がアンインストール後にもはやメモリ空間を占有せずまたは処理能力を利用しないのでクライアントデバイス106aのリソースを最大化することができる。
【００４６】
拡張機能マネージャ132は、例示的な環境100内でクライアントデバイス106aに置かれているものとして示されるが、一部の実装形態においては、遠隔のコンピューティングデバイスに置かれ、悪意のあるブラウザ拡張機能を特定し、無効化するためにクライアントデバイス106aと通信することがあり得る。たとえば、パブリッシャ104のうちの1つなどのコンテンツプロバイダが、悪意のあるブラウザ拡張機能を特定し、無効化するために(ユーザの要求に応じて)クライアントデバイス106aと通信する拡張機能マネージャを含む可能性がある。別の例として、ブラウザ126に関連付けられる遠隔のコンピューティングシステムが、クライアントデバイス106aのための遠隔の拡張機能管理機能を提供する可能性がある。一部の実装形態においては、拡張機能マネージャ132の機能の一部が、遠隔のコンピューティングシステムによって実行される可能性がある一方、拡張機能マネージャ132のその他の機能は、クライアントデバイス106aにおいて実行される。たとえば、遠隔のコンピューティングシステムは、悪意のあるおよび潜在的に悪意のあるブラウザ拡張機能を特定するユーザの要求を受信すると、ブラウザ126にインストールされた悪意のあるおよび潜在的に悪意のあるブラウザ拡張機能を特定するためにブラウザ126と通信する可能性がある。悪意のあるおよび潜在的に悪意のあるブラウザ拡張機能を特定すると、遠隔のコンピューティングシステムは、特定された悪意のあるおよび潜在的に悪意のあるブラウザ拡張機能を無効化し、それから、クライアントデバイス106aからそれ自体をアンインストールすることができる拡張機能マネージャをダウンロードし、インストールするオプションをユーザに与える可能性がある。
【００４７】
図2に目を向けると、例示的なブラウザ200が、主コンテンツ204を含むウェブページ202をレンダリングし得る。ブラウザ200は、たとえば、クライアントデバイス106a上で実行される図1のブラウザ126である可能性がある。ウェブページ202は、ユーザがブラウザ200のURLバーにURLを打ち込むことなどのブラウザ200とのユーザのインタラクションに応じて図1のパブリッシャ104aから受信され得る。ブラウザ200は、ブラウザ200の機能を変更するためにブラウザ200にインストールされるいくつかのブラウザ拡張機能206を含み得る。たとえば、拡張機能Aが、特定のスポーツチームのロゴを表示するようにブラウザ200の外観または「テーマ」を変更する可能性がある。別の例として、拡張機能Bが、ユーザがインターネットラジオ局に関するウェブページを訪問する必要なしにインターネットラジオ局の再生およびその他の設定を制御することができるように、ブラウザ200のユーザの好みのインターネットラジオ局のためのオーディオプレイヤーをブラウザ200の表示内のどこかに表示させる可能性がある。
【００４８】
一部の実装形態において、ブラウザ200は、図2の例に示されるブラウザ拡張機能の視覚的表現のような、ブラウザ200にインストールされたブラウザ拡張機能206の視覚的表現を含む。一部の実装形態においては、一部のブラウザ拡張機能206のみがブラウザ200の表示内に視覚的表現を有する一方、その他のブラウザ拡張機能206は視覚的表現を持たない。一部の実装形態においては、ブラウザ拡張機能206のいずれも、ブラウザ200の主な表示内に視覚的表現を持たない。一部の実装形態においては、ブラウザ200のユーザが、ブラウザ200にインストールされるブラウザ拡張機能206を列挙する別個のブラウザ拡張機能制御画面に(たとえば、ブラウザ200の「設定」コントロールにアクセスすることによって)アクセスする可能性がある。
【００４９】
図2に示される例において、ブラウザ200は、検索バー208をブラウザ200の表示に含められるようにするブラウザ拡張機能206を含む。検索バー208は、たとえば、ブラウザ200のその他の表示の外観に溶け込むように特定の表示の特徴を適合させ得るが、検索文字列がユーザによって検索バー208に入力されるときにより望ましくない検索サイトにユーザを導く可能性がある。
【００５０】
場合によっては、ブラウザ拡張機能206は、ブラウザ200のユーザによってブラウザ200に意図的にインストールされる。たとえば、ユーザは、ブラウザ200の表示ウィンドウの一部に株式相場フィードを追加するブラウザ拡張機能をインストールしたい可能性がある。ユーザは、ブラウザ拡張機能をオンラインで検索し、ブラウザ拡張機能をブラウザ200にインストールすることができる。場合によっては、ブラウザ拡張機能206は、意図せずにインストールされる。たとえば、一部のブラウザ拡張機能206は、たとえユーザが特定のブラウザ拡張機能206をインストールすることを意図しなかったとしても、ユーザがウェブページ内の特定のハイパーリンクを選択するときに自動的にインストールする可能性がある。別の例として、ユーザが、ブラウザ200を含むユーザデバイスにソフトウェアをインストールする可能性がある。ソフトウェアは、その他のプログラムに加えてブラウザ拡張機能206をユーザデバイスに自動的にインストールする可能性がある。場合によっては、ユーザが、ブラウザ拡張機能206をインストールし、それから、インストールされたブラウザ拡張機能206が広告された機能を持たないかまたはユーザが望ましくないと気付く異なる機能を有することを後になって発見する可能性がある。
【００５１】
上で検討されたように、ブラウザ200は、主コンテンツ204を含むウェブページ202を表示する。ブラウザ200によって表示されるウェブページ202は、サードパーティコンテンツアイテムも含み得る。たとえば、画像210および212ならびにビデオコンテンツ214などのサードパーティコンテンツアイテムが、ウェブページ202の一部として表示される可能性がある。一部の実装形態において、サードパーティコンテンツアイテムは、ブラウザ200がウェブページ202に含まれるコードを実行するときに生成されるブラウザ200によって生成される要求に応じて(図1のサードパーティコンテンツプロバイダ110などの)サードパーティコンテンツプロバイダによって提供される。たとえば、ウェブページ202は、パブリッシャからネットワークを介して受信され、主コンテンツ204と、ブラウザ200によって実行されるときにブラウザ200に画像210および212ならびにビデオコンテンツ214の要求を生成させるコードとを含み得る。サードパーティコンテンツのその他の例は、その他のウェブページのための主コンテンツのプレビューなどのテキスト、オーディオコンテンツ、またはテキスト、グラフィック、オーディオ、もしくはビデオコンテンツの組合せを含み得る。
【００５２】
一部の実装形態においては、ブラウザ拡張機能206のうちの1つまたは複数が、悪意のあるブラウザ拡張機能である。たとえば、拡張機能Aは、ブラウザ200にインストールされるときに、たとえウェブページ202がウェブページ202とともに表示するための画像212の要求を開始するコードを含むとしても、ブラウザ200がウェブページ202のその他のコンテンツと一緒に画像212を表示することを妨げるコンテンツブロッカー型のブラウザ拡張機能である可能性がある。別の例として、拡張機能Bは、不所望のフォースパーティコンテンツをウェブページ202の表示に追加するコンテンツインジェクター型のブラウザ拡張機能である可能性がある。たとえば、拡張機能Bは、ブラウザ200がウェブページ202をロードしていることを検出し、それに応じて、フォースパーティコンテンツサーバにフォースパーティコンテンツアイテム216を要求するためにフォースパーティコンテンツサーバに接触する可能性がある。そして、拡張機能Bは、たとえウェブページ202に含まれるコードがフォースパーティコンテンツアイテム216を表示するようにブラウザ200に命令しなかったとしても、ブラウザ200にフォースパーティコンテンツアイテム216をウェブページ202の表示の一部として表示させる可能性がある。場合によっては、フォースパーティコンテンツアイテム216は、信頼できないサーバシステムに導かれるようにフォースパーティコンテンツアイテム216をユーザに選択させるか、または信頼できないサーバシステムに提供される情報をユーザに入力させるために、ウェブページ202のその他の部分を模倣しようと試みる可能性がある。また、ブラウザ拡張機能206のうちのその他のものは、図1に関連して上で説明されたようなその他の種類の悪意のあるブラウザ拡張機能である可能性がある。
【００５３】
場合によっては、ブラウザ200のユーザが1つまたは複数のブラウザ拡張機能206をアンインストールすることは、難しい可能性がある。たとえば、一部の実装形態において、ブラウザ200は、ブラウザ200にインストールされたブラウザ拡張機能206のリストに含まれるブラウザ拡張機能206を無効化するかまたはアンインストールするオプションを含むブラウザ拡張機能制御画面を含む可能性がある。しかし、無効化またはアンインストールコントロールの一部は、ユーザがブラウザ拡張機能制御画面を使用して特定のブラウザ拡張機能206を無効化するかまたはアンインストールすることができないようにそれら自体無効化されるかまたは「グレーアウトされる」可能性がある。これは、特に、ブラウザ200にインストールされた悪意のあるブラウザ拡張機能206の場合に当てはまる。
【００５４】
ブラウザ200は、ブラウザにインストールされる拡張機能マネージャをブラウザ拡張機能として含む可能性がある。代替的に、拡張機能マネージャは、ブラウザ200を含むコンピューティングデバイスにインストールされ得るが、ブラウザ拡張機能としてはインストールされない可能性がある。拡張機能マネージャは、図1に関連して上で説明された技法を使用して悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能を特定し、それから、特定された悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能を無効化することができる。たとえば、拡張機能マネージャは、ブラウザ拡張機能206に関する識別情報を悪意のあるブラウザ拡張機能のデータベースに含まれるブラウザ拡張機能識別情報と比較して、ブラウザ拡張機能206のいずれかが悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能であるかどうかを判定し得る。別の例として、拡張機能マネージャは、ブラウザ拡張機能206のアクションを監視して、ブラウザ拡張機能206のいずれかが悪意のあるブラウザ拡張機能を示すアクションを実行しているかどうかを判定し得る。
【００５５】
一部の実装形態において、拡張機能マネージャは、特定された悪意のあるブラウザ拡張機能を自動的に無効化する(たとえば、非アクティブ化する、アンインストールする、またはそれらの機能/アクセスを制限する)。一部の実装形態において、拡張機能マネージャは、それから、特定された悪意のあるブラウザ拡張機能の無効化が完了した後、それ自体を自動的にアンインストールすることに進む可能性がある。
【００５６】
図3に目を向けると、一部の実装形態において、拡張機能マネージャは、ブラウザ200にインストールされたブラウザ拡張機能206から悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能を特定した後、拡張機能マネージャダイアログ220をブラウザ200のユーザに提示することができる。拡張機能マネージャダイアログ220は、拡張機能マネージャによって悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能として特定されたブラウザ拡張機能206のリストを含む。拡張機能マネージャダイアログ220は、たとえば、ユーザが無効化する特定されたブラウザ拡張機能206を特定することを可能にするチェックボックスなどのコントロールを含み得る。拡張機能マネージャダイアログ220は、ユーザによって選択される(たとえば、マウスクリックまたはタッチスクリーンの指タップによってインタラクションされる)とき、拡張機能マネージャに特定されたブラウザ拡張機能206を無効化させるコントロール222をさらに含む。一部の実装形態において、拡張機能マネージャダイアログは、特定されたブラウザ拡張機能206がどのようにして無効化されるべきかをユーザが指定することを可能にし得る。たとえば、拡張機能マネージャダイアログ220は、特定されたブラウザ拡張機能206が非アクティブ化されるべきか、アンインストールされるべきか、特定の機能もしくはアクセスを制限するべきか、または別の方法で無効化されるべきかをユーザが指定することを可能にし得る。たとえば、ブラウザ拡張機能206がどのようにして非アクティブ化されるべきかをユーザが選択することを可能にするユーザインターフェース要素が、ユーザインターフェース内に提示され得る。
【００５７】
一部の実装形態において、拡張機能マネージャは、ユーザがコントロール222を選択することに応じて特定されたブラウザ拡張機能206を無効化した後、ブラウザ200および/またはブラウザ200が存在するユーザデバイスからそれ自体をアンインストールするためのアンインストールルーチンを開始する。
【００５８】
図4は、悪意のあるブラウザ拡張機能を特定し、非アクティブ化するための例示的なプロセス400の流れ図である。プロセス400は、図1のユーザデバイス106などの1つまたは複数のデータ処理装置によって実行され得る。特に、クライアントデバイス106a上で実行される拡張機能マネージャ132が、プロセス400を実行する可能性がある。プロセス400の動作は、非一時的コンピュータ可読媒体に記憶された命令によって実施される可能性があり、命令の実行が、1つまたは複数のデータ処理装置にプロセス400の動作を実行させる。
【００５９】
クライアントデバイスのブラウザの動作を修正するように構成されたブラウザ拡張機能が、特定される(402)。たとえば、拡張機能マネージャなどのクライアントデバイスにインストールされたソフトウェアモジュールが、ブラウザ拡張機能がクライアントデバイスにインストールされたブラウザの動作を修正するようにクライアントデバイスにインストールされるブラウザ拡張機能を特定する可能性がある。拡張機能マネージャは、たとえば、クライアントデバイスにインストールされたプログラムのレジストリにアクセスしてブラウザ拡張機能を特定することによってブラウザ拡張機能を特定する可能性がある。別の例として、拡張機能マネージャは、ブラウザとインタラクションしてクライアントデバイスにインストールされたブラウザ拡張機能を特定する可能性がある。たとえば、ブラウザは、ブラウザの動作を修正するように構成されるクライアントデバイスにインストールされたブラウザ拡張機能のレジストリまたはリストを保有する可能性がある。ブラウザは、拡張機能マネージャがクライアントデバイスにインストールされた1つまたは複数のブラウザ拡張機能を特定することを可能にするためにこの情報を拡張機能マネージャに伝達し得る。
【００６０】
ブラウザ拡張機能が、悪意のあるブラウザ拡張機能であると判定される(404)。たとえば、拡張機能マネージャが、ブラウザ拡張機能に関する識別情報を特定された悪意のあるブラウザ拡張機能のデータベースに含まれる情報と比較することと、ブラウザ拡張機能の活動を監視して、ブラウザにおけるコンテンツの表示を遮断すること、追加的な不所望のフォースパーティコンテンツをブラウザ上の表示に注入すること、前に特定された信頼できない遠隔のコンピューティングシステムと通信すること、または制限されたメモリロケーションにアクセスしようと試みることなどの悪意のあるブラウザ拡張機能を示すアクションを特定することとを含め、ブラウザ拡張機能が悪意のあるブラウザ拡張機能であると特定するための1つまたは複数の技術をし得る。
【００６１】
任意で、潜在的に悪意のあるブラウザ拡張機能のリストが、クライアントデバイスのユーザに対して表示される(406)。たとえば、図3に関連して上で検討されたように、クライアントデバイスにインストールされた特定された悪意のあるおよび潜在的に悪意のあるブラウザ拡張機能のリストを含む(図3の拡張機能マネージャダイアログ220などの)拡張機能マネージャダイアログが、ユーザに対して表示される可能性がある。拡張機能マネージャダイアログは、ユーザが無効化されるべきブラウザ拡張機能を示すことを可能にするコントロールを含み得る。たとえば、拡張機能マネージャダイアログは、無効化されるブラウザ拡張機能を選択するためのコントロールをユーザがタップまたはクリックすることを可能にし得る。
【００６２】
任意で、潜在的に悪意のあるブラウザ拡張機能のリストからのブラウザ拡張機能を示すユーザ入力が、ユーザから受け取られる(408)。たとえば、ユーザは、(図3に示されたコントロール222などの)表示された拡張機能マネージャダイアログのコントロールを使用して無効化するブラウザ拡張機能を選択する可能性がある。別の例として、ユーザは、拡張機能マネージャによって無効化させたいと望む悪意のあるまたは潜在的に悪意のあるブラウザ拡張機能に関して、ブラウザ拡張機能の名前などの識別情報を打ち込む可能性がある。
【００６３】
悪意のあるブラウザ拡張機能が、無効化される(410)。一部の実装形態において、拡張機能マネージャは、悪意のあるブラウザ拡張機能を非アクティブ化するか、悪意のあるブラウザ拡張機能をクライアントデバイスからアンインストールするか、悪意のあるブラウザ拡張機能のアクションを制限することによって悪意のあるブラウザ拡張機能を無効化し得る。たとえば、拡張機能マネージャは、遠隔のコンピューティングシステム(すべての遠隔のコンピューティングシステムか、または指定された信頼できない遠隔のコンピューティングシステムのリストかのどちらか)と通信する悪意のあるブラウザ拡張機能の能力を制限する可能性がある。悪意のあるブラウザ拡張機能のこの無効化は、たとえば、特定されたブラウザ拡張機能が悪意のあるブラウザ拡張機能であるとの判定に応じて自動的に実行され得る。一部の実装形態において、拡張機能マネージャは、悪意のあるブラウザ拡張機能が無効化されるべきであることを示す(たとえば、ステップ408において受け取られた)ユーザ入力に応じて悪意のあるブラウザ拡張機能を無効化する。
【００６４】
拡張機能マネージャが、悪意のあるブラウザ拡張機能の無効化が完了するとそれ自体をアンインストールする(412)。たとえば、拡張機能マネージャは、悪意のあるブラウザ拡張機能の無効化が成功裏に完了したと判定し得る。そのとき、拡張機能マネージャは、クライアントデバイスに拡張機能マネージャをアンインストールさせ、それによって、そうでなければ拡張機能マネージャによって使用される追加的な計算リソースを解放させるそれ自体のためのアンインストールプロセスを開始し得る。
【００６５】
図5は、上述の動作を実行するために使用され得る例示的なコンピュータシステム500のブロック図である。システム500は、プロセッサ510、メモリ520、ストレージデバイス530、および入力/出力デバイス540を含む。構成要素510、520、530、および540の各々は、たとえば、システムバス550を用いて相互接続され得る。プロセッサ510は、システム500内で実行するための命令を処理することができる。1つの実装形態において、プロセッサ510は、シングルスレッドプロセッサである。別の実装形態において、プロセッサ510は、マルチスレッドプロセッサである。プロセッサ510は、メモリ520またはストレージデバイス530に記憶された命令を処理することができる。
【００６６】
メモリ520は、システム500内で情報を記憶する。1つの実装形態において、メモリ520は、コンピュータ可読媒体である。1つの実装形態において、メモリ520は、揮発性メモリユニットである。別の実装形態において、メモリ520は、不揮発性メモリユニットである。
【００６７】
ストレージデバイス530は、システム500に大容量ストレージを提供することができる。1つの実装形態において、ストレージデバイス530は、コンピュータ可読媒体である。様々な異なる実装形態において、ストレージデバイス530は、たとえば、ハードディスクデバイス、光ディスクデバイス、複数のコンピューティングデバイスによってネットワークを介して共有されるストレージデバイス(たとえば、クラウドストレージデバイス)、または何らかのその他の大容量ストレージデバイスを含み得る。
【００６８】
入力/出力デバイス540は、システム500に入力/出力動作を提供する。1つの実装形態において、入力/出力デバイス540は、ネットワークインターフェースデバイス、たとえばイーサネット(登録商標)カード、シリアル通信デバイス、たとえばRS-232ポート、および/またはワイヤレスインターフェースデバイス、たとえば802.11カードのうちの1つまたは複数を含み得る。別の実装形態において、入力/出力デバイスは、入力データを受信し、その他の入力/出力デバイス、たとえば、キーボード、プリンター、およびディスプレイデバイス560に出力データを送信するように構成されたドライバデバイスを含み得る。しかし、モバイルコンピューティングデバイス、モバイル通信デバイス、セットトップボックステレビクライアントデバイスなどのその他の実装形態が、使用される可能性もある。
【００６９】
例示的な処理システムが図5に示されたが、本明細書に記載の主題の実装形態および機能的動作は、本明細書において開示された構造およびそれらの構造的均等物含む、その他の種類のデジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装され得る。
【００７０】
本明細書に記載の主題の実施形態および動作は、本明細書において開示された構造およびそれらの構造的均等物を含む、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装され得る。本明細書に記載の主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するためにコンピュータストレージ媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替的にまたは加えて、プログラム命令は、データ処理装置による実行のために好適な受信機装置に送信するために情報を符号化するように生成される人為的に生成された伝播信号、たとえば、機械によって生成された電気的信号、光学的信号、または電磁的信号上に符号化され得る。コンピュータストレージ媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せであるか、あるいはそれらに含まれる可能性がある。さらに、コンピュータストレージ媒体は、伝播信号ではないが、人為的に生成された伝播信号に符号化されたコンピュータプログラム命令の送信元または送信先である可能性がある。コンピュータストレージ媒体は、1つまたは複数の別個の物理的構成要素または媒体(たとえば、複数のCD、ディスク、もしくはその他のストレージデバイス)であるか、またはそれらに含まれる可能性もある。
【００７１】
本明細書に記載の動作は、1つもしくは複数のコンピュータ可読ストレージデバイスに記憶された、またはその他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装され得る。
【００７２】
用語「データ処理装置」は、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、1つのシステムオンチップ、またはそれらの複数もしくは組合せを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含み得る。装置は、ハードウェアに加えて、問題にしているコンピュータプログラムのための実行環境を生成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つもしくは複数の組合せを構成するコードも含み得る。装置および実行環境は、ウェブサービスインフラストラクチャ、分散コンピューティングインフラストラクチャ、およびグリッドコンピューティングインフラストラクチャなどの、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【００７３】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイラ型言語もしくはインタープリタ型言語、宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境での使用に適したその他のユニットとしての形態を含む任意の形態で配置され得る。コンピュータプログラムは、ファイルシステム内のファイルに対応する可能性があるが、必ずそうであるとは限らない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部(たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト)、問題にしているプログラムに専用の単一のファイル、または複数の組織されたファイル(たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所にわたって分散され、通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるように配置され得る。
【００７４】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによってアクションを行うために1つまたは複数のコンピュータプログラムを1つまたは複数のプログラミング可能なプロセッサが実行することによって実行され得る。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行される可能性があり、さらに、装置は、それらの専用の論理回路として実装される可能性がある。
【００７５】
コンピュータプログラムの実行に好適なプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサとの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。概して、プロセッサは、読み出し専用メモリ、またはランダムアクセスメモリ、またはそれらの両方から命令およびデータを受け取ることになる。コンピュータの必須の要素は、命令にしたがってアクションを実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。また、概してコンピュータは、データを記憶するための1つまたは複数の大容量ストレージデバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはそれらの大容量ストレージデバイスからデータを受信するか、もしくはそれらの大容量ストレージデバイスにデータを転送するか、もしくはその両方を行うために動作可能なように結合されることになる。しかし、コンピュータは、そのようなデバイスを備えていなくてもよい。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつか例を挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレイヤー、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に組み込まれる可能性がある。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCDROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用の論理回路によって補完されるか、または専用の論理回路に組み込まれる可能性がある。
【００７６】
ユーザとのインタラクションを行うために、本明細書に記載の主題の実施形態は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえば、CRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上に実装され得る。その他の種類のデバイスが、ユーザとのインタラクションを行うためにやはり使用される可能性があり、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックである可能性があり、ユーザからの入力は、音響、発話、または触覚による入力を含む任意の形態で受け取られる可能性がある。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、そのデバイスから文書を受信することによって、たとえば、ウェブブラウザから受信された要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。
【００７７】
本明細書に記載の主題の実施形態は、バックエンド構成要素を、たとえば、データサーバとして含むか、またはミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、またはフロントエンド構成要素、たとえば、ユーザが本明細書に記載の主題の実装形態とインタラクションすることができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムに実装され得る。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互に接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)および広域ネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
【００７８】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。一部の実施形態において、サーバは、(たとえば、クライアントデバイスとインタラクションするユーザに対してデータを表示し、そのようなユーザからユーザ入力を受け取る目的で)クライアントデバイスにデータ(たとえば、HTMLページ)を送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザのインタラクションの結果)が、サーバにおいてクライアントデバイスから受信される可能性がある。
【００７９】
本明細書は多くの特定の実装形態の詳細を含むが、これらは、いかなる発明の範囲または特許請求され得るものの範囲に対する限定とも見なされるべきでなく、むしろ、特定の発明の特定の実施形態に固有の特徴の説明と見なされるべきである。別々の実施形態の文脈で本明細書において説明されている特定の特徴が、単一の実施形態において組み合わせて実装される可能性もある。反対に、単一の実施形態の文脈で説明されている様々な特徴が、複数の実施形態に別々に、または任意の適切な部分的組合せで実装される可能性もある。さらに、特徴は、特定の組合せで動作するものとして上で説明されている可能性があり、最初にそのように特許請求されてさえいる可能性があるが、特許請求された組合せの1つまたは複数の特徴は、場合によっては組合せから削除される可能性があり、特許請求された組合せは、部分的組合せ、または部分的組合せの変形を主題とする可能性がある。
【００８０】
同様に、動作が図中に特定の順序で示されているが、これは、そのような動作が示された特定の順序でもしくは逐次的順序で実行されること、または所望の結果を達成するために示されたすべての動作が実行されることを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が有利である可能性がある。さらに、上述の実施形態における様々なシステム構成要素の分割は、すべての実施形態においてそのような分割を必要とするものと理解されるべきでなく、説明されたプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされる可能性があると理解されるべきである。
【００８１】
このように、主題の特定の実施形態が説明された。その他の実施形態は、添付の特許請求の範囲内にある。場合によっては、特許請求の範囲に挙げられたアクションは、異なる順序で実行され、それでも所望の結果を達成し得る。加えて、添付の図面に示されたプロセスは、所望の結果を達成するために、必ずしも、示された特定の順序または逐次的順序である必要はない。特定の実装形態においては、マルチタスクおよび並列処理が、有利である可能性がある。
【符号の説明】
【００８２】
100  例示的な環境
102  ネットワーク
104  ウェブサイト、コンテンツアイテムプロバイダ、パブリッシャ
104a  パブリッシャ
104b  パブリッシャ
106  ユーザデバイス、クライアントデバイス
106a  ユーザデバイス、クライアントデバイス
106b  ユーザデバイス、クライアントデバイス
106c  ユーザデバイス/クライアントデバイス
108  主コンテンツ、リソースパブリッシャ
108b  主コンテンツ
110  サードパーティコンテンツプロバイダ
112  サードパーティコンテンツアイテム
114  悪意のあるソフトウェア供給者
116  悪意のあるソフトウェア
118  フォースパーティコンテンツ供給者
120  不所望のコンテンツアイテム
126  ブラウザ
128  コンピュータメモリ
130  拡張機能
130a  ブラウザ、ブラウザ拡張機能
130b  ブラウザ、ブラウザ拡張機能
132  拡張機能マネージャ
134  悪意のある拡張機能のデータベース
200  ブラウザ
202  ウェブページ
204  主コンテンツ
206  ブラウザ拡張機能
208  検索バー
210  画像
212  画像
214  ビデオコンテンツ
216  フォースパーティコンテンツアイテム
220  拡張機能マネージャダイアログ
222  コントロール
400  プロセス
500  コンピュータシステム
510  プロセッサ
520  メモリ
530  ストレージデバイス
540  入力/出力デバイス
550  システムバス
560  ディスプレイデバイス
【図１】
2019502973.tif 000003
【図２】
2019502973.tif 000004
【図３】
2019502973.tif 000005
【図４】
2019502973.tif 000006
【図５】
2019502973.tif 000007
【国際調査報告】
2019502973.tif 000008
2019502973.tif 000009
2019502973.tif 000010