(57)【要約】      （修正有）【課題】マルウェアを検出する方法を提供する。【解決手段】複数の既知の無害な実行可能ファイルにおける複数のメタデータフィールドを検査し２１０、複数の既知の悪意がある実行可能ファイルにおける複数のメタデータフィールドを検査し２２０、複数の既知の無害な実行可能ファイル、および既知の悪意がある実行可能ファイルにおける複数のメタデータフィールドの検査によって得られた情報に基づき、マルウェアを示すメタデータフィールド属性を推論する２３０。【選択図】図２
2015181031.tif 000002
【特許請求の範囲】
【請求項１】
マルウェア検出をコンピュータで実現する方法において、
複数の既知の無害実行可能ファイルにおける複数のメタデータフィールドを検査するス
テップと、
複数の既知の悪意実行可能ファイルにおける複数のメタデータフィールドを検査するス
テップと、
前記複数の既知の無害実行可能ファイル、および既知の悪意実行可能ファイルにおける
複数のメタデータフィールドの検査から得られた情報に基づき、マルウェアを示すメタデ
ータフィールド属性を推論するステップと
を有する、マルウェア検出をコンピュータで実現する方法。
【請求項２】
請求項１に記載のマルウェア検出をコンピュータで実現する方法において、さらに、
未知の実行可能ファイルを受け取るステップと、
前記未知の実行可能ファイルがマルウェアを示すメタデータフィールド属性を含んでい
るか否かを決定することによって、前記未知の実行可能ファイルがマルウェアを含んでい
るか否かを決定するステップと
を有する、方法。
【請求項３】
請求項２に記載のマルウェア検出をコンピュータで実現する方法において、さらに、
前記未知の実行可能ファイルがマルウェアを含んでいる場合、セキュリティアクション
を実施するステップを有する、
方法。
【請求項４】
請求項１に記載のマルウェア検出をコンピュータで実現する方法において、
前記複数の既知の無害実行可能ファイルはポータブル実行可能ファイルを有し、
前記複数の既知の悪質実行可能ファイルはポータブル実行可能ファイルを有し、
前記メタデータフィールド属性はヘッダフィールド属性を有する、
マルウェア検出をコンピュータで実現する方法。
【請求項５】
請求項１に記載のマルウェア検出をコンピュータで実現する方法において、
前記マルウェアを示すメタデータフィールド属性は、以下の属性、すなわち、
デバッグ・セクション属性、
インポート属性、
シンボル・テーブル属性、
オプショナル・ヘッダ属性、
特性属性、
イメージ・サブシステム属性、
リンカ・バージョン属性、
サイズ属性、
リアル・バーチャル・アドレス属性、
エントリー・ポイント属性、
コード・セクション・ベース属性、
アライメント属性、
オペレーティング・システム・バージョン属性、
イメージ・バージョン属性、
ミニマム・サブシステム・バージョン属性、
ダイナミック・リンク・ライブラリ・特性属性、
スタック・サイズ属性、
ヒープ・サイズ属性、
セクション個数属性、
ノー・イン・アウト属性、
スレッド・レベル・スペキュレーション属性、
ベース・オブ・イメージ属性
のうち少なくとも一つを有する、方法。
【請求項６】
請求項１に記載のマルウェア検出をコンピュータで実現する方法において、マルウェア
を示す前記メタデータフィールド属性は、前記複数の既知の無害実行可能ファイルおよび
既知の悪意実行可能ファイル内で検査された、前記複数のメタデータフィールドからの属
性のサブセットを有する、方法。
【請求項７】
請求項１に記載のマルウェア検出をコンピュータで実現する方法において、マルウェア
を示す前記メタデータフィールド属性は静的属性を有する、方法。
【請求項８】
請求項１に記載のマルウェア検出をコンピュータで実現する方法において、マルウェア
を示すメタデータフィールド属性を推論するステップは、マルウェアを示すメタデータフ
ィールド属性の少なくとも一つの組み合わせを決定するステップを有する、方法。
【請求項９】
請求項１に記載のマルウェア検出をコンピュータで実現する方法において、マルウェア
を示すメタデータフィールド属性を推論するステップは、マルウェアを示す第１メタデー
タフィールド属性が、マルウェアを示す第２メタデータフィールド属性よりも強い指標で
あることを決定するステップを有する、方法。
【請求項１０】
請求項１に記載のマルウェア検出をコンピュータで実施する方法において、少なくとも
一つのコンピュータ読み取り可能な媒体における、コンピュータ実行可能命令として明確
に具現化した、方法。
【請求項１１】
マルウェア検出をコンピュータで実現する方法において、
複数の既知の無害なポータブル実行可能ファイルにおける複数のメタデータフィールド
を検査するステップと、
複数の既知の悪意があるポータブル実行可能ファイルにおける複数のメタデータフィー
ルドを検査するステップと、
前記複数の既知の無害なポータブル実行可能ファイル、および既知の悪意があるポータ
ブル実行可能ファイルにおける前記複数のメタデータフィールドの検査から得られた情報
に基づき、マルウェアを示すメタデータフィールド属性を推論するステップと、
未知の実行可能ファイルを受け取るステップと、
前記未知の実行可能ファイルがマルウェアを示すメタデータフィールドを含んでいるか
否かを決定することによって、前記未知の実行可能ファイルがマルウェアを含んでいるか
否かを決定するステップと
を有する、マルウェア検出をコンピュータで実現する方法。
【請求項１２】
請求項１１に記載のマルウェア検出をコンピュータで実現する方法において、
マルウェアを示すメタデータフィールド属性は、以下の属性、すなわち
デバッグ・セクション属性、
シンボル・テーブル属性、
イメージ・サブシステム属性、
リンカ・バージョン属性、
リアル・バーチャル・アドレス属性、
オペレーティング・システム・バージョン属性、
イメージ・バージョン属性、
ミニマム・サブシステム・バージョン属性、
ダイナミック・リンク・ライブラリ・特性属性、
スタック・サイズ属性、
ヒープ・サイズ属性、
セクション数属性、
のうち、少なくとも１つを含むものとした、方法。
【請求項１３】
請求項１１に記載のマルウェア検出をコンピュータで実現する方法において、
マルウェアを示す前記メタデータフィールド属性は、以下の整数、すなわち
セクション・アライメント整数、
ファイル・アライメント整数、
メジャー・オペレーティング・システム・バージョン整数、
マイナー・オペレーティング・システム・バージョン整数、
メジャー・イメージ・バージョン整数、
マイナー・イメージ・バージョン整数、
メジャー・サブシステム・バージョン整数、
マイナー・サブシステム・バージョン整数、
イメージ・サイズ整数、
ヘッダ・サイズ整数、
グラフィカル・ユーザーインタフェース整数、
キャラクタ・ベース・ユーザーインタフェース整数、
サイズ・オブ・スタック・リザーブ整数、
サイズ・オブ・スタック・コミット整数、
サイズ・オブ・ヒープ・リザーブ整数、
サイズ・オブ・ヒープ・コミット整数、
シンボル・テーブル・ポインタ整数、
シンボル個数整数、
デバッグ・セクション整数、
メジャー・リンカ・バージョン整数、
マイナー・リンカ・バージョン整数、
コード・セクション・サイズ整数、
初期化・データ・サイズ整数、
非初期化・データ・サイズ整数、
リアル・バーチャル・アドレス・エントリー・ポイント整数、
リアル・バーチャル・アドレス・スタート・オブ・コード・セクション整数、
リアル・バーチャル・アドレス・ベース・オブ・コード・セクション整数、
リアル・バーチャル・アドレス・スタート・オブ・データ・セクション整数、
ベース・オブ・イメージ整数、
ハズ・インポート整数、
ハズ・ディレイ・インポート整数、
エクスターナル・バインディング・ファシリティ整数、
ノー・イン・アウト整数、
ｕｒｌｍｏｎ・インポート整数、
スレッド・レベル・スペキュレーション整数、
ｍｓｖｃｒｔ・インポート整数、
ｏｌｅａｕｔ３２・インポート整数、
ｓｅｔｕｐａｐｉ・インポート整数、
ｕｓｅｒ３２・インポート整数、
ａｄｖａｐｉ３２・インポート整数、
ｓｈｅｌｌ３２・インポート整数、
ｇｄｉ３２・インポート整数、
ｃｏｍｄｌｇ３２・インポート整数
ｉｍｍ３２・インポート整数
ハズ・サーティフィケート整数、
ノード整数
セクション個数整数
のうち、少なくとも２つを含むものとした、方法。
【請求項１４】
請求項１１に記載のマルウェア検出をコンピュータで実現する方法において、さらに、
前記未知の実行可能ファイルがマルウェアを含む場合にセキュリティアクションを実施
するステップを有し、
前記セキュリティアクションは、以下のステップ、すなわち、
前記未知の実行可能ファイルを隔離するステップと、
前記未知の実行可能ファイルをセキュリティソフトウェアベンダーに報告するステップ
と、
前記未知の実行可能ファイルをマルウェアファイルのリストへ追加するステップと
のうち、少なくとも一つを有する、方法。
【請求項１５】
請求項１１に記載のマルウェア検出をコンピュータで実現する方法において、少なくと
も一つのコンピュータ読み取り可能な媒体における、コンピュータ実行可能命令として明
確に具現化した、方法。
【請求項１６】
検査モジュールであって、
複数の既知の無害な実行可能ファイルにおける複数のヘッダフィールドを検査し、
複数の既知の悪意がある実行可能ファイルにおける複数のヘッダフィールドを検査す
る
ようプログラムした、該検査モジュールと、
前記検査モジュールと通信し、前記検査モジュールによって得られた情報を記憶するよ
う構成したデータベースと、
前記検査モジュールから得られた前記情報に基づき、マルウェアを示すヘッダフィール
ド属性を推論するようプログラムした推論モジュールと
を備えたシステム。
【請求項１７】
請求項１６に記載のシステムにおいて、さらに、
セキュリティシステムであって、
未知の実行可能ファイルを受け取り、
前記未知の実行可能ファイルがマルウェアを示す前記ヘッダフィールド属性を含んで
いるか否かを決定することによって、前記未知の実行可能ファイルがマルウェアを含んで
いるか否かを決定する
ようにプログラムした、該セキュリティシステムを有する、システム。
【請求項１８】
請求項１７に記載のシステムにおいて、前記セキュリティモジュールは、さらに、前記
未知の実行可能ファイルがマルウェアを含んでいる場合に、セキュリティアクションを実
施するようプログラムした、システム。
【請求項１９】
請求項１６に記載のシステムにおいて、前記ヘッダフィールド属性は、以下の属性、す
なわち、
デバッグ・セクション属性、
インポート属性、
シンボル・テーブル属性、
オプショナル・ヘッダ属性、
特性属性、
イメージ・サブシステム属性、
リンカ・バージョン属性、
サイズ属性、
リアル・バーチャル・アドレス属性、
エントリー・ポイント属性、
コード・セクション・ベース属性、
アライメント属性、
オペレーティング・システム・バージョン属性、
イメージ・バージョン属性、
ミニマム・サブシステム・バージョン属性、
ダイナミック・リンク・ライブラリ・特性属性、
スタック・サイズ属性、
ヒープ・サイズ属性、
セクション個数属性、
ノー・イン・アウト属性、
スレッド・レベル・スペキュレーション属性、
ベース・オブ・イメージ属性
のうち、少なくとも一つを含む、システム。
【請求項２０】
請求項１６に記載のシステムにおいて、マルウェアを示す前記ヘッダフィールド属性は
静的属性を含む、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
消費者および企業は、機密データを保存するのに、ますますコンピュータに依存するよ
うになってきた。よって悪意あるプログラマーたちは、他者のコンピュータに対して違法
な制御およびアクセスを得ることに、ますます力を傾注し続けているようである。悪意を
抱くコンピュータプログラマーたちは、他人のコンピュータシステムおよびデータに危害
を及ぼすウィルス、トロイの木馬、ワームおよびその他のプログラムをこれまでに作り、
また作り続けている。これら悪意のあるプログラムは、通常マルウェアと称される。
【背景技術】
【０００２】
セキュリティソフトウェア会社は、顧客に対して日頃からマルウェア署名（例えば、マ
ルウェアを識別するハッシュ機能）を作成し、また展開することによって、マルウェアの
高まる風潮と闘っている。しかしながら、膨大な量のマルウェアがまだ識別されていない
。従って必要なのは、未確認のマルウェアを検出する方法（プロセス）である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明の実施形態は、悪意があるファイル（以下「悪意ファイル」と称する）の一つ以
上のメタデータフィールド属性に基づく悪意があるデータ（以下「悪意データ」と称する
）の検出を目的とする。例えば、検査モジュールは、複数の既知の無害な実行可能ファイ
ルの複数のメタデータフィールドを検査することができる。検査モジュールはまた、複数
の既知の悪意がある実行可能ファイル（以下「悪意実行ファイル」と称する）の複数のメ
タデータフィールドも検査することができる。推論モジュールは、複数の既知の無害な実
行可能ファイル（以下「無害実行ファイル」と称する）および既知の悪意実行ファイルに
おける複数のメタデータフィールドを検査することによって収集した情報に基づいて、マ
ルウェアを示すメタデータフィールド属性を推論することができる。
【０００４】
いくつかの実施形態では、セキュリティモジュールは、複数の既知の無害実行ファイル
、および既知の悪意実行ファイルにおけるメタデータフィールドの検査から推論された情
報を使って、未知の実行可能ファイル（以下「未知実行ファイル」と称する）がマルウェ
アを含んでいるか否かを判定することができる。例えば、セキュリティモジュールは、未
知実行ファイルを受け取る可能性がある。このとき、セキュリティモジュールは、その未
知実行ファイルがマルウェアを示すメタデータフィールド属性を含んでいるか否かを決定
することによって、その未知実行ファイルがマルウェアを含んでいるか否かを決定するこ
とができる。
【課題を解決するための手段】
【０００５】
少なくとも一つの実施形態では、セキュリティモジュールは、未知実行ファイルがマル
ウェアを含んでいるのであれば、セキュリティアクションを実施することができる。セキ
ュリティモジュールは、未知実行ファイルの隔離、未知実行ファイルのセキュリティベン
ダーへの報告、未知実行ファイルのマルウェアファイルリストへの追加、および／または
他の適切なセキュリティアクションを実施することによって、セキュリティアクションを
実施することができる。上述の実施形態の機能は、本明細書に記載の一般原理に基づいて
、互いに組み合わせて使用することができる。これら実施形態および他の実施形態、機能
および利点は、添付図面および特許請求の範囲と合わせて下記の説明を読むことによって
、より完全に理解することができるであろう。
【０００６】
添付図面は多数の実施例を示し、これら図面は本明細書の一部である。以下の説明とと
もに、これら図面は、本発明の様々な原理を提示し、また説明するものである。
【図面の簡単な説明】
【０００７】
【図１】ある実施形態によるマルウェア検出の例示的なシステムのブロック図である。
【図２】ある実施形態によるマルウェア検出の例示的な方法のフローチャートである。
【図３】ある実施形態による例示的な実行可能ファイルのブロック図である。
【図４】ある実施形態によるマルウェア検出の例示的な方法のフローチャートである。
【図５】本明細書に記載および／または説明する一つ以上の実施例を実行することのできるコンピューティングシステム例のブロック図である。
【図６】本明細書に記載および／または説明する一つ以上の実施形態を実行することのできる、例示的なコンピューティングネットワークのブロック図である。
【０００８】
図面全体にわたり、同一の参照符号および説明は、類似するが、必ずしも同じものとは
限らない要素を示している。本明細書に記載の実施例は、様々な変更した形態または代替
的形態となり得るが、図面には例として特定の実施形態を示し、本明細書において詳細を
示す。しかし、本明細書に記載の実施例は、開示された特定の形態に限定することを意図
するものではない。むしろ本発明は、添付する特許請求の範囲に該当する、あらゆる変更
形態、等価形態、代替的形態をカバーする。
【発明を実施するための形態】
【０００９】
以下に、より詳細に示すように、本発明は、一般に、既知の無害な実行可能ファイル（
無害実行可能ファイル）と既知の悪意のある実行可能ファイル（悪意実行可能ファイル）
とを検査し、そして検査中に得られる情報を使ってマルウェアの検出を行って、未知のフ
ァイルがマルウェアを含んでいるか否かを決定する方法およびシステムに関する。図１は
、既知の無害実行可能ファイルと既知の悪意実行可能ファイルを検査し、そして未知の実
行可能ファイル（未知実行可能ファイル）がマルウェアを含んでいるか否かを決定する例
示的なシステムの図である。図２は、既知の無害実行可能ファイルおよび既知の悪意実行
可能ファイルを検査し、マルウェアを示すメタデータ属性を推論する例示的なプロセスを
示す。図３は例示的なポータブルの実行可能(ＰＥ)ファイルを示し、図４はＰＥファイル
がマルウェアを含んでいるか否かを決定する例示的なプロセスを示す。本発明の実施形態
を実現する例示的なコンピューティングシステムおよび例示的なネットワークを、図５お
よび図６に示す。
【００１０】
図１は例示的なシステム１００のブロック図である。システム１００は一つ以上のタス
クを実施する一つ以上のモジュール１１０を含むことができる。例えば、モジュール１１
０は、既知の無害実行可能ファイルおよび既知の悪意実行可能ファイルのメタデータフィ
ールドを検査する検査モジュール１１２を含むことができる。実行可能フィールドのメタ
データフィールドは、実行可能ファイルのヘッダフィールドおよび／またはその他のフィ
ールドを含むことができる。モジュール１１０はまた、既知の無害実行可能ファイルおよ
び既知の悪意実行可能ファイルを検査することによって得られる情報に基づいて、マルウ
ェアを示すメタデータフィールド属性を推論する、推論モジュール１１４を含むこともで
きる。モジュール１１０は、マルウェアを示すメタデータフィールド属性を使って未知実
行可能ファイルがマルウェアを含んでいるか否かを決定することのできる、セキュリティ
モジュール１１６を含むことができる。
【００１１】
ある実施形態では、図１の一つ以上のモジュール１１０は、コンピューティングシステ
ムによって実行されるとき、本明細書に開示する一つ以上のステップをコンピューティン
グシステムに実施させる、一つ以上のソフトウェアアプリケーションまたはプログラムを
表すことができる。例えば、以下により詳しく説明するように、一つ以上のモジュール１
１０は、図５に示すコンピューティングシステム５１０のような一つ以上のコンピューテ
ィング装置および／または図６に示す例示的なネットワークアーキテクチャ６００の一部
で実行するために構成した、ソフトウェアモジュールを表すことができる。図１の一つ以
上のモジュール１１０はまた、本明細書に開示するステップと関連する一つ以上のタスク
を実行するように構成した、一つ以上の特別用途コンピュータの全体または一部も表すこ
とができる。
【００１２】
システム１００はデータベース１２０を含むことができる。データベース１２０は、既
知の無害実行可能ファイルおよび既知の悪意実行可能ファイル内で検査される一つ以上の
メタデータフィールドのリストを記憶することのできる、メタデータフィールド・データ
ベース１２２を含むことができる。データベース１２０はまた、マルウェアメタデータフ
ィールド情報データベース１２４を含むことができる。マルウェアメタデータフィールド
情報データベース１２４は、マルウェアを示すメタデータフィールド属性および／または
メタデータフィールド属性がどのようにマルウェアを示すのかを識別するどんな情報も含
むことができる。マルウェアを示すメタデータフィールド属性は、実行可能ファイル内で
見つかった場合、その実行可能ファイルがマルウェアを含んでいることを示すことのでき
る一つ以上のメタデータフィールド属性を含むことができる。
【００１３】
いくつかの実施形態では、マルウェアメタデータフィールド情報データベース１２４は
、マルウェアのメタデータフィールド属性をどのように利用して、未知の実行可能ファイ
ルがマルウェアを含んでいるか否かを決定するのかを示す情報を含むことができる。ある
実施形態によると、マルウェアメタデータフィールド情報データベース１２４は、任意の
適切な機械学習アルゴリズムを既知の無害実行可能ファイルおよび既知の悪意実行可能フ
ァイルに適用することから得られる情報を含むことができる。例えば、マルウェアメタデ
ータフィールド情報データベース１２４は、マルウェアの検出におけるメタデータ属性の
有用性を示す、一つ以上のメタデータフィールド属性の重み付け情報を含むことができる
。
【００１４】
いくつかの実施形態では、マルウェアメタデータフィールド情報データベース１２４は
、閾値を示す閾値情報を含むことができる。セキュリティモジュール１１６は、マルウェ
アメタデータフィールド情報データベース１２４のメタデータフィールド属性と一致する
実行可能ファイルのメタデータフィールド属性の数が閾値以上の場合、実行可能ファイル
がマルウェアを含んでいると決定することができる。マルウェアメタデータフィールド情
報データベース１２４は、付加的または代替的に、マルウェアを示すメタデータフィール
ド属性の一つ以上の組み合わせを示す情報を含むことができる。いくつかの実施形態では
、マルウェアメタデータフィールド情報データベース１２４は、マルウェアを示すあるメ
タデータフィールド属性が、マルウェアを示す別のメタデータフィールド属性よりも強力
なマルウェアの指標であることを示す情報を含むことができる。
【００１５】
図１の一つ以上のデータベース１２０は、一つ以上のコンピューティング装置の一部分
を示す。一つ以上のデータベース１２０は、図５に示すコンピューティングシステム５１
０の一部分および／または図６に示す例示的なネットワークアーキテクチャ６００のいく
つかの部分を示す。あるいは、図１の一つ以上のデータベース１２０は、コンピューティ
ング装置によってアクセスすることのできる一つ以上の物理的に分かれた装置を示す。
【００１６】
図２は検査モジュール１１２などの検査モジュール、推論モジュール１１４などの推論
モジュールおよび／またはセキュリティモジュール１１６などのセキュリティモジュール
によって実現することのできるプロセスを示す。検査モジュールは、複数の既知の無害実
行可能ファイルにおける複数のメタデータフィールドを検査することができる(ステップ
２１０)。例えば、検査モジュールは、２つ以上の既知の無害実行可能ファイルにおける
２つ以上のメタデータフィールドを検査することができる。
【００１７】
既知の無害実行可能ファイルは、無害であると識別された任意のファイル（すなわち、
マルウェアを含まないファイル）を含む。実行可能ファイルのメタデータフィールドは、
実行可能ファイルに関するおよび／またはそれに関連する情報を持つどんなフィールドで
あってもよい。例えば、実行可能ファイルのメタデータフィールドにおける入力事項は、
実行可能ファイルの属性を示すことができる。
【００１８】
いくつかの実施形態では、メタデータフィールドはまた、実行可能ファイルの静的属性
を含むことができる。本明細書において、用語「静的属性」とは、ファイルが実行されて
いないときに観測できるファイルの属性に言及する。つまり、静的属性は、実行可能ファ
イルの情報の検査に基づいて決定できる属性である。逆に、動的属性は、ファイルの実行
に基づいて観測される属性である。
【００１９】
実行可能ファイルは、コンピュータが実行できるコード（つまり、命令）を含む任意の
ファイルとすることができる。実行可能ファイルはまた、実行ファイルまたはバイナリと
称することもできる。実行可能ファイルは、適切な実行可能ファイルフォーマットによっ
てフォーマットすることができる。実行可能ファイルフォーマットの例として、ポータブ
ル実行可能（ＰＥ）ファイルフォーマットがある。ＰＥファイルフォーマットは、ＷＩＮ
ＤＯＷＳ（登録商標）オペレーティングシステムの３２ビットおよび６４ビットのバージ
ョンに使用されるファイルフォーマットとすることができる。実行可能ファイルはまた、
ＬＩＮＵＸ（登録商標）オペレーティングシステム、ＭＡＣ（登録商標）オペレーティン
グシステム、ＵＮＩＸ（登録商標）オペレーティングシステムおよび／または他のオペレ
ーティングシステムの実行ファイルを含むことができる。
【００２０】
既知の無害実行可能ファイルの検査に加え、検査モジュールは、複数の既知の悪意実行
可能ファイルにおける複数のメタデータフィールドを検査することができる(ステップ２
２０)。例えば検査モジュールは、２つ以上の既知の悪意実行可能ファイルにおける２つ
以上のメタデータフィールドを検査することができる。既知の悪意実行可能ファイルとし
ては、コンピュータシステムおよびデータに危害を及ぼすウィルス、トロイの木馬、ワー
ムおよび／または他のプログラムのような、マルウェアを含むことで知られるどんな実行
可能ファイルがある。いくつかの実施形態では、検査モジュールは、既知の無害実行可能
ファイルおよび既知の悪意実行可能ファイル内で同じメタデータフィールドを検査するこ
とができる。他の実施形態では、検査モジュールは、既知の悪意実行可能ファイルよりも
既知の無害実行可能ファイル内で、一つ以上の様々なメタデータフィールドを検査するこ
とができる。
【００２１】
検査モジュールは、実行可能ファイルのメタデータフィールド内の属性値を決定するこ
とによって、実行可能ファイルのメタデータフィールドを検査することができる。検査モ
ジュールは、検査中に収集した情報（例えば、属性値）を、例えばマルウェアメタデータ
フィールド情報データベース１２４のようなデータベースに記憶することができる。
【００２２】
検査モジュールが既知の無害実行可能ファイルおよび既知の悪意実行可能ファイルを検
査した後に、推論モジュールは、検査中に得た情報に基づいて、マルウェアを示すメタデ
ータフィールド属性を推論することができる。先にも述べたように、検査中に得た情報は
属性情報を含むことができる。推論モジュールは属性情報の処理を行い、どの属性がマル
ウェアを示すのかを決定することができる。推論モジュールは、適切な機械学習アルゴリ
ズムを使って、どの属性がマルウェアを示しているかを決定することができる。推論モジ
ュールはまた、未知の実行可能ファイルがマルウェアを含んでいるか否かを決定するのに
メタデータ属性をどのように使用するのかを決定するために、任意の適切な機械学習アル
ゴリズムも使うことができる。例えば、推論モジュールは、メタデータ属性のどの組み合
わせが悪意実行可能ファイルを示すのかを決定することができる。推論モジュールは、マ
ルウェアメタデータフィールド情報データベース１２４のようなデータベースに、マルウ
ェアを識別するためのメタデータ属性の使用法に関するあらゆる情報を記憶することがで
きる。
【００２３】
実行可能ファイルは、様々なタイプのメタデータフィールドおよびそれに対応する属性
を含むことができる。例えば、実行可能なファイルとしては、一つ以上のデバッグ・セク
ション属性に関する１つ以上のデバッグ・セクションフィールド、１つ以上のインポート
属性に関する１つ以上のインポートフィールド、１つ以上のシンボル・テーブル属性に関
する１つ以上のシンボル・テーブルフィールド、１つ以上のオプショナル・ヘッダ属性に
関する１つ以上のオプショナル・ヘッダフィールド、１つ以上の特性属性に関する一つ以
上の特性フィールド、１つ以上のイメージ・サブシステム属性に関する１つ以上のイメー
ジ・サブシステムフィールド、１つ以上のベース・オブ・イメージ属性に関する１つ以上
のベース・オブ・イメージフィールド、１つ以上のリンカ・バージョン属性に関する１つ
以上のリンカ・バージョンフィールド、１つ以上のサイズ属性に関する１つ以上のサイズ
フィールド、および／または１つ以上のリアル・バーチャル・アドレス（ＲＶＡ）属性に
関する１つ以上のＲＶＡフィールドがある。
【００２４】
実行可能ファイルとしては、さらに、１つ以上のエントリー・ポイント属性に関する１
つ以上のエントリー・ポイントフィールド、１つ以上のコード・セクション・ベース属性
に関する１つ以上のコード・セクション・ベースフィールド、１つ以上のノー・イン・ア
ウト属性に関する１つ以上のノー・イン・アウトフィールド、１つ以上のスレッド・レベ
ル・スペキュレーション（ＴＬＳ）属性に関する１つ以上のＴＬＳフィールド、１つ以上
のハズ・サーティフィケート属性に関する１つ以上のハズ・サーティフィケートフィール
ド、１つ以上のノード属性に関する１つ以上のノードフィールド、１つ以上のアライメン
ト属性に関する１つ以上のアライメントフィールド、１つ以上のオペレーティング・-シ
ステム・バージョン属性に関する１つ以上のオペレーティング・システム・バージョンフ
ィールド、１つ以上のイメージ・バージョン属性に関する１つ以上のイメージ・バージョ
ンフィールド、１つ以上のミニマム・サブシステム・バージョン属性に関する１つ以上の
ミニマム・サブシステム・バージョンフィールド、１つ以上のダイナミック・リンク・ラ
イブラリ（ＤＬＬ）特性属性に関する１つ以上のＤＬＬ特性フィールド、１つ以上のエク
スターナルバインディングファシリティ（ＥＢＦｓ）属性に関する１つ以上のＥＢＦｓフ
ィールド、１つ以上のスタック・サイズ属性に関する一つ以上のスタック・サイズフィー
ルド、１つ以上のヒープ・サイズ属性に関する１つ以上のヒープ・サイズフィールド、お
よび／または１つ以上のセクション数属性に関する１つ以上のセクション数フィールドが
ある。
【００２５】
本明細書に記載する属性は、任意の適切な種類のデータによっても表すことができる。
例えば、デバッグ・セクション属性としては、デバッグ・セクション整数があり、このシ
ンボル・テーブル属性としては、シンボル・テーブル・ポインタ整数および／またはシン
ボル整数の数があり、イメージ・サブシステム属性としては、グラフィカル・ユーザーイ
ンタフェース整数および／またはキャラクタ・ベース・ユーザーインタフェース整数があ
り、またリンカ・バージョン属性としては、メジャー・リンカ・バージョン整数および／
またはマイナー・リンカ・バージョン整数がある。ＲＶＡ属性としては、ＲＶＡ・エント
リー・ポイント整数、ＲＶＡ・スタート・オブ・コード・セクション整数、ＲＶＡ・ベー
ス・オブ・コード-セクション整数、および／またはＲＶＡ・スタート・オブ・データ・
セクション整数がある。
【００２６】
オペレーティング・システム・バージョン属性としては、メジャー・オペレーティング
・システム・バージョン整数および／またはマイナー・オペレーティング・システム・バ
ージョン整数がある。イメージ・バージョン属性としては、メジャー・イメージ・バージ
ョン整数および／またはマイナー・イメージ・バージョン整数がある。ミニマム・サブシ
ステム・バージョン属性としては、メジャー・サブシステム・バージョン整数および／ま
たはマイナー・サブシステム・バージョン属性がある。サイズ属性としては、イメージ・
サイズ整数、コード・セクション・サイズ整数、初期化・データ・サイズ整数、非初期化
・データ・サイズ整数、および／またはヘッダ・サイズ整数がある。オプショナル・ヘッ
ダ属性としては、実行可能ファイルのオプショナル・ヘッダにおける任意の属性がある。
【００２７】
エントリー・ポイント属性としては、エントリー・ポイント整数がある。コード・セク
ション・ベース属性としては、コード・セクション・ベース整数がある。アライメント属
性としてはセクション・アライメント整数および／またはファイル・アライメント整数が
ある。ＤＬＬ・特性属性としては、ＤＬＬ・特性整数があり、スタック-サイズ属性とし
ては、サイズ・オブ・スタック・リザーブ整数および／またはサイズ・オブ・スタック・
コミット整数があり、ヒープ・サイズ属性としては、サイズ・オブ・ヒープ・リザーブ整
数および／またはサイズ・オブ・ヒープ・コミット整数があり。ベース・オブ・イメージ
属性としては、ベース・オブ・イメージ整数があり、ＥＢＦｓ属性としてはＥＢＦｓ整数
がある。ノー・イン・アウト属性としては、ノー・イン・アウト整数があり、ハズ・サー
ティフィケート属性としては、ハズ・サーティフィケート整数があり、ナンバー・オブ・
セクション属性としては、ナンバー・オブ・セクション整数があり、ノード属性としては
ノード整数があり、ＴＬＳ属性としてはＴＬＳ整数がある。
【００２８】
インポート属性としては、ハズ・インポート整数、ハズ・ディレイド・インポート整数
、ｕｒｌｍｏｎ・インポート整数、ｍｓｖｃｒｔ・インポート整数、ｏｌｅａｕｔ３２・
インポート整数、ｓｅｔｕｐａｐｉ・インポート整数、ｕｓｅｒ３２・インポート整数、
ａｄｖａｐｉ３２・インポート整数、ｓｈｅｌｌ３２・インポート整数、ｇｄｉ３２・イ
ンポート整数、ｃｏｍｄｌｇ３２・インポート整数および／またはｉｍｍ３２・インポー
ト整数がある。特性属性としては、様々な実行可能ファイル特性用の１つ以上の特性フラ
グがある。
【００２９】
上述のように、メタデータフィールド属性は、実行可能ファイルの様々な特性を表すこ
とができる。例えば、複数のセクション・アライメント整数を使用して、セクションをど
こにロードする必要があるかを示すことができる。複数のファイル・アライメント整数は
、セクション開始のオフセットとすることができる。メジャーおよびマイナーのオペレー
ティング・システム・バージョン整数は、実行可能ファイルの実行に必要なミニマム・オ
ペレーティング・システムバージョンを示すことができる。メジャーおよびマイナーのイ
メージ・バージョン整数は、実行可能ファイルのバージョンを示す。メジャーおよびマイ
ナーのサブシステム・バージョン整数は、実行可能ファイルの実行に必要とされる、最小
限のサブシステム・バージョンを示すことができる。イメージ・サイズ整数は、セクショ
ン・アライメントを考慮したイメージのサイズを示すことができる。ヘッダ・サイズ整数
は、実行可能ファイルにおけるヘッダの全体サイズを示すことができる。グラフィカル・
ユーザーインタフェース整数は、実行可能ファイルがグラフィカル・ユーザーインタフェ
ースを使用するか否かを示すフラグを含むことができる。キャラクターベースド・ユーザ
ーインタフェース整数は、実行可能ファイルがキャラクター・ベースド・ユーザーインタ
フェースを使用するか否かを示すフラグを含むことができる。
【００３０】
サイズ・オブ・スタック・リザーブ整数は、スタックのためにとっておく必要のあるア
ドレススペースの量を示すことができる。サイズ・オブ・スタック・コミット整数は、ス
タックのためにコミットされる実際のメモリ量を示すことができる。サイズ・オブ・ヒー
プ・リザーブ整数は、ヒープのためにとっておく必要のあるアドレススペースの量を示す
ことができる。サイズ・オブ・ヒープ・コミット整数は、ヒープのためにコミットされる
実際のメモリ量を示すことができる。シンボル・テーブル・ポインタ整数は、シンボル・
テーブルのオフセットとすることができる。ナンバー・オブ・シンボル整数は、シンボル
・テーブル内のシンボル数を示すことができる。デバッグ・セクション整数は、実行可能
ファイルがデバッグ・セクションを有するか否かを示すことができる。メジャーおよびマ
イナーのリンカ・バージョン整数は、実行可能ファイルを生成したリンカのバージョンを
示すことができる。コード・セクション・サイズ整数は、実行可能ファイルにおけるコー
ドセクションのサイズを示すことができる。初期化・データ・サイズ整数は、実行可能フ
ァイルの中の初期化・データセクションのサイズを示すことができる。非初期化・データ
・サイズ整数は、実行可能ファイルの中の非初期化・データセクションのサイズを示すこ
とができる。
【００３１】
ｕｒｌｍｏｎ・インポート整数は、実行可能ファイルがｕｒｌｍｏｎ．ｄｌｌファイル
にリンクしているか否かを示すことができる。ｍｓｖｃｒｔ・インポート整数は、実行可
能ファイルがｍｓｖｃｒｔ．ｄｌｌファイルにリンクしているか否かを示すことができる
。ｏｌｅａｕｔ３２・インポート整数は、実行可能ファイルがｏｌｅａｕｔ３２．ｄｌｌ
ファイルにリンクしているか否かを示すことができる。 ｓｅｔｕｐａｐｉ・インポート
整数は、実行可能ファイルがｓｅｔｕｐａｐｉ．ｄｌｌファイルにリンクしているか否か
を示すことができる。ｕｓｅｒ３２・インポート整数は、実行可能ファイルがｕｓｅｒ３
２−ｉｍｐｏｒｔ．ｄｌｌ ファイルにリンクしている否かを示すことができる。ａｄｖ
ａｐｉ３２・インポート整数は、実行可能ファイルがａｄｖａｐｉ．ｅｘｅファイルにリ
ンクしているか否かを示すことができる。ｓｈｅｌｌ３２・インポート整数は、実行可能
ファイルがｓｈｅｌｌ３２・ｉｍｐｏｒｔｓ．ｄｌｌファイルにリンクしているか否かを
示すことができる。ｇｄｉ３２インポート整数は、実行可能ファイルが ｇｄｉ３２．ｄ
ｌｌファイルにリンクしているか否かを示すことができる。ｃｏｍｄｌｇ３２・インポー
ト整数は、実行可能ファイルがｋｏｍｄｌｇ３２．ｄｌｌファイルにリンクしているか否
かを示すことができる。ｉｍｍ３２・インポート整数は、実行可能ファイルがｉｍｍ３２
．ｄｌｌファイルにリンクしているか否かを示すことができる。
【００３２】
上述したように、実行可能ファイルはＰＥファイルフォーマットとすることができる。
図３はＰＥファイルフォーマットの実行可能ファイル３００の例を示す。図３に示すよう
に、実行可能ファイル３００は、ディスクオペレーティングシステム(ＤＯＳ）スタブ３
１０を含むことができる。実行可能ファイル３００はまた、ファイルヘッダ３２０を含む
ことができる。ファイルヘッダ３２０は一つ以上のメタデータフィールドを含むことがで
きる。例えば、ファイルヘッダ３２０は、バイナリが動作するよう意図したシステムを示
すマシンフィールド、ナンバー・オブ・セクションフィールド、タイム・スタンプフィー
ルド、シンボル・テーブル・ポインタフィールド、シンボル数フィールド、デバッグ・情
報フィールド、オプショナル・ヘッダ・サイズフィールド、イメージ・ファイル・リロケ
ーション・ストリップドフィールド、イメージ・ファイル・実行可能・イメージフィール
ド、イメージ・ファイル・ライン・ナンバー・ストリップドフィールド、ファイル・ロー
カル・シンボル・ストリップドフィールド、イメージ・ファイル・アグレッシブ・ウォー
キング・セット・トリムフィールド、イメージ・ファイル・バイツ・リバースド・ローフ
ィールド、イメージ・ファイル・３２-ビット・マシンフィールド、イメージ・ファイル
・デバッグ・ストリップドフィールド、イメージ・ファイル・リムーバブル・ラン・フロ
ム・スワップフィールド、イメージ・ファイル・ネット・ラン・フロム・スワップフィー
ルド、イメージ・ファイル・システムフィールド、イメージ・ファイルダイナミックリン
クライブラリ（ＤＬＬ）フィールド、および／またはイメージ・ファイル・アップ・シス
テム・オンリーフィールドを含むことができる。
【００３３】
実行可能ファイル３００はまた、オプショナル・ヘッダ３３０を含むことができる。オ
プショナル・ヘッダ３３０は、一つ以上のメタデータフィールドを含む。例えば、オプシ
ョナル・ヘッダ３３０は、メジャー・リンカ・バージョンフィールド、マイナー・リンカ
・バージョンフィールド、サイズ・オブ・コードフィールド、サイズ・オブ・初期化・デ
ータフィールド、サイズ・オブ・非初期化・データフィールド、オフセット・ツー・ザ-
エントリー・ポイントフィールド、アドレス・オブ・エントリー・ポイントフィールド、
オフセット・ツー・ザ・ベース・オブ・コードフィールド、ベース・オブ・データフィー
ルド、セクション・アライメントフィールド、ファイル・アライメントフィールド、メジ
ャー・オペレーティング・システム・バージョンフィールド、マイナー・オペレーティン
グ・システム・バージョンフィールド、メジャー・イメージ・バージョンフィールド、マ
イナー・イメージ・バージョンフィールド、メジャー・サブシステム・バージョンフィー
ルド、マイナー・サブシステム・バージョンフィールド、ＷＩＮＤＯＷＳ（登録商標）・
３２-ビットグラフィカルユーザーインタフェース（ＧＵＩ）アプリケーションフィール
ド、ＷＩＮＤＯＷＳ（登録商標）・３２-ビット・バージョン・バリューフィールド、サ
イズ・オブ・イメージフィールド、サイズ・オブ・ヘッダフィールド、チェック・サムフ
ィールド、イメージ・サブシステム・ネイティブフィールドを含むことができる。
【００３４】
オプショナル・ヘッダ３３０はまた、イメージ・サブシステム・ＷＩＮＤＯＷＳ（登録
商標）・ＧＵＩフィールド、イメージ・サブシステム・ＷＩＮＤＯＷＳ（登録商標）キャ
ラクターユーザーインタフェース（ＣＵＩ）フィールド、イメージ・サブシステム・ＯＳ
／２・ＣＵＩフィールド、イメージ・サブシステム・ＰＯＳＩＸ・ＣＵＩフィールド、Ｄ
ＬＬ・特性フィールド、プロセス・アタッチメントフィールド、スレッド・デタッチメン
トフィールド、スレッド・アタッチメントフィールド、プロセス・デタッチメントフィー
ルド、サイズ・オブ・スタック・リザーブフィールド、サイズ・オブ・スタック・コミッ
トフィールド、サイズ・オブ・ヒープ・リザーブフィールド、サイズ・オブ・ヒープ・コ
ミットフィールド、ローダフラグ、イメージ-ディレクトリフラグを含むことができる。
【００３５】
実行可能ファイル３００はまた、データディレクトリ３４０およびセクションヘッダ３
５０を含むことができる。セクションヘッダ３５０は、１つ以上のメタデータフィールド
を含むことができる。例えば、セクションヘッダ３５０は、イメージ・サイズショートニ
ング・フィールド、イメージ・セクション・ヘッダフィールド、バーチャル・アドレスフ
ィールド、サイズ・オブ・ロー・データフィールド、ポインター・ツー・ローデータフィ
ールド、ポインター・ツー・リロケーションフィールド、実行可能ファイル３００の一つ
以上の属性を示す一つ以上のフラグを含むことのできる特性フィールドを含む。実行可能
なファイル３００はまた、セクション１の３６０（１）からセクションＮの３６０（ｎ）
を含むことができる。
【００３６】
図４は、ポータブル実行可能ファイルのマルウェアを検出する方法を示す。検査モジュ
ールは、複数の既知のポータブルな無害実行可能ファイルの複数のメタデータフィールド
を検査することができる（ステップ４１０）。検査モジュールはまた、複数の既知のポー
タブルな悪意実行可能ファイルにおける複数のメタデータフィールドを検査することがで
きる（ステップ４２０）。検査モジュールは、既知のポータブルな無害実行可能ファイル
および／または既知のポータブルな悪意実行可能ファイルを任意な数だけ検査することが
できる。例えば、検査モジュールは、数十、数百、数千、数万、数百万の実行可能ファイ
ルを検査することができる。検査モジュールはまた、既知のポータブルな無害実行可能フ
ァイルおよび／または既知のポータブルな悪意実行可能ファイルのメタデータフィールド
を任意な数だけ検査することができる。実行可能ファイルが検査された後、推論モジュー
ルは検査に基づいて、マルウェアを示すメタデータフィールド属性を推論することができ
る（ステップ４３０）。
【００３７】
セキュリティモジュールは、推論モジュールによって推論された情報を使って、未知の
実行可能ファイルがマルウェアを含んでいるか否かを決定することができる。例えば、セ
キュリティモジュールは未知の実行可能ファイルを受け取る可能性がある（ステップ４４
０）。セキュリティモジュールは、未知の実行可能ファイルが前もって識別されたマルウ
ェアを示すメタデータフィールド属性を含んでいるか否かを決定することによって、未知
の実行可能ファイルがマルウェアを含んでいるか否かを決定することができる。
【００３８】
いくつかの実施形態では、セキュリティモジュールはアンチウィルスセキュリティソフ
トウェアプログラムを含む、またはその一部とすることができる。少なくとも一つの実施
形態によると、クライアントコンピューティング装置はセキュリティモジュールを含むこ
とができ、そしてセキュリティモジュールは、クライアントコンピューティング装置の未
知のファイルがマルウェアを含んでいるか否かを決定することによって、クライアントコ
ンピューティング装置を保護することができる。セキュリティモジュールはまた、クライ
アントコンピューティング装置にダウンロードされるファイルがマルウェアを含んでいる
か否かを決定することができる。その他の実施形態では、サーバまたは他の任意のコンピ
ューティング装置もセキュリティモジュールを含むことができる。
【００３９】
一実施形態では、８５０，０００個の既知の無害実行可能ファイルおよび５００，００
０個の既知の悪意実行可能ファイルを検査モジュールによって検査した。検査中に収集さ
れた情報は、推論モジュールによって処理され、マルウェアを示すヘッダフィールド属性
を決定した。推論モジュールによって推論された情報に基づき、セキュリティモジュール
は、０．５％以下の誤検出判定を返しながら、約５０〜６０％の悪意実行可能ファイルを
悪質なものとして識別することができた。このような結果を当業者は予期しなかったであ
ろう。
【００４０】
図５は、本明細書に記載および／または説明する１つ以上の実施形態を実行することの
できる例示的なコンピューティングシステム５１０のブロック図である。コンピューティ
ングシステム５１０は、コンピュータの読み取り可能な命令を実行することのできる１つ
のまたは複数のマルチプロセッサコンピューティング装置またはシステムを広義に表して
いる。コンピューティングシステム５１０の例としては、以下のものに限定しないが、ワ
ークステーション、ラップトップ、クライアント側端末、サーバ、分散コンピューティン
グシステム、ハンドヘルドデバイスまたは他のコンピューティングシステムまたは装置が
ある。その最も基本的な構成において、コンピューティングシステム５１０は少なくとも
１個のプロセッサ５１４およびシステムメモリ５１６を備えることができる。
【００４１】
プロセッサ５１４は、一般に、データ処理または命令の機械言語翻訳および実行を行う
ことのできる任意のタイプまたは形式の処理ユニットを表す。ある実施形態では、プロセ
ッサ５１４は、ソフトウェアアプリケーションまたはモジュールから命令を受け取る可能
性がある。これらの命令によって、プロセッサ５１４は本明細書に記載および／または説
明する一つ以上の実施例の機能を実施することができる。例えば、プロセッサ５１４は、
単独で、またはその他の構成部品と組み合わせて、本明細書に記載する検査、推論、受け
取り、決定および／または実行というステップのうち一つ以上のものを実施する、または
実施する手段とすることができる。プロセッサ５１４は、さらに、本明細書に記載および
／または説明する他のステップ、方法またはプロセスを実施する、または実施する手段と
することができる。
【００４２】
システムメモリ５１６は、一般に、データおよび／または他のコンピュータの読み取り
可能な命令を記憶することのできる、任意のタイプまたは形式の揮発性もしくは不揮発性
の記憶装置または媒体を表す。システムメモリ５１６の例としては、以下のものに限定し
ないが、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、フラッシ
ュメモリまたはその他のあらゆる適切なメモリ装置がある。ある実施形態では、必須では
ないが、コンピューティングシステム５１０は、揮発性メモリユニット（例えばシステム
メモリ５１６）および不揮発性記憶装置（例えば、以下に詳細を説明する主記憶装置５３
２など）の双方を有することができる。
【００４３】
ある実施形態では、例示的なコンピュータシステム５１０は、さらに、プロセッサ５１
４およびシステムメモリ５１６に加えて、１つ以上のコンポーネントまたは素子を備える
ことができる。例えば、図５に説明するように、コンピューティングシステム５１０は、
メモリコントローラ５１８、入力／出力（Ｉ／Ｏ）コントローラ５２０および通信インタ
フェース５２２を備えることができ、それらはそれぞれ通信インフラ５１２を介して相互
に接続する。通信インフラ５１２は、一般に、コンピューティング装置における１個以上
のコンポーネント間の通信を容易化することのできる、任意のタイプまたは形式のインフ
ラを表す。通信インフラ５１２の例としては、以下のものに限定しないが、通信バス（Ｉ
ＳＡ，ＰＣＩ，ＰＣＩｅまたは同様のバス）およびネットワークがある。
【００４４】
メモリコントローラ５１８は、一般に、メモリもしくはデータの処理、またはコンピュ
ーティングシステム５１０の１個以上のコンポーネント間の通信を制御することのできる
、任意のタイプまたは形式の装置を表す。例えば、ある実施形態では、メモリコントロー
ラ５１８は、通信インフラ５１２を介して、プロセッサ５１４、システムメモリ５１６、
Ｉ／Ｏコントローラ５２０間の通信を制御することができる。ある実施形態では、メモリ
コントローラは、単独で、または他の素子と組み合わせて、例えば検査、推論、受け取り
、決定、および／または実行などのような、本明細書に記載および／または説明する、一
つ以上のステップまたは機能を実施する、または実施する手段とすることができる。
【００４５】
Ｉ／Ｏコントローラ５２０は、一般に、コンピューティング装置の入出力機能の調整お
よび／または制御を行うことのできる、任意のタイプまたは形式のモジュールを表す。例
えば、ある実施形態では、Ｉ／Ｏコントローラは、コンピューティングシステム５１０の
１個以上の素子、例えば、プロセッサ５１４、システムメモリ５１６、通信インタフェー
ス５２２、ディスプレイアダプタ５２６、入力インタフェース５３０および記憶インタフ
ェース５３４間におけるデータ送信の制御または容易化を行うことができる。Ｉ／Ｏコン
トローラ５２０は、例えば、単独で、または他の素子と組み合わせて、本明細書に記載す
る検査、推論、受け取り、決定、および／または実施というステップのうち一つ以上を実
施するために使用することができるか、または実施するための手段とすることができる。
Ｉ／Ｏコントローラ５２０は、さらに、本明細書に示す他のステップまたは機能を実施す
るために使うことができる、または実施するための手段とすることができる。
【００４６】
通信インタフェース５２２は、例示的なコンピューティングシステム５１０と１つ以上
の付加装置との間の通信を容易化することのできる、任意のタイプまたは形式の通信装置
またはアダプタを広義に表す。例えば、ある実施形態では、通信インタフェース５２２は
、コンピューティングシステム５１０および付加的コンピューティングシステムを備える
プライベートまたはパブリックのネットワークとの間の通信を容易化することができる。
通信インタフェース５２２の例としては、以下のものに限定しないが、有線ネットワーク
インタフェース（例えばネットワークインタフェースカード）、無線ネットワークインタ
フェース（例えば無線ネットワークインタフェースカードなど）、モデムおよび他の適切
なインタフェースがある。少なくとも一つの実施形態では、通信インタフェース５２２は
、例えばインターネットなどのネットワークへの直接のリンクを介して、リモートサーバ
への直接的な接続を提供することができる。通信インタフェース５２２はまた、例えば、
ローカルエリアネットワーク（Ｅｔｈｅｒｎｅｔ（登録商標）ネットネットワークなど）
、パーソナルエリアネットワーク、電話またはケーブルネットワーク、携帯電話接続、衛
星データ接続またはその他の適切な接続を通して、このような接続を間接的に提供するこ
ともできる。
【００４７】
ある実施形態では、通信インタフェース５２２はまた、外部バスまたは通信チャネルを
介して、コンピューティングシステム５１０と１つ以上の追加ネットワークまたは記憶装
置との間で通信を容易化するように構成した、ホストアダプタを表すこともできる。ホス
トアダプタの例には、ＳＣＳＩホストアダプタ、ＵＳＢホストアダプタ、ＩＥＥＥ５９４
ホストアダプタ、ＳＡＴＡとｅＳＡＴＡホストアダプタ、ＡＴＡとＰＡＴＡホストアダプ
タ、ファイバーチャネルインタフェースアダプタ、Ｅｔｈｅｒｎｅｔ（登録商標）アダプ
タなどが含まれるが、これらに限定されない。また通信インタフェース５２２によって、
コンピューティングシステム５１０に分散またはリモートコンピューティングを行わせる
こともできる。例えば、通信インタフェース５２２はリモート装置から命令を受け取った
り、または実行のためにリモート装置へ命令を送ったりすることができる。ある実施形態
では、通信インタフェース５２２は、単独で、またはその他の構成要素と組み合わせて、
本明細書に開示する検査、推論、受け取り、決定および／または実施というステップのう
ち一つ以上のものを実施する、または実施する手段とすることができる。通信インタフェ
ース５２２は、さらに、本明細書に示す他のステップおよび特徴を実施するために使用す
ることができる、または実施する手段とすることができる。
【００４８】
図５に示すように、コンピューティングシステム５１０は、さらに、ディスプレイアダ
プタ５２６を介して通信インフラ５１２に接続する少なくとも１つのディスプレイ装置５
２４を備えることができる。ディスプレイ装置５２４は一般に、ディスプレイアダプタ５
２６によって転送される情報を視覚的に表示することのできる、任意のタイプまたは形式
の装置を表す。同様に、ディスプレイアダプタ５２６は、一般に、ディスプレイ装置５２
４で表示するように、通信インフラ５１２（または本発明の技術分野で既知のフレームバ
ッファ）からのグラフィックス、テキストおよび他のデータを転送するよう構成した、任
意のタイプまたは形式の装置を表す。
【００４９】
図５に示すように、例示的なコンピューティングシステム５１０は、さらに、入力イン
タフェース５３０を介して通信インフラ５１２に接続する、少なくとも１個の入力装置５
２８を備えることができる。入力装置５２８は、一般に、コンピュータまたは人間が生成
した入力を例示的コンピューティングシステム５１０に供給することのできる、任意のタ
イプまたは形式の入力装置を表す。入力装置５２８の例としては、以下のものに限定しな
いが、キーボード、ポインティング装置、音声認識装置または他の入力装置がある。少な
くとも一つの実施形態では、入力装置５２８は、単独で、または他の素子と組み合わせて
、本明細書に開示する検査、推論、受け取り、決定、および／または実施というステップ
のうち一つ以上のものを実施することができるか、または実施するための手段とすること
ができる。入力装置５２８は、さらに、本明細書に示すその他のステップおよび特徴を実
施するために使用することができるか、または実施するための手段とすることができる。
【００５０】
図５に説明するように、例示的なコンピューティングシステム５１０は、さらに、記憶
インタフェース５３４を介して通信インフラ５１２に接続する、主記憶装置５３２および
バックアップ記憶装置５３３を備えることができる。記憶装置５３２および５３３は、一
般に、データおよび／または他のコンピュータ読み取り可能な命令を記憶することのでき
る、任意のタイプおよび／または形式の記憶装置または記憶媒体を表す。例えば、記憶装
置５３２，５３３は、磁気ディスクドライブ（例えば、いわゆるハードドライブ）、フロ
ッピー（登録商標）ディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラ
ッシュドライブとすることができる。記憶インタフェース４２３は、一般に、記憶装置５
３２，５３３と、コンピューティングシステム５１０における他の素子との間でデータの
送信を行う、任意のタイプまたは形式のインタフェースまたはデバイスを表す。
【００５１】
ある実施形態では、記憶装置５３２，５３３は、コンピュータソフトウェア、データ、
または他のコンピュータ読み取り可能な情報を記憶するように構成した、リムーバブル記
憶装置に対する読み出しおよび／または書き込みを行うよう構成することができる。適切
なリムーバブル記憶ユニットの例としては、以下のものに限定しないが、フロッピー（登
録商標）ディスク、磁気テープ、光ディスク、フラッシュメモリ装置がある。記憶装置５
３２，５３３はまた、コンピュータソフトウェア、データまたは他のコンピュータの読み
取り可能な命令をコンピューティングシステム５１０にロードするための他の類似な構造
またはデバイスを備えることができる。例えば、記憶装置５３２，５３３は、ソフトウェ
ア、データまたは他のコンピュータの読み取り可能な情報を読み出しおよび書き込みする
よう構成することができる。記憶装置５３２，５３３は、さらに、コンピューティングシ
ステム５１０の一部とする、または他のインタフェースシステムを通してアクセスする個
別のデバイスとすることもできる。
【００５２】
ある実施形態では、本明細書に開示する例示的なファイルシステムを主記憶装置５３２
に記憶するとともに、本明細書に開示する例示的なファイルシステムバックアップをバッ
クアップ記憶装置５３３に記憶することができる。記憶装置５３２，５３３は、例えば、
本開示に示す他のステップや特徴を実施するために使用することができる、または実施す
るための手段とすることができる。
【００５３】
他の多数のデバイスまたはサブシステムをコンピューティングシステム５１０に接続す
ることができる。逆に、本明細書に記載および／または説明する実施形態を実施するため
に、図５に示すコンポーネントおよびデバイスの全てが存在しなければならないというこ
とではない。上述したデバイスおよびサブシステムは、さらに、図５に示すものとは異な
る方法で相互に接続することができる。コンピューティングシステム５１０は、さらに、
ソフトウェア、ファームウェア、および／またはハードウェア構成を任意の数だけ使用す
ることができる。例えば、本明細書に開示する一つ以上の実施例は、コンピュータ読み取
り可能な媒体にコンピュータプログラム（または、コンピュータソフトウェア、ソフトウ
ェアアプリケーション、コンピュータの読み取り可能な命令またはコンピュータ制御ロジ
ックとも称することができる）として符号化することができる。用語「コンピュータ読み
取り可能な媒体」とは、一般に、コンピュータの読み取り可能な命令を記憶または担持す
ることができる任意の形式の装置、キャリア、または媒体に言及する。コンピュータ読み
取り可能な媒体としては、以下のものに限定しないが、例えば、搬送波のような伝送タイ
プの媒体、および磁気記憶媒体のような物理的媒体(例えば、ハードディスクドライブや
フロッピー（登録商標）ディスク)、光記憶媒体(例えば、ＣＤ−ＲＯＭまたはＤＶＤ−Ｒ
ＯＭ)、電子記憶媒体(例えばソリッドステートドライブおよびフラッシュ媒体)および他
の分散システムがある。
【００５４】
コンピュータプログラムを含むコンピュータ読み取り可能な媒体は、コンピューティン
グシステム５１０にロードすることができる。コンピュータ読み取り可能な媒体に記憶さ
れるコンピュータプログラムの全体または一部は、それからシステムメモリ５１６および
／または記憶装置５３２，５３３の様々な部分に記憶される。プロセッサ５１４によって
実行されると、コンピューティングシステム５１０にロードされたコンピュータプログラ
ムは、プロセッサ５１４に、本明細書に記載および／または説明する一つ以上の実施例の
機能を実施させる、または実施させるための手段となるようにすることができる。付加的
または代替的に、本明細書に記載および／または説明する一つ以上の実施例は、ファーム
ウェアおよび／またはハードウェアで実現することができる。例えば、コンピューティン
グシステム５１０は、本明細書に開示する一つ以上の実施例を実現するよう構成した、特
定用途向け集積回路（ＡＳＩＣ）として構成することができる。
【００５５】
図６は、例示的なネットワークアーキテクチャ６００のブロック図であり、クライアン
トシステム６１０，６２０，６３０およびサーバ６４０，６４５をネットワーク６５０に
接続することができる。クライアントシステム６１０，６２０，６３０は、一般に、例え
ば図５の例示的なコンピューティングシステム５１０のような、任意のタイプまたは形式
のコンピューティング装置またはシステムを表す。同様に、サーバ６４０，６４５は、一
般に、様々なデータベースサービスの提供および／または特定のソフトウェアアプリケー
ションを実行するよう構成した、アプリケーションサーバまたはデータベースサーバのよ
うな、コンピューティング装置またはシステムを表す。ネットワーク６５０は、一般に、
例えば、イントラネット、広域ネットワーク（ＷＡＮ）、ローカルエリアネットワーク（
ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）またはインターネットを含む、あら
ゆる電気通信またはコンピュータネットワークを表す。
【００５６】
図６に示すように、１台以上の記憶装置６６０（１）〜（Ｎ）をサーバ６４０に直接取
り付けることができる。同様に、１台以上の記憶装置６７０（１）〜（Ｎ）をサーバ６４
５に直接取り付けることができる。記憶装置６６０（１）〜（Ｎ）および記憶装置６７０
（１）〜（Ｎ）は一般に、データおよび／または他のコンピュータ読み取り可能な命令を
記憶することのできる、任意のタイプもしくは形式の記憶装置または媒体を表している。
ある実施形態では、記憶装置６６０（１）〜（Ｎ）および記憶装置６７０（１）〜（Ｎ）
は、ＮＦＳ，ＳＭＢまたはＣＩＦＳのような様々なプロトコルを使って、サーバ６４０お
よび６４５と通信を行うように構成したネットワーク接続ストレージ（ＮＡＳ）装置を表
すことができる。
【００５７】
サーバ６４０，６４５は、さらに、ストレージエリアネットワーク（ＳＡＮ）ファブリ
ック６８０に接続することができる。ＳＡＮファブリック６８０は一般に、複数の記憶装
置間の通信を容易化することのできる、任意のタイプもしくは形式のコンピュータネット
ワークまたはアーキテクチャを表す。ＳＡＮファブリック６８０は、サーバ６４０，６４
５、複数の記憶装置６９０（１）〜（Ｎ）、および／またはインテリジェントストレージ
アレイ６９５間の通信を容易化することができる。ＳＡＮファブリック６８０は、さらに
、ネットワーク６５０およびサーバ６４０，６４５を介して、クライアントシステム６１
０，６２０，６３０と記憶装置６９０（１）〜（Ｎ）および／またはインテリジェントス
トレージアレイ６９５との間の通信を、記憶装置６９０（１）〜（Ｎ）およびアレイ６９
５がクライアントシステム６１０，６２０，６３０に局部的に取り付けられた装置として
現れるようにして、容易化する。記憶装置６６０（１）〜（Ｎ）および記憶装置６７０（
１）〜（Ｎ）のように、記憶装置６９０（１）〜（Ｎ）およびインテリジェントストレー
ジアレイ６９５は、一般に、データおよび／または他のコンピュータ読み取り可能な命令
を記憶することのできる、任意のタイプもしくは形式の記憶装置または媒体を表す。
【００５８】
ある実施形態では、図５の例示的なコンピューティングシステム５１０につき説明する
と、図５の通信インタフェース５２２のような通信インタフェースは、クライアントシス
テム６１０，６２０，６３０のそれぞれとネットワーク６５０との間に接続能力を付与す
るために使用することができる。クライアントシステム６１０，６２０，６３０は、例え
ば、ウェブブラウザまたはその他のクライアントソフトウェアを使って、サーバ６４０ま
たは６４５の情報にアクセスすることができる。このようなソフトウェアによって、クラ
イアントシステム６１０，６２０，６３０は、サーバ６４０，サーバ６４５、記憶装置６
６０（１）〜（Ｎ）、記憶装置６７０（１）〜（Ｎ）、記憶装置６９０（１）〜（Ｎ）お
よび／またはインテリジェントストレージアレイ６９５によってホストされるデータにア
クセスすることができる。図６はデータ交換のネットワーク（例えばインターネットのよ
うな）の使用を説明するものであるが、本明細書に記載および／または説明する実施形態
は、インターネットまたは特定のネットワークベースの環境に限定されるものではない。
【００５９】
少なくとも一つの実施形態では、本明細書に開示する一つ以上の実施例の全てまたは一
部を、コンピュータプログラムとして符号化し、サーバ６４０、サーバ６４５、記憶装置
６６０（１）〜（Ｎ）、記憶装置６７０（１）〜（Ｎ）、記憶装置６９０（１）〜（Ｎ）
および／またはインテリジェントストレージアレイ６９５またはそれらの任意の組み合わ
せにロードし、そして実行することができる。本明細書に開示する一つ以上の実施例の全
てまたは一部もまたコンピュータプログラムとして符号化し、サーバ６４０に記憶し、サ
ーバ６４５によって実行し、ネットワーク６５０によってクライアントシステム６１０，
６２０，６３０に分散することができる。よって、ネットワークアーキテクチャ６００は
、単独で、または他の素子と組み合わせて、本明細書に開示する検査、推論、受け取り、
決定および／または実行というステップのうち１つ以上を行うことができる、および／ま
たは行う手段とすることができる。ネットワークアーキテクチャ６００は、さらに、本開
示に示すその他のステップや機能の特徴を実施するために使用される、または実施するた
めの手段とすることができる。
【００６０】
詳細に上述したように、コンピューティングシステム４１０および／またはネットワー
クアーキテクチャ５００の一つ以上のコンポーネントは、単独または他の素子との組み合
わせで、本明細書に記載および／または説明する例示的な方法の一つ以上のステップを実
施することができる、または実施するための手段とすることができる。例えば、コンピュ
ーティングシステムは、複数の既知の無害実行可能ファイルにおける複数のメタデータフ
ィールドを検査することができる。コンピューティングシステムは、さらに、複数の既知
の悪意実行可能ファイルにおける複数のメタデータフィールドも検査することができる。
コンピューティングシステムは、複数の既知の無害な、および既知の悪意実行可能ファイ
ルにおける複数のメタデータフィールドを検査することから得た情報に基づいて、マルウ
ェアを示すメタデータフィールド属性を推論することができる。
【００６１】
ある実施形態では、コンピューティングシステムは悪意実行可能ファイルを受け取る可
能性がある。コンピューティングシステムは、未知の実行可能ファイルがマルウェアを示
すメタデータフィールド属性を含んでいるか否かを決定することにより、未知の実行可能
ファイルがマルウェアを含んでいるか否かを決定することができる。少なくとも一つの実
施形態では、コンピューティングシステムは、未知の実行可能ファイルがマルウェアを含
んでいると、セキュリティアクションを実施することができる。
【００６２】
様々な実施形態によると、複数の既知の無害実行可能ファイルは、ポータブルの実行可
能ファイルを含むことができ、複数の既知の悪意実行可能ファイルはポータブルの実行可
能ファイルを含むことができる。少なくとも一つの実施形態では、メタデータフィールド
属性はヘッダフィールド属性を含むことができる。ある実施形態によると、ヘッダフィー
ルド属性は、デバッグ・セクション属性、インポート属性、シンボル・テーブル属性、オ
プショナル・ヘッダ属性、特性属性、イメージ・サブシステム属性、リンカ・バージョン
属性、サイズ属性、リアル・バーチャル・アドレス属性、エントリー・ポイント属性、コ
ード・セクション・ベース属性、アライメント属性、オペレーティング・システム・バー
ジョン属性、イメージ・バージョン属性、ミニマム・サブシステム・バージョン属性、ダ
イナミック・リンク・ライブラリキャラクテリスティック属性、スタック・サイズ属性、
ヒープ・サイズ属性、セクション数属性、ノー・イン・アウト属性、スレッド・レベル・
スペキュレーション属性および／またはベース・オブ・イメージ属性のうち少なくとも一
つを含む。
【００６３】
いくつかの実施形態では、マルウェアを示すメタデータフィールド属性は、複数の既知
の無害な実行可能ファイルと既知の悪意実行可能ファイル内で検査される複数のメタデー
タフィールドのサブセットを含む。少なくとも一つの実施形態では、マルウェアを示すメ
タデータフィールド属性は、静的属性を含むことができる。様々な実施形態では、マルウ
ェアを示すメタデータフィールド属性の推論は、マルウェアを示すメタデータフィールド
属性の少なくとも一つの組み合わせの決定を含む。少なくとも一つの実施形態によると、
マルウェアを示すメタデータフィールド属性の推論には、マルウェアを示す第１メタデー
タフィールド属性が、マルウェアを示す第２メタデータフィールド属性よりも強いマルウ
ェアの指標であるという決定を含む。
【００６４】
いくつかの実施形態では、マルウェアを示すメタデータフィールド属性は、デバッグ・
セクション属性、シンボル・テーブル属性、イメージ・サブシステム属性、リンカ・バー
ジョン属性、リアル・バーチャル・アドレス属性、オペレーティング・システム・バージ
ョン属性、イメージ・バージョン属性、ミニマム・サブシステム・バージョン属性、ダイ
ナミック・リンク・ライブラリ・キャラクテリスティック属性、スタック・サイズ属性、
ヒープ・サイズ属性、および／またはセクション数属性のうち少なくとも一つを含む。
【００６５】
いくつかの実施形態では、マルウェアを示すメタデータフィールド属性は、セクション
・アライメント整数、ファイル・アライメント整数、メジャー・オペレーティング・シス
テム・バージョン整数、マイナー・オペレーティング・システム・バージョン整数、メジ
ャー・イメージ・バージョン整数、マイナー・イメージ・バージョン整数、メジャー・サ
ブシステム・バージョン整数、マイナー・サブシステム・バージョン整数、イメージ・サ
イズ整数、ヘッダ・サイズ整数、グラフィカル・ユーザーインタフェース整数、キャラク
タ・ベース・ユーザーインタフェース整数、サイズ・オブ・スタック・リザーブ整数、サ
イズ・オブ・スタック・コミット整数、サイズ・オブ・ヒープ・リザーブ 整数、サイズ
・オブ・ヒープ・コミット整数、シンボル・テーブル・ポインタ整数、シンボル数整数、
デバッグ・セクション整数、メジャー・リンカ・バージョン整数、マイナー・リンカ・バ
ージョン整数、コード・セクション・サイズ整数、初期化・データ・サイズ整数、非初期
化・データ・サイズ整数、リアル・バーチャル・アドレス（「ＲＶＡ」）エントリー・ポ
イント整数、ＲＶＡ・スタート・オブ・コード・セクション整数、ＲＶＡ・ベース・オブ
・コード・セクション整数、ＲＶＡ・スタート・オブ・データ・セクション整数、ベース
・オブ・イメージ整数、ハズ・インポート整数、ハズ・ディレイ・インポート整数、エク
スターナル・バインディング・ファシリティ整数、ノー・イン・アウト整数、ｕｒｌｍｏ
ｎ・インポート整数、スレッド・レベル・スペキュレーション整数、ｍｓｖｃｒｔ・イン
ポート整数、ｏｌｅａｕｔ３２・インポート整数、ｓｅｔｕｐａｐｉ・インポート整数、
ｕｓｅｒ３２・インポート整数、ａｄｖａｐｉ３２・インポート整数、ｓｈｅｌｌ３２・
インポート整数、ｇｄｉ３２・インポート整数、ｃｏｍｄｌｇ３２・インポート整数、ｉ
ｍｍ３２・インポート整数、 ハズ・サーティフィケート整数、ノード整数および／また
はセクション数整数のうち少なくとも２つを含む。
【００６６】
ある実施形態によると、システムは、複数の既知の無害実行可能ファイルにおける複数
のヘッダフィールド、および複数の既知の悪意実行可能ファイルにおける複数のヘッダフ
ィールドを検査するようにプログラムした検査モジュールを有する。このシステムは、さ
らに、検査モジュールによって得た情報を記憶するように構成したデータベースと、検査
モジュールから取得した情報に基づいて、マルウェアを示すヘッダフィールド属性を推論
するようにプログラムした推論モジュールとを有する。
【００６７】
ある実施形態では、システムは未知の実行可能ファイルを受け取る、および／またはそ
の未知の実行可能ファイルがマルウェアを示すヘッダフィールド属性を含んでいるか否か
を決定することによって、その未知の実行可能ファイルがマルウェアを含んでいるか否か
を決定するようにプログラムしたセキュリティシステムを有することができる。少なくと
も一つの実施形態では、セキュリティモジュールは、さらに、未知の実行可能ファイルが
マルウェアを含んでいる場合、セキュリティアクションを実施するようにプログラムする
ことができる。
【００６８】
上述の開示は特定のブロック図、フローチャートおよび例を使って様々な実施形態を示
すが、本明細書に記載および／または説明する各ブロック図の構成部分、フローチャート
ステップ、動作および／またはコンポーネントは、広範囲のハードウェア、ソフトウェア
またはファームウェア（またはそれらの組み合わせ）を使って個々におよび／または集合
的に実現することができる。さらに、他のコンポーネントに含まれる構成部品の開示はど
のようなものであっても、同じ機能を達成するために多くの他のアーキテクチャを実現す
ることができるので、本来は例示的なものと見なすことができる。
【００６９】
本明細書に記載および／または説明するプロセスパラメータおよびステップの順序は、
単なる例であり、所望に応じて修正することができる。例えば、本明細書に説明または記
載のステップは特定の順序で示す、または論じたが、これらのステップは必ずしも説明ま
たは論じた通りの順序で行う必要はない。本明細書に記載または説明する様々な例示的方
法もまた、本明細書に記載または説明する１つ以上のステップを削除することもできるし
、または開示されたものに加えて、追加のステップを含むこともできる。
【００７０】
さらに、様々な実施形態を完全に機能的なコンピューティングシステムとして本明細書
に記載および／または説明してきたが、分散を行うために実際に使用される特定の種類の
コンピュータ読み取り可能な媒体に関わらず、一つ以上のこれらの実施例は、様々な形態
のプログラム製品として流通させることができる。本明細書に開示する実施形態はまた、
特定のタスクを実行するソフトウェアモジュールを使って実現することもできる。これら
のソフトウェアモジュールは、コンピュータ読み取り可能な記憶媒体またはコンピューテ
ィングシステムに記憶することのできるスクリプト、バッチまたはその他の実行可能ファ
イルを含むことができる。いくつかの実施形態では、これらのソフトウェアモジュールは
、本明細書に開示する一つ以上の実施例を実行するコンピューティングシステムとして構
成することができる。
【００７１】
上述の説明は、当業者が本明細書に記載する実施例の様々な態様を最大限に利用できる
ように行った。この例示的説明は網羅的、または開示した通りの形式に限定することを意
図したものではない。本発明の要旨または範囲から逸脱することなく、多くの変更および
改変が可能である。本明細書に記載する実施形態は、あらゆる面において例示的であり、
限定するものではないと見なし、また、添付の特許請求の範囲および特許請求の範囲が決
定する等価物を参照して本発明の範囲を決定するのが望ましい。
【００７２】
別段に記載のない限り、明細書または特許請求の範囲において、各要素は複数存在し得
る。さらに、簡単のために、明細書および請求項で使用される「〜を含む」および「〜を
有する」という言葉は、同じ意味を持つ言葉である「〜を備える」と置き替えることがで
きる。
【符号の説明】
【００７３】
１００  システム
１１０  モジュール
１１２  検査モジュール
１１４  推論モジュール
１１６  セキュリティモジュール
１２０  データベース
１２２  メタデータフィールド・データベース
１２４  マルウェアメタデータフィールド情報データベース
３００  実行可能ファイル
３１０  ＤＯＳスタブ
３２０  ファイルヘッダ
３３０  オプショナル・ヘッダ
３４０  データディレクトリ
３５０  セクションヘッダ
３６０（１）  セクション１
３６０（２）  セクション２
３６０（ｎ）  セクションＮ
５１０  コンピューティングシステム
５１４  プロセッサ
５１６  システムメモリ
５１８  メモリコントローラ
５２０  Ｉ／Ｏコントローラ
５２２  通信インタフェース
５２４  ディスプレイ装置
５２６  ディスプレイアダプタ
５２８  入力装置
５３０  入力インタフェース
５３２  主記憶装置
５３３  バックアップ記憶装置
５３４  記憶インタフェース
６００  ネットワークアーキテクチャ
６１０、６２０、６３０  クライアント
６４０、６４５  サーバ
６５０  ネットワーク
６６０（１）〜６６０（Ｎ）、６７０（１）〜６７０（Ｎ）、６９０（１）〜６９０（Ｎ
）装置
６８０  ＳＡＮファブリック
６９５  インテリジェント記憶アレイ
【図１】
2015181031.tif 000003
【図２】
2015181031.tif 000004
【図３】
2015181031.tif 000005
【図４】
2015181031.tif 000006
【図５】
2015181031.tif 000007
【図６】
2015181031.tif 000008
【手続補正書】
【提出日】平成27年6月18日(2015.6.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マルウェアを示すヘッダフィールド属性の識別をコンピュータで実現する方法において、
複数の既知の無害実行可能ファイルにおける複数のヘッダフィールドを検査するステップと、
複数の既知の悪意実行可能ファイルにおける複数のヘッダフィールドを検査するステップと、
機械学習アルゴリズムを使って、前記複数の既知の無害実行可能ファイル、および既知の悪意実行可能ファイルにおける前記複数のヘッダフィールドの検査から得られた情報に基づいて、ノード整数を有するマルウェアを示すヘッダフィールド属性の組み合わせを推論するステップと
を有する、方法。
【請求項２】
請求項１に記載の方法において、さらに、
未知の実行可能ファイルを受け取るステップと、
前記未知の実行可能ファイルがマルウェアを示すヘッダフィールド属性の前記組み合わせを含んでいるか否かを決定することによって、前記未知の実行可能ファイルがマルウェアを含んでいるか否かを決定するステップと
を有する、方法。
【請求項３】
請求項２に記載の方法において、さらに、
前記未知の実行可能ファイルがマルウェアを含んでいる場合、前記未知の実行可能ファイルをマルウェアファイルリストへ追加することによってセキュリティアクションを実施するステップを有する、方法。
【請求項４】
請求項１に記載の方法において、
前記複数の既知の無害実行可能ファイルはポータブル実行可能ファイルを有し、
前記複数の既知の悪意実行可能ファイルはポータブル実行可能ファイルを有し、
マルウェアを示すヘッダフィールド属性の前記組み合わせは付加的に少なくとも１つのインポート整数を含む、方法。
【請求項５】
請求項１に記載の方法において、
マルウェアを示すヘッダフィールド属性の前記組み合わせは、以下の属性、すなわち、
デバッグ・セクション属性、
インポート属性、
シンボル・テーブル属性、
オプショナル・ヘッダ属性、
特性属性、
イメージ・サブシステム属性、
リンカ・バージョン属性、
サイズ属性、
リアル・バーチャル・アドレス属性、
エントリー・ポイント属性、
コード・セクション・ベース属性、
アライメント属性、
オペレーティング・システム・バージョン属性、
イメージ・バージョン属性、
ミニマム・サブシステム・バージョン属性、
ダイナミック・リンク・ライブラリ・特性属性、
スタック・サイズ属性、
ヒープ・サイズ属性、
セクション個数属性、
ノー・イン・アウト属性、
スレッド・レベル・スペキュレーション属性、
ベース・オブ・イメージ属性
のうち少なくとも一つを付加的に有する、方法。
【請求項６】
請求項１に記載の方法において、マルウェアを示すヘッダフィールド属性の前記組み合わせは、前記複数の既知の無害実行可能ファイルおよび既知の悪意実行可能ファイル内で検査された、前記複数のヘッダフィールドからのヘッダフィールド属性のサブセットを有する、方法。
【請求項７】
請求項１に記載の方法において、マルウェアを示すヘッダフィールド属性の前記組み合わせはさらにユーザーインタフェース整数を有する、方法。
【請求項８】
請求項１に記載の方法において、
前記複数の既知の無害実行可能ファイルおよび既知の悪意実行可能ファイルの前記複数のヘッダフィールドを検査することによって得られた前記情報は、前記複数の既知の無害実行可能ファイルおよび既知の悪意実行可能ファイルのヘッダフィールド属性を有し、
前記方法はさらに、
マルウェアメタデータフィールドデータベース内に前記複数の既知の無害実行可能ファイルおよび既知の悪意実行可能ファイルの前記ヘッダフィールド属性のリストを記憶するステップを有し、
前記マルウェアメタデータフィールドデータベースは、前記ヘッダフィールド属性を使ってどのように未知の実行可能ファイルがマルウェアを有しているか否かを決定するかを示す情報を有する、
方法。
【請求項９】
請求項８に記載の方法において、
前記マルウェアメタデータフィールドデータベースは、前記マルウェアメタデータフィールドデータベース内にリストされた前記ヘッダフィールド属性に一致する前記未知の実行可能ファイルのヘッダフィールド属性の数が閾値以上の場合に前記未知の実行可能ファイルがマルウェアを有することを示す、閾値情報を有し、
前記情報を推論するステップは、マルウェアを示す第１ヘッダフィールド属性が、マルウェアを示す第２ヘッダフィールド属性よりも強い指標であることを決定するステップを有する、方法。
【請求項１０】
請求項１に記載の方法において、
前記情報を推論するステップは、マルウェアを示すヘッダフィールド属性の前記組み合わせに含まれる第１ヘッダフィールド属性が、マルウェアを示すヘッダフィールド属性の前記組み合わせに含まれる第２ヘッダフィールド属性よりも強いマルウェア指標であることを決定するステップを有する、方法。
【請求項１１】
マルウェアを示すヘッダフィールド属性の識別をコンピュータで実現する方法において、
複数の既知の無害なポータブル実行可能ファイルにおける複数のヘッダフィールドを検査するステップと、
複数の既知の悪意があるポータブル実行可能ファイルにおける複数のヘッダフィールドを検査するステップと、
機械学習アルゴリズムを使って、前記複数の既知の無害なポータブル実行可能ファイル、および既知の悪意があるポータブル実行可能ファイルにおける前記複数のヘッダフィールドの検査から得られた情報に基づいて、ノード整数を有するマルウェアを示すヘッダフィールド属性の組み合わせを推論するステップと、
未知の実行可能ファイルを受け取るステップと、
前記未知の実行可能ファイルがマルウェアを示すヘッダフィールド属性の前記組み合わせを含んでいるか否かを決定することによって、前記未知の実行可能ファイルがマルウェアを含んでいるか否かを決定するステップと
を有する、方法。
【請求項１２】
請求項１１に記載の方法において、
マルウェアを示すヘッダフィールド属性の前記組み合わせは、以下の属性、すなわち
デバッグ・セクション属性、
シンボル・テーブル属性、
イメージ・サブシステム属性、
リンカ・バージョン属性、
リアル・バーチャル・アドレス属性、
オペレーティング・システム・バージョン属性、
イメージ・バージョン属性、
ミニマム・サブシステム・バージョン属性、
ダイナミック・リンク・ライブラリ・特性属性、
スタック・サイズ属性、
ヒープ・サイズ属性、
セクション数属性、
のうち、少なくとも１つをさらに含むものとした、方法。
【請求項１３】
請求項１１に記載の方法において、
マルウェアを示すヘッダフィールド属性の前記組み合わせは、以下の整数、すなわち
セクション・アライメント整数、
ファイル・アライメント整数、
メジャー・オペレーティング・システム・バージョン整数、
マイナー・オペレーティング・システム・バージョン整数、
メジャー・イメージ・バージョン整数、
マイナー・イメージ・バージョン整数、
メジャー・サブシステム・バージョン整数、
マイナー・サブシステム・バージョン整数、
イメージ・サイズ整数、
ヘッダ・サイズ整数、
グラフィカル・ユーザーインタフェース整数、
キャラクタ・ベース・ユーザーインタフェース整数、
サイズ・オブ・スタック・リザーブ整数、
サイズ・オブ・スタック・コミット整数、
サイズ・オブ・ヒープ・リザーブ整数、
サイズ・オブ・ヒープ・コミット整数、
シンボル・テーブル・ポインタ整数、
シンボル個数整数、
デバッグ・セクション整数、
メジャー・リンカ・バージョン整数、
マイナー・リンカ・バージョン整数、
コード・セクション・サイズ整数、
初期化・データ・サイズ整数、
非初期化・データ・サイズ整数、
リアル・バーチャル・アドレス・エントリー・ポイント整数、
リアル・バーチャル・アドレス・スタート・オブ・コード・セクション整数、
リアル・バーチャル・アドレス・ベース・オブ・コード・セクション整数、
リアル・バーチャル・アドレス・スタート・オブ・データ・セクション整数、
ベース・オブ・イメージ整数、
ハズ・インポート整数、
ハズ・ディレイ・インポート整数、
エクスターナル・バインディング・ファシリティ整数、
ノー・イン・アウト整数、
ｕｒｌｍｏｎ・インポート整数、
スレッド・レベル・スペキュレーション整数、
ｍｓｖｃｒｔ・インポート整数、
ｏｌｅａｕｔ３２・インポート整数、
ｓｅｔｕｐａｐｉ・インポート整数、
ｕｓｅｒ３２・インポート整数、
ａｄｖａｐｉ３２・インポート整数、
ｓｈｅｌｌ３２・インポート整数、
ｇｄｉ３２・インポート整数、
ｃｏｍｄｌｇ３２・インポート整数
ｉｍｍ３２・インポート整数
ハズ・サーティフィケート整数、
ノード整数
セクション個数整数
のうち、少なくとも２つをさらに含むものとした、方法。
【請求項１４】
請求項１１に記載の方法において、さらに、
前記未知の実行可能ファイルがマルウェアを含んでいる場合、セキュリティアクションを実施するステップを有し、
前記セキュリティアクションは、以下のステップ、すなわち、
前記未知の実行可能ファイルを隔離するステップと、
前記未知の実行可能ファイルをセキュリティソフトウェアベンダーに報告するステップと
のうち、少なくとも一つを有する、方法。
【請求項１５】
請求項１１に記載の方法において、さらに、
前記未知の実行可能ファイルがマルウェアを含んでいる場合、前記未知の実行可能ファイルをマルウェアファイルリストへ追加することによってセキュリティアクションを実施するステップを有する、方法。
【請求項１６】
検査モジュールであって、
複数の既知の無害実行可能ファイルにおける複数のヘッダフィールドを検査し、
複数の既知の悪意実行可能ファイルにおける複数のヘッダフィールドを検査するようプログラムした、該検査モジュールと、
前記検査モジュールと通信し、前記検査モジュールによって得られた情報を記憶するよう構成したデータベースと、
機械学習アルゴリズムを使って、前記検査モジュールから得られた情報に基づいて、ノード整数を有するマルウェアを示すヘッダフィールド属性の組み合わせを推論するようプログラムした推論モジュールと
を備えたシステム。
【請求項１７】
請求項１６に記載のシステムにおいて、さらに、
未知の実行可能ファイルを受け取り、
前記未知の実行可能ファイルがマルウェアを示すヘッダフィールド属性の前記組み合わせを含んでいるか否かを決定することによって、前記未知の実行可能ファイルがマルウェアを含んでいるか否かを決定する
ようにプログラムした、セキュリティモジュールを有する、システム。
【請求項１８】
請求項１７に記載のシステムにおいて、前記セキュリティモジュールは、さらに、
前記未知の実行可能ファイルがマルウェアを含んでいる場合に、前記未知の実行可能ファイルをセキュリティソフトウェアベンダーに報告するようプログラムした、システム。
【請求項１９】
請求項１６に記載のシステムにおいて、ヘッダフィールド属性の前記組み合わせは、以下の属性、すなわち、
デバッグ・セクション属性、
インポート属性、
シンボル・テーブル属性、
オプショナル・ヘッダ属性、
特性属性、
イメージ・サブシステム属性、
リンカ・バージョン属性、
サイズ属性、
リアル・バーチャル・アドレス属性、
エントリー・ポイント属性、
コード・セクション・ベース属性、
アライメント属性、
オペレーティング・システム・バージョン属性、
イメージ・バージョン属性、
ミニマム・サブシステム・バージョン属性、
ダイナミック・リンク・ライブラリ・特性属性、
スタック・サイズ属性、
ヒープ・サイズ属性、
セクション個数属性、
ノー・イン・アウト属性、
スレッド・レベル・スペキュレーション属性、
ベース・オブ・イメージ属性
のうち、少なくとも一つをさらに含む、システム。
【請求項２０】
請求項１６に記載のシステムにおいて、マルウェアを示すヘッダフィールド属性の前記組み合わせはダイナミック・リンク・ライブラリ・特性属性をさらに含む、システム。
【外国語明細書】
2015181031000001.pdf