Twitterに書ききれないこと

イベントや技術的なことを記したい・・・

A Survey on Heuristic Malware Detection Techniques

情報セキュリティ系論文紹介 Advent Calendar 2015の記事を書くつもりが・・・12月25日どころか2015年が終わってしまった・・・ まずは3月になってしまったことを謝罪します・・・

ということですが,Information and Knowledge Technology (IKT), 2013 5th Conference で発表されたA Survey on Heuristic Malware Detection Techniquesの要約について書きます.

IEEE Xplore Abstract - A survey on heuristic malware detection techniques

Abstract

マルウェアの検出に使用される主な手法はシグネチャーベース、ビヘイビアベース,ヒューリスティックベースの3つある. シグネチャベースのマルウェア検出は,市販のアンチウイルスによって使用される最も一般的な方法である. しかし,マルウェアが完全に解析されている場合にのみ使用することができる. ビヘイビアベースのマルウェアの検出は,シグネチャベースの手法の欠点をカバーするために導入された. しかし,いくつかの欠点のため、ヒューリスティックベースの手法が導入されている. 本稿では、NGrams,APIコール,オペコードなど,これらの手法で使用されるヒューリスティックマルウェア検出方法と簡単な概要さまざまな機能について議論し,それぞれの長所と短所について説明する.

INTRODUCTION

マルウェア(悪意のあるソフトウェアの略)は.通常のコンピュータシステムへの不正アクセスを機密情報を収集したりすることによって,コンピュータシステムの通常の動作を破壊し, 主に嫌がらせすることを目的とするソフトウェアとして考えられている*1

マルウェアの識別は,マルウェアの被害が大きくなっている今日,重要である. マルウェアは,ウイルス、ワーム、トロイの木馬スパイウェアアドウェアルートキットなどのいくつかのカテゴリに分けることができる *2

ウイルスは,他のプログラムに自身をコピーすることができます悪意のあるコードである. 実際にはそれだけでは何もできず,感染したキャリアプログラムで実行する必要がある. ウイルスは通常、ユーザーの関与で実行される.

ワームは,独立したプログラムであり,実行のために他のプログラムを必要としない. 通常,コンピュータネットワークを介して拡散し,悪意のある目的のために,システムの弱点を使用する.ワームは,実行および増殖のためにいかなるユーザの操作を必要としない.

トロイの木馬は,正当な有用なプログラムのように表示されるマルウェアである. しかし実際には,コンピュータのセキュリティを侵害し,多くの被害を引き起こす可能性がある.

スパイウェアはひそかに,パソコンにインストールされるコンピュータプログラムでありる. ユーザーの許可なしにコンピュータで記録,操作を行う. ルートキットは,ハッカーが悪質なことを行うことができるように,オペレーティング・システムの構成要素へ設定するプログラムである. ときには,オペレーティングシステムカーネルに影響を与える.

バックドアは,マルウェア変種である. これは、ユーザーの許可なしにリモートアクセスのため,感染したコンピュータを準備する.被害者のコンピュータにバックドアを開くことでこれを実現する. (すなわち、ポートを開く)

シグネチャベースのマルウェアの検出手法では,疑わしいファイルは利用可能なシグネチャのリストと照合することによって分析する. このリストと比較し,一致した場合にテスト対象のファイルは,悪意のある実行可能ファイルとして分類される.

マルウェア開発者は,シグネチャベースの手法による検出を回避するために,隠蔽工作を行なう. マルウェアは,各送信のごとに変更される.

したがって,シグネチャを抽出し,マルウェアの新しいバージョンを検出することは,時間と労力が必要である. 本研究では,マルウェアが自分自身を隠した場合に,マルウェアの検出のため最も効果的なヒューリスティックな方法を導入することに焦点を当て,手法を検討する.

2章では,簡単にマルウェアの検出方法の概要を議論する. 3章はマルウェア隠蔽工作を紹介する. 4章では,ヒューリスティックベースのマルウェア検出で行った研究の概要を説明しています。 5章で比較表を示し、最後に6章で,調査のまとめについて述べる.

MALWARE DETECTION METHODS

マルウェア検出方法は基本的に異なる観点から、異なるカテゴリに分類されている. 本論文では,図1に示したマルウェアの検出方法のための3つのカテゴリを想定する.

f:id:pinksawtooth:20160111034220p:plain

A . Signature-based methods

今日,パターンマッチングがマルウェア検出における最も一般的な方法であり,シグネチャベースの検出は,その領域の中で最も一般的な方法である*3シグネチャは,ファイルごとにユニークな特徴,実行可能ファイルの指紋のようなものである. シグネチャベースの手法は,マルウェアを識別するために,さまざまなマルウェアから抽出されたパターンを使用し,他の手法よりも高速で効率的である.これらのシグネチャは,マルウェアが一意に定まるように慎重に抽出される. そのため,このシグネチャを使用した検出手法の誤差率は小さい. この小さなエラーレートが,一般的な商用アンチウイルスがこの手法を最も使用する主な理由である.

