(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-09
(45)【発行日】2024-07-18
(54)【発明の名称】DNSメッセージを使用してコンピュータ・フォレンジック・データを選択的に収集するためのシステムおよび方法
(51)【国際特許分類】
H04L 61/4511 20220101AFI20240710BHJP
G06F 21/55 20130101ALI20240710BHJP
【FI】
H04L61/4511
G06F21/55
(21)【出願番号】P 2021565969
(86)(22)【出願日】2020-07-02
(86)【国際出願番号】 EP2020068644
(87)【国際公開番号】W WO2020229707
(87)【国際公開日】2020-11-19
【審査請求日】2023-01-31
(73)【特許権者】
【識別番号】312016539
【氏名又は名称】ビットディフェンダー アイピーアール マネジメント リミテッド
(74)【代理人】
【識別番号】100118902
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【氏名又は名称】松尾 淳一
(72)【発明者】
【氏名】ミルチェスク,ダニエル-アレクサンドル
【審査官】安藤 一道
(56)【参考文献】
【文献】米国特許出願公開第2019/0052658(US,A1)
【文献】米国特許出願公開第2015/0381570(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 61/4511
G06F 21/55
(57)【特許請求の範囲】
【請求項1】
コンピュータシステムの少なくとも1つのハードウェアプロセッサを用いて、
前記コンピュータシステムで受信されたドメイン・ネーム・サービス(DNS)リプライメッセージをインターセプトするステップであって、前記DNSリプライメッセージはリモートリソースのネットワークロケーションを示す対象インターネットプロトコル(IP)アドレスを含み、前記DNSリプライメッセージはサービスアクティブ化フラグをさらに含む、ステップと、
前記サービスアクティブ化フラグの値に従って、
フォレンジックデータ収集サービスがアクティブであるかを判定するステップと、
それに応答して、前記
フォレンジックデータ収集サービスがアクティブであることを前記サービスアクティブ化フラグが示す場合、前記対象IPアドレスをダミーIPアドレスと置き換えることによって前記DNSリプライメッセージを修正するステップと、
宛先IPアドレスに向かう電子通信をインターセプトするステップと、
前記宛先IPアドレスが前記ダミーIPアドレスと一致するかを判定するステップと、
前記宛先IPアドレスが前記ダミーIPアドレスと一致するかの判定に応答して、前記宛先IPアドレスが前記ダミーIPアドレスと一致する場合、
マルウェアの出現を特徴づけるためのフォレンジックデータ収集手順を実行するステップ
であって、前記フォレンジックデータ収集手順は、前記電子通信を特徴づけるメタデータのセットをリモートセキュリティサーバに送信するステップを含む、ステップと
を行うことを含む方法。
【請求項2】
請求項1に記載の方法であって、前記フォレンジックデータ収集手順を実行するステップは、前記少なくとも1つのハードウェアプロセッサを用いて、前記コンピュータシステムを前記リモートセキュリティサーバに接続するトンネルを経由するように前記電子通信を再ルーティングするステップをさらに含む、方法。
【請求項3】
請求項1に記載の方法であって
、メタデータの前記セットは、前記対象IPアドレスと、前記電子通信のタイムスタンプとを含む
、方法。
【請求項4】
請求項
3に記載の方法であって、メタデータの前記セットは、前記電子通信のペイロードのサイズのインジケータをさらに含む、方法。
【請求項5】
ドメイン・ネーム・サービス(DNS)プロキシと通信マネージャとを実行するように構成された少なくとも1つのハードウェアプロセッサを含むコンピュータシステムであって、
前記DNSプロキシは、
前記コンピュータシステムで受信された
DNSリプライメッセージをインターセプトすることであって、前記DNSリプライメッセージはリモートリソースのネットワークロケーションを示す対象インターネットプロトコル(IP)アドレスを含み、前記DNSリプライメッセージはサービスアクティブ化フラグをさらに含む、インターセプトすることと、
前記サービスアクティブ化フラグの値に従って、
フォレンジックデータ収集サービスがアクティブであるかを判定することと、
それに応答して、前記
フォレンジックデータ収集サービスがアクティブであることを前記サービスアクティブ化フラグが示す場合、前記対象IPアドレスをダミーIPアドレスと置き換えることによって前記DNSリプライメッセージを修正することと
を行うように構成され、
前記通信マネージャは、
宛先IPアドレスに向かう電子通信をインターセプトすることと、
前記宛先IPアドレスが前記ダミーIPアドレスと一致するかを判定することと、
前記宛先IPアドレスが前記ダミーIPアドレスと一致するかの判定に応答して、前記宛先IPアドレスが前記ダミーIPアドレスと一致する場合、
マルウェアの出現を特徴づけるためのフォレンジックデータ収集手順を実行すること
であって、前記フォレンジックデータ収集手順は、前記電子通信を特徴づけるメタデータのセットをリモートセキュリティサーバに送信することを含む、フォレンジックデータ収集手順を実行することと
を行うように構成される、
コンピュータシステム。
【請求項6】
請求項5に記載のコンピュータシステムであって、前記フォレンジックデータ収集手順を実行することは、前記コンピュータシステムを前記リモートセキュリティサーバに接続するトンネルを経由するように前記電子通信を再ルーティングすることをさらに含む、コンピュータシステム。
【請求項7】
請求項
5に記載のコンピュータシステムであって
、メタデータの前記セットは、前記対象IPアドレスと、前記電子通信のタイムスタンプとを含む
、コンピュータシステム。
【請求項8】
請求項
7に記載のコンピュータシステムであって、メタデータの前記セットは、前記電子通信のペイロードのサイズのインジケータをさらに含む、コンピュータシステム。
【請求項9】
コンピュータシステムの少なくとも1つのハードウェアプロセッサによって実行されると、前記コンピュータシステムに、ドメイン・ネーム・サービス(DNS)プロキシおよび通信マネージャを形成させる命令を格納する非一時的コンピュータ可読媒体であって、
前記DNSプロキシは、
前記コンピュータシステムで受信された
DNSリプライメッセージをインターセプトすることであって、前記DNSリプライメッセージはリモートリソースのネットワークロケーションを示す対象インターネットプロトコル(IP)アドレスを含み、前記DNSリプライメッセージはサービスアクティブ化フラグをさらに含む、インターセプトすることと、
前記サービスアクティブ化フラグの値に従って、
フォレンジックデータ収集サービスがアクティブであるかを判定することと、
それに応答して、前記
フォレンジックデータ収集サービスがアクティブであることを前記サービスアクティブ化フラグが示す場合、前記対象IPアドレスをダミーIPアドレスと置き換えることによって前記DNSリプライメッセージを修正することと
を行うように構成され、
前記通信マネージャは、
宛先IPアドレスに向かう電子通信をインターセプトすることと、
前記宛先IPアドレスが前記ダミーIPアドレスと一致するかを判定することと、
前記宛先IPアドレスが前記ダミーIPアドレスと一致するかの判定に応答して、前記宛先IPアドレスが前記ダミーIPアドレスと一致する場合、
マルウェアの出現を特徴づけるためのフォレンジックデータ収集手順を実行すること
であって、前記フォレンジックデータ収集手順は、前記電子通信を特徴づけるメタデータのセットをリモートセキュリティサーバに送信することを含む、フォレンジックデータ収集手順を実行することと
を行うように構成される、
非一時的コンピュータ可読媒体。
【請求項10】
複数のクライアントシステムとのドメイン・ネーム・サービス(DNS)トランザクションに関与するように構成された少なくとも1つのハードウェアプロセッサを含むサーバ・コンピュータ・システムであって、
インターネットドメインに悪意があると疑われるとの判定に応答して、前記インターネットドメインに従って対象デバイスプロファイルを決定することであって、前記対象デバイスプロファイルは、選択された地理的エリア内に位置し、選択されたオペレーティングシステムを実行することによって特徴づけられる電子デバイスを集合的に表す、対象デバイスプロファイルを決定することと、
前記インターネットドメインを含むDNSクエリメッセー
ジを受信したことに応答して、
前記DNSクエリメッセージに従って、前記DNSクエリメッセージ
を発信したクライアントシステムを特定することと、
前記クライアントシステムを特定したことに応答して、
前記クライアントシステムが前記対象デバイスプロファイルと一致するかを判定することと、
前記クライアントシステムが前記対象デバイスプロファイルと一致するかを判定することに応答して、
前記クライアントシステムが前記対象デバイスプロファイルと一致する場合、DNSリプライメッセージを前記クライアントシステムに送信することであって、前記DNSリプライメッセージは前記
インターネットドメインに関連付けられた対象インターネットプロトコル(IP)アドレスを含み、前記DNSリプライメッセージはサービスアクティブ化フラグを含むようにさらに構成される、送信することと、
前記クライアントシステムが前記対象デバイスプロファイルと一致するかを判定することに応答して、
前記クライアントシステムが前記対象デバイスプロファイルと一致しない場合、他のDNSリプライメッセージを前記クライアントシステムに送信することであって、前記他のDNSリプライメッセージは、前記対象IPアドレスを含み、前記サービスアクティブ化フラグを含まないようにさらに構成される、送信することと
を行うようにさらに構成され、
前記クライアントシステムは、前記対象IPアドレスに向かうかまたは前記対象IPアドレスから来る電子通信に
ついてフォレンジックデータ収集手順を実行するためのトリガとして、前記サービスアクティブ化フラグの受信を解釈するように構成される、
サーバ・コンピュータ・システム。
【請求項11】
請求項10に記載のサーバ・コンピュータ・システムであって、前記少なくとも1つのハードウェアプロセッサは、
前記クライアントシステムが前記対象デバイスプロファイルと一致するかを判定することに応答して、前記クライアントシステムが前記対象デバイスプロファイルと一致する場合、前記クライアントシステムから前に受信したDNSクエリメッセージの数に従って、前記クライアントシステムはフォレンジックデータ収集にふさわしいかを判定することと、
それに応答して、前記クライアントシステムがフォレンジックデータ収集にふさわしい場合にのみ、前記サービスアクティブ化フラグを含む前記DNSリプライメッセージを送信することと
を行うようにさらに構成された、サーバ・コンピュータ・システム。
【請求項12】
請求項10に記載のサーバ・コンピュータ・システムであって、前記少なくとも1つのハードウェアプロセッサは、
前記クライアントシステムが前記対象デバイスプロファイルと一致するかを判定することに応答して、前記クライアントシステムが前記対象デバイスプロファイルと一致する場合、前記インターネットドメインを含む、前記サーバ・コンピュータ・システムにおいて前に受信したDNSクエリメッセージの数に従って、前記クライアントシステムはフォレンジックデータ収集にふさわしいかを判定することと、
それに応答して、前記クライアントシステムがフォレンジックデータ収集にふさわしい場合にのみ、前記サービスアクティブ化フラグを含む前記DNSリプライメッセージを送信することと
を行うようにさらに構成された、サーバ・コンピュータ・システム。
【請求項13】
請求項10に記載のサーバ・コンピュータ・システムであって、前記少なくとも1つのハードウェアプロセッサは、
前記クライアントシステムが前記対象デバイスプロファイルと一致するかを判定することに応答して、前記クライアントシステムが前記対象デバイスプロファイルと一致する場合、フォレンジックデータ収集のために前記クライアントシステムを無作為に選択することと、
それに応答して、フォレンジックデータ収集のために前記クライアントシステムが選択された場合にのみ、前記サービスアクティブ化フラグを含む前記DNSリプライメッセージを送信することと
を行うようにさらに構成された、サーバ・コンピュータ・システム。
【請求項14】
請求項10に記載のサーバ・コンピュータ・システムであって、前記対象デバイスプロファイルは、選択された機器のタイプによってさらに特徴づけられる電子デバイスを表す、サーバ・コンピュータ・システム。
【請求項15】
請求項10に記載のサーバ・コンピュータ・システムであって、前記少なくとも1つのハードウェアプロセッサは、前記DNSクエリメッセージに含まれるクライアントIDに従って前記クライアントシステムを特定するようにさらに構成され、前記クライアントIDは、前記複数のクライアントシステムから前記クライアントシステムを一意に特定する、サーバ・コンピュータ・システム。
【請求項16】
請求項15に記載のサーバ・コンピュータ・システムであって、前記クライアントIDはハッシュ値を含む、サーバ・コンピュータ・システム。
【請求項17】
請求項1に記載の方法であって、前記フォレンジックデータ収集手順は、前記コンピュータシステムの現在の状態を決定するステップを含む、方法。
【請求項18】
請求項5に記載のコンピュータシステムであって、前記フォレンジックデータ収集手順は、前記コンピュータシステムの現在の状態を決定することをさらに含む、コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]本発明は、悪意のあるソフトウェア対策のためのシステムおよび方法に関し、特に、フォレンジック分析のためのネットワーク・トラフィック・サンプルを選択的に収集することに関する。
【背景技術】
【0002】
[0002]マルウェアとしても知られる悪意のあるソフトウェアは、世界中の非常に多くのコンピュータシステムに影響を及ぼす。コンピュータウイルス、トロイの木馬、スパイウェア、ランサムウェアなど、その多くの形態において、マルウェアは数百万のコンピュータユーザに対して深刻なリスクを引き起こし、それらのユーザを、特に、データおよび機密情報の損失、なりすまし犯罪、および生産性損失に対して脆弱としてしまう。
【0003】
[0003]モノのインターネット(IoT)と非公式で呼ばれる多種多様なデバイスが、通信ネットワークおよびインターネットにますます接続されている。そのようなデバイスは、特に、スマートフォン、スマートウォッチ、テレビおよび他のマルチメディアデバイス、ゲーム機、家庭用電化製品、およびサーモスタットなどの様々な家庭内センサを含む。より多くのそのようなデバイスがオンラインになるにつれて、マルウェアや侵入などのセキュリティ上の脅威に晒されるようになる。したがって、マルウェアに対してそのようなデバイスをセキュリティ保護するとともに、そのようなデバイスとの通信を保護する必要性が高まっている。モノのインターネットの出現によって認識が新たになった特定の分野は、例えばペアレンタルコントロールなどの、機密情報がIoTデバイスを介して送信されるのを防ぐアクセス・コントロール・アプリケーションを含む。
【0004】
[0004]悪意のあるソフトウェアは、常に進化し、コンピュータセキュリティのプロバイダに、絶えず変化する脅威の状況に追い付くことを求める。その努力の一部は、出現しつつあるマルウェアの適時の発見と分析に向けられる。通常、行動検出として知られる、マルウェア対策方法の1つの特定分類は、ルールセットに従ってデバイスおよび/またはソフトウェアコンポーネントのアクティビティを監視することに頼っている。いくつかのアクティビティパターン(例えば、ハードウェアまたはソフトウェアの一連のイベント)はそれぞれのデバイスの正常で合法的な使用に対応する一方、その他は悪意を示す場合がある。異常でマルウェアを示す行動パターンの確実な識別は、通常、感染したデバイスから十分な量のフォレンジックデータを採取されることを必要とする。マルウェアを示すデータトラフィックの検出の場合に、そのようなパターンの学習は、感染したIoTデバイスとのネットワークトラフィックへアクセス可能であることを必要とする。ただし、出現しつつある未知の脅威の場合、違反デバイスは容易に特定できない。
【発明の概要】
【発明が解決しようとする課題】
【0005】
[0005]したがって、様々なデバイスタイプからフォレンジックデータを収集する、特に、IoTデバイスとのネットワークトラフィックを選択的に収集するシステムおよび方法を開発することことに大きな関心がある。
【課題を解決するための手段】
【0006】
[0006]一態様によれば、方法は、コンピュータシステムの少なくとも1つのハードウェアプロセッサを用いて、前記コンピュータシステムで受信されたドメイン・ネーム・サービス(DNS)リプライメッセージをインターセプトするステップを含み、前記DNSリプライメッセージがリモートリソースのネットワークロケーションを示す対象インターネットプロトコル(IP)アドレスを含み、前記DNSリプライメッセージがサービスアクティブ化フラグをさらに含む。前記方法は、前記コンピュータシステムの少なくとも1つのハードウェアプロセッサを用いて、前記サービスアクティブ化フラグの値に従って、セキュリティサービスがアクティブであるかを判定し、それに応答して、前記セキュリティサービスがアクティブであることを前記サービスアクティブ化フラグが示す場合、前記対象IPアドレスをダミーIPアドレスと置き換えることによって前記DNSリプライメッセージを修正するステップとをさらに含む。前記方法は、前記コンピュータシステムの少なくとも1つのハードウェアプロセッサを用いて、宛先IPアドレスに向かう電子通信をインターセプトするステップと、前記宛先IPアドレスが前記ダミーIPアドレスと一致するかを判定するステップと、前記宛先IPアドレスが前記ダミーIPアドレスと一致するかの判定に応答して、前記宛先IPアドレスが前記ダミーIPアドレスと一致する場合、前記電子通信に従ってコンピュータセキュリティ手順を実行するステップとをさらに含む。前記方法は、前記コンピュータシステムの少なくとも1つのハードウェアプロセッサを用いて、前記宛先IPアドレスが前記ダミーIPアドレスと一致するかの判定に応答して、前記宛先IPアドレスが前記ダミーIPアドレスと一致しない場合、前記電子通信を前記宛先IPアドレスに転送するステップと、をさらに含む。
【0007】
[0007]別の態様によれば、コンピュータシステムは、ドメイン・ネーム・サービス(DNS)プロキシと通信マネージャとを実行するように構成された少なくとも1つのハードウェアプロセッサを含む。前記DNSプロキシは、前記コンピュータシステムで受信されたドメイン・ネーム・サービス(DNS)リプライメッセージをインターセプトするように構成され、前記DNSリプライメッセージがリモートリソースのネットワークロケーションを示す対象インターネットプロトコル(IP)アドレスを含み、前記DNSリプライメッセージがサービスアクティブ化フラグをさらに含む。前記DNSプロキシは、前記サービスアクティブ化フラグの値に従って、セキュリティサービスがアクティブであるかを判定し、それに応答して、前記セキュリティサービスがアクティブであることを前記サービスアクティブ化フラグが示す場合、前記対象IPアドレスをダミーIPアドレスと置き換えることによって前記DNSリプライメッセージを修正する、ようにさらに構成される。前記通信マネージャは、宛先IPアドレスに向かう電子通信をインターセプトし、前記宛先IPアドレスが前記ダミーIPアドレスと一致するかを判定し、それに応答して、前記宛先IPアドレスが前記ダミーIPアドレスと一致する場合、前記電子通信に従ってコンピュータセキュリティ手順を実行するように構成される。前記通信マネージャは、前記宛先IPアドレスが前記ダミーIPアドレスと一致するかの判定に応答して、前記宛先IPアドレスが前記ダミーIPアドレスと一致しない場合、前記電子通信を前記宛先IPアドレスに転送するようにさらに構成される。
【0008】
[0008]別の態様によれば、非一時的コンピュータ可読媒体は、コンピュータシステムの少なくとも1つのハードウェアプロセッサによって実行されると、前記コンピュータシステムに、ドメイン・ネーム・サービス(DNS)プロキシおよび通信マネージャを形成させる命令を格納する。前記DNSプロキシは、前記コンピュータシステムで受信されたドメイン・ネーム・サービス(DNS)リプライメッセージをインターセプトするように構成され、前記DNSリプライメッセージがリモートリソースのネットワークロケーションを示す対象インターネットプロトコル(IP)アドレスを含み、前記DNSリプライメッセージがサービスアクティブ化フラグをさらに含む。前記DNSプロキシは、前記サービスアクティブ化フラグの値に従って、セキュリティサービスがアクティブであるかを判定し、それに応答して、前記セキュリティサービスがアクティブであることを前記サービスアクティブ化フラグが示す場合、前記対象IPアドレスをダミーIPアドレスと置き換えることによって前記DNSリプライメッセージを修正するようにさらに構成される。前記通信マネージャは、宛先IPアドレスに向かう電子通信をインターセプトし、前記宛先IPアドレスが前記ダミーIPアドレスと一致するかを判定し、それに応答して、前記宛先IPアドレスが前記ダミーIPアドレスと一致する場合、前記電子通信に従ってコンピュータセキュリティ手順を実行するように構成される。前記通信マネージャは、前記宛先IPアドレスが前記ダミーIPアドレスと一致するかの判定に応答して、前記宛先IPアドレスが前記ダミーIPアドレスと一致しない場合、前記電子通信を前記宛先IPアドレスに転送するように構成される。
【0009】
[0009]別の態様によれば、サーバ・コンピュータ・システムは、複数のクライアントシステムとのドメイン・ネーム・サービス(DNS)トランザクションに関与し、前記サーバ・コンピュータ・システムは、前記複数のクライアントシステムのうちのクライアントシステムから対象ドメインネームを含むDNSクエリメッセージを受信したことに応答して、前記DNSクエリメッセージに従って前記クライアントシステムを特定するように構成された少なくとも1つのハードウェアプロセッサを含む。前記少なくとも1つのハードウェアプロセッサは、前記クライアントシステムを特定したことに応答して、前記ドメインネームに従って、さらに前記クライアントシステムの識別情報に従って、クライアント選択条件が満たされるかを判定するようにさらに構成される。前記少なくとも1つのハードウェアプロセッサは、前記クライアント選択条件が満たされるかを判定することに応答して、前記クライアント選択条件が満たされる場合、DNSリプライメッセージを前記クライアントシステムに送信するように構成され、前記DNSリプライメッセージが前記対象ドメインネームに関連付けられた対象インターネットプロトコル(IP)アドレスを含み、前記DNSリプライメッセージがサービスアクティブ化フラグを含むようにさらに構成される。前記少なくとも1つのハードウェアプロセッサは、前記クライアント選択条件が満たされるかを判定することに応答して、前記クライアント選択条件が満たされない場合、他のDNSリプライメッセージを前記クライアントシステムに送信するようにさらに構成され、前記他のDNSリプライメッセージが前記対象IPアドレスを含み、前記サービスアクティブ化フラグを含まないようにさらに構成される。前記クライアントシステムは、前記対象IPアドレスに向かうまたは前記IPアドレスから来る電子通信に従ってコンピュータセキュリティ手順を実行するためのトリガとして、前記サービスアクティブ化フラグの受信を解釈するように構成される。
【0010】
[0010]本発明の上述の態様および利点は、以下の詳細な説明を読み、図面を参照することによってより良く理解されるようになるであろう。
【図面の簡単な説明】
【0011】
【
図1】[0011]本発明の一部の実施形態による、コンピュータセキュリティ脅威に対して保護されたクライアントデバイスの例示のセットを示す図である。
【
図2-A】[0012]従来技術で知られるような、典型的なドメイン・ネーム・システム(DNS)トランザクションを示す図である。
【
図2-B】[0013]本発明の一部の実施形態による、修正されたDNSトランザクションを示す図である。
【
図3】[0014]本発明の一部の実施形態による例示のタグ付きDNSクエリを示す図である。
【
図4】[0015]本発明の一部の実施形態による例示のフラグ付きDNSリプライを示す図である。
【
図5-A】[0016]クライアントデバイスがセキュリティサーバへフォレンジックデータを送信する例示の実施形態を示す図であり、フォレンジックデータは、クライアントデバイスとコンテンツサーバとの間のネットワークトラフィックのダイジェストを含む。
【
図5-B】[0017]クライアントデバイスとコンテンツサーバとの間のネットワークトラフィックの少なくとも一部がセキュリティサーバを介して再ルーティングされる代替の実施形態を示す図である。
【
図6】[0018]本発明の一部の実施形態による、クライアントデバイス上で実行されている例示のソフトウェアを示す図である。
【
図7】[0019]本発明の一部の実施形態による、クライアントデバイス上で実行されているDNSプロキシによって実行されるステップの例示のシーケンスを示す図である。
【
図8】[0020]アウトバウンド通信を処理するために通信マネージャによって実行されるステップの例示のシーケンスを示す図であり、通信マネージャは、本発明の一部の実施形態によるクライアントデバイス上で実行されている。
【
図9】[0021]本発明の一部の実施形態による、インバウンド通信を処理するために通信マネージャによって実行されるステップの例示のシーケンスを示す図である。
【
図10】[0022]本発明の一部の実施形態による、DNSサーバによって実行されるステップの例示のシーケンスを示す図である。
【
図11】[0023]本発明の一部の実施形態による方法およびアルゴリズムを実行するようにプログラム可能なコンピュータシステムの例示のハードウェア構成を示す図である。
【発明を実施するための形態】
【0012】
[0024]以下の説明において、構造間のすべての記載の接続は、直接動作接続または中間構造を介した間接動作接続であり得ることを理解されたい。1組の要素は1つまたは複数の要素を含む。要素のあらゆる記載は、少なくとも1つの要素を指すことを理解されたい。複数の要素は、少なくとも2つの要素を含む。必要でない限り、あらゆる説明された方法のステップは特定の例示の方法で実行されることを必ずしも必要としない。第2の要素から導出された第1の要素(例えばデータ)は、第2の要素と等しい第1の要素とともに、第2の要素、さらに任意として他のデータを処理することによって生成された第1の要素を包含する。パラメータに従って判定または決定を行うことは、パラメータに従って、さらに任意で他のデータに従って判定または決定を行うことを包含する。特記しない限り、ある量/データのインジケータは、量/データ自体でもよく、または量/データ自体とは異なるインジケータでもよい。コンピュータプログラムは、タスクを実行するプロセッサ命令のシーケンスである。本発明の一部の実施形態で説明されるコンピュータプログラムは、他のコンピュータプログラムのスタンドアロンのソフトウェアエンティティまたはサブエンティティ(例えば、サブルーティン、ライブラリ)でもよい。ドメインネームは、ネットワークアドレスを識別するラベル/エイリアスである。「データベース」という用語は、ここでは、データの組織された集合体を示すために使用される。コンピュータ可読媒体は、磁気、光学、および半導体ストレージ媒体(例えば、ハードドライブ、光学ディスク、フラッシュメモリ、DRAM)などの非一時的媒体とともに、導電性ケーブルおよび光ファイバリンクなどの通信リンクを包含する。一部の実施形態によれば、本発明は、特に、ここで説明される方法を実行するようにプログラムされたハードウェア(例えば1つまたは複数のプロセッサ)を含むコンピュータシステムとともに、ここで説明される方法を実行する命令を符号化するコンピュータ可読媒体を提供する。
【0013】
[0025]以下の記載は、例として、必ずしも限定的ではなく、本発明の実施形態を説明するものである。
[0026]
図1は、本発明の一部の実施形態による、コンピュータセキュリティ脅威から保護されたクライアントデバイス10a~10fの例示のセットを示す図である。例示のクライアントシステム10a~10fは、パーソナルコンピュータシステム、企業のメインフレームコンピュータ、モバイル・コンピューティング・プラットフォーム(例えば、ラップトップコンピュータ、タブレット、携帯電話)、娯楽デバイス(例えば、テレビ、ゲーム機)、ウェアラブルデバイス(例えば、スマートウォッチ、フィットネスバンド)、家庭用機器(例えば、冷蔵庫、食器洗浄機)、および、プロセッサと、メモリと、それぞれのデバイスが他のデバイス/コンピュータシステムと通信できるようにする通信リンクとを備えるあらゆる他の電子デバイスを含む。例示のクライアントデバイスは、ウェブコンテンツ、電子メッセージ、様々なドキュメントなどのデータを交換するために、通信リンクを介してリモートのコンテンツサーバ18と対話してもよい。
【0014】
[0027]
図1の例示の構成において、クライアントデバイス10a~10eは、ローカルエリアネットワーク(LAN)、ホームネットワーク、企業ネットワークなどローカルネットワーク13によって相互接続される。デバイス10a~10eは、ワイドエリアネットワーク(WAN)および/またはインターネットなどの拡大ネットワーク15にさらに接続されてもよい。一部の実施形態では、クライアントデバイス10a~10eと拡大ネットワーク15との間のネットワークトラフィックの少なくとも一部は、ルータまたはネットワークハブなどのゲートウェイ12を通る。別の例示のクライアントデバイス10fは、ローカルネットワーク13に接続されなくてもよいが、その代わりとして、例えば携帯電話通信ネットワークまたは公共WiFiホットスポットを使用して、拡大ネットワーク15に接続してもよい。
【0015】
[0028]一部の実施形態では、ドメイン・ネーム・サービス(DNS)サーバ14は、以下で詳述するように、クライアントデバイス10a~10fからコンピュータ・フォレンジック・データを選択的に採取するために、セキュリティサーバ16と協働する。そのようなフォレンジックデータは、例えば、選択されたクライアントと選択されたコンテンツサーバとの間のデータ伝送を記述するメタデータおよび/またはそれぞれのデータ伝送の実際のペイロードを含んでもよい。ここでのメタデータは、伝送コンテンツまたはペイロード自体以外の伝送の特徴を指す。例示のメタデータは、特に、送信元および/または受信先のネットワークアドレス、ペイロードのサイズ、およびそれぞれの伝送の実時間を示すタイムスタンプを含む。「フォレンジック」という用語は、ここでは、それぞれのデータがコンピュータのセキュリティ目的で使用されてもよいことを示すため、例えば、それぞれのクライアントシステムが悪意のあるソフトウェアに感染しているかを判定するため、または未知のコンピュータセキュリティ脅威を特徴付けるネットワーク・トラフィック・パターンを予想して特定するために、使用される。サーバ14、16のそれぞれは、互いに一般に物理的に近接している、または近接していない、通信可能に結合された1組のコンピュータを表す。熟練者は、ここで説明されるようにサーバ14、16によって実行される動作が複数の物理的マシンまたはプロセッサ間で分割され得ることを認識するであろう。
【0016】
[0029]サーバ14、16は、クライアント・プロファイル・データベース19に接続され、選択的なデータ挿入、データ検索、および/または他のデータベース管理動作を実行するためにデータベース19にアクセスするように構成される。データベース19は、クライアントデバイス10a~10fに関連した、および/またはそれぞれのクライアントデバイスのユーザに関連した複数のクライアントレコードを格納するように構成される。一部の実施形態では、各クライアントレコードは、個々のクライアントデバイス10a~10fに対応する。そのような一例では、クライアントレコードは、それぞれのクライアントデバイスの識別子(例えば、メディア・アクセス・コントロール(MAC)アドレス、国際移動体識別(IMEI)番号など)のセット、デバイスタイプ(例えば、デジタルカメラ、サーモスタット、スマートフォン、タブレットコンピュータ、ルータ、車)のインジケータ、それぞれのクライアントデバイスの様々なハードウェア構成インジケータ(例えば、それぞれのデバイスがカメラを有するかなど)、それぞれのデバイスにインストールされたソフトウェアアプリケーションのリスト、およびそれぞれのクライアントデバイスの地理的ロケーションのインジケータを格納してもよい。例示のクライアントレコードに格納される他の情報は、それぞれのクライアントデバイスによるネットワークアクセスの統計などのデバイス使用データ、例えば、様々な通信ポート使用の相対度数、様々な時間間隔における相対的トラフィック量などを含む。他の例示のクライアントレコードは、それぞれのクライアントデバイスによって送信または受信されたネットワークトラフィックを説明するメタデータを含んでもよい。一部の実施形態では、そのようなメタデータは、インターネット・エンジニアリング・タスク・フォースからのIP Flow Information Export(IPFIX)またはCisco,IncからのNetFlow(登録商標)などのフォーマットに従って組織されてもよい。データベース19は、当業界で知られるいずれかの標準に従ってフォーマット化および格納されてもよい。例示のデータベースフォーマットは、特に、リレーショナルデータベース、拡張マークアップ言語(XML)データベース、スプレッドシート、およびキーバリュー型を含む。
【0017】
[0030]一部の実施形態では、DNSサーバ14は、クライアントデバイス10a~10fへドメイン・ネーム・サービスを提供し、それぞれのサービスは、特に、ドメインネームをネットワークアドレスに変換し、および/またはその逆を行うことを含む。クライアントデバイスとリモートのコンテンツサーバとの間の通常のデータ伝送は、いくつかのステップを含む。そのような伝送は、コンテンツサーバのネットワークアドレス(例えば、インターネットプロトコル(IP)アドレス)の情報を必要とする。多くの場合、このアドレスは、様々な理由のため、クライアントにとっては既知ではない。例えば、複数のミラー・コンテンツ・サーバ・マシンが存在する場合があり、クライアントは、各ミラーサーバの現在の負荷に従って、またはクライアントデバイスの現在の地理的ロケーションに従って、最も便利なサーバ・マシンに対して動的に割り当てられる場合がある。ただし、クライアントデバイスは、未知のネットワークアドレスのエイリアスを含むドメインネームを知っている場合がある。リモートのコンテンツサーバへの接続を構築するために、それぞれのクライアントデバイス上で実行されているソフトウェアエンティティは、したがって、IPアドレス自体の代わりに、それぞれのドメインネームへアクセスする要求を発行する場合がある。それに応答して、そのクライアントデバイスの別のソフトウェアエンティティ(例えばオペレーティングシステム)は、そのエイリアス/ドメインネームを実際のネットワークアドレスに変換することを試みた後、正しいネットワークロケーションに要求を送信する場合がある。そのような変換は、
図1のサーバ14などのDNSプロバイダを呼び出す場合がある。
図2-Aは、当業界で知られているようなDNSプロトコルに従った通常のメッセージ交換を示す図である。クライアントデバイス10は、DNSクエリ22をDNSサーバ14へ送信し、クエリ22は、ドメインネームの符号化を含む。それに応答して、DNSサーバ14は、要求元のクライアントにDNSリプライ24を返す場合があり、リプライ24は、それぞれのドメインネーム/エイリアスによって特定されるネットワークアドレスの符号化を含む。例示のアドレス符号化は、特に、IPv4およびIPv6フォーマットを含む。
【0018】
[0031]
図2-Bは、本発明の一部の実施形態による、クライアントデバイス10とDNSサーバ14との間の例示のDNS交換を示す図である。従来のDNS交換(
図2-A)とは対照的に、一部の実施形態では、クライアントデバイス10は、DNSサーバ14へタグ付きのDNSクエリ26を送信する場合があり、このタグ付きクエリは、それぞれのクライアントデバイス10の識別子を含む。例示のタグ付きクエリ26は、
図3に示され、ドメインネーム21およびクライアントID25の符号化を含む。クライアントID25は、クライアントデバイス10を他のクライアントデバイスと区別できるようにする任意の項目を含んでもよい。例示のクライアントIDは、ハッシュ、MACアドレス、IMEI番号などを含む。一部の実施形態では、クライアントID25は、クライアントデバイス10を個別に特定することを可能としない場合があるが、その場合でも、それぞれのクライアントデバイスのグループ識別情報を示す。例えば、クライアントID25は、デバイスグループ(例えば、企業の特定の部署内のデバイス、特定のネットワークサブドメイン内に配置されたデバイス、特定のホームネットワークに属するデバイス、特定のサービス契約の下で保護されたデバイス)、デバイスタイプ(例えば、スマートフォンか、デスクトップPCか、内臓型か)などを選択的に示す場合がある。
【0019】
[0032]代替の実施形態では、クライアントID25は、クライアントのデバイスプロファイルのダイジェストを含んでもよい。例示のデバイスプロファイル情報は、例えば、それぞれのクライアントデバイスのデバイスタイプ、オペレーティングシステム、現在の地理的ロケーション、および現在のユーザの識別子の符号化を含んでもよい。そのような情報は、以下で詳述するように、セキュリティサービスのアクティブ化/非アクティブ化をするそれぞれのクライアントデバイスを選択するために、DNSサーバ14および/またはサーバ16によって使用されてもよい。
【0020】
[0033]タグ付きDNSクエリ26の受信に応答して、DNSサーバ14の一部の実施形態は、フラグ付きDNSリプライ28を返し、その一例を
図4に示す。フラグ付きDNSリプライ28は、ネットワークアドレス23と、特定のセキュリティサービスがそれぞれの要求元クライアントデバイス10のためにアクティブであるかを示すサービスアクティブ化フラグ27の符号化を含む。フラグ27によって選択的にアクティブ化/非アクティブ化された例示のセキュリティサービスは、フォレンジックデータ収集、ペアレンタルコントロール(例えば、特定のドメインへの特定のユーザのアクセスを制限する)、アプリケーションコントロール(例えば、Facebook(登録商標)、インスタントメッセージング、ゲーミングなどの特定のアプリケーションの動作を禁止する)、不正対策、マルウェア対策、トラフィックイントロスペクションなどを含む。
【0021】
[0034]代替の実施形態では、フラグ付きDNSリプライ28は、例えばビットマップなどの複数のサービスアクティブ化フラグを含んでもよく、各ビットは個別のセキュリティサービス(例えば、ペアレンタルコントロール、トラフィックイントロスペクション、フォレンジックデータ収集など)を表し、それぞれのビットの値は、それぞれのサービスがONまたはOFFにされるかを示す。別の例では、フラグ付きDNSリプライ28は、単一のサービスアクティブ化フラグとともに、またはその代わりとしてサービスパラメータ値のセットを含んでもよい。さらに別の例では、サービスアクティブ化フラグ27の個々の値は、対象クライアントデバイスの動作の個々のモードを示してもよい。例えば、ある値は、クライアントデバイスに対して、それぞれのトラフィックをドロップすること(例えば、DNSリプライ28をNXDomainリプライとして解釈する)を指示する場合があり、別の値は、クライアントデバイスに対して、タイムアウトを強制する、または別のIPアドレスへトラフィックをリダイレクトすることを指示してもよい。
【0022】
[0035]クライアントID25およびサービスアクティブ化フラグ27IDなどのデータ項目は、当業界で知られている任意の方法を使用して、符号化され、クライアントクエリおよび/またはサーバ・リプライ・メッセージに含まれてもよい。電子通信で使用される多くの現在のプロトコル/データフォーマットは、不特定使用のために、各データパケットの選択されたビットのセットを確保しておく。様々な実施形態は、そのような確保されたビットを使用して、クライアントID25および/またはサービスアクティブ化フラグ27を符号化してもよい。最も単純な例では、それぞれのメッセージの選択されたビットは、サービスアクティブ化フラグとして作用してもよく、値1は、サービスがONであることを示してもよく、値0はサービスがOFFである、またはそれぞれのメッセージにフラグが付いていないことを示してもよい。一部の実施形態は、現在使用されている標準に従ってフォーマット化されたDNSメッセージ、例えば、特に、インターネット技術標準化委員会(IETF)のリクエスト・フォー・コメンツ(RFC)1035に記載されるDNSメッセージを使用する。そのような一例では、クライアントID25および/またはサービスアクティブ化フラグ27は、例えばRDATAフィールドの内容など、DNSクエリまたはリプライの追加リソースレコードまたは疑似リソースレコードとして挿入されてもよい。
【0023】
[0036]一部の実施形態では、DNSサーバ14は、特定のクライアントデバイスおよび/またはユーザに対してのみサービスアクティブ化フラグ27の値を適切に設定することによって、セキュリティサービスを選択的にアクティブ化/非アクティブ化してもよい。特定のサービスをONまたはOFFにするかの決定は、それぞれのタグ付きDNSクエリを発行したクライアントデバイスの識別情報に従って、さらにクライアントデバイスの現在の地理的ロケーション、それぞれのクライアントデバイスのデバイスタイプ、ハードウェアおよび/またはソフトウェアプロファイルなどの基準に従って、セキュリティサーバ16によって行われてもよい。決定アルゴリズムおよび基準の例は後述する。そのような決定アルゴリズムを可能にするため、一部の実施形態は、クライアントデバイスからデバイスプロファイル情報を収集し、そのようなプロファイル情報をセキュリティサーバ16に送信し、セキュリティサーバ16はそれをクライアント・プロファイル・データベース19(
図2-B参照)に組織立てて格納してもよい。
【0024】
[0037]一部の実施形態は、以下で詳述するように、フォレンジックデータを選択的に収集するために、サービスアクティブ化フラグ27を使用する。データ収集の対象としてクライアントデバイスを選択したことに応答して、DNSサーバ14は、それぞれのクライアントデバイスから受け取ったDNSクエリにフラグ付きDNSリプライで応答してもよく、ここでサービスアクティブ化フラグ27は、データ収集がONであることを示すように設定される。それぞれのフラグ付きDNSリプライの受信に応答して、選択されたクライアントデバイス上で実行されているセキュリティアプリケーションは、選択されたデバイスからフォレンジック情報を収集し、分析のためにセキュリティサーバ16へそれぞれの情報を送信してもよい。フォレンジックデータ収集は、いくつかのシナリオに従って進行してもよい。
図5-Aに図示された一例では、クライアントデバイス10上で実行されているセキュリティソフトウェアは、クライアントデバイス10とコンテンツサーバ18との間の通信のメタデータおよび/または実際のペイロードを決定し、そのような情報をフォレンジックデータ30としてパッケージングし、それを、セキュリティサーバ16へ送信されるアウトバウンド・メッセージ・キューへ追加してもよい。
図5-Bに示す別の例では、データ収集がアクティブであることを示すフラグ付きDNSリプライの受信に応答して、それぞれのクライアントデバイス上で実行されているセキュリティソフトウェアは、クライアントデバイス10をセキュリティサーバ16に接続する通信トンネルを介して、クライアントデバイス10とコンテンツサーバ18との間のデータトラフィックの少なくとも一部を再ルーティングしてもよい。そのようなトンネルの一例は、仮想プライベートネットワーク(VPN)接続である。換言すれば、
図5-Bにおいて、フォレンジックデータ収集は、選択されたクライアントデバイスとのライブ通信をセキュリティサーバ16を介してルーティングすることを含み、それぞれのトラフィックは分析されてもよい。
【0025】
[0038]
図6は、本発明の一部の実施形態による、クライアントデバイス上で実行されている例示のソフトウェアコンポーネントを示す。そのようなソフトウェアは、特に、Microsoft Windows(登録商標)、MacOS(登録商標)、Linux(登録商標)、iOS(登録商標)、またはAndroid(登録商標)などの広く入手可能なオペレーティングシステムでもよい、オペレーティングシステム(OS)50を含んでもよい。OS50は、クライアントデバイス10のハードウェアと、クライアントアプリケーション52およびセキュリティアプリケーション54を含むアプリケーションのセットとの間のインターフェースを提供する。クライアントアプリケーション52は、特に、ワード・プロセッシング・アプリケーション、スプレッドシートアプリケーション、画像処理、ゲーミング、電子通信、ウェブブラウジング、およびソーシャル・メディア・アプリケーションなどのあらゆるコンピュータプログラムを一般に表す。セキュリティアプリケーション54は、例えば、マルウェア対策、侵入検出およびネットワーク・アクセス・コントロールなど、コンピュータ・セキュリティ・サービスをクライアントデバイス10に提供する。
【0026】
[0039]一部の実施形態では、セキュリティアプリケーションは、DNSプロキシ56と、プロファイルビルダ57と、通信マネージャ58とを含む。コンポーネント56、57、58は、スタンドアロンで実行可能なエンティティとして実行されてもよく、または例えば動的にロードされたライブラリなど、セキュリティアプリケーション54に組み込まれてもよい。熟練者は、コンポーネント56、57、58の機能の一部がクライアントシステム10ではなくネットワークゲートウェイ12(
図1参照)に実装されてもよいことを理解するであろう。
【0027】
[0040]一部の実施形態では、DNSプロキシ54がクライアントデバイス10に入力および/またはクライアントデバイス10から出力されるDNSメッセージをインターセプトして、そのフローおよび/または内容を修正するという意味で、DNSプロキシ56は、クライアントデバイス10とDNSサーバ14との間で仲介役として構成される。一部の実施形態は、DNSプロキシ56を介してアウトバウンドトラフィックを特定のIPアドレスに選択的にルーティングするようにOS50を構成する。そのような機能は、例えばスプリットトンネルVPNを使用して実装されてもよい。そのような一例では、セキュリティアプリケーション54は、DNSサーバ14のIPアドレスをOS50に登録し、それによって、サーバ14を、それぞれのクライアントシステムのためのDNSのプロバイダとして宣言する。アプリケーション54は、クライアントシステム10のVPNインターフェースをさらに構成してもよく、それによってそれぞれのIPアドレスへの全トラフィックがDNSプロキシ56を通る。
【0028】
[0041]
図7は、本発明の一部の実施形態による、DNSプロキシ56によって実行されるステップの例示のシーケンスを示す。ここで説明される例示のアルゴリズムは、ネットワークアクセス要求の選択的処理を可能にし、ここで選択は、単一のDNS要求の粒度で実行される。
【0029】
[0042]ステップ202、204のシーケンスは、インバウンドおよびアウトバウンドのDNSメッセージをインターセプトする。ステップ206で、DNSプロキシは、インターセプトされたメッセージのタイプを判定する。メッセージがDNSクエリ(例えば、クライアントアプリケーション52による特定のドメインネームにアクセスする要求)である場合、ステップ208、210のシーケンスで、DNSプロキシ56はそれぞれのDNSクエリをそれぞれのクライアントデバイスのクライアントIDでタグ付けして、タグ付きDNSクエリ26を作成し、クエリ26をDNSサーバ14に送信する。
【0030】
[0043]インターセプトされたDNSメッセージがリプライである場合、ステップ220はメッセージを構文解析して、フラグ付きであるか否か、すなわちサービスアクティブ化フラグを含むか、セキュリティサービスがそれぞれのクライアントデバイス10のためにアクティブであることをフラグの値が示すかを判定する。「いいえ(NO)」の場合、ステップ220は、それぞれのDNSリプライを要求元のソフトウェアエンティティ(例えばクライアントアプリケーション52またはOS50)に転送する。
【0031】
[0044]一部の実施形態では、セキュリティアプリケーション54は、セキュリティ目的のために確保された所定のダミー・ネットワーク・アドレスのプールを管理する。ダミーアドレスは、ここでは、DNSプロバイダによって返された実際のネットワークアドレスの代わりとして使用される。ダミーアドレスは、実際のオンラインリソースのロケーションを示しても、示さなくてもよい。セキュリティアプリケーション54は、以下で示すように、実際のアドレスとダミーアドレスとの間のマッピングを含むアドレス関連付けテーブル(例えば、ハッシュテーブル)を管理する。一部の実施形態では、セキュリティアプリケーション54は、ダミーIPアドレスを、クライアントシステム10のVPNインターフェースにさらに登録し、それによってそのようなダミーアドレスとの全トラフィックがセキュリティアプリケーション54を通る。これによって、通信マネージャ58は、そのようなトラフィックに対してセキュリティ動作を実行することができるようになり、例えば、以下で詳述するように、そのようなトラフィックをリダイレクトまたはイントロスペクトできるようになる。個々のダミーアドレスは、ペアレンタルコントロール、トラフィックサンプリング、アクセスコントロールなどの個々のサービスのために使用されてもよい。
【0032】
[0045]インターセプトされたDNSメッセージがフラグ付きリプライで、セキュリティサービスがアクティブであることをフラグの値が示す場合、ステップ224において、利用可能なダミーアドレスがプールから選択される。一部の実施形態は、例えば、様々な値が様々なサービスのアクティブ化を示す場合に、サービスアクティブ化フラグ27の値にさらに従ってダミーアドレスを選択する。次に、DNSプロキシ56は、それぞれのダミーアドレスと、DNSリプライに含まれた実際のネットワークアドレスとの間で関連付けを生成してもよい(例えば、ハッシュテーブルのエントリがダミーアドレスを実際のアドレスにマッピングする、またはその逆を行う)。さらなるステップ228は、実際のネットワークアドレスを選択されたダミーアドレスと置き換えるために、フラグ付きDNSリプライを編集してもよい。ステップ228において、一部の実施形態は、標準的なDNSリプライに見えるように、それぞれのDNSメッセージからサービスアクティブ化フラグをさらに除去する。そのような難読化戦略は、クライアントデバイス10で実行されている潜在的なマルウェアからセキュリティソフトウェアの動作を隠す上で役立つ場合がある。さらなるステップ230は、要求元のソフトウェアエンティティ(例えば、クライアントアプリケーション52またはOS50)に、修正DNSリプライを送信する。
【0033】
[0046]一部の実施形態では、通信マネージャ58は、クライアントデバイス10とコンテンツサーバ18との間の電子通信の少なくとも一部をインターセプトして、処理する。上述したように、一部の実施形態は、IPアドレスの所定のセットから来る通信および/またはそこに入る通信をインターセプトするようにセキュリティアプリケーション54を構成する。
図8は、出ていく通信、例えばコンテンツサーバ18へのハイパーテキスト転送プロトコル(HTTP)要求を処理するように、通信マネージャ58によって実行されるステップの例示のシーケンスを示す。そのような通信が検出されると(ステップ242、244)、ステップ246は、それぞれの通信の宛先IPアドレスが、セキュリティアプリケーション54によって管理されるダミーIPアドレスのリストのいずれかと一致するかを判定する。「いいえ」の場合、通信マネージャ58は、その意図された受信先への伝送のために、その通信をクライアントシステム10の通信インターフェースに転送してもよい。
【0034】
[0047]「はい(YES)」の場合、それぞれの通信がセキュリティ処理のために選択されたことを示し、ステップ248は、それぞれの通信に従っていくつかのセキュリティ動作を実行する。例示のセキュリティ動作は、例えば、通信のためのそれぞれのダミーアドレスと関連付けられた実際の宛先IPアドレス、通信ポート、ペイロードサイズ、タイムスタンプを含むメタデータのセットを決定することを含む。別のセキュリティ動作は、それぞれの通信のペイロードのコピーを作成することを含んでもよい。さらに別の例示のセキュリティ動作は、それぞれのペイロードが符号化されているか否か、またはそれぞれのペイロードが特定のデータタイプ(例えば、画像、実行可能コードなど)を含むかを判定するために、通信のペイロードを調べることを含む。さらに別の例では、ステップ248は、悪意のあるコードを探すために、それぞれの通信のペイロードをスキャンすることを含む。一部の実施形態では、ステップ248は、それぞれの通信に関して抽出された情報/それぞれの通信から抽出された情報を、セキュリティサーバ16へのオフライン伝送のためのログまたはキューに配置することをさらに含む。一部の実施形態は、ダミーアドレスに従ってセキュリティ動作のタイプを判定する。例えば、あるダミーアドレスはペアレンタルコントロールを示す場合があり、別のダミーアドレスがマルウェアスキャニングを示す場合がある。
【0035】
[0048]さらなるステップ252では、通信マネージャ58は、それぞれの通信によって示されるダミーアドレスに対応する実際のIPアドレスを判定するためにアドレス関連付けテーブルを調べて、ダミーアドレスを実際のIPアドレスと置き換えるようにそれぞれの通信を編集してもよい。一部の実施形態では、ステップ252は、さらに、元の通信を再パッケージングし、それを、セキュリティサーバ16への仮想プライベート・ネットワーク・トンネルを介して再ルーティングしてもよい(
図5-B参照)。ステップ254は、その後、クライアントデバイス10の通信インターフェースへその通信を転送してもよい。
【0036】
[0049]
図9は、入ってくる通信を処理しながら、通信マネージャ58によって実行されるステップの例示のシーケンスを示す図である。そのような通信が受信されると(ステップ262、264)、ステップ266はアドレス関連付けテーブルを調べて、その通信の送信元IPアドレスがダミーアドレスと一致するかを判定する。「いいえ」の場合、通信マネージャ58は、その入ってくる通信を意図された受信先(例えばアプリケーション52)に転送してもよい。
【0037】
[0050]「はい」の場合、それぞれの通信がセキュリティ処理のために選択されたことを示し、ステップ268は、その入ってくる通信に従ってセキュリティ動作のセットを実行する。例示のセキュリティ動作は、特に、通信メタデータ(例えば送信元IPアドレス、ペイロードサイズ、タイムスタンプなど)のセットを決定すること、それぞれの通信のペイロードをコピーすること、特徴(例えば、それぞれのペイロードが暗号化されているか、それぞれのペイロードが実行可能コードを含むか、など)のセットを判定するためにペイロードを調べること、およびマルウェアを見つけるためにそれぞれのペイロードをスキャンすることを含む。一部の実施形態は、セキュリティサーバ16へそのような情報をさらに送信してもよい。
【0038】
[0051]ステップ272では、通信マネージャ58は、その後、送信元IPアドレスを、関連付けられたダミーIPアドレスと置き換えるために、入ってくる通信を編集してもよい。さらなるステップ274は、その後、編集された通信を意図された受信先(例えばクライアントアプリケーション52)へ転送してもよい。
【0039】
[0052]一部の実施形態では、プロファイルビルダ57(
図6)は、クライアントデバイス10のハードウェアおよび/またはソフトウェア構成の様々な特徴を判定し、プロファイルインジケータ29の形でそのようなデータをセキュリティサーバ16(
図2-B)に送信するように構成される。例示のハードウェアの特徴は、例えば、それぞれのクライアントデバイスのデバイスタイプ(例えば、スマートフォン、PC、タブレットコンピュータ、サーモスタット)、識別の特徴(例えばMACアドレス、IMEIなど)、様々なコンポーネントのハードウェアの仕様(例えば、製造者、型)、それぞれのクライアントデバイス10が特定のハードウェアコンポーネント(例えばカメラ、マイク、指紋読取装置、衛星航法システム(GPS)センサなど)を有するかのインジケータを含んでもよい。他の例示のハードウェアの特徴は、現在使用されているリソース量(例えばCPUスロットル、RAMおよびディスク使用量、アクティブスクリーン時間)を含む。例示のソフトウェアの特徴は、特に、OS50のタイプおよびバージョン、現在インストールされているソフトウェアアプリケーションのリスト、および各アプリケーションがそれぞれのデバイス上でどの程度使用されているかを示す統計データを含む。プロファイルインジケータ29は、クライアントデバイスの現在の地理的ロケーション(例えば、国、地理位置情報座標など)のインジケータをさらに含んでもよい。プロファイルインジケータ29の受信に応答して、セキュリティサーバ16は、そのような情報をクライアント・プロファイル・データベース19に格納してもよい。一部の実施形態では、クライアントプロファイル情報は、後述するようなフォレンジックデータ採取などのセキュリティサービスのために、複数のクライアントデバイスからクライアントデバイスを選択するために使用される。例えば、そのようなプロファイル情報は、どのデバイスが悪意のあるソフトウェアに感染しているかもしれないかに関する手がかりを提供する場合がある。
【0040】
[0053]
図10は、本発明の一部の実施形態による、DNSサーバ14によって実行されるステップの例示のシーケンスを示す図である。ステップ282、284のシーケンスは、DNSクエリをリッスンする。一部の実施形態では、そのようなクエリは、クライアント識別子でタグ付けされる(
図7に関連した上記説明参照)。クエリが受信されると、ステップ286は、クライアントID25(例えば
図3参照)に従ってそれぞれのクエリの送信元であるクライアントデバイスを特定する。さらなるステップ288では、DNSサーバ14は、プロファイルデータベース19のそれぞれのクライアントデバイスのクライアントプロファイルを調べてもよい。
【0041】
[0054]ステップ290は、サービスアクティブ化条件が現在のDNSクエリおよびそれぞれのクライアントデバイスに対して満たされるかをさらに判定してもよい。換言すれば、ステップ290では、サーバ14は、いくつかのクライアントおよび/またはいくつかのドメインネームに対してセキュリティサービスを選択的にアクティブ化してもよい。クライアント選択は、データベース19から検索されたクライアント・プロファイル・データに従って進行してもよい。DNSプロキシ56がタグ付きDNSクエリ26で符号化されたクライアント・プロファイル・データを送信する代替の実施形態では、サーバ14は、そのようなデータに従って、それぞれのクライアントデバイスを選択してもよい。さらに別の実施形態では、ステップ288、290は、セキュリティサーバ16によって実行され、その後、セキュリティサーバ16が、選択されたクライアントデバイスのリストをDNSサーバ14に送信する。
【0042】
[0055]例示のフォレンジックデータ採取の実施形態では、DNSサーバ14は、特定のデバイスタイプ(例えば、スマートフォン)と一致するクライアント、特定の地域または国(例えばドイツ)からのクライアント、特定のオペレーティングシステムおよび/またはバージョン(例えば、Android、iOS10)を動作しているクライアントなどを選択してもよい。別の例示のクライアント選択基準は、それぞれのクライアントデバイスが特定のアプリケーション、例えば未知または不審なソフトウェアなどを動作しているかを含む。そのような一例では、特定のドメインネームと関連付けられ、特定の監視されたアプリケーションを動作しているデバイスから受信されたIPアドレスにアクセスするためのHTTP要求は、コピーされ、またはVPNを介してセキュリティサーバ16へ迂回される。
【0043】
[0056]その他のクライアント選択基準は、クライアントデバイスおよび/またはDNSクエリの数を含んでもよい。例えば、DNSサーバ14は、各時間間隔中に所定数のクライアントデバイス(例えば1秒に100未満の個別クライアント)を選択してもよく、または所定数のDNSクエリ(例えば、同一のクライアントから50未満の個別DNSクエリ)を選択してもよい。クライアントデバイスが、サービスアクティブ化フラグの値に従ってVPNトンネルを介してセキュリティサーバ16へ特定の通信を選択的に再ルーティングする場合がある、
図5-Bに示すような実施形態では、別の例示の選択基準は、セキュリティサーバ16上で動作しているVPNサービスの現在の負荷を含む。例示のペアレンタルコントロールの実施形態では、別の選択基準は、それぞれのクライアントデバイスの現在のユーザを含んでもよい(例えば、子供がデバイスを使用している時のみ選択的にペアレンタル・コントロール・ルールをアクティブ化するなど)。個々の選択基準は、複数の条件(例えば、ベルギーおよびオランダの個別のスマートフォンから受信した100のDNS要求など)を伴う複合的な基準となるように組み合わされてもよい。
【0044】
[0057]現在のDNSクエリを発行したクライアントデバイスに対して、選択条件が満たされた場合、ステップ294は、セキュリティサービスがアクティブであることを示すためにサービスアクティブ化フラグ27(例えば
図4参照)を設定することによってフラグ付きDNSリプライを作成してもよい。一部の実施形態では、フラグ27をアクティブに設定することによって、フォレンジックデータ収集、ペアレンタルコントロールなどの特定のセキュリティサービスのために、それぞれのクライアントデバイスが効果的に選択される。そのような選択は、ここではDNSクエリ毎にアクティブ化され、同一のクライアントデバイスから受信された後続のクエリのためにOFFとされることが可能である。
【0045】
[0058]それぞれのクライアントデバイスおよび現在のDNSクエリに対して選択条件が満たされない場合、ステップ296は、セキュリティサービスが非アクティブであることを示すためにアクティブ化フラグ27を設定することによってフラグ付きDNSリプライを作成してもよい。代替の実施形態では、ステップ296は、サービスアクティブ化フラグ27全体が欠落している標準的なDNSリプライを作成してもよい。さらなるステップ298は、ステップ294または296のいずれかで作成されたDNSリプライを要求元のクライアントデバイスに送信してもよい。
【0046】
[0059]上記の説明は、本発明の一部の実施形態による、様々な方法を実行する例示のコンピュータプログラムを示すものである。そのようなコンピュータプログラムは、通常、汎用ハードウェアプロセッサによって実行されるが、熟練者は、ここで開示される方法およびアルゴリズムが、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)などの専用ハードウェアコンポーネントを使用して実装されてもよいことを理解するであろう。
図11は、ここで説明される方法およびアルゴリズムを実行するようにプログラム可能なコンピュータシステムの例示のハードウェア構成を示す図である。
図11は、例えば、特に、クライアントデバイス10a~10fのいずれか、DNSサーバ14、およびセキュリティサーバ16を表す場合がある汎用コンピュータシステムを示す。熟練者は、いくつかのクライアントシステム(例えば、携帯電話、スマートウォッチ)のハードウェア構成が
図11に示すものと何らかで異なる場合があることを理解するであろう。
【0047】
[0060]図示されたコンピュータシステムは、ハードウェアプロセッサ32と、メモリ部34とを含む物理的デバイスのセットを含む。プロセッサ32は、信号および/またはデータのセットを使用して計算および/または論理動作を実行するように構成された物理的デバイス(例えば、半導体基板上に形成されたマイクロプロセッサ、マルチコア集積回路など)を含む。一部の実施形態では、そのような動作は、プロセッサ命令(例えば、機械語または他の種類の符号化)のシーケンスの形態でプロセッサ32に提供される。メモリ部34は、プロセッサ32によってアクセスまたは作成される命令および/またはデータを格納する揮発性コンピュータ可読媒体(例えば、DRAM、SRAM)を含んでもよい。
【0048】
[0061]入力装置36は、特に、コンピュータキーボード、マウス、およびマイクを含んでもよく、ユーザが、それぞれのコンピュータシステムへデータおよび/または命令を取り入れることができるそれぞれのハードウェアインターフェースおよび/またはアダプタを含んでもよい。出力装置38は、特に、モニタなどの表示装置と、スピーカーとを含んでもよいとともに、図示されたコンピュータシステムがユーザに対してデータを伝送できるようにする、グラフィックカードなどのハードウェアインターフェース/アダプタを含んでもよい。一部の実施形態では、入力装置36と出力装置38とは、タッチスクリーンデバイスの場合のように、ハードウェアの共通部分を共有する。ストレージ装置42は、ソフトウェア命令および/またはデータの不揮発性のストレージ、読出しおよび書込みを可能とするコンピュータ可読媒体を含む。例示のストレージ装置42は、磁気および光学ディスク、ならびにフラッシュメモリ装置を含むとともに、CDおよび/またはDVDディスクなどの取り外し可能な媒体およびドライブを含む。ネットワークアダプタ44のセットは、関連付けられた通信インターフェースとともに、例示のコンピュータシステムが、コンピュータネットワークおよび/または他のデバイス/コンピュータシステムに接続できるようにする。コントローラハブ40は、複数のシステム、周辺機器、および/またはチップセットバス、および/またはプロセッサ32と装置34、36、38、42、および44との間の通信を可能にするすべての他のサーキットリーを表す。例えば、コントローラハブ40は、特に、メモリコントローラ、入出力(I/O)コントローラ、および割込みコントローラを含んでもよい。別の例では、コントローラハブ40は、メモリ34へのノースブリッジ接続プロセッサ32および/または装置36、38、42および44へのサウスブリッジ接続プロセッサ32を備えてもよい。
【0049】
[0062]上述した例示のシステムおよび方法は、パーソナルコンピュータおよびスマートフォンとともに、特に、テレビ、サーモスタット、冷蔵庫およびウェアラブルなどのモノのインターネット(IoT)デバイスなどの異種クライアント上でコンピュータセキュリティ動作を選択的に実行可能とする。ここでの選択可能性は、複数のクライアントデバイスに対してそれぞれのセキュリティ手順を無差別に実行するのとは逆に、多数のクライアントデバイスの中からあるデバイスを正確に対象とし、それぞれのデバイスに対して何らかのセキュリティ手順を実行する機能を示す。一部の実施形態では、対象デバイスの選択は、多数のクライアントデバイスに通信可能に結合されたリモートのサーバ・コンピュータ・システム上に一元化される。
【0050】
[0063]一部の実施形態では、セキュリティアプリケーションは各クライアントデバイス上で実行され、それぞれのクライアントデバイスとリモートのDNSサーバとの間で交換されるドメイン・ネーム・サービス(DNS)メッセージをインターセプトして処理するDNSプロキシを備える。明確性と簡略化のため、上記の開示では、「ドメイン・ネーム・サービス」という用語は、インターネット通信で現在使用されているような従来のDNSを示すために使用される。ただし、熟練者は、ここで説明される方法およびシステムが、ドメインネームをネットワークアドレスにマッピング、またはその逆を行うためのあらゆる他のフォーマットおよびプロトコルに容易に適応されてもよいことを理解するであろう。
【0051】
[0064]一部の実施形態では、DNSプロキシコンポーネントは、それぞれのクライアントデバイスの識別子を用いて、DNSサーバを宛先とする出DNSクエリにタグ付けする。それに応答して、DNSサーバは、サービスアクティブ化フラグを含むフラグ付きDNSリプライを用いて応答してもよい。一部の実施形態では、DNSサーバは、DNSリプライをそれぞれのクライアントに発行する際に、サービスアクティブ化フラグを所定の値に設定することによって、セキュリティ手順のための特定のクライアントデバイスを選択する。一方、クライアント上で実行されているセキュリティアプリケーションは、それぞれのセキュリティ手順を実行するためのトリガとして、サービスアクティブ化フラグの何らかの値を解釈してもよい。フラグの個々の値は、個々のセキュリティ手順をトリガしてもよい。代替の実施形態では、DNSリプライ中のサービスアクティブ化フラグの存在がセキュリティ手順をトリガしてもよく、そのようなフラグの不在が、それぞれの手順を実行しないことをセキュリティアプリケーションに示してもよい。
【0052】
[0065]上記を鑑みて、上述した例示のシステムおよび方法は、個々のDNSメッセージのレベルでのクライアント選択可能性を実現する。換言すれば、セキュリティ手順は、それぞれのクライアントデバイスとDNSサーバとの間の任意の個別DNS交換によってON/OFFが切り換えられてもよい。一部の従来のコンピュータ・セキュリティ・アプリケーションにおいて、クライアントは、個々のクライアント・サブスクリプションのオプションに従って、またはソフトウェア構成パラメータに従って、特定の手順のために選択される。例えば、あるクライアントはペアレンタルコントロールに契約する場合があり、他は契約しない場合がある。同様に、セキュリティソフトウェアは、あるクライアントのトラフィックをVPNトンネルを介して迂回させてもよく、他のクライアントに関しては迂回させなくてもよい。ただし、そのようなクライアント選択可能性は、通常、事前に設定され、時間とともに変化するものではなく、例えば、特定のクライアントから来る全アクセス要求は、通常、同一のルール/手順に従って処理される。そのような従来のシステムとは対照的に、一部の実施形態は、より柔軟なクライアント選択がDNSメッセージ毎に行われることを可能とする。これによって、例えば、スケジュールに従って、現在のサーバ負荷に従って、クライアントがアクセスを試行しているドメインネームに従って、クライアントの現在の地理的ロケーション(例えば地理上のフェンス)に従ってなどで、特定の手順のためのクライアントを選択できる。
【0053】
[0066]本発明の一部の実施形態による、選択的にアクティブ化された例示のセキュリティ手順は、特に、クライアントからのフォレンジック情報の選択的採取、セキュリティサーバを介したトラフィックの選択的ルーティング、ペアレンタルコントロール(例えば、特定のオンラインコンテンツへの特定のクライアント/ユーザのアクセスを選択的に監視および/または規制)、アプリケーションコントロールまたはアクセスコントロール(例えば、Facebook(登録商標)およびオンラインメッセージングなどの選択されたアプリケーションおよび/または通信プロトコルのクライアントの使用を選択的に監視および/または規制)を含む。
【0054】
[0067]本発明の一部の実施形態によって可能とされた、または容易となったアプリケーションの重要クラスは、クライアントからのコンピュータ・フォレンジック・データの選択的採取に依存する。そのような採取は、例えば、マルウェアなどの出現しつつあるコンピュータセキュリティ脅威の適時の発見のために有効な場合がある。新しい悪意のあるソフトウェアは常に出現し、その振る舞いに関する情報がない場合、そのようなソフトウェアは従来のセキュリティ対策を回避して、急激に広がる場合がある。IoTデバイスは、そのような感染の影響を特に受けやすい。したがって、発生しつつある感染に関して可能な限り多くの情報を集めることが重要であり、既に感染しているデバイスからそのような情報を選択的に集めることが理想的である。あるマルウェアは、特定の種類のデバイス(例えば携帯電話)および/または特定の種類のオペレーティングシステム(例えばAndroid(登録商標))を動作しているデバイスを選択的に感染させる。一部の実施形態は、そのようなクライアントの選択的対象化を可能とし、したがってセキュリティ目的のための情報の効率的収集を可能とする。そのような一例では、DNSサーバは、特定のマルウェアの可能性が高い対象のプロファイル(例えば特定の国製のスマートフォン)に適合するクライアントデバイスを選択してもよい。それに応答して、選択されたクライアントデバイス上で実行されているセキュリティソフトウェアは、それぞれのクライアントデバイスに出入りするデータトラフィックのスナップショットを取得してもよい。データ採取のDNSメッセージ毎の選択的アクティブ化を可能とすることによって、一部の実施形態は、特定のインターネットドメインまたは関心ネットワークアドレス(例えば不審な指令管制サーバ)に出入りするデータトラフィックを収集することを可能とする。
【0055】
[0068]データ採取の代替の実施形態は、選択されたクライアントデバイスと不審なインターネットドメインまたネットワークアドレスとの間の通信をセキュリティサーバへリダイレクトしてもよい。そのようなリダイレクトは、例えばVPNトンネルを使用して可能となってもよい。その後、セキュリティサーバは、悪意の兆候を探してリダイレクトされたトラフィックをイントロスペクトしてもよい。ネットワークトラフィックを再ルーティングおよびイントロスペクトすることは、コンピュータセキュリティの分野では知られている。ただし、通常の構成は選択されたクライアントのすべてのトラフィックを再ルーティングし、それによってオンライン脅威からの永久的な保護を確実とする。数千の保護されたクライアントから少数のVPNサーバへのトラフィックのネットワークのそのような大量再ルーティングは、機器費用および計算負荷に関して比較的高額となり、クライアント側におけるユーザエクスペリエンスに悪影響を与える場合がある。そのような従来のシステムとは対照的に、本発明の一部の実施形態では、各クライアントデバイスのトラフィックがVPNを介して選択的に再ルーティングされてもよい。例えば、データ採取の実施形態では、関心と考えられる特定のドメインとのトラフィックのみがVPNサーバにリダイレクトされてもよい。さらに、ここで説明されるシステムおよび方法は、特定のプロファイルに適応する複数のクライアントデバイス(例えばiOS(登録商標)を動作しているスマートフォンおよびタブレットコンピュータ)からのネットワークトラフィックの無作為サンプリングを可能とする。そのような無作為サンプリングは、特定のクライアントデバイスがデータ採取手順によって偏って影響されないことを確実とする場合があり、ユーザエクスペリエンスに対する全体的影響が従来のシステムよりも大幅に小さくなる。
【0056】
[0069]一部の実施形態は、他のフォレンジックデータの収集に対するトリガとして、フラグ付きDNSリプライを使用してもよい。そのような一例では、フラグ付きDNSリプライに応答して、セキュリティソフトウェアは、それぞれのクライアントデバイスの現在の状態のパラメータを決定してもよい(例えば、様々なOS変数および/またはレジストリキーの現在の値の取得、メモリの特定部分のスナップショットの取得など)。そのようなデータは、セキュリティサーバに送信されてもよく、ネットワーク・トラフィック・データとともにフォレンジック検査で使用されてもよい。
【0057】
[0070]ここで説明されるシステムおよび方法の例示のユースケースのシナリオは、スパイウェアを未然に検出することを含む。Android(登録商標)オペレーティングシステムを動作しているデバイスの新しいマルウェアによる感染の発生が西欧で検出された。悪意あるコードがGoogle Play(登録商標)Storeを介して運ばれ、純正品に類似した写真整理ツールとして梱包されている。しかしながら、このアプリケーションの隠れた意図は、個人的なユーザデータを収集して、それをサーバにサブミットすることである。これは技術的にスパイウェアと見なされる。
ステージI-悪意の疑いをトリガする
[0071]本発明の一部の実施形態により保護されたクライアントデバイスは、DNSサーバ14および/またはセキュリティサーバ16(
図2-B参照)に様々なDNSクエリおよびクライアントプロファイル情報をサブミットする。クライアント・プロファイル・インジケータ29は、そのデバイスに現在インストールされているアプリケーションのリストを含んでもよい。そのような情報に基づいて、未知のアプリケーションのインストールが検出される。さらに、このクライアントデバイスから受信されたDNSクエリのレコードが、ドメインネームupload_application_name.serviceprovider.com.への頻繁なアクセス要求を明らかにする。セキュリティサーバ16は、DNSログに対して一連のマルウェア特定ヒューリスティックを実行し、serviceprovider.comのドメインがサービス(PAS)プロバイダとしてプラットフォームによって登録されており、それぞれのドメインに対するDNSクエリが比較的規則的な時間間隔で受信されることを明らかにする。これらの2つの事実は悪意の疑いをトリガし、セキュリティサーバ16は、それぞれのクライアントデバイスと不審なドメインとの間で交換されるネットワークトラフィックのサンプリングおよび/またはイントロスペクトを行うことを決定する。
ステージII-トラフィック分析
[0072]代表的なトラフィックサンプルを収集するために、セキュリティサーバ16は、プロファイルデータベース19に格納されたデバイスプロファイルに従って、この脅威を表すと考えられるクライアントデバイスの選択されたサブセットを特定する。例えば、候補デバイスの現在のロケーション(例えば西欧諸国)とオペレーティングシステム(この場合、Android(登録商標)の特定のバージョン)に従って選択が行われてもよい。セキュリティサーバ16は、選択デバイスのリストをDNSサーバ14に送信してもよい。それに応答して、それぞれのデバイスのフォレンジックデータ収集サービスのアクティブ化を示すために、DNSサーバ14は、serviceprovider.comのドメインを含み選択クライアントから受信されたDNSクエリに対する少なくともいくつかのDNSリプライにフラグを付けてもよい。一部の実施形態では、サービスアクティブ化フラグ27の値は、serviceprovider.comへのトラフィックをVPNを介してセキュリティサーバ16へ迂回させるように、受信クライアントデバイス上のセキュリティソフトウェアに指示する。DNSサーバ14は、各選択クライアントデバイスを常時監視して、例えばそれぞれのクライアントデバイスから受信されたserviceprovider.comのDNSクエリの数を記録し、十分なトラフィックサンプルが収集された時にそれぞれのクライアントデバイスからのフォレンジックデータ収集を停止する。データ収集を停止するために、DNSサーバ14は、サービスアクティブ化フラグ27をリセットしてデータ収集サービスが非アクティブであることを示してもよく、またはサービスアクティブ化フラグ27全体が欠落した標準的なDNSリプライを用いて応答してもよい。
【0058】
[0073]一方、フォレンジックデータ収集がアクティブであることを示すフラグ付きDNSリプライの受信に応答して、クライアントデバイス上で実行されているセキュリティソフトウェアは、serviceprovider.comに対応する実際のIPアドレスをダミーIPアドレスに置き換える。その後、不審なマルウェアがserviceprovider.comとの通信を試行した場合、ダミーIPへの接続要求を送信する。そのような要求は、クライアントデバイスのVPNインターフェースを介してセキュリティサーバ16へ再ルーティングされてもよい。再ルーティングは、通常、ダミーIPアドレスを、対応する実際の宛先IPアドレスと置き換えることと、VPNプロトコルに従ってネットワークトラフィックをリパックすることとを含む。セキュリティアプリケーション54の一部の実施形態は、迂回されたトラフィックに対して何らかのメタデータ(例えば、宛先ポート、宛先IPアドレス、ネットワークプロトコル、タイムスタンプなど)をさらに添付する。
【0059】
[0074]例示のトラフィック分析シナリオでは、セキュリティサーバ16のVPNコンポーネントは、各受信ネットワークパケットに添付されたメタデータのログ記録を行い、将来的な検査のためにディスクにパケットペイロードのコピーを格納する。パケット自体は、その後、真の宛先IPアドレスに転送される。それぞれのIPアドレスからのあらゆる応答パケットは、それぞれのクライアントデバイスにリダイレクトされて返される。一部の実施形態では、セキュリティサーバ16のVPNコンポーネントは、それぞれのクライアントデバイスを宛先とした入トラフィックのログ記録も行ってもよく、それによって不審なマルウェアとそのリモート・サービス・プロバイダとの間のやり取り全体をキャプチャする。
【0060】
[0075]ここで説明されるシステムおよび方法の一部を使用して、コンピュータセキュリティ分析者は、以下の種類の情報を収集できた。
・新規の、悪意の可能性があるアプリケーションの発生を特定するための遠隔計測結果、
・不審なドメインネームによって特定された不審なウェブサービス、および
・新規の未知のアプリケーションと不審なドメインネームとの間で交換されたデータのサンプル
[0076]このデータを使用して、分析チームは、不審なドメインのウェブサービスが悪意のある指令管制型通信のために使用されていることを判定するヒューリスティックを適用できた。例示の悪意の判定は、パケット交換のタイミングと周期性、通信が暗号化されているという事実、暗号化キーの所有者の識別情報、通信ペイロードの平均サイズ(比較的小さなパケット)に従ってなされた。ヒューリスティックの別のセットは、交換の非対称性(クライアントデバイスが発信元のパケットのペイロードは、通常、入パケットのペイロードよりもかなり大きい)に従って、さらにそのような非対称のトラフィックがいくつかの感染したクライアント上でのみ見られ、それぞれのクライアントが指令管制サーバによって関心があるとして何らかで選択されたことを示唆するという事実に従って、不審なドメインを悪意のあるアップローダ(ユーザデータのコレクタ)として特定した。
【0061】
[0077]DNSメッセージを使用して特定のサービスのために個別のクライアントを選択的に対象とするいくつかのシステムおよび方法は、当業界では知られる。しかしながら、従来のシステムおよび方法では、通常、それぞれのサービスを実行するエンティティがDNSサーバ自体である。ペアレンタルコントロールの例では、クライアント識別子でタグ付けされたDNSクエリの受信に応答して、DNSサーバは、クライアントの識別情報および/または要求されたドメインネームに従って、IPアドレスを返すか否かを選択的に選択してもよい。負荷バランシングの例では、DNSサーバは、要求元のクライアントの現在の地理的位置に従って、複数のIPアドレスのうちから選択してもよい。
【0062】
[0078]そのような従来のシステムとは対照的に、本発明の一部の実施形態では、セキュリティタスクは、DNSサーバ上で実行されているソフトウェアとクライアントデバイス上で実行されているソフトウェアとの間で分割される。例えば、特定のサービスのためにクライアントを選択するタスクは、フラグ付きDNSリプライを用いて要求元クライアントデバイスと通信するDNSサーバによって実行される。一方で、クライアント上で実行されているセキュリティソフトウェアは、それぞれのサービス(例えば、フォレンジックデータ収集、セキュリティサーバへのトラフィックのリダイレクト、ペアレンタルコントロールなど)を実際に実行する。そのようなタスク分割には多くの利点がある。一方では、サーバにおいて意思決定処理を一元化することによって、セキュリティ情報と、発生しつつある脅威への最適応答速度との統合された管理が可能となる。他方で、クライアント自体でセキュリティ動作を実行することは、それぞれの動作の精度、洗練性、および柔軟性を高めることが可能となる。それによって、実質的に、あらゆる動作はクライアント上で実行可能となり、上述したようなDNSメッセージ毎の選択の利点の恩恵を受けることが可能である。例えば、クライアントのネットワークトラフィックをVPNを介してセキュリティサーバへ選択的にリダイレクトすることは、ここで説明されたシステムおよび方法を使用して実行可能である一方、DNSサーバのみでは、すなわち従来のDNSサーバ中心のセキュリティモデルを使用しては、実現できない。
【0063】
[0079]上記の説明は、DNSプロキシ56および通信マネージャ58などのセキュリティソフトウェアがエンド・クライアント・デバイス(例えば、スマートフォン、PC)上で実行される実施形態に基本的に焦点を当てたものであるが、代替の実施形態では、DNSプロキシ56および/またはマネージャ58の機能の少なくとも一部は、複数のクライアントデバイスを相互接続するローカルネットワークへのゲートウェイとして動作するネットワーク機器上で実装されてもよい。例えば
図1のゲートウェイ12を参照されたい。そのような構成では、ゲートウェイ12は、ローカルネットワーク13に入る、および/またはそこから出るDNSメッセージをインターセプトしてもよく、上述したようにそれらのDNSメッセージを修正してもよい。ゲートウェイ12がクライアント(例えばローカルネットワーク13のためのDHCPサーバとして動作する)に対してローカル・ネットワーク・アドレスを供給した場合、ゲートウェイ12は個々のクライアントデバイスを区別し、したがって、それぞれのクライアント識別子を用いて出DNSクエリをタグ付けできる。さらに、ゲートウェイ12は、ローカルネットワーク上のクライアントと外部IPアドレスとの間の他の電子通信(例えばHTTP要求)をインターセプトして選択的にルーティングするために良い位置に存在する。したがって、ゲートウェイ12は、例えばフォレンジックデータの選択的採取、ペアレンタル・コントロール・アクティビティの実行など、ここで示すようなセキュリティ手順を実行してもよい。
【0064】
[0080]一部の実施形態は、ハイブリッド構成を実装し、クライアントデバイス10a~10fのいくつかがセキュリティアプリケーション54のインスタンスを実行する一方で、他は実行しない。そのような一例では、ゲートウェイ12は、ローカルネットワーク13に接続された全クライアントデバイス10a~10eへのセキュリティアプリケーション54の自動的提供を試みてもよい。そのようなデバイスのいくつか、例えばサーモスタット、スマートウォッチなどは、ハードウェアリソースが限られている場合があり、したがってセキュリティアプリケーション54の完全なインスタンスを実行できない場合がある。一部の実施形態は、したがって、ゲートウェイ12上で実行されているソフトウェアを使用して、ここで説明されるようなセキュリティサービスをそのようなデバイスまで拡大してもよい。
【0065】
[0081]上述したエンド・クライアント・デバイス10a~10f上とは逆に、ゲートウェイ12上でセキュリティアプリケーション54の機能の少なくとも一部を動作させることは、多くの利点が存在する場合がある。1つの利点は、ゲートウェイ12上で実行された動作(DNS要求のタグ付け、サービスアクティブ化フラグの検出、IPアドレスの修正など)は、クライアントデバイス上で実行されているソフトウェアによって実質的に検出不可なことである。さらに、クライアントデバイス上で実行されているマルウェアは、ゲートウェイ12のアクティビティに干渉しない、または無効としない場合がある。別の利点は、ゲートウェイ12が、それ自体で、すなわちVPNサーバへそれぞれのトラフィックをリダイレクトせずに、データトラフィックを効率的に収集および/またはイントロスペクトしてもよいことである。そのような一例では、ゲートウェイ12は、トラフィックメタデータ(例えば、送信元および宛先のIPアドレス、パケットサイズ、タイムスタンプ)を決定して、そのようなメタデータを分析のためにセキュリティサーバ16へ送信してもよい。
【0066】
[0082]セキュリティアプリケーション54の少なくとも一部がゲートウェイ12上で実行されている構成のさらに別の利点は、ローカル・ネットワーク・トポロジを理解していることである。
図1の例では、DNSサーバ14は、クライアントデバイス10aおよび10bが同一のローカルネットワークに接続されていることを通常認識していないが、ゲートウェイ12は認識している。したがって、同一のドメインネームに対する複数のDNSクエリをインターセプトした時、ゲートウェイ12は、それぞれのDNSクエリが同一のネットワークのメンバから来ているか否かをサーバ14に知らせてもよい。そのような情報は、例えば、あるネットワークノードから他のネットワークノードへマルウェアが広がる状況において、コンピュータセキュリティに関係している可能性がある。別の例示の状況において、ホームネットワークに接続された個々のデバイスタイプ(スマートフォン、PC、テレビ)から来た、同一のドメインネームに対する複数のDNSクエリは、Spotify(登録商標)またはNetflix(登録商標)などのオンラインの娯楽サービスの合法的な使用を示してもよい。さらに別の例では、同一のOS(例えば、Windows(登録商標))を動作しているデバイスから来た、同一のドメインネームに対する複数のDNSクエリは、企業ネットワーク上で複数のデバイスに対するソフトウェア更新を分散するための合法的な試行を示してもよい。
【0067】
[0083]しかしながら、個々のクライアントデバイスとは逆に、ゲートウェイ12上でセキュリティアプリケーション54の少なくとも一部を動作させることは、欠点もある。例えば、自動デバイス発見(すなわち、ゲートウェイ12上で実行されているソフトウェアを使用して、各クライアント10a~10fのデバイスタイプを判定する)は、限定され、計算コストがかかる。何らかのタイプを示すクライアント情報がMACアドレスなどの形態で利用可能な場合があるが、リソース使用量およびインストールされているソフトウェアなどの他のデータに対して、ゲートウェイ12が完全にアクセス可能でない場合がある。
【0068】
[0084]上記の実施形態が本発明の範囲から逸脱せずに多くの方法で修正されてもよいことは当業者にとって明らかであろう。したがって、本発明の範囲は、以下の特許請求の範囲およびそれらの法的な同等物によって決定されるべきである。