(57)【要約】  実行可能ファイルはメモリの中にロードされる。実行可能ファイルは、１又は複数の動的リンクライブラリが当該ファイルのインポートテーブルにおいて参照されるかどうかを決定すべく解析される。次に、１又は複数の動的リンクライブラリが、ネットワークに接触するよう適合されるかどうかが決定され得る。
2017500636.tif 000002
【特許請求の範囲】
【請求項１】
複数の命令が格納されるマシン可読媒体であって、実行されると、１又は複数のプログラマブルデバイスに、
実行可能ファイルをロードさせ、
ネットワークアクティビティを実行するよう適合される動的リンクライブラリの前記実行可能ファイルによる使用を検出させ、
前記検出に応答してマルウェア解析を実行させる複数の命令を備える
マシン可読媒体。
【請求項２】
実行されると前記１又は複数のプログラマブルデバイスに、ネットワークアクティビティを実行するよう適合される動的リンクライブラリの前記実行可能ファイルによる使用を検出させる前記複数の命令は、実行されると前記１又は複数のプログラマブルデバイスに、
前記実行可能ファイルによって参照される動的リンクライブラリを識別させ、
前記動的リンクライブラリがネットワークアクティビティを実行するかどうかを決定させる複数の命令を含む、
請求項１に記載のマシン可読媒体。
【請求項３】
実行されると、１又は複数のプログラマブルデバイスに、
前記実行可能ファイルがパックされているかどうかを決定させる複数の命令を更に備える
請求項１に記載のマシン可読媒体。
【請求項４】
実行されると１又は複数のプログラマブルデバイスに前記実行可能ファイルがパックされているかどうかを決定させる前記複数の命令は、実行されると前記１又は複数のプログラマブルデバイスに、
前記実行可能ファイルがパックされていないという決定に応答して、ネットワークアクティビティを実行するよう適合される動的リンクライブラリがないか前記実行可能ファイルをスキャンさせる複数の命令を含む、
請求項３に記載のマシン可読媒体。
【請求項５】
実行されると１又は複数のプログラマブルデバイスに前記実行可能ファイルがパックされているかどうかを決定させる前記複数の命令は、実行されると前記１又は複数のプログラマブルデバイスに、
前記実行可能ファイルがパックされているという決定に応答して前記実行可能ファイルを処理させ、
前記実行可能ファイルによって使用される１又は複数の動的リンクライブラリが、ネットワークアクティビティを実行するかどうかを決定させる複数の命令を含む、
請求項３に記載のマシン可読媒体。
【請求項６】
実行されると１又は複数のプログラマブルデバイスに１又は複数の動的リンクライブラリがネットワークアクティビティを実行するかどうかを決定させる前記複数の命令は、実行されると前記１又は複数のプログラマブルデバイスに、
前記実行可能ファイルを列挙させて、ネットワークアクティビティを実行するよう適合される１又は複数の動的リンクライブラリが前記実行可能ファイルによって参照されるかどうかを検出させる複数の命令を含む、
請求項５に記載のマシン可読媒体。
【請求項７】
実行されると１又は複数のプログラマブルデバイスに、前記実行可能ファイルを列挙させて、ネットワークアクティビティを実行するよう適合される１又は複数の動的リンクライブラリが前記実行可能ファイルによって参照されるかどうかを検出させる前記複数の命令は、実行されると、前記１又は複数のプログラマブルデバイスに、
ネットワークアクティビティを実行するよう適合される動的リンクライブラリを検出することに応答して前記実行可能ファイルの処理をフックさせる複数の命令を含む、
請求項６に記載のマシン可読媒体。
【請求項８】
実行されると１又は複数のプログラマブルデバイスに、前記実行可能ファイルを列挙させて、ネットワークアクティビティを実行するよう適合される１又は複数の動的リンクライブラリが前記実行可能ファイルによって参照されるかどうかを検出させる前記複数の命令は、実行されると、前記１又は複数のプログラマブルデバイスに、
ネットワークアクティビティを実行するよう適合される動的リンクライブラリを検出しないことに応答して、前記実行可能ファイルの処理を可能にさせる複数の命令を含む、
請求項６に記載のマシン可読媒体。
【請求項９】
実行されると、１又は複数のプログラマブルデバイスに、ネットワークアクティビティを実行するよう適合される動的リンクライブラリを検出しないことに応答して、前記実行可能ファイルの処理を可能にさせる前記複数の命令は、実行されると前記１又は複数のプログラマブルデバイスに、
動的リンクライブラリによるネットワークアクティビティを検出することに応答して前記実行可能ファイルの処理をフックさせる複数の命令を含む、
請求項８に記載のマシン可読媒体。
【請求項１０】
前記実行可能ファイルはｐｏｒｔａｂｌｅ  ｅｘｅｃｕｔａｂｌｅファイルを含む、
請求項１から９の何れか一項に記載のマシン可読媒体。
【請求項１１】
実行可能ファイルをロードする段階と、
ネットワークアクティビティを実行するよう適合される動的リンクライブラリの前記実行可能ファイルによる使用を検出する段階と、
前記検出に応答してマルウェア解析を実行する段階とを備える
方法。
【請求項１２】
前記実行可能ファイルがパックされているかどうかを決定する段階と、
前記実行可能ファイルがパックされていないという決定に応答して、ネットワークアクティビティを実行するよう適合される動的リンクライブラリがないか、前記実行可能ファイルをスキャンする段階とを更に備える
請求項１１に記載の方法。
【請求項１３】
前記実行可能ファイルがパックされているかどうかを決定する段階と、
前記実行可能ファイルがパックされているという決定に応答して前記実行可能ファイルを処理する段階と、
１又は複数の動的リンクライブラリがネットワークアクティビティを実行するかどうかを決定する段階とを更に備える
請求項１１に記載の方法。
【請求項１４】
ネットワークアクティビティを実行するよう適合される１又は複数の動的リンクライブラリが前記実行可能ファイルによって参照されるかどうかを検出すべく、前記実行可能ファイルを列挙する段階を更に備える
請求項１３に記載の方法。
【請求項１５】
ネットワークアクティビティを実行するよう適合される動的リンクライブラリを検出することに応答して、前記実行可能ファイルの処理をフックする段階を更に備える
請求項１４に記載の方法。
【請求項１６】
ネットワークアクティビティを実行するよう適合される動的リンクライブラリを検出しないことに応答して、前記実行可能ファイルの処理を可能にする段階と、
動的リンクライブラリによるネットワークアクティビティを検出することに応答して前記実行可能ファイルの処理をフックする段階とを更に備える
請求項１４に記載の方法。
【請求項１７】
１又は複数のプロセッシングエレメントと、
前記１又は複数のプロセッシングエレメントに連結されるメモリと、
メモリの中にロードされる実行可能ファイルアナライザであって、複数の動的リンクライブラリを検出するよう構成される実行可能ファイルアナライザと、
１又は複数の検出された動的リンクライブラリがネットワークアクティビティを実行するよう適合されるかどうかを決定し、前記検出に応答してマルウェア解析を実行するよう構成される動的リンクライブラリアナライザとを備える
装置。
【請求項１８】
前記動的リンクライブラリアナライザは、
前記実行可能ファイルによって参照されるネットワークアクティビティを実行するよう適合される１又は複数の動的リンクライブラリを識別し、
前記１又は複数の動的リンクライブラリがネットワークアクティビティを実行するかどうかを決定するよう更に構成される、
請求項１７に記載の装置。
【請求項１９】
前記実行可能ファイルがパックされているかどうかを決定するよう更に構成される前記実行可能ファイルアナライザと、
前記実行可能ファイルがパックされていないという決定に応答して、ネットワークアクティビティを実行するよう適合される動的リンクライブラリがないか、前記実行可能ファイルをスキャンするよう更に構成される前記動的リンクライブラリアナライザとを更に含む
請求項１８に記載の装置。
【請求項２０】
前記実行可能ファイルアナライザは、
前記実行可能ファイルがパックされているかどうかを決定し、
前記実行可能ファイルがパックされていると決定することに応答して、前記実行可能ファイルを処理するよう更に構成され、
前記動的リンクライブラリアナライザは、１又は複数の動的リンクライブラリがネットワークアクティビティを実行するかどうかを決定するよう更に構成される
ことを更に含む
請求項１８に記載の装置。
【請求項２１】
前記実行可能ファイルアナライザは、
前記実行可能ファイルを列挙して、ネットワークアクティビティを実行するよう適合される１又は複数の動的リンクライブラリが前記実行可能ファイルによって参照されるかどうかを検出するよう更に構成される、
請求項２０に記載の装置。
【請求項２２】
前記動的リンクライブラリアナライザは、
ネットワークアクティビティを実行するよう適合される動的リンクライブラリを検出することに応答して、前記実行可能ファイルの処理をフックするよう更に構成される、
請求項２１に記載の装置。
【請求項２３】
前記動的リンクライブラリアナライザは、
ネットワークアクティビティを実行するよう適合される動的リンクライブラリを検出しないことに応答して、前記実行可能ファイルの処理を可能にするように更に構成される、
請求項２１に記載の装置。
【請求項２４】
前記動的リンクライブラリアナライザは、
動的リンクライブラリによるネットワークアクティビティを検出することに応答して、前記実行可能ファイルの処理をフックするよう更に構成される、
請求項２３に記載の装置。
【請求項２５】
前記実行可能ファイルは、ｐｏｒｔａｂｌｅ  ｅｘｅｃｕｔａｂｌｅファイルを含む、
請求項１７から２４の何れか一項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、実行可能ファイルがネットワークアクティビティを示しているかどうかを決定するためのシステム、コンピュータ可読媒体、装置、及び、方法に関する。より具体的には、本開示は、実行可能ファイルが、そのファイルの実行中にネットワークに接触するよう試みるかどうかを決定するためのシステム、コンピュータ可読媒体、装置、及び方法に関するが、それらには限定されない。
【背景技術】
【０００２】
「マルウェア」として知られる悪意のあるソフトウェアは、インターネットなどのネットワークを介して様々なコンピューティングデバイスを攻撃することができる。マルウェアは、インターネットボット、コンピュータウイルスプログラム、複数の他のコンピュータに広がるべく複製するコンピュータワーム及び他のスタンドアロンマルウェアコンピュータプログラム、トロイの木馬及び他の自己複製しないマルウェア、スパイウェア、又は、コンピュータ、そのユーザに関する情報を集める、さもなければ許可なく動作する任意のコンピュータプログラムなどの、コンピュータに対して意図的に害を及ぼす任意のプログラム又はファイルを含み得る。マルウェアが引き起こし得る複数の問題を防ぐべく、様々な処理及びデバイスが使用されてきた。
【０００３】
例えば、多くの場合アンチウイルススキャンソフトウェアがコンピュータ上にインストールされて、マルウェアがないかその特定のデバイスをスキャンする。スキャンは、その特定のコンピュータに関連付けられるユーザ、及びシステム管理者等によって指定されるスケジュールによって決定されるアンチウイルスソフトによって実行されてよい。残念ながら、アンチウイルスソフトによってウイルスが検出されるまでには、コンピュータ上の何らかの損傷が既に発生していることがある。
【０００４】
いくつかの例において、マルウェアはインターネット「ボット」を含むことがある。ボットとは、コンピュータの全て又は一部を、そのコンピュータのユーザの許可なくリモートに制御するよう構成されるソフトウェアロボットである。複数のボット関連のアクティビティは、ネットワーク上でのボット伝播及び複数の他のコンピュータへの攻撃を含み得る。複数のボットは、通常、脆弱な対象を探すべく、ネットワーク上で利用可能な複数のノード（複数のコンピュータ又は複数の他のデジタルデバイス）をスキャンすることによって伝播する。脆弱なコンピュータがスキャンされる場合、ボットはその脆弱なコンピュータ上に自分自身のコピーをインストールし得る。インストールされると、新たに複製されたボットは、感染させるべく、ネットワーク上の複数の他のコンピュータを探し続け得る。
【０００５】
インターネットボット、コンピュータワーム、トロイの木馬プログラムに加え、多数の他のタイプのマルウェア又はスパイウェアなどの新たなマルウェアが日々作成されている。出現するマルウェアを解析し、防御法を開発するために、複数のマルウェアサンプルが収集されて、複数の脅威となる技術を研究し、アンチウイルスソフトを開発する。研究者による複数のマルウェアサンプルの収集の１つの手段は、いわゆる「ハニーポット」を使用することである。ハニーポットとは、攻撃されるように設計及び配置されるおとりの情報技術（ＩＴ）インフラストラクチャコンポーネントである。研究者らが複数のマルウェアサンプルを収集すべく使用する別の手段は、既知の複数の悪意のあるウェブサイト及び複数のウェブアドレスから複数の新たなマルウェアサンプルをダウンロードすることである。
【０００６】
毎日研究者らによって取得されるマルウェアサンプルの数は増え続けている。新たに作成されたマルウェアに対するアンチウイルス／侵入防御サービス（ＡＶ／ＩＰＳ）検出を提供すべく、手動又は自動のいずれかで実行される必要のある数千に至るマルウェアサンプルが、日々研究者らによって受信されることがある。研究者らにとって身近にある限られたリソースでは、各マルウェアサンプルを悪意のあるものと識別し分類することはかなり困難な場合がある。アドバンスド・パーシステント・スレット（ＡＰＴ）標的型攻撃の一部であり得る複数のボット又は複数のバイナリなどの、複数の特定のカテゴリのマルウェアサンプルを識別することもまた役立つ場合がある。
【０００７】
現在の自動化された複数のマルウェア解析システムは、複数の別個のカテゴリのサンプルに集中することなく、全ての受信されたマルウェアサンプルを実行する。複数の解析報告に基づいて、それらのサンプルは、ネットワークアクティビティを示す複数のボット又は複数のマルウェアサンプルに分類され得る。どのサンプルがボットであり、及び／又は、どのサンプルがネットワークアクティビティを示し得るかを決定すべく、研究者らは通常、各サンプルが実行されるまで待機しなければならない。実行には５分から１０分かかることもある。
【０００８】
しかしながら、全ての受信されたマルウェアサンプルを実行することのデメリットは、この解析方法が、時間のかかる、非効率的なアプローチであり得る点である。研究者らが特定のタイプのマルウェアバイナリに集中できるようにすることによって、解析される必要のあるサンプル数を低減し、複数の特定のサブセットのマルウェアサンプルに研究者らが集中できるようにし得、このことは、複数のマルウェア解析システムのサンプル処理能力を最適化し得る。
【図面の簡単な説明】
【０００９】
【図１】１又は複数の開示された実施形態による、複数の開示された技術が実装されてよいシステムを図示する簡略化されたブロック図である。
【図２】一実施形態による、実行可能ファイルがネットワークアクティビティを示すかどうかの決定が実行されてよいプログラマブルデバイスを図示するブロック図である。
【図３】１又は複数の開示された実施形態による、ネットワークを介して連結される例示的なコンピュータシステム及び例示的なコンピュータサーバを図示するブロックである。
【図４】一実施形態による、実行可能ファイルがネットワークアクティビティを示すどうかを決定するための包括的技術の例を図示するフローチャートを図示する。
【図５】一実施形態による、実行可能ファイルがネットワークアクティビティを示すどうかを決定するための包括的技術の例を図示するブロック図を図示する。
【発明を実施するための形態】
【００１０】
以下の説明においては、説明のために、本発明の完全な理解を提供すべく、多くの具体的な詳細が述べられる。しかしながら、本発明がこれらの具体的な詳細なしに実施され得ることは当業者には明らかであろう。複数の他の例において、構造及び複数のデバイスは、本発明を不明瞭にすることを避けるべく、ブロック図の形で示される。下付き文字も添え字もない数字への言及は、その言及された数字に対応する複数の下付き文字及び複数の添え字の全ての例に言及するものと理解される。更に、本開示において使用される言語は、主に、読みやすさ及び教育の目的で選択されたものであり、本発明の主題を記述又は制限すべく選択されたものではあり得ず、そのような本発明の主題を決定するために必要な特許請求の範囲を採用する。本明細書における「一実施形態」又は「ある実施形態」への言及は、それらの実施形態に関連して説明される特定の機能、構造、又は特性が、本発明の少なくとも１つの実施形態に含まれることを意味し、「一実施形態」又は「ある実施形態」への複数の言及は、必ずしも全てが同じ実施形態を指すものと理解されるべきではない。本明細書において使用されるとき、「プログラマブルデバイス」という用語は、プログラマブルデバイス上で、又はプログラマブルデバイスによって実行されると説明される機能を実行するための単一のプログラマブルデバイス、又は共に動作する複数のプログラマブルデバイスを指すことがある。
【００１１】
本明細書において使用されるとき、「コンピュータシステム」という用語は、コンピュータシステム上で、又はコンピュータシステムによって実行されると説明される機能を実行する、単一のコンピュータ又は共に動作する複数のコンピュータを指すことがある。同様に、「プログラマブルデバイス」という用語は、プログラマブルデバイス上で、又はプログラマブルデバイスによって実行されると説明される機能を実行する、単一のプログラマブルデバイス又は共に動作する複数のプログラマブルデバイスを指し得、「マシン可読媒体」という用語は、マシン可読媒体上に格納されると説明される物質を共に格納する、単一の物理的マシン可読媒体、又は複数の物理的マシン可読媒体を指すことがある。
【００１２】
複数のマルウェアサンプルを効率的に識別し分類するための１つの提案される解決法が、本明細書において説明され、添付の複数の図において示される。図１において示されるように、１又は複数の動的リンクライブラリが実行可能ファイルにおいて参照されるかどうかを決定し、１又は複数の動的リンクライブラリがネットワークに接触するよう適合されるかどうかを決定するためのシステムの実施形態が、概して１００において示される。一般的な実施形態において、システム１００は、メモリの中に実行可能ファイルをロードし、１又は複数の動的リンクライブラリが参照されるかどうかを決定すべくその実行可能ファイルを解析し、１又は複数の動的リンクライブラリが参照されるかどうかを決定することに応答して、１又は複数の動的リンクライブラリが、ネットワークに接触するよう適合されるかどうかを検出するよう適合される。
【００１３】
図１を参照すると、以下に説明される複数の技術が実装されてよい例示的なシステム１００が概略的に示される。システム１００は、複数のコンピュータネットワーク１０２を含むことができる。コンピュータネットワーク１０２は、インターネット、企業ネットワーク、又はローカルエリアネットワーク（ＬＡＮ）などの、多数の異なるタイプの現在利用可能なコンピュータネットワークを含んでよい。これらのネットワークの各々は、有線又は無線のプログラマブルデバイスを含むことができ、任意の数のネットワークプロトコル（例えば、ＴＣＰ／ＩＰ）を使用して動作できる。複数のネットワーク１０２は、（１０４で示される）複数のゲートウェイ及びルータ、複数のエンドユーザコンピュータ１０６、並びに複数のコンピュータサーバ１０８に接続されてよい。システム１００はまた、複数のモバイル通信デバイスでの使用のためのセルラーネットワーク１１０を含むことができる。複数のモバイルセルラーネットワークは、複数の携帯電話及び多数の他のタイプのデバイスをサポートする。システム１００における複数のモバイルデバイスは、複数の携帯電話１１２、複数のラップトップ１１４、及び複数のタブレット１１６として図示される。
【００１４】
図２を参照すると、ブロック図は、一実施形態に係る、本明細書において説明される複数の包括的技術を使用してよい例示的なプログラマブルデバイス２００を図示する。例示的なプログラマブルデバイス２００は、システム１００の複数のコンピュータシステムのうちのいくつかの全て又は一部を備えることができる。例えば、いくつかの実施形態において、プログラマブルデバイス２００は、複数のエンドユーザコンピュータ１０６、複数のサーバ１０８、モバイルデバイス１１２、１１４、１１６、又は、ネットワーク１０２に連結されてよい任意のコンピューティングシステムを含むことができるシステム１００のいくつかのコンピュータシステムの全て又は一部を備えることができる。
【００１５】
図２において示される例示的なプログラマブルデバイスは、１又は複数のプロセッシングエレメント２０２を含むプログラマブルデバイス２００を備えることができる。ただ１つのプロセッシングエレメントが示されるが、プログラマブルデバイス２００の実施形態はまた、２つのそのようなプロセッシングエレメントを含んでよい。プロセッシングエレメント２０２は、第１及び第２のプロセッサコア（すなわち、プロセッサコア２０４ａ及び２０４ｂ）を含むマルチコアプロセッサを備えてよい。そのようなコア２０４ａ、２０４ｂは、以下に検討されるものと同様のやり方で命令コードを実行するよう構成されてよい。いくつかの実施形態において、コア２０４ａ、２０４ｂは、オペレーティングシステムなどの命令コードを実行するよう構成されてよい。いくつかの実施形態において、オペレーティングシステムは、ワシントン州レドモンド市のＭｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎによるＷｉｎｄｏｗｓ（登録商標）などのグラフィカル・インターフェース・オペレーティングシステムを備えてよい。しかしながら、複数の他の実施形態は、要求に応じて、シングルコアプロセッサである複数のプロセッシングエレメントを使用してよい。複数のプロセッシングエレメント２０２を備える複数の実施形態においては、要求に応じて、各プロセッシングエレメントは、異なる数のコアで実装されてよい。
【００１６】
プロセッシングエレメント２０２は、少なくとも１つの共有キャッシュ２０６を含んでよい。共有キャッシュ２０６は、コア２０４ａ、２０４ｂなどのプロセッシングエレメントの１又は複数のコンポーネントによって使用されるデータ（例えば、複数の命令）を格納してよい。例えば、共有キャッシュは、プロセッシングエレメント２０２の複数のコンポーネントによるより速いアクセスを目的として、メモリ２０８に格納されるデータをローカルにキャッシュに格納してよい。１又は複数の実施形態において、共有キャッシュ２０６は、レベル２（Ｌ２）、レベル３（Ｌ３）、レベル４（Ｌ４）、若しくは他のレベルのキャッシュなどの１又は複数の中間レベルキャッシュ、最終レベルキャッシュ（ＬＬＣ）、又はこれらの組み合わせを含んでよい。
【００１７】
図面の明確さを期して、図２は、１つのプロセッシングエレメント２０２を備えるプログラマブルデバイスを図示するが、本発明の範囲はそのように限定されず、任意の数のプロセッシングエレメントが存在してよい。或いは、複数のプロセッシングエレメント２０２の１又は複数は、グラフィックス処理ユニット（ＧＰＵ）、デジタル信号処理（ＤＳＰ）ユニット、フィールドプログラマブルゲートアレイ、又は、任意の他のプログラマブルプロセッシングエレメントなどの、プロセッサ以外の要素であってよい。プロセッシングエレメント２０２は、複数の追加のプロセッシングエレメント（図示せず）に対して異種又は非対称であってよい。プロセッシングエレメント２０２と複数の追加のプロセッシングエレメントとの間には、アーキテクチャ特性、マイクロアーキテクチャ特性、熱的特性、電力消費特性等を含む利点のメトリクスの範囲に関して、様々な差異がある場合がある。これらの差異は、プログラマブルデバイス２００のあらゆるプロセッシングエレメント２０２の間で非対称性及び異種性として効果的に現れてよい。
【００１８】
プロセッシングエレメント２０２は、メモリコントローラロジック（ＭＣ）２１０及びポイントツーポイント（Ｐ―Ｐ）相互接続２１２を更に含んでよい。図２において示されるように、ＭＣ２１０はプロセッシングエレメント２０２をメモリ２０８に連結する。メモリ２０８は、プロセッシングエレメント２０２にローカルに取り付けられるメインメモリの一部であってよい。ＭＣロジック２１０は、プロセッシングエレメント２０２の中に統合されるように図示されているが、いくつかの実施形態においては、ＭＣロジック２１０は、プロセッシングエレメント２０２の中に統合されるのではなく、プロセッシングエレメント２０２の外部の別個のロジックであってよい。
【００１９】
プロセッシングエレメント２０２は、Ｐ―Ｐ相互接続２１２、及び２１６を介してＩ／Ｏサブシステム２１４に連結されてよい。図２において図示されるように、Ｉ／Ｏサブシステム２１４はＰ―Ｐ相互接続２１８を含む。更に、Ｉ／Ｏサブシステム２１４は、高性能グラフィックスエンジンを含むことができるグラフィックスエンジン２２２が接続されるインターフェース２２０を含む。一実施形態において、バス２２４はグラフィックスエンジン２２２をＩ／Ｏサブシステム２１４に連結するために使用されてよい。或いは、ポイントツーポイント相互接続がこれらのコンポーネントを連結してよい。
【００２０】
次に、Ｉ／Ｏサブシステム２１４は、インターフェース２２８を介して第１のリンク２２６に連結されてよい。一実施形態において、第１のリンク２２６は、ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）バス、又は、ＰＣＩエクスプレスバス若しくは別のＩ／Ｏ相互接続バスなどのバスであってよいが、本発明の範囲はそれらに限定されない。
【００２１】
図２において示されるように、様々なＩ／Ｏデバイス２３０が、第１のリンク２２６を第２のリンク２３４に連結可能なブリッジ２３２と共に第１のリンク２２６に連結されてよい。一実施形態において、第２のリンク２３４はローピンカウント（ｌｏｗ  ｐｉｎ  ｃｏｕｎｔ）（ＬＰＣ）バスであってよい。一実施形態において、例えば、キーボード／マウス２３６、１又は複数の通信デバイス２３８（これは次にコンピュータネットワーク１０２と通信してよい）、及び、コード２４２を含んでよいディスクドライブ又は他の大容量ストレージデバイスなどのデータストレージユニット２４０を含む様々なデバイスが第２のリンク２３４に連結されてよい。コード２４２は、上述された複数の技術の１又は複数のものの実施形態を実行するための複数の命令を含んでよい。更に、オーディオＩ／Ｏデバイス２３０が第２のリンク２３４に連結されてよい。
【００２２】
複数の他の実施形態が企図されることに留意されたい。例えば、図２のポイントツーポイントアーキテクチャに代えて、システムはマルチドロップバス又は別のそのような通信トポロジを実装してよい。リンク２２６及び２３４は図２において複数のバスとして図示されるが、任意の望ましいタイプのリンクが使用されてよい。また代替的に、図２の複数の要素は、図２において示されるものより多い又は少ない統合チップを使用して分割されてもよい。
【００２３】
図３を参照すると、ブロック図は例示的なシステム３００の一実施形態を示す。システム３００は、コンピュータネットワーク３０６を介して相互接続される例示的なコンピュータシステム３０２と例示的なコンピュータサーバ３０４とを含むことができる。図２のプログラマブルデバイス２００と同様若しくは異なる、又はその複数の代替例であり得るプログラマブルデバイス３０８は、コンピュータシステム３０２において具現化され得る。プログラマブルデバイス３０８の特定の複数の態様は、図３の他の複数の態様を不明瞭にするのを避けるべく、図３から省略されている。
【００２４】
特定の複数の実施形態において、サーバ３０４は、図２のプログラマブルデバイス２００と同様若しくは異なる、又はその複数の代替例であり得る１又は複数のプログラマブルデバイス３１０を含むことができる。図面の明確さを期して、図３は、１つのプログラマブルデバイス３１０を備えるサーバ３０４を示すが、本発明の範囲はそのように限定されず、システム３００の１又は複数のサーバ３０４において、１又は複数のプログラマブルデバイス３１０が存在してよい。
【００２５】
コード３１４を含んでよいデータストレージユニット３１２又は他の大容量ストレージデバイスなどの１又は複数の大容量ストレージデバイスは、サーバ３０４において具現化され得る。コード３１４は、上述された複数の技術の１又は複数のものの実施形態を実行するための複数の命令を含んでよい。データストア３１６は、データを格納するために使用されてよい。動的オブジェクトデータを含むデータを格納するための任意の望ましいやり方が、データストア３１６において使用されてよい。データストア３１６は、任意の望ましいやり方で実装され編成されてよい。
【００２６】
任意選択として、システム３００は、図３において示されるサンドボックス３１８を含むことができる。いくつかの任意選択的な実施形態において、１より多くのサンドボックス３１８が含まれてよい。サンドボックス３１８は、収容エリア内において、潜在的に悪意のある、未知の、又はリスクのあるソフトウェアを収容し、実行するための技術を提供できる。サンドボックス３１８及びそのあらゆる機能は、サーバ３０４のプログラマブルデバイス３１０、又はコンピュータ３０２のプログラマブルデバイス３０８などのプログラマブルデバイスによって制御され得る。サンドボックス３１８内において実行されるソフトウェア（複数の実行可能アプリケーション）によって実行される複数の動作は、サンドボックス３１８のみに影響を及ぼし、サンドボックス３１８の全て若しくはいくつかの部分をホストしてよいプログラマブルデバイス３０８、３１０、コンピュータ３０２、サーバ３０４、複数のモバイルデバイス、若しくは、システム３００の任意の部分に関するより広い範囲、又は、コンピュータ３０２、サーバ３０４、若しくはシステム３００内のいずれかの場所において実行中であってよい他の複数のアプリケーションには影響を及ぼさないよう制限される。サンドボックス３１８は、サンドボックス３１８において実行される実行可能アプリケーションによって試みられる複数の動作の様々なレベルの制約を提供するよう構成され得る。
【００２７】
任意選択として、サンドボックス３１８の実行環境は、コンピュータ３０２、サーバ３０４、又はシステム３００内の任意の場所などの１又は複数のホストコンピューティングシステムにおけるセグメント化された１又は複数の部分としてよい。当該１又は複数の部分は、サンドボックス３１８内で実行中の複数の実行可能アプリケーションが、実行環境内で利用可能であり得るような複数のリソース又は複数のデバイスに直接アクセスするのを防ぐ。いくつかの実施形態において、サンドボックス３１８の実行環境は、１又は複数の大容量ストレージデバイス３１２上のスクラッチ領域であり得る。いくつかの実施形態において、サンドボックス３１８は仮想マシン３２０上で実行されてよい。仮想マシン３２０は、プログラマブルデバイス３０８、３１０、コンピュータ３０２、サーバ３０４、又は仮想マシン３２０をホストしてよい任意のコンピュータシステムの全て又は一部をエミュレートできる。
【００２８】
本明細書において説明される複数の技術は、実行可能ファイル、又は、プログラムの全て若しくは一部として実行されることが可能な任意のソフトウェアアプリケーションが、ネットワークアクティビティを示すかどうかを決定することを利用してよい。複数の説明された技術は、研究者らが、複数の実行可能ファイルが完全に実行されるのを待機することなく、複数の実行可能ファイルを迅速に分類することを可能にし、このことは、複数のファイルサンプルを処理するために必要な時間を大幅に低減させ、複数の実行可能なサンプルを解析するための効率のよいアプローチを提供できる。
【００２９】
図４を参照すると、実行可能ファイルがネットワークアクティビティを示すかどうかを決定するための包括的技術の例を図示する、概して４００において示されるフローチャートがある。任意選択として、説明される複数の技術は、複数の図のアーキテクチャ及び環境に関連して実行されてよい。しかしながら、説明される複数の技術は、任意の望ましい環境において実行されてよい。
【００３０】
動作４０２において、実行可能ファイルが取得される。実行可能ファイルは、任意の既知の手段によって取得されてよい。例えば、実行可能ファイルは、ネットワークを介してリモートコンピュータシステムから受信され得る。実行可能ファイルは、未知で、潜在的にリスクのあるかもしれない、且つ潜在的に悪意のあるかもしれないサンプルの実行可能ファイルを含むことができる。実行可能ファイルは、実行可能ファイル、又は、ソフトウェアプログラムの全て若しくは一部として実行されることが可能な任意のソフトウェアアプリケーションであってよい。任意選択として、実行可能ファイルは、ｐｏｒｔａｂｌｅ  ｅｘｅｃｕｔａｂｌｅ（ＰＥ）ファイルを含んでよい。実行可能ファイルは、実行可能ファイルがネットワークアクティビティを示すかどうかを検出する処理のために受信されてよい。いくつかの実施形態において、１又は複数の動的リンクライブラリ（ＤＬＬ）の実行可能ファイルによる使用。ＤＬＬとは、同時に１より多くの実行可能ファイルによって使用され得るコード及びデータを含む動的リンクライブラリであり、それにより１より多くの実行可能ファイルが、単一のＤＤＬに含まれる機能を使用することができる。以下において説明される複数の技術は、実行可能ファイルが、ネットワークに接触するよう適合される１又は複数の動的リンクライブラリを含むかどうかを決定してよい。
【００３１】
動作４０４において、実行可能ファイルがパックされているかどうかが検出される。実行可能ファイルがパックされているかどうかを決定すべく、いくつかの実施形態においては実行可能ファイルが読み出され得る。実行可能ファイルがパックされていない場合、処理は動作４０６に続き、実行可能ファイルがパックされている場合、処理は動作４０８に続く。任意選択として、実行可能ファイルがパックされていない複数の実施形態においては、実行可能ファイルは動作４０６において列挙されてよい。実行可能ファイルの列挙は、複数のロードされたモジュールのアドレスリストを生成するパックされていない実行可能ファイル、処理開始の引き数、複数のＡＰＩコールなどの複数の命令、複数のコードサンプルの署名、及び、インポート記述子データ構造をスキャンすること、又は読み出すことを含むことができる。
【００３２】
インポート記述子データ構造は、複数のインポート記述子のアレイを含むことができる。インポート記述子は、実行可能ファイルによってロードされる各動的リンクライブラリ（ＤＬＬ）に対して提供され得る。オペレーティングシステムが、Ｗｉｎｄｏｗｓ（登録商標）又はＷｉｎｄｏｗｓ（登録商標）ベースのオペレーティングシステムを含む可能性のある複数の実施形態において、インポート記述子データ構造は、「画像インポート記述子」を含むことができる。オペレーティングシステムが、Ｗｉｎｄｏｗｓ（登録商標）又はＷｉｎｄｏｗｓ（登録商標）ベースのオペレーティングシステムを含まない可能性のある複数の実施形態においては、インポート記述子データ構造は、任意の好適なインポート記述子データ構造を含むことができる。
【００３３】
動作４１０において、実行可能ファイルのインポート記述子データ構造は、ネットワークに接触するよう、さもなければネットワークアクティビティを示すよう適合されるあらゆる動的リンクライブラリ（ＤＬＬ）を探すべくスキャンされ得る。いくつかの実施形態において、インポート記述子データ構造は、コンピューティングシステムなどのマシンによってスキャンされ得、一方で、複数の任意選択的な実施形態においては、インポート記述子データ構造は、研究者らによって手動でスキャンされ得る。
【００３４】
実行可能ファイルが、アプリケーション・プログラミング・インターフェース（ＡＰＩ）コールなどのシステムコールを使用すべく、実行可能ファイルはまず、ＡＰＩコールを公開するＤＬＬをインポートし、次にＡＰＩを実行しなくてはならない。どのＤＬＬが様々なＡＰＩコールを公開しているのかを示す文書が、一般に利用可能である。ウェブブラウザ又は特定のＵＲＬを開くためのコールなどの複数のネットワーク関連ＡＰＩコールを公開する複数のＤＬＬは、ネットワークに接触するよう、又は、ネットワークアクティビティを示すよう適合される複数のＤＬＬを含むと決定される。従って、アドレスリストは、複数のネットワーク関連ＡＰＩコールを公開する、さもなければネットワークアクティビティを示す１又は複数のＤＬＬがないかスキャンされ得る。いくつかの実施形態において、アドレスリストは、ネットワークアクティビティを示す、予め定められた又は既知の複数のＤＬＬがないかスキャンされ得る。これらのＤＬＬのうちのいくつかは、ネットワークアクティビティを示すＤＬＬの中でも、「ｕｌｒｍｏｎ．ｄｌｌ」、「ｍｓｗｓｏｃｋ．ｄｌｌ」、「ｗｓ２＿３２．ｄｌｌ」、及び「ｍｓｃｏｒｅｅ．ｄｌｌ」を含むことができるが、これらに限定されることは全くない。任意選択として、実行可能ファイルにおいて参照される複数のＤＬＬは、ネットワークに接触するよう適合されるＤＬＬのリストと比較されてよい。ＤＬＬのリストは、本明細書において説明される複数の技術によってアクセス可能なシステム内のいずれかの場所に格納されてよい。一例示的実施形態において、ネットワークアクティビティを示すＤＬＬのリストは、図３において示されるデータストア３１６などのデータストア中に格納されてよい。
【００３５】
動作４１２において、ネットワークアクティビティを示す１又は複数のＤＬＬの存在が、インポート記述子データ構造をスキャンすることによって検出されたかどうかが決定される。ネットワークアクティビティを示す少なくとも１つのＤＬＬが検出される場合、処理は、動作４１４に続く。動作４１４では、実行可能ファイルがネットワークアクティビティを示すことができることが確認される。実行可能ファイルがネットワークアクティビティを示すことを確認すると、任意選択としてのみであるが、動作４１６において、実行可能ファイルに関する１又は複数のアクションが起こってよい。任意選択として、実行可能ファイルは潜在的にマルウェアであるかもしれないファイルに分類されてよい。実行可能ファイルを潜在的なマルウェアとして分類することは、実行可能ファイルの更なる解析を容易にすることができる。例えば、実行可能ファイルが潜在的にマルウェアを含む可能性があることを示し得る１又は複数のふるまいを実行可能ファイルが示すかどうかを決定すべく、追加の解析が実行可能ファイルに実行されてよい。任意選択として、実行可能ファイルは、信頼性のない又は潜在的に悪意のあるものであるかもしれない実行可能ファイルのリストを含んでよいデータストアに追加されてよい。処理は次に動作４１８において終了する。
【００３６】
動作４１２に戻ると、実行可能ファイルが列挙されたときに生成されるアドレスリストにおいて、ネットワークに接触するよう、又はネットワークアクティビティを示すよう適合されるＤＬＬが、実行可能ファイルによって何も参照されないと決定される場合、処理は動作４２０に続く。動作４２０では、実行可能ファイルは分類されてよい。いくつかの実施形態において、実行可能ファイルは、単に、ネットワークアクティビティを示さない実行可能ファイルとして分類されてよい。しかしながら、実行可能ファイルは、依然として潜在的にマルウェアか、さもなければ信頼性のないものかもしれない。処理は動作４２２に続く。動作４２２では、任意選択として、実行可能ファイルに更なる解析が実行されてよい。任意選択として、たとえ実行可能ファイルがネットワークアクティビティを示さなくても、実行可能ファイルが潜在的にマルウェアを含む可能性があることを示し得る１又は複数のふるまいを実行可能ファイルが示すかどうかを決定すべく、実行可能ファイルに追加の解析が実行されてよい。実行可能ファイルの他の処理及び解析は、説明されたように実行されてよい。処理は、次に動作４０２に戻る。
【００３７】
動作４０４において、実行可能ファイルがパックされている場合、動的解析は動作４０８において実行されてよい。いくつかの実施形態において、実行可能ファイルの動的解析は、図３において示されるようなサンドボックス３１８などの包含された環境においてファイルを実行することを含んでよい。サンドボックス３１８などの包含された環境において実行可能ファイルを処理すると、実行可能ファイルが、コンピュータ、サーバ、複数のモバイルデバイス、又はシステムの任意の部分の他の複数のエリア、及び／又は、システム上で実行されているかもしれない他の複数のアプリケーションに悪影響を及ぼす可能性を防止できる。
【００３８】
動作４２４において、実行可能ファイルはメモリにロードされてよい。メモリは、キャッシュメモリ又はメインメモリの全て若しくは一部を含んでよい。メモリはまた、図３において示される仮想マシン３２０の仮想メモリを含んでもよい。動的リンカは、実行可能ファイルが参照する任意の動的リンクライブラリ（ＤＬＬ）をロードでき、また、各ＤＬＬから必要とされる複数の関数をリストしてよい。ＤＬＬとは、同時に１より多くの実行可能ファイルによって使用され得るコード及びデータを含む動的リンクライブラリであり、それにより１より多くの実行可能ファイルが、単一のＤＤＬに含まれる機能を使用することができる。
【００３９】
動作４２６において、任意選択として、実行可能ファイルのためのプロセス環境ブロック（ＰＥＢ）が作成され得る。いくつかの任意選択的な実施形態によれば、最初に実行可能ファイルを起動すると、ＰＥＢは、実行可能ファイルを処理していてよいオペレーティングシステムによって作成されてよい。複数のＤＬＬを含むものとして実行可能ファイルによって示される様々なモジュールをロードすべく実行可能ファイルが最初に起動されるとき、オペレーティングシステムによって作成され使用されるデータ構造をＰＥＢは含む。ＰＥＢによってロードされる複数のＤＬＬは、限定されないが、ＮＴＤＬＬ．ｄｌｌ、Ｋｅｒｎｅｌ３２．ｄｌｌ、及び他の既知の複数のＤＬＬを含むことができる。ＰＥＢは、実行可能ファイルが初期化しているときにロードされ得る複数のモジュール、複数の処理開始の引き数、及び複数のインポートされたＤＬＬのリストへの読み出し可能なアクセスを提供できる。ＰＥＢをスキャンすることによって、研究者らは、実行可能ファイルが初期化しているときにロードされてよいあらゆるインポートされたＤＬＬのベースアドレスのリストを取得できる。
【００４０】
いくつかの実施形態において、複数のＤＬＬがインポートされるとき、動作４２８においてＰＥＢは列挙され得る。動作４３０において、ＰＥＢを列挙することで、実行可能ファイルによってロードされるあらゆる動的リンクライブラリ（ＤＬＬ）のアドレスリストを生成できる。動作４３２において、生成されたアドレスリストは、ネットワークアクティビティを示す１又は複数のＤＬＬがないかスキャンされ得る。例えば、ＰＥＢを列挙することによって生成されるアドレスリストは、ネットワーク関連ＡＰＩコールを公開する、さもなければネットワークアクティビティを示す１又は複数のＤＬＬがないかスキャンされる。いくつかの実施形態において、アドレスリストは、既に説明されたように、ネットワークアクティビティを示す、予め定められた又は既知の複数のＤＬＬがないかスキャンされ得る。
【００４１】
任意選択として、動作４３４において、ＰＥＢを列挙することによって生成されるアドレスリストが、ネットワークに接触する、さもなければネットワークアクティビティを示す、のいずれかのように適合される少なくとも１つのＤＬＬを参照しない複数の例において、ＤＬＬがネットワークアクティビティを示すかどうかを決定すべく様々なＤＬＬ関数がロードされるとき、これらはフックされてよい。複数の特定のＤＬＬがロードされるとき、それらのＤＬＬに関連付けられるＡＰＩは、ＤＬＬがネットワークに接触する、さもなければネットワークアクティビティを示す、のいずれかのように適合されるかどうかを決定すべく、ＡＰＩの処理に割り込むべくフックされてよい。いくつかの任意選択的な実施形態において、複数の特定のＤＬＬに関連付けられるＡＰＩは、ＰＥＢの列挙中にフックされてよい。任意の代替例として、複数の特定のＤＬＬに関連付けられるＡＰＩは、ＰＥＢの列挙に代えて、又はＰＥＢの列挙前にフックされてよい。フックされてよい様々なＤＬＬ関数は、既知のＤＬＬ関数の中でも、「ＬｏａｄＬｉｂｒａｒｙ」、「ＬｏａｄＬｉｂｒａｒｙＡ」、「ＬｏａｄＬｉｂｒａｒｙＥＸ」、「ＬｏａｄＭｏｄｕｌｅ」、及び「ＬｏａｄＰａｃｋａｇｅｄＬｉｂｒａｒｙ」、及び／又は、同様のＡＰＩコールを含むが、それらに限定されない。
【００４２】
実行可能ファイルは、ＡＰＩが実行するよう意図される１又は複数の処理以外の、又はこれらの追加の１又は複数の処理を実行するようＡＰＩに命令する複数の命令を含む複数の関数パラメータをＡＰＩに発行できる。従って、複数の関数パラメータは、１又は複数の意図されない処理を実行するようＡＰＩに命令できる。ＡＰＩが実行可能ファイルによって発行される複数の関数パラメータを受信することに加えて、処理も複数の関数パラメータを受信する。複数の関数パラメータを使用することで、処理は、実行可能ファイルが制御を試みている対象の処理を決定することができる。対象の処理が、ネットワークに接続するよう構成されるＡＰＩコールを含む場合、動作４１２において、実行可能ファイルはネットワークアクティブであると決定される。
【００４３】
例えば、実行可能ファイルはＵＲＬに接続するよう意図し、故にネットワークアクティビティを示す。実行可能ファイルは、ＵＲＬに接続すべく、オペレーティングシステムＤＬＬからのＡＰＩコールを制御するよう試みてよい。実行可能ファイルは、「ｗｉｎｉｎｅｔ．ｄｌｌ」などのオペレーティングシステムＤＬＬからの、「ＩｎｔｅｒｎｅｔＯｐｅｎＵｒｌＡ」ＡＰＩ又は同様のネットワークアクティブＡＰＩなどの好適なＡＰＩの制御を試みてよい。これを実現すべく実行可能ファイルはまず、例えばＬｏａｄＬｉｂｒａｒｙＡ  ＡＰＩなどのＡＰＩコールを使用して、ｗｉｎｉｎｅｔ．ｄｌｌをロードすることを試みてよい。処理がｗｉｎｉｎｅｔ，ｄｌｌをロードするとき、ＬｏａｄＬｉｂｒａｒｙＡ  ＡＰＩはフックされる。実行可能ファイルは、ＡＰＩに複数の関数パラメータを発行することによって、ＬｏａｄＬｉｂｒａｒｙＡ  ＡＰＩの制御を試みる。
【００４４】
ＬｏａｄＬｉｂｒａｒｙＡ  ＡＰＩは処理によってフックされるので、実行可能ファイルによってＡＰＩに発行される複数の関数パラメータは、処理とＬｏａｄＬｉｂｒａｒｙＡ  ＡＰＩとの両方によって受信される。これらの関数パラメータは、実行可能ファイルが、ＩｎｔｅｒｎｅｔＯｐｅｎＵｒｌＡ  ＡＰＩなどの対象のＡＰＩのロードを試みていることを示す。ＩｎｔｅｒｎｅｔＯｐｅｎＵｒｌＡ  ＡＰＩが、インターネットなどのネットワークにアクセスするよう構成されるＡＰＩコールを含むことは既知なので、実行可能ファイルがネットワークアクティビティを示すことが決定される。同様に、実行可能ファイルが、ネットワークにアクセスするよう構成される他の対象のＡＰＩコールのロードを試みる場合、動作４１２において、実行可能ファイルがネットワークアクティビティを示すことが決定される。
【００４５】
ネットワークアクティビティを示す少なくとも１つのＤＬＬが検出される場合、処理は動作４１４に続く。動作４１４では、実行可能ファイルがネットワークアクティビティを示すことができることが確認される。実行可能ファイルがネットワークアクティビティを示すことを確認すると、任意選択としてのみ、動作４１６において、実行可能ファイルに関する１又は複数のアクションが起こってよい。任意選択として、実行可能ファイルは潜在的にマルウェアであるかもしれないファイルに分類されてよい。実行可能ファイルを潜在的なマルウェアとして分類することは、実行可能ファイルの更なる解析を容易にすることができる。例えば、実行可能ファイルが潜在的にマルウェアを含む可能性があることを示し得る１又は複数のふるまいを実行可能ファイルが示すかどうかを決定すべく、追加の解析が実行可能ファイルに実行されてよい。任意選択として、実行可能ファイルは、信頼性のない又は潜在的に悪意のあるものであるかもしれない実行可能ファイルのリストを含んでよいデータストアに追加されてよい。処理は次に動作４１８において終了する。
【００４６】
動作４１２に戻ると、実行可能ファイルにおいて参照されるＤＬＬが、どれもネットワークアクティビティを示さないと決定される場合、処理は動作４２０に続く。動作４２０では、実行可能ファイルが分類されてよい。いくつかの実施形態において、実行可能ファイルは、単に、ネットワークアクティビティを示さない実行可能ファイルとして分類されてよい。しかしながら、実行可能ファイルは、依然として潜在的にマルウェアか、さもなければ信頼性のないものかもしれない。処理は動作４２２に続く。動作４２２では、任意選択として、実行可能ファイルに更なる解析が実行されてよい。任意選択として、たとえ実行可能ファイルがネットワークアクティビティを示さなくても、実行可能ファイルが潜在的にマルウェアを含む可能性があることを示し得る１又は複数のふるまいを実行可能ファイルが示すかどうかを決定すべく、実行可能ファイルに追加の解析が実行されてよい。実行可能ファイルの他の処理及び解析は、説明されたように実行されてよい。処理は、次に動作４０２に戻る。
【００４７】
図５は、一実施形態による、上述された複数の技術によって実行可能ファイルがネットワークアクティビティを示すかどうかを決定するための包括的技術の例を図示するブロック図５００である。ネットワークインターフェース５０２は、ネットワークアクティビティを示す実行可能ファイルが受信され得るネットワークにネットワーク接続性を提供する。
【００４８】
パック検出モジュール５０４は、実行可能ファイルを受信し、その実行可能ファイルがパックされているかどうかを検出できる。実行可能ファイルがパックされていない場合、実行可能ファイルは列挙モジュール５０６に送信されてよく、実行可能ファイルがパックされている場合、実行可能ファイルは動的解析モジュール５０８に送信され得る。
【００４９】
任意選択として、実行可能ファイルがパックされていない複数の実施形態において、実行可能ファイルは列挙モジュール５０６によって列挙されてよい。実行可能ファイルを列挙することは、実行可能ファイルのインポート記述子データ構造モジュール５１０をスキャンすること、又は読み出すことを含むことができる。インポート記述子データ構造モジュール５１０は、インポート記述子のアレイを提供できる。インポート記述子のアレイにおいて、インポート記述子は、実行可能ファイルによってロードされる各動的リンクライブラリ（ＤＬＬ）に対して提供され得る。
【００５０】
任意選択として、ネットワークＤＬＬ検出モジュール５１２は、実行可能ファイルによってロードされる各動的リンクライブラリ（ＤＬＬ）がないか、インポート記述子データ構造モジュール５１０中に提供されるインポート記述子のアレイをスキャンできる。任意選択的な実施形態において、ネットワークＤＬＬ検出モジュール５１２は、ネットワークアクティビティを示す、予め定められた又は既知の複数のＤＬＬがないか、アレイをスキャンしてよい。これらのＤＬＬのうちのいくつかは、ネットワークに接触するよう、さもなければネットワークアクティビティを示すよう適合される複数のＤＬＬの中でも、「ｕｌｒｍｏｎ．ｄｌｌ」、「ｍｓｗｓｏｃｋ．ｄｌｌ」、「ｗｓ２＿３２．ｄｌｌ」、及び「ｍｓｃｏｒｅｅ，ｄｌｌ」を含むことができるが、これらに限定されることは全くない。
【００５１】
いくつかの実施形態において、ネットワークに接触するよう、又はネットワークアクティビティを示すよう適合される少なくとも１つのＤＬＬがネットワークＤＬＬ検出モジュール５１２によって検出される場合、実行可能ファイルはネットワークアクティビティを示すと決定される。解析モジュール５１４は、次に、ネットワークＤＬＬ検出モジュール５１２から実行可能ファイルを受信してよい。解析モジュール５１４は、実行可能ファイルを潜在的なマルウェアとして分類してよい。実行可能ファイルを潜在的なマルウェアとして分類することは、実行可能ファイルの更なる解析を容易にすることができる。例えば、実行可能ファイルが潜在的にマルウェアを含む可能性があることを示し得る１又は複数のふるまいを実行可能ファイルが示すかどうかを決定すべく、解析モジュール５１４によって実行可能ファイルに追加の解析が実行されてよい。任意選択として、実行可能ファイルは、信頼性のない又は潜在的に悪意のあるものであるかもしれない実行可能ファイルのリストを含んでよいデータストアに追加されてよい。
【００５２】
実行可能ファイルがパック検出５０４によってパックされていると決定される場合、実行可能ファイルは動的解析モジュール５０８によって受信され得る。いくつかの実施形態において、動的解析モジュール５０８は、ＰＥＢ作成モジュール５１６、アドレスリスト生成モジュール５２０、スキャニングモジュール５２２を含むことができる列挙モジュール５１８、及びＡＰＩフックモジュール５２４を含むことができる。
【００５３】
ＰＥＢ作成モジュール５１６は、実行可能ファイルが最初に起動されるとき、実行可能ファイルのプロセス環境ブロック（ＰＥＢ）を生成できる。ＰＥＢは、モジュール、インポートされたＤＬＬ、及び実行可能ファイルに関する他の情報のリストへの読み出し可能なアクセスを提供できる。ＰＥＢが作成されると、列挙モジュール５１８のアドレスリスト生成モジュール５２０は、ＰＥＢをスキャンし、アドレスリストを生成するよう適合され得る。アドレスリストが生成されると、スキャニングモジュール５２２は、ロードされた動的リンクライブラリ（ＤＬＬ）がないか、ＰＥＢの生成されたアドレスリストをスキャンするよう適合されてよい。任意選択として、既に説明されたように、スキャニングモジュール５２２は、ネットワークアクティビティを示す、予め定められた又は既知の複数のＤＬＬがないか、アドレスリストをスキャンできる。いくつかの実施形態において、ネットワークＤＬＬ検出モジュール５１２は、次に、スキャニングモジュール５２２からスキャンされたアドレスリストを受信でき、次に、アドレスリストにおいて検出され得た少なくとも１つのＤＬＬがネットワークアクティビティを示すことができるかどうかを決定する。
【００５４】
任意選択として、アドレスリスト生成モジュール５２０によって生成されるアドレスリストが、ネットワークに接触する、さもなければネットワークアクティビティを示す、のいずれかのように適合される少なくとも１つのＤＬＬを参照しない複数の例において、ＤＬＬがネットワークアクティビティを示すかどうかを決定すべく様々なＤＬＬ関数がロードされるとき、これらはＡＰＩフックモジュール５２４によってフックされてよい。複数の特定のＤＬＬがロードされるとき、それらのＤＬＬに関連付けられるＡＰＩは、ＡＰＩフックモジュール５２４によってフックされて、ＤＬＬが、ネットワークに接触する、さもなければネットワークアクティビティを示す、のいずれかのように適合されるかどうかを決定すべく、ＡＰＩの処理に割り込んでよい。いくつかの任意選択的な実施形態において、複数の特定のＤＬＬに関連付けられるＡＰＩは、ＰＥＢが列挙中にフックされてよい。任意の代替例として、複数の特定のＤＬＬに関連付けられるＡＰＩは、ＰＥＢの列挙に代えて、又はＰＥＢの列挙前にＡＰＩフックモジュール５２４によってフックされてよい。フックされてよい様々なＤＬＬ関数は、既知のＤＬＬ関数の中でも、「ＬｏａｄＬｉｂｒａｒｙ」、「ＬｏａｄＬｉｂｒａｒｙＡ」、「ＬｏａｄＬｉｂｒａｒｙＥＸ」、「ＬｏａｄＭｏｄｕｌｅ」、及び「ＬｏａｄＰａｃｋａｇｅｄＬｉｂｒａｒｙ」、及び／又は、同様の複数のＡＰＩコールを含むが、それらに限定されない。
【００５５】
実行可能ファイルは、ＡＰＩが実行するよう意図される１又は複数の処理以外の、又はこれらの追加の１又は複数の処理を実行するようＡＰＩに命令する複数の命令を含む複数の関数パラメータをＡＰＩに発行できる。従って、複数の関数パラメータは、１又は複数の意図されない処理を実行するようＡＰＩに命令できる。ＡＰＩが実行可能ファイルによって発行される複数の関数パラメータを受信することに加えて、ＡＰＩフックモジュール５２４も複数の関数パラメータを受信する。複数の関数パラメータを使用することで、実行可能ファイルが制御を試みている対象の処理が決定され得る。
【００５６】
いくつかの実施形態において、ネットワークＤＬＬ検出モジュール５１２は、次に、ＡＰＩフックモジュール５２４から実行可能ファイルを受信し、実行可能ファイルが制御を試みている対象の処理がネットワークアクティビティを示すことができるかどうかを決定できる。実行可能ファイルがネットワークアクティビティを示すとネットワークＤＬＬ検出モジュール５１２によって決定される場合、実行可能ファイルは解析モジュール５１４に送信されてよい。任意選択として、解析モジュール５１４は実行可能ファイルを潜在的なマルウェアとして分類してよい。実行可能ファイルを潜在的なマルウェアとして分類することは、実行可能ファイルの更なる解析を容易にすることができる。例えば、実行可能ファイルが潜在的にマルウェアを含む可能性があることを示し得る１又は複数のふるまいを実行可能ファイルが示すかどうかを決定すべく、追加の解析が実行可能ファイルに実行されてよい。任意選択として、実行可能ファイルは、信頼性のない又は潜在的に悪意のあるものであるかもしれない実行可能ファイルのリストを含んでよいデータストアに追加されてよい。
実施例
【００５７】
以下の複数の例は、更なる複数の実施形態に関する。例１は、複数の命令が格納されるマシン可読媒体である。マシン可読媒体は、実行されると、１又は複数のプログラマブルデバイスに、実行可能ファイルをロードさせ、ネットワークアクティビティを実行するよう適合される動的リンクライブラリの実行可能ファイルによる使用を検出させ、当該検出に応答してマルウェア解析を実行させる複数の命令を備える。
【００５８】
例２は、例１の主題を含み、実行されると１又は複数のプログラマブルデバイスに、ネットワークアクティビティを実行するよう適合される動的リンクライブラリの実行可能ファイルによる使用を検出させる複数の命令が、実行されると１又は複数のプログラマブルデバイスに、実行可能ファイルによって参照される動的リンクライブラリを識別させ、動的リンクライブラリがネットワークアクティビティを実行するかどうかを決定させる複数の命令を含むことを更に備える。
【００５９】
例３は、例１の主題を含み、実行されると、１又は複数のプログラマブルデバイスに、実行可能ファイルがパックされているかどうかを決定させる複数の命令を更に備える。
【００６０】
例４は、例３の主題を含み、実行されると１又は複数のプログラマブルデバイスに実行可能ファイルがパックされているかどうかを決定させる複数の命令は、実行されると、実行可能ファイルがパックされていないという決定に応答して、１又は複数のプログラマブルデバイスに、ネットワークアクティビティを実行するよう適合される動的リンクライブラリがないか実行可能ファイルをスキャンさせる複数の命令を含む。
【００６１】
例５は、例３の主題を含み、実行されると１又は複数のプログラマブルデバイスに実行可能ファイルがパックされているかどうかを決定させる複数の命令は、実行されると、実行可能ファイルがパックされているという決定に応答して、１又は複数のプログラマブルデバイスに実行可能ファイルを処理させ、１又は複数の動的リンクライブラリがネットワークアクティビティを実行するかどうかを決定させる複数の命令を含む。
【００６２】
例６は例５の主題を含み、実行されると１又は複数のプログラマブルデバイスに１又は複数の動的リンクライブラリがネットワークアクティビティを実行するかどうかを決定させる複数の命令は、実行されると１又は複数のプログラマブルデバイスに実行可能ファイルを列挙させて、ネットワークアクティビティを実行するよう適合される１又は複数の動的リンクライブラリが実行可能ファイルによって参照されるかどうかを検出させる複数の命令を含む。
【００６３】
例７は例６の主題を含み、実行されると１又は複数のプログラマブルデバイスに実行可能ファイルを列挙させて、ネットワークアクティビティを実行するよう適合される１又は複数の動的リンクライブラリが実行可能ファイルによって参照されるかどうかを検出させる複数の命令は、実行されると、ネットワークアクティビティを実行するよう適合される動的リンクライブラリを検出することに応答して、１又は複数のプログラマブルデバイスに実行可能ファイルの処理をフックさせる複数の命令を含む。
【００６４】
例８は、例６の主題を含み、実行されると１又は複数のプログラマブルデバイスに実行可能ファイルを列挙させて、ネットワークアクティビティを実行するよう適合される１又は複数の動的リンクライブラリが実行可能ファイルによって参照されるかどうかを検出させる複数の命令は、実行されると、ネットワークアクティビティを実行するよう適合される動的リンクライブラリを検出しないことに応答して、１又は複数のプログラマブルデバイスに実行可能ファイルの処理を可能にさせる複数の命令を含む。
【００６５】
例９は例８の主題を含み、実行されると、１又は複数のプログラマブルデバイスに、」ネットワークアクティビティを実行するよう適合される動的リンクライブラリを検出しないことに応答して、実行可能ファイルの処理を可能にさせる複数の命令は、実行されると、動的リンクライブラリによるネットワークアクティビティを検出することに応答して、１又は複数のプログラマブルデバイスに実行可能ファイルの処理をフックさせる複数の命令を含む。
【００６６】
例１０は、例５−９の主題を含み、実行可能ファイルはサンドボックスにおいて処理される。
【００６７】
例１１は例１−１０の主題を含み、実行可能ファイルはｐｏｒｔａｂｌｅ  ｅｘｅｃｕｔａｂｌｅファイルを含む。
【００６８】
例１２は、実行可能ファイルをロードする段階と、ネットワークアクティビティを実行するよう適合される動的リンクライブラリの実行可能ファイルによる使用を検出する段階と、当該検出に応答してマルウェア解析を実行する段階とを備える方法である。
【００６９】
例１３は例１２の主題を含み、実行可能ファイルがパックされているかどうかを決定する段階と、実行可能ファイルはパックされていないという決定に応答して、ネットワークアクティビティを実行するよう適合される動的リンクライブラリがないか、実行可能ファイルをスキャンする段階とを更に備える。
【００７０】
例１４は例１２の主題を含み、実行可能ファイルがパックされているかどうかを決定する段階と、実行可能ファイルがパックされているという決定に応答して実行可能ファイルを処理する段階と、１又は複数の動的リンクライブラリがネットワークアクティビティを実行するかどうかを決定する段階とを更に備える。
【００７１】
例１５は例１４の主題を含み、ネットワークアクティビティを実行するよう適合される１又は複数の動的リンクライブラリが実行可能ファイルによって参照されるかどうかを検出すべく、実行可能ファイルを列挙する段階を更に備える。
【００７２】
例１６は例１５の主題を含み、ネットワークアクティビティを実行するよう適合される動的リンクライブラリを検出することに応答して、実行可能ファイルの処理をフックする段階を更に備える。
【００７３】
例１７は例１５の主題を含み、ネットワークアクティビティを実行するよう適合される動的リンクライブラリを検出しないことに応答して、実行可能ファイルの処理を可能にする段階と、動的リンクライブラリによるネットワークアクティビティを検出することに応答して実行可能ファイルの処理をフックする段階とを更に備える。
【００７４】
例１８は例１４−１７の主題を含み、実行可能ファイルはサンドボックスにおいて処理される。
【００７５】
例１９は例１２−１８の主題を含み、実行可能ファイルはｐｏｒｔａｂｌｅ  ｅｘｅｃｕｔａｂｌｅを含む。
【００７６】
例２０は、１又は複数のプロセッシングエレメントと、１又は複数のプロセッシングエレメントに連結されるメモリと、メモリに中にロードされる実行可能ファイルアナライザであって、複数の動的リンクライブラリを検出するよう構成される実行可能ファイルアナライザと、１又は複数の検出された動的リンクライブラリがネットワークアクティビティを実行するよう適合されるかどうかを決定し、当該検出に応答してマルウェア解析を実行するよう構成される動的リンクライブラリアナライザとを備える装置である。
【００７７】
例２１は例２０の主題を含み、動的リンクライブラリアナライザは、実行可能ファイルによって参照されるネットワークアクティビティを実行するよう適合される１又は複数の動的リンクライブラリを識別し、１又は複数の動的リンクライブラリがネットワークアクティビティを実行するかどうかを決定するよう更に構成される。
【００７８】
例２２は例２１の主題を含み、実行可能ファイルがパックされているかどうかを決定するよう更に構成される実行可能ファイルアナライザと、実行可能ファイルがパックされていないという決定に応答して、ネットワークアクティビティを実行するよう適合される動的リンクライブラリがないか、実行可能ファイルをスキャンするよう更に構成される動的リンクライブラリアナライザとを更に含む。
【００７９】
例２３は例２１の主題を含み、実行可能ファイルアナライザが、実行可能ファイルがパックされているかどうかを決定し、実行可能ファイルがパックされていると決定することに応答して、実行可能ファイルを処理するよう更に構成されることと、動的リンクライブラリアナライザが、１又は複数の動的リンクライブラリがネットワークアクティビティを実行するかどうかを決定するよう更に構成されることとを更に含む。
【００８０】
例２４は例２３の主題を含み、実行可能ファイルアナライザは、実行可能ファイルを列挙して、ネットワークアクティビティを実行するよう適合される１又は複数の動的リンクライブラリが実行可能ファイルによって参照されるかどうかを検出するよう更に構成される。
【００８１】
例２５は例２４の主題を含み、動的リンクライブラリアナライザは、ネットワークアクティビティを実行するよう適合される動的リンクライブラリを検出することに応答して、実行可能ファイルの処理をフックするよう更に構成される。
【００８２】
例２６は例２４の主題を含み、動的リンクライブラリアナライザは、ネットワークアクティビティを実行するよう適合される動的リンクライブラリを検出しないことに応答して、実行可能ファイルの処理を可能にするように更に構成される。
【００８３】
例２７は例２６の主題を含み、動的リンクライブラリアナライザは、動的リンクライブラリによるネットワークアクティビティを検出することに応答して、実行可能ファイルの処理をフックするよう更に構成される。
【００８４】
例２８は、メモリの中に実行可能ファイルをロードするためのコンピューティング手段と、実行可能ファイルの１又は複数の動的リンクライブラリがネットワークアクティビティを実行するよう適合されるかどうかを検出するためのコンピューティング手段と、当該検出に応答してマルウェア解析を実行するためのコンピューティング手段とを備えるシステムである。
【００８５】
例２９は、例２８の主題を含み、実行可能ファイルによって参照されるネットワークアクティビティを実行するよう適合される１又は複数の動的リンクライブラリを識別するためのコンピューティング手段と、１又は複数の動的リンクライブラリがネットワークアクティビティを実行するかどうかを決定するための決定手段とを更に備える。
【００８６】
例３０は例２８の主題を含み、実行可能ファイルがパックされているかどうかを決定するためのコンピューティング手段と、実行可能ファイルがパックされていないという決定に応答して、ネットワークアクティビティを実行するよう適合される動的リンクライブラリがないか、実行可能ファイルをスキャンするためのスキャン手段とを更に備える。
【００８７】
例３１は例２８の主題を含み、実行可能ファイルがパックされているかどうかを決定するためのコンピューティング手段と、実行可能ファイルがパックされていると決定することに応答して実行可能ファイルを処理するための処理手段と、１又は複数の動的リンクライブラリがネットワークアクティビティ実行するかどうかを決定するための決定手段とを更に備える。
【００８８】
例３２は例３１の主題を含み、ネットワークアクティビティを実行するよう適合される動的リンクライブラリを検出することに応答して実行可能ファイルの処理をフックするためのコンピューティング手段を更に備える。
【００８９】
例３３は例２２主題を含み、ネットワークアクティビティを実行するよう適合される動的リンクライブラリを検出しないことに応答して実行可能ファイルの処理を可能するためのコンピューティング手段を更に含む。
【００９０】
例３４は例３３の主題を含み、動的リンクライブラリによるネットワークアクティビティを検出することに応答して実行可能ファイルの処理をフックするためのコンピューティング手段を更に含む。
【００９１】
上記の説明においては、説明のために、複数の開示された実施形態の完全な理解を提供すべく、多くの具体的な詳細が述べられている。しかしながら、複数の開示された実施形態が、これらの具体的な詳細なしに実施され得ることは当業者には明らかであろう。複数の他の例において、構造及び複数のデバイスは、複数の開示された実施形態を不明瞭にすることを避けるべく、ブロック図の形で示される。下付き文字も添え字もない数字への言及は、その言及された数字に対応する複数の下付き文字及び複数の添え字の全ての例に言及するものと理解される。更に、本開示において使用される言語は、主に、読みやすさ及び教育の目的で選択されたものであり、本発明の主題を記述又は制限すべく選択されたものではあり得ず、そのような本発明の主題を決定するために必要な特許請求の範囲を採用する。本明細書における「一実施形態」又は「ある実施形態」への言及は、それらの実施形態に関連して説明される特定の機能、構造、又は特性が、少なくとも１つの開示された実施形態に含まれることを意味し、「一実施形態」又は「ある実施形態」への複数の言及は、必ずしも全てが同じ実施形態を指すものと理解されるべきではない。
【００９２】
上記の説明は、例示的であることが意図され、限定的であることが意図されるのではないこともまた理解されたい。例えば、上述の複数の実施形態は、互いに組み合わされて使用されてよく、複数の例示的処理段階は、示されるものとは異なる順序で実行されてよい。多数の他の実施形態が、上記の説明を検討すれば当業者には明らかであろう。従って、本発明の範囲は、添付の特許請求の範囲を、そのような特許請求の範囲が権利を与えられる複数の均等技術の全範囲と共に参照することで決定されるべきである。添付の特許請求の範囲において、「含む（ｉｎｃｌｕｄｉｎｇ）」及び「そこにおいて（ｉｎ  ｗｈｉｃｈ）」という用語は、「含む（ｃｏｍｐｒｉｓｉｎｇ）」及び「そこにおいて（ｗｈｅｒｅｉｎ）」の各用語の平易な英語による均等物として使用される。
【図１】
2017500636.tif 000003
【図２】
2017500636.tif 000004
【図３】
2017500636.tif 000005
【図４】
2017500636.tif 000006
【図５】
2017500636.tif 000007
【手続補正書】
【提出日】平成28年6月28日(2016.6.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１又は複数のプログラマブルデバイスに、
実行可能ファイルをロードする手順と、
ネットワークアクティビティを実行する動的リンクライブラリの前記実行可能ファイルによる使用を検出する手順と、
前記検出に応答してマルウェア解析を実行する手順とを実行させる
プログラム。
【請求項２】
ネットワークアクティビティを実行する動的リンクライブラリの前記実行可能ファイルによる使用を検出する前記手順は、
前記実行可能ファイルによって参照される動的リンクライブラリを識別する手順と、
前記動的リンクライブラリがネットワークアクティビティを実行するかどうかを決定する手順とを含む、
請求項１に記載のプログラム。
【請求項３】
前記１又は複数のプログラマブルデバイスに、
前記実行可能ファイルがパックされているかどうかを決定する手順を更に実行させる
請求項１に記載のプログラム。
【請求項４】
前記実行可能ファイルがパックされているかどうかを決定する前記手順は、
前記実行可能ファイルがパックされていないという決定に応答して、ネットワークアクティビティを実行する動的リンクライブラリがないか前記実行可能ファイルをスキャンする手順を含む、
請求項３に記載のプログラム。
【請求項５】
前記実行可能ファイルがパックされているかどうかを決定する前記手順は、
前記実行可能ファイルがパックされているという決定に応答して前記実行可能ファイルを処理する手順と、
前記実行可能ファイルによって使用される１又は複数の動的リンクライブラリが、ネットワークアクティビティを実行するかどうかを決定する手順とを含む、
請求項３に記載のプログラム。
【請求項６】
１又は複数の動的リンクライブラリがネットワークアクティビティを実行するかどうかを決定する前記手順は、
前記実行可能ファイルを列挙させて、ネットワークアクティビティを実行する１又は複数の動的リンクライブラリが前記実行可能ファイルによって参照されるかどうかを検出する手順を含む、
請求項５に記載のプログラム。
【請求項７】
前記実行可能ファイルを列挙させて、ネットワークアクティビティを実行する１又は複数の動的リンクライブラリが前記実行可能ファイルによって参照されるかどうかを検出する前記手順は、
ネットワークアクティビティを実行する動的リンクライブラリを検出することに応答して前記実行可能ファイルの処理をフックする手順を含む、
請求項６に記載のプログラム。
【請求項８】
前記実行可能ファイルを列挙させて、ネットワークアクティビティを実行する１又は複数の動的リンクライブラリが前記実行可能ファイルによって参照されるかどうかを検出する前記手順は、
ネットワークアクティビティを実行する動的リンクライブラリを検出しないことに応答して、前記実行可能ファイルの処理を可能にする手順を含む、
請求項６に記載のプログラム。
【請求項９】
ネットワークアクティビティを実行する動的リンクライブラリを検出しないことに応答して、前記実行可能ファイルの処理を可能にする前記手順は、
動的リンクライブラリによるネットワークアクティビティを検出することに応答して前記実行可能ファイルの処理をフックする手順を含む、
請求項８に記載のプログラム。
【請求項１０】
前記実行可能ファイルはｐｏｒｔａｂｌｅ  ｅｘｅｃｕｔａｂｌｅファイルを含む、
請求項１から９の何れか一項に記載のプログラム。
【請求項１１】
実行可能ファイルをロードする段階と、
ネットワークアクティビティを実行する動的リンクライブラリの前記実行可能ファイルによる使用を検出する段階と、
前記検出に応答してマルウェア解析を実行する段階とを備える
方法。
【請求項１２】
前記実行可能ファイルがパックされているかどうかを決定する段階と、
前記実行可能ファイルがパックされていないという決定に応答して、ネットワークアクティビティを実行する動的リンクライブラリがないか、前記実行可能ファイルをスキャンする段階とを更に備える
請求項１１に記載の方法。
【請求項１３】
前記実行可能ファイルがパックされているかどうかを決定する段階と、
前記実行可能ファイルがパックされているという決定に応答して前記実行可能ファイルを処理する段階と、
１又は複数の動的リンクライブラリがネットワークアクティビティを実行するかどうかを決定する段階とを更に備える
請求項１１に記載の方法。
【請求項１４】
ネットワークアクティビティを実行する１又は複数の動的リンクライブラリが前記実行可能ファイルによって参照されるかどうかを検出すべく、前記実行可能ファイルを列挙する段階を更に備える
請求項１３に記載の方法。
【請求項１５】
ネットワークアクティビティを実行する動的リンクライブラリを検出することに応答して、前記実行可能ファイルの処理をフックする段階を更に備える
請求項１４に記載の方法。
【請求項１６】
ネットワークアクティビティを実行する動的リンクライブラリを検出しないことに応答して、前記実行可能ファイルの処理を可能にする段階と、
動的リンクライブラリによるネットワークアクティビティを検出することに応答して前記実行可能ファイルの処理をフックする段階とを更に備える
請求項１４に記載の方法。
【請求項１７】
１又は複数のプロセッシングエレメントと、
前記１又は複数のプロセッシングエレメントに連結されるメモリと、
メモリの中にロードされる実行可能ファイルアナライザであって、複数の動的リンクライブラリを検出する実行可能ファイルアナライザと、
１又は複数の検出された動的リンクライブラリがネットワークアクティビティを実行するかどうかを決定し、
前記検出に応答してマルウェア解析を実行する動的リンクライブラリアナライザとを備える
装置。
【請求項１８】
前記動的リンクライブラリアナライザは更に、
前記実行可能ファイルによって参照されるネットワークアクティビティを実行する１又は複数の動的リンクライブラリを識別し、
前記１又は複数の動的リンクライブラリがネットワークアクティビティを実行するかどうかを決定する、
請求項１７に記載の装置。
【請求項１９】
更に、前記実行可能ファイルがパックされているかどうかを決定する前記実行可能ファイルアナライザと、
更に、前記実行可能ファイルがパックされていないという決定に応答して、ネットワークアクティビティを実行する動的リンクライブラリがないか、前記実行可能ファイルをスキャンする前記動的リンクライブラリアナライザとを更に含む
請求項１８に記載の装置。
【請求項２０】
前記実行可能ファイルアナライザは更に、
前記実行可能ファイルがパックされているかどうかを決定し、
前記実行可能ファイルがパックされていると決定することに応答して、前記実行可能ファイルを処理し、
前記動的リンクライブラリアナライザは更に、１又は複数の動的リンクライブラリがネットワークアクティビティを実行するかどうかを決定することを更に含む
請求項１８に記載の装置。
【請求項２１】
前記実行可能ファイルアナライザは更に、
前記実行可能ファイルを列挙して、ネットワークアクティビティを実行する１又は複数の動的リンクライブラリが前記実行可能ファイルによって参照されるかどうかを検出する、
請求項２０に記載の装置。
【請求項２２】
前記動的リンクライブラリアナライザは更に、
ネットワークアクティビティを実行する動的リンクライブラリを検出することに応答して、前記実行可能ファイルの処理をフックする、
請求項２１に記載の装置。
【請求項２３】
前記動的リンクライブラリアナライザは更に、
ネットワークアクティビティを実行する動的リンクライブラリを検出しないことに応答して、前記実行可能ファイルの処理を可能にする、
請求項２１に記載の装置。
【請求項２４】
前記動的リンクライブラリアナライザは更に、
動的リンクライブラリによるネットワークアクティビティを検出することに応答して、前記実行可能ファイルの処理をフックする、
請求項２３に記載の装置。
【請求項２５】
前記実行可能ファイルは、ｐｏｒｔａｂｌｅ  ｅｘｅｃｕｔａｂｌｅファイルを含む、
請求項１７から２４の何れか一項に記載の装置。
【請求項２６】
請求項１から１０の何れか一項に記載のプログラムを格納するマシン可読記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００９２
【補正方法】変更
【補正の内容】
【００９２】
上記の説明は、例示的であることが意図され、限定的であることが意図されるのではないこともまた理解されたい。例えば、上述の複数の実施形態は、互いに組み合わされて使用されてよく、複数の例示的処理段階は、示されるものとは異なる順序で実行されてよい。多数の他の実施形態が、上記の説明を検討すれば当業者には明らかであろう。従って、本発明の範囲は、添付の特許請求の範囲を、そのような特許請求の範囲が権利を与えられる複数の均等技術の全範囲と共に参照することで決定されるべきである。添付の特許請求の範囲において、「含む（ｉｎｃｌｕｄｉｎｇ）」及び「そこにおいて（ｉｎ  ｗｈｉｃｈ）」という用語は、「含む（ｃｏｍｐｒｉｓｉｎｇ）」及び「そこにおいて（ｗｈｅｒｅｉｎ）」の各用語の平易な英語による均等物として使用される。
［項目１］
複数の命令が格納されるマシン可読媒体であって、実行されると、１又は複数のプログラマブルデバイスに、
実行可能ファイルをロードさせ、
ネットワークアクティビティを実行するよう適合される動的リンクライブラリの上記実行可能ファイルによる使用を検出させ、
上記検出に応答してマルウェア解析を実行させる複数の命令を備える
マシン可読媒体。
［項目２］
実行されると上記１又は複数のプログラマブルデバイスに、ネットワークアクティビティを実行するよう適合される動的リンクライブラリの上記実行可能ファイルによる使用を検出させる上記複数の命令は、実行されると上記１又は複数のプログラマブルデバイスに、
上記実行可能ファイルによって参照される動的リンクライブラリを識別させ、
上記動的リンクライブラリがネットワークアクティビティを実行するかどうかを決定させる複数の命令を含む、
項目１に記載のマシン可読媒体。
［項目３］
実行されると、１又は複数のプログラマブルデバイスに、
上記実行可能ファイルがパックされているかどうかを決定させる複数の命令を更に備える
項目１に記載のマシン可読媒体。
［項目４］
実行されると１又は複数のプログラマブルデバイスに上記実行可能ファイルがパックされているかどうかを決定させる上記複数の命令は、実行されると上記１又は複数のプログラマブルデバイスに、
上記実行可能ファイルがパックされていないという決定に応答して、ネットワークアクティビティを実行するよう適合される動的リンクライブラリがないか上記実行可能ファイルをスキャンさせる複数の命令を含む、
項目３に記載のマシン可読媒体。
［項目５］
実行されると１又は複数のプログラマブルデバイスに上記実行可能ファイルがパックされているかどうかを決定させる上記複数の命令は、実行されると上記１又は複数のプログラマブルデバイスに、
上記実行可能ファイルがパックされているという決定に応答して上記実行可能ファイルを処理させ、
上記実行可能ファイルによって使用される１又は複数の動的リンクライブラリが、ネットワークアクティビティを実行するかどうかを決定させる複数の命令を含む、
項目３に記載のマシン可読媒体。
［項目６］
実行されると１又は複数のプログラマブルデバイスに１又は複数の動的リンクライブラリがネットワークアクティビティを実行するかどうかを決定させる上記複数の命令は、実行されると上記１又は複数のプログラマブルデバイスに、
上記実行可能ファイルを列挙させて、ネットワークアクティビティを実行するよう適合される１又は複数の動的リンクライブラリが上記実行可能ファイルによって参照されるかどうかを検出させる複数の命令を含む、
項目５に記載のマシン可読媒体。
［項目７］
実行されると１又は複数のプログラマブルデバイスに、上記実行可能ファイルを列挙させて、ネットワークアクティビティを実行するよう適合される１又は複数の動的リンクライブラリが上記実行可能ファイルによって参照されるかどうかを検出させる上記複数の命令は、実行されると、上記１又は複数のプログラマブルデバイスに、
ネットワークアクティビティを実行するよう適合される動的リンクライブラリを検出することに応答して上記実行可能ファイルの処理をフックさせる複数の命令を含む、
項目６に記載のマシン可読媒体。
［項目８］
実行されると１又は複数のプログラマブルデバイスに、上記実行可能ファイルを列挙させて、ネットワークアクティビティを実行するよう適合される１又は複数の動的リンクライブラリが上記実行可能ファイルによって参照されるかどうかを検出させる上記複数の命令は、実行されると、上記１又は複数のプログラマブルデバイスに、
ネットワークアクティビティを実行するよう適合される動的リンクライブラリを検出しないことに応答して、上記実行可能ファイルの処理を可能にさせる複数の命令を含む、
項目６に記載のマシン可読媒体。
［項目９］
実行されると、１又は複数のプログラマブルデバイスに、ネットワークアクティビティを実行するよう適合される動的リンクライブラリを検出しないことに応答して、上記実行可能ファイルの処理を可能にさせる上記複数の命令は、実行されると上記１又は複数のプログラマブルデバイスに、
動的リンクライブラリによるネットワークアクティビティを検出することに応答して上記実行可能ファイルの処理をフックさせる複数の命令を含む、
項目８に記載のマシン可読媒体。
［項目１０］
上記実行可能ファイルはｐｏｒｔａｂｌｅ  ｅｘｅｃｕｔａｂｌｅファイルを含む、
項目１から９の何れか一項に記載のマシン可読媒体。
［項目１１］
実行可能ファイルをロードする段階と、
ネットワークアクティビティを実行するよう適合される動的リンクライブラリの上記実行可能ファイルによる使用を検出する段階と、
上記検出に応答してマルウェア解析を実行する段階とを備える
方法。
［項目１２］
上記実行可能ファイルがパックされているかどうかを決定する段階と、
上記実行可能ファイルがパックされていないという決定に応答して、ネットワークアクティビティを実行するよう適合される動的リンクライブラリがないか、上記実行可能ファイルをスキャンする段階とを更に備える
項目１１に記載の方法。
［項目１３］
上記実行可能ファイルがパックされているかどうかを決定する段階と、
上記実行可能ファイルがパックされているという決定に応答して上記実行可能ファイルを処理する段階と、
１又は複数の動的リンクライブラリがネットワークアクティビティを実行するかどうかを決定する段階とを更に備える
項目１１に記載の方法。
［項目１４］
ネットワークアクティビティを実行するよう適合される１又は複数の動的リンクライブラリが上記実行可能ファイルによって参照されるかどうかを検出すべく、上記実行可能ファイルを列挙する段階を更に備える
項目１３に記載の方法。
［項目１５］
ネットワークアクティビティを実行するよう適合される動的リンクライブラリを検出することに応答して、上記実行可能ファイルの処理をフックする段階を更に備える
項目１４に記載の方法。
［項目１６］
ネットワークアクティビティを実行するよう適合される動的リンクライブラリを検出しないことに応答して、上記実行可能ファイルの処理を可能にする段階と、
動的リンクライブラリによるネットワークアクティビティを検出することに応答して上記実行可能ファイルの処理をフックする段階とを更に備える
項目１４に記載の方法。
［項目１７］
１又は複数のプロセッシングエレメントと、
上記１又は複数のプロセッシングエレメントに連結されるメモリと、
メモリの中にロードされる実行可能ファイルアナライザであって、複数の動的リンクライブラリを検出するよう構成される実行可能ファイルアナライザと、
１又は複数の検出された動的リンクライブラリがネットワークアクティビティを実行するよう適合されるかどうかを決定し、上記検出に応答してマルウェア解析を実行するよう構成される動的リンクライブラリアナライザとを備える
装置。
［項目１８］
上記動的リンクライブラリアナライザは、
上記実行可能ファイルによって参照されるネットワークアクティビティを実行するよう適合される１又は複数の動的リンクライブラリを識別し、
上記１又は複数の動的リンクライブラリがネットワークアクティビティを実行するかどうかを決定するよう更に構成される、
項目１７に記載の装置。
［項目１９］
上記実行可能ファイルがパックされているかどうかを決定するよう更に構成される上記実行可能ファイルアナライザと、
上記実行可能ファイルがパックされていないという決定に応答して、ネットワークアクティビティを実行するよう適合される動的リンクライブラリがないか、上記実行可能ファイルをスキャンするよう更に構成される上記動的リンクライブラリアナライザとを更に含む
項目１８に記載の装置。
［項目２０］
上記実行可能ファイルアナライザは、
上記実行可能ファイルがパックされているかどうかを決定し、
上記実行可能ファイルがパックされていると決定することに応答して、上記実行可能ファイルを処理するよう更に構成され、
上記動的リンクライブラリアナライザは、１又は複数の動的リンクライブラリがネットワークアクティビティを実行するかどうかを決定するよう更に構成される
ことを更に含む
項目１８に記載の装置。
［項目２１］
上記実行可能ファイルアナライザは、
上記実行可能ファイルを列挙して、ネットワークアクティビティを実行するよう適合される１又は複数の動的リンクライブラリが上記実行可能ファイルによって参照されるかどうかを検出するよう更に構成される、
項目２０に記載の装置。
［項目２２］
上記動的リンクライブラリアナライザは、
ネットワークアクティビティを実行するよう適合される動的リンクライブラリを検出することに応答して、上記実行可能ファイルの処理をフックするよう更に構成される、
項目２１に記載の装置。
［項目２３］
上記動的リンクライブラリアナライザは、
ネットワークアクティビティを実行するよう適合される動的リンクライブラリを検出しないことに応答して、上記実行可能ファイルの処理を可能にするように更に構成される、
項目２１に記載の装置。
［項目２４］
上記動的リンクライブラリアナライザは、
動的リンクライブラリによるネットワークアクティビティを検出することに応答して、上記実行可能ファイルの処理をフックするよう更に構成される、
項目２３に記載の装置。
［項目２５］
上記実行可能ファイルは、ｐｏｒｔａｂｌｅ  ｅｘｅｃｕｔａｂｌｅファイルを含む、
項目１７から２４の何れか一項に記載の装置。
【国際調査報告】
2017500636.tif 000008
2017500636.tif 000009