この手法は,未知のマルウェア亜種を検出することができない.また,ユニークなシグネチャを抽出するために,人材,時間,高い費用が必要である. これがこの手法の主な欠点である. またマルウェアは感染毎にコードを変異させる.このような,マルウェアポリモーフィックメタモーフィックも別の欠点となる.

これらの課題に取り組むため,研究学会は完全に新しいマルウェアの検出・ファミリーを提案する.

B . Behavior-based methods

ビヘイビアベースのマルウェア検出技術は,それが悪意のあるものかどうかを結論付けるため,プログラムの挙動を観察する*4. ビヘイビアベースの技術は,実行可能ファイルが何をするか観察しているため,シグネチャベースの手法の欠点の影響を受けにくい. 簡単に言うと,ビヘイビアベースの検出プログラムは,マルウェアが何を言うかではなく,何をするかを検査することにより,マルウェアであるかどうかを結論付ける. これらの手法では、同じ挙動をするプログラムが収集される.したがって,一つのビヘイビアシグネチャは,マルウェアの様々なサンプルを識別することができる. これらの検出メカニズムは,マルウェアが常に同様の方法でシステムのリソースとサービスを使用するので,新たな変異体を生成し続けるマルウェアを検出するのに役立つ. 動作ベースの検出は、基本的には次のコンポーネントで構成されています*5

  • Data Collector: このコンポーネントは,実行に関する動的/静的な情報を収集する.

  • Interpreter: このコンポーネントは,データ収集モジュールにより収集された生の情報を中間表現に変換します。

  • Matcher: これは,ビヘイビアのシグネチャでこの表現を比較するために使用される.

ビヘイビアベースの検出手法の例として,シマンテック社が特許を取得した,ヒストグラムベースの悪質なコードの検出技術がある*4.

ビヘイビアベースのマルウェア検出技術の主な利点は,シグネチャベースの技術が検出することができない未知のポリモーフィックマルウェア亜種を検出する点である. 一方,偽陽性率の非可用性(FOR)とスキャン時間が長くなることが欠点となる*6

CONCEALMENT STRATEGIES

前のセクションでは,我々は簡単にマルウェアディテクタによって使用されるマルウェアの検出の方策について述べた. マルウェア開発者は,マルウェアが検出されようとしていることを把握すると,様々な隠蔽技術を適用することにより,アンチマルウェア戦略を回避しようとする.このセクションでは最も知っている隠蔽戦略のいくつかを紹介する.

  • Obfuscation: この技術は,マルウェアを検出するためのシグネチャベースの検出方法を防ぐアクションを追加する.これらのアクションとは,ガベージコマンド、不要なジャンプなどを追加することである.

  • Code encryption: これらのマルウェアは,自身またはその悪意のある活動を暗号化する防御メカニズムを使用する.暗号化されたマルウェアは,復号化アルゴリズム,暗号化アルゴリズム,暗号化キーと暗号化された悪意のあるコードから構成されている.マルウェアが実行されたとき, 鍵と復号アルゴリズムは,その悪質な部分を復号化するために使用される.キーと暗号化アルゴリズムを使用してマルウェア自身をコピーし,新しいキーを生成する.新しく暗号化されたバージョンのマルウェアが生成される.このバージョンでは、暗号化アルゴリズムと新しいキーが含まれる.暗号化キーと暗号化されたコードは,常に変化するが,固定された復号化アルゴリズムは検出することができる.

  • Oligomorphic strategy: これらのマルウェアは,自分自身を保護するための防御メカニズムとして,この戦略を使用し暗号化する.そして,限られた時間のみ暗号化アルゴリズムを変更することができる. 例,有限個の異なる小さな復号化ループを持つウイルス.

  • Polymorphic strategy:このタイプのマルウェアは,通常,暗号化アルゴリズムによって,マルウェア自体を暗号化する.任意の感染では,異なる復号鍵が使用される.また,ポリモーフィックマルウェアは検出を回避するために,暗号化アルゴリズムを無制限に使用することができる.実行ごとに,復号化コードの一部が変更される.マルウェアのタイプに応じて,マルウェアによって実行される悪意あるアクション,または他のアクションは暗号化処理のもとに配置することができる.通常,ランダムな暗号化アルゴリズムを生成する変換エンジンは,暗号化されたマルウェアに埋め込まれている.エンジンやマルウェアは,生成アルゴリズムを使用して暗号化され,新たな解読キーはそれらとつながりがある.

  • Metamorphic strategy: メタモーフィックマルウェアは,マルウェアの中で最も複雑なタイプである.新しいインスタンスはオリジナルのものへの類似性を持っていないように,マルウェア自身を変更する. マルウェアは,各送信毎に任意の符号化エンジンを持たず、マルウェアソースコードを自動変更する.

