IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アクロニス・インターナショナル・ゲーエムベーハーの特許一覧

<>
  • 特開-マルウェア検出の反復メモリ分析 図1
  • 特開-マルウェア検出の反復メモリ分析 図2
  • 特開-マルウェア検出の反復メモリ分析 図3
  • 特開-マルウェア検出の反復メモリ分析 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023003363
(43)【公開日】2023-01-11
(54)【発明の名称】マルウェア検出の反復メモリ分析
(51)【国際特許分類】
   G06F 21/56 20130101AFI20221228BHJP
【FI】
G06F21/56
【審査請求】未請求
【請求項の数】19
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2021108601
(22)【出願日】2021-06-30
(31)【優先権主張番号】17/304,634
(32)【優先日】2021-06-23
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】313015247
【氏名又は名称】アクロニス・インターナショナル・ゲーエムベーハー
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】ウラジミール ストロゴフ
(72)【発明者】
【氏名】アレクセイ マラノフ
(72)【発明者】
【氏名】セルゲイ ウラセン
(72)【発明者】
【氏名】ヴィチェスラフ レフチェンコ
(72)【発明者】
【氏名】セルゲイ ベロウソフ
(72)【発明者】
【氏名】スタニスラフ プロタソフ
(57)【要約】      (修正有)
【課題】反復アンチマルウェアスキャン方法、システム及び記憶媒体を提供する。
【解決手段】反復アンチマルウェアスキャン方法は、対象とされるコンピュータシステム上で実行可能なファイルを実行する際に実行され、静的分析及び動的分析が組み合わせられた反復技術を含む。静的分析は、ファイルが特定の精度で悪意あるものとして分類可能なファイル属性のツリーを用いて行われる。静的分析によってファイルを前記特定の精度で分類できない場合、動的分析が反復実行される。動的分析では、ファイルコードの実行中にデータブロックを復号化する動作をインターセプトし、暗号化されたデータブロックを考慮してファイル属性のツリーを更新する。続いて、更新されたファイル属性のツリーに基づいてファイルの静的分析を実行する。ファイルが前記特定の精度で分類可能となるまで、インターセプトするステップおよび更新するステップを繰り返す。
【選択図】なし
【特許請求の範囲】
【請求項1】
コンピュータに実装され、プロセッサ上で実行される反復アンチマルウェアスキャン方法であって、
a.対象とされるコンピュータシステム上でファイルを実行する際に、ファイルのアンチマルウェアスキャンを実行し、
b.前記ファイルの静的分析を実行する工程であって、ファイルを特定の精度で悪意あるものとして分類可能なファイル属性のツリーを用いて動作する静的分析を実行し、
c.前記静的分析によって前記ファイルを前記特定の精度で分類できない場合、動的ファイル分析を反復実行し、
d.ファイルコードの実行中にデータブロックを復号化する動作をインターセプトし、
e.復号化された前記データブロックを考慮してファイル属性のツリーを更新し、
f.更新されたファイル属性のツリーに基づいて前記ファイルの静的分析を実行し、
g.前記ファイルが前記特定の精度で分類可能となるまで、前記d.およびe.を繰り返す、ことを含む反復アンチマルウェアスキャン方法。
【請求項2】
前記インターセプトするステップおよび前記更新するステップを3回以上繰り返すことをさらに含む請求項1に記載の方法。
【請求項3】
新しいまたは既存のメモリ内のデータブロックを復号化するステップをさらに含む請求項2に記載の方法。
【請求項4】
前記ファイルと、前記ファイルの実行後に修正された第二の信頼されていないファイルとを分析するステップをさらに含む請求項1に記載の方法。
【請求項5】
第二の信頼されていないファイルに追加されたファイルデータを分析した後、前記ファイルの実行を凍結するステップをさらに含む請求項3に記載の方法。
【請求項6】
前記インターセプトするステップおよび更新するステップを少なくとも3回繰り返すことをさらに含む請求項4に記載の方法。
【請求項7】
新しいまたは既存のメモリ内のデータブロックを復号化するステップをさらに含む請求項4に記載の方法。
【請求項8】
所定の領域を実行可能にし、前記所定の領域に実行を切り替える工程をさらに含む請求項3に記載の方法。
【請求項9】
潜在的に悪意のあるファイルに対して、動的および静的にアンチマルウェア検出を反復して行うシステムであって、
a.実行可能な分析部と、
b.ファイルコードの実行中にデータブロックを復号化する動作をインターセプトするように構成されたユーザモードフックアプリケーションと、
c.前記潜在的に悪意のあるファイルの静的分析によって収集された少なくとも1つのファイル属性を記憶するデータ構造と、
d.前記潜在的に悪意のあるファイルの動的分析から収集された少なくとも1つのファイル属性を記憶するデータ構造とを備えるシステム。
【請求項10】
前記潜在的に悪意のあるファイルのデータブロックを復号化するために割り当てられたメモリの新しいバッファをさらに備える請求項9に記載のシステム。
【請求項11】
前記潜在的に悪意のあるファイルのデータブロックを復号化するための既存のバッファをさらに備える請求項9に記載のシステム。
【請求項12】
前記潜在的に悪意のあるファイルのデータブロックの復号化するための既存のメモリをさらに備える請求項9に記載のシステム。
【請求項13】
前記潜在的に悪意のあるファイルの実行後に修正された第二の信頼されていないファイルを検出する、請求項9に記載のシステム。
【請求項14】
反復静的およびハイブリッドウイルススキャンを実行するためのプログラムコードを記憶するコンピュータ読み取り可能な記憶媒体であって、前記反復静的およびハイブリッドウイルススキャンは、
a.対象とされるコンピュータシステム上でファイルを実行する際に、ファイルのアンチマルウェアスキャンを実行するステップと、
b.前記ファイルの静的分析を実行する工程であって、ファイルを特定の精度で悪意あるものとして分類可能なファイル属性のツリーを用いて動作する静的分析を実行するステップと、
c.前記静的分析によって前記ファイルを前記特定の精度で分類できない場合、動的ファイル分析を反復実行するステップと、
d.ファイルコードの実行中にデータブロックを復号化する動作をインターセプトするステップと、
e.暗号化されたデータブロックを考慮してファイル属性のツリーを更新するステップと、
f.更新されたファイル属性のツリーに基づいて前記ファイルの静的分析を実行するステップと、
g.前記ファイルが前記特定の精度で分類可能となるまで、前記インターセプトするステップおよび更新するステップとを繰り返すステップとを含む、コンピュータ読み取り可能な記憶媒体。
【請求項15】
前記インターセプトするステップおよび更新するステップを少なくとも3回繰り返すことをさらに含む請求項14に記載のコンピュータ読み取り可能な記憶媒体。
【請求項16】
新しいまたは既存のメモリ内のデータブロックを復号化するステップをさらに含む請求項15に記載のコンピュータ読み取り可能な記憶媒体。
【請求項17】
前記ファイルと、前記ファイルの実行後に修正された第二の信頼されていないファイルとを分析するステップをさらに含む請求項16に記載のコンピュータ読み取り可能な記憶媒体。
【請求項18】
追加されたファイルデータを分析した後、前記ファイルの実行を凍結するステップをさらに含む請求項16に記載のコンピュータ読み取り可能な記憶媒体。
【請求項19】
前記ファイルと、前記ファイルの実行後に修正された第二の信頼されていないファイルとを分析するステップをさらに含む請求項17に記載のコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルウェアの静的および動的分析、ならびにマルウェアの検出を含むコンピュータセキュリティに関する。
【背景技術】
【0002】
コンピュータセキュリティにおいて、マルウェア検出戦略はマルウェア実行のどの段階に介入するかによって分類できる。つまり、前記戦略には、実行前のもの、実行時のもの、および実行後のものがある。実行前(「PE」)分析は多くの場合有用であるものの、暗号化、またはパッキングされた幅広いマルウェアサンプルの集合体に対して行うには困難であった。
【0003】
問題点の一つとして、そのような暗号化、またはパッキングされたサンプルのためにPE分析を行うという点において解決法が欠如していることが挙げられる。一般的な方法では、動作実行時方法(Behavioral Runtime methods)やイベント収集が使用される。このような場合、PE分析は十分に活用されず、検出率は改善されない。
【0004】
ここで「静的分析」とは、ソフトウェア構造に基づくプログラム解析技術を指す。従来の静的分析方法では、ポータブル実行可能ファイルをパースして逆アッセンブルし、証明書、ヘッダ、ライブラリ、インポート、名前、サイズ、および他の属性を含む属性ツリーを作成する。これらのツリーを用いて、実行可能ファイルが悪意あるものかどうかを分類する。しかし、マルウェアが暗号化されている場合、一般的な静的ファイル分析部では困難が生じる。前記暗号化によって、静的分析ではコードを効果的に分析することができない。
【0005】
静的分析が有効でない場合に、動的分析が代わりに使用されることがある。動的分析の目的は、信頼されていないファイルのテストであり、信頼されていないファイルを安全な環境で実行することにより、ファイル実行時にファイル本来の性質を明らかにすることである。従来の動的動作分析ツールの例としては、エミュレーション、サンドボックス、およびこれらに類似する方法が挙げられる。
【0006】
エミュレータはアプリケーションを深く解析することができるが、いくつかの制約がある。エミュレータでは、100%の精度で元のシステムをエミュレートすることができない。マルウェアには、実行時環境をテストすることができ、エミュレータが検出された場合には実行を停止できるものもある。さらに、エミュレータはシステムのリソースを使用し、分析にかなりの時間を要する。このことは周知であり、悪意のあるファイルには、実行時間およびエミュレーション時間を引き伸ばすためのダミーループを含むものもある。前記ループによって、悪意のあるコードが実行される前にエミュレータが分析を終了する。
【0007】
サンドボックスは、ファイル実行テストおよび分析に使用される隔離された安全な環境である。サンドボックスは、エミュレータと同様、対象とされるコンピュータシステムと正確には一致しない。そのため、潜在的に悪意のあるファイルをサンドボックス内で実行する場合と、対象とする環境内で実行する場合とでは異なることがある。また、サンドボックスは、リアルタイム環境で効率的に行うことができないリソース集約的なプロセスである。それでもなお、より軽量な静的分析方法に加えて、サンドボックスが使用されることもある。
【0008】
システム動作アナライザは、対象とされるコンピュータ上でのファイルの実行を制御する方法である。システム動作アナライザは、APIコール、スレッド、読取りおよび書込み動作、ならびにその他マルウェアの検出を支援すべての動作を追跡する。しかし、問題は、このような方法は軽量ではなく、システムに負荷をかけ、性能を低下させることである。
【発明の概要】
【0009】
従来技術に見られる問題を克服するために、静的および動的分析を組み合わせて、暗号化ファイルを含む潜在的に悪意のあるファイルを分析することができる。例えば、静的分析において、多くのデータブロックが暗号化されているので、ファイルが疑わしいという暫定的な結論へ至るために、ファイル本体のエントロピーを推定することができる。暫定的な判定に達した後、判定の精度を高めるために動的方法が使用される。動的方法では、信頼されていないファイルの実行動作を明らかにすることによって、それらの性質を明らかにする。例えば、ファイルが実行を開始した際にファイル自身のヘッダを上書きしたり、その性質を隠す他の属性を有する場合、この観察された動作はファイルが悪意のあるものであるという結論に寄与する。分類は機械学習技術に基づいて行うことができる。
【0010】
スレッド/プロセスの作成、ファイルマッピングなどの特別な制御フローポイントにおいて、アプリケーションに対する判定を再推定できるように様々なシステムレベルでのインターセプタが利用される。学習済みの機械学習PE分析モデルによって再推定された判定には、ディスク上のファイルからではなく、アプリケーションメモリから抽出されたデータが利用される。このような状況において、アプリケーションメモリには、復号化されたコードを実行する新たなコード領域が含まれる。より正確な結果を得るために、数回の反復が行われる。静的および動的分析の相乗効果を利用して、従来の方法よりも正確な判定を実現する方法もある。
【0011】
前記方法では、PE分析サービス、ドライバ、ファイルシステム、およびファイルシステムへのリクエストが採用されている。ドライバはユーザモードサービスと通信することによって、PEモデル評価を呼び出し、最新のPE分析判定を得る。ドライバは、ユーザモードフックを利用してコードフロー内の制御点を定義し、モデルを再推定することができる。
【0012】
解凍または復号化されたコードを含む新しいコード領域は、スタック分析部とプロセス仮想メモリAPIで動作するユーザモードフックを利用して検出される。検出された新しいコード領域は、モデルのデータセットに追加されて、モデルの学習、または新しい判定の計算に利用される。
【0013】
或いは、新しいコード領域は、ポータブル実行可能(Portable Executable)未初期化データセグメント内に収集される。未初期化データセグメントは、「BSS」セグメントとも称され、実際のディスク空間を必要としない未初期化変数のプレースホルダとして機能する。
【0014】
ドライバ及びユーザモードフックの同様の組み合わせが、パッキングまたは暗号化されたマルウェアサンプルのセットを用いてPE分析モデルの学習に利用される。最新のPE分析判定を、エンドポイントセキュリティ製品で利用してマルウェア検出の改良を実現する。
【0015】
本発明による一実施の形態において、ファイルのアンチマルウェアスキャンは、対象とされるコンピュータシステム上で実行可能ファイルを実行する際に実行される。ファイルの静的分析は、ファイルが特定の精度で悪意あるものとして分類可能なファイル属性のツリーを用いて行われる。前記静的分析によって前記ファイルを前記特定の精度で分類できない場合、動的ファイル分析が反復実行される。前記動的分析では、ファイルコードの実行中にデータブロックを復号化する動作をインターセプトし、暗号化されたデータブロックを考慮してファイル属性のツリーを更新する。続いて、前記更新されたファイル属性のツリーに基づいて前記ファイルの静的分析を実行する。前記ファイルが前記特定の精度で分類可能となるまで、前記インターセプトするステップおよび更新するステップを繰り返す。
【0016】
一実施の形態において、データブロックは、アプリケーションに割り当てられた既存のメモリ内、割り当てられたメモリ内の新しいバッファ内、またはアプリケーションの既存のバッファ内で復号化される。バッファは、一時的な記憶領域であり、通常はメモリ内のブロックであり、アイテムが入力デバイスからまたは出力デバイスに対して転送または変更されるのを待機する間、または他のメモリブロックから処理用に転送または変更されるのを待機する間配置される。
【0017】
一実施の形態において、データブロックの復号化をインターセプトするステップおよびファイル属性ツリーを更新するステップは、3回より多く繰り返され、5回より多く繰り返され、または10回より多く繰り返される。
【0018】
一実施の形態において、ファイルの分析は、実行後に当該ファイルから修正された第二の信頼されていないファイルに依存する。前記第二の信頼されていないファイルは、第一のファイルを実行した際に、第一のファイルのヘッダ、データブロック、またはファイル本体が変更された場合、または新しいファイルが作成された場合に結果として生じるものである。
【0019】
一実施の形態において、ファイルの実行は、追加されたファイルデータを分析した後、凍結される。
一実施の形態において、バッファの所定の領域が実行可能にされ、実行が当該所定の領域に切り替えられる。
【図面の簡単な説明】
【0020】
図1】PE分析を実装するためのシステムの概要を示す図である。
図2】未知のオブジェクトに対して反復静的-動的分析を実行する工程を示す図である。
図3】機械学習において未知のオブジェクトに対する反復静的-動的分析を実行する工程を示す図である。
図4】実行環境において実行される反復静的-動的分析の一実施の形態の詳細を示す図である。
【発明を実施するための形態】
【0021】
反復マルウェア分析の実装は、検出に対する障害を克服するために静的および動的技術を使用する。これらの障害は、アンチマルウェアシステムが使用する検出方法を熟知するマルウェアの作成者によって当該マルウェアに埋め込まれる。
【0022】
反復マルウェア分析は、静的および動的技術を選択的に使用して検出率を改善し、それによって高度なマルウェアにおいて見出される抗検出特性を克服するように設計される。例えば、信頼されていないファイル内のメインの悪意のあるコードが実行される際に検出を回避する方法が含まれている場合がある。マルウェアが、対象とする環境と一致しない仮想化された実行時環境を検出できる場合、エミュレーションおよびサンドボックスなどの動的な方法を回避することができる。マルウェアによって使用される別の検出回避方法として難読化がある。難読化はコードを取得し、当該コードを従来の手段では読み取り不能にする。また、検出を遅延させ、コードを逆エンジニアリングの影響を受けにくいものにする。パッキングは、パッカーを利用するマルウェアによって利用される一種の難読化である。パッカーは、データを圧縮または暗号化することによってコードの形式を修正するツールである。
【0023】
暗号化されたまたはパッキングされたファイルには、従来技術のマルウェア分析プロトコルから既知の従来のものとは異なるものが求められる。暗号化されたマルウェアが実行される際には、まず疑わしい悪意のあるファイルが読み込まれて実行される。一般的には、本体が暗号化されているかパッキングされるので、ファイルの性質を十分な精度で判定することができない。これを克服するため、データブロックを、割り当てられたメモリの新しいバッファ内で復号化する。或いは、既存のバッファ内でデータブロックを復号化して、所定の領域を実行可能とし、前記所定の領域に実行を切り替えるようにしてもよい。このサイクルは、悪意のあるコードの実行開始前に何度も反復することができる。したがって、復号化は、暗号化されたデータブロックから読み出され、既存のアプリケーションメモリまたは新しいバッファに書き込まれるデータブロックによって段階的に進行する。
【0024】
或いは、未初期化データセグメント(BSS)が復号化に使用される。パッキングは、実行可能ファイルを対象とすることが多い。パッキングプロセスは、新しいヘッダを生成し、元ファイルを変換することができる。変換後の元ファイルは新しいファイルにコピーされる。新しいファイルには、スタブが追加される。ファイルが実行可能ファイルである場合、スタブは、実行中に変換を逆転させる。
【0025】
Microsoft Windows(登録商標)プログラムファイルはポータブル実行可能形式が使用されている。この形式はWindows NT3.1で初めて導入され、.NETおよび64ビットへの対応を含む他のバイナリ形式に拡張された。前記ポータブル実行可能形式は、Windows OSにおけるEXEおよびDLLファイルの標準バイナリ形式である。Linux(登録商標) Executable 及び Linkable Format(「ELF」)は、Linux環境における実行可能ファイルの同様の形式である。以下の説明では、例としてWindows形式が使用されるが、以下に説明する技術は、構造的に類似である任意のファイル形式で利用可能である。
【0026】
プロセス中空化(Process hollowing)は、ライブプロセスのアドレス空間内でコードを実行する方法である。一般的には、一時停止状態のプロセスを作成し、次いでメモリをアンマッピングまたは「中空化」することによって実行される。このプロセス中空化は、未初期化データセグメント(BSS)内で行うことができる。検出は、含まれているディレクトリにアクセスできるように実行ビットを設定することによって達成できる。
【0027】
ポータブル実行可能ヘッダの上書きは、検出を回避するために実行時にマルウェアによって使用される技術である。例えば、オリジナルファイルには、ヘッダと、コードセクションと、.dataまたは.rsrcなどの他のセクションとが含まれる。パッキングプロセスにおいて、新しいヘッダを有する完全に新しい実行可能なファイルを生成することができる。元ファイルは、圧縮、暗号化、またはこれらの組合せによって変換することができる。ロードされる際に、パッキングされたファイルが開始し、仮想メモリにマッピングされる。解凍スタブは、必要に応じて圧縮または暗号化動作を逆転させる際に呼び出される。次に、元ファイルがメモリ内に復元され、新たなヘッダが得られる。ファイルヘッダが実行時に変更されることは、対象のファイルがパッキングされたことの証拠となる。
【0028】
静的および動的分析技術は、システム全体の性能に異なる影響を及ぼす。例えば、静的PE分析部は、メモリにロードされたポータブル実行可能ファイル(PEファイル)のデータを復号化したときに、高い検出率を達成すると同時に、同じファイルの動的分析よりも迅速かつ効率的に、PEファイルを分類することができる。
【0029】
図1は、PE分析を実装するためのシステム100の概要を示す図である。
アンチマルウェアシステム100は、潜在的な悪意のあるアプリケーション104を分析するためのPE分析部ホスティングサービス102を含んでいる。PE分析サービス102は、反復を0としてアクセス時スキャン106を生成し、反復1回(108)からN回(110)まで継続する。これらの要素およびユーザモードUMフック部112は、ユーザモード114に配置される。
【0030】
カーネルモード116は、UMフック部112からの入出力I/Oコマンドを動作させるカーネルドライバ122と、UMフック部112の結果122とPE分析サービス102との間のリンク120とを含む。リンク120は、結果124をPE分析部102に渡す。PE分析サービス102からのリクエスト126は、PE分析用メモリからのプロセス領域に対するリクエストが含まれている。ユーザモードは、アプリケーションがユーザモードで動作し、コアオペレーティングシステムコンポーネントがカーネルモードで動作するという点でカーネルモードと区別される。
【0031】
図2は、未知のファイルに対する反復静的-動的分析を実行するための方法200を示す図である。
このプロセスが開始すると、ファイル実行の開始をインターセプトし(ステップ202)、次いでファイル属性を取得する(ステップ204)。取得した属性に基づいて、静的分析が実行される(ステップ206)。静的分析の暫定的な結果は、セキュリティランキング208および既知のファイルのコレクションに対する機械学習アルゴリズムを使用した属性ごとのファイル分類210を生成し、疑わしい証明書、ライブラリ、コード構造、およびハッシュサムのブラックリストにおける既知のマルウェアとファイル属性の照合212を可能にする。
【0032】
静的分析の判定214として、ランキング208、分類210、および照合212の結果が得られる。この判定は、所定の信頼レベル(または特定の精度)に従って対象のファイルを分類には、充分な精度がある場合もあり、そうでない場合もある。信頼レベルは、セキュリティポリシーおよびファイルのクラスに依存してもよい。例えば、高レベルのセキュリティでは、タイプIエラーの1%以下の信頼レベルに対応すべきであり、中程度のレベルの安全は、タイプIIエラーの1%以下の信頼レベルに対応すべきである。ステップ216において、特定の精度を有するマルウェアとして分類可能と判定された場合、ファイルの実行が終了させられ(ステップ218)、悪意のあるファイルの検出が記録される(ステップ220)。判定214によって分類可能とされない場合、判定214に従ってさらに検証が必要であるか否かについて判定が行われる(ステップ222)。一方分類可能とされた場合、ファイル分析が停止され、ファイルが実行用に解放される(ステップ224)。
【0033】
セキュリティランキング208、ファイル分類210、または疑わしい証明書、ライブラリ、コード構造、およびハッシュサムのブラックリスにおける既知のマルウェアとのファイル属性の照合212によって、特定の精度でマルウェアを識別することができない場合、さらなる検証が必要となる。ファイルを分類するためのさらなる検証が必要な場合、例えば、信頼レベルが予め定義されたレベルよりも低い場合、または他のマルウェア検出エンジンによって分類について異なる判定が出される場合、ファイルの一部を実行している状態で、ステップ226から反復プロセスが行われる。フック動作を利用して、ファイル属性がさらに識別される(ステップ228)。フック動作は、ソフトウェア構成要素間で行われる関数の呼び出し、メッセージまたはイベントをインターセプトすることによって、実行中のアプリケーションを変更または拡張する。この目的に使用されるコードは、一般にフックとして知られている。
【0034】
ファイルの実行はステップ230で停止され、ステップ206で生成された静的分析に基づいて以前に収集されたPEファイル属性が更新される(ステップ232)。反復マルウェア分析では、実行を停止するため、単一ファイルの実行が、対象のファイルに関するコード全体を完全に実行することなく、N回までテストすることができる。
【0035】
図3は、機械学習において未知のファイルの反復静的-動的分析を実行するための方法300を示す図である。
このプロセスが開始すると、新たにPEファイル分析が開始される(ステップ302)。PEファイル属性が受信され(ステップ304)、評価される(ステップ306)。例えば、属性セットが、予め定義された信頼レベルよりも高い信頼レベルでのファイル分類を可能にする、または、属性セットが属性の最小限の変数セットからなる場合、当該属性セットが対象のファイルを識別するようにシステムに学習させるのに十分であるかどうかが判定される。十分ではないと判定された場合、PEファイルが安全なコンピューティング環境において実行される(ステップ308)。安全なコンピューティング環境の例としては、エミュレータ、サンドボックス、専用テストマシン、任意のネットワークから切断されたマシン、またはマルウェアが伝播する能力が制限される他の環境が挙げられる。フック動作を行い、ファイル属性がさらに識別される(ステップ310)。これらのさらなる属性に基づいて、属性の元セットが更新される(ステップ312)。反復プロセスは、工程306における評価が肯定的な結果を生成するまで継続する。肯定的な結果が得られると、収集されたファイル(PEファイルベースの新たに収集された属性を含む)を使って、機械学習ファイル分析部を学習させる(ステップ314)。収集されたファイルおよび属性に基づいて、検出ルールセットが更新される(ステップ316)。
【0036】
図4は、実行環境402において実行される反復静的-動的分析400の一実施の形態の詳細を示す図である。この環境には、ユーザモード404およびカーネルモード406で動作するシステムオブジェクト、つまりユーザモード404で動作するPE分析部408およびアプリケーション410と、カーネルセキュリティドライバ434が含まれる。ユーザモードは、アプリケーションがユーザモードで動作し、コアオペレーティングシステムコンポーネントがカーネルモードで動作するという点でカーネルモードと区別される。アプリケーション410は、暗号化されたデータブロック414を含むPEファイル412から実行される。アプリケーション410が実行されると、コード416、ライブラリ418、およびデータ420が露呈する。ブロックの復号化は、バッファ0(422)内で反復的に行われ、復号化ブロック426が実行され、バッファN(428)および復号化されたブロック430まで移動し続ける。或いは、ブロックの復号化は、データブロック420内で行うことができる。
【0037】
フック部432は、カーネルセキュリティドライバ434の制御下でユーザモード404で動作する。他の実施の形態同様、フック部432は、ソフトウェア構成要素間で行われる関数の呼び出し、メッセージまたはイベントをインターセプトすることによって、実行中のアプリケーションを変更または拡張し、これらをカーネルセキュリティドライバ434に送信する。カーネルセキュリティドライバ434は、コマンド、メッセージまたはイベントをPE分析部408に送信する。
【0038】
初期PEファイル属性436は、PE分析部408によってN反復収集PEファイル属性440の工程を通じて、最初の反復収集PEファイル属性438と共に収集される。ファイル属性マルウェア分析部442は、反復コントローラ444からの指示に基づき、初期PEファイル属性436および反復的に収集されたファイル属性438、440を評価する。
【0039】
マルウェアには、ブロック復号化用のバッファを作成しないものもある。そのような場合、データは、既存のメモリページにおいて復号化できる。例えば、コードブロック416及びデータブロック420は復号化のために使用される。
【0040】
解凍されたファイルにはメモリ内で元ファイルを復元するものもあるが、マルウェアには、元ファイルを異なるメモリアドレスに復元するものもある。このような場合、第二のファイルに関連するアクティビティは、第一のファイルからの修正に焦点を当てて、開始直後に分析される。
【0041】
或いは別の技術では、アプリケーションバッファに追加で書き込まれたデータ(データブロック、ヘッダ、コードブロックまたはデータ等)が取得された後、ファイルのさらなる実行を凍結する。例えば、プロセスの全てのスレッドを凍結することができる。
【0042】
動的方法を使用したPEファイル属性の反復収集は、対象のファイルに関する結論を得るのに十分なファイル属性のツリーが作成されるまで継続される。
上述の反復技術は、ユーザマシンまたはネットワークが、検出を回避する能力、特に静的分析の信頼性を損なう、または不完全にする方法で検出を回避する能力を有するマルウェアに遭遇する可能性が高いコンピューティング環境に適用可能である。
図1
図2
図3
図4
【外国語明細書】