(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-11
(45)【発行日】2024-01-19
(54)【発明の名称】コンピューティングデバイス上で広告をブロックするシステム及び方法
(51)【国際特許分類】
G06F 21/55 20130101AFI20240112BHJP
H04L 67/2869 20220101ALI20240112BHJP
H04L 67/2871 20220101ALI20240112BHJP
【FI】
G06F21/55
H04L67/2869
H04L67/2871
【外国語出願】
(21)【出願番号】P 2020010888
(22)【出願日】2020-01-27
【審査請求日】2022-07-15
(32)【優先日】2019-02-07
(33)【優先権主張国・地域又は機関】RU
(32)【優先日】2019-05-31
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】515348585
【氏名又は名称】エーオー カスペルスキー ラボ
【氏名又は名称原語表記】AO Kaspersky Lab
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】アレクセイ ピー.コミッサーロフ
【審査官】小林 秀和
(56)【参考文献】
【文献】特表2014-519751(JP,A)
【文献】特開2017-139731(JP,A)
【文献】特開2012-234579(JP,A)
【文献】特開2016-071531(JP,A)
【文献】特開2014-011695(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/55
H04L 67/2869
H04L 67/2871
(57)【特許請求の範囲】
【請求項1】
コンピューティングデバイスでの情報の受信をブロックするための方法であって、
前記コンピューティングデバイスのプロセッサによって、ドメインネームシステム(Domain Name System:DNS)要求をインターセプトし、前記インターセプトしたDNS要求は、前記コンピューティングデバイスからブロックされる前記情報に関連付けられ
、ならびに前記DNS要求を行っているアプリケーションの識別子、および前記DNS要求からの1つまたは複数のユニバーサルリソースロケータ(Universal Resource Locator:URL)に関して取得された情報の少なくとも1つを含むことと、
前記コンピューティングデバイスの前記プロセッサによって、前記インターセプトしたDNS要求の送信に対するルールのセットを取得
し、前記ルールのセットを取得することは、前記インターセプトしたDNS要求内の前記1つまたは複数のURL、および前記DNS要求を行っている前記アプリケーションに関する情報に基づいて、データベースから前記ルールのセットを選択することを含み、前記アプリケーションに関する前記情報は、少なくとも前記アプリケーションの識別子を含み、前記ルールのセットの選択された各ルールにおいて、前記DNS要求を行っている前記アプリケーションに関する前記情報は、前記選択されたルールに含まれる、前記アプリケーションに関する情報に対応し、前記アプリケーションによって行われた前記インターセプトしたDNS要求からの前記URLは、前記選択されたルールに含まれる、前記URLに関する情報に対応することと、
前記コンピューティングデバイスの前記プロセッサによって、前記取得したルールのセットのうち少なくとも1つのルールにより、前記インターセプトしたDNS要求の前記送信のブロッキングを承諾するかどうかを決定することと、
前記コンピューティングデバイスの前記プロセッサによって、前記ルールのセットのうち少なくとも1つのルールにより、前記インターセプトしたDNS要求の前記送信の前記ブロッキングを承諾するときに、前記インターセプトしたDNS要求の前記送信をブロックし、前記インターセプトしたDNS要求の前記送信の前記ブロッキングにより、前記コンピューティングデバイスでの前記情報の受信をブロックすることと、を含む、
方法。
【請求項2】
前記ルールのセットを取得することは、前記インターセプトしたDNS要求が、ユーザの1つまたは複数のアクションによって開始されたDNS要求である確率を推定することをさらに含
み、前記インターセプトしたDNS要求の前記送信の前記ブロッキングは、前記推定された確率に基づいて前記インターセプトしたDNS要求の前記送信を選択的にブロックすることをさらに含む、請求項
1に記載の方法。
【請求項3】
前記ルールのセットを取得することは、前記インターセプトしたDNS要求が、リモートサーバからのその後の情報のダウンロードのために行われるDNS要求の特性を有するものである確率を推定することをさらに含
み、前記インターセプトしたDNS要求の前記送信の前記ブロッキングは、前記推定された確率に基づいて前記インターセプトしたDNS要求の前記送信を選択的にブロックすることをさらに含む、請求項
1に記載の方法。
【請求項4】
前記DNS要求のインターセプションは、DNSプロキシプロバイダを使用して実施される、請求項1に記載の方法。
【請求項5】
コンピューティングデバイスでの情報の受信をブロックするためのシステムであって、
ドメインネームシステム(DNS)要求をインターセプトし、前記インターセプトしたDNS要求は、前記コンピューティングデバイスからブロックされる前記情報に関連付けられ
、ならびに前記DNS要求を行っているアプリケーションの識別子、および前記DNS要求からの1つまたは複数のユニバーサルリソースロケータ(Universal Resource Locator:URL)に関して取得された情報の少なくとも1つを含み、
前記インターセプトしたDNS要求の送信に対するルールのセットを取得し、
前記ルールのセットを取得することは、前記インターセプトしたDNS要求内の前記1つまたは複数のURL、および前記DNS要求を行っている前記アプリケーションに関する情報に基づいて、データベースから前記ルールのセットを選択することを含み、前記アプリケーションに関する前記情報は、少なくとも前記アプリケーションの識別子を含み、前記ルールのセットの選択された各ルールにおいて、前記DNS要求を行っている前記アプリケーションに関する前記情報は、前記選択されたルールに含まれる、前記アプリケーションに関する情報に対応し、前記アプリケーションによって行われた前記インターセプトしたDNS要求からの前記URLは、前記選択されたルールに含まれる、前記URLに関する情報に対応し、
前記取得したルールのセットのうち少なくとも1つのルールにより、前記インターセプトしたDNS要求の前記送信のブロッキングを承諾するかどうかを決定し、
前記ルールのセットのうち少なくとも1つのルールにより、前記インターセプトしたDNS要求の前記送信の前記ブロッキングを承諾するときに、前記インターセプトしたDNS要求の前記送信をブロックし、前記インターセプトしたDNS要求の前記送信の前記ブロッキングにより、前記コンピューティングデバイスでの前記情報の受信をブロックするように構成された少なくとも1つのプロセッサを含む、
システム。
【請求項6】
前記ルールのセットを取得するための前記構成は、前記インターセプトしたDNS要求が、ユーザの1つまたは複数のアクションによって開始されたDNS要求である確率を推定するための構成をさらに含
み、前記インターセプトしたDNS要求の前記送信の前記ブロッキングは、前記推定された確率に基づいて前記インターセプトしたDNS要求の前記送信を選択的にブロックすることをさらに含む、請求項
5に記載のシステム。
【請求項7】
前記ルールのセットを取得するための前記構成は、前記インターセプトしたDNS要求が、リモートサーバからのその後の情報のダウンロードのために行われるDNS要求の特性を有するものである確率を推定するための構成をさらに含
み、前記インターセプトしたDNS要求の前記送信の前記ブロッキングは、前記推定された確率に基づいて前記インターセプトしたDNS要求の前記送信を選択的にブロックすることをさらに含む、請求項
5に記載のシステム。
【請求項8】
前記DNS要求のインターセプションは、DNSプロキシプロバイダを使用して実施される、請求項
5に記載のシステム。
【請求項9】
コンピューティングデバイスでの情報の受信をブロックするためのコンピュータ実行可能命令を記憶している非一時的なコンピュータ可読媒体であって、
前記コンピューティングデバイスのプロセッサによって、ドメインネームシステム(DNS)要求をインターセプトし、前記インターセプトしたDNS要求は、前記コンピューティングデバイスからブロックされる前記情報に関連付けられ
、ならびに前記DNS要求を行っているアプリケーションの識別子、および前記DNS要求からの1つまたは複数のユニバーサルリソースロケータ(Universal Resource Locator:URL)に関して取得された情報の少なくとも1つを含み、
前記コンピューティングデバイスの前記プロセッサによって、前記インターセプトしたDNS要求の送信に対するルールのセットを取得し、
前記ルールのセットを取得することは、前記インターセプトしたDNS要求内の前記1つまたは複数のURL、および前記DNS要求を行っている前記アプリケーションに関する情報に基づいて、データベースから前記ルールのセットを選択することを含み、前記アプリケーションに関する前記情報は、少なくとも前記アプリケーションの識別子を含み、前記ルールのセットの選択された各ルールにおいて、前記DNS要求を行っている前記アプリケーションに関する前記情報は、前記選択されたルールに含まれる、前記アプリケーションに関する情報に対応し、前記アプリケーションによって行われた前記インターセプトしたDNS要求からの前記URLは、前記選択されたルールに含まれる、前記URLに関する情報に対応し、
前記コンピューティングデバイスの前記プロセッサによって、前記取得したルールのセットのうち少なくとも1つのルールにより、前記インターセプトしたDNS要求の前記送信のブロッキングを承諾するかどうかを決定し、
前記コンピューティングデバイスの前記プロセッサによって、前記ルールのセットのうち少なくとも1つのルールにより、前記インターセプトしたDNS要求の前記送信の前記ブロッキングを承諾するときに、前記インターセプトしたDNS要求の前記送信をブロックし、前記インターセプトしたDNS要求の前記送信の前記ブロッキングにより、前記コンピューティングデバイスでの前記情報の受信をブロックするための命令を含む、
非一時的なコンピュータ可読媒体。
【請求項10】
前記ルールのセットを取得するための前記命令は、前記インターセプトしたDNS要求が、ユーザの1つまたは複数のアクションによって開始されたDNS要求である確率を推定するための命令をさらに含
み、前記インターセプトしたDNS要求の前記送信の前記ブロッキングは、前記推定された確率に基づいて前記インターセプトしたDNS要求の前記送信を選択的にブロックすることをさらに含む、請求項
9に記載の非一時的なコンピュータ可読媒体。
【請求項11】
前記ルールのセットを取得するための前記命令は、前記インターセプトしたDNS要求が、リモートサーバからのその後の情報のダウンロードのために行われるDNS要求の特性を有するものである確率を推定するための命令をさらに含
み、前記インターセプトしたDNS要求の前記送信の前記ブロッキングは、前記推定された確率に基づいて前記インターセプトしたDNS要求の前記送信を選択的にブロックすることをさらに含む、請求項
9に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ユーザエクスペリエンスを改善するために、コンピューティングデバイス、例えば、モバイルコンピューティングデバイス上の、情報、例えば、広告をブロックする分野に関し、より詳細には、広告メッセージをブロックすることに関する。
【背景技術】
【0002】
現在、モバイルコンピューティングデバイス(例えば、スマートフォンおよびタブレット)は、ありとあらゆるタスクを処理するため、またはエンターテイメントのために、毎日、人々によって使用されている。通信、タイムスケジューリング、インターネットページ表示、銀行口座管理などのために、ありとあらゆるアプリケーションが多数存在する。これらのアプリケーションの一部は代価と引き換えに、その他のものは無料で配布される。
【0003】
無料で配布されるアプリケーションは、アプリケーションの使用中に表示される広告が存在することが特徴である。そうすることで、開発者は、自身の仕事の成果を収益化する。しかし、多くの場合、このような広告は、例えば、悪意あるファイルまたはサイトへのリンク先を表示することによって、ユーザまたはユーザのデバイスにとって非常に邪魔なものであるか、または害をおよぼすことさえある。
【0004】
広告からユーザのコンピューティングデバイスを保護する一方法は、禁止リソースのブラックリストを使用し、DNS(ドメインネームシステム)要求をインターセプトして、ユーザに表示されるはずの広告をブロックすることである。しかし、iOSオペレーティングシステム管理下のデバイスに関しては、このような方法は、VPNまたはプロキシサーバを利用して、アプリケーションの広告モジュールによって確立された接続をブロックすることを伴う。さらに、このような方法は、電力を消費し、ネットワークを通して伝送されるデータ容量に対する支出の観点から、不経済であることが実証される可能性もある。
【0005】
したがって、広告からモバイルコンピューティングデバイスのユーザを効果的に保護する方法が必要とされる。
【発明の概要】
【0006】
本開示の態様は、ユーザエクスペリエンスおよび広告の分野に関し、より詳細には、コンピューティングデバイスでの情報、例えば、広告の受信をブロックするため、例えば、コンピューティングデバイス上の広告をブロックするためのシステムおよび方法に関する。
【0007】
一例示的態様では、方法は、ハードウェアプロセッサを備えたコンピュータに実装され、該方法は、ドメインネームシステム(Domain Name System:DNS)要求をインターセプトし、該インターセプトしたDNS要求は、コンピューティングデバイスからブロックされる情報に関連付けられているものであることと、インターセプトしたDNS要求の送信に対するルールのセットを取得することと、取得したルールのセットのうち少なくとも1つのルールにより、インターセプトしたDNS要求の送信のブロッキングを承諾するかどうかを決定することと、ルールのセットのうち少なくとも1つのルールにより、インターセプトしたDNS要求の送信のブロッキングを承諾するときに、インターセプトしたDNS要求の送信をブロックし、該インターセプトしたDNS要求の送信のブロッキングにより、コンピューティングデバイスでの情報の受信をブロックすることとを含む。
【0008】
本開示の一態様によれば、システムは、コンピューティングデバイスでの情報の受信をブロックするために提供され、該システムは、ドメインネームシステム(DNS)要求をインターセプトし、該インターセプトしたDNS要求は、コンピューティングデバイスからブロックされる情報に関連付けられているものであり、インターセプトしたDNS要求の送信に対するルールのセットを取得し、取得したルールのセットのうち少なくとも1つのルールにより、インターセプトしたDNS要求の送信のブロッキングを承諾するかどうかを決定し、ルールのセットのうち少なくとも1つのルールにより、インターセプトしたDNS要求の送信のブロッキングを承諾するときに、インターセプトしたDNS要求の送信をブロックし、該インターセプトしたDNS要求の送信のブロッキングにより、コンピューティングデバイスでの情報の受信をブロックするように構成されたハードウェアプロセッサを含む。
【0009】
一例示的態様では、コンピューティングデバイスでの情報の受信をブロックするための命令のセットを記憶している非一時的なコンピュータ可読媒体が提供され、該命令のセットは、ドメインネームシステム(DNS)要求をインターセプトし、該インターセプトしたDNS要求は、コンピューティングデバイスからブロックされる情報に関連付けられているものであり、インターセプトしたDNS要求の送信に対するルールのセットを取得し、取得したルールのセットのうち少なくとも1つのルールにより、インターセプトしたDNS要求の送信のブロッキングを承諾するかどうかを決定し、ルールのセットのうち少なくとも1つのルールにより、インターセプトしたDNS要求の送信のブロッキングを承諾するときに、インターセプトしたDNS要求の送信をブロックし、該インターセプトしたDNS要求の送信のブロッキングにより、コンピューティングデバイスでの情報の受信をブロックするための命令を含む。
【0010】
一態様では、ルールのセットは、インターセプトしたDNS要求内の1つまたは複数のユニバーサルリソースロケータ(Universal Resource Locator:URL)、およびDNS要求を行っているアプリケーションに関して取得された情報のうち少なくとも1つに基づいて取得される。
【0011】
一態様では、ルールのセットを取得することは、インターセプトしたDNS要求内の1つまたは複数のURL、およびDNS要求を行っているアプリケーションに関する情報に基づいて、データベースから、ルールのセットを選択することを含む。
【0012】
一態様では、ルールのセットを取得することは、インターセプトしたDNS要求が、ユーザの1つまたは複数のアクションによって開始されたDNS要求である確率を推定することをさらに含む。
【0013】
一態様では、ルールのセットを取得することは、インターセプトしたDNS要求が、リモートサーバからのその後の情報のダウンロードのために行われるDNS要求の特性を有するものである確率を推定することをさらに含む。
【0014】
一態様では、DNS要求のインターセプションは、DNS要求を行っているアプリケーションの識別、およびDNS要求からの1つまたは複数のユニバーサルリソースロケータ(URL)に関する情報の取得のうち少なくとも1つを含む。
【0015】
一態様では、DNS要求のインターセプションは、DNSプロキシプロバイダを使用して実施される。
【0016】
本開示の教示に従ってコンピューティングデバイス上の広告をブロックすることは、デバイスおよびデバイスを介してアクセスされるアプリケーションを用いるユーザエクスペリエンスを改善する。この改善は、コンピューティングデバイスからブロックされる情報に関連付けられているDNS要求をインターセプトし、インターセプトしたDNS要求の送信に対するルールのセットを取得し、取得したルールのセットのうち少なくとも1つのルールにより、インターセプトしたDNS要求の送信のブロッキングを承諾するかどうかを決定し、ルールのセットのうち少なくとも1つのルールにより、インターセプトしたDNS要求の送信のブロッキングを承諾するときに、インターセプトしたDNS要求の送信をブロックすることによって実現される。
【図面の簡単な説明】
【0017】
本明細書に組み込まれ、かつ本明細書の一部を構成する添付図面を、発明を実施するための形態と共に本開示の1つまたは複数の例示的態様を示し、それらの原理および実装形態を説明するために提供する。
【0018】
【
図1】本開示の態様に従って、コンピューティングデバイス上の情報、例えば、広告をブロックするための例示的システムを示すブロック図である。
【
図2】コンピューティングデバイス上の情報、例えば、広告をブロックするための例示的方法を示すフロー図である。
【
図3】本開示の態様が実装され得る汎用コンピュータシステムの一例を示す図である。
【発明を実施するための形態】
【0019】
例示的態様が、コンピューティングデバイス上の情報、例えば広告をブロックするためのシステム、方法、およびコンピュータプログラムのコンテキストで、本明細書に記載される。以下の説明は例示のためのものであり、いかなる点においても限定することを意図するものではないことを当業者であれば理解されるであろう。その他の態様は、本開示から利益を得る当業者であれば、その内容が容易に連想されるであろう。添付図面に示される例示的な態様の実装形態に、参照番号が項目ごとに付与される。同一または類似の項目であることを言及するために、同じ参照番号が図面および以下の説明を通して可能な範囲で使用される。
【0020】
本開示の教示を明瞭に提示するために、本開示の種々の態様を説明する際に使用されるいくつかの用語および概念が、本明細書において定義される。
【0021】
DNSプロキシプロバイダは、iOSオペレーティングシステム用のアプリケーション拡張であり、NEDNSProxyProviderクラスによって実現される。この拡張が存在する場合、それを含むアプリケーションからのDNS要求は、インターセプトすることができる。インターセプトしたDNS要求は、ユニバーサルリソースロケータ(URL)を含む。次に、行われたDNS要求に対するサーバのドメイン名およびIPアドレスが判別される。加えて、拡張は、要求の発信源、すなわち、要求を行っているアプリケーションを判別するために使用することができる。特に、要求を行っているアプリケーションの識別子、例えば、アプリケーションの名前、またはアプリケーションの一意な識別子を判別することが可能である。
【0022】
広告は、何らかの方法によって、何らかの形式で、いずれのデバイスの使用によっても広められる情報であり、不特定の人々のグループに宛てられ、広告の対象への注意を引き、広告の対象に興味を持たせるか、それを継続させ、かつ広告の対象を市場において販売促進することを目的とするものである。
【0023】
一態様では、本開示の教示に従って、コンピューティングデバイス上の望ましくない情報をブロックするため、例えば、広告をブロックするためのシステムは、統合マイクロ回路(特定用途向け集積回路、Application-Specific Integrated Circuit:ASIC)、またはフィールドプログラマブルゲートアレイ(Field-Programmable Gate Array:FPGA)などのハードウェアを用いて、または、例えば、マイクロプロセッサシステムおよびプログラム命令のセットなどのソフトウェアおよびハードウェアの組み合わせの形態で、またニューロンシナプスチップ上で実現される、実世界デバイス、システム、コンポーネントおよびコンポーネントのグループを含む。このようなシステムモジュールの機能性は、ハードウェアによって単独で、およびソフトウェアによって実現されるシステムの機能性の一部とハードウェアによるものの一部との組み合わせの形態によっても実現することが可能である。特定の態様では、一部のモジュールまたはすべてのモジュールは、汎用コンピュータ(
図3に示すような)のプロセッサで実行されてよい。さらに、システムのコンポーネントは、単一のコンピューティングデバイス内部で、またはいくつかの相互接続しているコンピューティングデバイスの間で分散して実現することができる。
【0024】
図1は、本開示の態様に従って、コンピューティングデバイス上の情報、例えば、広告をブロックするための例示的システム100を示すブロック図である。コンピューティングデバイス上の広告をブロックするためのシステム100は、インターセプトモジュール120を含む。
【0025】
インターセプトモジュール120は、リモートサーバ145からダウンロードされて、コンピューティングデバイス110の出力デバイスで表示される望ましくない情報の表示をブロックするように設計される。例えば、望ましくない情報は、コンピューティングデバイスの画面、またはコンピューティングデバイスに接続している周辺デバイスの画面に表示される場合がある。このような情報の具体的な事例は、広告130である。
【0026】
本開示の例示的態様は広告に関して記載されるが、本開示の教示は、広告をブロックすることだけに制限されず、サーバからダウンロードされる情報を必要とするいずれの情報の表示もブロックするために使用される場合があるという点に留意すべきである。サーバからの情報のダウンロードに対する条件として、DNS要求が必要であることに注意されたい。コンピューティングデバイス110の具体的な事例としては、携帯電話、スマートフォン、タブレット型コンピュータ、または任意の他のポータブルコンピューティングデバイスなどの、モバイルコンピューティングデバイスなどがある。
【0027】
コンピューティングデバイス110は、実行可能または解釈可能なコードを含むコンピューティングデバイス110の画面上に望ましくない情報を表示するモジュールを備える。
【0028】
一態様では、望ましくない情報を表示するモジュールは、広告モジュール135である。コンピューティングデバイス110が、モバイルコンピューティングデバイスである場合に、広告モジュール135は、コンピューティングデバイス上で動作するアプリケーションコンポーネントである。このようなモジュールの例としては、AdMob、AdSence、Firebase、iAdなどの、プログラムライブラリに基づく広告モジュールがある。一態様では、コンピューティングデバイス110が、モバイルコンピューティングデバイスである場合に、インターセプトモジュール120は、コンピューティングデバイス上で動作するアプリケーションコンポーネントである。例えば、コンピューティングデバイス上で動作するアプリケーションコンポーネント(例えば、AdMob、AdSenseなど)である広告モジュール135が、DNS要求の送信を試みるときに、インターセプトモジュール120(同じく、コンピューティングデバイス110上で動作するアプリケーションコンポーネント)は、DNS要求をインターセプトする。
【0029】
一態様では、広告モジュール135は、独立したアプリケーションである。別の態様では、広告モジュール135は、メッセージを変換するか、またはウェブページに訪問するためのアプリケーションなどの、収益化のために設計された別のアプリケーションのコンポーネントである。
【0030】
一般性を失うことなく、本開示の教示のさらなる説明のために、コンピューティングデバイス110は、iOSオペレーティングシステム管理下のモバイルコンピューティングデバイスとみなすこととする。
【0031】
広告130の表示のために、広告モジュール135は、様々な広告キャンペーン向けの材料を提供するリモートサーバ145から、対応する材料(例えば、コンテンツ)をダウンロードする。広告130として表示されるデータのダウンロードは、広告モジュール135によるDNS要求の送信の後に行われる。DNS要求は、サーバ145のユニフォームリソースロケータ(Uniform Resource Locator:URL)、特に、サーバのドメイン名に基づいて、サーバ145のIPアドレスを判別するために行われる。したがって、広告からユーザ(すなわち、ユーザのデバイス)を保護する課題は、DNS要求が行われて、そのDNS要求がその後の広告のダウンロードのためのものであるかどうかを識別する問題と解釈することができる。
【0032】
本開示の一態様では、インターセプトモジュール120は、コンピューティングデバイス110から送られるDNS要求、すなわち、コンピューティングデバイス110の広告モジュール135から送られるDNS要求をインターセプトすることによって、広告130からユーザを保護するために使用される。一態様では、インターセプトモジュール120は、DNSプロキシプロバイダを用いて実現することができる。
【0033】
前述したように、種々のモジュール、例えば、インターセプトモジュール120、広告モジュール135などは、コンピューティングデバイス110上で動作するアプリケーションであってもよい。したがって、コンピューティングデバイス110、例えば、モバイルデバイスのハードウェアプロセッサは、インターセプトモジュール120および広告モジュール135のコードなどの、アプリケーションのコードを実行するために使用される。
【0034】
一態様では、DNS要求がインターセプトされるときに、サーバ145に常駐する広告リソースに対するURLが取得され、その要求を行っているアプリケーションに関する情報が取得される。URLは、インターセプトしたDNS要求から取得される。インターセプトしたDNS要求から取得されるURLのいくつかの例としては、
- ads.mopub.com
- ads.nexage.com
- ad.mail.ru
- ws.tapjoyads.com
- config.unityads.unity3d.com
が挙げられる。
【0035】
一態様では、アプリケーションに関する情報は、アプリケーションの少なくとも識別子を含む。例えば、情報は、アプリケーションの名前、アプリケーションのチェックサムなどを含んでもよい。
【0036】
一態様では、アプリケーションに関する情報は、インターセプトモジュール120によって、オブジェクトNEFlowMetaDataの形式で取得される。一態様では、ルールのセットを取得することは、データベース125からルールのセットを選択することを含む。データベース125は、コンピューティングデバイス110内部、または周辺デバイスに常駐する場合があることに注意されたい。例えば、コンピューティングデバイス110が、モバイルデバイス(例えば、スマートフォン)の場合、データベース125はモバイルデバイス内部の記憶場所にあってもよい。
【0037】
一旦、アプリケーションに関する情報が取得されると、インターセプトモジュール120は、URLおよびアプリケーションに関して取得された情報に基づいて、DNS要求の送信に対するルールのセットを取得する。言い換えると、インターセプトしたDNS要求内のURL、およびDNS要求を行っているアプリケーションに関する情報に基づいて、ルールのセットが取得されるが、その際、該アプリケーションに関する情報は、アプリケーションの少なくとも識別子、例えば、アプリケーションの名前、アプリケーションのチェックサムを含んでいる。
【0038】
一態様では、DNS要求の送信に対するルールのセットのルールは、DNS要求を行っているアプリケーションに関する情報、少なくとも1つのURLに関する情報、およびDNS要求に関するルールによって定められた少なくとも1つのアクションを含む。例えば、少なくとも1つのアクションとしては、インターセプトしたDNS要求の送信をブロックすることが挙げられる。ブロックしたアクションは、アプリケーションに関する情報に基づいて取得されるルールに関連付けられたものであってもよい。
【0039】
インターセプトモジュール120は、データベース125からルールのセットを取得するが、この場合、選択されるルールのセットのルールのそれぞれは、以下の条件を満たすようなものである。
-DNS要求を行っているアプリケーションに関する情報は、DNS要求の送信に対するルールに含まれるアプリケーションに関する情報と一致している。
-アプリケーションによって行われたDNS要求からのURLは、DNS要求の送信に対するルールに含まれるURLに関する情報と一致している。
【0040】
一態様では、正確な一致が存在するか、あるいはURLのマスクまたは正規表現によってカバーされている場合、アプリケーションによって行われたDNS要求からのURLは、DNS要求の送信に対するルールに含まれるURLに関する情報と一致している。
【0041】
一態様では、ルール内に格納されているURLに関する情報は、URL、URLのマスク、またはURLを表す正規表現を成すものであってもよい。特定のDNS要求に対するインターセプトモジュール120によって選択されるルールのために、DNS要求に含まれる必要があるURLに関する情報は、
- *.*ads.*.com
- ads.*.com
を含む。
【0042】
一態様では、インターセプトモジュール120によるルールの選択後に、インターセプトモジュール120は、DNS要求の送信に対するルールによって定められたアクションを実行する。例えば、DNS要求の送信がブロックされる場合がある。
【0043】
さらに別の態様では、ルールは、さらに以下のアクションを定めてもよい。
- 広告130を表示させるか、またはブロックするかどうかを尋ねるメッセージをユーザに表示する。
- 広告130が表示されるであろう画面領域上で、広告130を表示させるか、またはブロックするかどうかを尋ねるメッセージをユーザに表示する。
【0044】
一態様では、DNS要求の送信に対するルールに含まれる追加の条件が満たされるときに、インターセプトモジュール120は、ルールによって定められたアクションを実行する。一態様では、追加の条件としては、
- 広告サーバのURLと一致するDNS要求からのURLに対する条件
- 確定されている閾値、例えば、80%(0.8)以下の、コンピューティングデバイス110のユーザアクションによって開始されるDNS要求の確率に対する条件
が挙げられる。
【0045】
一態様では、コンピューティングデバイスのユーザの1つまたは複数のアクションによって開始されたDNS要求の確率は、次の式によって決定される。
【数1】
式中、Pは、DNS要求がコンピューティングデバイスのユーザの1つまたは複数のアクションによって開始された確率を表すものであり、x
iは、後述するように、複数の条件のうち1つの重み係数を表すものである。
【0046】
複数の条件の各条件は、DNS要求に関する特定の情報に対して満たされるものである。言い換えると、条件は、URLおよび/またはDNS要求を行っているアプリケーションに関する情報に対して満たされるものである。一態様では、条件の重み係数には、異なる値が用いられてもよい。
【0047】
一態様では、複数の条件は、以下の条件のうち少なくとも1つを含む。
(1)DNS要求からのURLが、URL、URLのマスク、または既知の広告サーバのURLの正規表現と一致していない。その場合、例えば、重み係数は、1に等しくてもよい。
(2)DNS要求を行っているアプリケーションがブラウザである。その場合、例えば、重み係数は、0.4に等しくてもよい。
(3)DNS要求を行っているアプリケーションがゲームである。その場合、重み係数は、-0.5に等しくてもよい。
(4)DNS要求からのURLのセカンドレベルのドメインが、現在よりも以前の特定の時間tの間(例えば、tは5日間)に、DNS要求を行っているアプリケーションによって既に訪問されたことがある。その場合、重み係数は、0.5に等しくてもよい。
(5)DNS要求からのURLが、アプリケーションに関連付けられている多数のURLの中に存在する。その場合、重み係数は、0.2に等しくてもよい。
【0048】
アプリケーションに関連付けられたURLのセットは、アプリケーションの各識別子が、1つまたは複数のURLアドレス、URLアドレスのマスクまたは正規表現と一致して設定されるようにしてデータベース125に保存されてよく、そのアクセスは(また、対応するDNS要求も)、所与のアプリケーションにとって標準的なものである。アプリケーションに関連付けられたURLのセット(すなわち、データベース125に保存された情報)は、例えば、コンピュータセキュリティの分野で、専門家によって遠隔的に記憶および更新されてよい。アプリケーションとURLのセットとを関連付けるリンクの一例としては、アプリケーションYandex.Translatorおよびその関連したURL ad.yandex.ruがある。
【0049】
一態様では、前述の条件および対応する重み係数は、データベース125に保存されてもよい。一態様では、条件および対応する重み係数は、例えば、コンピュータセキュリティの分野で、専門家によって、データベース125に遠隔的に記憶および更新されてよい。
【0050】
一態様では、選択されたルールのセットは、ルールによって定められたアクションを実行するために、インターセプトモジュール120によって使用される。さらに、一態様では、アクションが定められたアクションのすべての中から選択されるときに、DNS要求をブロックするアクションは最優先度を有する。
【0051】
一態様では、データベース125からのDNS要求の送信に対するルールのセットのうち少なくとも1つのルールにより、DNS要求のブロッキングが承諾される場合、DNS要求の送信はブロックされる。したがって、ルールのセットのうち1つのルールにより、DNS要求のブロッキングが承諾される場合、広告130のダウンロードおよび表示をする広告モジュール135によって行われるDNS要求は、インターセプトモジュール120によってブロックされることになる。
【0052】
図2は、本開示の態様に従って、コンピューティングデバイスでの(望ましくない)情報の受信をブロックするための例示的方法200のフロー図である。例えば、望ましくない情報が広告である場合、方法200は、コンピューティングデバイスでの広告の受信をブロックするために使用することができる。
【0053】
ステップ210では、該方法により、DNS要求をインターセプトする。DNS要求のインターセプションは、前述したインターセプトモジュール120の機能を実施するアプリケーションが動作しているコンピューティングデバイスのハードウェアプロセッサによって実施されてよい。インターセプトしたDNS要求は、本開示の教示に従って、コンピューティングデバイスによる受信がブロックされる情報と関連付けられていることに注意されたい。
【0054】
一態様では、DNS要求のインターセプションは、DNS要求を行っているアプリケーションの識別、およびDNS要求からの1つまたは複数のURLに関する情報の取得を含む。一態様では、DNS要求のインターセプションは、DNSプロキシプロバイダを用いて実施される。
【0055】
インターセプトモジュール120は、かかるDNS要求が、所与の広告モジュール、例えば、広告モジュール135によって行われるDNS要求のためのアプリケーションによって行われるDNS要求の特性を示すものである程度を判断するタスクが与えられる。
【0056】
ステップ220では、該方法により、インターセプトしたDNS要求の送信に対するルールのセットを取得する。ルールのセットを取得することは、インターセプトモジュール120によって実施されてよい。一態様では、ルールのセットは、DNS要求のインターセプションの間に取得される情報に基づいて、データベース125から選択することによって取得される。データベース125およびインターセプトモジュール120は、同じデバイス、例えば、コンピューティングデバイス110に実装されてもよい。
【0057】
一態様では、インターセプトモジュール120は、ルールのセットの選択の間に、インターセプトしたDNS要求が、ユーザの1つまたは複数のアクションによって開始されたDNS要求である確率について推定を行う。別の態様では、インターセプトモジュール120は、インターセプトしたDNS要求が、リモートサーバからのその後の広告のダウンロードのために、広告モジュールによって行われるDNS要求の特性を示すものである確率について推定を行う。例えば、インターセプトモジュール120は、インターセプトしたDNS要求が、リモートサーバ145からのその後の広告130のダウンロードのために、広告モジュール135によって行われるDNS要求の特性を示すものである確率について推定を行う。
【0058】
ステップ225では、該方法により、取得したルールのセットのうち少なくとも1つのルールにより、インターセプトしたDNS要求の送信のブロッキングを承諾するかどうかを決定する。ルールのセットのうち少なくとも1つのルールにより、インターセプトしたDNS要求の送信のブロッキングが承諾される場合、方法はステップ240に進む。そうでない場合、方法は、ステップ230へ進む。
【0059】
ステップ230では、該方法200により、DNS要求の送信をブロックしない。一態様では、該方法により、DNS要求の送信をブロックしない場合、DNS要求の送信は可能になる。DNS要求の送信は、他の理由で、例えば、インターセプトモジュール120によって進行が許可される場合であっても、他のモジュールによってブロックされる場合があることに注意されたい。
【0060】
ステップ240では、該方法、例えば、方法200により、インターセプトモジュール120は、DNS要求の送信をブロックし、該インターセプトしたDNS要求の送信のブロッキングにより、コンピューティングデバイスでの情報の受信をブロックする。
【0061】
一態様では、DNS要求の送信に対するルールは、データベース、例えば、データベース125に保存される。一態様では、要求のURLが、望ましくない情報をユーザに配布するように設計されたサーバのURLと一致する場合、DNS要求の送信はブロックされる。例えば、サーバは、広告、フィッシング情報などを配布するように設計されている場合がある(例えば、サーバは広告サーバである)。
【0062】
前述したように、本開示は、コンピューティングデバイス上の広告をブロックするためのシステムおよび方法について記載する。本開示の方法の利点の1つは、ユーザのアクションによって開始されたものではないDNS要求をブロックすることである。例えば広告モジュール135によって行われたDNS要求による、リモートサーバ、例えば、リモートサーバ145からのダウンロードは阻止される。広告モジュール135によって行われるDNS要求の特性は、その要求がユーザのアクションによって開始されたDNS要求と識別するために使用され、それにより、上述の望ましくない広告をブロックすることができる。したがって、本開示の教示は、ユーザのコンピューティングデバイスの出力デバイス上に、望ましくない情報、特に、広告が表示されることに関連する技術的問題を解決するものである。技術的効果は、ユーザのコンピューティングデバイス110上への広告、例えば広告130(一般に、広告データ)のダウンロードをブロックすることによって達成される。
【0063】
図3は、例示的態様に従って、コンピューティングデバイス上の広告をブロックするためのシステムおよび方法の態様が実装されることがあるコンピュータシステム20を示すブロック図である。コンピュータシステム20は、コンピューティングデバイス上の仮想マシンに相当し得、例えば、前述のような、インターセプトモジュールは、仮想マシンに配備される場合があるという点に留意すべきである。コンピュータシステム20は、例えば、デスクトップコンピュータ、ノートブックコンピュータ、ラップトップコンピュータ、モバイルコンピューティングデバイス、スマートフォン、タブレットコンピュータ、サーバ、メインフレーム、埋め込み型デバイス、およびコンピューティングデバイスの他の形態など、複数のコンピューティングデバイスの形態、または、単一のコンピューティングデバイスの形態である場合がある。
【0064】
示すように、コンピュータシステム20は、中央演算処理装置(Central Processing Unit:CPU)21、システムメモリ22、および、中央演算処理装置21に関連付けられたメモリを含む種々のシステムコンポーネントを接続しているシステムバス23を含む。システムバス23は、バスメモリまたはバスメモリコントローラ、周辺バス、および任意の他のバスアーキテクチャと相互作用することが可能なローカルバスを含んでもよい。各バスの例としては、PCI、ISA、PCI-Express、HyperTransport(商標)、InfiniBand(商標)、シリアルATA、I2C、およびその他の好適なインターコネクトなどを挙げてよい。中央演算処理装置21(プロセッサとも称される)は、単一のまたは複数のコアを有する単一のまたは複数のプロセッサのセットを含むことができる。プロセッサ21は、本開示の技術を実装する1つまたは複数のコンピュータ実行可能コードを実行してもよい。システムメモリ22は、本明細書で使用するデータおよび/またはプロセッサ21によって実行可能なコンピュータプログラムを記憶する任意のメモリであってよい。システムメモリ22は、ランダムアクセスメモリ(Random Access Memory:RAM)25などの揮発性メモリ、および読み取り専用メモリ(Read Only Memory:ROM)24、フラッシュメモリなどの不揮発性メモリ、またはこれらの任意の組み合わせを含んでもよい。基本入出力システム(Basic Input/Output System:BIOS)26は、例えば、ROM24を使用してオペレーティングシステムをロードするときの手順などの、コンピュータシステム20の各要素間の情報の伝送の基本手順を記憶していてもよい。
【0065】
コンピュータシステム20は、1つまたは複数の取り外し可能記憶デバイス27、1つまたは複数の非取り外し可能記憶デバイス28、またはこれらの組み合わせなどの1つまたは複数の記憶デバイスを含んでもよい。1つまたは複数の取り外し可能記憶デバイス27、および非取り外し可能記憶デバイス28は、記憶インターフェース32を介してシステムバス23に接続される。一態様では、記憶デバイスおよび対応するコンピュータ可読記憶媒体は、コンピュータシステム20のコンピュータ命令、データ構造、プログラムモジュール、および他のデータを記憶するための電力独立型モジュールである。システムメモリ22、取り外し可能記憶デバイス27、非取り外し可能記憶デバイス28は、種々のコンピュータ可読記憶媒体を使用してもよい。コンピュータ可読記憶媒体の例としては、例えば、キャッシュ、SRAM、DRAM、ゼロ・コンデンサRAM、ツイントランジスタRAM、eDRAM、EDO RAM、DDR RAM、EEPROM、NRAM、RRAM(登録商標)、SONOS、PRAMなどのマシンメモリ、ソリッドステートドライブ(Solid State Drive:SSD)またはフラッシュドライブのようなフラッシュメモリまたはその他のメモリ技術、ハードディスクドライブまたはフロッピーディスクのような磁気カセット、磁気テープ、および磁気ディスク記憶装置、コンパクトディスク(Compact Disk Read Only Memory:CD-ROM)またはデジタル多用途ディスク(Digital Versatile Disk:DVD)のような光記憶装置、および所望のデータを記憶するために使用されてよく、コンピュータシステム20によってアクセス可能な任意の他の媒体が挙げられる。
【0066】
コンピュータシステム20のシステムメモリ22、取り外し可能記憶デバイス27、および非取り外し可能記憶デバイス28は、オペレーティングシステム35、追加のプログラムアプリケーション37、他のプログラムモジュール38およびプログラムデータ39を記憶するために使用されてよい。コンピュータシステム20は、例えば、キーボード、マウス、スタイラス、ゲームコントローラ、音声入力デバイス、タッチ入力デバイスなどの、入力デバイス40からのデータを通信するための周辺インターフェース46、または、例えばシリアルポート、パラレルポート、ユニバーサルシリアルバス(Universal Serial Bus:USB)または他の周辺インターフェースなどの1つまたは複数の入出力ポートを介した、プリンタまたはスキャナなどの他の周辺デバイスを含んでもよい。例えば1つまたは複数のモニタ、プロジェクタまたは統合ディスプレイなどのディスプレイデバイス47は、例えばビデオアダプタなどの出力インターフェース48を通してシステムバス23に接続されてもよい。ディスプレイデバイス47に加えて、コンピュータシステム20は、例えばスピーカおよび他の音響映像デバイスなどの他の周辺出力デバイス(図示せず)を搭載してもよい。
【0067】
コンピュータシステム20は、1つまたは複数のリモートコンピュータ49へのネットワーク接続を使用して、ネットワーク環境で動作してよい。リモートコンピュータ(またはコンピュータ)49は、コンピュータシステム20の性質について記載されている上述の各要素のほとんどまたはすべてを含む、ローカルコンピュータワークステーションまたはサーバであってもよい。例えば、ルータ、ネットワーク局、ピアデバイスまたは他のネットワークノードなどのその他のデバイスが、コンピュータネットワーク内に存在する場合があるが、これらに限定されない。コンピュータシステム20は、例えば、ローカルエリアコンピュータネットワーク(Local-Area Computer Network:LAN)50、広域コンピュータネットワーク(Wide-Area Computer Network:WAN)、イントラネットおよびインターネットなどの1つまたは複数のネットワークを介して、リモートコンピュータ49と通信するための1つまたは複数のネットワークインターフェース51またはネットワークアダプタを含んでもよい。ネットワークインターフェース51の例としては、イーサネット(登録商標)インターフェース、フレームリレーインターフェース、SONETインターフェースおよび無線インターフェースを挙げてもよい。
【0068】
本開示の態様は、システム、方法、および/またはコンピュータプログラム製品であってもよい。コンピュータプログラム製品は、プロセッサに本開示の態様を実行させるコンピュータ可読プログラム命令を有する、コンピュータ可読記憶媒体(またはメディア)を含んでもよい。
【0069】
コンピュータ可読記憶媒体は、命令またはデータ構造の形態でプログラムコードを保持し、記憶することができる有形デバイスであってもよく、コンピューティングシステム20などのコンピューティングデバイスのプロセッサによってアクセス可能なものである。コンピュータ可読記憶媒体は、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、またはこれらの任意の好適な組み合わせであってもよい。例として、このようなコンピュータ可読記憶媒体は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、EEPROM、ポータブルコンパクトディスク読み取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、フラッシュメモリ、ハードディスク、ポータブルコンピュータディスケット、メモリースティック、フロッピーディスク、あるいは、例えば命令がそこに溝状に記録されたパンチカードまたは隆起した構造などの機械的にコード化されたデバイスが挙げられる。本明細書で使用する場合、コンピュータ可読記憶媒体は、それ自体が、例えば、電波またはその他の自ら伝搬する電磁波、導波管または伝送媒体を通して伝搬する電磁波、あるいは有線によって伝送される電気信号などの一時的な信号であると解釈されるものではない。
【0070】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、対応するコンピューティングデバイスに、もしくは、例えば、インターネット、ローカルエリアネットワーク、広域ネットワークおよび/または無線ネットワークなどのネットワークを介して、外部コンピュータまたは外部記憶デバイスにダウンロードされ得る。ネットワークは、銅製の伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータおよび/またはエッジサーバを含んでもよい。各コンピューティングデバイスのネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信して、対応するコンピューティングデバイス内部のコンピュータ可読記憶媒体に記憶するために、コンピュータ可読プログラム命令を転送する。
【0071】
本開示の動作を実行するためのコンピュータ可読プログラム命令は、オブジェクト指向プログラミング言語、および従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで書き込まれる組み立て命令、命令セットアーキテクチャ(Instruction-Set-Architecture:ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、ステート設定データ、あるいはソースコードまたはオブジェクトコードであってもよい。コンピュータ可読プログラム命令は、全面的にユーザのコンピュータで、部分的にユーザのコンピュータで、スタンドアロンソフトウェアパッケージとして、部分的にユーザコンピュータと部分的にリモートコンピュータとで、もしくは全面的にリモートコンピュータまたはサーバで実行されてよい。後半のシナリオでは、リモートコンピュータは、LANまたはWANを含む任意のタイプのネットワークを通してユーザのコンピュータに接続されているか、または、接続は、外部コンピュータに向かって(例えば、インターネットを通して)構築されてもよい。いくつかの実施形態では、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)またはプログラマブルロジックアレイ(Programmable Logic Array:PLA)を含む電子回路は、本開示の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して、コンピュータ可読プログラム命令を実行し、電子回路をパーソナライズしてもよい。
【0072】
種々の態様では、本開示に記載されるシステムおよび方法を、モジュールの意味で扱うことができる。本発明で使用する場合、用語「モジュール」は、例えば、特定用途向け集積回路(ASIC)またはFPGAなどのハードウェアを使用して、または、例えば、マイクロプロセッサシステム、および(実行中に)マイクロプロセッサシステムを特殊目的デバイスに変換するモジュールの機能性を実装するための命令のセットなどのハードウェアとソフトウェアとの組み合わせとして実装される、実世界デバイス、コンポーネント、またはコンポーネントの機構を意味する。モジュールはまた、単独でハードウェアによって促進される特定の機能と、ハードウェアとソフトウェアとの組み合わせによって促進される他の機能との、2つの組み合わせとして実装されてもよい。特定の実装形態では、少なくとも一部、および場合によっては、すべてのモジュールは、コンピュータシステムのプロセッサ(例えば、上記
図3で詳細に記載されたもの)によって実施されてよい。したがって、各モジュールは、様々な好適な構成で実現される可能性があり、本明細書に例示されるいずれの特定の実装にも限定されるべきではない。
【0073】
明瞭であるために、態様の決まりきった特徴のすべては本明細書に開示していない。本開示の任意の実際の実装形態の開発時に、開発者の特定の目的を達成するために非常に多くの実装形態固有の決定が行われる必要があり、これらの特定の目的は異なる実装形態および異なる開発者によって変更されることを理解されるであろう。このような開発作業は、複雑であり、かつ時間がかかる可能性があるが、それでも本開示から利益を得る当業者にとって日常的な技術的業務であるものと理解される。
【0074】
さらに、本明細書で用いる表現や用語は説明上のものであって、限定のためではなく、本明細書の用語や表現は、当業者の知見と組み合わされて、本明細書で提示する教示および指導に照らして当業者によって解釈されるものと理解すべきである。加えて、明示的記載がない限り、本明細書または特許請求の範囲におけるいかなる用語も、一般的でない、あるいは特別な意味を持つものとみなされることを意図していない。
【0075】
本明細書に開示された様々な態様は、本明細書で例示により言及された公知のモジュールと均等な現在および将来の公知の均等物を含む。さらに、態様および応用例を示し、かつ説明したが、本明細書に開示された発明の概念から逸脱することなく、上述したよりも多くの変更が可能であることは、本開示から利益を得る当業者には明らかであろう。