マルウェアソースコードの外観を変更する,多くの異なる方法がある*7. 以下に例を示す.

  • フォーマット交替は、ソースコードに空白とコメントを追加または削除を行なう.この方法は簡単で,他の方法の中で最低の効果にもかかわらず,時々検出アルゴリズムに誤解を与えることができる.

  • 変数の名前の変更は,継続的にプログラムの正しさに違反せず,変数識別子名を変更する.変数名の変更は,人間の混乱がするが自動検出技術にはほとんど全く影響を及ぼさない.

  • プログラムのエラーが発生しないif文の並べ替えは,プログラム内のステートメントの順序を並べ替えることができる.

  • ステートメントの置き換えは他のステートメントとのいくつかのステートメントを置き換えることができる.これは,アプリケーションロジックが間違っていない場合にも同様の機能を持つ.この方法は、以前のものよりも複雑である.

  • コントロールの置き換えは,同様に動作する他の制御機能を有するいくつかの制御構造の機能を変更する.例えば,forループとwhileループは交換可能である.

  • ジャンクコード挿入は、診断を欺くためのプログラムにメインプログラムロジックを破壊しない重要でないコードを挿入する.つまり,ジャンクコードを実行しても,ソースコードのロジックには影響を与えない*1.

*スパゲッティコードは 「goto文」のように無条件ジャンプすることによってコードを複雑にする.

  • サブルーチンインライン化およびアウトライン化は,その逆のサブルーチンコールとしてサブルーチンのコードを置き換える技術で ある.コードアウトライン化は,サブルーチンコールとサブルーチンコードを置き換える技術である.コードのインライン化は逆の操作で,サブルーチン呼び出しのオーバーヘッドを回避するために使用される技術である.これらの変換は元のコードを保持するが,異なる方法でそれを扱う.

マルウェア作成者によって使用される新しい防御的な戦略に関して,いくつかのケースではシグネチャベースとビヘイビアベースの手法では,保護されたマルウェアを検出することができない.だから,効率的にこのマルウェアを検出できる新規手法が絶対的に必要とされる.

HEURISTIC METHODS

我々が述べたように,シグネチャベースと行動ベースのマルウェアの検出手法には,いくつかの欠点がある. したがって,ヒューリスティックマルウェアの検出手法は,これらの欠点を克服するために提案されている. ヒューリスティックマルウェアの検出手法は,実行可能ファイルの動作を学ぶために,データマイニング機械学習技術を使用している.例えば,最初の試みとしてNaïve BayesとMulti Naïve BayesとSchultzらによって提案されている手法*8で採用された.この手法では,マルウェアや良性のファイルを分類する.

これらML技術は,分類のためにいくつかの特徴を必要とする.図2にマルウェアの検出のために調査するいくつかの特徴を示す. f:id:pinksawtooth:20160208203932p:plain

A . API/System calls ほとんどすべてのプログラムは, アプリケーション・プログラミング・インターフェース(API)を使用してオペレーティングシステムへの要求を送信するために呼び出す*9APIの呼び出しシーケンスは、マルウェアのようなコードの一部の挙動を反映した最も魅力的な方法の一つである.

ホフメーアらの手法は,すべてのAPIシーケンスをマルウェアの特徴としてみなした. これらは,システムコールシーケンスに基づく異常検知手法を導入した. 通常の動作プロファイルは,システムコールの短い配列を用いて作製する. ハミング距離は,シーケンスを一致させるために使用した. また,しきい値は異常を決定するために使用される. 典型的には,大きなハミング距離値が異常として報告される. *10

その後、広範な研究は、API呼び出しを使用して行われた*11 *12 *13

2007年には,ポータブル実行可能(PE)ファイルによって呼び出されるWindows APIの実行配列の分析に基づいて,イェらはアソシエーション(OOA)マイニング基づく分類オブジェクト指向を用いたインテリジェントなマルウェア検知システム(IMDS)を提案した*14. 分類のための効率的なOOAルールを生成するために,OOAファースト-FP成長アルゴリズムが適応される. IMDSは,マルウェア検出における優れた性能にもかかわらず,2つの主な問題点がある. 1.分類器を構築するために生成されたルールの大規模なセットを処理する. 2.新しいファイルのサンプルを分類するために効果的なルールを見つける.

この2つの問題を克服するために、イエらは連想分類の後処理技術を使用する*15. 最初に彼らはカイ二乗テストと些細なルール剪定を適用した. カイ二乗対策ルールのランキングメカニズムと悲観的な誤差推定に基づいてデータベースのカバレッジを追求した*16. 彼らは,最終的には、最高の最初のルールを選択して予測を行った.彼らは,既存のIMDSシステムにCID SPF[15]を取り入れ,新しいシステムCIMDSと呼ばれている.これは,マルウェアの検出に連想分類のポスト処理技術を使用しての最初の試みであった.

