説明

中央集中的にマルウェアを検出するための知的ハッシュ

疑いのあるエンティティが識別される。疑いのあるエンティティの知的ハッシュが生成され、知的ハッシュは、疑いのあるエンティティに特有のメタデータセットを含み、メタデータの少なくともいくつかは、疑いのあるエンティティが変更しても不変である。知的ハッシュは、疑いのあるエンティティがマルウェアエンティティに該当するか否かを評価するために、サーバに送信される。サーバは、知的ハッシュに基づいて、疑いのあるエンティティがマルウェアエンティティに該当するか否かを判断するように構成される。疑いのあるエンティティがマルウェアエンティティに該当するか否かを特定する結果がサーバから受信される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にはコンピュータセキュリティに関し、特に、知的ハッシュ(intelligent hash)を使用したマルウェアの識別に関する。
【背景技術】
【0002】
近代のコンピュータを攻撃可能な多種多様な悪意のあるソフトウェア(マルウェア)が存在する。マルウェアの脅威としては、コンピュータウィルス、ワーム、トロイの木馬プログラム、スパイウェア、アドウェア、クライムウェア、およびフィッシングウェブサイトが挙げられる。近代のマルウェアは多くの場合、攻撃者に金融的な利益を提供するように設計される。例えば、マルウェアは、ログイン、パスワード、銀行口座識別子、およびクレジットカード番号等の重要な情報を不正に捕捉することができる。同様に、マルウェアは、攻撃者が侵入先のコンピュータにアクセスし制御できるようにする隠れたインタフェースを提供することができる。
【0003】
マルウェアに対抗するいくつかのセキュリティコンピュータシステムおよびソフトウェアは、コンピュータファイルまたはソフトウェアアプリケーション等のエンティティがマルウェアを含むか否かを判断するために、使用されるマルウェアの特徴を識別しようとすることにより動作する。本明細書では「ハッシュ」と呼ばれるハッシュ値は、暗号ハッシュ関数等の変換をマルウェアプログラム等のエンティティに適用することにより生成される値である。ハッシュ値は、マルウェアプログラムの固有の表現または「指紋」を形成し、プログラムを識別する特徴として使用することができる。ハッシュを生成する一般的な変換としては、MD5およびSHA−1が挙げられる。
【0004】
暗号ハッシュ関数は、データの小さな変更(すなわち、多態性)の影響を受けやすい。したがって、同じマルウェアプログラムの変形(すなわち、ポリモーフィック型マルウェア)等の2つの同様のエンティティが、非常に異なるハッシュを有し得る。このように、ハッシュは、生成される元となるエンティティに特有である。マルウェアプログラムの一変形のハッシュの生成に使用されるデータは、多態性を受け得るため、この特有性は多くの場合、ポリモーフィック型マルウェアの検出漏れを生じさせる。
【0005】
検出漏れを補償するために、エンティティがマルウェアであるか否かを識別する際に、エンティティのいくつかのハッシュが使用される。クライアントが曝される危険のある異なるマルウェアエンティティの数は、時間の経過に伴って増大し続けるため、エンティティがマルウェアであるか否かを判断するために使用されるハッシュの数は比例的に増大している。大きなハッシュセットを使用すると、ソフトウェアアプリケーションまたはファイル等のエンティティをスキャンして、マルウェアの存在を検出するにあたり、非効率的になり得る。
【発明の概要】
【発明が解決しようとする課題】
【0006】
したがって、当分野には、クライアント側のマルウェア検出能力を損なわずに、マルウェアの識別に使用されるハッシュ数を低減する必要がある。
【課題を解決するための手段】
【0007】
上記および他の必要性は、エンティティの知的ハッシュを生成する方法およびコンピュータ可読記憶媒体により満たされる。
【0008】
一態様は、エンティティの知的ハッシュを生成する方法を提供する。アセンブリ言語命令シーケンスが、エンティティに基づいて生成される。アセンブリ言語命令シーケンスのサブシーケンスセットが識別される。エンティティの知的ハッシュが、少なくとも部分的に、識別されたサブシーケンスセットに基づいて生成され、記憶装置に記憶される。
【0009】
別の態様は、疑いのあるエンティティがマルウェアエンティティに該当するか否かを判断するコンピュータシステムを提供する。このシステムは、クライアントが直面した疑いのあるエンティティに基づいて生成された知的ハッシュを受信するように構成された報告モジュールを備え、知的ハッシュは、疑いのあるエンティティに特有のメタデータセットを含み、そのメタデータのうちの少なくともいくつかは、疑いのあるエンティティが変更しても不変である。このシステムは、疑いのあるエンティティがマルウェアエンティティに該当するか否かを知的ハッシュに基づいて判断するように構成された評価モジュールをさらに備える。報告モジュールは、疑いのあるエンティティがマルウェアエンティティに該当するか否かをクライアントに対して報告するようにさらに構成される。
【0010】
別の態様では、説明される実施形態は、疑いのあるエンティティがマルウェアエンティティに該当するか否かを判断するコンピュータプログラムコードが符号化されたコンピュータ可読記憶媒体を提供する。このプログラムコードは、疑いのあるエンティティを識別するプログラムコードを含む。プログラムコードは、疑いのあるエンティティの知的ハッシュを生成するプログラムコードをさらに含み、知的ハッシュは疑いのあるエンティティに特有のメタデータセットを含み、メタデータのうちの少なくともいくつかは、疑いのあるエンティティが変更されても不変である。プログラムコードは、疑いのあるエンティティがマルウェアエンティティに該当するか否かを評価するために、知的ハッシュをサーバに送信するプログラムコードをさらに含む。プログラムコードは、疑いのあるエンティティがマルウェアエンティティに該当するか否かを特定する結果をサーバから受信するプログラムコードをさらに含む。
【0011】
この概要および以下の詳細な説明において説明される特徴および利点は、すべてを包含するものではない。多くの追加の特徴および利点が、図面、明細書、および特許請求の範囲に鑑みて当業者には明らかになるであろう。
【図面の簡単な説明】
【0012】
【図1】一実施形態による計算環境100の高レベルブロック図である。
【図2】セキュリティサーバ110またはクライアント150としての使用に典型的なコンピュータ200を示す高レベルブロック図である。
【図3】一実施形態によるセキュリティサーバ110の詳細図を示す高レベルブロック図である。
【図4】一実施形態によるセキュリティモジュール116の詳細図を示す高レベルブロック図である。
【図5】一実施形態により、セキュリティサーバ110が知的ハッシュを生成するために実行するステップを示すフローチャートである。
【図6】一実施形態により、セキュリティサーバ110が疑いのあるエンティティハッシュを評価するために実行するステップを示すフローチャートである。
【図7】一実施形態により、セキュリティモジュール116が疑いのあるエンティティを識別し評価するために実行するステップを示すフローチャートである。
【0013】
これら図は、単なる例示として本発明の実施形態を示す。本明細書に示される構造および方法の代替の実施形態を、本明細書に開示される本発明の原理から逸脱せずに利用し得ることを当業者は容易に認識するであろう。
【発明を実施するための形態】
【0014】
図1は、一実施形態による計算環境100の高レベルブロック図である。図1は、ネットワーク114により接続されたセキュリティサーバ110および3つのクライアント150を示す。説明を簡潔かつ明確にするために、3つのみのクライアント150が図1に示される。計算環境100の実施形態は、ネットワーク114に接続された数千または数百万のクライアント150を有し得る。
【0015】
セキュリティサーバ110は、ネットワーク114を介してクライアント150と対話する。セキュリティサーバ110は、マルウェアの検出に使用される知的ハッシュを記憶する知的ハッシュデータベース174を含む。「知的ハッシュ」は、エンティティに対して一意(すなわち、特有)であると共に、多態性等のエンティティへの小さな変更に対して大方不変(すなわち、ロバスト)であり、ファイルまたはソフトウェアアプリケーション等のエンティティに関連付けられたメタデータを識別することにより生成される。これらメタデータは、エンティティから抽出するか、または変換もしくは関数を使用して生成することができる。
【0016】
これらメタデータを使用して、同じエンティティの変形である(例えば、少数の多態性により異なる)2つのエンティティから生成される知的ハッシュは、その類似性を反映することになる。同じエンティティの2つの変形の間の多態性により、同じエンティティの2つの変形の知的ハッシュで表されるメタデータのうちのいくらかが異なることになり得る。しかし、メタデータの大部分は、同じエンティティの2つの変形の類似性を反映して、同じままである。セキュリティサーバ110は、既知のマルウェア脅威の包括的集合のための知的ハッシュを生成し、この知的ハッシュを知的ハッシュデータベース174に記憶する。
【0017】
セキュリティサーバ110は、知的ハッシュデータベース174を使用して、クライアント150において生成された知的ハッシュが、知的ハッシュデータベース174内の知的ハッシュに該当するか否かを評価する。未知のエンティティまたはマルウェアであることが疑われるエンティティ等の疑いのあるエンティティが識別された場合、クライアント150は、本明細書では「疑いのあるエンティティハッシュ」と呼ばれる疑いのあるエンティティの知的ハッシュを生成する。次に、クライアント150は、評価のために、疑いのあるエンティティハッシュをセキュリティサーバ110に送信する。クライアント150から疑いのあるエンティティハッシュを受信すると、セキュリティサーバ110は、データベース174内の知的ハッシュと比較して、疑いのあるエンティティハッシュが知的ハッシュデータベース174内の知的ハッシュと同じまたは同様であるか否かを判断することにより、知的ハッシュを評価する。セキュリティサーバ110は、評価の結果をクライアント150に報告する。
【0018】
一実施形態では、クライアント150は、1人または複数のユーザが、ソフトウェアエンティティのダウンロード、インストール、および/または実行を含む動作を実行するために使用するコンピュータである。クライアント150は、例えば、ユーザがネットワーク114上のウェブサーバおよび他のコンピュータからコンテンツを検索し表示できるようにするMICROSOFT INTERNET EXPLORER等のウェブブラウザを実行するパーソナルコンピュータであり得る。他の実施形態では、クライアント150は、個人情報端末(PDA)、携帯電話、ページャ、テレビジョン「セットトップボックス」等の、コンピュータ以外のネットワーク対応装置である。この説明では、用語「クライアント」は、マルウェアまたは他の脅威を構成し得るソフトウェアエンティティまたは他のエンティティに直面するサーバおよびゲートウェイ等のコンピュータも含む。例えば、クライアント150は、企業ネットワークとインターネットとの間に配置されるネットワークゲートウェイであり得る。
【0019】
知的ハッシュデータベース174およびセキュリティサーバ110に記憶された他の情報を使用して、疑いのあるエンティティハッシュを評価することにより、包括的なクライアント側マルウェア検出を相変わらず提供しながら、疑いのあるエンティティの評価を中央集中化するメカニズムが提供される。この手法は、知的ハッシュデータベース174を生成し、クライアント150から受信する知的ハッシュを評価するセキュリティサーバ110の処理力を利用する。したがって、この手法は、知的ハッシュデータベース174をクライアント150に送信することが実際的ではないか、または望ましくない計算環境によく適する。
【0020】
さらに、この手法において知的ハッシュを使用することにより、多態性を含むように変更されたマルウェアエンティティの検出が可能であり、したがって、マルウェアの検出漏れ数を低減すると共に、各エンティティに複数のハッシュを生成する必要性をなくす。この「知的」検出により、さらに、2つの知的ハッシュの類似性を特定することが可能である。この類似値は、二進識別情報のみを提供する従来のハッシュ法とは対照的に、2つのエンティティの類似度を定量化する能力をユーザに提供する連続した、または割合に基づく値であり得る。例えば、ユーザは、2つのハッシュ間で一致するメタデータの割合を特定する類似値に基づいて、2つの知的ハッシュが90%の類似性を有することを定量化可能であり得る。
【0021】
ネットワーク114は、セキュリティサーバ110とクライアント150との通信路を表す。一実施形態では、ネットワーク114はインターネットである。ネットワーク114は、必ずしもインターネットの部分である必要はない専用または私設通信リンクを利用してもよい。一実施形態では、ネットワーク114は、標準通信技術および/またはプロトコルを使用する。したがって、ネットワーク114は、イーサネット、802.11、デジタル総合サービス網(ISDN)、デジタル加入者回線(DSL)、非同期転送モード(ATM)等を使用するリンクを含み得る。同様に、ネットワーク114に使用されるネットワーク化プロトコルは、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ハイパーテキスト転送プロトコル(HTTP)、簡易メール転送プロトコル(SMTP)、ファイル転送プロトコル(FTP)等を含み得る。ネットワーク114を介して交換されるデータは、ハイパーテキストマークアップ言語(HTML)、拡張可能マークアップ言語(XML)等を含む技術および/またはフォーマットを使用して表し得る。さらに、リンクのうちのすべてまたはいくつかは、セキュアソケットレイヤ(SSL)、セキュアHTTP、および/または仮想私設ネットワーク(VPN)等の従来の暗号技術を使用して暗号化し得る。別の実施形態では、エンティティは、上述したものに代えて、または上述したものに加えて、カスタムかつ/または専用データ通信技術を使用し得る。
【0022】
図2は、セキュリティサーバ110またはクライアント150としての使用に典型的なコンピュータ200を示す高レベルブロック図である。バス204に結合されたプロセッサ202が示される。バス204には、メモリ206、記憶装置208、キーボード210、グラフィックスアダプタ212、ポインティングデバイス214、およびネットワークアダプタ216も結合される。ディスプレイ218が、グラフィックスアダプタ212に結合される。
【0023】
プロセッサ202は、INTELx86互換CPU等の任意の汎用プロセッサであり得る。記憶装置208は、一実施形態では、ハードディスクドライブであるが、書き込み可能なコンパクトディスク(CD)もしくはDVD、または固体状態メモリ装置等のデータを記憶可能な他の任意の装置であってもよい。メモリ206は、例えば、ファームウェア、読み取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、および/またはRAMであり得、プロセッサ202により使用される命令およびデータを保持する。ポインティングデバイス214は、マウス、トラックボール、または他の種類のポインティングデバイスであり得、キーボード210と組み合わせて使用されて、データをコンピュータ200に入力する。グラフィックスアダプタ212は、画像および他の情報をディスプレイ218上に表示する。ネットワークアダプタ216は、コンピュータ200をネットワーク114に結合する。
【0024】
当分野において既知のように、コンピュータ200は、コンピュータプログラムモジュールを実行するように構成される。本明細書において使用される用語「モジュール」は、指定された機能を提供するコンピュータプログラム論理および/またはデータを指す。モジュールは、ハードウェア、ファームウェア、および/またはソフトウェアに実装し得る。一実施形態では、モジュールは記憶装置208に記憶され、メモリ206内にロードされ、プロセッサ202により実行される。
【0025】
図1のエンティティにより利用されるコンピュータ200の種類は、実施形態およびエンティティにより利用される処理力に応じて様々であり得る。例えば、携帯電話であるクライアント150は通常、限られた処理力、小型ディスプレイ218を有し、ポインティングデバイス214がない場合がある。逆に、セキュリティサーバ110は、協働して本明細書において説明される機能を提供する複数のブレードサーバを含み得る。
【0026】
図3は、一実施形態によるセキュリティサーバ110の詳細図を示す高レベルブロック図である。図3に示されるように、セキュリティサーバ110はいくつかのモジュールを含む。他の実施形態が、ここに示されるものとは異なり、かつ/または他のモジュールを有してもよいこと、および機能を異なる様式でモジュール間に分散させてもよいことを当業者は認識するであろう。さらに、セキュリティサーバ110に帰する機能を複数のサーバで実行してもよい。
【0027】
評価報告モジュール352は、ネットワーク114を介してクライアント150と通信する。評価報告モジュール352は、疑いのあるエンティティハッシュをクライアント150から受信する。評価報告モジュール352は、疑いのあるエンティティハッシュ評価モジュール342と通信して、疑いのあるエンティティハッシュの評価結果を受信する。評価報告モジュール352はさらに、疑いのあるエンティティハッシュの評価結果をクライアント150に提供する。
【0028】
知的ハッシュ生成モジュール312は、ソフトウェアアプリケーション等のエンティティを解析して、エンティティに関連付けられたメタデータを識別し、識別されたメタデータに基づいて知的ハッシュを生成する。知的ハッシュ生成モジュール312は、圧縮情報、頻繁に発生するメタ言語サブシーケンスセット、および固有の文字列セットを含む、エンティティから導出された異なる種類のメタデータに基づいて知的ハッシュを生成する。いくつかの実施形態では、知的ハッシュ生成モジュール312は、追加のメタデータおよびエンティティに関連付けられるか、またはエンティティから導出される他の情報に基づいて知的ハッシュを生成する。
【0029】
知的ハッシュ生成モジュール312は、本明細書では「パッカー」と呼ばれる、エンティティを圧縮するために使用される1つまたは複数のアルゴリズムを指定する情報を含む、エンティティの圧縮情報を生成する。いくつかのマルウェアエンティティ(またはマルウェアエンティティファミリ)が同じパッカーを使用して圧縮されるため、この圧縮情報は、マルウェアの脅威を識別するのに役立つ。一実施形態では、知的ハッシュ生成モジュール312は、既知の圧縮解除アルゴリズムセット303をエンティティに適用することにより、エンティティを圧縮解除しようとする。知的ハッシュ生成モジュール312が、エンティティの圧縮解除に成功した場合、エンティティの圧縮情報は、エンティティの首尾よい圧縮解除に使用されたパッカーを含む。知的ハッシュ生成モジュール312がエンティティの圧縮解除に失敗した場合、エンティティの圧縮情報は、パッカーが未知であるという表示を含む。実施形態によれば、知的ハッシュ生成モジュール312により生成される圧縮情報は、圧縮解除前後のエンティティのサイズ、エミュレータまたはパッカーがエンティティの圧縮に使用されたか否か、およびエンティティに添付されたデータセットのセットのサイズを含むこともできる。
【0030】
知的ハッシュ生成モジュール312は、エンティティに基づいてメタ言語命令をさらに生成する。メタ言語命令は、エンティティのプログラムコードの変換に基づいて生成される命令である。いくつかの実施形態では、知的ハッシュ生成モジュール312は、エンティティに基づいてメタ言語命令シーケンスを生成する。実施形態によれば、知的ハッシュモジュール312により生成されるメタ言語命令は、疑似コード命令等の高水準変換からアセンブリ言語命令までを範囲とし得る。知的ハッシュ生成モジュール312はさらに、メタ言語命令に基づいて、命令の各タイプの頻度等の情報を特定する。
【0031】
一実施形態では、知的ハッシュ生成モジュール312は、エンティティ内で頻繁に発生するアセンブリ命令シーケンスのセットを特定する。知的ハッシュ生成モジュール312は、エンティティをアセンブリ言語命令シーケンスに変換する1つまたは複数の逆アセンブラプログラム309を備える。シーケンス内の各命令は、本明細書では、動作コードと呼ばれる。適した逆アセンブラプログラムとしては、Interactive Disassembler(IDAPro)、Sourcer、およびBDASMを挙げることができるが、これらに限定されない。この変換に基づいて、知的ハッシュ生成モジュール312は、アセンブリ言語命令シーケンス内の命令の総数、アセンブリ言語命令シーケンス内の動作コードのブロック数、ブロック当たりの動作コードの平均数、およびアセンブリ言語命令シーケンス内に含まれる相互参照情報を含むメタデータを識別する。
【0032】
知的ハッシュ生成モジュール312は、メタ言語命令シーケンスの最も頻繁に発生するサブシーケンスのセットを特定するためにメタ言語命令シーケンスを解析する。大半の実施形態では、セット内の各サブシーケンス内の命令数は固定サイズ(例えば、5つの命令)である。この固定サイズは1〜50個の命令範囲であり得る。特定の実施形態では、各サブシーケンス内の命令数は5〜10個の命令範囲であり得る。
【0033】
知的ハッシュ生成モジュール312は、各サブシーケンスがメタ言語命令シーケンス内で発生する頻度を特定する。特定の実施形態では、知的ハッシュ生成モジュール312は、スライド窓法を使用して、各サブシーケンスがメタ言語命令シーケンス内で発生する頻度を計数する。スライド窓法では、固定サイズnの窓が、シーケンスにわたって1命令または1動作コードずつ進められ、長さnの各サブシーケンスが発生する回数を計数する。各サブシーケンスの頻度を計数する他の方法としては、文字列マッチングアルゴリズムおよびルックアップテーブルの構築が挙げられる。
【0034】
知的ハッシュ生成モジュール312は、知的ハッシュ内に含めるために、メタ言語命令シーケンス内で最も頻繁に発生するサブシーケンスのセットを選択する。実施形態およびサブシーケンスの長さに従って、このサブシーケンスのセットは、1つのサブシーケンスからいくつかのサブシーケンスの範囲であり得る。通常、セットは5〜15個のサブシーケンスの範囲になる。一実施形態では、知的ハッシュ生成モジュール312は、最高発生頻度を有するサブシーケンスのセットを選択する。他の実施形態では、知的ハッシュ生成モジュール312は、最高発生頻度を有するサブシーケンスのセットを選択する前に、マルウェアではない(すなわち、非有益な)エンティティを含む大きなエンティティの集合にわたって非常に高い頻度で発生するメタ言語命令サブシーケンスをフィルタリングして除去し得る。
【0035】
知的ハッシュ生成モジュール312は、エンティティに基づいて固有の文字列をさらに識別する。これら固有の文字列は、エンティティがネットワーク、コンピュータプログラム、およびコンピュータシステムと通信するために使用される情報を表す。これら文字列は、通信に基づいてエンティティを特徴付けるために有用であり得る。固有の文字列は、エンティティが通信するライブラリまたはモジュールの名称、エンティティが通信するファイルの名称、ユニフォームリソースロケータ、インターネットプロトコルアドレス、電子メールアドレス、およびクラス識別子(CLSID)等のグローバル一意識別子(GUID)を含み得る。
【0036】
知的ハッシュ生成モジュール312は、エンティティが通信するライブラリまたはモジュールを示す拡張子(例えば、.dll拡張子は、ダイナミックリンクライブラリとの通信を示す)、エンティティが通信するファイルの名称を示す他のファイル拡張子(例えば、.avi)、ユニフォームリソースロケータを示す情報、インターネットプロトコルアドレスを示す情報、電子メールアドレスを示す情報、およびグローバル一意識別子を示す情報等の構造化情報に基づいて固有の文字列を識別する。一実施形態では、知的ハッシュ生成モジュール312は、構造化情報を識別するように設計された通常の表現を使用して固有の文字列を識別する。
【0037】
知的ハッシュ生成モジュール312は、知的ハッシュに含める固有の文字列セットを選択する。いくつかの実施形態では、知的ハッシュ生成モジュール312は、知的ハッシュに含めるものとして、すべての固有の文字列を選択する。他の実施形態では、知的ハッシュ生成モジュール312は、知的ハッシュの固定サイズ(例えば、750バイト)に基づいて固有の文字列の数を制限し得る。さらに、固有の文字列を、マルウェア内で頻繁に発生する固有の文字列および無害エンティティ(すなわち、マルウェアではないエンティティ)内で頻繁に発生する固有の文字列に基づいてフィルタリングまたは重み付けし得る。特定の実施形態では、頻繁に発生する文字列のセットが、無害エンティティのコーパスに基づいて生成され、固有の文字列は、頻繁に発生する文字列のセットを使用してフィルタリングされる。いくつかの実施形態では、固有の文字列には、マルウェアおよび/または無害エンティティの大きな集合での発生頻度に反比例するスコアが付与される。
【0038】
知的ハッシュ生成モジュール312は、メタデータに基づいて知的ハッシュを生成する。知的ハッシュ生成モジュール312は、エンティティのメタデータを任意の方法で組み合わせて表現し、知的ハッシュを生成する。通常、知的ハッシュは、英数字データ文字列として表されることになる。実施形態によれば、知的ハッシュ生成モジュール312は、メタデータに関連付けられたスコア、確率値、または頻度等の数値を含む知的ハッシュを生成する。一実施形態では、知的ハッシュ生成モジュール312は、各サブシーケンスの発生頻度に関連して最も頻繁に発生するサブシーケンスのセットを含む知的ハッシュを生成する。いくつかの実施形態では、知的ハッシュ生成モジュール312は、固有の文字列のセットに関連付けられた重みまたは頻度値のセットを含む。
【0039】
特定の実施形態では、ハッシュ生成モジュール312は、
42323|1-PECOMPACT-w|123423|32233|I=017253 B=297 M=31 X=1953 |A=1925 C=1154 D=51 G=2221 J=2246 L=789 M=3917 P=4180 R=44 S=125 T=780
V=5 PPPPP=171 LPPPM=111 PPPPG=110 MMMMM=91 PPPMP=88 PAAPA=73 APAAP=71
PPGCJ=69 JCJCJ=68 CJCJC=63 |4233|ntoskrnl.ex ntoskrnl.exe
V2.3.9.0.Demo.CracKed.By is4q.1ih|user32.dll drv\objfre\i386\driver.pdb objfre\i386\driver.sys kernel32.dll ntdll.dll ws2_32.dll advapi32.dl
等の英数字文字列として知的ハッシュを表す。
【0040】
上記例では、異なる種類のメタデータが、区切り文字「|」で隔てられている。知的ハッシュ内の1番目の種類のメタデータは、圧縮解除前のエンティティのバイト単位でのサイズである。知的ハッシュ内の2番目の種類のメタデータは、エンティティの圧縮に使用されたパッカーを記述する。この例では、「w」が、エミュレータが従来の圧縮アルゴリズムに代えて使用されたことを示すために使用される。知的ハッシュ内の3番目の種類のメタデータは、圧縮解除後のエンティティのサイズである。知的ハッシュ内の4番目の種類のメタデータは、ファイルに添付されたデータのサイズである。知的ハッシュ内の5番目の種類のメタデータは、アセンブリ言語命令シーケンスの合計命令計数(「I」で示される)、アセンブリ言語命令シーケンス内のブロック数(「B」で示される)、各ブロック内の命令の平均数(「M」で示される)、および相互参照数(「X」で示される)を含む。知的ハッシュ内の6番目の種類のメタデータは、異なる動作コードまたは命令およびアセンブリ言語命令シーケンス内のそれぞれの発生頻度を表す。この例では、「A=1925」は、命令Addがアセンブリ言語命令シーケンス内で1925回発生したことを表す。知的ハッシュ内の7番目の種類のメタデータは、アセンブリ言語命令サブシーケンスのうちの最も頻繁に発生する10個およびアセンブリ言語命令シーケンス内のそれぞれの発生頻度を表す。知的ハッシュ内の8番目のメタデータは、エンティティに基づいて識別された固有の文字列の数を表す。知的ハッシュ内の9番目のメタデータは、識別された固有の文字列を表す。
【0041】
知的ハッシュデータベース174は、既知のマルウェアエンティティの包括的集合に基づいて生成された知的ハッシュセットを記憶する。知的ハッシュデータベース174は、知的ハッシュのセットを、ハッシュが表すエンティティに関連付けて記憶する。いくつかの実施形態では、知的ハッシュデータベース174は、マルウェアではないエンティティ(すなわち、無害エンティティ)に基づいて生成された知的ハッシュも記憶する。
【0042】
疑いのあるエンティティハッシュ評価モジュール342は、クライアント150により報告された疑いのあるエンティティハッシュを評価して、疑いのあるエンティティがマルウェアであるエンティティを表すか否かを判断する。疑いのあるエンティティハッシュ評価モジュール342は、疑いのあるエンティティハッシュを知的ハッシュデータベース174内のハッシュと比較して、エンティティハッシュが知的ハッシュデータベース174内の知的ハッシュと同じまたは同様であるか否かを判断する。
【0043】
一実施形態では、疑いのあるエンティティハッシュ評価モジュール342は、疑いのあるエンティティハッシュおよび知的ハッシュデータベース174内のハッシュ等の2つの知的ハッシュを比較する際、類似性スコアを生成する。類似性スコアは、ハッシュが同様であるか否かを示す二進スコアであってもよく、または類似性割合等の類似値の範囲を示す連続数スコアであってもよい。疑いのあるエンティティハッシュ評価モジュール342は、2つの知的ハッシュ内のメタデータに基づいて類似性スコアを生成する。一実施形態では、疑いのあるエンティティハッシュ評価モジュール342は、ユークリッド距離関数または余弦距離関数(cosine distance function)等のすべてのメタデータの1回での比較を提供する関数に基づいて、類似性スコアを生成する。いくつかの実施形態では、疑いのあるエンティティハッシュ評価モジュール342は、決定木アルゴリズム等の異なる種類のメタデータの一連の比較に基づいて、類似性スコアを生成する。いくつかの実施形態では、疑いのあるエンティティハッシュ評価モジュール342は、ニューラルネットワークまたはブースティング等の機械学習法を使用して、類似性スコアを生成し得る。
【0044】
特定の実施形態では、疑いのあるエンティティハッシュ評価モジュール342は、異なる種類のメタデータ値の所定順の比較を通して、類似性スコアを生成する。この実施形態では、疑いのあるエンティティハッシュ評価モジュール342は、最も頻繁に発生するアセンブリ言語サブシーケンスのセット、2つの知的ハッシュ内で示される最も頻繁に発生するアセンブリ言語サブシーケンスのセットの頻度、知的ハッシュ内で示されるパッカー、および知的ハッシュ内で示される固有の文字列の順に比較する。一実施形態では、疑いのあるエンティティハッシュ評価モジュール342は、閾値を使用して、比較の次のステップに進むべきか否かを判断する。例えば、疑いのあるエンティティハッシュ評価モジュール342は、最も頻繁に発生するアセンブリ言語サブシーケンスのセットの一致率が80%未満であることに基づいて、2つのハッシュが類似しないと判断し得る。
【0045】
疑いのあるエンティティハッシュ評価モジュール342は、知的ハッシュデータベース174内で最高類似性スコアを有する知的ハッシュおよびその知的ハッシュに関連付けられたエンティティを特定する。疑いのあるエンティティハッシュ評価モジュール342は、評価の結果を評価報告モジュール352に伝達し、その結果は、最高スコアの知的ハッシュに関連付けられたエンティティ、最も高い類似性スコアが類似性カットオフ値を超えるか否か、および最高スコアの知的ハッシュに関連付けられたエンティティがマルウェアエンティティであるか、それとも無害エンティティであるかを含む。いくつかの実施形態では、疑いのあるエンティティハッシュ評価モジュール342は、さらに評価するために、評価の結果をセキュリティサーバ110の管理者に報告し得る。
【0046】
図4は、一実施形態よるクライアント150のセキュリティモジュール116の詳細図を示す高レベルブロック図である。いくつかの実施形態では、セキュリティモジュール116は、クライアント150で実行中のオペレーティングシステム内に組み込まれるが、他の実施形態では、セキュリティモジュール116は、独立したエンティティまたは別の製品の部分である。図4に示されるように、セキュリティモジュール116は複数のモジュールを含む。セキュリティモジュール116の他の実施形態が、ここで説明されるものと異なり、かつ/または他のモジュールを有してもよいこと、および機能を異なる様式でモジュールに分散させてもよいことを当業者は認識するであろう。
【0047】
疑いのあるエンティティ検出モジュール450は、疑いのあるエンティティを検出する。一実施形態では、疑いのあるエンティティ検出モジュール450は、クライアント150に関連付けられた記憶装置208またはメモリ206をスキャンして、記憶装置208またはメモリ206にインストールまたは記憶された疑いのあるエンティティを検出する。別の実施形態では、疑いのあるエンティティ検出モジュール450は、ユーザがエンティティにアクセスした場合、またはエンティティを実行した場合のみ、疑いのあるエンティティを検出することができる。
【0048】
実施形態によれば、疑いのあるエンティティ検出モジュール450は、異なる方法を使用して疑いのあるエンティティを検出することができる。一実施形態では、疑いのあるエンティティ検出モジュール450は、以前に評価されているか、または他の様式で無害であると判断されているエンティティのリストにアクセスすることにより、エンティティが未知であることを識別し得る。別の実施形態では、疑いのあるエンティティ検出モジュール450は、マルウェア署名またはハッシュのセットを使用してクライアント150をスキャンし、疑いのあるエンティティを検出し得る。いくつかの実施形態では、疑いのあるエンティティ検出モジュール450は、クライアント150でのエンティティの挙動を監視して、何らかの挙動がマルウェア指紋セット内に指定された挙動を満たすか否かを判断する。
【0049】
エンティティが疑いのあるエンティティであると判断された場合、疑いのあるエンティティ検出モジュール450の実施形態は、疑いのあるエンティティを隔離して、エンティティがクライアント150にダメージを与えるのを阻止する。疑いのあるエンティティは、例えば、そのエンティティの実行を禁止するようにクライアント150を構成することにより、かつ/または別の動作を行うことにより、疑いのあるエンティティ内のどの悪意のあるコードも被害を生じさせないように隔離し得る。
【0050】
疑いのあるエンティティハッシュ生成モジュール470は、疑いのあるエンティティの知的ハッシュ(すなわち、疑いのあるエンティティハッシュ)を生成するように機能する。疑いのあるエンティティハッシュ生成モジュール470は、知的ハッシュ生成モジュール312を参照して概説した方法に従って導出されたメタデータを含む疑いのあるエンティティハッシュを生成する。疑いのあるエンティティハッシュ生成モジュール470は、生成された疑いのあるエンティティハッシュを疑いのあるエンティティハッシュ報告モジュール460に伝達する。
【0051】
疑いのあるエンティティハッシュ報告モジュール460は、ネットワーク114を介してセキュリティサーバ110と通信する。疑いのあるエンティティハッシュ報告モジュール460は、疑いのあるエンティティハッシュをセキュリティサーバ110に報告する。疑いのあるエンティティハッシュ報告モジュール460は、セキュリティサーバ110から疑いのあるエンティティハッシュの評価結果を受信する。疑いのあるエンティティハッシュの評価結果は、最高スコアの知的ハッシュに関連付けられたエンティティ、最高類似性スコアが類似性カットオフ値を超えるか否か、および最高スコアの知的ハッシュに関連付けられたエンティティがマルウェアエンティティであるか、それとも無害エンティティであるかを含む。評価により、署名検出イベントがマルウェアではない(すなわち、最高スコアの知的ハッシュが類似性カットオフ値を超え、マルウェアエンティティに関連付けられない)ことが示される場合、疑いのあるエンティティハッシュ報告モジュール460は、署名検出イベントを抑制(例えば、無視)する命令を疑いのあるエンティティ検出モジュール450に伝達する。したがって、疑いのあるエンティティハッシュ報告モジュール460は、隔離からエンティティを解放し、かつ/またはエンティティが疑いがあるものとして宣言された際に行われた他の動作を取り消す。
【0052】
疑いのあるエンティティハッシュ評価により、エンティティがマルウェアである(すなわち、最高スコアの知的ハッシュが類似性カットオフ値を超え、マルウェアエンティティに関連付けられる)ことが示される場合、疑いのあるエンティティハッシュ報告モジュール460は、例えば、疑いのあるエンティティを削除し、かつ/またはクライアント150の破損したエンティティを修正することにより、クライアント150を修復する。疑いのあるエンティティハッシュ報告モジュール460は、クライアント150のユーザへの警告および疑いのあるエンティティのログ記録等の追加の動作を実行し得る。
【0053】
図5は、一実施形態により、知的ハッシュを生成するためにセキュリティサーバ110が実行するステップを示すフローチャートである。他の実施形態は、示されるステップを異なる順に実行し、かつ/または異なるもしくは追加のステップを実行する。さらに、ステップのうちのいくつかは、セキュリティサーバ110以外のエンジンまたはモジュールにより実行してもよい。
【0054】
セキュリティサーバ110は、ソフトウェアアプリケーションまたはファイル等のエンティティを識別する(512)。セキュリティサーバ110は、圧縮解除アルゴリズムセット303をエンティティに適用することにより、エンティティの圧縮情報を生成する(514)。セキュリティサーバ110は、1つまたは複数の逆アセンブラアルゴリズム309をエンティティに適用することにより、アセンブリ言語命令シーケンスを生成する(516)。セキュリティサーバ110は、アセンブリ言語命令シーケンスの最も頻繁に発生するサブシーケンスのセットを特定する(518)。セキュリティサーバ110は、エンティティに基づいて固有の文字列のセットを識別する(520)。セキュリティサーバ110は、圧縮情報、アセンブリ言語命令シーケンスの頻繁に発生するサブシーケンスのセット、および固有の文字列のセットに基づいてエンティティの知的ハッシュを生成する(522)。
【0055】
図6は、一実施形態により、疑いのあるエンティティハッシュの評価をクライアント150に提供するためにセキュリティサーバ110が実行するステップを示すフローチャートである。他の実施形態は、示されるステップを異なる順に実行し、かつ/または異なるもしくは追加のステップを実行する。さらに、ステップのうちのいくつかは、セキュリティサーバ110以外のエンジンまたはモジュールにより実行してもよい。
【0056】
セキュリティサーバ110は、知的ハッシュデータベース174を生成する(612)。セキュリティサーバ110は、クライアント150から疑いのあるエンティティハッシュを受信する(614)。セキュリティサーバ110は、疑いのあるエンティティハッシュが知的ハッシュデータベース174内のハッシュに該当するか否かを評価する(616)。セキュリティサーバ110は、この評価の結果をクライアント150に提供する(618)。
【0057】
図7は、一実施形態による、疑いのあるエンティティを検出し評価するためにクライアント150上のセキュリティモジュール116が実行するステップを示すフローチャートである。他の実施形態は、示されるステップを異なる順に実行し、かつ/または異なるもしくは追加のステップを実行する。さらに、ステップのうちのいくつかは、セキュリティモジュール116以外のエンジンまたはモジュールにより実行してもよい。
【0058】
セキュリティモジュール116は、疑いのあるエンティティを識別する(712)。セキュリティモジュール116は、疑いのあるエンティティハッシュを生成する(714)。セキュリティモジュール116は、疑いのあるエンティティハッシュをセキュリティサーバ110に送信する(616)。セキュリティモジュール116は、セキュリティサーバ110から疑いのあるエンティティハッシュの評価を受信し(618)、評価は、疑いのあるエンティティハッシュが、マルウェアエンティティの知的ハッシュと高い類似性を有するか、それとも無害エンティティの知的ハッシュと高い類似性を有するかを示す。720において、評価により、疑いのあるエンティティが無害であること、すなわち、既知のマルウェアに類似しないことが示される場合、セキュリティモジュール116は、疑いのあるエンティティを識別すること(712)に続く。720において、評価により、疑いのあるエンティティがマルウェアであることが示される場合、セキュリティモジュール116は、疑いのあるエンティティをクライアントから削除するなどのクライアント150の修復を実行する(724)。
【0059】
上記説明は、特定の実施形態の動作を説明するために含まれており、本発明の限定を意味しない。本発明の範囲は、以下の特許請求の範囲によってのみ限定されるべきである。上記考察から、本発明の主旨および範囲に包含される多くの変形が当業者には明らかとなろう。

