(57)【特許請求の範囲】
【請求項１】
入力インターフェースを介して、ホストネームに対応するストリングを受信することと、
コンピューティングデバイスにおいて、第１のストリングのセット中の複数のｎグラムのそれぞれの発生の頻度を示すデータ構造を識別することと、
前記コンピューティングデバイスにおいて、前記ストリングを潜在的に不審であるとして分類するか否かを決定するためのフィルタを適用することであって、前記フィルタは、エントロピーフィルタと少なくとも１つの他のフィルタとを含み、ここにおいて、前記フィルタは、前記ストリングが潜在的に不審であるとそれぞれ示している前記エントロピーフィルタと前記少なくとも１つの他のフィルタとに応答して、前記ストリングを潜在的に不審であるとして分類するように構成され、ここにおいて、前記エントロピーフィルタは、前記ストリングのｎグラムエントロピーに基づいて、前記ストリングが潜在的に不審であることを示すように構成され、ここにおいて、前記ストリングのｎグラムエントロピーは、前記ストリング中の各ｎグラムに対して前記データ構造によって示される前記発生の頻度の関数であり、および、
前記ストリングが潜在的に不審であるとして分類されたことに応答して、前記コンピューティングデバイスにおいて、前記ストリングに関係付けられた少なくとも１つのドメインネームシステム（ＤＮＳ）レコードを検索することと、ここにおいて、前記少なくとも１つのＤＮＳレコードは、前記ホストネームに関係付けられたネットワークアクセス可能なエンティティを識別し、前記コンピューティングデバイスにおいて、前記少なくとも１つのＤＮＳレコードによって識別された前記ネットワークアクセス可能なエンティティに対する１つ以上のルールの適用に基づいて、前記ストリングを不審なストリングのセットに付加するか否かを決定するために、ルールベースのエンジンを実行することと、
を備える、方法。
【請求項２】
前記少なくとも１つの他のフィルタは、
前記ストリングが国際化されたドメインネーム（ＩＤＮ）プレフィックスで開始することを決定することに応答して、前記ストリングが潜在的に不審であることを示すように構成されたＩＤＮフィルタと、
前記ストリングがトップレベルドメイン（ＴＬＤ）であると決定することに応答して、前記ストリングが潜在的に不審であることを示すように構成されたＴＬＤフィルタと、
前記ストリングの長さが、長さしきい値を満たすと決定することに応答して、前記ストリングが潜在的に不審であることを示すように構成された長さフィルタと、
しきい値時間期間内で、前記コンピューティングデバイスによって、前記ホストネームが登録されたか又は遭遇されたことを決定することに応答して、前記ストリングが潜在的に不審であることを示すように構成された最新のフィルタと、又は、
これらの組み合わせと、を含む、請求項１に記載の方法。
【請求項３】
前記少なくとも１つのＤＮＳレコードに基づいて、第２のストリングを識別することと、ここにおいて、前記第２のストリングは、前記ストリングとは異なり、
前記第２のストリングに関係付けられた少なくとも１つの第２のＤＮＳレコードを検索することと、
前記少なくとも１つの第２のＤＮＳレコードに対する前記１つ以上のルールの適用に基づいて、前記第２のストリングを前記不審なストリングのセットに付加するか否かを決定するために、前記ルールベースのエンジンを実行することと、をさらに備える、請求項１に記載の方法。
【請求項４】
前記少なくとも１つの第２のＤＮＳレコードに基づいて、第３のストリングを識別することと、ここにおいて、前記第３のストリングは、前記ストリングと前記第２のストリングとは異なり、
前記第３のストリングに関係付けられた少なくとも１つの第３のＤＮＳレコードを検索することと、
前記少なくとも１つの第３のＤＮＳレコードに対する前記１つ以上のルールの適用に基づいて、前記第３のストリングを前記不審なストリングのセットに付加するか否かを決定するために、前記ルールベースのエンジンを実行することと、をさらに備える、請求項３に記載の方法。
【請求項５】
前記少なくとも１つのＤＮＳレコードは、外部のＤＮＳデータベースから検索され、アドレス（Ａ）レコード、カノニカルネーム（ＣＮＡＭＥ）レコード、又は、ネームサーバ（ＮＳ）レコードのうちの少なくとも１つを備える、請求項１に記載の方法。
【請求項６】
前記少なくとも１つのＤＮＳレコードは、前記ホストネームを前記ネットワークアクセス可能なエンティティにマッピングし、前記ルールベースのエンジンによって、前記ネットワークアクセス可能なエンティティが前記不審なストリングのセット中に含まれる第２のストリングに関係付けられたと決定することに応答して、前記ストリングを前記不審なストリングのセットに付加することをさらに備える、請求項１に記載の方法。
【請求項７】
前記少なくとも１つのＤＮＳレコードは、前記ネットワークアクセス可能なエンティティを前記ホストネームにマッピングし、前記ルールベースのエンジンによって、前記ホストネームにマッピングするしきい値パーセンテージを上回るＤＮＳレコードが、前記不審なストリングのセット中に含まれる１つ以上の第２のストリングに関係付けられたと決定することに応答して、前記ストリングを前記不審なストリングのセットに付加することをさらに備える、請求項１に記載の方法。
【請求項８】
前記第１のストリングのセットは、不審であると決定されているホストネームを除外し、又は、前記第１のストリングのセットは、不審でないと決定されているホストネームを除外する、請求項１に記載の方法。
【請求項９】
前記エントロピーフィルタは、ｎグラムエントロピーしきい値に対する前記ストリングのｎグラムエントロピーの比較に基づいて、前記ストリングを分類するように構成されている、請求項１に記載の方法。
【請求項１０】
ｎグラムエントロピーによって前記第１のストリングのセットをソートすることと、
前記第１のストリングのセットの、少なくとも特定のパーセンテージが、前記ｎグラムエントロピーしきい値を満たすことができないように、ｎグラムエントロピーしきい値を選択することとによって、
前記ｎグラムエントロピーしきい値を決定することをさらに備える、請求項９に記載の方法。
【請求項１１】
前記ｎグラムエントロピーは、前記ストリング中に含まれるｎグラムに対応する前記データ構造のエントリの、合計、加重和、平均、又は、加重平均を備える、請求項１に記載の方法。
【請求項１２】
潜在的に不審なストリングのセットを記憶するように構成されたメモリと、プロセッサと、
フィルタリングモジュールであって、
ホストネームに対応するストリングを受信し、
第１のストリングのセット中の複数のｎグラムのそれぞれの発生の頻度を示すデータ構造を識別し、
前記ストリングを前記潜在的に不審なストリングのセットに付加するか否かを決定するためのフィルタを適用するように、前記プロセッサによって実行可能なフィルタリングモジュールと、を備えるシステムであって、前記フィルタは、エントロピーフィルタと少なくとも１つの他のフィルタとを含み、ここにおいて、前記フィルタは、前記ストリングが潜在的に不審であるとそれぞれ示している前記エントロピーフィルタと前記少なくとも１つの他のフィルタとに応答して、前記ストリングを前記潜在的に不審なストリングのセットに付加するように構成され、ここにおいて、前記エントロピーフィルタは、前記ストリングのｎグラムエントロピーに基づいて、前記ストリングが潜在的に不審であることを示すように構成され、ここにおいて、前記ストリングのｎグラムエントロピーは、前記ストリング中の各ｎグラムに対して前記データ構造によって示される前記発生の頻度の関数であり、
ここにおいて、前記メモリは、不審なストリングのセットを記憶するように構成され、
前記システムは、
前記ストリングを前記潜在的に不審なストリングのセットに付加するフィルタリングモジュールに応答して、前記ストリングに関係付けられた少なくとも１つのドメインネームシステム（ＤＮＳ）レコードを、外部のデータベースから検索するように、前記プロセッサによって実行可能なＤＮＳモジュールと、
前記少なくとも１つのＤＮＳレコードに対する１つ以上のルールの適用に基づいて、前記ストリングを前記不審なストリングのセットに移動するか否かを決定するように、前記プロセッサによって実行可能なルールベースのエンジンと、をさらに備える、
システム。
【請求項１３】
分散型サービス妨害（ＤＤｏＳ）緩和アプリケーションに対して、ＤＮＳセキュリティアプリケーションに対して、又は、両方に対して、前記不審なストリングのセットを提供するように構成された出力インターフェースをさらに備える、請求項１２に記載のシステム。
【発明の詳細な説明】
【関連出願への相互参照】
【０００１】
［0001］  本出願は、２０１４年１０月７日付けで提出された、共通して所有される米国仮出願番号１４／５０８、４００からの優先権を主張し、この内容は、その全体において、参照によって明確にここに組み込まれる。
【背景】
【０００２】
［0002］  インターネットは、多くの異なるタイプの通信のための好ましい媒体となってきている。例えば、人気のあるウェブサイトは、一日に何億ものユーザにサーブし得る。インターネットが増大するにつれて、悪意あるインターネットユーザの頻度及び複雑性も増大する。例えば、情報技術（ＩＴ）管理者は、悪意ある攻撃から企業のコンピューティング資産を保護するために、インターネットセキュリティアプリケーション、アンチマルウェアアプリケーション、アンチスパムフィルタ、アンチフィッシングフィルタ等が企業において配備されることを必要とし得る。インターネット上の多数のウェブサイトによって、そして、新たなウェブサイトが登録される容易さによって、ウェブサイト（又は、関係付けられたホストネーム又はインターネットプロトコル（ＩＰ）アドレス）が悪意のあるものか否かを決定することは、困難であり得る。説明するように、マルウェア、スパム、フィッシング、分散型サービス妨害（ＤＤｏＳ）攻撃、又は他の悪意あるアクティビティに関連して使用するために、ランダム化されたホストネームを生成するためのドメイン生成アルゴリズム（ＤＧＡ）を実行するボットネットによって、ホストネームが生成されているか否かを自動的に又はプログラムで決定することは困難であり得る。
【概要】
【０００３】
［0003］  不審なホストネーム（例えば、ＤＧＡによって作られたホストネーム、及び／又は、ＤＧＡによって作られたホストネームに関連したホストネーム）を決定するシステム及び方法が開示される。システムは、セキュリティフィードやＤＮＳクエリフィード等を含んでいるが、これらに限定されないさまざまなソースからのストリングを受信し得る。ストリングは、ＩＰアドレス、ホストネーム、ドメイン、ネームサーバ、及び／又は、他のインターネットアクセス可能なデバイス又は位置に関係付けられた情報を含み得る。システムは、ストリングの入力セットにおける「不正」ストリングを識別するための２段階のプロセスを実現し得る。第１段階において、システムは、入力セットを、「興味がある」と決定されたストリングの、より小さなサブセットに低減し得る。例えば、システムは、興味があるストリングのサブセットを識別するために、ストリングの入力セットをフィルタリングし得る。ストリングの入力セットは、ｎグラムエントロピーに基づいてフィルタリングされ得る。代替的に又は追加的に、ストリングが、しきい値期間内のシステムによって登録されたホストネーム、又は、初めに遭遇されたホストネームに対応する場合、ストリングは、興味があるとして識別されることができる。
【０００４】
［0004］  第２の段階において、アルゴリズム的に生成されると予測されるホストネームに位相的に又はアルゴリズム的に関連付けられたホストネームに対応するストリングのような、「不正」（例えば、不審な）ストリングを識別するために、システムは、ルールベースのエンジンを使用して、興味のあるストリングを評価し得る。ルールベースのエンジンによって使用されるルールは、１つ以上の「ギルト・バイ・インダクション（guilt by induction）」ルールを含み得る。例示的で限定的でない例として、ホストネームのＤＮＳレコードが、アルゴリズム的に生成されたと既に予測された別のホストネームにマッピングする場合、ホストネームは、不審であり得る。システムは、「不正」ストリングのセットを構築するために、再帰的にＤＮＳレコードを調べ得る。「不正」ストリングのセットは、セキュリティを高めるために、モバイルセキュリティアプリケーション、Ｅメールセキュリティアプリケーション、ＤＤｏＳ緩和アプリケーション、及び、ＤＮＳセキュリティアプリケーションを含んでいるが、これらに限定されないさまざまなアプリケーションによって使用され得る。
【図面の簡単な説明】
【０００５】
【図１】［0005］  図１は、不審なホストネームを識別するシステムの特定の実施形態を説明するためのダイヤグラムである。
【図２】［0006］  図２は、図１のシステム中に含まれ得るフィルタリングモジュールの特定の実施形態を説明するためのダイヤグラムである。
【図３】［0007］  図３は、図１のシステム中に含まれ得るルールベースのエンジンの特定の実施形態を説明するためのダイヤグラムである。
【図４】［0008］  図４は、図１のシステムによってアクセスされ得るＤＮＳレコードの例を説明するためのダイヤグラムである。
【図５】［0009］  図５は、不審なホストネームを識別する方法の特定の実施形態のデータフローダイヤグラムである。
【図６】［0010］  図６は、不審なホストネームを識別する方法の別の特定の実施形態を説明するためのフローチャートである。
【図７】［0011］  図７は、本開示の態様を実現するのに使用され得るコンピューティングデバイスの特定の実施形態のダイヤグラムである。
【詳細な説明】
【０００６】
［0012］  図１を参照すると、システム１００の特定の実施形態が示されている。システム１００は、コンピューティングデバイス１１０を含む。例示的な例において、コンピューティングデバイス１１０はサーバである。ここでさらに説明されるように、コンピューティングデバイス１１０は、「不正」（例えば、不審な）ストリングを識別するために、２段階のプロセスを実行し得る。例えば、コンピューティングデバイス１１０は、「不正」ストリングのセットを生成して更新し得る。セットの初期シード（seed）は、アルゴリズム的に生成されると予測されたホストネームに対応するストリングであり得る。シードに関係付けられたＤＮＳ情報は、位相的に又はアルゴリズム的にシードに関連付けられた付加的な不審なホストネームを識別するために調べられ得る。２段階のプロセスにおいて、第１の段階は、「興味がある」ストリングのサブセットを生成するために、ストリングの入力セットをフィルタリングすることを含んでもよく、第２の段階は、ルールベースのエンジンの実行に基づいて、興味があるストリングを評価することを含み得る。
【０００７】
［0013］  コンピューティングデバイス１１０は、１つ以上の入力インターフェース１１１、１つ以上の出力インターフェース１１２、１つ以上のプロセッサ１１３、及びメモリ１２０を含み得る。例えば、入力インターフェース１１と出力インターフェース１１２は、コンピューティングデバイス１１０が、ローカルエリアネットワーク（ＬＡＮ）やインターネット等のようなネットワークを介してデータを通信できるようにする、ユーザ入力／出力インターフェース、及び／又は、ネットワークインターフェースを含み得る。ネットワークインターフェースは、イーサネット（登録商標）のような有線インターフェースとともに、第３世代（３Ｇ）、第４世代（４Ｇ）、ロングタームエボリューション（ＬＴＥ（登録商標））、ＬＴＥアドバンスド、及び、電気電子技術者協会（ＩＥＥＥ）８０２．１１のような無線インターフェースを含み得る。プロセッサ１１３は、中央処理ユニット（ＣＰＵｓ）、デジタル信号プロセッサ（ＤＳＰｓ）、ネットワーク処理ユニット（ＮＰＵｓ）等を含み得る。プロセッサ１１３は、シングルスレッド、マルチスレッド、シングルコア、マルチコア、又は、これらの組み合わせであり得る。メモリ１２０は、ランダムアクセスメモリ（ＲＡＭ）、ディスクベースのメモリ、光ディスクメモリ、ソリッドステートメモリ、別のタイプのメモリ、又はこれらの組み合わせに対応する。
【０００８】
［0014］  コンピューティングデバイス１１０は、複数のソースからデータを受信し得る。例えば、コンピューティングデバイス１１０は、ホストネーム登録フィード１０１とホストネーム遭遇フィード１０２から、ストリングを受信し得る。ホストネーム登録フィード１０１は、インターネットドメインネーム登録エンティティで登録されたホストネームに対応するストリングを提供し得る。ホストネーム遭遇フィード１０２は、インターネットトラフィックの送信、受信、及び／又は処理の間に、特定のデバイス又はデバイスのグループ（例えば、メールサーバ、ウェブサーバ、ネームサーバ、企業のファイアウォール等）によって遭遇されたホストネームに対応するストリングを提供し得る。
【０００９】
［0015］  コンピューティングデバイス１１０は、スパムフィルタリングフィード１０３、モバイルセキュリティフィード１０４、Ｅメールセキュリティフィード１０５、及び／又は、ＤＮＳクエリフィード１０６から、ストリングを受信し得る。スパムフィルタリングフィード１０３は、ウェブメールサーバ又は企業メールサーバにおいて実行するスパムフィルタリングアプリケーションのようなスパムフィルタリングアプリケーションによって、Ｅメールにおいて検出されたホストネームに対応するストリングを提供し得る。代替的に、又は追加的に、スパムフィルタリングフィード１０３によって提供されるストリングは、企業において「悪用ボックス（abuse box）」に送られたＥメールに基づいて識別されたホストネームに対応し得る。例えば、企業の被雇用者は、価値がない、又は悪意がある（例えば、フィッシング）と決定されたＥメールを、悪用ボックスに転送し得る。
【００１０】
［0016］  モバイルセキュリティフィード１０４は、１つ以上のモバイルデバイス（例えば、携帯電話、タブレットコンピュータ等）上で、及び／又は、企業サーバにおいて実行するモバイルセキュリティアプリケーションのような、モバイルセキュリティアプリケーションによって識別されたホストネームに対応するストリングを提供し得る。Ｅメールセキュリティフィード１０５は、アンチマルウェア走査や、他のＥメールセキュリティ動作を実行するために、個人用コンピューティングデバイス、企業のサーバ、及び／又は、メールサーバにおいて実行しているアプリケーションのような、Ｅメールセキュリティアプリケーションによって識別されたホストネームに対応するストリングを提供し得る。
【００１１】
［0017］  ＤＮＳクエリフィード１０６は、（例えば、ＤＮＳクエリの処理の間に）ＤＮＳサーバによって処理されるホストネームに対応するストリングを提供し得る。ＤＮＳクエリフィード１０６によって提供されるストリングはまた、ＤＮＳサーバにおいて（又は、ＤＮＳサーバにアクセス可能なデータベースにおいて）記憶されたＤＮＳレコードから読み取られ、及び／又は、ＤＮＳレコードに書き込まれるホストネームに対応し得る。
【００１２】
［0018］  コンピューティングデバイス１１０は、第３者ＤＧＡリスト１０７からのストリングをさらに受信し得る。例えば、コンピューティングデバイス１１０、又は、これに関係付けられたエンティティは、ＤＧＡによって出力されていると疑われる又は確証された、ホストネームのリストを提供するサービスに加入し得る。
【００１３】
［0019］  代替の実施形態において、図１において図示されたものよりも多い、より少ない、及び／又は、異なるデータソースからの潜在的なホストネームに対応するストリングを、コンピューティングデバイス１１０が受信し得ることは留意されるべきである。システム１１０において利用可能な特定のデータソースに関わらず、コンピューティングデバイス１１０は、ストリング１２１の入力セットとして図１において図示された、多数のストリングを受信し得ることが認識される。例えば、人気のあるＤＮＳサーバの場合、ピークのトラフィック期間に、ＤＮＳクエリフィード１０６は、コンピューティングデバイス１１０に１秒毎に１００万を超すストリングを提供し得る。
【００１４】
［0020］  コンピューティングデバイス１１０は、受信されたストリング１２１のセットを処理するように構成されたコンポーネントを含み得る。図示された例において、コンピューティングデバイス１１０は、フィルタリングモジュール１１４、ＤＮＳモジュール１１５、ルールベースのエンジン１１６、及び、走査／分類モジュール１１７を含む。フィルタリングモジュール１１４、ＤＮＳモジュール１１５、ルールベースのエンジン１１６、及び、走査／分類モジュール１１７は、ハードウェア、ソフトウェア（例えば、プロセッサ１１３によって実行可能な命令）、又は、両方を使用して実現され得る。フィルタリングモジュール１１４は、受信されたストリング１２１のセットを、「興味がある」ストリングに対応すると決定されたストリングの、より小さなサブセット１２２にフィルタリングするように構成され得る。特定の実施形態において、フィルタリングモジュール１１４は、例示的で限定的でない例として、複数のフィルタを、ｎグラムエントロピーに基づいたフィルタとストリング長に基づいたフィルタとを含む、ストリング１２１のセットに適用するように構成される。フィルタリングモジュール１１４によって実行される動作の例は、図２を参照してさらに説明される。
【００１５】
［0021］  ＤＮＳモジュール１１５は、サブセット１２２のストリングに関係付けられたＤＮＳ情報を検索するように構成され得る。例えば、ＤＮＳモジュール１１５は、特定のホストネームに関係付けられたＤＮＳ情報を検索するために、ＤＮＳデータベース１３０において記憶されたＤＮＳレコード１３１にアクセスし得る。ＤＮＳレコード１３１の例は、図３を参照してさらに説明される。
【００１６】
［0022］  ルールベースのエンジン１１６は、サブセット１２２のストリングが「不正」ストリングか否かを決定し得る。例えば、ストリングが、アルゴリズム的に生成されている（例えば、ＤＧＡによって出力されている）と予測されるホストネームに、又は、アルゴリズム的に生成されることになると予測されるホストネームに関連付けられたホストネームに対応する場合、ストリングは、「不正」ストリングであり得る。ルールベースのエンジン１１６は、ストリングが「不正」ストリングかどうかを決定するために、１つ以上のルールを、ストリングに関係付けられたＤＮＳ情報に適用し得る。図１において、ルールベースのエンジン１１６は、「不正」ストリングのセット１２３を生成する。「不正」ストリングのセット１２３中に含まれるアイテムは、ホストネーム、ＩＰアドレス、ネームサーバ、及び、他のインターネットアクセス可能なエンティティを含み得る。ルールベースのエンジン１１６によって実行される動作の例が、図４を参照してさらに説明される。
【００１７】
［0023］  動作の間、コンピューティングデバイス１１０は、ストリング１２１のセットを受信してもよく、フィルタリングモジュール１１４は、興味のあるホストネームに対応すると決定されたストリングのサブセット１２２を生成するために、１つ以上のフィルタを、ストリング１２１のセットに適用し得る。ＤＮＳモジュール１１５は、サブセット１２２のストリングに関係付けられたＤＮＳ情報を検索してもよく、ＤＮＳ情報に対する１つ以上のルールの適用に基づいて、ストリングを「不正」ストリングのセット１２３に付加するか否かを決定するために、ルールベースのエンジン１１６は実行され得る。プロセスは、「不正」ストリングのセット１２３のメンバーシップを拡張するために再帰的に実行され得る。例えば、コンピューティングデバイス１１０は、第１のストリング（例えば、第１のホストネーム）に関係付けられたＤＮＳ情報に基づいて、第２のストリング（例えば、ホストネーム）を識別し得る。応答において、第２のストリングについてのＤＮＳ情報が検索されて、第２のストリングを「不正」ストリングのセット１２３に付加するか否かを決定するために、ルールベースのエンジン１１６に提供され得る。再帰的なプロセスは、付加的なストリング（例えばホストネーム）が遭遇されたときに継続し得る。
【００１８】
［0024］  特定の実施形態において、「不正」ストリングのセット１２３は、アルゴリズム的に生成されたホストネームであると予測される「シード」を識別することによって、初期形成される。例示的な限定的でない例として、シードは、ｎグラムエントロピーフィルタを使用して識別され得る。ｎグラムエントロピーフィルタの使用は、結果として、「不正」ホストネームのセット１２３中に「ランダムの」ホストネームを十分に含み得る。フィルタリングモジュール１１４によって適用され得るｎグラムエントロピーフィルタと他のフィルタの例は、図２を参照してさらに説明される。図２において、フィルタリングモジュール１１４は、ｎグラムエントロピーフィルタ２１０、最新のフィルタ２２０、国際化されたドメインネーム（ＩＤＮ）フィルタ２３０、２ポートトップレベルドメイン（ＴＬＤ）フィルタ２４０、及び、長さフィルタ２５０を含む（例えば、これらを適用するように構成されている）。代替的な実施形態において、より多い、より少ない、及び／又は、異なるフィルタが、フィルタリングモジュール１１４によって適用され得る。
【００１９】
［0025］  特定の実施形態において、フィルタリングモジュール１１４は、２つのフィルタリング動作、すなわち「不正」ストリングのセット１２３を初期構築するためのシードを識別するために、「既知の」ホストネームのデータベース２０２（例えば、リレーショナル・データベース）をフィルタリングすることと、ストリングのサブセット１２２を生成するために、ストリング１２１のセットをフィルタリングすることと、を実行するのに使用される。
【００２０】
［0026］  特定の実施形態において、「不正」ストリングのセット１２３に対するシードを識別することは、ｎグラムエントロピーフィルタ２１０、ＩＤＮフィルタ２３０、２パートＴＬＤフィルタ２４０及び長さフィルタ２５０を、データベース２０２中に記憶されたストリングに適用することを含み得る。ｎグラムエントロピーフィルタ２１０はデータベース２０２にアクセスし得、データベース２０２は、（例えば、悪意のあるアクティビティに関係付けられた「不正」ホストネームとともに、正当なインターネットウェブサイトに対応する「良い」ホストネームの両方を含んでいる）コンピューティングデバイス１１０に対して処理される一部又はすべてのホストネームを記憶し得る。代替的に、ｎグラムエントロピーフィルタ２１０は、「不正」ホストネームのみ、又は、「良い」ホストネームのみを評価し得る。ｎグラムエントロピーフィルタ２１０は、データベース２０２中に記憶されたホストネームの少なくともドメイン部分に渡るすべてのｎグラムの頻度を計算し得る。説明される例において、ｎ＝３、ｎグラムエントロピーフィルタ２１０は、３グラム（例えば、ａａａ、ａａｂ、ａａｃ、…ｚｚｚ）の頻度を示す頻度テーブル２１２を生成する。代替的な実施形態において、ｎは、異なる値を有し得る。頻度テーブル２１２を生成することは、一回の動作であってもよく、頻度テーブル２１２は、その後の使用のために記憶され得る。
【００２１】
［0027］  頻度テーブル２１２を生成した後、ｎグラムエントロピーフィルタ２１０は、特有のホストネームのｎグラムエントロピーが、ｎグラムエントロピーしきい値２１４を満たすか否かを決定し得る。特定のストリングのｎグラムエントロピーは、特定のホストネーム中に含まれるｎグラムの発生の頻度の関数（例えば、合計、加重和、平均、加重平均等）であり得る。例として、ストリング「ｅｘａｍｐｌｅｄｏｍａｉｎ.ｃｏｍ」について、ｎグラムエントロピーは、（頻度テーブル２１２において示されるような）ｎグラム：「ｅｘａ」、「ｘａｍ」、「ａｍｐ」、「ｍｐｌ」等の発生の頻度の関数であり得る。ｎグラムエントロピーしきい値２１４は、プログラム的に、又は、ユーザ入力を介して決定され得る。特定の実施形態において、ｎグラムエントロピーしきい値を下回る、ホストネームの少なくとも特定のパーセンテージ（例えば、９５％、９９％、又は、他の何らかの値）が、「不正」ストリング（例えば、ランダムに生成されたホストネーム）であると見えるように、ｎグラムエントロピーによってデータベース２０２のホストネームをソートし、ｎグラムエントロピー値を識別することによって、ｎグラムエントロピーしきい値２１４が生成される。ｎ＝３についての例示的な例において、他の実施形態においては異なる値が使用され得るが、ｎグラムエントロピーしきい値は、おおよそ０．０００３５である。
【００２２】
［0028］  ＩＤＮフィルタ２３０は、ホストネームがＩＤＮであるか否かを決定し得る。特定の実施形態において、ＩＤＮフィルタ２３０は、ホストネームが「ｘｎ−−」のようなＩＤＮプレフィックスで開始するかどうかをチェックする。２パートＴＬＤフィルタ２４０は、ホストネームが「ｅｘａｍｐｌｅ.ｃｏｍ」のような２パートＴＬＤであるか否かを決定し得る。他の実施形態において、異なる長さしきい値が使用され得るが、長さフィルタ２５０は、ホストネームが、例えば１０文字の長さのような長さしきい値よりも長いか否かを決定し得る。
【００２３】
［0029］  特定の実施形態において、ホストネームのｎグラムエントロピーがｎグラムエントロピーしきい値２１４よりも低く、ホストネームが２パートＴＬＤであり、ホストネームがＩＤＮではなく、そして、ホストネームが長さしきい値２５２よりも長い場合、データベース２０２からのホストネームは、「不正」ストリングのセット１２３に対するシードとして使用され得る。代替的な実施形態において、異なるフィルタの組み合わせが、「不正」ストリングのセット１２３をシードするのに使用され得る。
【００２４】
［0030］  フィルタリングモジュール１１４はまた、ストリング１２１のセットを、興味のあるホストネームに対応するストリングのサブセット１２２に低減するのに使用され得る。例えば、最新のフィルタ２２０が、ストリングが登録最新しきい値２２２、又は、遭遇最新しきい値２２４を満たすことを決定した場合、ストリング１２１のセットのストリングは、サブセット１２２中に含まれ得る。したがって、しきい値時間期間内で（例えば、インターネットドメインネーム登録エンティティで）登録された、又は、しきい値時間期間内でコンピューティングデバイス１１０によって初めに遭遇されたホストネームに対応するストリングは、サブセット１２２に付加され得る。別の例において、ストリング１２１のセットからのストリングは、ストリングが、前述されたシード条件（例えば、ストリングが、ｎグラムエントロピーしきい値２１４と長さしきい値２５２を満たし、２パートＴＬＤであり、ＩＤＮでない）を満たす場合、サブセット１２２に付加され得る。代替的な実施形態において、異なるフィルタの組み合わせは、ストリング１２１のセットを、興味のあるホストネームに対応するストリングのサブセット１２２に低減するために適用され得る。
【００２５】
［0031］  ストリングが興味のあるホストネームであると識別されたとき、興味のあるホストネームの「ネイバー（neighbor）」が識別され得る。例えば、ＤＮＳモジュール１１５は、付加的なホストネームを識別するために、興味のあるホストネームに関係付けられたＤＮＳレコード１３１にアクセスし得る。図３は、本開示にしたがって使用され得るマッピング情報（例えば、ＤＮＳレコードと、他のマッピング情報）の例を説明している。図３において、第１のＤＮＳ情報３１０は、「ｅｘａｍｐｌｅｈｏｓｔｎａｍｅ.ｃｏｍ」に対応し、第２のＤＮＳ情報３２０は、（ホストネーム９５．１６０．２４３．２３．ｉｎ−ａｄｄｒ−ａｒｐａと表現される）ＩＰアドレス２３．２４３．１６０．９５に対応する。
【００２６】
［0032］  ホストネームについてのＤＮＳ情報は、さまざまなＤＮＳレコードを含み得る。図３において、「ｅｘａｍｐｌｅｈｏｓｔｎａｍｅ．ｃｏｍ」についてのＤＮＳ情報３１０は、ホストネームをインターネットプロトコルバージョン４（ＩＰｖ４）アドレスにマッピングするアドレス（Ａ）レコード３１１、ホストネームを別の（例えば、エイリアス）ホストネームにマッピングするカノニカルネーム（ＣＮＡＭＥ）レコード３１２、及び、ホストネームを信頼できるネームサーバにマッピングするネームサーバ（ＮＳ）レコード３１３を含む。ＤＮＳレコードの付加的な例が、ここでさらに説明される。
【００２７】
［0033］  ＩＰアドレスについてのＤＮＳ情報は、ホストネームに対する、ＩＰアドレスの逆ＤＮＳマッピングに対応するポインタ（ＰＴＲ）レコードを含み得る。例えば、ＤＮＳ情報３２０は、ＩＰアドレス２３．２４３．１６０．９５をマッピングするＰＴＲレコード３２１を含み、これは、ホストネームｒｅｓｉｄｅｎｔａｌ−ＤＮＳ−ｃｕｓｔ−８４８４８.ｓｏｃａｌ.ｒｅｓ.ｅｘａｍｐｌｅｈｏｓｔ.ｃｏｍに対して、ホストネーム９５．１６０.２４３．２３.ｉｎ−ａｄｄｒ.ａｒｐａと表現される。
【００２８】
［0034］  さまざまなタイプのレコードが、ＩＰアドレス（例えば、ａ.ｂ.ｃ.ｄ）をドメイン名（ｄ.ｃ.ｂ.ａ.ｉｎ−ａｄｄｒ.ａｒｐａ）が付けられたドメインにマッピングするように、ＩＰアドレスに対して記憶され得る。例えば、レコードは、例示的で限定的でない例として、ＰＴＲレコード、ＮＳレコード、及び／又は、ゾーン情報（例えば、スタートオブオーソリティ（ＳＯＡ）レコードを含み得る。（例えば、コンピューティングデバイス１１０によって）クエリが発行されたとき、クエリは、さまざまなレコードタイプを応答として生成し得る。あるレコードタイプは、将来の使用のために保持され得る。例えば、ＣＮＡＭＥレコード、Ａレコード、ＮＳレコード、ＳＯＡレコード、テキスト（ＴＸＴ）レコード、メール交換（ＭＸ）レコード、及び／又は、ＰＴＲレコードが、例示的で限定的でない例として保持され得る。さらに、クエリ結果中に含まれるドメイン及び／又はＩＰアドレスは、クエリされたドメイン／ＩＰアドレスと、結果となるドメイン／ＩＰアドレスとの間の関係を追跡するために保持され（例えば、関連性データベースに付加され）得る。
【００２９】
［0035］  ＩＰアドレスをホストネームにマッピングするＰＴＲレコードの場合において、ＩＰアドレスに対する逆ＤＮＳが、ホストネームの一部としてＩＰアドレスオクテットを含み得る（例えば、ＩＰアドレスａ．ｂ．ｃ．ｄは、ｄ．ｃ．ｂ．ａ．ｅｘａｍｐｌｅ．ｃｏｍにマッピングし得る）ので、ＩＰアドレスからホストネームのベースドメイン部分へのマッピングも保持され得る。ある状況において、全ホストネームは興味がないが、ホストネームの一部分は興味があることがあり得る。説明するように、「ｅｘａｍｐｌｅ．ｃｏｍ」は、悪意のあるエンティティに関係付けられると知られ、スパム又はフィッシング等のために使用されると知られ得る。この状況において、全ホストネームではない、ホストネームのベースドメイン部分「ｅｘａｍｐｌｅｈｏｓｔ．ｃｏｍ」が、悪意のあるエンティティに関係付けられるので、全ホストネームにマッピングするＰＴＲレコードは、有用でないかもしれない。例えば、「９５．１６０.２４３．２３.ｉｎ−ａｄｄｒ.ａｒｐａ」からベースドメイン部分「ｅｘａｍｐｌｅｈｏｓｔ.ｃｏｍ」へのマッピング３２２が記憶され得る。したがって、ここで使用されるような、「不正」ストリングを識別するのに使用される「ＤＮＳ情報」及び「ＤＮＳレコード」は、登録リソースレコード（ＲＲ）タイプとともに、登録されていないレコード／マッピング（例えば、ベースドメインマッピング３２２に対するＩＰアドレス）を含み得る。
【００３０】
［0036］  ＤＮＳモジュール１１５によって検索されたＤＮＳレコードは、ルールベースのエンジン１１６に提供され得る。例えば、図４において示されるように、ルールベースのエンジン１１６は、１つ以上のルールを、ストリングが「不正」ストリングのセット１２３に付加されるべきか否かを決定するために、ＤＮＳモジュール１１５によって検索されたＤＮＳレコード１３１に適用し得る。ルールベースのエンジン１１６は、したがって、図２を参照して説明されたように、「不正」ストリングのセット１２３がシードされた後に、「不正」ストリングのセット１２３のメンバーシップを「育てる（grow）」のに使用され得る。
【００３１】
［0037］  ルールベースのエンジン１１６によって適用されたルールは、ストリングのＤＮＳレコードが、「不正」ストリングのセット１２３中に既に含まれた別のストリングに関係付けられたアイテム（例えば、ホストネーム又はＩＰアドレス）にマッピングするとき、ストリングが「不正」ストリングのセット１２３に付加されることを示すルールを含み得る。例えば、第１のルール４０１は、ストリングが「不正」ＩＰアドレスになる（例えば、ストリングのＡレコードが、「不正」ストリングのセット１２３中に含まれるＩＰアドレスになる）場合、ストリングが「不正」ストリングのセット１２３に付加されることを示す。第２のルール４０２は、ストリングが「不正」ホストネームになる（例えば、ストリングのＣＮＡＭＥレコードが、「不正」ストリングのセット１２３中に含まれるホストネームになる）場合、ストリングが「不正」ストリングのセット１２３に付加されることを示す。第３のルール４０３は、ストリングの逆ＤＮＳルックアップが「不正」ホストネームになる（例えば、ストリングのＰＴＲ又はＰＴＲＤレコードが、「不正」ストリングのセット１２３中に含まれるホストネームになる）場合、ストリングが「不正」ストリングのセット１２３に付加されることを示す。第４のルール４０４は、ストリングが「不正」ネームサーバになる（例えば、ストリングのＮＳレコードが、「不正」ストリングのセット１２３中に含まれるネームサーバになる）場合、ストリングが「不正」ストリングのセット１２３に付加されることを示す。
【００３２】
［0038］  ルールは、ストリングにマッピングするしきい値パーセンテージを超えるＤＮＳレコードが、セット１２３中に既に含まれた「不正」ストリングに関係付けられたとき、ストリングが「不正」ストリングのセット１２３に付加されることを示すルールも含み得る。図４において、代替的な実施形態において異なる値が使用され得るが、しきい値パーセンテージは８０％である。したがって、５番目のルール４０５は、ネームサーバによってサーブされるホストネームの少なくとも８０％が「不正」である（例えば、ネームサーバにマッピングするＮＳレコードの８０％が、「不正」ストリングのセット１２３中に含まれるアイテムに対応する）場合、ネームサーバが「不正」ストリングのセット１２３に付加されることを示す。６番目のルール４０６は、ＩＰアドレスになるホストネームの少なくとも８０％が「不正」である（例えばＩＰアドレスにマッピングするＡレコードの８０％が、「不正」ストリングのセット１２３中に含まれるアイテムに対応する）場合、ＩＰアドレスが「不正」ストリングのセット１２３に付加されることを示す。７番目のルール４０７は、ホストネームとしてエイリアスする他のホストネームの少なくとも８０％が「不正」である（例えば、ホストネームにマッピングするＣＮＡＭＥレコードの８０％が、「不正」ストリングのセット１２３中に含まれるアイテムに対応する）場合、ホストネームが「不正」ストリングのセット１２３に付加されることを示す。
【００３３】
［0039］  図４において説明されたルールは例のためだけのものであり、限定的であると考えられるものではないことが留意されるべきである。ルールベースのエンジン１１６は、代替的な実施形態において、ルールの異なる組み合わせを使用し得る。ルール４０１〜４０７の適用に基づいて、ルールベースのエンジン１１６は、興味のあるホストネームに対応するストリングのサブセット１２２中の「不正」ストリングを識別し得る。識別された「不正」ストリングは、「不正」ストリングのセット１２３に付加され得る。特定の実施形態において、「不正」ストリングが識別されて、「不正」ストリングのセット１２３に付加される度に、「不正」ストリングについてのＤＮＳ情報が検索されて、ルールベースのエンジン１１６が、ＤＮＳ情報を処理して「不正」ストリングのセット１２３に付加するための付加的な「不正」ストリングを識別するために、反復的に実行される。
【００３４】
［0040］  図１に戻ると、ホストネームが「不正」ストリングのセット１２３に付加されたとき、走査／分類モジュール１１７は、ストリングに関係付けられた付加的な情報を決定し得る。例えば、走査／分類モジュール１１７は、どのように「不正」ストリングを分類するかを決定するために、「不正」ストリングに関係付けられたウェブサイトやアクセスＤＮＳ情報等にアクセスし得る。説明するように、ホストネーム、ＩＰアドレス、ネームサーバ等は、マルウェアカテゴリ、スパムカテゴリ、フィッシングカテゴリ等において分類され得る。
【００３５】
［0041］  特定の実施形態において、メモリ１２０は、「不正」ストリングのセット１２３に関係付けられた付加的な情報を記憶する。例えば、アイテムが「不正」ストリングのセット１２３に付加されたとき、メモリ１２０は、アイテムがセット１２３に付加された理由を記憶し得る。説明するように、メモリ１２０は、アイテムによって満たされた、ルールベースのエンジン１１６によって実行される特定のルールを識別するデータを記憶し得る。メモリ１２０は、「ブレッドクラム」アイテム（例えば、ホストネーム、ＩＰアドレス等）を識別するデータも記憶し得、そのアイテムに導かれるＤＮＳ情報はセット１２３に付加される。したがって、メモリ１２０は、ユーザ又は管理者が、なぜ特定のアイテムが「不正」ストリングのセット１２３に付加されたかを、その後決定するのを可能にするデータを記憶し得る。
【００３６】
［0042］  「不正」ストリングのセット１２３は、コンピュータセキュリティを改善するのに使用され得る。例えば、コンピューティングデバイス１１０は、「不正」ストリングのセット１２３を、モバイルセキュリティアプリケーション１４１に、Ｅメールセキュリティアプリケーション１４２に、ＤＤｏＳ緩和アプリケーション１４３に、ＤＮＳセキュリティアプリケーション１４４に、及び／又は、他のアプリケーション／デバイスに提供し得る。アプリケーション１４１〜１４４は、アプリケーション１４１〜１４４によって処理されるインターネットトラフィックに関するセキュリティ決定を行うために、「不正」ストリングのセット１２３を使用し得る。例として、モバイルセキュリティアプリケーション１４１は、「不正」ストリングのセット１２３中に含まれるアイテムに関係付けられるように決定されるトラフィック上の増加されたセキュリティ測定を、制限するか、又は設置し得る。別の例として、Ｅメールセキュリティアプリケーション１４２は、「不正」ストリングのセット１２３中に含まれるソースから到来するＥメールをブロックし得る。また別の例として、ＤＤｏＳ緩和アプリケーション１４３は、「不正」ストリングのセット１２３中に含まれるアイテムに関係付けられたＤＮＳクエリを無視するか、又はそうでなければ処置してもよく、これは、「不正」ホストネーム又はサーバに関係付けられた多数のクエリを受信することによって引き起こされるＤＤｏＳ攻撃を緩和するのを可能にし得る。また別の例として、ＤＮＳセキュリティアプリケーション１４４は、ＤＮＳデータベース（例えば、ＤＮＳデータベース１３０）において、「不正」ストリングのセット１２３中に含まれるアイテムに関係付けられたクエリ／要求に基づいて、レコード（例えば、ＤＮＳレコード１３１）のアクセス又は修正をディセーブルし得る。
【００３７】
［0043］  図１〜４を参照して説明されたシステム１００は、したがって、正当なネームサーバとＩＰアドレスを不審であるとして分類することなく、不審なアイテムのクラスタ（例えば、セット）を自動的に識別し得る。例えば、ホストネームのような不審なアイテムは、位相的に及び／又はアルゴリズム的に関連付けられ得る。さらに、システム１００は、さまざまなソースから受信された入力データに基づいて不審なホストネームを識別してもよく、識別されたホストネームをさまざまなコンピュータセキュリティアプリケーションに提供し得る。
【００３８】
［0044］  図５は、不審なホストネームを識別する方法５００の特定の実施形態を説明するデータフローダイヤグラムである。方法５００は、５０１において開始する。５０２において、１つ以上のホストネームソースは、アルゴリズム的に生成され得る、又は、生成され得ないホストネームに対応する候補ストリング５０３を提供する。５０４において、候補ストリング５０３が興味のあるホストネームであるか否かについての決定がなされ得る。例えば、候補ストリング５０３が興味のあるホストネームであるか否かは、図２のｎグラムエントロピーフィルタ２１０を参照して説明された候補ストリング５０３のｎグラムエントロピーに基づいて決定され得る。候補ストリング５０３が興味のあるホストネームでない場合、方法５００は、５１０において停止する。
【００３９】
［0045］  候補ストリング５０３が興味のあるホストネームである場合、興味のあるホストネームに対して、ＤＮＳ情報が利用可能（例えば、コンピューティングデバイス１１０のようなコンピューティングデバイスにおいてキャッシュされる）か否かについて、５０５において決定がなされてもよい。ＤＮＳ情報が利用可能でない場合、ＤＮＳ情報は、ＤＮＳルックアップ動作を使用して、ＤＮＳデータベース５０７から検索されてもよく、これは、図１のＤＮＳデータベース１３０に対応し得る。ＤＮＳ情報が利用可能である場合、又は、ＤＮＳルックアップ動作が実行された後、方法５００は、５０６において、興味があるホストネームのＤＮＳ「ネイバー」（例えば、すべてのＤＮＳ「ネイバー」）を調べることを含む。説明するように、ホストネームのＤＮＳ「ネイバー」は、ホストネームの少なくとも１つのＤＮＳレコードによって識別された、別のホストネーム、ＩＰアドレス、ネームサーバ、又は別のインターネットアクセス可能なエンティティに対応し得る。
【００４０】
［0046］  ５０９に続いて、ＤＮＳ「ネイバー」のいずれかを、セット（例えば、「不正」ストリングのセット１２３）に付加するか否かに関して、決定がなされる。例示的な例において、図４においてルールベースのエンジン１１６の動作を参照して説明されるように決定がなされる。ＤＮＳ「ネイバー」のいずれもセットに付加されない場合、方法５００は、５１０において停止する。１つ以上のＤＮＳ「ネイバー」がセットに付加される場合、方法５００が５０８に続行して、（セットに付加される「ネイバー」の）付加的な候補「ネイバー」が識別されて調べられる。方法５００又はこの部分は、付加的な候補「ネイバー」が識別されるときに反復され得る。ホストネームソースからのすべての候補「ネイバー」と候補ストリングが処理されたとき、方法５００は、５１０において終端し得る。
【００４１】
［0047］  図６は、不審なホストネームを識別する方法６００の、別の特定の実施形態を説明するためのフローチャートである。例示的な実施形態において、方法６００は、図１のコンピューティングデバイス１１０によって実行される。
【００４２】
［0048］  方法６００は、６０２において、ストリングのセットを受信することを含み得る。ストリングは、候補及び／又は識別されたホストネームに対応し得る。例えば、図１において、コンピューティングデバイス１１０は、ストリング１２１のセットを受信してもよく、これは、ホストネーム登録フィード１０１、ホストネーム遭遇フィード１０２、スパムフィルタリングフィード１０３、モバイルセキュリティフィード１０４、Ｅメールセキュリティフィード１０５、ＤＮＳクエリフィード１０６、及び／又は、第３者リスト１０７によって提供されるストリングを含み得る。
【００４３】
［0049］  方法６００はまた、６０４において、興味のあるストリングのサブセットを生成するために、１つ以上のフィルタをストリングのセットに適用することを含み得る。例えば、図１のフィルタリングモジュール１１４は、ストリングのサブセット１２２を生成するために、ストリング１２１のセットをフィルタリングしてもよく、これは、図２のフィルタ２１０、２２０、２３０、２４０、２５０のうちの１つ以上の適用に基づいて、興味があると決定されるホストネームを含み得る。
【００４４】
［0050］  方法６００は、６０６において、サブセットのストリングに関係付けられたＤＮＳ情報を検索することをさらに含み得る。例えば、図１のＤＮＳモジュール１１５は、ＤＮＳデータベース１３０からＤＮＳ情報を検索し得る。例示的な実施形態において、検索されたＤＮＳ情報は、図３を参照して説明されるような、Ａレコード、ＣＮＡＭＥレコード、ＮＳレコード、ＰＴＲレコード、ＰＴＲＤレコード、及び／又は、他のタイプのＤＮＳレコードを含み得る。
【００４５】
［0051］  方法６００は、６０８において、ＤＮＳ情報に対する１つ以上のルールの適用に基づいて、ストリングを「不正」ストリングのセットに付加するか否かを決定するために、ルールベースのエンジンを実行することを含み得る。例えば、ルールベースのエンジン１１６は、ストリングを「不正」ストリングのセット１２３に付加するか否かを決定するために、図４のルール４０１〜４０７のうちの１つ以上のような、１つ以上のルールを適用し得る。
【００４６】
［0052］  方法６００はまた、６１０において、ＤＮＳ情報に基づいて識別された、付加的なストリングのサブセット、及び／又は、付加的なストリングを、「不正」ストリングのセットに付加するか否かを決定するために、ルールベースのエンジンを再帰的に実行することを含み得る。例えば、「不正」ストリングがセット１２３に付加されたとき、ＤＮＳモジュール１１５は、「不正」ストリングに関係付けられたＤＮＳ情報を検索してもよく、ルールベースのエンジンは、ＤＮＳ情報中に含まれる、又はＤＮＳ情報に関連付けられた、任意の付加的なストリングも「不正」ストリングであるか否かを決定するために、ルール４０１〜４０７を適用し得る。方法６００は、したがって、不審なホストネーム、このようなホストネームに関係付けられたＩＰアドレス、このようなホストネームに関係付けられたネームサーバ等のような「不正」ストリングの、自動化された識別を可能にし得る。
【００４７】
［0053］  図７は、本開示の実施形態によって使用され得るコンピューティングデバイス７０１の実施形態を図示している。コンピューティングデバイス７０１は、プロセッサ７０３を含むコンピュータ、サーバ、又は他のデバイスであり得る。メモリ７０５、記憶装置７１１、ディスプレイ制御装置７０９、通信インターフェース７１３、及び、入力／出力制御装置７１５は、バス７０７に結合されている。
【００４８】
［0054］  コンピューティングデバイス７０１は、通信インターフェース７１３を通して、外部のシステム及びデバイスにインターフェース接続し得る。通信インターフェース７１３は、イーサネットインターフェース、ＩＥＥＥ８０２．１１インターフェース、３Ｇインターフェース、４Ｇインターフェース、ＬＴＥインターフェース、ＬＴＥアドバンスドインターフェース等のような、有線及び／又は無線ネットワーキングインターフェースを含み得る。
【００４９】
［0055］  特定の実施形態において、通信信号７２５は、（例えば、クラウドコンピューティング環境に対応する）通信インターフェース７１３とクラウド７３０との間で受信／送信され得る。通信信号７２５は、コンピュータデバイス７０１を、別のコンピュータシステム、ゲートウェイ、サーバ、ルータ、又はこれに類するものとインターフェース接続するのに使用され得る。
【００５０】
［0056］  特定の実施形態において、プロセッサ７０３は、マイクロプロセッサであり得る。メモリ７０５は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）等のような、機械読み取り可能な（例えば、コンピュータ読み取り可能な、又は、プロセッサ読み取り可能な）記録媒体又は記録デバイスであり得る。機械読み取り可能な媒体又はデバイスは、信号ではない。
【００５１】
［0057］  ディスプレイ制御装置７０９は、ディスプレイ７１９を制御してもよく、これは、液晶ディプレイ（ＬＣＤ）、テレビジョンモニタ、又は、別のタイプのディスプレイであり得る。入力／出力制御装置７１５に結合された入力／出力デバイス７１７は、キーボード、ディスクドライブ、プリンタ、スキャナ、マウス、トラックボール、トラックパッド、又は、別の入力及び／又は出力デバイスを含み得る。
【００５２】
［0058］  記憶装置７１１は、機械読み取り可能な媒体又はデバイスを含んでもよく、これは、磁気ハードディスク、フロッピー（登録商標）ディスク、光ディスク、スマートカード、又はデータのための記憶装置の別の形態を含み得るが、これらに限定されない。特定の実施形態において、記憶装置７１１は、取り外し可能な媒体、読み取り専用媒体、及び／又は、読み取り可能な／書き込み可能な媒体を含む。コンピューティングデバイス７０１によるソフトウェアの実行の間、データの一部は、ダイレクトメモリアクセスプロセスによってメモリ７０５中に書き込まれ得る。ソフトウェアは、記憶装置７１１、メモリ７０５中に存在してもよく、あるいは、モデム又は通信インターフェース７１３を介して送信されるか又は受信され得る。記憶装置７１１は、図５の方法５００及び／又は図６の方法６００のすべて又は一部分のような、ここで説明された１つ以上の動作又は方法を実行するために、プロセッサ７０３によって実行可能な命令を記憶し得る。説明するように、記憶装置７１１は、フィルタリングモジュール１１４と、ＤＮＳモジュール１１５と、ルールベースのエンジン１１６と、走査／分類モジュール１１７とに対応する命令を記憶し得る。
【００５３】
［0059］  本開示のさまざまな実施形態によると、ここで説明される方法、機能及びモジュールは、コンピュータシステムによって実行可能なソフトウェアプログラムによって実現され得る。さらに、例示的な実施形態において、インプリメンテーションは、分散型処理、コンポーネント／オブジェクト分散型処理、及び、並行処理を含むことができる。例えば、コンピューティングデバイス１１０及び／又はコンピューティングデバイス７０１は、分散型様式及び並行様式において動作を実行する複数の個々のコンピューティングデバイスを含むクラウドコンピューティング環境に対応し得る。代替的に、仮想コンピュータシステム処理は、ここで説明された方法又は機能性のうちの１つ以上を実行するのに使用されることができる。
【００５４】
［0060］  特定の実施形態は、ここで開示された方法又はコンピュータベースの機能のうちの任意の１つ以上を、コンピュータシステムに実行させる命令のセットを実行するコンピュータシステムを使用して、実現されることができる。コンピュータシステムは、ラップトップコンピュータ、デスクトップコンピュータ、携帯電話、タブレットコンピュータ、又はこれらの任意の組み合わせを含み得る。コンピュータシステムは、例えばネットワークを使用して、他のコンピュータシステム又は周辺のデバイスに接続され得る。例えば、コンピュータシステム又はそのコンポーネントは、図１〜７において図示された、又は、図１〜７を参照して説明された、デバイス、システム、モジュール及び／又はコンポーネントのうちの任意の１つ以上を含む、又は、これらの内に含まれることができる。ネットワーク化された配備において、コンピュータシステムは、サーバとして、又は、サーバクライアントユーザネットワーク環境におけるクライアントユーザコンピュータとして、又は、ピアツーピア（又は分散型）ネットワーク環境においてピアコンピュータシステムとして、動作し得る。用語「システム」は、１つ以上のコンピュータ機能を実行するための命令のセット又は複数のセットを、個々に又は共同で実行する、システム又はサブシステムの任意の収集を含むことができる。
【００５５】
［0061］  特定の実施形態において、命令は、集中型又は分散型データベース、及び／又は、関係付けられたキャッシュ及びサーバのような、１つ以上のコンピュータ読み取り可能な又はプロセッサ読み取り可能なデバイスにおいて具現化されることができる。用語「コンピュータ読み取り可能なデバイス」と「プロセッサ読み取り可能なデバイス」はまた、ここで開示された方法又は動作のうちの任意の１つ以上を、プロセッサによって実行するか、又は、コンピュータシステムに実行させるための命令を記憶することができるデバイスを含む。このようなデバイスの例は、ランダムアクセスメモリ（ＲＡＭ）、フラッシュメモリ、読み取り専用メモリ（ＲＯＭ）、プログラム可能な読み取り専用メモリ（ＰＲＯＭ）、消去可能なプログラム可能な読み取り専用メモリ（ＥＰＲＯＭ）、電気的に消去可能なプログラム可能な読み取り専用メモリ（ＥＥＰＲＯＭ（登録商標））、登録ベースのメモリ、ソリッドステートメモリ、ハードディスク、取り外し可能なディスク、ディスクベースのメモリ（例えば、コンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ））、又は、他の任意の形態の記憶デバイスを含むが、これらに限定されない。コンピュータ読み取り可能なデバイス又はプロセッサ読み取り可能なデバイスは、信号ではない。
【００５６】
［0062］  ここで記述された実施形態の説明は、さまざまな実施形態の構造の一般的な理解を提供するように意図される。説明は、ここで記述された構造又は方法を利用する装置及びシステムの、要素及び特徴のすべての完全な記述として役立つようには意図されない。他の多くの実施形態が、開示をレビューする際に当業者にとって明らかとなり得る。他の実施形態は、開示の範囲から逸脱することなく、構造上及び論理上の代用及び変更がなされ得るように利用されて、開示から導出され得る。したがって、開示及び図面は、制限よりも説明として見なされるべきである。
【００５７】
［0063］  特定の実施形態がここで図示されて説明されてきたが、同一の目的又は同様の目的を達成するために設計された任意の後続の構成が、示された特定の実施形態に対して代用され得ることが認識されるべきである。本開示は、さまざまな実施形態の、任意の及びすべての、後続の適応又は変動をカバーするように意図される。上の実施形態の組み合わせと、ここで特に説明されていない他の実施形態は、明細書をレビューする際、当業者にとって明らかとなる。
【００５８】
［0064］  要約は、特許請求の範囲又はその意図を解釈又は限定するのには使用されないという理解とともに提出される。さらに、先述の詳細な説明、さまざまな特徴は、開示を合理化する目的で、単一の実施形態において、ともにグループ化又は説明され得る。本開示は、特許請求の範囲に記載された実施形態が各請求項において明示的に規定されるものより多くの特徴を要求する意図を表わすとして解釈されるべきでない。むしろ、以下の特許請求の範囲が表わすように、進歩的な主題事項は、開示された実施形態のいずれかの特徴のすべてよりも少ないものに向けられ得る。
【００５９】
［0065］  上で開示された主題事項は、例示的、かつ、限定的でないと考えられるべきであり、添付される特許請求の範囲は、本開示の実際の範囲内に含まれる、すべてのこのような修正、エンハンスメント、及び、他の実施形態をカバーするように意図される。したがって、法によって認められる最大の範囲まで、本開示の範囲は、以下の特許請求の範囲とそれらの均等物の最も広い許容可能な解釈によって決定されるべきであり、先述の詳細な説明によって制限又は限定されるべきではない。
以下に、本願出願時の特許請求の範囲に記載された発明を付記する。
［１］プロセッサを備えるコンピューティングデバイスにおいて、ストリングのセットを受信することと、
興味のあるストリングに対応するように決定されるストリングのサブセットを生成するために、前記ストリングのセットに１つ以上のフィルタを適用することと、
前記サブセットの第１のストリングに関係付けられたドメインネームシステム（ＤＮＳ）情報を検索することと、
前記ＤＮＳ情報に対する１つ以上のルールの適用に基づいて、前記第１のストリングを不審なホストネームのセットに付加するか否かを決定するために、ルールベースのエンジンを実行することと、を備える方法。
［２］前記第１のストリングに関係付けられた前記ＤＮＳ情報に基づいて、第２のストリングを識別することと、
前記第２のストリングに関係付けられた第２のＤＮＳ情報を検索することと、
前記第２のＤＮＳ情報に対する前記１つ以上のルールの適用に基づいて、前記第２のストリングを前記不審なホストネームのセットに付加するか否かを決定するために、前記ルールベースのエンジンを実行することと、をさらに備える、［１］に記載の方法。
［３］ＤＮＳ情報に基づいて識別された１つ以上の付加的なストリングを前記不審なホストネームのセットに付加するか否かを決定するために、前記ルールベースのエンジンを再帰的に実行することをさらに備える、［２］に記載の方法。
［４］前記１つ以上のフィルタを適用することは、前記第１のストリングが、エントロピーしきい値未満であるｎグラムエントロピーを有するか否かを決定するために、エントロピーフィルタを前記第１のストリングに適用することを含む、［１］に記載の方法。
［５］識別されたストリングのセットにおいて、複数のｎグラムのそれぞれの発生の頻度を決定することをさらに備え、ここにおいて、前記第１のストリングのｎグラムエントロピーは、前記第１のストリング中に含まれる前記複数のｎグラムのうちの１つ以上のｎグラムの発生の頻度に基づく、［４］に記載の方法。
［６］前記１つ以上のフィルタを適用することは、前記第１のストリングが、しきい値時間期間内に登録された又は遭遇されたホストネームに対応するか否かを決定するために、最新のフィルタを前記第１のストリングに適用することを含む、［１］に記載の方法。
［７］前記ＤＮＳ情報は、ＤＮＳレコード備える、［１］に記載の方法。
［８］前記ＤＮＳレコードは、アドレス（Ａ）レコードを備える、［７］に記載の方法。
［９］前記ＤＮＳレコードは、カノニカルネーム（ＣＮＡＭＥ）レコードを備える、［７］に記載の方法。
［１０］前記ＤＮＳレコードは、インターネットプロトコル（ＩＰ）アドレスをホストネームにマッピングするポインタ（ＰＴＲ）レコードを備える、［７］に記載の方法。
［１１］前記ＤＮＳレコードは、インターネットプロトコル（ＩＰ）アドレスをホストネームのベースドメイン部分にマッピングする、［７］に記載の方法。
［１２］前記ＤＮＳレコードは、ネームサーバ（ＮＳ）レコードを備える、［７］に記載の方法。
［１３］前記１つ以上のルールは、前記第１のストリングに関係付けられたＤＮＳレコードが、前記不審なホストネームのセット中に含まれる第２のストリングに関係付けられたアイテムにマッピングするとき、前記第１のストリングが前記不審なホストネームのセットに付加されることになることを示しているルールを含む、［１］に記載の方法。
［１４］前記１つ以上のルールは、前記第１のストリングにマッピングするしきい値パーセンテージを上回るＤＮＳレコードが、前記不審なホストネームのセット中に含まれる第２のストリングに関係付けられたとき、前記第１のストリングが前記不審なホストネームのセットに付加されることになることを示しているルールを含む、［１］に記載の方法。
［１５］命令を備えるコンピュータ読み取り可能な記録デバイスにおいて、
前記命令は、コンピュータによって実行されるとき、前記コンピュータに、
ストリングのセットを受信することと、
興味のあるストリングに対応するように決定されるストリングのサブセットを生成するために、前記ストリングのセットに１つ以上のフィルタを適用することと、
前記サブセットの第１のストリングに関係付けられたドメインネームシステム（ＤＮＳ）情報を検索することと、
前記ＤＮＳ情報に対する１つ以上のルールの適用に基づいて、前記第１のストリングを不審なホストネームのセットに付加するか否かを決定するために、ルールベースのエンジンを実行することと、を備える動作を実行させる、コンピュータ読み取り可能な記録デバイス。
［１６］前記動作は、前記第１のストリングを１つ以上の複数の分類カテゴリに分類することをさらに備え、ここにおいて、前記複数の分類カテゴリは、少なくともマルウェアカテゴリとフィッシングカテゴリとを含む、［１５］に記載のコンピュータ読み取り可能な記録デバイス。
［１７］前記ストリングのセットは、モバイルセキュリティフィード、スパムフィルタリングフィード、Ｅメールセキュリティフィード、ＤＮＳクエリフィード、又は、これらの任意の組み合わせから受信された少なくとも１つのストリングを含む、［１５］に記載のコンピュータ読み取り可能な記録デバイス。
［１８］ストリングのセットを受信するように構成された入力インターフェースと、
メモリであって、
前記ストリングのセットと、
興味のあるストリングに対応するように決定されるストリングのサブセットと、及び、
不審なホストネームのセットと、
を記憶するように構成されたメモリと、
プロセッサと、
前記興味のあるストリングに対応するように決定されるストリングのサブセットを生成するために、１つ以上のフィルタを適用するように、前記プロセッサによって実行可能なフィルタリングモジュールと、
前記サブセットの第１のストリングに関係付けられたドメインネームシステム（ＤＮＳ）情報を検索するように、前記プロセッサによって実行可能なＤＮＳモジュールと、
前記ＤＮＳ情報に対する１つ以上のルールの適用に基づいて、前記第１のストリングを前記不審なホストネームのセットに付加するか否かを決定するように、前記プロセッサによって実行可能なルールベースのエンジンと、を備えるシステム。
［１９］モバイルセキュリティアプリケーションに対して、Ｅメールセキュリティアプリケーションに対して、又は、両方に対して、前記不審なホストネームのセットを提供するように構成された出力インターフェースをさらに備える、［１８］に記載のシステム。
［２０］分散型サービス妨害（ＤＤｏＳ）緩和アプリケーションに対して、ＤＮＳセキュリティアプリケーションに対して、又は、両方に対して、前記不審なホストネームのセットを提供するように構成された出力インターフェースをさらに備える、［１８］に記載のシステム。
【図１】
0006510040.tif 000002
【図２】
0006510040.tif 000003
【図３】
0006510040.tif 000004
【図４】
0006510040.tif 000005
【図５】
0006510040.tif 000006
【図６】
0006510040.tif 000007
【図７】
0006510040.tif 000008