チョンとリーは、コードグラフと呼ばれるトポロジカル・グラフを構築するために、両方の悪意のあると良性の実行可能ファイルのためのシステムコール・シーケンスを使用していました*17

すべてのバイナリプログラムでは、このグラフが抽出され、悪意のあるおよび良性プログラムのコードグラフと比較されます。

この比較に基づいて、プログラムは、マルウェアまたは良性として分類されます。

残念ながら、このグラフには大きすぎます。

大きいグラフの欠点を克服するために、リーらは,128グループへのAPIコールを分類し、そのようにコードグラフが減少しました*18

イェらは不均衡な膨大なグレーリストからマルウェアを検出するための,PEファイルのAPIコールの分析に基づく解釈分類器を提案した*19. 彼らのケーススタディは8,000,000のマルウェア、良性ファイル8,000,000、キングソフト株式会社のAN6ウイルス対策ラボから収集したグレーリスト100000のサンプルに基づいている. 彼らは,ルールの剪定やルールの並べ替えなど,いくつかの異なるポスト処理技術に基づいて効果的な連想分類器を構築した. そして、不均衡データセットへの分類器は敏感であったため,その性能を向上させるために,階層型連想分類(HAC)を開発した.

B . OpCode オペコード(命令用ショート)は実行される操作を識別する機械語命令の下位区分である. より具体的には、プログラムは以下のように定義される. 順序付けられたアセンブリの一連の命令. 命令は、命令コードで構成ペアとオペランドまたはオペランドのリストである.

オペコード上で最も重要な研究がBilarによって行われてきた*20. 彼は,マルウェアの検出の特徴として,単一のオペコードを使用することで,能力を示した. 統計的に,単一のオペコードを用いた解析の能力を分析し,実行ファイルの悪意を決定するための高い信頼性を実証し,オペコードが実行可能ファイルの解析のための強力な表現として使用することができることを証明した.

サントスらは,オペコードに基づいてマルウェアの検出の先駆者である. 彼らは,オペコード配列に基づくマルウェア検出技術の様々なタイプを発表した. 例として,彼らの最初の研究では,彼らが実行可能ファイルの表現を構築するために,オペコードシーケンスの出現頻度を用いて,難読化された変異体マルウェアを検出することに焦点を当てたアプローチを提示した*21. これを行うには,実行可能ファイルを逆アセンブルして彼らが生成したアセンブリファイルを使用する. オペコードのリストが含まれているオペコードプロファイルを構築する.その後,相互情報を使用して、両方のデータセット(すなわち、マルウェアや良性のデータセット)内のそれらのそれぞれの出現頻度に基づいて,各オペコードの関連性を計算する*22. 最後に,彼らは実行可能ファイルから適切な特徴ベクトル抽出を行うために重み付け用語頻度(WTF)を使用した*23. 彼らは,難読化されたマルウェアの亜種を検出するために,この特徴ベクトルを使用し,この目的のために,2つの特徴ベクトル間のコサイン類似度を算出した(すなわち、新しいインスタンスの特徴ベクトルとマルウェア変種ベクターが備っている).

その後、次の研究でサントスらは,オペコードシーケンスと抽出された特徴を埋め込むことによって,訓練されたいくつかの機械学習分類に基づく,新たな特徴抽出法を提示した. 私たちが知っているように,機械学習に基づいた分類器は,マルウェアや良性ファイルを検出しようとする概念クラスのそれぞれについて,サンプルの多数を必要とし,現実の世界でラベル付されたこのデータを得ることは極めて困難である. だから,サントスらは彼らの次の研究ではこの制限を解消するに,集団分類*24,単一のクラス学習*25,そして、セミ教師あり学習*26などいくつかの方法を提案した.

Runwalらは,オペコードに基づく新しいアプローチを提案し,簡単なグラフの類似性測定に基づいて,未知・変異マルウェアファミリを検出するための手法を使用する*27. 彼らは,両方のファイルタイプから(すなわち、マルウェアや良性ファイル)オペコードを抽出し,各ペアのオペコードの数は登場回数をカウントした. そして,その数に基づいてオペコードのグラフを作成し,その後クラスに分類される実行可能ファイルと,両方のファイルタイプと,最終的にファイルから得られたグラフの類似度を計算することにより,新しい実行可能ファイルの悪意を予測する.

シャブタイらは,オペコードパターンに分類技術を適用することによって,未知の悪性コードを検出することを試みた*28. 彼らは、Windowsオペレーティングシステム用のマルウェアと良性ファイルの実行可能ファイルのデータセットを作成した. 実行ファイルをディスアセンブルした後、彼らは正規化された用語頻度(TF)とTF Inverse Document Frequency (TF-IDF) を計算した. 最後に,提案された特徴選択法を評価するなどサポートベクターマシンSVM),ロジスティックリグレッション(LR),人工ニューラルネットワーク(ANN)など,いくつかの古典的な分類技術を使用した.