【特許請求の範囲】
【請求項1】
エンティティの知的ハッシュを生成する方法であって、
前記エンティティに基づいてメタ言語命令シーケンスを生成するステップと、
前記メタ言語命令シーケンスのサブシーケンスのセットを識別するステップと、
少なくとも部分的に前記識別されたサブシーケンスのセットに基づいて、前記エンティティの前記知的ハッシュを生成するステップと、
前記知的ハッシュを記憶装置に記憶するステップと
を含む、方法。
【請求項2】
前記メタ言語命令シーケンスに基づいて、メタ言語命令のサブシーケンスのセットを識別するステップは、
複数のサブシーケンスの複数の頻度値を特定するステップであって、ここで頻度値は、関連付けられたサブシーケンスが前記メタ言語命令シーケンス内で発生する頻度を示すステップと、
少なくとも部分的に前記複数の頻度値に基づいて、前記複数のサブシーケンスから前記サブシーケンスのセットを選択するステップであって、ここで前記選択されるサブシーケンスの前記頻度値は、前記サブシーケンスが前記メタ言語命令シーケンス内で高頻度で発生することを示すステップと
をさらに含む、請求項1に記載の方法。
【請求項3】
前記エンティティの知的ハッシュを生成するステップは、
前記エンティティの圧縮に使用された技法を識別するステップと、
前記エンティティの圧縮に使用された前記技法を記述する情報を定義するステップと、
少なくとも部分的に前記識別された技法を記述する情報に基づいて、前記エンティティの前記知的ハッシュを生成するステップと
をさらに含む、請求項1に記載の方法。
【請求項4】
前記エンティティの知的ハッシュを生成するステップは、
前記エンティティに基づいて固有の文字列のセットを識別するステップと、
前記固有の文字列のセットを記述する情報を定義するステップと、
少なくとも部分的に前記固有の文字列のセットを記述する情報に基づいて、前記エンティティの前記知的ハッシュを生成するステップと
をさらに含む、請求項1に記載の方法。
【請求項5】
前記エンティティに基づいて前記固有の文字列のセットを識別するステップは、前記エンティティとコンピュータシステムとの通信を示す文字列のセットを識別するステップを含む、請求項4に記載の方法。
【請求項6】
前記エンティティに基づいて前記固有の文字列のセットを識別するステップは、ネットワークを通して前記エンティティにより行われた通信を示す文字列のセットを識別するステップを含む、請求項4に記載の方法。
【請求項7】
疑いのあるエンティティがマルウェアエンティティに該当するか否かを判断するコンピュータシステムであって、
クライアントが直面した疑いのあるエンティティに基づいて生成された知的ハッシュを受信するように適合された報告モジュールであって、前記知的ハッシュは、前記疑いのあるエンティティに特有のメタデータセットを含み、前記メタデータの少なくともいくつかは、前記疑いのあるエンティティが変更されても不変である、報告モジュールと、
前記知的ハッシュに基づいて、前記疑いのあるエンティティが前記マルウェアエンティティに該当するか否かを判断するように構成された評価モジュールと
を備え、
前記報告モジュールは、前記疑いのあるエンティティハッシュが前記マルウェアエンティティに該当するか否かを前記クライアントに報告するようにさらに構成される、コンピュータシステム。
【請求項8】
複数の知的ハッシュを記憶するように構成された知的ハッシュデータベースをさらに備え、
前記評価モジュールは、
前記疑いのあるエンティティに基づいて生成された前記知的ハッシュおよび前記複数の知的ハッシュに基づいて、複数の類似性スコアを生成し、ここで類似性スコアは、前記疑いのあるエンティティに基づいて生成された前記知的ハッシュと前記複数の知的ハッシュのうちの1つの知的ハッシュとの類似性を示し、そして
前記複数の類似性スコアのうちの最高類似性スコアに関連付けられた知的ハッシュに基づいて、前記疑いのあるエンティティハッシュが前記マルウェアエンティティに該当するか否かを判断する
ようにさらに構成される、請求項7に記載のコンピュータシステム。
【請求項9】
悪意のあるエンティティに基づいて、前記知的ハッシュを生成するように構成された知的ハッシュ生成モジュールをさらに備える、請求項7に記載のコンピュータシステム。
【請求項10】
前記知的ハッシュ生成モジュールは、
前記悪意のあるエンティティに基づいて、メタ言語命令シーケンスを生成し、
前記メタ言語命令シーケンスのサブシーケンスのセットを識別し、そして
少なくとも部分的に前記識別されたサブシーケンスのセットに基づいて、前記悪意のあるエンティティの前記知的ハッシュを生成する
ようにさらに構成される、請求項9に記載のコンピュータシステム。
【請求項11】
前記知的ハッシュ生成モジュールは、
複数のサブシーケンスの複数の頻度値を特定し、ここで頻度値は、関連付けられたサブシーケンスが前記メタ言語命令シーケンス内で発生する頻度を示し、そして
少なくとも部分的に前記複数の頻度値に基づいて、前記複数のサブシーケンスから前記サブシーケンスのセットを選択し、ここで前記選択されるサブシーケンスの前記頻度値は、前記サブシーケンスが前記メタ言語命令シーケンス内で高頻度で発生することを示す
ようにさらに構成される、請求項10に記載のコンピュータシステム。
【請求項12】
前記知的ハッシュ生成モジュールは、
前記悪意のあるエンティティの圧縮に使用された技法を識別し、
前記悪意のあるエンティティの圧縮に使用された前記技法を記述する情報を定義し、そして
少なくとも部分的に前記識別された技法を記述する情報に基づいて、前記悪意のあるエンティティの前記知的ハッシュを生成する
ようにさらに構成される、請求項9に記載のコンピュータシステム。
【請求項13】
前記知的ハッシュ生成モジュールは、
前記悪意のあるエンティティに基づいて固有の文字列のセットを識別し、
前記固有の文字列のセットを記述する情報を定義し、そして
少なくとも部分的に前記固有の文字列のセットを記述する情報に基づいて、前記悪意のあるエンティティの前記知的ハッシュを生成する
ようにさらに構成される、請求項9に記載のコンピュータシステム。
【請求項14】
疑いのあるエンティティがマルウェアエンティティに該当するか否かを判断するコンピュータプログラムコードが符号化されたコンピュータ可読記憶媒体であって、前記プログラムコードは、
疑いのあるエンティティを識別するプログラムコードと、
前記疑いのあるエンティティの知的ハッシュを生成するプログラムコードであって、ここで前記知的ハッシュは、前記疑いのあるエンティティに特有のメタデータセットを含み、前記メタデータの少なくともいくつかは、前記疑いのあるエンティティが変更されても不変であるプログラムコードと、
前記知的ハッシュをサーバに送信して、前記疑いのあるエンティティがマルウェアエンティティに該当するか否かを評価するプログラムコードと、
前記疑いのあるエンティティがマルウェアエンティティに該当するか否かを特定した結果を前記サーバから受信するプログラムコードと
を含む、コンピュータ可読記憶媒体。
【請求項15】
前記疑いのあるエンティティの前記知的ハッシュを生成するプログラムコードは、
前記疑いのあるエンティティに基づいて、メタ言語命令シーケンスを生成するプログラムコードと、
前記メタ言語命令シーケンスのサブシーケンスのセットを識別するプログラムコードと、
少なくとも部分的に前記識別されたサブシーケンスのセットに基づいて、前記疑いのあるエンティティの前記知的ハッシュを生成するプログラムコードと
を含む、請求項14に記載のコンピュータ可読記憶媒体。
【請求項16】
前記疑いのあるエンティティに基づいてメタ言語命令シーケンスを生成するプログラムコードと、
前記メタ言語命令シーケンスの前記サブシーケンスのセットを識別するプログラムコードと
をさらに含む、
請求項14に記載のコンピュータ可読記憶媒体。
【請求項17】
複数のサブシーケンスの複数の頻度値を特定するプログラムコードであって、ここで頻度値は、関連付けられたサブシーケンスが前記メタ言語命令シーケンス内で発生する頻度を示すプログラムコードと、
少なくとも部分的に前記複数の頻度値に基づいて、前記複数のサブシーケンスから前記サブシーケンスのセットを選択するプログラムコードであって、ここで前記選択されるサブシーケンスの前記頻度値は、前記サブシーケンスが前記メタ言語命令シーケンス内で高頻度で発生することを示すプログラムコードと
をさらに含む、請求項16に記載のコンピュータ可読記憶媒体。
【請求項18】
前記疑いのあるエンティティの知的ハッシュを生成するプログラムコードは、
前記疑いのあるエンティティの圧縮に使用されたアルゴリズムを識別するプログラムコードと、
少なくとも部分的に前記アルゴリズムを示す情報に基づいて、前記疑いのあるエンティティの前記知的ハッシュを生成するプログラムコードと
をさらに含む、請求項14に記載のコンピュータ可読記憶媒体。
【請求項19】
前記疑いのあるエンティティの知的ハッシュを生成するプログラムコードは、
前記疑いのあるエンティティに基づいて固有の文字列のセットを識別するプログラムコードと、
少なくとも部分的に前記固有の文字列のセットを示す情報に基づいて、前記疑いのあるエンティティの前記知的ハッシュを生成するプログラムコードと
をさらに含む、請求項14に記載のコンピュータ可読記憶媒体。
【請求項20】
前記疑いのあるエンティティが前記マルウェアエンティティに該当することを特定する結果を受信したことに応答して、クライアントを修復するプログラムコードをさらに含む、請求項14に記載のコンピュータ可読記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2011−523748(P2011−523748A)
【公表日】平成23年8月18日(2011.8.18)
【国際特許分類】
【出願番号】特願2011−511784(P2011−511784)
【出願日】平成21年5月27日(2009.5.27)
【国際出願番号】PCT/US2009/045319
【国際公開番号】WO2009/154992
【国際公開日】平成21年12月23日(2009.12.23)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
【出願人】(501113353)シマンテック コーポレーション (78)
【氏名又は名称原語表記】Symantec Corporation
【Fターム(参考)】