(57)【要約】  説明されるシステムおよび方法は、コンピュータシステムを、ウイルス、ワーム、およびスパイウェアなどのマルウェアから保護することを可能にする。評判マネージャが、アンチマルウェアエンジンと同時にコンピュータシステム上で実行する。評判マネージャは、動的評判インジケータを、個々の構成要素の一意の組合せと見なされる各実行可能エンティティ（たとえば、主実行ファイルおよびロードされたライブラリのセット）に関連付ける。評判インジケータは、それぞれのエンティティが悪意のあるものである確率を示す。無害のエンティティの評判は、時間的に増加し得る。エンティティが、悪意のあるアクティビティを示し得るいくつかのアクションを実施するとき、それぞれのエンティティの評判は低下し得る。アンチマルウェアエンジンは、各ターゲットエンティティを悪意について走査および／または監視するために、エンティティ固有のプロトコルを使用し、プロトコルは、エンティティの評判に応じて変わる。悪意のないものであると信用されたエンティティは、未知のエンティティまたは信用できないエンティティよりも緩やかなプロトコルを使用して分析され得る。
2019533258.tif 000002
【特許請求の範囲】
【請求項１】
ターゲットエンティティと、評判マネージャと、アンチマルウェアエンジンとを実行するように構成された少なくとも１つのハードウェアプロセッサを備えるクライアントシステムであって、
前記評判マネージャは、
評判サーバから、ターゲットエンティティの第１の評判インジケータであって、前記ターゲットエンティティが悪意のあるものである確率を示す前記第１の評判インジケータを受信したことに応答して、前記評判インジケータを前記アンチマルウェアエンジンに送信することと、
前記第１の評判インジケータを受信したことに応答して、前記ターゲットエンティティが第１の時間間隔中に所定のアクションのセットのうちのいずれかを実施したかどうかを判定することと、
前記ターゲットエンティティが前記第１の時間間隔中に所定のアクションの前記セットのうちのいずれをも実施しなかったときに、前記ターゲットエンティティの第２の評判インジケータを決定することであって、前記第２の評判インジケータは、前記ターゲットエンティティが悪意のあるものである可能性が、前記第１の評判インジケータによって示されたものよりも低いことを示す、決定することと、
前記第２の評判インジケータを決定したことに応答して、前記第２の評判インジケータを前記アンチマルウェアエンジンと前記評判サーバとに送信することと、
前記ターゲットエンティティが所定のアクションの前記セットのうちの第１のアクションを実施したときに、前記ターゲットエンティティの第３の評判インジケータを決定することであって、前記第３の評判インジケータは、前記ターゲットエンティティが悪意のあるものである可能性が、前記第１の評判インジケータによって示されたものよりも高いことを示す、決定することと、
前記第３の評判インジケータを決定したことに応答して、前記第３の評判インジケータを前記アンチマルウェアエンジンと前記評判サーバとに送信することと
を行うように構成され、
前記アンチマルウェアエンジンは、
前記第１の評判インジケータを受信したことに応答して、前記ターゲットエンティティが悪意のあるものであるかどうかを判定するために、第１のプロトコルを利用することと、
前記第２の評判インジケータを受信したことに応答して、前記ターゲットエンティティが悪意のあるものであるかどうかを判定するために、第２のプロトコルを利用することであって、前記第２のプロトコルは前記第１のプロトコルよりも計算コストが高くない、利用することと、
前記第３の評判インジケータを受信したことに応答して、前記ターゲットエンティティが悪意のあるものであるかどうかを判定するために、第３のプロトコルを利用することであって、前記第３のプロトコルは前記第１のプロトコルよりも計算コストが高い、利用することと
を行うように構成された、
クライアントシステム。
【請求項２】
請求項１に記載のクライアントシステムであって、前記評判マネージャは、
前記第２の評判インジケータまたは前記第３の評判インジケータを決定したことに応答して、前記第１の時間間隔の後の第２の時間間隔を決定することと、
前記第２の時間間隔を決定したことに応答して、前記ターゲットエンティティが前記第２の時間間隔中に所定のアクションの前記セットのうちのいずれかを実施したかどうかを判定することと、
それに応答して、前記ターゲットエンティティが前記第２の時間間隔中に所定のアクションの前記セットのうちのいずれをも実施しなかったときに、前記ターゲットエンティティの第４の評判インジケータを決定することであって、前記第４の評判インジケータは、前記ターゲットエンティティが悪意のあるものである可能性が、前記第２の評判インジケータによって示されたものよりも低いことを示す、決定することと
を行うようにさらに構成された、クライアントシステム。
【請求項３】
請求項１に記載のクライアントシステムであって、前記第２の評判インジケータは、前記ターゲットエンティティの起動から経過した時間に従って決定される、クライアントシステム。
【請求項４】
請求項１に記載のクライアントシステムであって、前記第１の時間間隔は、前記ターゲットエンティティの起動から経過した時間に従って決定される、クライアントシステム。
【請求項５】
請求項１に記載のクライアントシステムであって、前記第１の時間間隔は、前記第１の評判インジケータに従って決定される、クライアントシステム。
【請求項６】
請求項１に記載のクライアントシステムであって、前記第１の時間間隔は、前記ターゲットエンティティが、前記第１の時間間隔より前に、所定のアクションの前記セットのうちの第２のアクションを実施したかどうかに従って決定される、クライアントシステム。
【請求項７】
請求項１に記載のクライアントシステムであって、前記第２の評判インジケータを決定することは、前記ターゲットエンティティが悪意のあるものである前記確率を、前記ターゲットエンティティの起動から経過した時間に従って決定された量だけ減少させることを含む、クライアントシステム。
【請求項８】
請求項１に記載のクライアントシステムであって、前記第３の評判インジケータを決定することは、前記ターゲットエンティティが悪意のあるものである前記確率を、前記第１のアクションのタイプに従って決定された量だけ増加させることを含む、クライアントシステム。
【請求項９】
請求項１に記載のクライアントシステムであって、前記第３の評判インジケータを決定することは、前記前記ターゲットエンティティが悪意のあるものである前記確率を、前記ターゲットエンティティが前記第１のアクションより前に第２のアクションを実施したかどうかに従って決定された量だけ増加させること含む、クライアントシステム。
【請求項１０】
請求項１に記載のクライアントシステムであって、前記評判マネージャは、
前記第３の評判インジケータを決定したことに応答して、前記ターゲットエンティティが所定のアクションの前記セットのうちの第２のアクションを実施したかどうかを判定することと、
それに応答して、前記ターゲットエンティティが前記第２のアクションを実施したときに、前記ターゲットエンティティの第４の評判インジケータを決定することであって、前記第４の評判インジケータは、前記ターゲットエンティティが悪意のあるものである可能性が、前記第３の評判インジケータによって示されたものよりも高いことを示す、決定することと
を行うようにさらに構成された、クライアントシステム。
【請求項１１】
請求項１に記載のクライアントシステムであって、前記評判マネージャは、
前記第３の評判インジケータを決定したことに応答して、前記クライアントシステム上で実行している別のエンティティの第４の評判インジケータを決定することであって、前記別のエンティティは前記ターゲットエンティティの構成要素を含む、決定すること
を行うようにさらに構成された、クライアントシステム。
【請求項１２】
請求項１に記載のクライアントシステムであって、前記第１のアクションは、前記ターゲットエンティティが、前記クライアントシステム上で実行している別のエンティティにコードのセクションを注入することを含み、前記評判マネージャは、前記第３の評判インジケータを決定したことに応答して、前記クライアントシステム上で実行している前記別のエンティティの第４の評判インジケータを決定することであって、前記第４の評判インジケータは、前記第４のエンティティが悪意のあるものである可能性が、前記ターゲットエンティティと同じくらいであることを示す、決定することを行うようにさらに構成された、クライアントシステム。
【請求項１３】
複数のクライアントシステムとの評判管理トランザクションを実施するように構成された少なくとも１つのハードウェアプロセッサを備えるサーバコンピュータシステムであって、評判管理トランザクションは、
前記複数のクライアントシステムのうちのクライアントシステムから受信された要求に応答して、エンティティ評判データベースからターゲットエンティティの第１の評判インジケータを取り出すことであって、前記第１の評判インジケータは前記ターゲットエンティティが悪意のあるものである確率を示す、取り出すことと、
前記第１の評判インジケータを取り出したことに応答して、前記第１の評判インジケータを前記クライアントシステムに送信することと、
前記第１の評判インジケータを送信したことに応答して、前記クライアントシステムから前記ターゲットエンティティの第２の評判インジケータを受信することと、
前記第２の評判インジケータを受信したことに応答して、前記第１の評判インジケータと前記第２の評判インジケータとを比較することと、
それに応答して、前記第２の評判インジケータが、前記ターゲットエンティティが悪意のあるものである確率が、前記第１の評判インジケータによって示されたものよりも低いことを示すときに、前記第２の評判インジケータを、前記複数のクライアントシステムから受信された評判インジケータの集合に追加することであって、前記集合のすべてのメンバーは、前記ターゲットエンティティのインスタンスについて決定される、追加することと、
前記第２の評判インジケータを前記集合に追加したことに応答して、評判更新条件が満たされるかどうかを判定することと、
それに応答して、前記更新条件が満たされたときに、前記評判データベース中の前記第１の評判インジケータを、前記集合に従って決定された更新された評判インジケータと置き換えることと
を含み、前記第２の評判インジケータを決定することは、
前記第１の評判インジケータを受信したことに応答して、前記ターゲットエンティティが第１の時間間隔中に所定のアクションのセットのうちのいずれかを実施したかどうかを判定することと、
前記ターゲットエンティティが前記第１の時間間隔中に所定のアクションの前記セットのうちのいずれをも実施しなかったときに、前記第２の評判インジケータを、前記ターゲットエンティティが悪意のあるものである可能性が、前記第１の評判インジケータによって示されたものよりも低いことを示すように、構築することと、
前記ターゲットエンティティが所定のアクションの前記セットのうちの第１のアクションを実施したときに、前記第２の評判インジケータを、前記ターゲットエンティティが悪意のあるものである可能性が、前記第１の評判インジケータによって示されたものよりも高いことを示すように、構築することと
を行うために、前記クライアントシステムを利用することを含む、
サーバコンピュータシステム。
【請求項１４】
請求項１３に記載のサーバコンピュータシステムであって、前記更新条件が満たされるかどうかを判定することは、第１のメンバーを前記集合に追加してから経過した時間を決定することを含む、サーバコンピュータシステム。
【請求項１５】
請求項１３に記載のサーバコンピュータシステムであって、前記更新条件が満たされるかどうかを判定することは、前記集合のメンバーのカウントを決定することを含む、サーバコンピュータシステム。
【請求項１６】
請求項１３に記載のサーバコンピュータシステムであって、前記更新評判インジケータを決定することは、前記集合のすべてのメンバーのうちで、前記ターゲットエンティティが悪意のあるものである確率が最も高いことを示すように、前記更新評判インジケータを構築することを含む、サーバコンピュータシステム。
【請求項１７】
請求項１３に記載のサーバコンピュータシステムであって、前記第２の評判インジケータを決定することは、前記ターゲットエンティティが悪意のあるものである可能性が、第３の評判インジケータによって示されたものよりも低いことを示すように、前記第２の評判インジケータを構築することをさらに含み、前記第３の評判インジケータを決定することは、
前記第２の評判インジケータを決定することに備えて、前記第１の時間間隔より前の第２の時間間隔を決定することと、
前記第２の時間間隔を決定したことに応答して、前記ターゲットエンティティが前記第２の時間間隔中に所定のアクションの前記セットのうちのいずれかを実施したかどうかを判定することと、
それに応答して、前記ターゲットエンティティが前記第２の時間間隔中に所定のアクションの前記セットのうちのいずれをも実施しなかったときに、前記第３の評判インジケータを、前記ターゲットエンティティが悪意のあるものである可能性が、前記第１の評判インジケータによって示されたものよりも低いことを示すように、構築することと
を行うために、前記クライアントシステムを利用することを含む、
サーバコンピュータシステム。
【請求項１８】
請求項１３に記載のサーバコンピュータシステムであって、前記第２の評判インジケータは、前記ターゲットエンティティの起動から経過した時間に従って決定される、サーバコンピュータシステム。
【請求項１９】
請求項１３に記載のサーバコンピュータシステムであって、前記第１の時間間隔は、前記ターゲットエンティティの起動から経過した時間に従って決定される、サーバコンピュータシステム。
【請求項２０】
請求項１３に記載のサーバコンピュータシステムであって、前記第１の時間間隔は、前記第１の評判インジケータに従って決定される、サーバコンピュータシステム。
【請求項２１】
請求項１３に記載のサーバコンピュータシステムであって、前記第１の時間間隔は、前記ターゲットエンティティが、前記第１の時間間隔より前に、所定のアクションの前記セットのうちの第２のアクションを実施したかどうかに従って決定される、サーバコンピュータシステム。
【請求項２２】
請求項１３に記載のサーバコンピュータシステムであって、前記第２の評判インジケータを決定することは、前記ターゲットエンティティが悪意のあるものである前記確率を、前記ターゲットエンティティの起動から経過した時間に従って決定された量だけ減少させることを含む、サーバコンピュータシステム。
【請求項２３】
命令のセットを記憶する非一時的コンピュータ可読媒体であって、命令の前記セットは、クライアントシステムのハードウェアプロセッサによって実行されたときに、前記クライアントシステムに、評判マネージャとアンチマルウェアエンジンとを形成させ、
前記クライアントシステムは、ターゲットエンティティを実行するように構成され、
前記評判マネージャは、
評判サーバから、ターゲットエンティティの第１の評判インジケータであって、前記ターゲットエンティティが悪意のあるものである確率を示す前記第１の評判インジケータを受信したことに応答して、前記評判インジケータを前記アンチマルウェアエンジンに送信することと、
前記第１の評判インジケータを受信したことに応答して、前記ターゲットエンティティが第１の時間間隔中に所定のアクションのセットのうちのいずれかを実施したかどうかを判定することと、
前記ターゲットエンティティが前記第１の時間間隔中に所定のアクションの前記セットのうちのいずれをも実施しなかったときに、前記ターゲットエンティティの第２の評判インジケータを決定することであって、前記第２の評判インジケータは、前記ターゲットエンティティが悪意のあるものである可能性が、前記第１の評判インジケータによって示されたものよりも低いことを示す、決定することと、
前記第２の評判インジケータを決定したことに応答して、前記第２の評判インジケータを前記アンチマルウェアエンジンと前記評判サーバとに送信することと、
前記ターゲットエンティティが所定のアクションの前記セットのうちの第１のアクションを実施したときに、前記ターゲットエンティティの第３の評判インジケータを決定することであって、前記第３の評判インジケータは、前記ターゲットエンティティが悪意のあるものである可能性が、前記第１の評判インジケータによって示されたものよりも高いことを示す、決定することと、
前記第３の評判インジケータを決定したことに応答して、前記第３の評判インジケータを前記アンチマルウェアエンジンと前記評判サーバとに送信することと
を行うように構成され、
前記アンチマルウェアエンジンは、
前記第１の評判インジケータを受信したことに応答して、前記ターゲットエンティティが悪意のあるものであるかどうかを判定するために、第１のプロトコルを利用することと、
前記第２の評判インジケータを受信したことに応答して、前記ターゲットエンティティが悪意のあるものであるかどうかを判定するために、第２のプロトコルを利用することであって、前記第２のプロトコルは前記第１のプロトコルよりも計算コストが高くない、利用することと、
前記第３の評判インジケータを受信したことに応答して、前記ターゲットエンティティが悪意のあるものであるかどうかを判定するために、第３のプロトコルを利用することであって、前記第３のプロトコルは前記第１のプロトコルよりも計算コストが高い、利用することと
を行うように構成された、
非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本発明は、コンピュータシステムを悪意のある（ｍａｌｉｃｉｏｕｓ）ソフトウェアから保護するためのシステムおよび方法に関する。
【背景技術】
【０００２】
[0002]マルウェアとしても知られる、悪意のあるソフトウェアは、世界中の多くのコンピュータシステムに影響を及ぼす。コンピュータウイルス、ワーム、ルートキット、およびスパイウェアなど、その多くの形態で、マルウェアは、何百万人ものコンピュータユーザに深刻なリスクをもたらし、特に、データおよび機密情報の損失、プライバシーの侵害、個人情報の盗難、生産性の損失の影響を受けやすくしている。
【０００３】
[0003]セキュリティソフトウェアは、ユーザのコンピュータシステムに感染しているマルウェアを検出し、そのようなマルウェアを除去し、および／または無能力にするために使用され得る。いくつかのマルウェア検出技法が、当技術分野で知られている。いくつかは、コンテンツベースであり、マルウェアエージェントのコードのフラグメントを、マルウェアを示すシグネチャのライブラリと照合することに依拠する。一般に、挙動的として知られる、他の従来の技法は、マルウェアエージェントの疑わしいまたはマルウェアを示すアクションのセットを検出する。
【０００４】
[0004]セキュリティソフトウェアは、ユーザのコンピュータシステムに著しい計算負担をかけ、性能およびユーザエクスペリエンスに対する測定可能な影響をしばしば有し得る。悪意のあるソフトウェアの絶え間ない急増が、マルウェア検出ルーチンの複雑性ならびにシグネチャデータベースのサイズをさらに増加させる。計算コストを低下させるために、セキュリティソフトウェアは、様々な最適化プロシージャを組み込み得る。
【発明の概要】
【０００５】
[0005]一態様によれば、クライアントシステムが、ターゲットエンティティと、評判（ｒｅｐｕｔａｔｉｏｎ）マネージャと、アンチマルウェアエンジン（ａｎｔｉ−ｍａｌｗａｒｅ  ｅｎｇｉｎｅ）とを実行するように構成された少なくとも１つのハードウェアプロセッサを備える。評判マネージャは、評判サーバから、ターゲットエンティティが悪意のあるものである確率を示す、ターゲットエンティティの第１の評判インジケータを受信したことに応答して、評判インジケータをアンチマルウェアエンジンに送信するように構成される。評判マネージャは、第１の評判インジケータを受信したことに応答して、ターゲットエンティティが第１の時間間隔中に所定のアクションのセットのうちのいずれかを実施したかどうかを判定するようにさらに構成される。ターゲットエンティティが第１の時間間隔中に所定のアクションのセットのうちのいずれをも実施しなかったとき、評判マネージャは、ターゲットエンティティの第２の評判インジケータを決定することであって、第２の評判インジケータは、ターゲットエンティティが悪意のあるものである可能性が、第１の評判インジケータによって示されたものよりも低いことを示す、決定することを行う。評判マネージャはさらに、第２の評判インジケータをアンチマルウェアエンジンと評判サーバとに送信する。ターゲットエンティティが所定のアクションのセットのうちの第１のアクションを実施したとき、評判マネージャは、ターゲットエンティティの第３の評判インジケータを決定することであって、第３の評判インジケータは、ターゲットエンティティが悪意のあるものである可能性が、第１の評判インジケータによって示されたものよりも高いことを示す、決定することを行う。評判マネージャはさらに、第３の評判インジケータをアンチマルウェアエンジンと評判サーバとに送信する。アンチマルウェアエンジンは、第１の評判インジケータを受信したことに応答して、ターゲットエンティティが悪意のあるものであるかどうかを判定するために、第１のプロトコルを利用するように構成される。アンチマルウェアエンジンは、第２の評判インジケータを受信したことに応答して、ターゲットエンティティが悪意のあるものであるかどうかを判定するために、第２のプロトコルを利用することであって、第２のプロトコルは第１のプロトコルよりも計算コストが高くない、利用することを行うようにさらに構成される。アンチマルウェアエンジンは、第３の評判インジケータを受信したことに応答して、ターゲットエンティティが悪意のあるものであるかどうかを判定するために、第３のプロトコルを利用することであって、第３のプロトコルは第１のプロトコルよりも計算コストが高い、利用することを行うようにさらに構成される。
【０００６】
[0006]別の態様によれば、サーバコンピュータシステムが、複数のクライアントシステムとの評判管理トランザクションを実施するように構成された少なくとも１つのハードウェアプロセッサを備え、評判管理トランザクションは、複数のクライアントシステムのうちのクライアントシステムから受信された要求に応答して、エンティティ評判データベースからターゲットエンティティの第１の評判インジケータを取り出すことであって、第１の評判インジケータはターゲットエンティティが悪意のあるものである確率を示す、取り出すことを含む。評判管理トランザクションは、第１の評判インジケータを取り出したことに応答して、第１の評判インジケータをクライアントシステムに送信することと、第１の評判インジケータを送信したことに応答して、クライアントシステムからターゲットエンティティの第２の評判インジケータを受信することとをさらに含む。評判管理トランザクションは、第２の評判インジケータを受信したことに応答して、第１の評判インジケータと第２の評判インジケータとを比較することをさらに含む。応答して、第２の評判インジケータが、ターゲットエンティティが悪意のあるものである確率が、第１の評判インジケータによって示されたものよりも低いことを示すとき、評判管理トランザクションは、第２の評判インジケータを、複数のクライアントシステムから受信された評判インジケータの集合に追加することであって、集合のすべてのメンバーが、ターゲットエンティティのインスタンスについて決定される、追加することをさらに含む。評判管理トランザクションは、第２の評判インジケータを集合に追加したことに応答して、評判更新条件が満たされるかどうかを判定することと、応答して、更新条件が満たされたとき、評判データベース中の第１の評判インジケータを、集合に応じて決定された更新された評判インジケータと置き換えることとをさらに含む。第２の評判インジケータを決定することは、第１の評判インジケータを受信したことに応答して、ターゲットエンティティが第１の時間間隔中に所定のアクションのセットのうちのいずれかを実施したかどうかを判定するために、クライアントシステムを利用することを含む。ターゲットエンティティが第１の時間間隔中に所定のアクションのセットのうちのいずれをも実施しなかったとき、第２の評判インジケータを決定することは、第２の評判インジケータを、ターゲットエンティティが悪意のあるものである可能性が、第１の評判インジケータによって示されたものよりも低いことを示すように、構築することと、ターゲットエンティティが所定のアクションのセットのうちの第１のアクションを実施したとき、第２の評判インジケータを、ターゲットエンティティが悪意のあるものである可能性が、第１の評判インジケータによって示されたものよりも高いことを示すように、構築することとをさらに含む。
【０００７】
[0007]別の態様によれば、非一時的コンピュータ可読媒体が、命令のセットを記憶し、命令のセットは、クライアントシステムのハードウェアプロセッサによって実行されたとき、クライアントシステムに、評判マネージャとアンチマルウェアエンジンとを形成させる。クライアントシステムは、ターゲットエンティティを実行する。評判マネージャは、評判サーバから、ターゲットエンティティが悪意のあるものである確率を示す、ターゲットエンティティの第１の評判インジケータを受信したことに応答して、評判インジケータをアンチマルウェアエンジンに送信するように構成される。評判マネージャは、第１の評判インジケータを受信したことに応答して、ターゲットエンティティが第１の時間間隔中に所定のアクションのセットのうちのいずれかを実施したかどうかを判定するようにさらに構成される。ターゲットエンティティが第１の時間間隔中に所定のアクションのセットのうちのいずれをも実施しなかったとき、評判マネージャは、ターゲットエンティティの第２の評判インジケータを決定することであって、第２の評判インジケータは、ターゲットエンティティが悪意のあるものである可能性が、第１の評判インジケータによって示されたものよりも低いことを示す、決定することを行う。評判マネージャはさらに、第２の評判インジケータをアンチマルウェアエンジンと評判サーバとに送信する。ターゲットエンティティが所定のアクションのセットのうちの第１のアクションを実施したとき、評判マネージャは、ターゲットエンティティの第３の評判インジケータを決定することであって、第３の評判インジケータは、ターゲットエンティティが悪意のあるものである可能性が、第１の評判インジケータによって示されたものよりも高いことを示す、決定することを行う。評判マネージャはさらに、第３の評判インジケータをアンチマルウェアエンジンと評判サーバとに送信する。アンチマルウェアエンジンは、第１の評判インジケータを受信したことに応答して、ターゲットエンティティが悪意のあるものであるかどうかを判定するために、第１のプロトコルを利用するように構成される。アンチマルウェアエンジンは、第２の評判インジケータを受信したことに応答して、ターゲットエンティティが悪意のあるものであるかどうかを判定するために、第２のプロトコルを利用することであって、第２のプロトコルは第１のプロトコルよりも計算コストが高くない、利用することを行うようにさらに構成される。アンチマルウェアエンジンは、第３の評判インジケータを受信したことに応答して、ターゲットエンティティが悪意のあるものであるかどうかを判定するために、第３のプロトコルを利用することであって、第３のプロトコルは第１のプロトコルよりも計算コストが高い、利用することを行うようにさらに構成される。
【０００８】
[0008]本発明の前述の態様および利点は、以下の詳細な説明を読み、図面を参照するとよりよく理解されるようになるであろう。
【図面の簡単な説明】
【０００９】
【図１】[0009]本発明のいくつかの実施形態による、複数のクライアントシステムと評判サーバとを備える例示的なアンチマルウェアシステムを示す図である。
【図２】[0010]本発明のいくつかの実施形態による、コンピュータセキュリティ脅威から保護された、企業内イントラネットなどの隔離環境の例示的な詳細図である。
【図３】[0011]本発明のいくつかの実施形態による、例示的な評判データベースエントリを示す図である。
【図４−Ａ】[0012]本発明のいくつかの実施形態による、クライアントシステムの例示的なハードウェア構成を示す図である。
【図４−Ｂ】[0013]本発明のいくつかの実施形態による、評判サーバの例示的なハードウェア構成を示す図である。
【図５】[0014]本発明のいくつかの実施形態による、クライアントシステムをコンピュータセキュリティ脅威から保護するように構成されたセキュリティアプリケーションを含む、クライアントシステム上で実行するソフトウェアオブジェクトの例示的なセットを示す図である。
【図６】[0015]本発明のいくつかの実施形態による、セキュリティアプリケーションの例示的な構成要素を示す図である。
【図７】[0016]本発明のいくつかの実施形態による、セキュリティアプリケーションの評判マネージャ構成要素とアンチマルウェアエンジン構成要素との間の例示的なデータ交換を示す図である。
【図８】[0017]本発明のいくつかの実施形態による、クライアントシステムと評判サーバとの間の例示的なデータ交換を示す図である。
【図９】[0018]本発明のいくつかの実施形態による、実行可能エンティティのフィンガープリントの例示的な構成要素を示す図である。
【図１０】[0019]本発明のいくつかの実施形態による、実行可能エンティティの例示的なセットおよびスーパーセットを示す図である。
【図１１】[0020]本発明のいくつかの実施形態による、クライアントシステム上で実行する実行可能エンティティに関連する例示的なデータ構造を示す図である。
【図１２−Ａ】[0021]本発明のいくつかの実施形態による、セキュリティアプリケーションの評判マネージャ構成要素によって実施されるステップの例示的なシーケンスを示す図である。
【図１２−Ｂ】[0022]本発明のいくつかの実施形態による、図１１−Ａのステップの例示的なシーケンスの続きを示す図である。
【図１２−Ｃ】[0023]本発明のいくつかの実施形態による、図１１−Ａのステップの例示的なシーケンスの別の続きを示す図である。
【図１２−Ｄ】[0024]本発明のいくつかの実施形態による、図１１−Ａのステップの例示的なシーケンスのまた別の続きを示す図である。
【図１３】[0025]本発明のいくつかの実施形態による、評判インジケータの例示的な時間的な発展を示す図である。
【図１４】[0026]本発明のいくつかの実施形態による、セキュリティアプリケーションのアンチマルウェアエンジン構成要素によって実施されるステップの例示的なシーケンスを示す図である。
【図１５】[0027]本発明のいくつかの実施形態による、評判サーバによって実施されるステップの例示的なシーケンスを示す図である。
【発明を実施するための形態】
【００１０】
[0028]以下の説明では、構造間のすべての列挙された接続が、直接の動作的な接続、または中間構造を通しての間接の動作的な接続であり得ることを理解されたい。要素のセットは、１つまたは複数の要素を含む。要素の任意の列挙は、少なくとも１つの要素を指すと理解される。複数の要素は、少なくとも２つの要素を含む。別段に必要とされない限り、説明される方法ステップは、必ずしも特定の示される順序で実施される必要があるとは限らない。第２の要素から導出された第１の要素（たとえばデータ）は、第２の要素に等しい第１の要素、ならびに第２の要素および随意に他のデータを処理することによって生成された第１の要素を包含する。パラメータに従って決定（判定）または判断を行うことは、パラメータに従っておよび随意に他のデータに従って決定（判定）または判断を行うことを包含する。別段に規定されていない限り、何らかの量／データのインジケータは、量／データ自体であるか、または量／データ自体とは異なるインジケータであり得る。コンピュータセキュリティは、データおよび／またはハードウェアへの意図しないまたは無認可のアクセスと、データおよび／またはハードウェアの意図しないまたは無認可の変更と、データおよび／またはハードウェアの破壊とからユーザおよび機器を保護することを包含する。コンピュータプログラムは、タスクを行うプロセッサ命令のシーケンスである。本発明のいくつかの実施形態で説明されるコンピュータプログラムは、他のコンピュータプログラムのスタンドアロンソフトウェアエンティティまたはサブエンティティ（たとえば、サブルーチン、ライブラリ）であり得る。別段に規定されていない限り、プロセスは、コンピュータプログラムのインスタンスを表し、別個のメモリスペースと少なくとも実行スレッドとを有し、メモリスペースは、プロセッサ命令のセットの符号化（たとえば、機械コード）を記憶する。別段に規定されていない限り、ハッシュは、ハッシュ関数の出力である。別段に規定されていない限り、ハッシュ関数は、シンボル（たとえば、文字、ビット）の可変長シーケンスを固定長ビット列にマッピングする数学的変換である。コンピュータ可読媒体は、磁気、光、および半導体ストレージ媒体などの非一時的媒体（たとえばハードドライブ、光ディスク、フラッシュメモリ、ＤＲＡＭ）、ならびに導電性ケーブルおよび光ファイバーリンクなどの通信リンクを包含する。いくつかの実施形態によれば、本発明は、とりわけ、本明細書で説明される方法を実施するようにプログラムされたハードウェア（たとえば１つまたは複数のプロセッサ）を備えるコンピュータシステム、ならびに本明細書で説明される方法を実施するための命令を符号化するコンピュータ可読媒体を提供する。
【００１１】
[0029]以下の説明は、本発明の実施形態を例として示し、必ずしも限定として示すとは限らない。
[0030]図１は、本発明のいくつかの実施形態による、例示的なコンピュータセキュリティシステム５を示す。システム５は、通信ネットワーク２０を介して接続された、クライアントシステム１０ａ〜ｃのセットと中央評判サーバ１４ａとを備える。中央評判サーバ１４ａは、さらに中央評判データベース１６ａに通信可能に結合され得る。ネットワーク２０は、インターネットなどのワイドエリアネットワークであり得、ネットワーク２０の部分は、ローカルエリアネットワーク（ＬＡＮ）をも含み得る。
【００１２】
[0031]システム５は、ネットワーク２０に接続された隔離環境１２ａ〜ｂのセットをさらに備え得る。隔離環境は、たとえば、会社のイントラネットを表し得る。環境１２ａ〜ｂは、ファイアウォールおよび／または他の境界防御手段によって、ネットワーク２０の残部から分離され得る。図２は、すべてがローカルネットワーク１２０に接続された、クライアントシステム１０ｄ〜ｅのセットとローカル評判サーバ１４ｂとを含む、そのような隔離環境１２を示す。ネットワーク１２０は、たとえば、ローカルエリアネットワークを表し得る。いくつかの実施形態では、隔離環境１２は、ローカル評判サーバ１４ｂに通信可能に結合された、環境固有のローカル評判データベース１６ｂをさらに備え得る。
【００１３】
[0032]クライアントシステム１０ａ〜ｅは、本発明のいくつかの実施形態による、コンピュータセキュリティ脅威から保護されたエンドユーザコンピュータシステムを表す。例示的なクライアントシステム１０ａ〜ｅは、パーソナルコンピュータ、タブレットパーソナルコンピュータ、携帯電話、携帯情報端末（ＰＤＡ）などのモバイルコンピューティングおよび／または電気通信デバイス、ウェアラブルコンピューティングデバイス（たとえば、スマートウォッチ）、ＴＶまたは音楽プレーヤなどの家庭用デバイス、あるいはプロセッサとメモリとを有する任意の他の電子デバイスを含む。クライアントシステム１０ａ〜ｅは、コンピュータセキュリティ会社の個々の顧客を表し得、いくつかのクライアントシステムが、同じ顧客に属し得る。
【００１４】
[0033]クライアントシステム１０ａ〜ｅは、コンピュータセキュリティ動作の効率を増加させるために評判データを使用し得る。いくつかの実施形態では、評判サーバ１４ａ〜ｂは、クライアントシステム１０ａ〜ｅの要求時に評判データを扱い、たとえば、評判データを、評判データベース１６ａ〜ｂに記憶し、評判データベース１６ａ〜ｂから選択的に取り出し、そのようなデータを要求側クライアントシステムに送信する。そのようなトランザクションの詳細が、以下で与えられる。
【００１５】
[0034]評判データベース１６ａ〜ｂは、様々な実行可能エンティティ（アプリケーション、オペレーティングシステムの構成要素、プロセス、ライブラリ、スクリプトなど）に関連する評判データを記憶するように構成され得る。評判データは、複数のエントリとして記憶され得、各エントリは別個の実行可能エンティティに対応する。図３は、（本明細書では、エンティティフィンガープリント（ｅｎｔｉｔｙ  ｆｉｎｇｅｒｐｒｉｎｔ）７０と呼ばれる）実行可能エンティティの識別トークンと、それぞれのエンティティが悪意のあるものである確率を示す評判インジケータ６０とを備える、例示的な評判データベースエントリ１７を示す。各評判データベースエントリは、インジケータ６０が作成された瞬間および／またはそれぞれの評判インジケータの最新の更新の瞬間を示す、（ＴＳ０として表された）タイムスタンプをさらに含み得る。エントリ１７は、それぞれの評判インジケータの有効性の持続時間を示す、評判寿命インジケータ（ＲＬ：ｒｅｐｕｔａｔｉｏｎ  ｌｉｆｅｔｉｍｅ）をさらに備え得る。評判データについて限られた寿命を指定することによって、いくつかの実施形態は、そのようなデータの周期的リフレッシュを事実上強制し、したがって、それぞれのエンティティを用いた潜在的感染の拡散を閉じ込める。寿命インジケータは、実行可能エンティティ間で変動し得、悪意のあることまたは無害であることを証明されたいくつかのエンティティの評判は、無限の寿命を有し得る。エンティティフィンガープリントおよび評判インジケータが、以下でより詳細に説明される。
【００１６】
[0035]いくつかの実施形態は、エンティティの現在の評判と、それぞれのエンティティの履歴評判（ＨＲ：ｈｉｓｔｏｒｉｃａｌ  ｒｅｐｕｔａｔｉｏｎ）とを区別する。現在の評判は、現在、クライアントシステム上に存在するかまたはその上で実行しているエンティティの評判を指す。本明細書では、それぞれの実行可能エンティティの別のインスタンスについて以前に計算され、データベース１６ａおよび／または１６ｂに記憶された評判インジケータの値を示すために、履歴評判が使用される。履歴評判は、他のクライアントシステムから統合されたおよび／または過去の他のときに計算された、評判データを備え得る。履歴評判は、人間のセキュリティ分析者によってそれぞれのエンティティについて決定された評判を含み得る。そのような履歴評判は、自動的に決定された評判よりも多くの重みを決定プロセスにおいて与えられ得、それは、それらが、自動的に決定された評判よりも正確である可能性があるからである。
【００１７】
[0036]図１〜図２に示されている例示的な評判管理システムは、階層的に編成される。レイテンシを最小限に抑え、ユーザエクスペリエンスを改善するために、クライアントシステム１０ａ〜ｅは、ローカル評判データベース１６ｂ中の評判データを最初にルックアップし得、次いで、必要な場合、そのようなデータを中央評判データベース１６ａに要求し得る。したがって、いくつかの実施形態では、ローカルデータベース１６ｂは、中央データベース１６ａのローカルキャッシュと見なされ得る。複数のクライアントシステム１０ａ〜ｅからの評判データを統合することによって、中央評判データベース１６ａは、新しい脅威に関する情報を迅速に収集し、それを他のクライアントシステムに分配し得る。
【００１８】
[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]図１２−Ｂは、アクティビティモニタ６４からの通知を受信したことに応答して、評判マネージャ５８によって実行されるステップの例示的なシーケンスを示す。そのような通知は、一般に、ターゲットエンティティに関するライフサイクルイベントの発生を通信する。ステップ３２２において、フィンガープリント計算器６６が、それぞれのターゲットエンティティのエンティティフィンガープリントを計算し得る。ステップ３２２は、ターゲットエンティティのモジュール／ビルディングブロックをリストすることと、各そのようなモジュールを保持するメモリセクションを識別することと、モジュールフィンガープリントを計算することと、個々のモジュールフィンガープリントに従ってエンティティフィンガープリントをアセンブルすることとを含み得る（図９と関連する説明とを参照）。ステップ３２３において、エンティティマネージャ６２は、同じエンティティＩＤ（ＥＩＤ）をもつオブジェクトがすでに追跡／分析されているかどうかを判定するために、評判テーブル中のターゲットエンティティのＥＩＤをルックアップし得る。エンティティＩＤは、ターゲットエンティティを識別するためにオペレーティングシステムによって使用され、Ｗｉｎｄｏｗｓ（登録商標）環境では、例示的なＥＩＤは、現在実行中のプロセスのプロセスＩＤ（ＰＩＤ）である。それぞれのＥＩＤが新しい（ターゲットエンティティが実行可能オブジェクトの新しいインスタンスであることを示す）とき、ステップ３２５において、エンティティマネージャ６２は、ターゲットエンティティを表すために新しい評判テーブルエンティティを作成し得る。それぞれのＥＩＤが新しくないとき（たとえば、ターゲットエンティティのモジュール組成が変化しているとき、たとえば、プロセスがライブラリをロードしているとき）、ステップ３２４は、評判テーブルが、ターゲットエンティティと同じフィンガープリント７０をもつエンティティを現在リストするかどうかを判定し得る。評判テーブルが、同じフィンガープリントをもつエントリをすでに含んでいるとき、評判マネージャ５８は、以下で説明されるステップ３２６に進み得る。そのような状況は、たとえば、検出されたライフサイクルイベントが、すでに実行しているターゲットエンティティを指すときに生じ得る。ターゲットエンティティのフィンガープリントが新しい（同じフィンガープリントをもつエンティティが、評判テーブルにリストされない）とき、エンティティマネージャ６２は、それぞれのターゲットエンティティのための新しいテーブルエントリを作成し得る。
【００４７】
[0066]いくつかの実施形態では、エンティティのモジュール組成の変化が、エンティティフィンガープリントの変化を生じる。したがって、それぞれのエンティティは終了されていないが、フィンガープリントの観点から、古いエンティティが存在しなくなり、新しいエンティティがクライアントシステム１０上に出現したかのよう見え得る。そのような場合、ならびに新しいエンティティが起動された場合、ステップ３３６において、評判マネージャ５８は、それぞれのエンティティフィンガープリントに関連する履歴評判データをルックアップすることを試み得る。ステップ３３６は、たとえば、評判マネージャ５８が評判要求７１を評判サーバ１４に送ることを含み得る（たとえば、図８参照）。履歴評判データがそれぞれのフィンガープリントについて存在するとき、サーバ１４は、そのようなデータをデータベース１６から選択的に取り出し、インジケータ６０をクライアントシステム１０に送信し得る。そのような状況は、それぞれのエンティティのインスタンス（実行可能モジュールの組合せ）が前に観測され、場合によっては別個のクライアントシステム上で実行しており、それぞれのエンティティの評判が計算され、データベース１６に記憶されたときに、生じ得る。評判インジケータ６０を受信すると、ステップ３３８において、評判マネージャ５８は、ターゲットエンティティの現在の評判インジケータを、それぞれのエンティティの履歴評判に従って決定された値に設定し得る。例示的な一実施形態では、現在の評判は、履歴評判に等しくなるように設定される。
【００４８】
[0067]履歴評判がターゲットエンティティのために利用可能でないとステップ３３７が決定したとき、評判マネージャはステップ３３９に進む。この状況は、たとえば、新しいソフトウェア（たとえば、新しい製品またはソフトウェアアップデート）が市場に現れたとき、それぞれのエンティティについてのデータベースエントリが満了したとき、またはサーバ１４が利用可能でない（たとえば、ネットワーク接続の欠如、サーバダウン）ときに、生じ得る。ステップ３３９において、エンティティマネージャ６４は、ターゲットエンティティが、評判テーブルに現在リストされる親エンティティの子エンティティであるかどうかを判定し得る。はいのとき、ステップ３４０において、いくつかの実施形態は、ターゲットエンティティの評判を、親エンティティの評判に従って決定された（たとえば、親の評判に等しいか、またはそれよりも低い）値に設定する。
【００４９】
[0068]ステップ３４１において、エンティティマネージャ６４は、ターゲットエンティティのエンティティスーパーセットのメンバーが評判テーブル中に現在存在するかどうかを判定し得る。はいのとき、評判マネージャ５８のいくつかの実施形態は、ターゲットエンティティの現在の評判を、スーパーセットメンバーエンティティの評判に従って決定された（たとえば、スーパーセットメンバーの評判に等しい）値に設定する。評判のそのような選定をサポートする推論は、スーパーセットメンバーがターゲットエンティティの実行可能モジュールの実質的過半数（またはすべて）を含むので、スーパーセットメンバーの評判からターゲットエンティティの評判が推測され得ると考える。
【００５０】
[0069]親エンティティまたはスーパーセットメンバーエンティティがないとき、ステップ３４４において、評判マネージャ５８は、ターゲットエンティティの現在の評判を所定のデフォルト値に設定し得る。たとえば、未知のエンティティの評判は、低い信用度を示す値（たとえば、信用できない、未知の、Ｒ＝０）に設定され得る。また、初期評判は、ターゲットエンティティのタイプ、またはターゲットエンティティの特徴のセットに依存し得る。たとえば、インターネットからダウンロードされたエンティティは、それがデジタル署名されない場合、初期評判値Ｒ＝０を受け、それが署名されるとき、初期評判値Ｒ＝２０％を受け得る。
【００５１】
[0070]ステップ３２６において、更新スケジューラ６８が、ターゲットエンティティの評判テーブルエントリの次の更新をスケジュールし得る。いくつかの実施形態では、ターゲットエンティティの評判は、時間的に変動する。たとえば、それぞれのエンティティが、疑わしいまたはマルウェアを示すと見なされるアクションを実施しないとき、および／あるいはターゲットエンティティがマルウェアを示すシグネチャにマッチするコードパターンを含まないとき、それぞれのエンティティの評判インジケータは、より高いレベルの信用を示す値のほうへ進行し得る（たとえば、Ｒは、１００％の信用のほうへ増加し得る）。Ｒ値が高いほど高い信用を示す一実施形態における、評判インジケータについての例示的な変動シナリオが、図１３に示されている。図示された評判インジケータは、所定の値のセット、Ｒ1、Ｒ2、Ｒ3などの間で次々変わり得る。評判のそのような変化は、所定の瞬間において発生し得、たとえば、Ｒは、（たとえば、それぞれのターゲットエンティティの作成の瞬間に対して測定される）時間インスタンスｔ2において、値Ｒ2から値Ｒ3に増加し得る。
【００５２】
[0071]値Ｒは、それぞれのターゲットエンティティの作成／起動から経過した時間に従って決定され得る。代替実施形態では、Ｒは、前のイベント（たとえば、評判の前の増加、セキュリティイベントなど）の発生から時間間隔Δｔが経過した後に、増加し得る。いくつかの実施形態では、時間間隔Δｔは、それら自体が時間的に変動し得る。たとえば、エンティティの早期では、評判増加が後の段階よりも低い頻度で起こり得る。別の例では、時間間隔の長さは、評判の現在の値に依存し得る。評判増分が、現在の評判値に比例し得る（たとえば、毎回、Ｒは２０％だけ増加し得る）。評判増分ΔＲも時間的に変動し得る。たとえば、Ｒは、エンティティの早期では小さい量だけ増加し、後の時間ではより大きい量だけ増加し得る。そのような評判ダイナミクスをサポートする論拠は、悪意のあるソフトウェアが、一般に、存在の早期の段階において（すなわち、起動のすぐ後に）そのアクティビティを実施するので、エンティティが、十分に長い時間の間、良く挙動するとき、エンティティが悪意のないものであると仮定することは安全であり得る、ということである。
【００５３】
[0072]いくつかの実施形態では、時間間隔Δｔおよび／または評判増分ΔＲは、それらが、それぞれのターゲットエンティティのタイプに従って変動し得るという意味で、エンティティタイプ固有であり得る。たとえば、デジタル署名されるエンティティの評判ダイナミクスは、デジタル署名されないエンティティの評判ダイナミクスとは異なり得る。別の例では、エンティティの評判ダイナミクスは、それぞれのエンティティがインターネットにアクセスするように構成されるか否かに従って異なり得る。
【００５４】
[0073]いくつかの実施形態では、評判更新をスケジュールすること（図１２−Ｂ中のステップ３２６）は、次の更新および／または評判増加についての時間間隔を決定することを含む。次いで、ステップ３２８が、それに応じて、それぞれのエンティティの評判テーブルエントリを更新する。ターゲットエンティティの現在の評判の変化は、他のエンティティ、たとえば、ターゲットエンティティの親エンティティ、またはターゲットエンティティのスーパーセットメンバーのエントリの現在の評判の変化をトリガし得る。そのようなとき、ステップ３３０において、評判マネージャ５８が、そのような更新を実行する。ステップ３３２〜３３４のシーケンスにおいて、評判マネージャ５８は、評判インジケータ６０をアンチマルウェアエンジン５６と評判サーバ１４とに送信する。
【００５５】
[0074]図１２−Ｃは、更新スケジューラ６８からの通知に応答して、評判マネージャ５８によって実行されるステップの例示的なシーケンスを示す（図１２−Ａ中のラベルＢ）。そのような通知は、一般に、ターゲットエンティティを識別し、それぞれのターゲットエンティティの評判インジケータが更新の予定であることを示す。ステップ３５６において、評判マネージャ５８は、たとえば、それぞれのエンティティの評判テーブルエントリのフィールド（たとえば、図１１参照）に記憶された評判増分に従って、それぞれのエンティティの評判インジケータを更新し得る。ステップ３５８において、評判更新スケジューラ６８は、たとえば、時間間隔Δｔおよび評判増分ΔＲを決定することと、これらの値をそれぞれのターゲットエンティティの評判テーブルエントリの対応するフィールドに書き込むこととによって、次の評判更新（ステップ３６０）をスケジュールし得る。評判増分ΔＲは、絶対値として、または現在の評判の割合（ｆｒａｃｔｉｏｎ）（たとえば、２０％）として決定され得る。ステップ３６０〜３６４のシーケンスは、ターゲットエンティティに関係する他のエンティティのテーブルエントリを更新し、評判インジケータ６０をアンチマルウェアエンジン５６に送信する。
【００５６】
[0075]さらなるステップ３６６において、評判マネージャ５８は、ターゲットエンティティの評判の変化と、場合によっては他の関係するエンティティの評判の変化とを反映するために、評判データベース１６の更新をトリガし得る。ステップ３６６は、更新された評判インジケータを備える評判報告７３を評判サーバ１４に送ることを含み得る（たとえば、図８）。そのような更新は、新しい評判を、他のインスタンス同じターゲットエンティティを実行する他のクライアントシステムにとって利用可能にし、したがって、クライアントのネットワーク全体にわたってコンピュータセキュリティ知識を伝搬する。評判サーバ１４が報告７３を処理する例示的な様式について、図１５に関して下記を参照されたい。
【００５７】
[0076]図１２−Ｄは、アンチマルウェアエンジン５６からのセキュリティ通知に応答して、評判マネージャ５８によって実施されるステップ（たとえば、図７参照）の例示的なシーケンスを示す。そのような通知は、特定のターゲットエンティティが悪意の疑いがあるとアンチマルウェアエンジンが決定したときに生成され得る。いくつかの実施形態では、エンジン５６は、セキュリティのために関連するイベントの、またはマルウェアを示すイベントの発生について、評判マネージャ５８に通知し得る。例示的なイベントは、特に、メモリアクセス許可に違反する様式でメモリにアクセスする試みと、オペレーティングシステムのある関数を実行する試み（たとえば、ディスクファイルを作成すること、レジストリエントリを編集することなど）と、いくつかの動作を実施する試み（たとえば、コードを別のエンティティに注入すること、リモートサーバからファイルをダウンロードすること）とを含む。通知７２は、それぞれのイベントによって生じたかまたは影響を受けるエンティティの識別子と、それぞれのイベントのタイプのインジケータとを備え得る。シグネチャスキャナが、ターゲットエンティティのコードをパースする間に、悪意のあるコードシグネチャを見つけたことに応答して、通知の別の例が生成され得る。
【００５８】
[0077]セキュリティ通知７２を受信したことに応答して、ステップ３７２において、評判マネージャ５８は、それぞれのターゲットエンティティの評判インジケータについての新しい値を決定し得る。いくつかの実施形態では、エンティティが、マルウェアを示すアクション、またはさもなければそれぞれのエンティティを悪意の疑いがあるようにするアクションを実施するとき、それぞれのエンティティの評判は、より低い信用性の方向に変化する。この態様は、図１３に示されており、Ｒの値はセキュリティイベントに応答して低下する。低下の大きさは、ルールのセット／セキュリティポリシーに従って、評判マネージャ５８によって決定され得る。低下の大きさは、絶対値として、または現在の評判値の割合（たとえば、５０％）として表され得る。
【００５９】
[0078]いくつかの実施形態では、そのようなオケージョンにおいて発生する評判の低下のサイズは、イベントのタイプまたはセキュリティ通知のタイプに従って変動する。いくつかのイベント／アクションは、より明らかにマルウェアを示し、したがって、評判のより大きい低下をトリガし得る。他のイベントは、必ずしも悪意を示すとは限らないが、他のイベントと一緒に発生するとき、またはターゲットエンティティによって実施されたいくつかのアクションと一緒に発生するとき、悪意を示し得る。そのようなイベントまたはアクションによってトリガされた評判の変化は、明らかに悪意のあるイベント／アクションに関連する変化よりも比較的小さくなり得る。いくつかセキュリティ通知は、それぞれのターゲットエンティティについての評判の全損を生じ得る。いくつかの実施形態では、評判の低下は、それぞれの評判インジケータが過去に他の低下を被ったかどうかに従って、評判の前の低下から経過した時間に従って、および／または、評判の前の低下をトリガしたセキュリティ通知のタイプに従って決定され得る。いくつかのマルウェアエージェントは、検出を回避するために、複数のエンティティにわたって悪意のあるアクションを編成し、そのようなアクションを時間的に拡散させる。セキュリティ通知の前の履歴を評判の現在の低下の条件とすることが、いくつかのそのような高性能マルウェアシナリオに対処し得る。いくつかの実施形態では、ステップ３７２において発生する評判の変化は、ターゲットエンティティの現在の評判に従っておよび／または他のエンティティの現在の評判に従って計算される。１つのそのような例では、エンティティＸがコードをエンティティＹに注入するとき、２つのエンティティのうちのより信用できるエンティティの評判が、より信用できないエンティティの現在の評判に等しくなり得る。
【００６０】
[0079]ステップ３７４において、評判マネージャ５８は、たとえば、時間間隔Δｔと評判増分ΔＲとを生成することによって、それぞれのターゲットエンティティの評判の更新をスケジュールし得る。さらなるステップ３７６が、そのようなデータをそれぞれのエンティティの評判テーブルエントリに保存し得る。いくつかの実施形態では、Δｔの値および／またはΔＲの値は、セキュリティ通知のタイプに従って変動し得る。１つのそのような例では、エンティティが、明らかに悪意を示すアクションを実施したとき、エンティティは、比較的長い時間期間の間、信用できないままであり得る。対照的に、低下が、あまりセキュリティクリティカルでないイベントによって生じた後、ターゲットエンティティの評判は、比較的速く再び増加し得る。
【００６１】
[0080]いくつかの実施形態では、ステップ３７６〜３８０〜３８２のシーケンスは、（存在する場合）ターゲットエンティティに関係する他のエンティティの評判テーブルエントリを更新し得、評判インジケータ６０をアンチマルウェアエンジン５６に送信し得、評判の変化をサーバ１４に報告し得る。
【００６２】
[0081]図１４は、本発明のいくつかの実施形態による、アンチマルウェアエンジン５６によって実行されるステップの例示的なシーケンスを示す。エンジン５６は、エンティティ固有の評判に従ってマルウェア検出、防止、および／またはクリーンアップアクティビティを実行するように構成され得る（ステップ３９２）。別段に述べれば、アンチマルウェアエンジン５６は、エンティティ固有のプロトコル／ポリシーに従って各実行可能エンティティを監視および／または分析し得、それぞれのポリシー／プロトコルは、各エンティティの評判インジケータに従ってエンティティごとに変動し得る。いくつかの実施形態では、高い信用性を示す評判を有するエンティティは、あまり信用できないエンティティよりも、計算コストが高くないプロシージャを使用して分析され得る。
【００６３】
[0082]挙動的マルウェア検出は、典型的には、ターゲットエンティティが悪意のあるものであるかどうかを判定するためのルールのセットを使用する。そのようなルールは、しばしばヒューリスティックと呼ばれる。１つの例示的なヒューリスティックは、たとえば、第１のエンティティがコードの部分を第２のエンティティに注入し、それぞれのコードがインターネットからファイルをダウンロードすることを試みる場合、第１のエンティティはおそらく悪意のあるものである、と言うことがある。そのようなヒューリスティックを実装するために、アンチマルウェアエンジン５６は、様々なイベント（たとえば、上記の例では、コード注入、およびリモートサーバに接続する試み）を監視する必要があり得る。いくつかのそのようなイベントは、監視するために他のイベントよりも計算コストがかかる。さらに、いくつかのヒューリスティックは、本質的に、他のヒューリスティックよりも複雑であり、および／または適用するのが困難であり得る。複雑なヒューリスティックは、より単純なヒューリスティックの組合せ、たとえば「方法Ａを適用する；Ａの結果がＸである場合、方法Ｂを適用する；Ｂの結果がＹの場合、条件Ｚをさらに検査する、など」を含み得る。
【００６４】
[0083]コストが高いヒューリスティックのいくつかの例は、（すべてのファイルシステムアクティビティ−あらゆるファイル読取り、書込み、および／またはコピーを監視することを含む）ランサムウェア（ｒａｎｓｏｍｗａｒｅ）を検出するために使用されるヒューリスティックと、（たとえば、レジストリへのあらゆる書込みを傍受することと、それが特定のキーを変更する試みを含むかどうかを判定することとを含む）ＯＳレジストリキーに関係するヒューリスティックとを含む。コストが高いヒューリスティックの別の例は、頻繁に使用されるＯＳ関数（たとえば、ＣｒｅａｔｅＦｉｌｅ、ＲｅａｄＦｉｌｅ）へのコールを検出することを必要とし、そのようなコールを検出することは実質的なオーバーヘッドを生じ得る。対照的に、通常動作において極めて控えめに使用されるＯＳ関数（たとえば、ＣｒｅａｔｅＲｅｍｏｔｅＴｈｒｅａｄ）へのコールを検出することは、クライアントシステム１０にはるかに低い負担をかけ得る。
【００６５】
[0084]いくつかの実施形態では、評判依存検出プロトコルを取得することは、評判インジケータに従ってイベント監視および／またはヒューリスティックの複雑性を変動させることを含む。別段に述べれば、アンチマルウェアエンジン５６は、信用できないエンティティよりも少数のおよび比較的単純なヒューリスティックを使用して、信用できるエンティティを監視し得る。エンジン５６はまた、信用できるエンティティを監視するとき、いくつかのイベントまたは挙動の検出を無効にし得る。また、コンテンツベースアンチマルウェア方法は、たとえば、評判に従ってシグネチャデータベースのサイズを調節することによって、評判固有にされ得る。１つのそのような例では、信用できるエンティティは、マルウェアを示すシグネチャの比較的小さいセットの存在について検査され得、信用できないエンティティは、実質的により大きいシグネチャセットを使用して検査され得る。
【００６６】
[0085]評判インジケータを用いて監視プロトコルを調節する一例が、表１に示されている。
【００６７】
【表１】
2019533258.tif 000003
【００６８】
[0086]図１４に戻ると、ステップ３９２〜３９４のシーケンスにおいて、アンチマルウェアエンジン５６が、評判固有のプロトコルに記述されているようにイベントの発生を待つように構成される。そのようなセキュリティ関連イベントの他に、エンジン５６は、評判マネージャ５８から評判インジケータを受信し得る。評判インジケータを受信することは、特定のエンティティの評判が変化したことを示し得る。評判インジケータを受信したこと（ステップ３９６）に応答して、ステップ３９８において、アンチマルウェアエンジンは、それぞれのターゲットエンティティを識別し、評判インジケータの受信された値に従って、それぞれのエンティティに適用される監視プロトコル／ポリシーを更新し得る。
【００６９】
[0087]検出されたイベントが、セキュリティイベントを含む（たとえば、エンティティがコードを別のエンティティに注入した）とき、ステップ４０２において、アンチマルウェアエンジン５６は、それぞれのイベントを生じたおよび／またはそれぞれのイベントの影響を受けたターゲットエンティティを識別し得る。さらなるステップ４０４が、ターゲットエンティティの識別情報と検出されたイベントのタイプとに従って、セキュリティ通知を構築し、それぞれのセキュリティ通知を評判マネージャ５８に送信し得る。
【００７０】
[0088]図１５は、本発明のいくつかの実施形態による、評判サーバ１４（たとえば、図１〜図２中のサーバ１４ａ〜ｂ）によって実行されるステップの例示的なシーケンスを示す。ステップ４１２〜４１４のシーケンスにおいて、サーバ１４は、クライアントシステム１０からの通信をリッスンし得る。通信が受信されたとき、ステップ４１６は、それぞれの通信が評判要求（たとえば、図８参照）であるかどうかを判定し得る。はいのとき、サーバ１４は、それぞれの要求中に含まれるエンティティフィンガープリントに関連する履歴評判データをルックアップし、データを要求側クライアントに送信し得る（ステップ４１８〜４２０）。
【００７１】
[0089]通信が評判報告を含むとき、ステップ４２４において、サーバ１４は、それぞれの評判報告中に含まれるエンティティフィンガープリントに関連する評判データをルックアップし得る。報告７３が、データベース１６に記憶された履歴評判よりも低い信用を示す現在の評判値を示すとき、ステップ４２８において、評判サーバ１４のいくつかの実施形態は、クライアント１０からの報告中で受信された評判インジケータの値を含めるために、それぞれのデータベースエントリを直ちに変化させ得る。
【００７２】
[0090]報告７３が、現在記憶されている値よりも高い信用を示す評判インジケータを備えるとき、いくつかの実施形態では、ステップ４３０が、評判報告７３を、様々なクライアントから受信された報告の集合に追加し得る。ステップ４３２において、評判サーバ１４は、次いで、更新条件が満たされるかどうかを判定し、更新条件が満たされたときのみ、データベースエントリを更新し得る。更新条件は、各個々のエンティティフィンガープリントについて時間制約に従っておよび／または受信された報告のカウントに従って、構築され得る。たとえば、それぞれのエンティティフィンガープリントに対応する評判インジケータの最新の更新から一定の時間間隔が経過した後にのみ、更新が起こり得る。別の例では、それぞれのターゲットエンティティに関する最新のセキュリティ通知から一定の時間間隔が経過した後にのみ、更新は起こり得る。高い評判がより高い信用に等しい例示的な一実施形態では、更新条件が満たされたとき、ターゲットエンティティの履歴評判は、最新の更新期間中に、それぞれのターゲットエンティティについて報告されたすべての評判のうちの最小値に等しい値に更新される。
【００７３】
[0091]上記で説明された例示的なシステムおよび方法は、パーソナルコンピュータ、タブレット、またはスマートフォンなど、クライアントシステムを、悪意のあるソフトウェアから保護することを可能にする。いくつかの実施形態では、評判マネージャが、アンチマルウェアエンジンと同時に実行する。アンチマルウェアエンジンは、それぞれのクライアントシステム上で実行するマルウェアを検出すること、および／あるいはそのようなマルウェアを削除することまたは無能力にすることなど、動作を実施する。クライアントシステム上で実行する各エンティティ（たとえば、アプリケーション、プロセス、スクリプト）について、評判マネージャは、評判インジケータをアンチマルウェアエンジンに送信し得、評判インジケータは、それぞれのエンティティが悪意のないものである信用のレベルを示し得る。
【００７４】
[0092]従来のセキュリティシステムでは、ソフトウェアエンティティが、それらの評判にかかわらず走査および／または監視される。対照的に、本発明のいくつかの実施形態では、アンチマルウェアエンジンは、信用できるエンティティに優遇措置を与え得る。たとえば、アンチマルウェアエンジンは、信用できるエンティティを走査／監視するために、信用できないかまたは未知の／前に見られていないエンティティと比較して、（たとえば、より多くのプロセッサクロックサイクルおよび／またはより多くのメモリを必要とする）計算コストが高くないプロトコルを使用し得る。１つのそのような例では、信用できるエンティティを走査／監視するとき、ルールのサブセットが無効にされ得る。この手法は、信用できるエンティティを走査／監視することに関連する計算負担を低減することによって、アンチマルウェア性能を実質的に改善し得る。
【００７５】
[0093]本発明のいくつかの実施形態では、各実行可能エンティティは、構成要素／ビルディングブロックの一意の組合せと見なされる。そのようなビルディングブロックの例は、特に、主実行ファイルと、共有ライブラリと、スクリプトと、注入されたコードのセクションとを含む。構成要素の各組合せは、たとえば、個々の構成要素のハッシュの組合せを含むエンティティフィンガープリントを介して、識別され得る。次いで、評判インジケータが、各エンティティフィンガープリントと関連付けられ得る。エンティティの組成が変化するとき（たとえば、プロセスが、ライブラリを動的にロードし、または注入されたコードの部分を受信するとき）、エンティティのフィンガープリントが変化し、エンティティの評判が変化する。
【００７６】
[0094]いくつかの実施形態では、エンティティの評判は、時間的に変化する。エンティティが、疑わしいまたはマルウェアを示すアクションを実施しない間、エンティティの評判は、より高い信用を示す値のほうへシフトし得る。対照的に、エンティティが、マルウェアを示すかまたはさもなければセキュリティ関連アクションを実施するとき、エンティティの評判は、より低い信用を示す値のほうへ格下げされ得る。評判のそのような変化は、ローカルキャッシュに保存され、および／または中央評判データベースに送信され得る。そのような構成は、評判の変化が、それぞれの共有ライブラリのインスタンスを使用する他のローカルプロセスに、さらに評判サーバに接続された他のクライアントシステムに、迅速に伝搬することを可能にする。
【００７７】
[0095]いくつかの実施形態では、（悪意の疑いを示し得る）評判の低下は、評判データベースに、そこから他のクライアントシステムに比較的高速に伝搬するが、（信用の増加を示し得る）評判の増加は、十分な時間がセキュリティインシデントなしに経過した後、または、十分な数のクライアントシステムによって、それぞれのエンティティが良く挙動する（ｗｅｌｌ−ｂｅｈａｖｅｄ）として報告された後にのみ、有効となり得る。
【００７８】
[0096]本明細書で説明されるシステムおよび方法は、新生の脅威を含む、多種多様な悪意のあるソフトウェアに容易に適用され得る。さらに、評判マネージャは、アンチマルウェアエンジンから独立して動作するので、アンチマルウェアエンジンは、評判マネージャの動作に影響を及ぼすことなしに、新しい走査／監視方法およびプロシージャを組み込むためにアップグレードされ得る。
【００７９】
[0097]上記実施形態が本発明の範囲から逸脱することなく多くのやり方で変更され得ることは、当業者にとって明らかであろう。したがって、本発明の範囲は、以下の特許請求の範囲およびそれらの法的均等物によって決定されるべきである。
【図１】
2019533258.tif 000004
【図２】
2019533258.tif 000005
【図３】
2019533258.tif 000006
【図４−Ａ】
2019533258.tif 000007
【図４−Ｂ】
2019533258.tif 000008
【図５】
2019533258.tif 000009
【図６】
2019533258.tif 000010
【図７】
2019533258.tif 000011
【図８】
2019533258.tif 000012
【図９】
2019533258.tif 000013
【図１０】
2019533258.tif 000014
【図１１】
2019533258.tif 000015
【図１２−Ａ】
2019533258.tif 000016
【図１２−Ｂ】
2019533258.tif 000017
【図１２−Ｃ】
2019533258.tif 000018
【図１２−Ｄ】
2019533258.tif 000019
【図１３】
2019533258.tif 000020
【図１４】
2019533258.tif 000021
【図１５】
2019533258.tif 000022
【国際調査報告】
2019533258.tif 000023
2019533258.tif 000024
2019533258.tif 000025