C . N-Grams N-グラムは、Nの長さより大きな文字列のすべてのサブストリングである*29. たとえば,文字列「VIRUS」はいくつかの3グラム:"VIR"、"IRU"、"RUS"等々に分割することができる. 過去10年間,いくつかの研究がこれによるバイナリコードの内容に基づいた,未知のマルウェアの検出を行っている.

シュルツら[8]は,独自のバイナリコードに基づいて,さまざまなマルウェアを検出するためのML技術を適用することの概念を導入した最初の人であった. PEセクションからマイニングする方法, 実行可能ファイルにエンコードされた,表現プレーンテキスト文字列を抽出する手法,そして、バイトシーケンスを用いた手法の三つの異なる特徴抽出方法がある.

Tesauroらは,マルウェア検出ドメインのための特徴としてNグラムを使用しようとする最初の人であった*30.  彼らは,人工ニューラルネットワーク(ANN)を使用してブートセクタウイルスを検出するために,nグラムを使用していた.ブートセクタウイルスは,DOSブートセクタまたはマスターブートレコードMBR)に感染マルウェア変種である. システムが感染した場合,通常MBRを台無しにされ,コンピュータの起動順序が変更される. N-グラムは,マルウェアおよび良性ファイルの実行可能ファイルの中で最も頻度の高いセクションから選択された. 彼らはそれぞれのマルウェアが既存のnグラムのセットから少なくとも4個のNグラムで構成されなければならない,特定の機能縮小アルゴリズムを使用していた.

Tesauroらの次の研究では,ANNに基づいて複数の分類器を構築するためにNグラムを使用し,最終的な結果を達成するために,特定の投票方式を使用する*31. この研究では,単純な閾値をnグラムの数を減らすために使用した. アブーら[29]は、一般的なN-gram方式やマルウェアの検出のためのK-Nearest-Neighbor(KNN)分類器を使用するフレームワークを提示した.両方のクラス(すなわち、悪意のあるおよび良性)の委譲プロファイルが構築された. 新しいインスタンスは,両方のクラスのプロファイルと一致した最も類似したものに割り当てられてた.

コトラーとマルーフらが使用するバイトのNグラムの表現は、未知のマルウェアを検出する*32 N-グラムの特徴のベクトルがバイナリだが,ファイル内の特徴の出席または非出席を提示する*33.. 彼らの以前の研究の延長では,機能に基づいていくつかのファミリーにマルウェアを分類した. それぞれのペイロードでの対象の日付に基づいて悪意のあるコードを検出する.

カイらは,いくつかの実験を行った*34. ここで彼らは,7つの特徴選択技法,3つの分類、およびバイトNグラムサイズの混合物を評価した. 最近,Moscovitchらは,バイトnグラムによって特徴付け不均衡データセットを使用した研究の結果を発表した*35.また不均衡問題の研究が示された.

D . Control flow graph

制御フローグラフ(CFG)がグラフである. それは,プログラムの制御フローを示し,広くソフトウェアの分析に使用されており,長年にわたって研究されている*36*37*38. CFGは,各ノードはプログラムの文を表す有向グラフであり,各エッジが文の間の制御フローを表してる. 文はは代入、ステートメントのコピー,分岐等であってもよい. チェルノブイリマルウェアを元に生成されたCFGの例を示す. f:id:pinksawtooth:20160331174208p:plain

[39]では,実行可能プログラムを逆アセンブルした後,変異技術の影響を低減し、良性および悪質なコードの間のフローを正規化演算する発表した*39. その後CFGに対応するプログラムを生成した. CFGは、正規化された1つのCFGと正規化されたマルウェアのCFGを同型であるサブグラフが含まれているかどうかを知るために比較する.したがって,マルウェアの検出の問題は,グラフが部分的に同型という問題に変更される.

チャオ氏は,PEファイルのフローグラフを制御するの特徴に基づいた検出法を提案した*40. 最初に,彼は各実行可能ファイルのCFGを作成した. その後,彼はデータとしてCFGから抽出された特徴を使用した. これらの特徴は,ノード,エッジおよび部分グラフについての情報である. 特徴選択した後,いくつかのデータ・マイニング・アルゴリズムは,Decision Tree *41, Bagging *42, Random Forest*43などのこれらの特徴に基づいて分類するために使用される.

