(57)【要約】  下記の工程を含む方法についてのマルウェア上の進化のプロセスを達成するための方法、製品、およびコンピュータプログラム製品であって、該方法は、:(a) マルウェア検体を受け取る工程;(b) マルウェア検体の変種を生成する工程;(c) 変種を評価し、各変種に適合性スコアを与える工程;(d) 少なくともあらかじめ定義した適合性スコアをもつ変種を選択する工程；及び(e) 変種の新しい世代を生成する工程(a)において、マルウェア検体として選択される変種を使用する工程を含む方法。【選択図】図３
2016507115.tif 000002
【特許請求の範囲】
【請求項１】
(a) マルウェア検体のマルウェア変種を生成するのに適合されたマルウェア進化エンジンと、
（b)悪意性レベルおよび回避性レベルから少なくとも1つに基づいて前記マルウェア変種を評価するように構成されたエバリュエーターと、を含むシステム。
【請求項２】
(c) リポジトリ、プロダクション装置およびサードパーティ製品から成る群から選択される少なくとも1つのソースから進化エンジンの為にマルウェア検体を集めるのに適合されたマルウェアフェッチャーを更に含むことを特徴とする請求項１に記載のシステム。
【請求項３】
(c) 前記進化エンジンによって生成され、前記エバリュエーターによって評価された前記マルウェア変種に基づいて検出器機構を生成するように構成された検出器ビルダーを更に含むことを特徴とする請求項１に記載のシステム。
【請求項４】
前記進化エンジンが、前記マルウェア検体の実行可能コードへの突然変異の適用、マルウェア放出されたネットワークトラフィックへの突然変異の適用、ソースコードへの突然変異の適用、アセンブリ言語コードへの突然変異の適用、及び、前記マルウェア変種の交互の組み合わせ、から成る群から選択される少なくとも1つの動作を行なうことにより、前記マルウェア変種を生成するように構成されることを特徴とする請求項1に記載のシステム。
【請求項５】
前記実行可能コードに適用された前記突然変異は、
(i)ランダム突然変異、
(ii)所定のコマンドシーケンスを別の機能的に同等なコマンドシーケンスに置換すること、
(iii)選択されたライブラリコールを異なる機能的に同等なライブラリコールに置換すること、
(iv)使用される選択されたライブラリを、異なる機能的に同等なライブラリに置換すること、
(v)悪意のある機能を持っているものとして識別されたエリアで前記突然変異のそれぞれの確率を増加させること;
(vi)前記実行可能コードの適切な実行を妨げないものとして識別されたエリアで前記突然変異のそれぞれの確率を増加させること;
(vii)セキュリティ製品によって署名されたエリアで前記突然変異の確率を増加させること;
(viii)以前の前記突然変異が増加した適合性スコアをもたらしたエリアで前記突然変異の確率を増加させること;
(ix)バイナリコードが加えられたセクションの為の前記実行可能コードのヘッダーを書き換えることで結果的に前記セクションの拡張をもたらすこと；
(x)前記実行可能コードを他の前記実行可能コードと組み合わせて、組み合わさったコードを生成し、関連するヘッダーを書き換えることによって、前記組み合わさったコードの適切な実行を可能にする;及び、
(xi)動的関数呼び出しを関連するオペレーティングシステムコールの静的な起動に変更するために前記実行可能コードの特定のセクションを修正すること。
からなる群から選択されることを特徴とする請求項４に記載のシステム。
【請求項６】
攻撃マシンは、前記マルウェア放出されたネットワークトラフィックを前記進化エンジンに送るように構成され、前記進化エンジンは、前記マルウェア放出されたネットワークトラフィックに前記突然変異を適用し、及び変異したマルウェア放出されたネットワークトラフィックを犠牲マシンに送るようにさらに構成され、
ここで、前記変異したマルウェア放出されたネットワークトラフィックの前記犠牲マシンについての結果は、前記悪意性レベルを判定するために前記エバリュエーターによって評価されることを特徴とする請求項4に記載のシステム。
【請求項７】
前記マルウェア放出されたネットワークトラフィックに適用された前記突然変異は、前記パケットのペイロード又はヘッダー中の様々な突然変異の後に、前記CRC/チェック又は他のフィールドを有効にするために、CRC/チェックサムサムフィールド又は様々なプロトコルの中のネットワークパケットの他のフィールドも修正することを含むことを特徴とする請求項6に記載のシステム。
【請求項８】
前記マルウェア放出されたネットワークトラフィックは、安全なチャネルにおいて、前記マルウェア放出されたネットワークトラフィックを含んでいるネットワーク通信を圧縮することにより、難読化にされることを特徴とする請求項6に記載のシステム。
【請求項９】
前記マルウェア検体の前記実行可能コードが 、圧縮、暗号化および符号化からなる群から選択される技術を使用して、難読化されることを特徴とする請求項4に記載のシステム。
【請求項１０】
前記エバリュエーターは、前記変種に適合性スコアを与え、システムが、前記適合性スコアに基づいて、新しい前記マルウェア検体として前記変種の少なくとも一部を選択することを特徴とする請求項1に記載のシステム。
【請求項１１】
前記エバリュエーターは、前記変種に適合性スコアを与え、システムが、前記適合性スコアに基づいて、前記検出器ビルダーの為に、前記変種の少なくとも一部を選択することを特徴とする請求項3に記載のシステム。
【請求項１２】
前記エバリュエーターが、(a) 悪意性レベル判定および(b)回避性レベル判定、の少なくとも1つに基づいて変種をランク付することを特徴とする請求項1に記載のシステム。
【請求項１３】
前記悪意性レベル判定は、前記変種が前記マルウェア検体によって示された悪意のある特性の少なくとも一部を示すかどうかに基づいて、少なくとも部分的になされることを特徴とする請求項12に記載のシステム。
【請求項１４】
前記回避性レベル判定は、前記変種が少なくとも前記マルウェア検体によって示された回避的な特性の一部を示すかどうかに基づいて、少なくとも部分的になされることを特徴とする請求項12に記載のシステム。
【請求項１５】
前記回避性レベルは、各々の複数のマルウェア検出器システムにマルウェア検体あるいは変種を送ることにより、少なくとも部分的に判定されることを特徴とする請求項12に記載のシステム
【請求項１６】
前記検出器ビルダーは、検出器を作成するための以下の要素：
(a)マルウェア変種の実行可能なバイナリー、
(b)マルウェア変種によって放出されたか受け取られたネットワークトラフィック、
(c)マルウェア変種のシステムコール、
(d) マルウェア変種のAPI呼び出し、及び
(e)マルウェア変種のメモリフットプリントおよびコンテンツ、の少なくとも1つを処理するように適合されることを特徴とする請求項3に記載のシステム。
【請求項１７】
前記検出器ビルダーが、
(a)ネットワーク挙動シグネチャ、
(b)ネットワーク挙動パターン、
(c)実行可能なシグネチャ、
(d)実行可能なパターン、
(e)システムコールシグネチャ、
(f)システムコールパターン、
(g) CPU動作シグネチャ、
(h) CPU動作パターン、
(i) API呼び出しシグネチャ、
(j) API呼び出しパターン、の少なくとも1つを検出するのに適合された少なくとも1つの検出器を生成することを特徴とする請求項16に記載に記載のシステム。
【請求項１８】
前記検出器は、エンドポイント、ゲートウエイ、ネットワークエレメント、ネットワーク機器および統合されたサードパーティプラットフォームを含む群から選択されたプラットフォーム上のスタンドアロンの検知モジュールとして配置されるように適合されることを特徴とする請求項17に記載のシステム。
【請求項１９】
前記回避性レベルが、請求項3の検出器ビルダーによって構築された検出器に対して前記マルウェア検体又は変種を実行することにより、さらに判定されることを特徴とする請求項11に記載のシステム。
【請求項２０】
前記エバリュエーターは、仮想マシン(VM)および物理的なコンピューターの少なくとも１つ上で前記変種を実行することにより、前記悪意性レベルを評価するようにさらに構成されることを特徴とする請求項13に記載のシステム。
【請求項２１】
マルウェア上で進化のプロセスを達成する方法であって、該方法は、
(a) マルウェア検体を受け取る工程;
(b) 前記マルウェア検体の変種を生成する工程;
(c) 前記変種を評価し個々の前記変種にそれぞれの適合性スコアを与える工程;
(d) 少なくとも予め定義された前記それぞれの適合性スコアを有する前記変種を選択する工程;及び
(e)前記選択された変種を工程(a)における前記マルウェア検体として使用して、そこから前記変種の新しい世代を生成する工程、
を含む方法。
【請求項２２】
前記マルウェア変種を生成する前記工程は、前記マルウェア検体の実行可能コードに突然変異を適用すること、マルウェア放出されたネットワークトラフィックに突然変異を適用すること、及び前記マルウェア変種を交互に組み合わせることから成る群から選択される少なくとも1つの動作を行なうことを含むことを特徴とする請求項21に記載の方法。
【請求項２３】
前記実行可能コードに前記突然変異を適用することが、
(i)ランダム突然変異、
(ii)所定のコマンドシーケンスを別の機能的に同等なコマンドシーケンスに置換すること
(iii)選択されたライブラリコールを異なる機能的に同等なライブラリコールに置換すること、
(iv)使用される選択されたライブラリを、異なる機能的に同等なライブラリに置換すること、
(v)悪意のある機能を持っていることとして識別されたエリアで前記突然変異のそれぞれの確率を増加させること;
(vi)前記実行可能コードの適切な実行を妨げないものとして識別されたエリアで前記突然変異のそれぞれの確率を増加させること;
(vii)セキュリティ製品によって署名されたエリアで前記突然変異の確率を増加させること;
(viii)以前の前記突然変異が増加した適合性スコアをもたらしたエリアで前記突然変異の確率を増加させること;
(ix)バイナリコードが加えられたセクションの為の前記実行可能コードのヘッダーを書き換えることで結果的に前記セクションの拡張をもたらすこと；
(x)前記実行可能コードを他の前記実行可能コードと組み合わせて、組み合わさったコードを生成し、関連するヘッダーを書き換えることによって、前記組み合わさったコードの適切な実行を可能にする;及び、
(ix)バイナリコードが加えられたセクションの為の前記実行可能コードのヘッダーを書き換えることで結果的に前記セクションの拡張をもたらすこと、の少なくとも1つを含むことを特徴とする請求項22に記載の方法。
【請求項２４】
マルウェア放出されたネットワークトラフィックに突然変異を適用することが、
(i)攻撃マシンからルーターまで前記マルウェア放出されたネットワークトラフィックを送る工程;
(ii) 前記マルウェア放出されたネットワークトラフィックの要素を変異する工程;及び
(iii)犠牲マシンに前記変異したマルウェア放出されたネットワークトラフィックを送る工程、を含むことを特徴とする請求項22に記載の方法。
【請求項２５】
評価する前記変異したマルウェア放出されたネットワークトラフィックを評価する工程を更に含み、該評価する工程は、(iv) 前記犠牲マシン上で前記変異したマルウェア放出されたネットワークトラフィックの結果を登録する工程;及び、(v)前記適合性スコアを判定するために前記結果を評価する工程、を含むことを特徴とする請求項24に記載の方法。
【請求項２６】
前記変種を評価する工程は、前記変異の各々の少なくとも回避性と悪意性を評価することを含むことを特徴とする請求項21に記載の方法
【請求項２７】
前記回避性は、前記変種を検出する前記セキュリティ製品の不能性に基づいて、セキュリティ製品の選択された群で各々の前記変種をスキャンし、回避性スコアを与えることにより、測定されることを特徴とする請求項26に記載の方法。
【請求項２８】
前記悪意性は、各々の前記変種に対して、前記変種が悪意のある活動を引き起こすかどうかを判定し、前記判定に基づいて、悪意性スコアを与えることによって測定されることを特徴とする請求項27の方法。
【請求項２９】
前記変種は、仮想マシンと物理的なマシンの少なくとも１つ上で実行されることを特徴とする請求項28に記載の方法。
【請求項３０】
前記適合性スコアは、少なくとも前記回避性スコアおよび前記悪意性スコアに基づいて計算されることを特徴とする請求項28に記載の方法。
【請求項３１】
前記適合性スコアは、前記マルウェア検体からの前記変種の発散の程度に基づいて、さらに計算されることを特徴とする請求項30に記載の方法。
【請求項３２】
(f)前記変種、良性のファイルあるいはネットワークフローのトレースデータを集める工程;及び
(g)悪意のあるバリアントのトレース、良性のファイルのトレース、前記進化プロセス間にそれらの悪意のあるアクティビティを失った退化したマルウェア変種のトレースのカテゴリーの少なくとも1つへ前記トレースデータを分類する工程、をさらに含むことを特徴とする請求項28に記載の方法。
【請求項３３】
(h)検出することができる、および前記悪意のある特性と前記悪意のない特性とを区別することができる検出器を構築する工程を更に含むことを特徴とする請求項32に記載の方法。
【請求項３４】
(i) 検出器の中から、次のものに基づいた前記格付けの、所定のレベル以上の格付けがある少なくとも1つの検出器を選択する工程であって、前記格付けが、
(i) 正確に検出された前記悪意のある特性の数;
(ii) 不正確に検出された悪意のない特性の数;及び
(iii)前記検出器の短かさであって、より高い格付けは、長さ、メモリおよび計算上の作業負荷、の少なくとも1つの点から判定された、より短いかより軽い検出器に対して与えられる、前記検出器の短かさに基づく、工程を含むことを特徴とする請求項３３に記載の方法。
【請求項３５】
(a) マルウェア検体を受け取る工程;
(b) 前記マルウェア検体の変種を生成する工程;
(c) 前記変種を検出する前記セキュリティ製品の不能性に基づいて、セキュリティ製品の選択された群で各々の前記変種をスキャンし、回避性スコアを与える工程を含む、方法。
【請求項３６】
(d)前記変種の検出における成功のレベルに基づいて、前記セキュリティ製品に格付けを与える工程を更に含むことを特徴とする請求項35に記載の方法
【請求項３７】
前記格付けは、他のセキュリティ製品に関する前記成功のレベルに基づくことを特徴とする請求項36に記載の方法。
【請求項３８】
バイトストリームに対してマルウェア検出器をトレーニングする方法であって、該方法は:
(a)ネットワークセッション又は他のバイナリデータのバイトストリームをキャプチャし、前記バイトストリームを整数の線形のベクトルで表わす工程であって、前記バイトストリームが、マルウェアの変種、又は良性のネットワーク活動、又はファイルのトレースを含む工程；
(b) 前記線形のベクトルを正方行列へと作り変え、それによって、グレイスケール画像を受け取る工程;
(c) 解像度を統一するために前記グレイスケール画像を正規化する工程;
(d)少なくとも1つの画像処理技術を使用して、前記正規化した画像から特性を抽出する工程;
(e)(ａ)乃至(ｄ)の工程を繰り返し、最初のデータベースに悪意のある変種を、及び2番目のデータベースに良性のトラフィックを格納する工程;
(f)前記マルウェア変種と前記良性のトラフィックとを識別するようにマルウェア検出器をトレーニングする工程、
を含む、方法。
【請求項３９】
前記少なくとも1つの画像処理技術が、ガボールのウェーブレット係数、係数の統計、主成分分析、線形判別分析及び独立成分分析から成る群から選択されることを特徴とする請求項38に記載の方法:
【請求項４０】
トレーニングする工程は、サポートベクトルマシンで実行されることを特徴とする請求項38に記載の方法。
【請求項４１】
マルウェア検体からマルウェア変種を生成する方法であって、該方法は、
突然変異を前記マルウェア検体の実行可能コードへ適用する工程、
前記マルウェア変種をマルウェア放出されたネットワークトラフィックへ適用する工程、及び
前記マルウェア変種を交互に組み合わせる工程、から成る群から選択される少なくとも1つの動作を行なうことによって前記マルウェア変種を生成する工程を含む、方法。
【請求項４２】
突然変異を前記実行可能コードへ適合することが、
(i)ランダム突然変異、
(ii)所定のコマンドシーケンスを別の機能的に同等なコマンドシーケンスに置換すること、
(iii)選択されたライブラリコールを異なる機能的に同等なライブラリコールに置換すること、
(iv)使用される選択されたライブラリを、異なる機能的に同等なライブラリに置換すること、
(v)悪意のある機能を持っていることとして識別されたエリアで前記突然変異のそれぞれの確率を増加させること;
(vi)前記実行可能コードの適切な実行を妨げないものとして識別されたエリアで前記突然変異のそれぞれの確率を増加させること;
(vii)セキュリティ製品によって署名されたエリアで前記突然変異の確率を増加させること;
(viii)以前の前記突然変異が増加した適合性スコアをもたらしたエリアで前記突然変異の確率を増加させること;
(ix)バイナリコードが加えられたセクションの為の前記実行可能コードのヘッダーを書き換えることで結果的に前記セクションの拡張をもたらすこと；
(x)前記実行可能コードを他の前記実行可能コードと組み合わせて、組み合わさったコードを生成し、関連するヘッダーを書き換えることによって、前記組み合わさったコードの適切な実行を可能にする;及び、
(xi)動的関数呼び出しを関連するオペレーティングシステムコールの静的な起動に変更するために前記実行可能コードの特定のセクションを修正すること、の少なくとも1つによって達成されることを特徴とする請求項41に記載の方法。
【請求項４３】
突然変異をマルウェア放出されたネットワークトラフィックへ適用することが、
(i)攻撃マシンからルーターまで前記マルウェア放出されたネットワークトラフィックを送る工程;
(ii) 前記マルウェア放出されたネットワークトラフィックの要素を変異する工程;及び
(iii)犠牲マシンに前記変異したマルウェア放出されたネットワークトラフィックを送る工程、を含むことを特徴とする請求項41に記載の方法:
【請求項４４】
前記変種を前記仮想マシン(VM)及び前記物理的なマシンの両方上で実行する工程;及び
前記変種を前記VM上で実行した結果を比較し、結果間の相違を検出するために、前記変種を前記物理なマシン上で実行する工程、をさらに含むことを特徴とする請求項29に記載の方法。
【請求項４５】
前記相違が見つかる場合に、前記変種は、前記物理的なマシン上での前記変種の実行の結果のみに関して評価されることを特徴とする請求項44に記載の方法。
【請求項４６】
統合トリガーを中和するために、前記変種を実行しながら、予め定められたシステム信号、通信データ、引き数から選択された少なくとも1つのシグナルを送る工程を更に含み、
少なくとも1つのシグナルがエンドポイントデバイスまたはネットワークアプライアンス上でエージェントによってキャプチャされることを特徴とする請求項29に記載の方法。
【請求項４７】
実行されないコード領域を識別するために、前記変種を実行しながら、コードカバレッジをモニタリングする工程を更に含み、前記実行されないコード領域が、前記変種中で統合されたトリガーを示すことを特徴とする請求項29に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サイバーセキュリティに関する。より詳細には予測的なセキュリティ製品を提供するための製品及び方法、及び既存のセキュリティーシステムを評価する方法および製品に関する。
【０００２】
追いつ追われつのレースはインターネットセキュリティ業者とハッカーとの間で行われている。これは広く一般の現象である。セキュリティ業者がマルウェアを認識するために静的で動的なシグネチャおよび検知パターンを発行しているが、ハッカーはみな、既に識別され、文書化したマルウェアに若干の変更を行なうだけで、体系的にこれらの検知方法を回避する。これは広く一般の現象である。新しいマルウェアの９９％以上は、少なくとも部分的に僅かな変更で、実際には再度用いられているマルウェアである。
【背景技術】
【０００３】
様々なタイプのマルウェアおよび好まれない侵入から個人ユーザおよび企業ネットワークを保護するマルウェア検知器一式およびセキュリティパッケージを提供する様々な試みをしてきた。既知のマルウェア検出器の全部は、既知のコンピューターウィルス、既知の攻撃方法、既知のマルウェア挙動、既知のマルウェアパターン、既知の脆弱性、既知のエクスプロイト、などから保護する関連技術及び事後的なアプローチを使用する。どのベンダー、製品又はパッケージは、予測的および先攻的な方法において、将来のマルウェアに対して予測し保護するための技術を提供しない。更に目的および経験的な方法で、どのセキュリティ製品がよりよいか決定する際に大きな困難が存在する。
【０００４】
将来のマルウェアを予測しそのような潜在的な悪意のあるプログラムに対して保護するために方法、コンピュータプログラム製品およびシステムを持っていることは非常に有利だろう。このレースで競合するセキュリティ製品の能力を基準にしたがって評価する手段を持っていることは更に、非常に有利だろう。
【０００５】
［定義］
用語「マルウェア」とは、潜在的な入出力のストリーム（攻撃を引き起こすネットワーク・パケットのストリーム）だけでなくコード、実行ファイル、スクリプト、アクティブ・コンテンツの形式、及びその他のソフトウェア形式によって引き起こす悪意のあるソフトウェアを指す。マルウェアはウィルス、エクスプロイト、トロイの木馬、ワーム、ルートキット、スパイウェアおよびその他同種のものを含んでいるがこれに限定されない。
【０００６】
用語「マルウェア検体」とは、以下に詳細に示すように、提案システム又はサードパーティーシステム、方法又はプロセスのいずれかによって、典型的に、未開（ｔｈｅｗｉｌｄ）で引っかかる、又は文書化された進化のプロセスのために使われるマルウェアの部分を指す。いくつかの検体は感染または汚染されたコンピューター上で見つかるか、又は特別のリポジトリに格納されている。進化のプロセスにおいて、マルウェア検体は提案されたプロセスのその後の段階において使用されている（明瞭な説明に関しては下記参照）。
【０００７】
用語「変種」とは、進化に関連する生物学的語彙から使用もしており、マルウェア検体のバージョン又はランダム、準ランダム、擬似ランダムに変更した、又は意図的な方法で突然変異した"突然変異"を指す。変種は、マルウェアコードの"突然変異"を実行すること、又は、２以上のコードのセットのパーツを組み合わせることは当業者に知られている遺伝的プログラミングの突然変異の任意の他の形態のパーツを組み合わせることによって生成することができる。
【０００８】
用語「突然変異」も本明細書で使用されるように、生物学的語彙から使用され、マルウェア検体のコードに行なわれた変更を指す。例えば、突然変異はコード行を付加又は削除すること、コード行を並べ替えすること、コード行を複製すること、パラメーターを変更すること、サードパーティコードへの呼び出しを置換すること、ポートを変更すること、使われるライブラリを変更することを含んでもよい。
【０００９】
用語「悪意のある変種」はまだ依然として悪意のあるマルウェア検体の変更されたバージョンを指すために本明細書で使用される。それらの悪意のある特性を失った変種は本明細書で「悪意のない変種」と呼ばれる。
【００１０】
用語「回避的な変種」は本明細書では検体の回避性のレベルに適合する回避性レベル（つまり、元のマルウェア検体として同じ数のマルウェア検出システムによって検知されるかより少ない）マルウェア検体の変更されたバージョンを参照するため使われる。それらの回避的な特性を失った（つまり、オリジナルの検体ほど回避的でない）変種は、「回避的でない変種」と本明細書で呼ぶ。
【００１１】
通常、もし他の方法で指定されなかったならば、用語「悪意のある特性」はどちらかを悪性コード（つまり実行のための命令のセット）、悪意のある挙動（つまり、動作／命令、別々に行なわれた時、必ずしも悪意がない、しかし、特定の方法でともに行なわれた時に悪意のある意図を示す）又は２つの組合せを指す。
【００１２】
検出器は、検出するために作成されたコンピュータプログラム製品であり、場合によっては、ターゲットシステムまたはネットワーク上のマルウェアを中和する。
検出器は、疑わしいマルウェアを検出するために、当業者に知られている１つ以上の検出方法を使用するサードパーティー製品によって使用される定義の形式をとってもよい。
【００１３】
用語「フットプリント」、「トレース」又は「攻撃トレース」などは、ファイル又は他の悪性コード（例えば一連のネットワークパケットのような）が、ネットワークトラフィック、バイナリコード、オペレーティングシステムおよびＡＰＩ呼び出し、ＣＰＵアクティビティ、メモリフットプリント、コンテンツおよび前述のもののうちのいずれかの組合せを含むすべてのタイプのフットプリント／証拠に関する。
異なる修飾子も用語「フットプリント／トレース」に結合することができる。
【００１４】
用語「遺伝的演算子」は、突然変異する演算子および交互に組み合わせたマルウェアの変種を指す。
【発明の概要】
【課題を解決するための手段】
【００１５】
本発明は、進化の法則に基づいて将来のマルウェアを予測し、このような悪意のある要素や他の同様の要素から保護するための製品、方法及びシステムを提供する。
【００１６】
本発明によれば、（ａ）マルウェア検体のマルウェア変種を生成するのに適合されたマルウェア進化エンジン、及び（ｂ）悪意性レベルおよび回避性レベルから少なくとも１つに基づいて前記マルウェア変種を評価するように構成されたエバリュエーターと、を含むシステム、そしていくらかの実施形態（ｃ）において、リポジトリ、プロダクション装置およびサードパーティ製品から成る群から選択される少なくとも１つのソースから前記進化エンジンの為にマルウェア検体を集めるのに適合されたマルウェアフェッチャー、及び／または（ｃ）進化エンジンによって生成され、エバリュエーターによって評価されたマルウェア変種に基づいた検出器機構を生成するように構成された検出器ビルダー、
とを含むシステムが提供される。
【００１７】
下記に述べられた本発明の更なる特徴によると、マルウェア検体の実行可能コードに突然変異を適用すること、ネットワークトラフィックに放出されたマルウェアに突然変異を適用すること、マルウェア変種を交互に組み合せることを含む群から選択された少なくとも１つの動作を行なうことによって又はマルウェアの変種を生成するように進化エンジンが構成されている方法の特徴。なお、更なる特徴によると、又は方法において、実行可能コードに適用される突然変異は、以下のものを含むグループから選択される。：（ｉ）ランダム突然変異、（ｉｉ）所定のコマンドシーケンスを別の機能的に同等なコマンドシーケンスに置換すること、（ｉｉｉ）選択されたライブラリコールを異なる機能的に同等なライブラリコールに置換すること、（ｉｖ）使用される選択されたライブラリを、異なる機能的に同等なライブラリに置換すること、（ｖ）悪意のある機能を持っていることとして識別されたエリアで突然変異の確率を増加させること；（ｖｉ）実行可能コードの適切な実行を妨げないものとして識別されたエリアでの突然変異の確率を増加させること；（ｖｉｉ）セキュリティ製品によって署名されたエリアで突然変異確率を増加させること；（ｖｉｉｉ）以前の突然変異が増加した適合性スコアをもたらしたエリアで突然変異の確率を増加させること；
（ｉｘ）バイナリコードが加えられたセクションの為の実行可能コードのヘッダーを書き換えることで結果的にセクションの拡張をもたらすこと；（ｘ）他の実行可能コードと実行可能コードを組み合わせ、及び関連するヘッダーを書き換えることによって組み合わさったコードの適切な実行を可能にする；（ｘｉ）動的関数呼び出しを関連するオペレーティングシステムコールの静的な起動に変更するために実行可能コードに関連したセクションを修正すること。
【００１８】
更なる別の特徴又はパラレル方式によると、攻撃マシンは進化エンジンに、マルウェア放出されたネットワークトラフィックを送るように構成され、該進化エンジンは突然変異を適用し、かつ犠牲マシンに送るように変異したマルウェア放出されたネットワークトラフィックを送るように構成された進化エンジンへ、マルウェア放出されたネットワークトラフィックに適用し、送るように構成される。
ここで、犠牲マシン上の変異したマルウェア放出されたネットワークトラフィックの結果は、悪意性レベルを判定するためにエバリュエーターによって評価される。
【００１９】
更なる別の特徴によると、マルウェア放出されたネットワークトラフィックに適用された突然変異はフィールドをパケットのペイロードかヘッダー中の様々な突然変異の後に有効にするために様々なプロトコルでネットワークパケットのＣＲＣ／チェックサムフィールドを修正することを含んでいる。
【００２０】
更なる別の特徴によると、マルウェア放出されたトラフィック又は実行可能コードは、安全なチャネルにおいて、マルウェアに放出されたトラフィックをラッピングすることによって、含んでいるネットワーク通信をパッキングすることによって使用して難読化し、暗号化すること、および符号化により難読化にされる。
【００２１】
別の実施形態によれば、マルウェア上で進化プロセスを行うための方法が提供され、以下の工程を含む方法：
（ａ）マルウェア検体を受け取る工程；
（ｂ）マルウェア検体の変種の生成する工程；
（ｃ）変種を評価し個々の変種に適合性スコアを与える工程；
（ｄ）少なくとも予め定義された適合性スコアを有する変種を選択する工程；及び
（ｅ）選択された変種を使用する工程（ａ）におけるマルウェア検体として使用してそこから変種の新しい世代を生成する工程、
いくつかの実施形態では、方法は、（ｆ）変種のトレースデータを集める工程をさらに含んでいる；及び
（ｇ）悪意のある特性と悪意のない特性とにトレースデータを分類する工程。
同様に（ｈ）検出することができ、悪意のある特性および悪意のない特性とを区別し構築する検出器。
【００２２】
さらなる特徴では、該方法はさらに以下の工程を含んでいる：
（ｉ）検出器から選択すること、少なくとも１つの前もって所定の定義したレベル以上の格付けを有する検出器、次のものに基づいた格付け
（ｉ）正確に検出された悪意のある特性の数；
（ｉｉ）不正確に検出された悪意のない特性の数；及び
そして（ｉｉｉ）正確に検出された悪意のある特性の短かさ、そこにおいては、より高い格付けは、より短い、悪意のある特性の検出に対して与えられる。
更なる別の特徴によると、方法は、さらに次のものの工程を含んでいる：
仮想マシン（ＶＭ）および物理的なマシンの両方についての変種の実行；
そして、結果の相違を比較して検出するためにＶＭ上での変種を実行することと物理的なマシン上での変種を実行することとを比較し、相違が見つかる場合、物理的なマシン上での変種を実行する結果のみで変種を評価する。
【００２３】
更なる別の特徴によると、方法は、さらに次のものの工程を含んでいる：
変種を実行する間に統合トリガーを中和するために所定のシステムシグナルを送ること。
更なる別の特徴によると、方法は、さらに次のものの工程を含んでいる：
実行されないコード領域を識別するために変種を実行する間のコードカバレッジの監視、変種において実行していないコード領域は統合されたトリガーを示す。
【００２４】
別の実施形態によれば、ネットワークストリームのためにマルウェア検出器をトレーニングする方法（以下の工程を含む方法）が提供される。：
（ａ）セッションのバイトストリームをキャプチャーする工程及び、整数の線形のベクトルとしてバイトストリームを表わす工程、（ｂ）前記線形のベクトルを正方行列へ作り変え、それによって、グレイスケール画像を受け取る工程；
（ｃ）解像度を統一するために前記グレイスケール画像を正規化する工程；
（ｄ）少なくとも１つの画像処理技術を使用して、前記正規化した画像から特性を抽出する工程；
（ｅ）（ａ）乃至（ｄ）の工程を繰り返し、最初のデータベースに悪意のある変種を、及び２番目のデータベースに良性のトラフィックを格納する工程；
（ｆ）前記マルウェア変種と前記良性のトラフィックとを識別するようにマルウェア検出器をトレーニングする工程、
【００２５】
さらなる特徴によれば、画像処理技術は、ガボールのウェーブレット係数、係数の統計、主成分分析、線形判別分析および独立成分分析から構成されるグループから選択される。
【００２６】
さらなる特徴によれば、トレーニングする工程はサポートベクトルマシンで実行される。
【００２７】
別の実施形態によれば、マルウェア検体からのマルウェアの変種を生成する方法マルウェアの変種の生成は、マルウェア検体の実行可能コードに突然変異を適用する工程、マルウェア放出されたネットワークトラフィックに突然変異を適用する工程、マルウェアの変種を交互に組み合せる工程を含むグループから選択されて、少なくとも１つのアクションを行なうことを含んでいる工程が提供される。
【００２８】
別の実施形態によれば、次のものの工程を含む方法が提供される：
（ａ）マルウェア検体を受け取る工程；
（ｂ）マルウェア検体の変種の生成する工程；
（ｃ）セキュリティ製品の選択されたグループで各変種をスキャンし変種を検出することができないセキュリティ製品に基づいて、回避性スコアを与える工程。
さらなる特徴によれば、方法は、次のものの工程を含んでいる：
（ｄ）変種の検出の成功のレベルに基づいてセキュリティ製品の各々に格付けを与える工程。
また、いくつかの実施形態では、格付けは他のセキュリティ製品の成功の相対レベルに基づく。
【図面の簡単な説明】
【００２９】
様々な実施形態は、本明細書に添付の図面を参照しながら、例としてのみ記載されている。：
【図１】、マルウェアをスキャンするアンチウイルスエンジンからの１組の例示的な結果である；
【図２】Ａ−Ｃは例示的な検出器生成プロセス中の段階である；
【図３】発明の進化のプロセスのフローチャートである；
【図４】検出器を構築するプロセスのフローチャートである
【図５】選択されたセキュリティ製品を回避性を評価するか及び格付け、又はベンチマークテストするプロセスのフローチャートである。
【図６Ａ】例示的なクライアント側インプリメンテーションシナリオのダイアグラムである；
【図６Ｂ】例示的なクライアント側インプリメンテーションシナリオのダイアグラムである；
【図６Ｃ】例示的なクライアント側インプリメンテーションシナリオのダイアグラムである；
【図７】画像処理アルゴリズムのフローチャートである；
【図８】ネットワークトラフィックの進化の１実施形態の絵画的描写である。
【００３０】
［システムの概要］
本発明によるシステムの原理および操作は、図面および付随する説明を参照して一層よく理解され得る。
本発明の一つの実施形態として、サーバー側コンポーネントおよびクライアント側コンポーネントを含んでいるシステムが提供される。
サーバー側コンポーネントは以下の要素を含んでいる：
オプションのマルウェアフェッチャー、予測的なエンジンおよび検出器ビルダー。
予測的なエンジンは進化エンジンおよびエバリュエーターを含んでいる。
本発明の１つの実施形態において、随意に、クライアント［マシン］側で、システムはエンドポイントエージェント及び／又はネットワーク機器を含んでいる。
サーバー側面コンポーネントは単一のサーバーまたは複数の又は共同設置されたサーバまたはクラウドベースの設定で実装することができる。
【００３１】
［マルウェアフェッチャー］
マルウェアフェッチャーは、設計を含む、これらに限定されないが、開いたマルウェアリポジトリ、閉じたマルウェアリポジトリ、エンドユーザなど、様々なソースからのマルウェアの検体を収集するように設計、及び構成されたオプションのモジュールである。
マルウェアフェッチャーは、いくつかの実施形態中で、トレース特性、及び／又は予備的知識又はメタデータによって検体を分類するようにさらに構成される。
いくつかの実施形態では、マルウェアフェッチャーは集めたマルウェア検体に関連する追加のデータ（例えばマルウェアのタイプ、マルウェアが設計されているプラットフォームなど）を集める。
【００３２】
マルウェアフェッチャーは、新しい変種を作成する進化のプロセスの基礎として使用されているマルウェアの検体を得る。
システムの背景にある原理は、他のところで言及されたように、新しいマルウェアの大部分（９５％以上）が他の既存のマルウェアから再利用された８０％ものマルウェアの要素又はコンポーネントを含むということである。
即ち、完全に新しい１個のマルウェアを作成する代わりに、ハッカーの大部分は新しい構成で古いマルウェアを単に組み立てる。
「完全に新しい」マルウェアでさえ、以前に知られている少なくともいくつかのコードまたは挙動（フットプリント）をリサイクルする。
良好な新しいマルウェア片は悪意の同じレベルを維持するか、そのレベルを増加させる方が、より古い構成より検出するのがより難しい。
新しいマルウェアが絶えず浮上しているとき、マルウェアフェッチャーは、予測的なエンジンが進化のプロセスを実行し続けるために新しいマルウェアを探索し続ける仕事を有している。
このように、本当に、「新しい」マルウェア又はマルウェアコンポーネントでさえ、革新的なシステムによって直ちに発見され処理される。
既存のコンポーネントのほとんどすべての有益な変異に対して予め保護することができるシステムの提供によって、
安く容易に新しいマルウェアを作成するための能力は厳しく削減され、
ハッカーの仕事をより費用及び時間がかかるようになり、それによりマルウェア生産の実行が妨げられる。
【００３３】
［予測的なエンジン］
予測的なエンジンは、マルウェア検体の大量のランダムか半ランダムの変種の生成により、新しいマルウェアを作成する際に、ハッカーが使用する方法を複製する。
ハッカーが新しく、よりよいマルウェアを作るために古いマルウェアを変更することに対する質を追求する選択を行なう場合、
予測的なエンジンは、進化エンジンを使用して、変異の大多数（数百から数百万）を「無思慮に」作成する大規模な量的手法を使用する。
【００３４】
進化エンジン
１つの実施形態では、進化エンジンはマルウェア検体を受け取り、以下の方法で基礎検体の変種を生成する：
ａ）エンジンは、元のマルウェア検体の変更（又は変種）の大多数の世代を作成するためにバイナリコード又はマルウェア態様（例えば放出されたネットワークパケット、ソースコード、アセンブラコード、その他）の他の様相のいずれか上で、マルウェア検体の大多数半ランダムを生成する。
その変更は様々な方法で行われる。
変更は、ランダム、半ランダム及び／又は擬似ランダム方法コードへの追加にコードの部分のコード及び／又は削除への変更するパラメーター、コードの複製ラインを含み得る。
ｂ）随意に、進化エンジンは、さらに大多数の追加の変種を生成するために２以上のマルウェア又はその部分を組み合せてもよい。
結果は、基礎検体の多くの変異が生成されるということである。
ｃ）「自然選択」（又は適者生存）その後、予測的なエンジンは、最良の変種を選択するために進化の選択プロセスを使用する。
変種の特性およびトレースデータは記録され、また、変種はその後、変種の新しい世代を生成するために進化エンジンへとフィードバックされる。
予め定義された目標が世代のように達成するまで、予め定義された数の生成の又は連続の世代がもはや重要な進化およびその他同種のものを示さない場合、連続の世代の中で最適の変種は、突然変異、交互に組み合わされ及び選択の進化のプロセスを何度も繰り返してうける。
【００３５】
変種の連続の世代の存続の割合（例えば悪意のある挙動を示す新しい変形のパーセンテージ）を増加させて、かつ進化のプロセスの可能性を向上させるために、突然変異のうちのいくつかは、この目的のために開発されてきた高度な技術を必要とし得る。
したがって、いくつかの実施形態では、進化のエンジンは、、以下の遺伝的演算子（つまりマルウェア変種を変異させる演算子）の１つ以上を含んでもよいが、しかしこれらに限定されない。
実行ファイル（ＰＥ／ＥＬＦ／ＭａｃｈＯ／ＬＥ／など）の修正。
１．実行可能な異なるセクション（例えばテキスト／コードのセクション）特定しマッピングすること、及び悪意のある機能により関連するか、実行可能ファイルが正確にロードされ実行されるのを防ぎそうでないエリアで突然変異の確率を増加させること。
２．（ハッカーがそれらのエリアを最初に変更するだろうと仮定して）他のセキュリティ製品によって署名される符号エリアで突然変異の確率を増加させること。
３．、変異させられた時、変種の適合性スコアの著しい変更を結果的にもたらした近点であるコードエリアで突然変異の確率を増加させること。
４．バイナリコードを加えて書き換えられた実行可能なヘッダーが拡張したセクションの新しいサイズに適切になるように、実行可能なヘッダーを書き換えることにより、関連するセクションを拡張すること。
５．新しいファイルがロードされ、且つ実行されることを可能にするために関連するヘッダーを書き換えて、新しい実行可能ファイルを作成するために２つ以上の実行可能ファイルからのセクションを組み合わせて、
６．一方でハッカーによって広く使用される方法をシミュレートすること、例えば、
ｉ）動的関数呼び出しを関連するオペレーティングシステムの静的な起動に変更するために実行ファイルのインポートアドレステーブル（ＩＡＴ）および他の関連するセクションを修正し、及び／又は例えば実行可能ファイルへの動的な呼び出しによって実行されたコードを組み込むこと：
ｉｉ）例えば、パッキング、暗号化、符号化（ハッカーによって、これは同じツールおよび方法によって行われてもよい、この目的に使用される）の異なるファイルセクションに使用して、難読化を加えること：
【００３６】
進化のプロセスとエンジンの１つの起こりうる実施形態、エンジンは、ネットワークトラフィックの発生を可能にする方法（例えば突然変異すること、ネットワークパケット）で構築される。
図８は、ネットワークトラフィックの発生８００の１つの実施形態を表す。
エンジンは、「犠牲者（ｖｉｃｔｉｍ）」マシン８１０に悪意のあるパケットに８０２を送る「攻撃者」マシンから構成される。
パケットは、「犠牲者」マシンに渡される（工程８０８）前にパケットのフィールドかペイロードを変異させるルーター８０６によって渡される（工程８０４）。
変異させられたパケットだけが、「犠牲者」へ送られる。
犠牲者に対する攻撃（成功した／失敗した）の結果は、新しい攻撃変種がまだ悪意があるかどうか判断するためにエバリュエーター８１４（工程８１２で）に送られる。
１つの実施形態では、「犠牲者」は砂箱である。
別の実施形態では、それは物理的なマシンである。
【００３７】
変異させられたネットワーク攻撃の生存率を増加させるために、システムは、フィールドをパケットのペイロードかヘッダー中の様々な突然変異の後に有効にするために様々なプロトコルで（例えばイーサネット（登録商標）又はＩＰ）のネットワークパケットのＣＲＣ／チェックサムフィールドを修正し得る。
【００３８】
システムはさらにそれらのハッカーがマルウェア進化を高めて向上させるために使用するものに類似した難読化技術を使用し得る、。
そのような技術は例えば、安全なチャネルおいて、ネットワーク通信をラッピングすることを含み得る（例えば暗号化）。
【００３９】
［エバリュエーター］
発明の１つの実施形態では、自然選択プロセスは、各変異又は「突然変異」を評価する第二のコンポーネンによって行なわれる（エバリュエーター）。
エバリュエーターは進化エンジンからマルウェア検体変種を受け取り、マルウェア変種の前の母集団及び／又は世代に基づいて、既知のセキュリティ製品及び検出器ビルダーによって作成された、検出器でコード／検体をスキャンする（共進化検出器又は進化検出器のいずれか後）。
エバリュエーターは２つのタイプのデータセットを戻す：
その一つは、進化エンジンが選択プロセスの間に使用をする値かスコアであり、また、もう一つは、検出器ビルダーが改善された検出器を作成するのを支援する特性およびデータ（フットプリント）に関係する。
エバリュエーターは各種パラメータによって変種を評価し、その最も重要なものは悪意性と回避性のパラメーターである。
スコアか格付けは、悪意のある特性を保持しながらセキュリティ製品によって検出を回避することができる変種の進化を促進する方法で与えられる。
スコアリング方法自体は、様々な所望の特性（例えば変種母集団の多様性および／またはアルゴリズムなどの計算上の効率）を向上させるために進化プロセス中に動的に変化しうる
【００４０】
他の実施形態では、エバリュエーターは、さらに多様性／距離のレベルで変種を評価し得る、つまり、オリジナルのマルウェアかに対して現在の変種はどれくらい多様か、又は異なるか変種を格付けしている。
評価の追加の潜在パラメータは、良性のファイルとそれ以上の類似点のレベル及び、それ以上を含み得る。
【００４１】
エバリュエーターは、変異させられたコードが回避性のレベルを更に判定し得る。
好ましくは、コードは、セキュリティ製品（例えば様々なアンチウイルスエンジン、ホストベースのＩＰＳ、（ＦｉｒｅＥｙｅ社ミルピータス、ＣＡによる（ＦｉｒｅＥｙｅ＊）のようなゲートウエイ製品。）ネットワークＩＤＳシステム、など）を含む、既知のマルウェア検出器によって、及び検出器ジェネレーターによって生成されたいくつかの実施形態中で検出器によってさえも実行される。
回避性スコアは、変種が１つ以上の検出機構を回避する能力を反映している。
いくつかのセキュリティ実体については、変種が検出されたとしても検出されていなくても、結果はバイナリである。
他の検出器は検出率、例えばそれにプロセスかファイルがマルウェアである可能性に関する統計スコアを戻す検出器であるを返し、
マルウェアのうちの１つがもう一つのマルウェアの進化の変種だった場合、図１は２個の例示的なマルウェアをスキャンした例示的なアンチウイルス（ＡＶ）エンジンからの２つの結果の表を表す。
左手表は、マルウェアが進化（進化のプロセス）を経験する前にＪａｖａ（登録商標）エクスプロイトをスキャンした９つのセキュリティ製品を表す。
９つのＡＶエンジンのうちの６つはコードをマルウェアと認識した。
右手表は、同じＪａｖａ（登録商標）Ｅｘｐｌｏｉｔ、の変種（１世代後）上で実行された（つまりＪａｖａ（登録商標）エクスプロイトマルウェア上で本発明の進化のプロセスを実行した後）同じＡＶエンジンに起因する結果を表す。
悪意のあるものとして、ＡＶエンジンのうちの１つだけがコードを認識したので、変種は高度の回避性を示す。
【００４２】
いくつかの実施形態では、エバリュエーターは、変異させられたコードが動的解析を使用して、まだ悪意があるかどうか判断する。
いくつかの実施形態では、エバリュエーターはこの質問に「はい／いいえ」の値を単に返します。
他の実施形態では、悪意性の実際の程度又はレベルが判定される。
動的なアナライザーは、様々な予め定義されたパラメーター及び／又は仮想マシン（ＶＭ）又は物理的なマシン上で行なわれる試験に基づいて変種の悪意性のレベルを判定するために変種が悪意のある活動（例えばＲＡＴ（リモートアクセス型のトロイの木馬）タイプのマルウェアの（すなわち再利用されたエクス演算子プロイト中のペイロードをダンプすること）をまだ実行していることを確かなものにする又は、確証するためにコミュニケーション）をまだ行なうことを保証するか確認する変種についての、およびいくつかの実施形態中の動的解析を実行する。
他の実施形態中で、真／偽又はバイナリの、グレードは砂箱中で変種を実行した後に与えられる。
【００４３】
同時に、いくつかの実施形態では、評価プロセスは、記録され、新しい検出器を生成するのに使用される、変種の活動（イベント、システムコールなど）に関する挙動的なデータなど（トレースデータ）を提供する。
【００４４】
エバリュエーターは、それらの悪意のあるファイルが分析されるのを防ぐためにハッカーによって使用される方法に対処するか又は対抗する１つ以上の方法を使用し得る：
１．物理的なマシン上での同じファイルの別の実行のトレース／フットプリントに対して、仮想マシン中の悪意性のあるファイルの実行のトレース／フットプリントを比較すること。
著しい違いは、マルウェアが抗ＶＭ技術を使用し、その変種がもっぱら物理的なマシンの上で評価されるべきであることを示している。
２．ハッカーは、しばしば希望のコンテキストからマルウェアの実行を避けるためにマルウェア中でトリガーを統合する。
これらの技術に対処するために、エバリュエーターは、下記技術のうちの１つを使用し得る：
Ａ．それはエンドポイントデバイスとネットワーク機器についてのエージェントによってキャプチャーされた、評価された変種を実行している間、エバリュエーターは関連するオペレーティングシステムシグナル、コミュニケーション、引き数およびその他同種のものを送り得る。
Ｂ．実行されていない（又は特定の条件が満たされる時だけ実行された）コード領域を識別するためにプロセスによってロードしたバイナリーのモニターコードカバレッジ（実行可能および共有ライブラリ）。
そのようなエリアの大部分は潜在的なトリガーを示す。
【００４５】
各々の変種、エバリュエーターからの悪意性スコアおよび回避性スコアの少なくとも1つを受け取る。
適合性スコアは変種がエバリュエーターから受け取る各種パラメータ/スコアから計算され、どれが悪意性及び回避性の回避性スコアかの中で最も重要である。
変種は選択プロセスを経て、適合性スコアを受け取る。
どの変種が処理されているか及び、システムが達成しようとしている目標は何かに依存にして様々な選択方法が利用され得る。
異なる方法は異なる時(同じ進化のプロセスでさえ)で使用されてもよく、また、方法はそれ自体プロセスの間に変更され得る。
選択プロセスから残存するが変種の可能性は、一般に適合性スコアと直接関係する。
いくつかの実施形態中で、適合性スコアが予め定義されたレベル以上である場合、変種は選択プロセスから残存する(以前に言及されたように、適合性スコアは動的なエバリュエーターによって達成され得、結果として、動的適合性パラメータをもたらす)。
他の実施形態では、最適の変種が「ノックアウトベースの」シナリオ中で選択されている場合、選択プロセスはトーナメント選択プロセスであってもよい。
さらに別の実施形態では、選択プロセスであってもよい、ガイドされたプロセス、どこで、特定の特性、残存するために選択される。
選択プロセスは、2つ以上の方法の又は技術中で既知のさらに他の方法の組合せかもしれないが、明確に言及されないであってもよい。
いくつかの実施形態では、進化のプロセスの完成か補足に必要な特定の特性を表示した変種は、単なる繁殖のために選択されてもよい。
例えば特定の検出器を回避する能力を示す変種、又は一般により回避性がある、他方ではそれほど悪意がないか、もはや悪意ではない、より回避的、たとえそれが悪意がなくても、繁殖に選択されてもよい。
次の順列/世代では、同じ変種は以前に発見された/示された特定の回避性を備えた悪意のある変種を生成するために悪意のある変種と組み合わせる。
【００４６】
どちらの選択プロセスが使用されても、選択された変種は、進化のプロセスの一層の順列を受けるために新しいマルウェア検体として進化エンジンに送り戻される。
いくつかの実施形態では、システムは、悪性コード、スクリプト、データなどの記録、および悪意のある変種(つまり変種のトレースデータなど)の悪意のある挙動を維持する。
システムは、いくつかの実施形態中で、悪意がない変種又は拒絶された変種のトレースデータの記録も維持し得る。
これらの記録はさらに分析および処理のために検出器ビルダーに渡される。
【００４７】
要約すると、予測的なエンジンは、ハッカーによって今後作成されるであろうマルウェア検体の変種の大きな母集団の作成のためのテンプレートとして生物学的な進化モデルを使用する。
進化モデルは、最適の変種(複数可)を生成するために自然選択のいくらかの形式が生じることを要求する。
この目的のために、十分に高い適合性スコアがある変種は変種の次世代を生成するために選択される。
高いスコアの変種は、進化エンジンに戻され。その、低いスコアの変種が変種プールから取り除かれる。
高スコアの変種は、ここで、新しい変形が生成される基礎検体として機能する。
所望の予め定義された目標が到達するまで、又は変種が悪意性又は十分な回避性およびその他同種のものを示さなくなるまで、そのプロセスは無期限に継続することができる。
【００４８】
システムは検出することができ、好ましくは、悪意のある変種を中和する検出器を生成するために使用を高いスコアを得ること又は変種の他の部分集合を促進し得る。
予測的なエンジンによって提供されるように、たとえハッカーが正確な同じを変種に生成しなくても、（しかし単に類似製品である）システムは、同様の変種の共有される特性/フットプリントに基づいて、ハッカーによって作成されたマルウェアを検出することができるかもしれない。
検出器ビルダーはこの機能を実行する。
【００４９】
［検出器ビルダー］
検出器ビルダーはコード及び記録された挙動／変種に関連するトレースデータをすべて受け取るシステムのコンポーネントである。
【００５０】
いくらかの実施形態中では、検出器ビルダー悪意があり及び悪意のない変種の両方からの受信データを受け取る。
他の実施形態中で、検出器ビルダー、最適な可能性を示す新しく生成された変種からの受信データ(例えば、それらが「発展し」、悪意性のレベルを維持するか、増加させる基礎検体よりも優れたレベルの回避性を有しているか、回避性のそれらのレベルを維持するが、よりよいレベルの悪意性を持っている)また新しい変形を検出することができる検出器を作成する。
いくつかの実施形態では、ビルダーは進化のエンジンによって生成された変種からトレース、又はフットプリント(定義のセクションに定義されたようなフットプリント)をすべて集める。
【００５１】
ビルダーによって生成された検出器は、記録されたトレースを装備している。
データは次のものから来るトレースへ分類される:
悪意のある変種(「悪意のあるトレース」);
変種が進化のプロセスにおいて、およびもはやない悪意のある特性をすべて失ったという意味で、退化した(「トレースを退化させた」)変種は悪意のある特性(例えば- その演算子ともはや通信しないリモートアクセスツール)を表示する;
また良性のファイル又は正常なネットワークデータ(「良性のトレース」)。
【００５２】
検出器ビルダーは、悪意のあるフットプリントから良性の微分に有能な分級機を訓練するために1つ以上の教師あり学習アルゴリズムを使用し得る。
検出器ビルダーは悪意のあるおよび良性のトレースを使用し、いくつかの実施形態では、教師あり学習のためのトレーニングデータとして、退化させられたトレースをさらに使用し得る。
他の実施形態では、検出器ビルダーはさらに監督されていない学習アルゴリズムを使用し得る。
【００５３】
検出器は、マルウェア変種を備えた共進化で(例えば、検出器ビルダーは悪意のあるトレースを受け取り、これらのトレースを検出することができる検出器を生成する)又は、進化後のプロセスが終了するとトレーニングされる(進化後)。
共進化シナリオでは、検出器は具体的に選択プロセス中に、進化のプロセスの一部であり得る。
変種は、生成された検出器のうちの少なくともいくつかを含み得るセキュリティ機構によってスキャンされる。
検出器が進化後に作成されたシナリオ中で、進化のプロセスの間に集められたトレースデータは、良性のデータと悪意のあるトレースデータを区別する検出器をトレーニングするために使用される。
【００５４】
1つの例示的な実施形態では、検出器ビルダーは（シンタックス学習/文法誘導）を使用する。
この実施形態では、検出器ビルダーは1セットのシンボル「アルファベット」を使用して、悪意のあるトレースを表わし得る。
好ましくは、ビルダーはそれほど関連しないパラメーターを無視しながら文法中で関連するパラメーターを単に表わすだけである。
【００５５】
又は／またはさらに、そうであるように、ビルダーはさらにトレースをそのまま使用し得る(また、「アルファベット」は、トレースにおいて使用されたオリジナルのシンボルを指す)。
【００５６】
その後、ビルダーは、規則を作成する文法誘導アルゴリズム、あるいは悪意あるとレースと良性のトレースとを区別するシンタックスを定義する文法を使用する。(例えば正規表現のような)、(例えば、悪意のあるトレースだけがトレースを構成するアルファベットに対する有効なストリングと考えられるだろう)
【００５７】
本発明の1つの実施形態では、検出器ビルダーは、良性の及び退化させられたトレースを受け取ることなく、できるだけ多くの悪意のあるトレースを受ける最短の正規表現を検索する。
これを達成する1つの方法は進化のアルゴリズムを使用して、文法（Grammar ）を作成することである。
例示的に、正規表現の第一世代はランダムに作成され、正規表現はそれぞれ以下のパラメーターによって(選択プロセスのために)格付けされるか、類別されるか、スコア付けされる。
1)悪意のある変種の検出/認識に与えられたポイント;
2)悪意のない変種か通常ファイルの検出のために差し引かれたポイント;及び
3)長さの短かさに対して与えられたポイント。
【００５８】
その後、システムは、繰り返し変異され、スコア付けされ、選択される。進化のプロセスを継続するための最良の正規表現を選択する。
【００５９】
図2は、検出器ビルダーを使用して、検出器/分別機を構成し及び生成/トレーニング際の3つの別個の可能な段階の例示的な表現を表す。
例において、検出器は作成された変種のWindows（登録商標） API呼び出し上に向けられる「Poison Ivy」と呼ばれるマルウェアに基づいてトレーニングされる。
検出器は、システムに特有のアルファベット(シンボルのセット)に関する正規表現として書かれている。
図2のaはWindows（登録商標） API呼び出しの抜粋である。
夫々のラインは異なるAPI呼び出しである。
図2のbは「アルファベット」に翻訳された抜粋のものを表している。
図2のcは、十分な表現(また他の変種の他の表現)に由来した例示的なコード抜粋である。
上に記述された選択プロセスによって、表された抜粋は引き出されている。
理想的には、短いコードの抜粋は、出来るだけ最も悪意のあるトレースおよび最も良性でない、及び／又は退化したトレースで一致する、また見つかる最短の正規表現である。
【００６０】
一度、トレースデータが、随意に最も小さな形式に減らされると、任意の同様のコード又は挙動(それはショートコード抜粋又は特性を含む)は、悪意のあるものとして新しい検出器によって認識される。
したがって、たとえハッカーが予測的なエンジンによって生成された変種のうちの1つとまったく同じであるマルウェアの新しい構成を作成しないとしても、同様のマルウェアは、マルウェアの間まだ検出されるだろう、ショートコードを含んでいる又は抽出する、又は文法によって表わされる挙動を示している限り検出される。
検出器は、このように悪意のあるものとして、新しいマルウェアを検出/認識し得る。
【００６１】
別の実施形態では、検出器は、良性のとレースと悪意のあるトレースとで分別するべき分別機を訓練するために画像処理アルゴリズムを使用する。
図7は、画像処理アルゴリズム700のフローチャートを表す。
例えば、学習アルゴリズムは以下のプロセスを実行し得る:
プロセスの工程702で、(ネットワークセッション、バイナリーファイル又は他のコードからの)バイトストリームはキャプチャーされ、整数(各々0から255まで)のベクトルとして表わされる。
工程704で、ベクトルは、正方形(又は他の形)マトリックス(例えば: 10,000バイトは100x100マトリックスになるだろう。)へ作り変えられる。
正方行列はグレイスケール画像を提供する。
工程706で、画像/マトリックスは解像度を結合するために正規化される。
例えば工程で、708の特徴は異なる技術、例えば、ガボールのウェーブレット係数; 係数の統計（平均、標準偏差、歪度、とがり）主成分分析; 線形判別分析; 独立したコンポーネント分析を使用して、画像から抽出される:
【００６２】
工程710では、工程702〜708は悪意のあるおよび良性のトレースの上で繰り返され、また、このプロセスの製品は、それらの起源(良性のトレース又は退化させられたトレース対悪意のあるトレース)に基づいて、2つのラベルが付けられたデータベースへ分離される。
プロセスの工程712で、工程5からのラベルが付けられたデータベースは悪意のあるトレースと良性のトレースとを区別するべき検出器として使用される(例えばサポートベクターマシンを備えた)統計モデルをトレーニングするために使用される。
実施形態
いくつかの実施形態では、検出器はクラウド上に作成しかつ/または格納することができる。
検出器は「トレースし」、そしてコンテンツ(つまり前述のもののうちのいずれかの組合せ)などのトレースを検査するように構成され得る。(ネットワークトラフィック、バイナリコード、オペレーティングシステムおよびAPI呼び出しのような)(およびCPUアクティビティおよびメモリフットプリント)
検出器はネットワークアプライアンス(ファイアウォール)に存在することができる。
ゲートウェイ(エージェントの中の、および／またはサードパーティシステムについてのトラフィックなどを受け取ることができるマシン)。
アプライアンスが受け取り得るいくつかの実施形態では、エンドポイントはエージェント及び／又はサードパーティシステムからデータを受け取る。
まださらなる実施形態では、アプライアンスはエージェントのもとへ問い合わせ、アップデート、分析及び検波結果などをエージェントに送り得る。
【００６３】
本発明の1つの実施形態では、検出器はシステムクラウドにおいて作成され、予測的なエンジンによって予測された将来の攻撃に対してトレーニングされる。
その後、検出器は、クライアントシステム/ネットワーク(例えば古典的なエンタープライズネットワーク、SCADA装置、埋め込まれた装置など)上で備え付けられる。
検査されたデータに依存する検出器の配備用の3つの典型的なシナリオが、下のように詳述される:
1. ネットワークデータを使用する将来のマルウェア予防
図6aは、クライアント側配備用の最初の典型的なシナリオを表す。
ネットワークフローにおいてスイッチまたはファイアウォール装置から映され、ネットワークアプライアンスで処理される。
アプライアンスは、クラウドから直接更新される(或いは又は／及びさらに、アプライアンスはアップデートを手動でダウンロードすることによりオフラインの方法で更新することができる)。
2.
エンドポイントデータを使用する将来のマルウェア予防
図6bは、クライアント側配備用の第二の典型的なシナリオを表す。
トレースデータはエンドポイントデバイスについてのエージェントから抜粋される。
エージェントは、悪意のある挙動を検出し阻止するためにクラウド上でトレーニングされた検出器を使用する。
アプライアンスは検出器を管理し及び更新し、サイバー脅威の構成全体に渡るビジョンを与えて、クラウドに疑わしいサンプルを送る。
いくつかの実施形態では、エンドポイントエージェントは、クラウドに直接接続することができる。
3. ネットワークと端点データの両方を使用する将来のマルウェア予防
【００６４】
図6cは、クライアント側配備用の第三の典型的なシナリオを表す。
トレースデータはエンドポイントデバイス上のエージェントから及び典型的に反映されたネットワークフローから抜き出される。
検知と予防は、両方のネットワークストリーム(アプライアンス中の)、およびエンドポイント挙動及び(例えば、アプライアンスに使用するエージェントを使用して)上に適用される。
アプライアンスは検出器を管理し更新し、サイバー脅威の構成全体に渡るビジョンを与えて、クラウドに疑わしいサンプルを送る。
【００６５】
［方法］
図3は、進化のプロセス300のフローチャートを表す。
進化のプロセスの工程302で、進化エンジンはマルウェア検体を受け取る。
工程304で、進化エンジンは、マルウェア検体の変種を生成する。
マルウェアのトレースの少なくとも一部が変異させられた、変種はそれぞれオリジナルの検体の派生物である。
突然変異は、ランダム突然変異、半ランダム突然変異又は擬似ランダム突然変異であり得る。
突然変異はランダムでない突然変異であってもよい。
突然変異の例は以下のものを含んでいる:
検体にコードラインを加えること;
コードラインの部分を除去する;
コードラインの複製;
コードラインの再整理;
備えた与えられたコマンドシーケンスをその他の機能的に同等なコマンドシーケンスに置換すること;
選択されたライブラリコールを異なる機能的に同等なライブラリコールに置換すること
使用される選択されたライブラリを使用される異なる機能的に同等なライブラリに置換すること、等。
ネットワークパケットへの突然変異は図8に関連して議論される。
【００６６】
随意の工程で、306の変種が、別の一つのコードの少なくとも一部と1本のコードの少なくとも一部を組み合わせることにより生成される。
いくつかの実施形態では、随意の工程306は省略される。一方、他の実施形態では、工程は省略されない。
まださらなる実施形態では、いくつかの世代はいくつかの変種のために組み合わせる工程を使用する。一方、他の世代及び／又は変種はしない。
追加の派生物の大多数はこのように生成することができる。
工程308で、変種は、選択プロセスの一部として「適合性」の点から通常評価される。
工程310で、変種はそれぞれの回避性のために評価される。
回避性は、変種を検出することができないセキュリティ製品の数及び／又は質に基づいて、セキュリティ製品の選択された群で各変種をスキャンし、各変種に回避性スコアを与えることにより測定することができる。
いくつかの実施形態では、変種の進化のプロセス(上に記述された共進化の実施形態)と並行して発展された検出器は、変種の回避性の評価において例示的なセキュリティ製品として使用される。
【００６７】
工程312で、変種はそれぞれ悪意性のために評価される。
いくつかの実施形態では、悪意性は各々のために、判定により測定される、変種が悪意のある活動を引き起こすかおよびその判定に基づいて、悪意性スコアを与える。
スコアは、において、バイナリー、真/偽、フォーマット、変種が悪意のある活動/ディスプレイを引き起こすかどうか悪意のある挙動/悪性コードを含んでいるかどうかを示す。
他の可能な実施形態では、実際のレベルの悪意(例えば1 -10などの規模についての)は評価され、また、悪意性スコアはその評価を反映する。
いくつかの実施形態では、変種は仮想マシン(VM)上で実行される。また、他の実施形態では、変種は物理的なマシン上で実行される。
同じプロセスは、コードに同様に使用される、他のタイプのトレース(例えばネットワーク攻撃)。
【００６８】
随意の工程である工程314(随意の工程)では、エバリュエーターは他の変種の適合性を示す他の/潜在パラメータを試験する。
変種が、変種がどんなに(オリジナルの検体及び／又は前の順列/世代から)分岐するか離れて同じ世代の他の変種決めると分析される場合、潜在的な1つの例は発散パラメーターである。
工程316で、トレースデータは詳しい分析および使用のために記録される。
例えば、データは新しい検出器をトレーニングするか作成するために使用され得る(図4を参照)。
【００６９】
工程316で、適合性スコアは、悪意性スコアおよび回避性スコアに、少なくとも基づいて計算される。
工程318で、変種が十分に「適合しているかどうか」選択プロセスから残存するのに決定がなされる。
選択プロセスから残存する変種は更なる進化を経験するために新しいマルウェア検体として進化マシン(工程302に進む）に戻される。
様々な方法はどの変種を選択するべきかに関して使用される。異なる方法は異なる時に使用され得、及び方法はそれ自体プロセスで変わり得る。
変種が選択プロセスから残存する可能性は、一般に直接適合性スコアと関係する。
いくつかの実施形態中で、適合性スコアが予め定義されたレベル以上ある場合、変種は、選択プロセス(以前に言及されたように、適合性スコアは帰着する動的なエバリュエーターによって達成され得、結果として動的適合性パラメータをもたらす)から残存する。
他の実施形態では、選択プロセスはトーナメント選択プロセスであり、ここで最初のNの最適の変種は、より高いスコア(相対的なフィットネス)を備えた変種を単にとることにより、変種(ここで「勝利」は、トーナメントの各ラウンドに参加する最適の変種に与えられる)間で実行されたトーナメントによって選択される。
更に他の実施形態、選択プロセスは、残存するために選択される特定の特性の場合、プロセスをガイドし得る。
選択プロセスは2つ以上の組み合わせの方法、又は言及されない他の方法でもよい。
いくつかの実施形態中で、変種が適合してないものとわかった場合、変種は工程320で廃棄される。
【００７０】
図4は、検知器を構築するための例示的なプロセスのフローチャート400を示す。
フローチャートの工程402は図3の工程316に相当する。
1つの実施形態において、変種のトレースデータが記録される。
いくつかの実施形態では、データは、工程404において、悪意のあるトレースと悪意のないトレースに分類される。
追加の及び／又は異なるカテゴリーも存在し得る。
いくつかの実施形態では、回避性特性も記録され、新しい検出器をトレーニングするために使用される。
【００７１】
工程406で、検出器ビルダー(又はいくらかの同等のコンポーネント)は、、悪意のある特性と悪意のない特性を検出し、区別することができる検出器を構築する/生成する/作成する。
これは、機械学習(ニューラルネットワーク、遺伝的アルゴリズム、SVMおよびカーネルマシン、など)を使用して行われてもよい。
工程406の実施形態の例は図7および図2に表される。
【００７２】
検出器は再学習プロセスを経る。
再学習プロセスでは、検知器は各々以下の基準の1つ以上に基づいて格付けし得る:
1)ポイントは正確に検出された悪意のある特性の数によって与えられる；
2)ポイント悪意のある(偽陽性（False Positive）)ものとして不正確に検出された悪意のない特性の数によっては減算される；及び
3) より短い、又はより軽い、コード、検出器、より優れた。
より高い格付けは、(長さ、メモリおよび計算上の作業負荷での)より短いかより軽い検出器に対して与えられる。
【００７３】
［回避性エバリュエーター/セキュリティ製品ベンチマーカー］
図5は、回避性を評価し、選択されたセキュリティ製品を格付けるか、ベンチマークテストするプロセスのフローチャート500を表す。
工程502で、マルウェア検体は取得/ 収集される。
随意に、マルウェアのコードでは、これはセキュリティ製品によって署名されたコード/ 挙動シーケンスを見つけることを伴い得る。
他のトレースについては、これは、知られているか、又は認識されて文書化されたパターンを見つけること伴い得る。
工程504で、検体はこれらのシーケンスネットワークパケットなどにランダムおよび半ランダム又は擬似のランダム変更を挿入することにより、オリジナルのマルウェア変種を作成するように、検体は、進化エンジンに実行される。
いくつかの実施形態では、これらの変更は、上述のように、マシンコード自体上にまたはマシンコードのアセンブリの表現上に、または任意の他のコンピューティング言語（Java（登録商標）やCなど）で行われます。 
工程506で、変種は選択されたセキュリティースキャナー(セキュリティパッケージの)でスキャンされる。
いくつかの実施形態では、検出器ビルダーによって生成された検出器も、変種をスキャンするために使用される。
【００７４】
工程508で、回避性スコアは、変種を検出することができなかったスキャナの数（すなわち変種により回避されたセキュリティ製品の数）および/ または1以上のセキュリティ製品によって信号化された警報、又は異常率に基づいて各々の変種に付与される。
回避性スコアは、変種が1つ以上の検出機構を回避する能力を反映する。
いくつかのセキュリティ実体については、変種が検出されたか否かについて、結果はバイナリーである。
【００７５】
他の検出器は検出率を戻し得る(例えばプロセスかファイルがマルウェアである可能性に関する統計スコア又はマルウェアの結果を返す検出器である)。
工程510では、セキュリティ製品(いくつかの実施形態では、これは、検出器ビルダーによって生成された検出器を含んでいる)はそれぞれ悪意のある変種を検出する能力に基づいて格付けされる。
いくつかの実施形態では、格付けはスキャナの絶対的な成功/故障率に基づいている。
いくつかの実施形態では、セキュリティ製品は、工程512において、他の製品を基準に格付けされる（優れている製品の判定）。
【００７６】
［コンピュータプログラム製品］
本発明の方法、システム及びプログラム製品のインプリメンテーションは、実行するか、または手動で選択されたタスクまたは工程を完了し、自動的に、またはそれらの組み合わせることを含む。 
また、本発明の方法及びシステムの1つの起こりうる実施形態の実際の計装および設備によれば、いくつかの選択された工程は、任意のファームウェアの任意のオペレーション上でハードウェア又はソフトウェア又はその組み合わせによって実施される。
例えば、ハードウェアとして、チップまたは回路として本発明の随意の工程を実行され得る。
ソフトウェアとして、本発明の選択された工程は、任意の適切なオペレーティングシステムを使用して、コンピュータのプロセッサによって一時でない記憶媒体に具現化され、実行複数のソフトウェア命令として実現し得る。 
いずれの場合においても、本発明の方法およびシステムの選択された工程は、複数の命令を実行するためのコンピューティングプラットフォームなどの、データプロセッサによって実行されているものとして記載され得る。 
【００７７】
システムの可能な一実施形態では、コンピュータプログラム製品、一時的でない記憶媒体上に具現化され、及びプロセッサによっては実行されることが、上述の方法の工程を実行するように構成されている。 
【００７８】
本発明は、限られた数の実施形態に関して説明してきたが、多くの変形、修正、および本発明の他の応用がなされ得ることが理解されるであろう。 
ここにマルウェアをランク付けするための前記基準は、単に一つの起こりうる実施形態であること、及びその基準に変更および/ または修正が、本発明の範囲に含まれることが明らかにされる。 
さらに、完全に異なるランク付けシステムは、代替的または追加的にマルウェアをランク付けするために使用することができる。
したがって、以下の特許請求の範囲に記載の請求項に係る発明は、本明細書に記載の実施形態に限定されるものではない。
【図８】
2016507115.tif 000003
【図１】
2016507115.tif 000004
【図２】
2016507115.tif 000005
【図３】
2016507115.tif 000006
【図４】
2016507115.tif 000007
【図５】
2016507115.tif 000008
【図６Ａ】
2016507115.tif 000009
【図６Ｂ】
2016507115.tif 000010
【図６Ｃ】
2016507115.tif 000011
【図７】
2016507115.tif 000012
【国際調査報告】
2016507115.tif 000013
2016507115.tif 000014
2016507115.tif 000015
2016507115.tif 000016