(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-06
(45)【発行日】2022-05-16
(54)【発明の名称】コンピュータセキュリティ動作を最適化するための動的評判インジケータ
(51)【国際特許分類】
G06F 21/56 20130101AFI20220509BHJP
【FI】
G06F21/56
(21)【出願番号】P 2019522880
(86)(22)【出願日】2017-10-26
(86)【国際出願番号】 EP2017077390
(87)【国際公開番号】W WO2018077996
(87)【国際公開日】2018-05-03
【審査請求日】2020-10-14
(32)【優先日】2016-10-27
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】312016539
【氏名又は名称】ビットディフェンダー アイピーアール マネジメント リミテッド
(74)【代理人】
【識別番号】100140109
【氏名又は名称】小野 新次郎
(74)【代理人】
【識別番号】100118902
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100120112
【氏名又は名称】中西 基晴
(74)【代理人】
【識別番号】100196508
【氏名又は名称】松尾 淳一
(72)【発明者】
【氏名】ハジマサン,ゲオルゲ-フローリン
(72)【発明者】
【氏名】モンドク,アレクサンドラ
(72)【発明者】
【氏名】ポルタセ,ラドゥ-マリアン
【審査官】岸野 徹
(56)【参考文献】
【文献】米国特許出願公開第2015/0096018(US,A1)
【文献】特表2015-531951(JP,A)
【文献】特表2015-530678(JP,A)
【文献】特表2011-527046(JP,A)
【文献】米国特許出願公開第2014/0123279(US,A1)
【文献】米国特許出願公開第2009/0328209(US,A1)
【文献】特表2016-538614(JP,A)
【文献】米国特許出願公開第2015/0007315(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/56
(57)【特許請求の範囲】
【請求項1】
ターゲットエンティティと、評判マネージャと、アンチマルウェアエンジンとを実行するように構成された少なくとも1つのハードウェアプロセッサを備えるクライアントシステムであって、
前記評判マネージャは、
評判サーバから、ターゲットエンティティの第1の評判インジケータであって、前記ターゲットエンティティが悪意のあるものである確率を示す前記第1の評判インジケータを受信したことに応答して、前記評判インジケータを前記アンチマルウェアエンジンに送信することと、
前記第1の評判インジケータを受信したことに応答して、前記ターゲットエンティティが第1の時間間隔中に所定のアクションのセットのうちのいずれかを実施したかどうかを判定することと、
前記ターゲットエンティティが前記第1の時間間隔中に所定のアクションの前記セットのうちのいずれをも実施しなかったときに、前記ターゲットエンティティの第2の評判インジケータを決定することであって、前記第2の評判インジケータは、前記ターゲットエンティティが悪意のあるものである可能性が、前記第1の評判インジケータによって示されたものよりも低いことを示す、決定することと、
前記第2の評判インジケータを決定したことに応答して、前記第2の評判インジケータを前記アンチマルウェアエンジンと前記評判サーバとに送信することと、
前記ターゲットエンティティが所定のアクションの前記セットのうちの第1のアクションを実施したときに、前記ターゲットエンティティの第3の評判インジケータを決定することであって、前記第3の評判インジケータは、前記ターゲットエンティティが悪意のあるものである可能性が、前記第1の評判インジケータによって示されたものよりも高いことを示す、決定することと、
前記第3の評判インジケータを決定したことに応答して、前記第3の評判インジケータを前記アンチマルウェアエンジンと前記評判サーバとに送信することと
を行うように構成され、
前記アンチマルウェアエンジンは、
前記第1の評判インジケータを受信したことに応答して、前記ターゲットエンティティが悪意のあるものであるかどうかを判定するために、第1のプロトコルを利用することと、
前記第2の評判インジケータを受信したことに応答して、前記ターゲットエンティティが悪意のあるものであるかどうかを判定するために、第2のプロトコルを利用することであって、前記第2のプロトコルは前記第1のプロトコルよりも計算コストが高くない、利用することと、
前記第3の評判インジケータを受信したことに応答して、前記ターゲットエンティティが悪意のあるものであるかどうかを判定するために、第3のプロトコルを利用することであって、前記第3のプロトコルは前記第1のプロトコルよりも計算コストが高い、利用することと
を行うように構成された、
クライアントシステム。
【請求項2】
請求項1に記載のクライアントシステムであって、前記評判マネージャは、
前記第2の評判インジケータまたは前記第3の評判インジケータを決定したことに応答して、前記第1の時間間隔の後の第2の時間間隔を決定することと、
前記第2の時間間隔を決定したことに応答して、前記ターゲットエンティティが前記第2の時間間隔中に所定のアクションの前記セットのうちのいずれかを実施したかどうかを判定することと、
それに応答して、前記ターゲットエンティティが前記第2の時間間隔中に所定のアクションの前記セットのうちのいずれをも実施しなかったときに、前記ターゲットエンティティの第4の評判インジケータを決定することであって、前記第4の評判インジケータは、前記ターゲットエンティティが悪意のあるものである可能性が、前記第2の評判インジケータによって示されたものよりも低いことを示す、決定することと
を行うようにさらに構成された、クライアントシステム。
【請求項3】
請求項1に記載のクライアントシステムであって、前記第2の評判インジケータは、前記ターゲットエンティティの起動から経過した時間に従って決定される、クライアントシステム。
【請求項4】
請求項1に記載のクライアントシステムであって、前記第1の時間間隔は、前記ターゲットエンティティの起動から経過した時間に従って決定される、クライアントシステム。
【請求項5】
請求項1に記載のクライアントシステムであって、前記第1の時間間隔は、前記第1の評判インジケータに従って決定される、クライアントシステム。
【請求項6】
請求項1に記載のクライアントシステムであって、前記第1の時間間隔は、前記ターゲットエンティティが、前記第1の時間間隔より前に、所定のアクションの前記セットのうちの第2のアクションを実施したかどうかに従って決定される、クライアントシステム。
【請求項7】
請求項1に記載のクライアントシステムであって、前記第2の評判インジケータを決定することは、前記ターゲットエンティティが悪意のあるものである前記確率を、前記ターゲットエンティティの起動から経過した時間に従って決定された量だけ減少させることを含む、クライアントシステム。
【請求項8】
請求項1に記載のクライアントシステムであって、前記第3の評判インジケータを決定することは、前記ターゲットエンティティが悪意のあるものである前記確率を、前記第1のアクションのタイプに従って決定された量だけ増加させることを含む、クライアントシステム。
【請求項9】
請求項1に記載のクライアントシステムであって、前記第3の評判インジケータを決定することは、前記ターゲットエンティティが悪意のあるものである前記確率を、前記ターゲットエンティティが前記第1のアクションより前に第2のアクションを実施したかどうかに従って決定された量だけ増加させること含む、クライアントシステム。
【請求項10】
請求項1に記載のクライアントシステムであって、前記評判マネージャは、
前記第3の評判インジケータを決定したことに応答して、前記ターゲットエンティティが所定のアクションの前記セットのうちの第2のアクションを実施したかどうかを判定することと、
それに応答して、前記ターゲットエンティティが前記第2のアクションを実施したときに、前記ターゲットエンティティの第4の評判インジケータを決定することであって、前記第4の評判インジケータは、前記ターゲットエンティティが悪意のあるものである可能性が、前記第3の評判インジケータによって示されたものよりも高いことを示す、決定することと
を行うようにさらに構成された、クライアントシステム。
【請求項11】
請求項1に記載のクライアントシステムであって、前記評判マネージャは、
前記第3の評判インジケータを決定したことに応答して、前記クライアントシステム上で実行している別のエンティティの第4の評判インジケータを決定することであって、前記別のエンティティは前記ターゲットエンティティの構成要素を含む、決定すること
を行うようにさらに構成された、クライアントシステム。
【請求項12】
請求項1に記載のクライアントシステムであって、前記第1のアクションは、前記ターゲットエンティティが、前記クライアントシステム上で実行している別のエンティティにコードのセクションを注入することを含み、前記評判マネージャは、前記第3の評判インジケータを決定したことに応答して、前記クライアントシステム上で実行している前記別のエンティティの第4の評判インジケータを決定することであって、前記第4の評判インジケータは、前記
別のエンティティが悪意のあるものである可能性が、前記ターゲットエンティティと同じくらいであることを示す、決定することを行うようにさらに構成された、クライアントシステム。
【請求項13】
複数のクライアントシステムとの評判管理トランザクションを実施するように構成された少なくとも1つのハードウェアプロセッサを備えるサーバコンピュータシステムであって、評判管理トランザクションは、
前記複数のクライアントシステムのうちのクライアントシステムから受信された要求に応答して、エンティティ評判データベースからターゲットエンティティの第1の評判インジケータを取り出すことであって、前記第1の評判インジケータは前記ターゲットエンティティが悪意のあるものである確率を示す、取り出すことと、
前記第1の評判インジケータを取り出したことに応答して、前記第1の評判インジケータを前記クライアントシステムに送信することと、
前記第1の評判インジケータを送信したことに応答して、前記クライアントシステムから前記ターゲットエンティティの第2の評判インジケータを受信することと、
前記第2の評判インジケータを受信したことに応答して、前記第1の評判インジケータと前記第2の評判インジケータとを比較することと、
それに応答して、前記第2の評判インジケータが、前記ターゲットエンティティが悪意のあるものである確率が、前記第1の評判インジケータによって示されたものよりも低いことを示すときに、前記第2の評判インジケータを、前記複数のクライアントシステムから受信された評判インジケータの集合に追加することであって、前記集合のすべてのメンバーは、前記ターゲットエンティティのインスタンスについて決定される、追加することと、
前記第2の評判インジケータを前記集合に追加したことに応答して、評判更新条件が満たされるかどうかを判定することと、
それに応答して、前記更新条件が満たされたときに、前記評判データベース中の前記第1の評判インジケータを、前記集合に従って決定された更新された評判インジケータと置き換えることと
を含み、前記第2の評判インジケータを決定することは、
前記第1の評判インジケータを受信したことに応答して、前記ターゲットエンティティが第1の時間間隔中に所定のアクションのセットのうちのいずれかを実施したかどうかを判定することと、
前記ターゲットエンティティが前記第1の時間間隔中に所定のアクションの前記セットのうちのいずれをも実施しなかったときに、前記第2の評判インジケータを、前記ターゲットエンティティが悪意のあるものである可能性が、前記第1の評判インジケータによって示されたものよりも低いことを示すように、構築することと、
前記ターゲットエンティティが所定のアクションの前記セットのうちの第1のアクションを実施したときに、前記第2の評判インジケータを、前記ターゲットエンティティが悪意のあるものである可能性が、前記第1の評判インジケータによって示されたものよりも高いことを示すように、構築することと
を行うために、前記クライアントシステムを利用することを含む、
サーバコンピュータシステム。
【請求項14】
請求項13に記載のサーバコンピュータシステムであって、前記更新条件が満たされるかどうかを判定することは、第1のメンバーを前記集合に追加してから経過した時間を決定することを含む、サーバコンピュータシステム。
【請求項15】
請求項13に記載のサーバコンピュータシステムであって、前記更新条件が満たされるかどうかを判定することは、前記集合のメンバーのカウントを決定することを含む、サーバコンピュータシステム。
【請求項16】
請求項13に記載のサーバコンピュータシステムであって、前記更新
された評判インジケータを決定することは、前記集合のすべてのメンバーのうちで、前記ターゲットエンティティが悪意のあるものである確率が最も高いことを示すように、前記更新
された評判インジケータを構築することを含む、サーバコンピュータシステム。
【請求項17】
請求項13に記載のサーバコンピュータシステムであって、前記第2の評判インジケータを決定することは、前記ターゲットエンティティが悪意のあるものである可能性が、第3の評判インジケータによって示されたものよりも低いことを示すように、前記第2の評判インジケータを構築することをさらに含み、前記第3の評判インジケータを決定することは、
前記第2の評判インジケータを決定することに備えて、前記第1の時間間隔より前の第2の時間間隔を決定することと、
前記第2の時間間隔を決定したことに応答して、前記ターゲットエンティティが前記第2の時間間隔中に所定のアクションの前記セットのうちのいずれかを実施したかどうかを判定することと、
それに応答して、前記ターゲットエンティティが前記第2の時間間隔中に所定のアクションの前記セットのうちのいずれをも実施しなかったときに、前記第3の評判インジケータを、前記ターゲットエンティティが悪意のあるものである可能性が、前記第1の評判インジケータによって示されたものよりも低いことを示すように、構築することと
を行うために、前記クライアントシステムを利用することを含む、
サーバコンピュータシステム。
【請求項18】
請求項13に記載のサーバコンピュータシステムであって、前記第2の評判インジケータは、前記ターゲットエンティティの起動から経過した時間に従って決定される、サーバコンピュータシステム。
【請求項19】
請求項13に記載のサーバコンピュータシステムであって、前記第1の時間間隔は、前記ターゲットエンティティの起動から経過した時間に従って決定される、サーバコンピュータシステム。
【請求項20】
請求項13に記載のサーバコンピュータシステムであって、前記第1の時間間隔は、前記第1の評判インジケータに従って決定される、サーバコンピュータシステム。
【請求項21】
請求項13に記載のサーバコンピュータシステムであって、前記第1の時間間隔は、前記ターゲットエンティティが、前記第1の時間間隔より前に、所定のアクションの前記セットのうちの第2のアクションを実施したかどうかに従って決定される、サーバコンピュータシステム。
【請求項22】
請求項13に記載のサーバコンピュータシステムであって、前記第2の評判インジケータを決定することは、前記ターゲットエンティティが悪意のあるものである前記確率を、前記ターゲットエンティティの起動から経過した時間に従って決定された量だけ減少させることを含む、サーバコンピュータシステム。
【請求項23】
命令のセットを記憶する非一時的コンピュータ可読媒体であって、命令の前記セットは、クライアントシステムのハードウェアプロセッサによって実行されたときに、前記クライアントシステムに、評判マネージャとアンチマルウェアエンジンとを形成させ、
前記クライアントシステムは、ターゲットエンティティを実行するように構成され、
前記評判マネージャは、
評判サーバから、ターゲットエンティティの第1の評判インジケータであって、前記ターゲットエンティティが悪意のあるものである確率を示す前記第1の評判インジケータを受信したことに応答して、前記評判インジケータを前記アンチマルウェアエンジンに送信することと、
前記第1の評判インジケータを受信したことに応答して、前記ターゲットエンティティが第1の時間間隔中に所定のアクションのセットのうちのいずれかを実施したかどうかを判定することと、
前記ターゲットエンティティが前記第1の時間間隔中に所定のアクションの前記セットのうちのいずれをも実施しなかったときに、前記ターゲットエンティティの第2の評判インジケータを決定することであって、前記第2の評判インジケータは、前記ターゲットエンティティが悪意のあるものである可能性が、前記第1の評判インジケータによって示されたものよりも低いことを示す、決定することと、
前記第2の評判インジケータを決定したことに応答して、前記第2の評判インジケータを前記アンチマルウェアエンジンと前記評判サーバとに送信することと、
前記ターゲットエンティティが所定のアクションの前記セットのうちの第1のアクションを実施したときに、前記ターゲットエンティティの第3の評判インジケータを決定することであって、前記第3の評判インジケータは、前記ターゲットエンティティが悪意のあるものである可能性が、前記第1の評判インジケータによって示されたものよりも高いことを示す、決定することと、
前記第3の評判インジケータを決定したことに応答して、前記第3の評判インジケータを前記アンチマルウェアエンジンと前記評判サーバとに送信することと
を行うように構成され、
前記アンチマルウェアエンジンは、
前記第1の評判インジケータを受信したことに応答して、前記ターゲットエンティティが悪意のあるものであるかどうかを判定するために、第1のプロトコルを利用することと、
前記第2の評判インジケータを受信したことに応答して、前記ターゲットエンティティが悪意のあるものであるかどうかを判定するために、第2のプロトコルを利用することであって、前記第2のプロトコルは前記第1のプロトコルよりも計算コストが高くない、利用することと、
前記第3の評判インジケータを受信したことに応答して、前記ターゲットエンティティが悪意のあるものであるかどうかを判定するために、第3のプロトコルを利用することであって、前記第3のプロトコルは前記第1のプロトコルよりも計算コストが高い、利用することと
を行うように構成された、
非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]本発明は、コンピュータシステムを悪意のある(malicious)ソフトウェアから保護するためのシステムおよび方法に関する。
【背景技術】
【0002】
[0002]マルウェアとしても知られる、悪意のあるソフトウェアは、世界中の多くのコンピュータシステムに影響を及ぼす。コンピュータウイルス、ワーム、ルートキット、およびスパイウェアなど、その多くの形態で、マルウェアは、何百万人ものコンピュータユーザに深刻なリスクをもたらし、特に、データおよび機密情報の損失、プライバシーの侵害、個人情報の盗難、生産性の損失の影響を受けやすくしている。
【0003】
[0003]セキュリティソフトウェアは、ユーザのコンピュータシステムに感染しているマルウェアを検出し、そのようなマルウェアを除去し、および/または無能力にするために使用され得る。いくつかのマルウェア検出技法が、当技術分野で知られている。いくつかは、コンテンツベースであり、マルウェアエージェントのコードのフラグメントを、マルウェアを示すシグネチャのライブラリと照合することに依拠する。一般に、挙動的として知られる、他の従来の技法は、マルウェアエージェントの疑わしいまたはマルウェアを示すアクションのセットを検出する。
【0004】
[0004]セキュリティソフトウェアは、ユーザのコンピュータシステムに著しい計算負担をかけ、性能およびユーザエクスペリエンスに対する測定可能な影響をしばしば有し得る。悪意のあるソフトウェアの絶え間ない急増が、マルウェア検出ルーチンの複雑性ならびにシグネチャデータベースのサイズをさらに増加させる。計算コストを低下させるために、セキュリティソフトウェアは、様々な最適化プロシージャを組み込み得る。
【発明の概要】
【0005】
[0005]一態様によれば、クライアントシステムが、ターゲットエンティティと、評判(reputation)マネージャと、アンチマルウェアエンジン(anti-malware engine)とを実行するように構成された少なくとも1つのハードウェアプロセッサを備える。評判マネージャは、評判サーバから、ターゲットエンティティが悪意のあるものである確率を示す、ターゲットエンティティの第1の評判インジケータを受信したことに応答して、評判インジケータをアンチマルウェアエンジンに送信するように構成される。評判マネージャは、第1の評判インジケータを受信したことに応答して、ターゲットエンティティが第1の時間間隔中に所定のアクションのセットのうちのいずれかを実施したかどうかを判定するようにさらに構成される。ターゲットエンティティが第1の時間間隔中に所定のアクションのセットのうちのいずれをも実施しなかったとき、評判マネージャは、ターゲットエンティティの第2の評判インジケータを決定することであって、第2の評判インジケータは、ターゲットエンティティが悪意のあるものである可能性が、第1の評判インジケータによって示されたものよりも低いことを示す、決定することを行う。評判マネージャはさらに、第2の評判インジケータをアンチマルウェアエンジンと評判サーバとに送信する。ターゲットエンティティが所定のアクションのセットのうちの第1のアクションを実施したとき、評判マネージャは、ターゲットエンティティの第3の評判インジケータを決定することであって、第3の評判インジケータは、ターゲットエンティティが悪意のあるものである可能性が、第1の評判インジケータによって示されたものよりも高いことを示す、決定することを行う。評判マネージャはさらに、第3の評判インジケータをアンチマルウェアエンジンと評判サーバとに送信する。アンチマルウェアエンジンは、第1の評判インジケータを受信したことに応答して、ターゲットエンティティが悪意のあるものであるかどうかを判定するために、第1のプロトコルを利用するように構成される。アンチマルウェアエンジンは、第2の評判インジケータを受信したことに応答して、ターゲットエンティティが悪意のあるものであるかどうかを判定するために、第2のプロトコルを利用することであって、第2のプロトコルは第1のプロトコルよりも計算コストが高くない、利用することを行うようにさらに構成される。アンチマルウェアエンジンは、第3の評判インジケータを受信したことに応答して、ターゲットエンティティが悪意のあるものであるかどうかを判定するために、第3のプロトコルを利用することであって、第3のプロトコルは第1のプロトコルよりも計算コストが高い、利用することを行うようにさらに構成される。
【0006】
[0006]別の態様によれば、サーバコンピュータシステムが、複数のクライアントシステムとの評判管理トランザクションを実施するように構成された少なくとも1つのハードウェアプロセッサを備え、評判管理トランザクションは、複数のクライアントシステムのうちのクライアントシステムから受信された要求に応答して、エンティティ評判データベースからターゲットエンティティの第1の評判インジケータを取り出すことであって、第1の評判インジケータはターゲットエンティティが悪意のあるものである確率を示す、取り出すことを含む。評判管理トランザクションは、第1の評判インジケータを取り出したことに応答して、第1の評判インジケータをクライアントシステムに送信することと、第1の評判インジケータを送信したことに応答して、クライアントシステムからターゲットエンティティの第2の評判インジケータを受信することとをさらに含む。評判管理トランザクションは、第2の評判インジケータを受信したことに応答して、第1の評判インジケータと第2の評判インジケータとを比較することをさらに含む。応答して、第2の評判インジケータが、ターゲットエンティティが悪意のあるものである確率が、第1の評判インジケータによって示されたものよりも低いことを示すとき、評判管理トランザクションは、第2の評判インジケータを、複数のクライアントシステムから受信された評判インジケータの集合に追加することであって、集合のすべてのメンバーが、ターゲットエンティティのインスタンスについて決定される、追加することをさらに含む。評判管理トランザクションは、第2の評判インジケータを集合に追加したことに応答して、評判更新条件が満たされるかどうかを判定することと、応答して、更新条件が満たされたとき、評判データベース中の第1の評判インジケータを、集合に応じて決定された更新された評判インジケータと置き換えることとをさらに含む。第2の評判インジケータを決定することは、第1の評判インジケータを受信したことに応答して、ターゲットエンティティが第1の時間間隔中に所定のアクションのセットのうちのいずれかを実施したかどうかを判定するために、クライアントシステムを利用することを含む。ターゲットエンティティが第1の時間間隔中に所定のアクションのセットのうちのいずれをも実施しなかったとき、第2の評判インジケータを決定することは、第2の評判インジケータを、ターゲットエンティティが悪意のあるものである可能性が、第1の評判インジケータによって示されたものよりも低いことを示すように、構築することと、ターゲットエンティティが所定のアクションのセットのうちの第1のアクションを実施したとき、第2の評判インジケータを、ターゲットエンティティが悪意のあるものである可能性が、第1の評判インジケータによって示されたものよりも高いことを示すように、構築することとをさらに含む。
【0007】
[0007]別の態様によれば、非一時的コンピュータ可読媒体が、命令のセットを記憶し、命令のセットは、クライアントシステムのハードウェアプロセッサによって実行されたとき、クライアントシステムに、評判マネージャとアンチマルウェアエンジンとを形成させる。クライアントシステムは、ターゲットエンティティを実行する。評判マネージャは、評判サーバから、ターゲットエンティティが悪意のあるものである確率を示す、ターゲットエンティティの第1の評判インジケータを受信したことに応答して、評判インジケータをアンチマルウェアエンジンに送信するように構成される。評判マネージャは、第1の評判インジケータを受信したことに応答して、ターゲットエンティティが第1の時間間隔中に所定のアクションのセットのうちのいずれかを実施したかどうかを判定するようにさらに構成される。ターゲットエンティティが第1の時間間隔中に所定のアクションのセットのうちのいずれをも実施しなかったとき、評判マネージャは、ターゲットエンティティの第2の評判インジケータを決定することであって、第2の評判インジケータは、ターゲットエンティティが悪意のあるものである可能性が、第1の評判インジケータによって示されたものよりも低いことを示す、決定することを行う。評判マネージャはさらに、第2の評判インジケータをアンチマルウェアエンジンと評判サーバとに送信する。ターゲットエンティティが所定のアクションのセットのうちの第1のアクションを実施したとき、評判マネージャは、ターゲットエンティティの第3の評判インジケータを決定することであって、第3の評判インジケータは、ターゲットエンティティが悪意のあるものである可能性が、第1の評判インジケータによって示されたものよりも高いことを示す、決定することを行う。評判マネージャはさらに、第3の評判インジケータをアンチマルウェアエンジンと評判サーバとに送信する。アンチマルウェアエンジンは、第1の評判インジケータを受信したことに応答して、ターゲットエンティティが悪意のあるものであるかどうかを判定するために、第1のプロトコルを利用するように構成される。アンチマルウェアエンジンは、第2の評判インジケータを受信したことに応答して、ターゲットエンティティが悪意のあるものであるかどうかを判定するために、第2のプロトコルを利用することであって、第2のプロトコルは第1のプロトコルよりも計算コストが高くない、利用することを行うようにさらに構成される。アンチマルウェアエンジンは、第3の評判インジケータを受信したことに応答して、ターゲットエンティティが悪意のあるものであるかどうかを判定するために、第3のプロトコルを利用することであって、第3のプロトコルは第1のプロトコルよりも計算コストが高い、利用することを行うようにさらに構成される。
【0008】
[0008]本発明の前述の態様および利点は、以下の詳細な説明を読み、図面を参照するとよりよく理解されるようになるであろう。
【図面の簡単な説明】
【0009】
【
図1】[0009]本発明のいくつかの実施形態による、複数のクライアントシステムと評判サーバとを備える例示的なアンチマルウェアシステムを示す図である。
【
図2】[0010]本発明のいくつかの実施形態による、コンピュータセキュリティ脅威から保護された、企業内イントラネットなどの隔離環境の例示的な詳細図である。
【
図3】[0011]本発明のいくつかの実施形態による、例示的な評判データベースエントリを示す図である。
【
図4-A】[0012]本発明のいくつかの実施形態による、クライアントシステムの例示的なハードウェア構成を示す図である。
【
図4-B】[0013]本発明のいくつかの実施形態による、評判サーバの例示的なハードウェア構成を示す図である。
【
図5】[0014]本発明のいくつかの実施形態による、クライアントシステムをコンピュータセキュリティ脅威から保護するように構成されたセキュリティアプリケーションを含む、クライアントシステム上で実行するソフトウェアオブジェクトの例示的なセットを示す図である。
【
図6】[0015]本発明のいくつかの実施形態による、セキュリティアプリケーションの例示的な構成要素を示す図である。
【
図7】[0016]本発明のいくつかの実施形態による、セキュリティアプリケーションの評判マネージャ構成要素とアンチマルウェアエンジン構成要素との間の例示的なデータ交換を示す図である。
【
図8】[0017]本発明のいくつかの実施形態による、クライアントシステムと評判サーバとの間の例示的なデータ交換を示す図である。
【
図9】[0018]本発明のいくつかの実施形態による、実行可能エンティティのフィンガープリントの例示的な構成要素を示す図である。
【
図10】[0019]本発明のいくつかの実施形態による、実行可能エンティティの例示的なセットおよびスーパーセットを示す図である。
【
図11】[0020]本発明のいくつかの実施形態による、クライアントシステム上で実行する実行可能エンティティに関連する例示的なデータ構造を示す図である。
【
図12-A】[0021]本発明のいくつかの実施形態による、セキュリティアプリケーションの評判マネージャ構成要素によって実施されるステップの例示的なシーケンスを示す図である。
【
図12-B】[0022]本発明のいくつかの実施形態による、
図11-Aのステップの例示的なシーケンスの続きを示す図である。
【
図12-C】[0023]本発明のいくつかの実施形態による、
図11-Aのステップの例示的なシーケンスの別の続きを示す図である。
【
図12-D】[0024]本発明のいくつかの実施形態による、
図11-Aのステップの例示的なシーケンスのまた別の続きを示す図である。
【
図13】[0025]本発明のいくつかの実施形態による、評判インジケータの例示的な時間的な発展を示す図である。
【
図14】[0026]本発明のいくつかの実施形態による、セキュリティアプリケーションのアンチマルウェアエンジン構成要素によって実施されるステップの例示的なシーケンスを示す図である。
【
図15】[0027]本発明のいくつかの実施形態による、評判サーバによって実施されるステップの例示的なシーケンスを示す図である。
【発明を実施するための形態】
【0010】
[0028]以下の説明では、構造間のすべての列挙された接続が、直接の動作的な接続、または中間構造を通しての間接の動作的な接続であり得ることを理解されたい。要素のセットは、1つまたは複数の要素を含む。要素の任意の列挙は、少なくとも1つの要素を指すと理解される。複数の要素は、少なくとも2つの要素を含む。別段に必要とされない限り、説明される方法ステップは、必ずしも特定の示される順序で実施される必要があるとは限らない。第2の要素から導出された第1の要素(たとえばデータ)は、第2の要素に等しい第1の要素、ならびに第2の要素および随意に他のデータを処理することによって生成された第1の要素を包含する。パラメータに従って決定(判定)または判断を行うことは、パラメータに従っておよび随意に他のデータに従って決定(判定)または判断を行うことを包含する。別段に規定されていない限り、何らかの量/データのインジケータは、量/データ自体であるか、または量/データ自体とは異なるインジケータであり得る。コンピュータセキュリティは、データおよび/またはハードウェアへの意図しないまたは無認可のアクセスと、データおよび/またはハードウェアの意図しないまたは無認可の変更と、データおよび/またはハードウェアの破壊とからユーザおよび機器を保護することを包含する。コンピュータプログラムは、タスクを行うプロセッサ命令のシーケンスである。本発明のいくつかの実施形態で説明されるコンピュータプログラムは、他のコンピュータプログラムのスタンドアロンソフトウェアエンティティまたはサブエンティティ(たとえば、サブルーチン、ライブラリ)であり得る。別段に規定されていない限り、プロセスは、コンピュータプログラムのインスタンスを表し、別個のメモリスペースと少なくとも実行スレッドとを有し、メモリスペースは、プロセッサ命令のセットの符号化(たとえば、機械コード)を記憶する。別段に規定されていない限り、ハッシュは、ハッシュ関数の出力である。別段に規定されていない限り、ハッシュ関数は、シンボル(たとえば、文字、ビット)の可変長シーケンスを固定長ビット列にマッピングする数学的変換である。コンピュータ可読媒体は、磁気、光、および半導体ストレージ媒体などの非一時的媒体(たとえばハードドライブ、光ディスク、フラッシュメモリ、DRAM)、ならびに導電性ケーブルおよび光ファイバーリンクなどの通信リンクを包含する。いくつかの実施形態によれば、本発明は、とりわけ、本明細書で説明される方法を実施するようにプログラムされたハードウェア(たとえば1つまたは複数のプロセッサ)を備えるコンピュータシステム、ならびに本明細書で説明される方法を実施するための命令を符号化するコンピュータ可読媒体を提供する。
【0011】
[0029]以下の説明は、本発明の実施形態を例として示し、必ずしも限定として示すとは限らない。
[0030]
図1は、本発明のいくつかの実施形態による、例示的なコンピュータセキュリティシステム5を示す。システム5は、通信ネットワーク20を介して接続された、クライアントシステム10a~cのセットと中央評判サーバ14aとを備える。中央評判サーバ14aは、さらに中央評判データベース16aに通信可能に結合され得る。ネットワーク20は、インターネットなどのワイドエリアネットワークであり得、ネットワーク20の部分は、ローカルエリアネットワーク(LAN)をも含み得る。
【0012】
[0031]システム5は、ネットワーク20に接続された隔離環境12a~bのセットをさらに備え得る。隔離環境は、たとえば、会社のイントラネットを表し得る。環境12a~bは、ファイアウォールおよび/または他の境界防御手段によって、ネットワーク20の残部から分離され得る。
図2は、すべてがローカルネットワーク120に接続された、クライアントシステム10d~eのセットとローカル評判サーバ14bとを含む、そのような隔離環境12を示す。ネットワーク120は、たとえば、ローカルエリアネットワークを表し得る。いくつかの実施形態では、隔離環境12は、ローカル評判サーバ14bに通信可能に結合された、環境固有のローカル評判データベース16bをさらに備え得る。
【0013】
[0032]クライアントシステム10a~eは、本発明のいくつかの実施形態による、コンピュータセキュリティ脅威から保護されたエンドユーザコンピュータシステムを表す。例示的なクライアントシステム10a~eは、パーソナルコンピュータ、タブレットパーソナルコンピュータ、携帯電話、携帯情報端末(PDA)などのモバイルコンピューティングおよび/または電気通信デバイス、ウェアラブルコンピューティングデバイス(たとえば、スマートウォッチ)、TVまたは音楽プレーヤなどの家庭用デバイス、あるいはプロセッサとメモリとを有する任意の他の電子デバイスを含む。クライアントシステム10a~eは、コンピュータセキュリティ会社の個々の顧客を表し得、いくつかのクライアントシステムが、同じ顧客に属し得る。
【0014】
[0033]クライアントシステム10a~eは、コンピュータセキュリティ動作の効率を増加させるために評判データを使用し得る。いくつかの実施形態では、評判サーバ14a~bは、クライアントシステム10a~eの要求時に評判データを扱い、たとえば、評判データを、評判データベース16a~bに記憶し、評判データベース16a~bから選択的に取り出し、そのようなデータを要求側クライアントシステムに送信する。そのようなトランザクションの詳細が、以下で与えられる。
【0015】
[0034]評判データベース16a~bは、様々な実行可能エンティティ(アプリケーション、オペレーティングシステムの構成要素、プロセス、ライブラリ、スクリプトなど)に関連する評判データを記憶するように構成され得る。評判データは、複数のエントリとして記憶され得、各エントリは別個の実行可能エンティティに対応する。
図3は、(本明細書では、エンティティフィンガープリント(entity fingerprint)70と呼ばれる)実行可能エンティティの識別トークンと、それぞれのエンティティが悪意のあるものである確率を示す評判インジケータ60とを備える、例示的な評判データベースエントリ17を示す。各評判データベースエントリは、インジケータ60が作成された瞬間および/またはそれぞれの評判インジケータの最新の更新の瞬間を示す、(TS0として表された)タイムスタンプをさらに含み得る。エントリ17は、それぞれの評判インジケータの有効性の持続時間を示す、評判寿命インジケータ(RL:reputation lifetime)をさらに備え得る。評判データについて限られた寿命を指定することによって、いくつかの実施形態は、そのようなデータの周期的リフレッシュを事実上強制し、したがって、それぞれのエンティティを用いた潜在的感染の拡散を閉じ込める。寿命インジケータは、実行可能エンティティ間で変動し得、悪意のあることまたは無害であることを証明されたいくつかのエンティティの評判は、無限の寿命を有し得る。エンティティフィンガープリントおよび評判インジケータが、以下でより詳細に説明される。
【0016】
[0035]いくつかの実施形態は、エンティティの現在の評判と、それぞれのエンティティの履歴評判(HR:historical reputation)とを区別する。現在の評判は、現在、クライアントシステム上に存在するかまたはその上で実行しているエンティティの評判を指す。本明細書では、それぞれの実行可能エンティティの別のインスタンスについて以前に計算され、データベース16aおよび/または16bに記憶された評判インジケータの値を示すために、履歴評判が使用される。履歴評判は、他のクライアントシステムから統合されたおよび/または過去の他のときに計算された、評判データを備え得る。履歴評判は、人間のセキュリティ分析者によってそれぞれのエンティティについて決定された評判を含み得る。そのような履歴評判は、自動的に決定された評判よりも多くの重みを決定プロセスにおいて与えられ得、それは、それらが、自動的に決定された評判よりも正確である可能性があるからである。
【0017】
[0036]
図1~
図2に示されている例示的な評判管理システムは、階層的に編成される。レイテンシを最小限に抑え、ユーザエクスペリエンスを改善するために、クライアントシステム10a~eは、ローカル評判データベース16b中の評判データを最初にルックアップし得、次いで、必要な場合、そのようなデータを中央評判データベース16aに要求し得る。したがって、いくつかの実施形態では、ローカルデータベース16bは、中央データベース16aのローカルキャッシュと見なされ得る。複数のクライアントシステム10a~eからの評判データを統合することによって、中央評判データベース16aは、新しい脅威に関する情報を迅速に収集し、それを他のクライアントシステムに分配し得る。
【0018】
[0037]
図2に示されている構成は、評判データを処理する環境固有の様式を可能にし得る。いくつかの実施形態では、ローカル評判データベース16bは、それぞれの隔離環境に合わせて特別に調整された評判インジケータを記憶する。1つのそのような例では、企業内イントラネットのクライアントシステム10d~eが、Microsoft Office(登録商標)など、広く使用されているソフトウェアアプリケーションXを実行する。アプリケーションXは、実行可能モジュールYをロードし、実行可能モジュールYは、それぞれのクライアントシステムがインターネットに接続される限り、マルウェアに攻撃されやすい。クライアントシステム10d~eがインターネットに接続されないとき(たとえば、環境12が、境界防御手段によって保護されるとき)、アプリケーションXは、インターネット接続性に関連する脆弱性という問題がもはやない。したがって、そのような脆弱性についてアプリケーションXを監視することは、システム10d~e上で(すなわち、隔離環境12内で)必要でないことがあるが、そのような監視は、インターネットに直接接続されたシステムにおいて重要であり得る。すなわち、アプリケーションXは、環境12の外部と比較して、環境12内でより高い信用性を有する。
【0019】
[0038]環境固有性の別の例では、企業が、プロプライエタリソフトウェアアプリケーションXを使用し、それは、典型的には、隔離環境12の外部で遭遇されない。したがって、アプリケーションXに関連する評判データが、他のクライアントシステムによって使用される可能性がない。いくつかの実施形態では、そのような評判データは、環境固有の評判データベース16bにのみ保存され、中央評判データベース16aに保存されない。そのような構成は、隔離環境12の外部で動作するクライアントについてならびに環境12内部で動作するクライアントについてのデータベースルックアップの効率を増加させ得る。
【0020】
[0039]
図4-Aは、本発明のいくつかの実施形態による、
図1~
図2のクライアントシステム10a~eなどのクライアントシステム10の例示的なハードウェア構成を示す。クライアントシステム10は、特に、企業サーバなどの企業コンピューティングデバイス、あるいはパーソナルコンピュータまたはスマートフォンなどのエンドユーザデバイスを表し得る。
図4-Aは、説明の目的でコンピュータシステムを示し、携帯電話またはウェアラブルなどの他のクライアントシステムは、異なる構成を有し得る。クライアントシステム10は、すべてがコントローラハブ44によって接続された、プロセッサ32と、メモリユニット34と、入力デバイス36のセットと、出力デバイス38のセットと、ストレージデバイス40のセットと、ネットワークアダプタ42のセットとを備える。
【0021】
[0040]プロセッサ32は、信号および/またはデータのセットを用いた計算および/または論理動作を実行するように構成された物理デバイス(たとえばマイクロプロセッサ、半導体基板上に形成されたマルチコア集積回路)を備える。いくつかの実施形態では、そのような論理動作は、プロセッサ命令のシーケンスの形態(たとえば機械コードまたは他のタイプのソフトウェア)でプロセッサ32に配信される。メモリユニット34は、命令を実行する過程において、プロセッサ32によってアクセスまたは生成されたデータ/信号を記憶する非一時的コンピュータ可読媒体(たとえばRAM)を備え得る。入力デバイス36は、ユーザがデータおよび/または命令をクライアントシステム10に導入することを可能にするそれぞれのハードウェアインターフェースおよび/またはアダプタを含む、特に、コンピュータキーボード、マウス、およびマイクロフォンを含み得る。出力デバイス38は、特に、ディスプレイスクリーンおよびスピーカー、ならびにシステム10がデータをユーザに通信することを可能にする、グラフィックカードなどのハードウェアインターフェース/アダプタを含み得る。いくつかの実施形態では、入力デバイス36と出力デバイス38とは、タッチスクリーンデバイスの場合のように、共通のハードウェアを共有し得る。ストレージデバイス40は、ソフトウェア命令および/またはデータの非一時的ストレージ、読取り、および書込みを可能にするコンピュータ可読媒体を含む。例示的なストレージデバイス40は、磁気および光ディスクならびにフラッシュメモリデバイス、ならびにCDおよび/またはDVDディスクおよびドライブなどのリムーバブル媒体を含む。ネットワークアダプタ42のセットは、クライアントシステム10がネットワーク20、120におよび/または他のデバイス/コンピュータシステムに接続することを可能にする。コントローラハブ44は、複数のシステム、周辺機器、およびチップセットバス、ならびに/あるいは図示されたハードウェアデバイスの相互通信を可能にするすべての他の回路を総称的に表す。たとえば、ハブ44は、特に、プロセッサ32をメモリ34に接続するノースブリッジ、および/または、プロセッサ32をデバイス36-38-40-42に接続するサウスブリッジを備え得る。
【0022】
[0041]
図4-Bは、評判サーバ14の例示的なハードウェア構成を示し、評判サーバ14は、
図1中の中央評判サーバ14aまたは
図2中のローカル評判サーバ14bを表し得る。サーバ14は、すべてがサーバコントローラハブ144によって接続された、サーバプロセッサ132、サーバメモリ134、サーバストレージデバイス140のセット、およびネットワークアダプタ142のセットを含む。デバイス132、134、140および142の動作は、上記で説明されたデバイス32、34、40および42の動作をミラーリングし得る。たとえば、サーバプロセッサ132は、信号および/またはデータのセットを用いた計算および/または論理動作を実行するように構成された集積回路を備え得る。サーバメモリ134は、計算を実行する過程において、プロセッサ132によってアクセスまたは生成されるデータ/信号を記憶する非一時的コンピュータ可読媒体(たとえばRAM)を備え得る。ネットワークアダプタ142は、サーバ14がネットワーク20、120などのコンピュータネットワークに接続することを可能にする。いくつかの実施形態では、評判サーバ14は、以下でさらに示されるように、クライアントシステム上で実行するソフトウェア構成要素からなる。
【0023】
[0042]
図5は、本発明のいくつかの実施形態による、クライアントシステム10上で実行するソフトウェアオブジェクトの例示的なセットを示す。ゲストオペレーティングシステム(OS)46が、クライアントシステム10のハードウェアへのインターフェースを与えるソフトウェアを備え、ソフトウェアアプリケーション52a~cおよび54のセットのためのホストとして働く。OS46は、特に、Windows(登録商標)、MacOS(登録商標)、Linux(登録商標)、iOS(登録商標)、またはAndroid(商標)などの任意の広く利用可能なオペレーティングシステムを含み得る。アプリケーション52a~cは、特に、ワードプロセシング、画像処理、データベース、ブラウザおよび電子通信アプリケーションなど、任意のユーザアプリケーションを総称的に表す。いくつかの実施形態では、セキュリティアプリケーション54は、クライアントシステム10をコンピュータセキュリティ脅威から保護するために、以下で詳述されるようにアンチマルウェアおよび/または他の動作を実施するように構成される。セキュリティアプリケーション54は、スタンドアロンプログラムであり得るか、またはソフトウェアスイートの一部を形成し得る。セキュリティアプリケーション54は、少なくとも部分的に、カーネルレベルのプロセッサ特権で実行し得る。
【0024】
[0043]
図5に示されている実施形態に対する代替実施形態では、OS46およびアプリケーション52a~cは、クライアントシステム10上で実行するハイパーバイザによって公開される仮想マシン(VM)内で実行し得る。そのような実施形態は、特に、サーバファームおよびサービスとしてのインフラストラクチャ(IAAS:infrastructure as a service)システムなどのクラウドベースアーキテクチャを保護するのに好適であり得る。仮想マシンは、一般に、物理コンピューティングシステムの抽象化(たとえば、ソフトウェアエミュレーション)として当技術分野で知られており、VMは、仮想プロセッサ、仮想ストレージなどを備える。そのような実施形態では、セキュリティアプリケーション54は、それぞれのVM内で実行するか、またはそれぞれのVMの外部で実行し得る。外部で実行するとき、セキュリティアプリケーション54は、ハイパーバイザのプロセッサ特権レベルで実行するか、または別個の仮想マシン内で実行し得る。単一のセキュリティアプリケーションが、それぞれのクライアントシステム上で実行する複数のVMを保護し得る。
【0025】
[0044]
図6は、本発明のいくつかの実施形態による、セキュリティアプリケーション54の例示的な構成要素を示す。アプリケーション54は、評判マネージャ58に通信可能に結合されたアンチマルウェアエンジン56を備える。アンチマルウェアエンジン56は、クライアントシステム10が悪意のあるソフトウェアを備えるかどうかを判定するように構成される。いくつかの実施形態では、エンジン56は、さらに、マルウェアを削除するか、またはさもなければマルウェアを無能力にし得る。マルウェア検出を実施するために、エンジン56は、当技術分野で知られている任意の方法を採用し得る。アンチマルウェア方法は、概して、2つの広いカテゴリー、すなわち、コンテンツベースと挙動的とに分類される。コンテンツベースの方法(content-based method)は、典型的には、一般にシグネチャとして知られる、マルウェアを示すパターンについて、ソフトウェアエンティティのコードを走査する。挙動的方法(behavioral method)は、典型的には、それぞれのエンティティによって実施された、特定のマルウェアを示すアクションを検出するために、実行エンティティ(executing entity)を監視する。ソフトウェアエンティティが、悪意のある動作のセット、たとえば、プライバシーの損失、個人または機密データの損失、あるいはユーザの側の生産性の損失を助長する動作のうちのいずれかを実施するように構成された場合、ソフトウェアエンティティは悪意のあるものと見なされる。いくつかの例は、ユーザが知ることまたはユーザの許可なしにデータを変更、消去または暗号化することと、クライアントシステム10上で実行する合法プログラムの実行を改変することとを含む。悪意のある動作の他の例は、特に、パスワード、ログイン詳細、クレジットカードまたは銀行口座データ、あるいは機密文書など、ユーザの個人または機密データを抽出することを含む。悪意のあるアクションの他の例は、サードパーティとのユーザの会話および/またはデータ交換に関する無認可の傍受、またはさもなければ盗聴を含む。他の例は、迷惑な通信(スパム、広告)を送るためにクライアントシステム10を利用することと、サービス妨害攻撃(denial-of-service attack)の場合のように、悪意のあるデータ要求をリモートコンピュータシステムに送るためにクライアントシステム10を利用することとを含む。
【0026】
[0045]いくつかの実施形態では、エンジン56は、クライアントシステム10上に存在するおよび/またはその上で実行中の実行可能エンティティのセットを監視および/または分析する。例示的な実行可能エンティティは、特に、アプリケーションと、プロセスと、実行可能モジュールとを含む。実行可能モジュールは、プロセスの構成要素またはビルディングブロックであり、それぞれの構成要素は実行可能コードを備える。実行可能モジュールは、それぞれのプロセスの起動および/または実行中にメモリにロードされ、および/またはメモリからアンロードされ得る。例示的な実行可能モジュールは、特に、(Windows(登録商標)におけるEXEファイルなどの)プロセスの主実行ファイルと、(動的リンクライブラリ(dynamic-linked library)-DLLなどの)共有ライブラリとを含む。いくつかの実施形態では、プロセスの主実行可能モジュールは、それぞれのプロセスが起動されるときに実行される第1の機械命令を含む。ライブラリは、プログラムの様々な機能的態様を実装する、コードの自己完結型セクションである。共有ライブラリは、2つ以上のプログラムによって独立して使用され得る。実行可能エンティティの他の例は、特に、それぞれのプロセスによって呼び出された実行可能スクリプト(たとえば、Perl、Visual Basic(登録商標)、JavaScript(登録商標)、およびPythonスクリプト)と、解釈されたファイル(たとえばJava(登録商標)JARファイル)と、他のエンティティによってそれぞれのプロセスに注入されたいくつかのコードとを含む。コード注入(code injection)は、それぞれのエンティティの元の機能を改変するために、コードのシーケンスを別のエンティティのメモリスペースに導入するための方法のファミリーを示すために当技術分野で使用される総称である。ここで説明されるシステムおよび方法が、他の種類の実行可能モジュールに変換され得ることを当業者は諒解されよう。
【0027】
[0046]いくつかの実施形態では、評判マネージャ58は、アプリケーション、プロセス、およびライブラリを含む様々な実行可能エンティティ(ソフトウェアオブジェクト)についての評判データを決定することと、そのようなデータを、評判データベースに記憶し、および/または評判データベースから取り出すことと、そのようなデータをアンチマルウェアエンジン56に送信することとを行うように構成される。いくつかの実施形態では、評判マネージャ58は、エンティティマネージャ62と、アクティビティモニタ64と、フィンガープリント計算器66と、評判更新スケジューラ68とを備える。これらの構成要素の動作は、以下でさらに説明される。
図6に示されている実施形態に対する代替実施形態では、エンティティマネージャ62およびアクティビティモニタ64は、アンチマルウェアエンジン56の一部であり得る。
【0028】
[0047]いくつかの実施形態では、評判マネージャ58に通信可能に結合されたクライアント評判データベース16cが、評判データをそれぞれのクライアントシステムのコンピュータ可読媒体に一時的に記憶するように構成される。クライアント評判サーバ14cは、クライアントシステム10上で実行するコンピュータプログラムを備え、サーバ14cは、選択的に、クライアント評判データベース16cに評判データを追加し、および/または取り出すように構成される。データベース16cは、上記で説明されたデータベース階層の一部を形成し、少なくとも部分的に、ローカルおよび/または中央評判データベース16a~bのキャッシュとして機能し得る。
図6に示されている例示的な構成では、評判マネージャ58は、リモートサーバ14a~bとデータを交換するために、通信マネージャ69を利用する。
【0029】
[0048]
図7は、マネージャ58とエンジン56との間の例示的なデータ交換を示す。評判マネージャ58は、たとえば、ターゲットエンティティに関連する評判インジケータ60をエンジン56に通信することによって、アンチマルウェア動作の効率を増加させるためにアンチマルウェアエンジン56と協働する。いくつかの実施形態では、評判インジケータ60は、それぞれの実行可能エンティティが悪意のあるものである確率を示す。例示的な評判インジケータ60は、最小値(たとえば、0)から最大値(たとえば、100)に及ぶ数値評判スコアを含む。例示的な一実施形態では、高い評判スコアは、それぞれのエンティティが無害な(悪意のない)ものである高い確率を示し、低いスコアは、悪意の疑い(suspicion of malice)、または悪意の未知の(unknown)/現在不確定の確率を示す。他の実施形態は、低いスコアが、高いスコアよりも高い信用度を示す逆スケールを使用し得る。評判インジケータは、最小値と最大値との間を連続的に変動し得るか、または所定の個別プラトーのセット(たとえば、10、25、50、100)の間で次々変わり得る。別の実施形態では、評判インジケータ60は、複数のラベル、たとえば「信用できる(trusted)」、「中程度に信用できる(moderately trusted)」、「信用できない(untrusted)」、「未知の」から値をとり得る。
【0030】
[0049]評判インジケータ60を受信したことに応答して、アンチマルウェアエンジン56のいくつかの実施形態は、信用できないまたは未知のエンティティとは対照的に、信用できるエンティティに優遇措置を与える。たとえば、エンジン56は、信用できるオブジェクトを走査/監視するために緩やかなセキュリティプロトコルを使用し、未知のまたは信用できないオブジェクトを走査/監視するために厳しいセキュリティプロトコルを使用し得、緩やかなセキュリティプロトコルは、厳しいセキュリティプロトコルよりも計算コストが高くない。1つのそのような例では、緩やかなセキュリティプロトコルは、エンジン56に、信用できるオブジェクトを走査するためにマルウェア検出方法のサブセットのみおよび/またはマルウェア識別ヒューリスティックのサブセットのみを利用するように命令し得るが、厳しいセキュリティプロトコルは、エンジン56にとって利用可能な方法および/またはヒューリスティックのフルセットを使用し得る。計算コストは、概して、プロセッサクロックサイクルのカウントおよび/または特定のプロシージャを実行することを必要とされるメモリに従って構築され得る。したがって、より多くのクロックサイクルおよび/またはより多くのメモリを必要とするプロシージャ/プロトコルは、より少数のクロックサイクルおよび/またはより少ないメモリを必要とするプロシージャ/プロトコルよりも、計算コストが高いと見なされ得る。
【0031】
[0050]いくつかの実施形態では、評判インジケータ60は、たとえば、それぞれの実行可能エンティティによって実施された様々なアクションに応答して、時間的に変動する。高い評判が信用を示す一例では、ターゲットエンティティの評判は、それぞれのエンティティが、マルウェアを示すアクションを実施しないとすれば、時間的に増加する。それぞれの評判はまた、ターゲットエンティティのいくつかのアクションに応答して減少し得る。いくつかの実施形態では、ターゲットエンティティの評判は、たとえば、別のエンティティからコードの注入を受けたことに応答して、それぞれのエンティティの子エンティティによって実施されたマルウェアを示すアクションに応答してなど、それぞれのターゲットエンティティに関係する他のエンティティのアクションに応答して変化し得る。評判マネージャ58は、
図7に示されているように、アンチマルウェアエンジン56からターゲットエンティティの様々なアクションに関するセキュリティ通知を受信し得る。
【0032】
[0051]いくつかの実施形態では、評判マネージャ58は、評判データベースの階層においてターゲットエンティティの評判インジケータをルックアップする。通信遅延およびデータトラフィックを最小限に抑えるために、評判マネージャ58は、最初に、クライアントデータベース16cから評判データを取り出すことを試み得る。評判マネージャ58が、マッチするデータをクライアントデータベース16c中で見つけることができないとき、マネージャ58は、次いで、ローカルデータベース16bに問い合わせ得る。次いで、求められているデータが依然として見つからないとき、マネージャ58は、引き続き、求められているデータを、リモート、中央評判データベース16aに要求し得る。
図8は、クライアントシステム10と(それぞれ
図1、
図2、および
図6中のサーバ14a~b~cを総称的に表す)リモート評判サーバ14との間のデータ交換を示す。いくつかの実施形態では、クライアントとリモート評判サーバとの間のそのような通信は、中間者攻撃を回避するために暗号化される。クライアントシステム10は、評判要求71をサーバ14に送信し得、要求71は、ターゲットエンティティのエンティティフィンガープリントなどの識別トークンを示す。応答して、サーバ14は、(それぞれ
図1および
図2中のデータベース16aおよび/または16bを総称的に表す)データベース16から、それぞれのターゲットエンティティに対応する評判インジケータ60を選択的に取り出し、インジケータ60をクライアントシステム10に送信し得る。クライアントシステム10はまた、評判報告73をサーバ14に送信し得、報告73は、データベース16に記憶することを意図された更新された評判インジケータを示す。
【0033】
[0052]実行可能エンティティと評判インジケータとの間の明確な関連付けを可能にするために、各実行可能エンティティは、本明細書ではエンティティフィンガープリントと呼ばれる一意のトークンによって識別される。いくつかの実施形態では、フィンガープリント計算器66が、ターゲットエンティティと実行可能モジュールとについてのそのようなフィンガープリントを計算するように構成される。フィンガープリントは、当技術分野で知られている任意の方法を使用して、たとえばハッシングを介して、生成され得る。ハッシングは、それぞれのオブジェクトのハッシュとして知られる固定サイズの数またはビット列を取得するために、ハッシュ関数をオブジェクトの一部に(たとえば、コードのセクションに、またはオブジェクト全体に)適用することを備える。例示的なハッシュ関数は、セキュアハッシュ(SHA)アルゴリズムと、メッセージダイジェスト(MD)アルゴリズムとを含む。
【0034】
[0053]好ましい実施形態では、エンティティフィンガープリント70は、それぞれのエンティティの個々の構成要素/ビルディングブロックのフィンガープリントのセットに従って決定される。
図9に示されている例では、実行可能エンティティ80は、実行可能モジュール82a~cのセットを備える。たとえば、Windows(登録商標)環境では、モジュール82a~cは、それぞれ、主実行ファイルと2つのDLLとを備え得る。他の例示的な実施形態では、モジュール82a~cは、他のエンティティ構成要素(たとえば、スクリプト、JARファイル、コードの注入された部分など)を表し得る。ここで説明されるシステムおよび方法が、他の種類のビルディングブロックおよび他レベルのグラニュラリティに変換され得ることを、当業者は諒解されよう。
【0035】
[0054]いくつかの実施形態では、モジュールフィンガープリント74a~c(たとえば、ハッシュ)が、実行可能エンティティ80の構成要素の各々について計算される。次いで、フィンガープリント計算器66は、たとえば、モジュールフィンガープリント74a~cを順位リストとして配置することによって、および/またはモジュールフィンガープリント74a~cを連結することによって、モジュールフィンガープリント74a~cの組合せとしてエンティティフィンガープリント70を決定し得る。フィンガープリントの比較およびルックアップを容易にするために、いくつかの実施形態は、第2のハッシュ関数をモジュールフィンガープリント74a~cの連結/リストに適用し得る。いくつかの実施形態では、エンティティフィンガープリント70は、経路インジケータのリストをさらに備え、各経路インジケータは、対応する構成要素/モジュールの経路またはロケーションを示す。それぞれの構成要素が、注入されたコード(injected code)の部分であるとき、エンティティフィンガープリント70は、それぞれの部分のメモリアドレスおよび/またはサイズを符号化し得る。
【0036】
[0055]上記のように一意に構成された各エンティティフィンガープリント70は、たとえば、オペレーティングシステム46によって見られるように、実行可能エンティティ自体ではなく、構成要素/ビルディングブロックの特定の組成または配置を表す。一般に、オペレーティングシステムは、各実行可能エンティティに一意の識別子(たとえば、プロセスID)を割り当て、一意の識別子は、それぞれのエンティティの組成がエンティティの寿命中に変化する場合でさえ、それぞれのエンティティの全寿命中に変化しないままである。対照的に、本発明のいくつかの実施形態では、実行可能エンティティの組成が変化するとき(たとえば、プロセスが、ライブラリを動的にロードおよびアンロードするとき)、それに応じて、エンティティフィンガープリント70と、したがってそれぞれのエンティティの識別情報とが変化し得る。別段に述べれば、いくつかの実施形態では、エンティティの組成が変化するとき、元のエンティティは存在しなくなり、新しいエンティティが作成される。いくつかの実施形態は、評判インジケータを各エンティティフィンガープリントと一意に関連付けるので、実行可能エンティティの組成が変化するとき、それの評判も変化し得る。
【0037】
[0056]構成要素/ビルディングブロックの特定の組合せが、
図10に示されているように、複数の実行可能エンティティにおいて現れ得る。別のエンティティXのすべての構成要素を有するエンティティYは、本明細書では、エンティティXのエンティティスーパーセットのメンバーであると言われる。
図9の例では、セット84aは、エンティティ80aのエンティティスーパーセットであり、セット84bは、エンティティ80aとエンティティ80bの両方のエンティティスーパーセットである。対照的に、エンティティ80dは、モジュールA.exeを含んでいないので、エンティティ80dは、エンティティ80a~cのいずれのエンティティスーパーセットのメンバーでもない。いくつかの実施形態では、エンティティの評判は、以下で詳細に示されるように、それぞれのエンティティのエンティティスーパーセットのメンバーの評判に影響を及ぼし得、次に、前記メンバーの評判の影響を受け得る。
図9の例では、エンティティ80aの評判の変化が、エンティティ80b~cの評判の変化を生じ得る。
【0038】
[0057]いくつかの実施形態では、エンティティマネージャ62(
図6)は、本明細書では評判テーブルと呼ばれるデータ構造を維持し、これは、クライアントシステム10上に存在し、および/またはその上で実行する複数の実行可能エンティティ、ならびにそのようなエンティティ間の関係のセットを記述する。例示的な評判テーブルは複数のエントリを備え、各エントリは実行可能エンティティに対応する。1つのそのような評判テーブルエントリ86が、
図11に示されている。エントリ86は、それぞれのエンティティのエンティティフィンガープリント70と、オペレーティングシステム46によってそれぞれの実行可能エンティティに割り当てられたエンティティID(EID)とを備える。それぞれのエンティティがプロセスであるとき、例示的なEIDは、Windows(登録商標)におけるプロセスID-PIDを備える。そのような構成は、それがフィンガープリント70とEIDとの間の即時関連付けを可能にするので、望ましいことがある。(たとえば、ライブラリを動的にロードすることによって)エンティティの組成が時間的に変化し得るので、同じEIDだが別個のフィンガープリントを有する複数の評判テーブルエントリがあり得る。さらに、クライアントシステム10上で同時に実行する同じエンティティの複数のインスタンスがあり得、したがって、同じフィンガープリントだが別個のEIDを有する複数の評判テーブルエントリがあり得る。原則として、各そのようなオブジェクトは、それ自体の挙動と評判とを有し得、したがって、他のオブジェクトから明確に監視/分析され得る。
【0039】
[0058]いくつかの実施形態では、エントリ86は、それぞれのエンティティの派生インジケータ(filiation indicator)、たとえば、それぞれのエンティティの親エンティティの識別子(親ID-PID)および/またはそれぞれのエンティティの子エンティティの識別子をさらに記憶し得る。例示的な子エンティティは、たとえば、Windows(登録商標)OSのCreateProcess関数を介して、またはLinux(登録商標)におけるフォーク機構を介して、親エンティティによって作成された、子プロセスである。エントリ68は、コードをそれぞれのエンティティに注入した実行可能エンティティの識別子のセット、および/またはそれぞれのエンティティがコードをそれに注入したエンティティの識別子のセットをも含み得る。エンティティフィンガープリントであり得るこれらの識別子は、注入されたエンティティID(injected entity ID)-INJIDによって表され得る。
【0040】
[0059]評判テーブルエントリ68は、現在のエンティティのエンティティスーパーセットのメンバーの識別子(スーパーセットメンバーID-SMID)のセットをさらに含み得る。いくつかの実施形態では、各SMIDは、それぞれのスーパーセットメンバーのエンティティフィンガープリントからなり得る。代替実施形態では、各SMIDは、それぞれのエンティティスーパーセットメンバーと関連する評判テーブルエントリへのポインタを含み得る。フィンガープリント70をPID、SMID、および/またはINJIDに関連付けることは、以下でより詳細に示されるように、親エンティティと子エンティティとの間の、エンティティとスーパーセットメンバーとの間の、およびコード注入に関与するエンティティ間の評判情報の伝搬を容易にし得る。
【0041】
[0060]ターゲットエンティティの現在の評判は、それぞれのエンティティの挙動に従って、および/またはそれぞれのエンティティの他のインスタンスの挙動に従って、時間的に変動し得る。いくつかの実施形態では、ターゲットエンティティが、疑わしいまたはマルウェアを示すアクションを実行しなかったとき、それぞれのエンティティの評判は、たとえば、所定のスケジュールに従って、時間的に増加し得る。評判更新スケジューラ68(
図6)は、たとえば、評判インジケータの次の更新が行われるべきである時間的瞬間と、現在の評判インジケータがそれだけ変化するべきである増分ΔRとを決定することによって、ターゲットエンティティについての評判更新をスケジュールするように構成され得る。
【0042】
[0061]時間データが、(たとえば、タイムスタンプとして)評判テーブルエントリ86のフィールドのセットに記憶され得、たとえば、
図11中の時間インジケータ88を参照されたい。1つのそのような時間インジケータが、それぞれのエンティティフィンガープリントに対応する評判インジケータの最新の更新の時間を示し得る。別の時間インジケータが、それぞれの評判インジケータの次のスケジュールされた更新についての時間を示し得る。したがって、複数のそのような評判更新時間が、各ターゲットエンティティの評判ダイナミクスを時間順に詳細に記録し得る。別の例示的な時間インジケータが、それぞれのエンティティの履歴評判の満了時間、たとえば、履歴評判についての次のデータベースルックアップを行う予定である瞬間を示し得る。履歴評判寿命は、実行可能エンティティ間で変動し得る。キャッシュ評判データについての限られた寿命を指定することによって、いくつかの実施形態は、ローカルまたはリモート評判サーバ14からの評判データのリフレッシュを事実上強制し、したがって、潜在的感染を閉じ込める。
【0043】
[0062]いくつかの実施形態では、アクティビティモニタ64(
図6)は、クライアントシステム10内で実行するアプリケーションおよびプロセスなどのエンティティのライフサイクルイベントの発生を検出するように構成される。例示的なライフサイクルイベントは、特に、実行可能エンティティの起動および/または終了と、それぞれのエンティティによるライブラリの動的ローディングおよび/またはアンローディングと、子エンティティの生成、コード注入とを含む。
【0044】
[0063]アクティビティモニタ64は、さらに、どのプロセスがどの実行可能モジュールをロードしたか、どのエンティティがどのエンティティの親または子であるか、どのエンティティが、コードを注入し、または注入されたコードをどのエンティティから受信したかなど、インターオブジェクト関係を決定し得る。いくつかの実施形態では、アクティビティモニタ64は、エンティティマネージャ62と協働して、各エンティティの評判テーブルエントリ68を、必要とされるデータ(たとえば、EID、PID、SMID、INJIDなど)でポピュレートする。エンティティの起動を検出することおよび/またはコード注入を検出することなどのタスクを実施するために、モニタ64は、いくつかのOS関数を呼び出すことまたはフックすることなど、当技術分野で知られている任意の方法を利用し得る。たとえば、Windows(登録商標)OSを実行するシステムでは、モニタ64は、実行可能モジュールのローディングを検出するために、LoadLibrary関数またはCreateFileMapping関数へのコールを傍受し得る。別の例では、モニタ64は、新しいプロセスの起動を検出するためにPsSetCreateProcessNotifyRoutineコールバックを登録し得、および/または注入されたコードの実行を検出するためにCreateRemoteThread関数をフックし得る。
【0045】
[0064]
図12-Aは、本発明のいくつかの実施形態における、評判マネージャ58によって実施されるステップの例示的なシーケンスを示す。ステップ302~304のシーケンスが、通知を待ち得る。いくつかの実施形態では、評判マネージャ58は、プロセスの起動、DLLのローディングなど、エンティティライフサイクルイベントの発生に関して、アクティビティモニタ64によって通知される。マネージャ58はまた、ある評判テーブルエントリが更新の予定であることを、スケジューラ68によって通知され得る。マネージャ58はさらに、ターゲットエンティティが、コンピュータセキュリティに関係し得るいくつかのアクションを実施したとき、アンチマルウェアエンジン56から通知を受信し得る(
図7参照)。通知が受信されたとき、ステップ304は、それぞれの通知のソースおよび/またはタイプを識別し得、それぞれの通知を生じるターゲットエンティティ、および/またはそれぞれの通知の影響を受けるエンティティをさらに識別し得る。いくつかの実施形態では、エンティティモニタ64は、そのようなエンティティの識別情報を、現在実行中の各エンティティを表すためにOS46によって使用されるデータ構造から決定し得る。たとえば、Windowsでは、各プロセスは、エグゼクティブプロセスブロック(EPROCESS)として表され、エグゼクティブプロセスブロックは、特に、それぞれのプロセスのスレッドの各々へのハンドルと、OS46が複数の実行プロセスからそれぞれのプロセスを識別することを可能にする一意のプロセスIDとを備える。同様のプロセス表現が、Linux(登録商標)および他のオペレーティングシステムにおいて利用可能である。2つ以上のエンティティが通知の影響を受けるとき、ステップ304は、それぞれのエンティティ間の関係を決定することをさらに含み得る。たとえば、親プロセスが子プロセスを起動するとき、エンティティモニタ64は、子および親の識別情報と、それらの関係のタイプ(派生)とを記録し得る。
【0046】
[0065]
図12-Bは、アクティビティモニタ64からの通知を受信したことに応答して、評判マネージャ58によって実行されるステップの例示的なシーケンスを示す。そのような通知は、一般に、ターゲットエンティティに関するライフサイクルイベントの発生を通信する。ステップ322において、フィンガープリント計算器66が、それぞれのターゲットエンティティのエンティティフィンガープリントを計算し得る。ステップ322は、ターゲットエンティティのモジュール/ビルディングブロックをリストすることと、各そのようなモジュールを保持するメモリセクションを識別することと、モジュールフィンガープリントを計算することと、個々のモジュールフィンガープリントに従ってエンティティフィンガープリントをアセンブルすることとを含み得る(
図9と関連する説明とを参照)。ステップ323において、エンティティマネージャ62は、同じエンティティID(EID)をもつオブジェクトがすでに追跡/分析されているかどうかを判定するために、評判テーブル中のターゲットエンティティのEIDをルックアップし得る。エンティティIDは、ターゲットエンティティを識別するためにオペレーティングシステムによって使用され、Windows(登録商標)環境では、例示的なEIDは、現在実行中のプロセスのプロセスID(PID)である。それぞれのEIDが新しい(ターゲットエンティティが実行可能オブジェクトの新しいインスタンスであることを示す)とき、ステップ325において、エンティティマネージャ62は、ターゲットエンティティを表すために新しい評判テーブルエンティティを作成し得る。それぞれのEIDが新しくないとき(たとえば、ターゲットエンティティのモジュール組成が変化しているとき、たとえば、プロセスがライブラリをロードしているとき)、ステップ324は、評判テーブルが、ターゲットエンティティと同じフィンガープリント70をもつエンティティを現在リストするかどうかを判定し得る。評判テーブルが、同じフィンガープリントをもつエントリをすでに含んでいるとき、評判マネージャ58は、以下で説明されるステップ326に進み得る。そのような状況は、たとえば、検出されたライフサイクルイベントが、すでに実行しているターゲットエンティティを指すときに生じ得る。ターゲットエンティティのフィンガープリントが新しい(同じフィンガープリントをもつエンティティが、評判テーブルにリストされない)とき、エンティティマネージャ62は、それぞれのターゲットエンティティのための新しいテーブルエントリを作成し得る。
【0047】
[0066]いくつかの実施形態では、エンティティのモジュール組成の変化が、エンティティフィンガープリントの変化を生じる。したがって、それぞれのエンティティは終了されていないが、フィンガープリントの観点から、古いエンティティが存在しなくなり、新しいエンティティがクライアントシステム10上に出現したかのよう見え得る。そのような場合、ならびに新しいエンティティが起動された場合、ステップ336において、評判マネージャ58は、それぞれのエンティティフィンガープリントに関連する履歴評判データをルックアップすることを試み得る。ステップ336は、たとえば、評判マネージャ58が評判要求71を評判サーバ14に送ることを含み得る(たとえば、
図8参照)。履歴評判データがそれぞれのフィンガープリントについて存在するとき、サーバ14は、そのようなデータをデータベース16から選択的に取り出し、インジケータ60をクライアントシステム10に送信し得る。そのような状況は、それぞれのエンティティのインスタンス(実行可能モジュールの組合せ)が前に観測され、場合によっては別個のクライアントシステム上で実行しており、それぞれのエンティティの評判が計算され、データベース16に記憶されたときに、生じ得る。評判インジケータ60を受信すると、ステップ338において、評判マネージャ58は、ターゲットエンティティの現在の評判インジケータを、それぞれのエンティティの履歴評判に従って決定された値に設定し得る。例示的な一実施形態では、現在の評判は、履歴評判に等しくなるように設定される。
【0048】
[0067]履歴評判がターゲットエンティティのために利用可能でないとステップ337が決定したとき、評判マネージャはステップ339に進む。この状況は、たとえば、新しいソフトウェア(たとえば、新しい製品またはソフトウェアアップデート)が市場に現れたとき、それぞれのエンティティについてのデータベースエントリが満了したとき、またはサーバ14が利用可能でない(たとえば、ネットワーク接続の欠如、サーバダウン)ときに、生じ得る。ステップ339において、エンティティマネージャ64は、ターゲットエンティティが、評判テーブルに現在リストされる親エンティティの子エンティティであるかどうかを判定し得る。はいのとき、ステップ340において、いくつかの実施形態は、ターゲットエンティティの評判を、親エンティティの評判に従って決定された(たとえば、親の評判に等しいか、またはそれよりも低い)値に設定する。
【0049】
[0068]ステップ341において、エンティティマネージャ64は、ターゲットエンティティのエンティティスーパーセットのメンバーが評判テーブル中に現在存在するかどうかを判定し得る。はいのとき、評判マネージャ58のいくつかの実施形態は、ターゲットエンティティの現在の評判を、スーパーセットメンバーエンティティの評判に従って決定された(たとえば、スーパーセットメンバーの評判に等しい)値に設定する。評判のそのような選定をサポートする推論は、スーパーセットメンバーがターゲットエンティティの実行可能モジュールの実質的過半数(またはすべて)を含むので、スーパーセットメンバーの評判からターゲットエンティティの評判が推測され得ると考える。
【0050】
[0069]親エンティティまたはスーパーセットメンバーエンティティがないとき、ステップ344において、評判マネージャ58は、ターゲットエンティティの現在の評判を所定のデフォルト値に設定し得る。たとえば、未知のエンティティの評判は、低い信用度を示す値(たとえば、信用できない、未知の、R=0)に設定され得る。また、初期評判は、ターゲットエンティティのタイプ、またはターゲットエンティティの特徴のセットに依存し得る。たとえば、インターネットからダウンロードされたエンティティは、それがデジタル署名されない場合、初期評判値R=0を受け、それが署名されるとき、初期評判値R=20%を受け得る。
【0051】
[0070]ステップ326において、更新スケジューラ68が、ターゲットエンティティの評判テーブルエントリの次の更新をスケジュールし得る。いくつかの実施形態では、ターゲットエンティティの評判は、時間的に変動する。たとえば、それぞれのエンティティが、疑わしいまたはマルウェアを示すと見なされるアクションを実施しないとき、および/あるいはターゲットエンティティがマルウェアを示すシグネチャにマッチするコードパターンを含まないとき、それぞれのエンティティの評判インジケータは、より高いレベルの信用を示す値のほうへ進行し得る(たとえば、Rは、100%の信用のほうへ増加し得る)。R値が高いほど高い信用を示す一実施形態における、評判インジケータについての例示的な変動シナリオが、
図13に示されている。図示された評判インジケータは、所定の値のセット、R
1、R
2、R
3などの間で次々変わり得る。評判のそのような変化は、所定の瞬間において発生し得、たとえば、Rは、(たとえば、それぞれのターゲットエンティティの作成の瞬間に対して測定される)時間インスタンスt
2において、値R
2から値R
3に増加し得る。
【0052】
[0071]値Rは、それぞれのターゲットエンティティの作成/起動から経過した時間に従って決定され得る。代替実施形態では、Rは、前のイベント(たとえば、評判の前の増加、セキュリティイベントなど)の発生から時間間隔Δtが経過した後に、増加し得る。いくつかの実施形態では、時間間隔Δtは、それら自体が時間的に変動し得る。たとえば、エンティティの早期では、評判増加が後の段階よりも低い頻度で起こり得る。別の例では、時間間隔の長さは、評判の現在の値に依存し得る。評判増分が、現在の評判値に比例し得る(たとえば、毎回、Rは20%だけ増加し得る)。評判増分ΔRも時間的に変動し得る。たとえば、Rは、エンティティの早期では小さい量だけ増加し、後の時間ではより大きい量だけ増加し得る。そのような評判ダイナミクスをサポートする論拠は、悪意のあるソフトウェアが、一般に、存在の早期の段階において(すなわち、起動のすぐ後に)そのアクティビティを実施するので、エンティティが、十分に長い時間の間、良く挙動するとき、エンティティが悪意のないものであると仮定することは安全であり得る、ということである。
【0053】
[0072]いくつかの実施形態では、時間間隔Δtおよび/または評判増分ΔRは、それらが、それぞれのターゲットエンティティのタイプに従って変動し得るという意味で、エンティティタイプ固有であり得る。たとえば、デジタル署名されるエンティティの評判ダイナミクスは、デジタル署名されないエンティティの評判ダイナミクスとは異なり得る。別の例では、エンティティの評判ダイナミクスは、それぞれのエンティティがインターネットにアクセスするように構成されるか否かに従って異なり得る。
【0054】
[0073]いくつかの実施形態では、評判更新をスケジュールすること(
図12-B中のステップ326)は、次の更新および/または評判増加についての時間間隔を決定することを含む。次いで、ステップ328が、それに応じて、それぞれのエンティティの評判テーブルエントリを更新する。ターゲットエンティティの現在の評判の変化は、他のエンティティ、たとえば、ターゲットエンティティの親エンティティ、またはターゲットエンティティのスーパーセットメンバーのエントリの現在の評判の変化をトリガし得る。そのようなとき、ステップ330において、評判マネージャ58が、そのような更新を実行する。ステップ332~334のシーケンスにおいて、評判マネージャ58は、評判インジケータ60をアンチマルウェアエンジン56と評判サーバ14とに送信する。
【0055】
[0074]
図12-Cは、更新スケジューラ68からの通知に応答して、評判マネージャ58によって実行されるステップの例示的なシーケンスを示す(
図12-A中のラベルB)。そのような通知は、一般に、ターゲットエンティティを識別し、それぞれのターゲットエンティティの評判インジケータが更新の予定であることを示す。ステップ356において、評判マネージャ58は、たとえば、それぞれのエンティティの評判テーブルエントリのフィールド(たとえば、
図11参照)に記憶された評判増分に従って、それぞれのエンティティの評判インジケータを更新し得る。ステップ358において、評判更新スケジューラ68は、たとえば、時間間隔Δtおよび評判増分ΔRを決定することと、これらの値をそれぞれのターゲットエンティティの評判テーブルエントリの対応するフィールドに書き込むこととによって、次の評判更新(ステップ360)をスケジュールし得る。評判増分ΔRは、絶対値として、または現在の評判の割合(fraction)(たとえば、20%)として決定され得る。ステップ360~364のシーケンスは、ターゲットエンティティに関係する他のエンティティのテーブルエントリを更新し、評判インジケータ60をアンチマルウェアエンジン56に送信する。
【0056】
[0075]さらなるステップ366において、評判マネージャ58は、ターゲットエンティティの評判の変化と、場合によっては他の関係するエンティティの評判の変化とを反映するために、評判データベース16の更新をトリガし得る。ステップ366は、更新された評判インジケータを備える評判報告73を評判サーバ14に送ることを含み得る(たとえば、
図8)。そのような更新は、新しい評判を、他のインスタンス同じターゲットエンティティを実行する他のクライアントシステムにとって利用可能にし、したがって、クライアントのネットワーク全体にわたってコンピュータセキュリティ知識を伝搬する。評判サーバ14が報告73を処理する例示的な様式について、
図15に関して下記を参照されたい。
【0057】
[0076]
図12-Dは、アンチマルウェアエンジン56からのセキュリティ通知に応答して、評判マネージャ58によって実施されるステップ(たとえば、
図7参照)の例示的なシーケンスを示す。そのような通知は、特定のターゲットエンティティが悪意の疑いがあるとアンチマルウェアエンジンが決定したときに生成され得る。いくつかの実施形態では、エンジン56は、セキュリティのために関連するイベントの、またはマルウェアを示すイベントの発生について、評判マネージャ58に通知し得る。例示的なイベントは、特に、メモリアクセス許可に違反する様式でメモリにアクセスする試みと、オペレーティングシステムのある関数を実行する試み(たとえば、ディスクファイルを作成すること、レジストリエントリを編集することなど)と、いくつかの動作を実施する試み(たとえば、コードを別のエンティティに注入すること、リモートサーバからファイルをダウンロードすること)とを含む。通知72は、それぞれのイベントによって生じたかまたは影響を受けるエンティティの識別子と、それぞれのイベントのタイプのインジケータとを備え得る。シグネチャスキャナが、ターゲットエンティティのコードをパースする間に、悪意のあるコードシグネチャを見つけたことに応答して、通知の別の例が生成され得る。
【0058】
[0077]セキュリティ通知72を受信したことに応答して、ステップ372において、評判マネージャ58は、それぞれのターゲットエンティティの評判インジケータについての新しい値を決定し得る。いくつかの実施形態では、エンティティが、マルウェアを示すアクション、またはさもなければそれぞれのエンティティを悪意の疑いがあるようにするアクションを実施するとき、それぞれのエンティティの評判は、より低い信用性の方向に変化する。この態様は、
図13に示されており、Rの値はセキュリティイベントに応答して低下する。低下の大きさは、ルールのセット/セキュリティポリシーに従って、評判マネージャ58によって決定され得る。低下の大きさは、絶対値として、または現在の評判値の割合(たとえば、50%)として表され得る。
【0059】
[0078]いくつかの実施形態では、そのようなオケージョンにおいて発生する評判の低下のサイズは、イベントのタイプまたはセキュリティ通知のタイプに従って変動する。いくつかのイベント/アクションは、より明らかにマルウェアを示し、したがって、評判のより大きい低下をトリガし得る。他のイベントは、必ずしも悪意を示すとは限らないが、他のイベントと一緒に発生するとき、またはターゲットエンティティによって実施されたいくつかのアクションと一緒に発生するとき、悪意を示し得る。そのようなイベントまたはアクションによってトリガされた評判の変化は、明らかに悪意のあるイベント/アクションに関連する変化よりも比較的小さくなり得る。いくつかセキュリティ通知は、それぞれのターゲットエンティティについての評判の全損を生じ得る。いくつかの実施形態では、評判の低下は、それぞれの評判インジケータが過去に他の低下を被ったかどうかに従って、評判の前の低下から経過した時間に従って、および/または、評判の前の低下をトリガしたセキュリティ通知のタイプに従って決定され得る。いくつかのマルウェアエージェントは、検出を回避するために、複数のエンティティにわたって悪意のあるアクションを編成し、そのようなアクションを時間的に拡散させる。セキュリティ通知の前の履歴を評判の現在の低下の条件とすることが、いくつかのそのような高性能マルウェアシナリオに対処し得る。いくつかの実施形態では、ステップ372において発生する評判の変化は、ターゲットエンティティの現在の評判に従っておよび/または他のエンティティの現在の評判に従って計算される。1つのそのような例では、エンティティXがコードをエンティティYに注入するとき、2つのエンティティのうちのより信用できるエンティティの評判が、より信用できないエンティティの現在の評判に等しくなり得る。
【0060】
[0079]ステップ374において、評判マネージャ58は、たとえば、時間間隔Δtと評判増分ΔRとを生成することによって、それぞれのターゲットエンティティの評判の更新をスケジュールし得る。さらなるステップ376が、そのようなデータをそれぞれのエンティティの評判テーブルエントリに保存し得る。いくつかの実施形態では、Δtの値および/またはΔRの値は、セキュリティ通知のタイプに従って変動し得る。1つのそのような例では、エンティティが、明らかに悪意を示すアクションを実施したとき、エンティティは、比較的長い時間期間の間、信用できないままであり得る。対照的に、低下が、あまりセキュリティクリティカルでないイベントによって生じた後、ターゲットエンティティの評判は、比較的速く再び増加し得る。
【0061】
[0080]いくつかの実施形態では、ステップ376~380~382のシーケンスは、(存在する場合)ターゲットエンティティに関係する他のエンティティの評判テーブルエントリを更新し得、評判インジケータ60をアンチマルウェアエンジン56に送信し得、評判の変化をサーバ14に報告し得る。
【0062】
[0081]
図14は、本発明のいくつかの実施形態による、アンチマルウェアエンジン56によって実行されるステップの例示的なシーケンスを示す。エンジン56は、エンティティ固有の評判に従ってマルウェア検出、防止、および/またはクリーンアップアクティビティを実行するように構成され得る(ステップ392)。別段に述べれば、アンチマルウェアエンジン56は、エンティティ固有のプロトコル/ポリシーに従って各実行可能エンティティを監視および/または分析し得、それぞれのポリシー/プロトコルは、各エンティティの評判インジケータに従ってエンティティごとに変動し得る。いくつかの実施形態では、高い信用性を示す評判を有するエンティティは、あまり信用できないエンティティよりも、計算コストが高くないプロシージャを使用して分析され得る。
【0063】
[0082]挙動的マルウェア検出は、典型的には、ターゲットエンティティが悪意のあるものであるかどうかを判定するためのルールのセットを使用する。そのようなルールは、しばしばヒューリスティックと呼ばれる。1つの例示的なヒューリスティックは、たとえば、第1のエンティティがコードの部分を第2のエンティティに注入し、それぞれのコードがインターネットからファイルをダウンロードすることを試みる場合、第1のエンティティはおそらく悪意のあるものである、と言うことがある。そのようなヒューリスティックを実装するために、アンチマルウェアエンジン56は、様々なイベント(たとえば、上記の例では、コード注入、およびリモートサーバに接続する試み)を監視する必要があり得る。いくつかのそのようなイベントは、監視するために他のイベントよりも計算コストがかかる。さらに、いくつかのヒューリスティックは、本質的に、他のヒューリスティックよりも複雑であり、および/または適用するのが困難であり得る。複雑なヒューリスティックは、より単純なヒューリスティックの組合せ、たとえば「方法Aを適用する;Aの結果がXである場合、方法Bを適用する;Bの結果がYの場合、条件Zをさらに検査する、など」を含み得る。
【0064】
[0083]コストが高いヒューリスティックのいくつかの例は、(すべてのファイルシステムアクティビティ-あらゆるファイル読取り、書込み、および/またはコピーを監視することを含む)ランサムウェア(ransomware)を検出するために使用されるヒューリスティックと、(たとえば、レジストリへのあらゆる書込みを傍受することと、それが特定のキーを変更する試みを含むかどうかを判定することとを含む)OSレジストリキーに関係するヒューリスティックとを含む。コストが高いヒューリスティックの別の例は、頻繁に使用されるOS関数(たとえば、CreateFile、ReadFile)へのコールを検出することを必要とし、そのようなコールを検出することは実質的なオーバーヘッドを生じ得る。対照的に、通常動作において極めて控えめに使用されるOS関数(たとえば、CreateRemoteThread)へのコールを検出することは、クライアントシステム10にはるかに低い負担をかけ得る。
【0065】
[0084]いくつかの実施形態では、評判依存検出プロトコルを取得することは、評判インジケータに従ってイベント監視および/またはヒューリスティックの複雑性を変動させることを含む。別段に述べれば、アンチマルウェアエンジン56は、信用できないエンティティよりも少数のおよび比較的単純なヒューリスティックを使用して、信用できるエンティティを監視し得る。エンジン56はまた、信用できるエンティティを監視するとき、いくつかのイベントまたは挙動の検出を無効にし得る。また、コンテンツベースアンチマルウェア方法は、たとえば、評判に従ってシグネチャデータベースのサイズを調節することによって、評判固有にされ得る。1つのそのような例では、信用できるエンティティは、マルウェアを示すシグネチャの比較的小さいセットの存在について検査され得、信用できないエンティティは、実質的により大きいシグネチャセットを使用して検査され得る。
【0066】
[0085]評判インジケータを用いて監視プロトコルを調節する一例が、表1に示されている。
【0067】
【0068】
[0086]
図14に戻ると、ステップ392~394のシーケンスにおいて、アンチマルウェアエンジン56が、評判固有のプロトコルに記述されているようにイベントの発生を待つように構成される。そのようなセキュリティ関連イベントの他に、エンジン56は、評判マネージャ58から評判インジケータを受信し得る。評判インジケータを受信することは、特定のエンティティの評判が変化したことを示し得る。評判インジケータを受信したこと(ステップ396)に応答して、ステップ398において、アンチマルウェアエンジンは、それぞれのターゲットエンティティを識別し、評判インジケータの受信された値に従って、それぞれのエンティティに適用される監視プロトコル/ポリシーを更新し得る。
【0069】
[0087]検出されたイベントが、セキュリティイベントを含む(たとえば、エンティティがコードを別のエンティティに注入した)とき、ステップ402において、アンチマルウェアエンジン56は、それぞれのイベントを生じたおよび/またはそれぞれのイベントの影響を受けたターゲットエンティティを識別し得る。さらなるステップ404が、ターゲットエンティティの識別情報と検出されたイベントのタイプとに従って、セキュリティ通知を構築し、それぞれのセキュリティ通知を評判マネージャ58に送信し得る。
【0070】
[0088]
図15は、本発明のいくつかの実施形態による、評判サーバ14(たとえば、
図1~
図2中のサーバ14a~b)によって実行されるステップの例示的なシーケンスを示す。ステップ412~414のシーケンスにおいて、サーバ14は、クライアントシステム10からの通信をリッスンし得る。通信が受信されたとき、ステップ416は、それぞれの通信が評判要求(たとえば、
図8参照)であるかどうかを判定し得る。はいのとき、サーバ14は、それぞれの要求中に含まれるエンティティフィンガープリントに関連する履歴評判データをルックアップし、データを要求側クライアントに送信し得る(ステップ418~420)。
【0071】
[0089]通信が評判報告を含むとき、ステップ424において、サーバ14は、それぞれの評判報告中に含まれるエンティティフィンガープリントに関連する評判データをルックアップし得る。報告73が、データベース16に記憶された履歴評判よりも低い信用を示す現在の評判値を示すとき、ステップ428において、評判サーバ14のいくつかの実施形態は、クライアント10からの報告中で受信された評判インジケータの値を含めるために、それぞれのデータベースエントリを直ちに変化させ得る。
【0072】
[0090]報告73が、現在記憶されている値よりも高い信用を示す評判インジケータを備えるとき、いくつかの実施形態では、ステップ430が、評判報告73を、様々なクライアントから受信された報告の集合に追加し得る。ステップ432において、評判サーバ14は、次いで、更新条件が満たされるかどうかを判定し、更新条件が満たされたときのみ、データベースエントリを更新し得る。更新条件は、各個々のエンティティフィンガープリントについて時間制約に従っておよび/または受信された報告のカウントに従って、構築され得る。たとえば、それぞれのエンティティフィンガープリントに対応する評判インジケータの最新の更新から一定の時間間隔が経過した後にのみ、更新が起こり得る。別の例では、それぞれのターゲットエンティティに関する最新のセキュリティ通知から一定の時間間隔が経過した後にのみ、更新は起こり得る。高い評判がより高い信用に等しい例示的な一実施形態では、更新条件が満たされたとき、ターゲットエンティティの履歴評判は、最新の更新期間中に、それぞれのターゲットエンティティについて報告されたすべての評判のうちの最小値に等しい値に更新される。
【0073】
[0091]上記で説明された例示的なシステムおよび方法は、パーソナルコンピュータ、タブレット、またはスマートフォンなど、クライアントシステムを、悪意のあるソフトウェアから保護することを可能にする。いくつかの実施形態では、評判マネージャが、アンチマルウェアエンジンと同時に実行する。アンチマルウェアエンジンは、それぞれのクライアントシステム上で実行するマルウェアを検出すること、および/あるいはそのようなマルウェアを削除することまたは無能力にすることなど、動作を実施する。クライアントシステム上で実行する各エンティティ(たとえば、アプリケーション、プロセス、スクリプト)について、評判マネージャは、評判インジケータをアンチマルウェアエンジンに送信し得、評判インジケータは、それぞれのエンティティが悪意のないものである信用のレベルを示し得る。
【0074】
[0092]従来のセキュリティシステムでは、ソフトウェアエンティティが、それらの評判にかかわらず走査および/または監視される。対照的に、本発明のいくつかの実施形態では、アンチマルウェアエンジンは、信用できるエンティティに優遇措置を与え得る。たとえば、アンチマルウェアエンジンは、信用できるエンティティを走査/監視するために、信用できないかまたは未知の/前に見られていないエンティティと比較して、(たとえば、より多くのプロセッサクロックサイクルおよび/またはより多くのメモリを必要とする)計算コストが高くないプロトコルを使用し得る。1つのそのような例では、信用できるエンティティを走査/監視するとき、ルールのサブセットが無効にされ得る。この手法は、信用できるエンティティを走査/監視することに関連する計算負担を低減することによって、アンチマルウェア性能を実質的に改善し得る。
【0075】
[0093]本発明のいくつかの実施形態では、各実行可能エンティティは、構成要素/ビルディングブロックの一意の組合せと見なされる。そのようなビルディングブロックの例は、特に、主実行ファイルと、共有ライブラリと、スクリプトと、注入されたコードのセクションとを含む。構成要素の各組合せは、たとえば、個々の構成要素のハッシュの組合せを含むエンティティフィンガープリントを介して、識別され得る。次いで、評判インジケータが、各エンティティフィンガープリントと関連付けられ得る。エンティティの組成が変化するとき(たとえば、プロセスが、ライブラリを動的にロードし、または注入されたコードの部分を受信するとき)、エンティティのフィンガープリントが変化し、エンティティの評判が変化する。
【0076】
[0094]いくつかの実施形態では、エンティティの評判は、時間的に変化する。エンティティが、疑わしいまたはマルウェアを示すアクションを実施しない間、エンティティの評判は、より高い信用を示す値のほうへシフトし得る。対照的に、エンティティが、マルウェアを示すかまたはさもなければセキュリティ関連アクションを実施するとき、エンティティの評判は、より低い信用を示す値のほうへ格下げされ得る。評判のそのような変化は、ローカルキャッシュに保存され、および/または中央評判データベースに送信され得る。そのような構成は、評判の変化が、それぞれの共有ライブラリのインスタンスを使用する他のローカルプロセスに、さらに評判サーバに接続された他のクライアントシステムに、迅速に伝搬することを可能にする。
【0077】
[0095]いくつかの実施形態では、(悪意の疑いを示し得る)評判の低下は、評判データベースに、そこから他のクライアントシステムに比較的高速に伝搬するが、(信用の増加を示し得る)評判の増加は、十分な時間がセキュリティインシデントなしに経過した後、または、十分な数のクライアントシステムによって、それぞれのエンティティが良く挙動する(well-behaved)として報告された後にのみ、有効となり得る。
【0078】
[0096]本明細書で説明されるシステムおよび方法は、新生の脅威を含む、多種多様な悪意のあるソフトウェアに容易に適用され得る。さらに、評判マネージャは、アンチマルウェアエンジンから独立して動作するので、アンチマルウェアエンジンは、評判マネージャの動作に影響を及ぼすことなしに、新しい走査/監視方法およびプロシージャを組み込むためにアップグレードされ得る。
【0079】
[0097]上記実施形態が本発明の範囲から逸脱することなく多くのやり方で変更され得ることは、当業者にとって明らかであろう。したがって、本発明の範囲は、以下の特許請求の範囲およびそれらの法的均等物によって決定されるべきである。