Bonfanteは、マルウェアの検出のための署名としてCFGを使用していた*44. CFGは,ノードとエッジで構成されており,我々が知っているように,各アセンブラは命令の4種類で構成されています:非条件ジャンプ(JMP)、条件ジャンプ(JCC)、関数呼び出し(コール)と関数戻り(RET). 彼らはノードの名前が"inst"とプログラムの終わりを示す"end"の命令の連続配列を抽出する. 彼らは,6種類ノードjmp, jcc, call, ret, "inst" , "end"を定義した. 図に示すように,これらのタイプに基づいてCFGを構築する. その後、任意のノードのためにinst、JMPのノードを削減する. グラフからノードを削除し,独自の後継者にすべての前任者をリンクした. 還元後,各ファイルのシグニチャーとしてこのグラフを使用した. f:id:pinksawtooth:20160331192121p:plain

E . Hybrid Features 機械学習分類子の性能は、2つの主要な要因によって影響されます。 特徴とアルゴリズム。 一部の研究者は、機能により機械学習の精度を向上させるために着手しました。 彼らはより良い精度を得るため特徴を兼ね備えています。 我々が述べたように、CFGが正常単純マルウェアの検出に適用されています。

機械学習分類子の性能は,2つの主要な要因,特徴とアルゴリズムによって影響される. 一部の研究者は,特徴により機械学習の精度を向上させるために着手した. 彼らはより良い精度を得るため特徴を結びつける. 我々が述べたように、CFGは単純なマルウェアの検出に適用されている. 我々は,複雑なマルウェア(変成型や対多型など)の検出するためには,CFGに基づく検出方法を改善しなければならない.

Eskandariは、単純なCFGを使用し、API呼び出しから変成マルウェアを検出する*45. CFGは,マルウェアのセマンティックを理解するために使用した. CFG上の呼び出されたAPIを元に彼らは新しいマルウェアのセマンティクスを得た. グラフマイニングアルゴリズムの複雑さを減少させるために,特徴ベクトルにスパースグラフ変換した.生成された特徴の数は非常に多い.. それらを減少させるために、それらは、特徴選択アルゴリズムを使用する. それらは、トレーニングセットのようないくつかのデータアイテムを得て、データベースに保存されたルールのセットを生成する. 決定システムは、テストセットの各サンプルがマルウェアであるか否かを決定するルールデータベースを利用する.

これらの方法の性能に影響を与える二つの主要な要因がある.MLの概念に基づいている特徴および分類のために使用したアルゴリズムである. LUらは,新機能および新規の分類器を使用して正確なシステムを提案しました*46. 特徴のために,コンテンツベースと行動ベースの機能を使用し,それらを組み合わせた. インポートされたDLLとPEファイルのAPI関数呼び出しは,コンテンツベースの特徴として選ばれた. しかしながら,これらの抽出された大量の特徴は,機能を減少させるため情報利得の概念を使用する. 行動ベースの特徴のために,行動をベクトルとして表現されているVMwareツールで各ファイルを実行する. そこでは,階層的な分類法に基づくSVMと相関ルールを組み合わせたSVMと呼ばれる新しいアンサンブル学習法が提案された. 彼らの実験結果はSVM-ARは,すべての一般的なアンサンブル学習法よりも効果が示された.

F . Some Newly Introduced Features

Yeらの研究はファイルの中身とファイルの関係を特徴としている*47. ファイルの関係は,全てのクラウドユーザのファイルの共有や欠如を意味する. このサンプル・ファイル間での関係はそれらのプロパティについて価値のある情報を得ることができる. もし,多くのTrojanが常にある特定の不明ファイルをユーザのコンピュータ内で発生させた時,そのファイルは悪意のあるなファイルである.サンプル間でのファイルの関係は,マルウェアの検出を示す新しく実践的な特徴である. Yeらは,ファイルの内容と関係を組み合わせた,セミパラメータによる分類モデルを提案した. ファイルの内容については,Yeらは,悪性なPEと良性なPEの中身からくるAPI呼び出しを抽出する. 彼らのモデルはファイルの内容とファイルの関係を統合し,グラフ正規化フレームワークを使用して分類問題を方程式化する.かれらのComodo Cloud Security Centerから集めた実際のマルウェアによるケーススタディでは,彼らの"Valkyrieシステム"の有効性・効率と彼らのシステムが既にComodoのアンチマルウェアソフトのスキャニングツールとして適用されいてることを示してる.これは,ファイルの内容とファイルの関係の両方をマルウェア検出に使用した初めての研究である.

KimとMoonは多様なスクリプトウィルスを検出する新たな手法を提案した.彼らはVBScriptマルウェアを依存グラフを用いて表した.Fig5(a)-(b)に示すように,スクリプトマルウェアはパースされセマンティックコード(中間言語)に変換される.このセマンティックコードを元に,有向グラフは,セマンティックコードの行同士の関係を表す.各ノードはコードの行を表し,矢印は二つの行の依存関係を表す.グラフのサイズを減らすため,条件を満たすノードと矢印は省略される.Fig5(c)-(d)はどのように依存グラフが生成されるかの例である.提案システムは既知のマルウェアとまだ分類されいていない未知のファイルのために依存グラフを生成し,その依存グラフと比較することで新しいスクリプトが既知のマルウェアの派生かどうかを判定する.したがってマルウェア検出はmaximum common subgraph-isomorphism(MCS)に依存する.

f:id:pinksawtooth:20160401012324p:plain f:id:pinksawtooth:20160401012334p:plain

SUMMERY

今回の調査では、マルウェアの検出方法を提示し、マルウェア検出技術のための新規の分類スキームを提案した.また、マルウェアの検出方法の欠点の概要について説明した. これらの欠点が,代替の方法でカバーされているかについて述べた. そして,「隠蔽戦略」と呼ばれる検出方法を打ち負かすために使用される戦略を紹介した. 調査の目的は、手順を提供することである. これはさらなるマルウェア検出技術の研究・開発に適している.

*1:J. Aycock. “Computer Viruses and Malware”. Springer, 2006.

*2:P. Szor.” The Art of Computer Virus Research and Defense”. Addison Wesley for Symantec Press, New Jersey, 2005.

*3:P. Gutmann. “The Commercial Malware Industry.”, 2007.

*4:KALPA, “Introduction to Malware”, “http://securityresearch.in/index.php/projects/malware_lab/introduction-to-malware/8/”, 2011.

*5:G. Jacob, H. Debar, and E. Filiol, “Behavioral detection of malware: from a survey towards an established taxonomy,” Journal in Computer Virology, pp. 251–266, 2008.

*6:A. Ahmed, E . Elhadi, M. A. Maarof and A. H. Osman, “Malware Detection Based on Hybrid Signature Behaviour Application Programming Interface Call Graph Information Assurance and Security Research Group.” Journal, A., Sciences, A., & Publications, S., Faculty of Computer Science and Information Systems, 9(3), 283–288,2012.

*7:K. Kim and B. R. Moon, “Malware detection based on dependency graph using hybrid genetic algorithm.” In Proceedings of the 12th annual conference on Genetic and evolutionary computation, July 07-11, 2010.

*8:M. Schultz, E. Eskin, E. Zadok, and S. Stolfo, ” Data mining methods for detection of new malicious executables.” In IEEE Symposium on Security and Privacy, pages 38-49. IEEE COMPUTER SOCIETY, 2001.

*9:D. Orenstein, “Application Programming Interface (API),” Quick Study:Application Programming Interface (API), 2000.

*10:S. Hofmeyr, S. Forrest, and A. Somayaji, “Intrusion detection using sequences of system calls.” Journal of Computer Security, pp. 151–180, 1998

*11:J. Bergeron, M. Debbabi, J. Desharnais, M. M. Erhioui, and N. Tawbi, “Static detection of malicious code in executable programs.” Int. J. of Req. Eng., 2001.

*12:R. Sekar, M. Bendre, P. Bollineni, and D. Dhurjati, “A Fast Automaton-Based Approach for Detecting Anomalous Program Behaviors.” In IEEE Symposium on Security and Privacy,2001.

*13:A. H. Sung, J. Xu, P. Chavez, and S. Mukkamala, “Static Analyzer of Vicious Executables.” In 20th Annual Computer Security Applications Conference, pp. 326–334, 2004.

*14:Y. Ye, D. Wang, T. Li, and D. Ye, “IMDS: Intelligent malware detection system,” in Proc. ACM Int. Conf. Knowl. Discovery Data Mining, pp. 1043–1047, 2007.

*15:Y. Ye, T. Li, Q. Jiang, and Y. Wang, “CIMDS: adapting postprocessing techniques of associative classification for malware detection,” IEEE Trans. Syst., Man, Cybern. C, vol. 40, no. 3, pp. 298-307, 2010.

*16:W. Snedecor and W. Cochran, “Statistical Methods”, 8th ed. Iowa City, IA: Iowa State Univ. Press, 1989.

*17:K. Jeong and H. Lee, “Code graph for malware detection. In Information Networking.” ICOIN. International Conference on, Jan 2008.

*18:J. Lee, K. Jeong, and H. Lee, “Detecting metamorphic malwares using code graphs” In Proceedings of the ACM Symposium on Applied Computing, ser. New York, NY, USA: ACM, pp. 1970-1977, 2010.

*19:Y. Ye, T. Li, K. Huang, Q. Jiang and Y. Chen, “Hierarchical associative classifier (HAC) for malware detection from the large and imbalanced gray list”. Journal of Intelligent Information Systems, 35(1), pp.1-20. 2010.

*20:D. Bilar, “OpCodes as predictor for malware,” International Journal of Electronic Security and Digital Forensics, vol. 1, no. 2, p. 156, 2007.

*21:I. Santos, F. Brezo, J. Nieves, and Y. Penya, “Idea: OpCode-sequencebased malware detection,”, Engineering Secure Software and System , 2010.

*22:C. Peng, H. Long and F. Ding, “Feature selection based on mutual information: cri-teria of max-dependency, max-relevance, and minredundancy.,” in IEEE Transactions on Pattern Analysis and Machine Intelligence, 2005.

*23:I. Santos, F. Brezo, X. Ugarte-Pedrero, and P. G. Bringas, “OpCode sequences as representation of executables for data-mining-based unknown malware detection,” Information Sciences, Aug. 2011.

*24:I. Santos, C. Laorden, and P. Bringas, “Collective classification for unknown malware detection,” Proceedings of the 6th ACM Symposium on Information, Computer and Communications Security, 2011.

*25:I. Santos, F. Brezo, B. Sanz, C. Laorden, and P. G. Bringas, “Using opCode sequences in single-class learning to detect unknown malware,” IET Information Security, vol. 5, no. 4, p. 220, 2011.

*26:I. Santos, B. Sanz, and C. Laorden, “OpCode-sequence-based semisupervised unknown malware detection,”, Computational Intelligence in Security for Information Systems , 2011.

*27:N. Runwal, R. M. Low, and M. Stamp, “OpCode graph similarity and metamorphic detection,” Journal in Computer Virology, vol. 8, no. 1–2, pp. 37–52, Apr. 2012.

*28:A. Shabtai, R. Moskovitch, C. Feher, S. Dolev, and Y. Elovici, “Detecting unknown malicious code by applying classification techniques on OpCode patterns,” Security Informatics, vol. 1, no. 1, p. 1, 2012.

*29:T. Abou-assaleh, N. Cercone, V. Ke􀃟, and R. Sweidan, “N-gram-based Detection of New Malicious Code,” no. 1, 2004.

*30:G. B. S. Gerald, J. Tesauro, Jeffrey O. Kephart, “Neural Network for Computer Virus Recognition.” IEEE Expert, 1996.

*31:W. A. and G. Tesauro, “Automatically Generated Win32 Heuristic Virus Detection,” in Virus Bulletin Conference, 2000.

*32:M. M. Kolter JZ, “Learning to detect malicious executables in the wild.” in roc of the 10th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, 2006.

*33:J. Z. Kolter and M. A. Maloof, “Learning to Detect and Classify Malicious Executables in the Wild,” vol. 7, pp. 2721–2744, 2006.

*34:T. J. Cai DM, M. Gokhale, “Comparison of feature selection and classification algorithms in identifying malicious executables,” in Computational Statistics and Data Analysis, 2007.

*35:E. Y. Moskovitch, D. Stopel, C. Feher, N. Nissim and N. Japkowicz, “Unknown malcode detection and the imbalance problem,” journal in Computer Virology, 2009.

*36:P. Jalote, "An Integrated Approach to Software Engineering", Springer, New York, NY, 2005.

*37:T. McCabe, "A complexity measure", IEEE Transactions on Software Engineering SE-2(4): 308–320, 1976.

*38:L. Tan, "TheWorst Case Execution Time Tool Challenge", The External Test, Technical report, 2006.

*39:D. Bruschi, L. Martignoni and M. Monga “Detecting self-mutating malware using control-flow graph matching,” In: Büschkes, R. and Laskov, P. (eds) Detection of Intrusions and Malware & Vulnerability Assessment, volume 4064 of LNCS, pp 129–143. Springer, Berlin. 2006.

*40:Z. Zhao, “A virus detection scheme based on features of Control Flow Graph.” 2nd International Conference on Artificial Intelligence, Management Science and Electronic Commerce (AIMSEC), pages 943-947, 2011.

*41:T. M. Mitchell, “Machine learning and data mining,” Commun. ACM, vol. 42, no. 11, 1999.

*42:L. Breiman. “Bagging Predictors.” Machine Learning, 24(2):123–140, 1996.

*43:L. Breiman. “Random Forests.” Machine Learning, 45(1):5–32, 2001.

*44:G. Bonfante, M. Kaczmarek, J.Y. Marion. ‘‘Control Flow Graphs as Malware Signatures.’’ WTCV, May, 2007.

*45:M. Eskandari and S. Hashemi “Metamorphic malware detection using control flow graph mining”. International Journal of Compute Science Network Security,pp 1-6 ,2011.

*46:Y. Lu, S. Din, C. Zheng and B.Gao “Using multi-feature and classifier ensembles to improve malware detection”. Journal of CCIT 39(2), 57– 72. 2010.

*47:Y. Ye, T. Li, S. Zhu, W. Zhuang, E.Tas, U. Gupta and M. Abdulhayoglu, “Combinig File Content and File Relations for Cloud Based Malware Detection.” Proceedings of the 17th ACM SIGKDD international conference on Knowledge discovery and data mining, 2011.