(57)【特許請求の範囲】
【請求項１】
所定の順序で１つ以上の前処理を実行した後、分類器によってファイルのスコアを算出するスコア算出処理を実行し、算出したスコアに基づいて該ファイルがマルウェアであるか否かの判定処理を行うマルウェア判定装置における、各処理を実行するための最適な設定を決定する調整装置であって、
前記マルウェア判定装置の各処理を、前記マルウェア判定装置において実行される順序と逆の順序で選択する指示部と、
前記指示部によって処理が選択されるたびに、該選択された処理を実行するための設定の候補を順次適用し、また、前記指示部によって選択された処理以外の処理のうち最適な設定が決定済みである処理に、該最適な設定を適用する設定適用部と、
前記設定適用部によって設定の適用が行われるたびに、前記設定適用部によって適用された設定にしたがって前記マルウェア判定装置の各処理を実行した場合の、前記設定の候補のそれぞれに対応する結果を取得する検証部と、
前記検証部によって前記選択された処理の前記設定の候補のすべてについて対応する結果が取得されるたびに、前記設定の候補のうち、前記設定の候補のそれぞれに対応する結果からマルウェアの判定精度が最も高くなると判定された設定の候補を、前記選択した処理の最適な設定として決定する分析部と、
を有することを特徴とする調整装置。
【請求項２】
前記指示部が、前記マルウェア判定装置において実行される順序と逆の順序で選択する処理は、ホワイトリストの適用と、特徴抽出および次元削減と、であることを特徴とする請求項１に記載の調整装置。
【請求項３】
教師データの調整を行う教師データ調整部をさらに有することを特徴とする請求項１または２に記載の調整装置。 
【請求項４】
教師データを学習し、分類器でスコア算出処理を行うための識別モデルを作成する学習部をさらに有することを特徴とする請求項１から３のいずれか１項に記載の調整装置。 
【請求項５】
所定の順序で１つ以上の前処理を実行した後、分類器によってファイルのスコアを算出するスコア算出処理を実行し、算出したスコアに基づいて該ファイルがマルウェアであるか否かの判定処理を行うマルウェア判定装置における、各処理を実行するための最適な設定を決定する調整装置によって実行される調整方法であって、
前記マルウェア判定装置の各処理を、前記マルウェア判定装置において実行される順序と逆の順序で選択する指示工程と、
前記指示工程によって処理が選択されるたびに、該選択された処理を実行するための設定の候補を順次適用し、また、前記指示工程によって選択された処理以外の処理のうち最適な設定が決定済みである処理に、該最適な設定を適用する設定適用工程と、
前記設定適用工程によって設定の適用が行われるたびに、前記設定適用工程によって適用された設定にしたがって前記マルウェア判定装置の各処理を実行した場合の、前記設定の候補のそれぞれに対応する結果を取得する検証工程と、
前記検証工程によって前記選択された処理の前記設定の候補のすべてについて対応する結果が取得されるたびに、前記設定の候補のうち、前記設定の候補のそれぞれに対応する結果からマルウェアの判定精度が最も高くなると判定された設定の候補を、前記選択した処理の最適な設定として決定する分析工程と、
を含んだことを特徴とする調整方法。
【請求項６】
コンピュータを請求項１から４のいずれか１項に記載の調整装置として機能させることを特徴とする調整プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルウェア判定装置の設定を調整する調整装置、調整方法および調整プログラムに関する。
【背景技術】
【０００２】
MS  Windows（登録商標）、Apple  OSX（登録商標）、Linux（登録商標）およびその他Unix（登録商標）等のＯＳ上で用いられる実行ファイルがマルウェアであるか否かを判定するアンチウィルスシステムが知られている。アンチウィルスシステムでは、実行ファイルを実行して判定を行う動的判定、および実行ファイルを実行せずに判定を行う静的判定の２手法が用いられ、判定に特に速度が求められる場合は静的判定が用いられる。
【０００３】
代表的な静的判定の手法として、ハッシュ値一致判定、およびパターンマッチ判定（シグニチャスキャン）が挙げられる。ハッシュ値一致判定は、あらかじめ既知のマルウェアのＭＤ５、ＳＨＡ１、ＳＨＡ２５６等のハッシュ値をデータベースとして持ち、検査対象ファイルのハッシュ値がそのデータベースに合致すればマルウェアと判定するものである。また、パターンマッチ判定は、あらかじめ既知のマルウェアに含まれる特定の文字列やバイトコードをデータベースとして持ち、検査対象ファイルがデータベースに登録された文字列・バイトコードのいずれかを含んでいればマルウェアと判定するものである。
【０００４】
しかし、マルウェアが少し改造されるだけで、ハッシュ値は異なった値となってしまい、パターンマッチ判定で用いる特定の文字列等も変更されてしまう可能性がある。そのため、これらの手法では、既存マルウェアを改造した亜種のマルウェアや新種のマルウェアの検知は難しかった。そこで、亜種・新種のマルウェアを判定する手法として、ヒューリスティック判定が提案されている。これは、これまでの経験に基づいて、マルウェアらしさを定義し、その定義に従って判定を行うものである。
【０００５】
ヒューリスティック判定として機械学習技術を用いる手法がいくつか提案されている。例えば、実行ファイル中に含まれる可読文字列をあらかじめ学習し、マルウェアで良く用いられる語が検査ファイル中にどの程度含まれるかを基準にそのマルウェアらしさを判定する方法が提案されている（例えば特許文献１を参照）。
【０００６】
機械学習では、まず学習対象のデータ（教師データ）を、いくつかのパラメータの組に変換してから機械学習アルゴリズムで学習を行う。個々のパラメータを特徴、パラメータの組を特徴ベクトルと呼ぶ。例えば、特許文献１の例では、単語名とその出現数が特徴であり、その組が特徴ベクトルである。また、その組に含まれる特徴の個数を特徴ベクトル次元と呼び、前述の例では単語の種類数が特徴ベクトル次元となる。
【０００７】
また、機械学習技術を用いたヒューリスティック判定は、亜種・新種のマルウェアも判定可能となる一方で、誤検知率（マルウェアでないファイル（グッドウェア）を間違えてマルウェアと判定してしまう率）が比較的大きい傾向がある。そこで、機械学習技術において、様々な精度向上手法が提案されている。例えば、実行ファイルのＰＥヘッダ情報を用いた機械学習によるマルウェア判定方法が提案されており、この方法では、適切な次元圧縮と機械学習アルゴリズムを用いることにより、検知精度を向上させている（例えば非特許文献１を参照）。
【０００８】
また、分類精度を悪化させると思われるデータを教師データから除去する等、教師データの精査を行う手法である事例選択によっても精度を向上させることができる（例えば非特許文献２を参照）。非特許文献２では、サポートベクターマシン（ＳＶＭ）を用いた画像分類において、ＳＶＭの内部パラメータαｉを用い、分類しにくい曖昧な画像データを抽出し、抽出したデータを教師データから取り除く事例選択手法が用いられている。
【０００９】
また、用いた機械学習アルゴリズムのパラメータ調整で精度を向上させる方法が一般的に実施されている（例えば非特許文献３を参照）。また、誤検知を判定時に訂正する一般的な手法として、ホワイトリストを用いた誤検知訂正手法もよく用いられる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１２−２７７１０号公報
【非特許文献】
【００１１】
【非特許文献１】Shafiq,  et  al.,  “PE-Miner:  Mining  Structural  Information  to  Detect  Malicious  Executables  in  Realtime”,  RAID  '09,  2009.
【非特許文献２】高取  等、「サポートベクターマシンの内部パラメータに基づく事例選択手法の提案と映像境界検出問題への応用」、人工知能学会全国大会（第22回）、2008.
【非特許文献３】Hsu,  et  al.,  “A  Practical  Guide  to  Support  Vector  Classification”,  http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf
【発明の概要】
【発明が解決しようとする課題】
【００１２】
機械学習を用いたマルウェア判定において、様々な精度向上手法を組み合わせれば、個々の手法だけを用いるよりも判定精度を大きく向上させることが可能である。ここで、各精度向上手法にはそれぞれに多様な調整事項が存在する。しかしながら、従来技術においては、精度向上手法の調整事項の調整を効率良く行うことができないという問題があった。
【００１３】
すなわち、様々な精度向上手法を組み合わせて、各手法における調整事項の最適な設定を得るために、各精度向上手法と各調整事項の設定の組み合せを、手法横断的かつ網羅的に試行する必要があり、効率的な調整が行えない。
【００１４】
網羅的に試行する調整の一例として、機械学習アルゴリズムのパラメータを調整することを考える。機械学習アルゴリズムのパラメータ調整手法の例として、非特許文献２に記載されているグリッドサーチ法がある。グリッドサーチ法は、アルゴリズムパラメータの候補値をいくつか挙げておき、その候補値を１つ１つ当てはめて、実際に学習・判定を行って試行し、最も良い精度を示した候補値を採用する方法である。複数のパラメータがある場合、パラメータそれぞれにおいて候補値を挙げておき、各パラメータの候補値を総当たりで組み合わせて試行する。例えば、２つのパラメータがあり、それぞれ１０個ずつ候補値を用意した場合、その試行回数は１０×１０＝１００回となる。
【００１５】
また、いくつかの特徴を取り除くことで次元を削減し、マルウェアの判定精度を向上させる特徴選択という手法を調整することも考えられる。例えば、特徴選択の調整方法として、ラッパー法がある（例えば特願２０１４−１２０４２８参照）。ラッパー法は、特徴選択の設定の候補について、実際に学習・判定を行って試行し、最も良い精度を示した特徴選択の設定を採用する方法である。
【００１６】
ここで、特徴選択の設定の候補を作成する方法として、変数増加法がある。変数増加法では、特徴（あるいは属性）の数をｐとすると、その試行は最小で２ｐ−１回、最大でｐ×（ｐ−１）／２回となる。アルゴリズムパラメータと特徴選択から最良の精度のものを求める場合、両候補値の組み合せの総当たりを網羅的に試行する必要がある。
【００１７】
仮に調整すべきアルゴリズムパラメータが２個で、その候補値の個数を各１０個、選択すべき特徴の個数が１０個である場合、１０×１０×１９  〜  １０×１０×４５、すなわち１９００〜４５００回の試行が必要となる。このように、網羅的な試行は調整すべき手法・パラメータが増加するごとに、指数関数的にその試行回数が増え、効率的に調整を行うことができなくなる。
【００１８】
また、その他の精度向上手法として、既知の誤検知グッドウェアを用いて類似のマルウェアのデータを教師データから除去すること、および、より学習されやすいようにその誤検知グッドウェアのデータを教師データに適切に挿入することで、特に低誤検知率を実現する事例選択手法が考えられる（例えば特願２０１５−０８７９２４参照）。しかしながら、他の手法と同様に、事例選択手法の調整事項の調整についても網羅的に試行していたため、効率良く調整を行うことができない場合があった。
【課題を解決するための手段】
【００１９】
本発明の調整装置は、所定の順序で１つ以上の前処理を実行した後、分類器によってファイルのスコアを算出するスコア算出処理を実行し、算出したスコアに基づいて該ファイルがマルウェアであるか否かの判定処理を行うマルウェア判定装置における、各処理を実行するための最適な設定を決定する調整装置であって、前記マルウェア判定装置の各処理を所定の順序で選択する指示部と、前記指示部によって処理が選択されるたびに、該選択された処理を実行するための設定の候補を順次適用し、また、前記指示部によって選択された処理以外の処理のうち最適な設定が決定済みである処理に、該最適な設定を適用する設定適用部と、前記設定適用部によって設定の適用が行われるたびに、前記設定適用部によって適用された設定にしたがって前記マルウェア判定装置の各処理を実行した場合の、前記設定の候補のそれぞれに対応する結果を取得する検証部と、前記検証部によって前記選択された処理の前記設定の候補のすべてについて対応する結果が取得されるたびに、前記設定の候補のうち、前記設定の候補のそれぞれに対応する結果からマルウェアの判定精度が最も高くなると判定された設定の候補を、前記選択した処理の最適な設定として決定する分析部と、を有することを特徴とする。
【００２０】
本発明の調整方法は、所定の順序で１つ以上の前処理を実行した後、分類器によってファイルのスコアを算出するスコア算出処理を実行し、算出したスコアに基づいて該ファイルがマルウェアであるか否かの判定処理を行うマルウェア判定装置における、各処理を実行するための最適な設定を決定する調整方法であって、前記マルウェア判定装置の各処理を所定の順序で選択する指示工程と、前記指示工程によって処理が選択されるたびに、該選択された処理を実行するための設定の候補を順次適用し、また、前記指示工程によって選択された処理以外の処理のうち最適な設定が決定済みである処理に、該最適な設定を適用する設定適用工程と、前記設定適用工程によって設定の適用が行われるたびに、前記設定適用工程によって適用された設定にしたがって前記マルウェア判定装置の各処理を実行した場合の、前記設定の候補のそれぞれに対応する結果を取得する検証工程と、前記検証工程によって前記選択された処理の前記設定の候補のすべてについて対応する結果が取得されるたびに、前記設定の候補のうち、前記設定の候補のそれぞれに対応する結果からマルウェアの判定精度が最も高くなると判定された設定の候補を、前記選択した処理の最適な設定として決定する分析工程と、を含んだことを特徴とする。
【発明の効果】
【００２１】
本発明によれば、マルウェア判定を行うための精度向上手法を組み合わせる場合に、各精度向上手法における調整事項の調整を効率良く行うことができる。
【図面の簡単な説明】
【００２２】
【図１】図１は、第１の実施形態に係る調整装置およびマルウェア判定装置を含んだマルウェア判定システムの構成の一例を示す図である。
【図２】図２は、第１の実施形態に係る調整装置の設定格納部のデータの一例を示す図である。
【図３】図３は、第１の実施形態に係る調整装置の各調整工程を説明するための図である。
【図４】図４は、スコア閾値と、検知率および誤検知率との関係を説明するための図である。
【図５】図５は、ＲＯＣ曲線について説明するための図である。
【図６】図６は、第１の実施形態に係る調整装置の処理を示すフローチャートである。
【図７】図７は、第１の実施形態に係るマルウェア判定装置の処理を示すフローチャートである。
【図８】図８は、第２の実施形態に係る調整装置およびマルウェア判定装置を含んだマルウェア判定システムの構成の一例を示す図である。
【図９】図９は、プログラムが実行されることにより、調整装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【００２３】
以下に、本願に係る調整装置、調整方法および調整プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係る調整装置、調整方法および調整プログラムが限定されるものではない。
【００２４】
［第１の実施形態］
以下の実施形態では、第１の実施形態に係る調整装置およびマルウェア判定装置を含むマルウェア判定システムの構成、処理および効果について説明する。調整装置１０は、所定の順序で１つ以上の前処理を実行した後、分類器によってファイルのスコアを算出するスコア算出処理を実行し、算出したスコアに基づいて該ファイルがマルウェアであるか否かの判定処理を行うマルウェア判定装置２０における、各処理を実行するための最適な設定を決定する。
【００２５】
［第１の実施形態の構成］
図１を用いて、第１の実施形態に係る調整装置およびマルウェア判定装置を含んだマルウェア判定システムの構成について説明する。図１は、第１の実施形態に係る調整装置およびマルウェア判定装置を含んだマルウェア判定システムの構成の一例を示す図である。まず、マルウェア判定システム１におけるデータの流れについて説明する。図１に示すように、まず、調整装置１０には、ユーザ等による指示、機械学習のための原教師データ、調整および検証のための調整用データおよび原検証用データが入力される。
【００２６】
調整装置１０は、これらのデータを基に、調整済教師データおよび調整済設定を作成し、マルウェア判定装置２０に対して出力する。そして、マルウェア判定装置２０は、調整装置１０から取得した各データを用いて、別途入力された判定対象ファイルの判定結果を出力する。ここで、調整装置１０の構成および処理の一部は、マルウェア判定装置２０の構成等によって決定される。そのため、まずマルウェア判定装置２０の構成について説明する。
【００２７】
［マルウェア判定装置］
図１に示すように、マルウェア判定装置２０は、ホワイトリスト適用部２０１、特徴抽出・次元削減部２０２、分類器２０３、判定部２０４および設定格納部２１０を有する。マルウェア判定装置２０は、まず設定格納部２１０に格納されている設定等を読み込み初期化した後、マルウェアとマルウェアでない実行ファイル（グッドウェア）から構成された教師データを学習する。マルウェア判定装置２０は、教師データの学習後、判定対象ファイルがマルウェアであるかグッドウェアであるかを判定する。なお、教師データの学習および判定対象ファイルの判定には、ホワイトリスト適用部２０１、特徴抽出・次元削減部２０２、分類器２０３、判定部２０４が適宜用いられる。
【００２８】
前述の通り、マルウェア判定装置２０は学習処理を実施した後に判定処理を実施する。まず、学習処理における各部の機能について説明する。マルウェア判定装置２０は、特徴抽出・次元削減部２０２による特徴抽出および次元削減、分類器２０３によるスコア算出の順で学習処理を実行する。学習対象である教師データは、既存のマルウェアとグッドウェアの実行ファイル、および実行ファイルがマルウェアであるかグッドウェアであるかの分類を示す情報で構成される。
【００２９】
特徴抽出・次元削減部２０２は、教師データから特徴抽出を行う。さらに、特徴抽出・次元削減部２０２は、必要に応じて抽出した特徴に対して特徴選択や次元圧縮による次元削減を行い、特徴ベクトルを生成する。特徴抽出・次元削減部２０２が特徴ベクトルに重み付けを行うための手法の例として、例えばtf-idf（Term  Frequency  -  Inverse  Document  Frequency）が挙げられる。
【００３０】
ここで、特徴選択とは、目的の精度がより良くなるように各特徴を取捨選択する手法である。また、次元圧縮の代表的な手法として、例えば相関がある特徴同士を自動的に１つの特徴にまとめる主成分分析（ＰＣＡ）が知られている。なお、次元削減においては、特徴選択と次元圧縮のどちらか一方のみを行ってもよいし、両方を行ってもよい。
【００３１】
分類器２０３は、特徴ベクトルと、特徴ベクトルと対応する実行ファイルがマルウェアであるかグッドウェアであるかの分類を示す情報を用いて機械学習を行う。分類器２０３は、ロジスティック回帰、ＳＶＭ、パーセプトロン、Passive-Aggressive、Adaptive  Regularization  of  Weight  Vectors  （ＡＲＯＷ）、単純ベイズ等のアルゴリズムを用いて機械学習を行うことができる。
【００３２】
次に、判定処理における各部の機能について説明する。マルウェア判定装置２０は、ホワイトリスト適用部２０１によるホワイトリストの適用、特徴抽出・次元削減部２０２による特徴抽出・次元削減、分類器２０３によるスコア算出、判定部２０４によるマルウェアであるか否かの判定の順で判定処理を実行する。判定対象である判定対象ファイルは、マルウェアであるかグッドウェアであるかが不明な実行ファイルである。
【００３３】
ホワイトリスト適用部２０１は、判定対象ファイルがホワイトリストに該当するか否かを判定し、該当すると判定された判定対象ファイルをグッドウェアと判定する。ホワイトリストはＭＤ５、ＳＨＡ１、ＳＨＡ２５６等のハッシュアルゴリズムを用いたハッシュのリストであってもよいし、定義された何らかの類似度の算出に必要な値の組（例えば特徴ベクトル）であってもよい。
【００３４】
また、特徴抽出・次元削減部２０２は、ホワイトリストに該当しない判定対象ファイルの特徴ベクトルを生成する。なお、特徴ベクトルの生成方法は学習処理の場合と同様である。そして、分類器２０３は、特徴ベクトルから判定対象ファイルのマルウェアらしさをスコアという数値で出力する。
【００３５】
判定部２０４は、スコアをもとに判定対象ファイルがマルウェアであるか否かを判定し、判定結果を出力する。判定結果はマルウェア／グッドウェアの分類のみであってもよいし、分類にスコアを付け加えたものであってもよい。判定部２０４は、例えば、スコアがある閾値を超える場合はマルウェア、スコアが閾値を超えない場合はグッドウェアと判定する閾値判定を採用してもよい。
【００３６】
［調整事項］
また、学習処理および判定処理は、設定格納部２１０に格納されている設定等を読み込み初期化した後に実行される。設定格納部２１０に格納されている設定等は、これまで説明したマルウェア判定装置２０の学習処理および判定処理を行う各部の処理に影響を与える。
【００３７】
調整装置１０は、設定格納部２１０に格納する調整事項が調整済みである調整済設定を作成し、マルウェア判定装置２０に出力する。また、調整装置１０は、教師データの調整も行い、調整済教師データをマルウェア判定装置２０に出力するようにしてもよい。この場合、学習処理で用いられる教師データは調整済教師データである。
【００３８】
ここで、調整事項について具体的な例を挙げて説明する。まず、特徴抽出・次元削減部２０２に関する調整事項の例として、特徴抽出時の重み付け設定（例えばtf-idfの重みを付けるか等）、取捨選択すべき特徴の設定（特徴選択設定）、および次元圧縮に用いるアルゴリズムとそのアルゴリズムのパラメータ（例えば圧縮次元数）が挙げられる。
【００３９】
また、分類器２０３に関する調整事項の例として、利用するアルゴリズム、アルゴリズムの調整パラメータが挙げられる。また、アルゴリズムによっては同じ教師データを反復して学習すると精度向上する場合がある。このようなアルゴリズムを用いる場合、反復学習回数を調整事項としてもよい。
【００４０】
なお、ホワイトリスト適用部２０１で用いられるホワイトリスト自体を調整事項としてもよい。また、判定部２０４に関する調整事項の例として、スコアの閾値判定を行う場合のスコア閾値が挙げられる。また、調整装置１０は、事例選択等によって教師データの取捨選択およびデータの並び順の変更等を行うことで、教師データの調整を行い調整済教師データとして出力する。
【００４１】
［調整装置］
図１に示すように、調整装置１０は、指示部１０１、教師・検証用データ作成部１０２、検証部１０３、分析部１０４および設定格納部１１０を有する。調整装置１０はマルウェア判定装置２０の設定や与える教師データ等の調整事項について、調整工程を順に実行する。そして、調整工程で得られる指標がより向上するように調整事項および設定値を決定し、マルウェア判定装置２０に対して調整済教師データおよび調整済設定を出力する。
【００４２】
指示部１０１は、調整工程を管理し、その工程に応じた測定・検証の実行の指示を行う。また、指示部１０１は、マルウェア判定装置２０の各処理を所定の順序で選択することで、マルウェア判定装置２０の各部の処理に対応した調整工程の実施順序を決定する。指示部１０１は、例えば分類器２０３の調整を１番目に設定し、マルウェア判定装置２０において分類器２０３より以前に行われる処理については、処理の順序と逆の順序としてもよい。
【００４３】
教師・検証用データ作成部１０２は、指示部１０１の指示に基づき、原教師データ、原検証用データ、調整用データを用いて検証部１０３へ与える教師データおよび検証用データを作成する。
【００４４】
検証部１０３は、マルウェア判定装置２０と同様の処理を実行し、検証を行う。これにより、検証部１０３は、例えば判定結果としてスコアを出力する。そして、分析部１０４は、調整工程に対応する分析工程を実施する。具体的に、分析部１０４は、検証部１０３の学習または判定結果を基に指標を算出し、指標に基づいて最適な調整事項および設定値を決定し、決定した調整事項および設定値を設定格納部１１０へ格納する。
【００４５】
また、原教師データおよび原検証用データはマルウェア判定装置２０で用いられる教師データと同様の構成の情報体である。また、調整用データは誤検知しやすいグッドウェアのデータであり、例えば事例選択手法で用いられるものである（例えば特願２０１５−０８７９２４参照）。
【００４６】
ここで、図２を用いて、調整事項と設定値の例について説明する。図２は、第１の実施形態に係る調整装置の設定格納部のデータの一例を示す図である。図２の番号１は、マルウェア判定装置２０の分類器２０３に関する調整事項である。また、図２の番号２〜６は、マルウェア判定装置２０の特徴抽出・次元削減部２０２に関する調整事項である。また、図２の番号７は、マルウェア判定装置２０の教師データに関する調整事項である。また、図２の番号８は、マルウェア判定装置２０の判定部２０４に関する調整事項である。また、図２の番号９は、マルウェア判定装置２０のホワイトリスト適用部２０１に関する調整事項である。
【００４７】
ここで、調整装置１０で行われる、各調整工程および各調整工程に対応する分析工程を含む各工程について説明する。なお、各調整工程を実施する前に、指示部１０１は、各工程における指示部１０１が生成する設定の候補の範囲、検証方法、および分析部１０４で算出する指標、目的指標値等をあらかじめ指示として与えられているものとする。また、調整工程および分析工程については図３を用いて説明を行う。図３は、第１の実施形態に係る調整装置の各調整工程を説明するための図である。
【００４８】
各調整工程において、検証部１０３は、選択された処理を実行するための設定の候補を順次適用し、また、指示部１０１によって選択された処理以外の処理のうち最適な設定が決定済みである処理に、最適な設定を適用する。そして、検証部１０３は、設定の適用が行われるたびに、適用された設定にしたがってマルウェア判定装置２０の各処理を実行した場合の、設定の候補のそれぞれに対応する結果を取得する。
【００４９】
まず、調整工程の前段階の処理として、調整装置１０は、設定格納部１１０の初期化、およびデータのクレンジングを行う。ここで、データクレンジングについて説明する。機械学習によるマルウェア静的判定においては、ファイル種別、すなわち実行ファイルが３２ｂｉｔ実行アプリケーションであるか、６４ｂｉｔ実行アプリケーションであるか、またはVisual  Basic製のアプリケーションであるか等に応じて、その特徴の傾向が異なる。そして、特定のファイル種別のみを学習・判定する方が精度向上する。
【００５０】
そこで、データクレンジングを行うことにより、原データ（原教師データ、原検証用データ）から指定のファイル種別のみをデータとして選別する。また、マルウェアと間違ってラベルがつけられたグッドウェアが原データ中に存在する場合がある。そこで、データクレンジングにおいては、グッドウェアと非常に類似したマルウェアを原データから除去する。以降の工程では、特記が無い限り、原データはクレンジング済みのものを指すものとする。
【００５１】
次に、図３に示すように、調整装置１０は１番目の調整工程として分類器の調整を行う。指示部１０１は分類器のアルゴリズム、そのアルゴリズムのパラメータ、反復学習回数等の設定の組の候補をいくつか生成し、そのうちの１組を設定格納部１１０へ仮設定する。そして、教師・検証用データ作成部１０２は、原データを用いて、教師データおよび検証用データを生成する。
【００５２】
検証部１０３は、設定格納部１１０に仮設定された設定等に基づき、その教師データおよび検証用データで学習・判定し、検証する。この検証がすべての設定の組の候補について実施されると、分析部１０４は、各検証結果について指標を算出し、最も良い指標であった設定の組を選出し、決定した調整事項としてその設定を設定格納部１１０へ格納する。
【００５３】
検証方法の一例として、そのまま原教師データを教師データ、原検証用データを検証用データとして学習・判定を行うホールドアウト検証がある。その他の検証方法の例として、Ｋ−分割交差検証が挙げられる。Ｋ−分割交差検証では、まず原教師データと原検証用データを混合し、Ｋ個のデータを生成する。次に、１個のデータを検証用データとして選び、残りのデータを教師データとして学習・判定する。まだ検証用データとしていないデータがあれば、それを検証用データとして選んで学習・判定を行い、全てのデータが１度は検証用データとして選ばれるまで学習・判定を繰り返す。
【００５４】
指標の例として、機械学習の検証では良く用いられるＡＵＣやＦ値が挙げられる。また、指定の誤検知率以下となるように調整した際の検知率や、指定の検知率以上となるように調整した際の誤検知率を１から引いたもの（真陰性率）を指標として用いてもよい。
【００５５】
マルウェア判定において、スコア閾値による判定を用いる場合、その閾値を増大させると検知率は下がるが、誤検知率も下がる。逆に、閾値を減少させると、検知率が上がり、誤検知率も上がる。この閾値と検知率および誤検知率の関係は比例関係ではなく、図４に示すように、ある閾値の範囲では閾値を増やしても誤検知率はそれほど上がらず、検知率は非常に上がることが知られている。図４は、スコア閾値と、検知率および誤検知率との関係を説明するための図である。また、このとき誤検知率と検知率の関係は、図５に示すようにＲＯＣ曲線に従う。図５は、ＲＯＣ曲線について説明するための図である。
【００５６】
そのため、あらかじめ適切に閾値を調整することにより、指定の許容範囲内に誤検知率を収めつつ、比較的高い検知率を得られるようにすることができる。同様に、スコア閾値を調整することによって、指定の検知率以上となるようにすることもできる。なお、これらのスコア閾値は分析部１０４にて判定結果のスコアを分析することで決定する。
【００５７】
次に、図３に示すように、調整装置１０は２番目の調整工程として次元削減の調整を行う。このとき、検証に用いるデータおよび分類器の設定は、１番目の調整工程で決定され、設定格納部１１０に格納されているものを用いる。次元削減の一つの手法である特徴選択における設定項目として、例えばＦｉｌｅ  ｎａｍｅ、Ｆｉｌｅ  ｓｉｚｅ等がある（例えば特願２０１４−１２０４２８を参照）。もう一方の手法として、次元圧縮が挙げられ、次元圧縮の代表例として、主成分分析がある。
【００５８】
主成分分析での設定項目は、例えば圧縮次元数である。指示部１０１は特徴抽出の重み、特徴選択設定および圧縮次元数の候補をいくつか作成し、そのうちの１つを設定格納部１１０に仮設定する。そして、教師・検証用データ作成部１０２は、原データを用いて、教師データおよび検証用データを生成する。
【００５９】
検証部１０３は、設定格納部１１０に仮設定された設定等に基づき、その教師データおよび検証用データで学習・判定し、検証する。この検証がすべての設定の組の候補について実施されると、分析部１０４は、各検証結果について指標を算出し、最も良い指標であった設定の組を選出し、決定した調整事項としてその設定を設定格納部１１０へ格納する。
【００６０】
特徴選択設定の候補の生成については、総当たり、変数増加法、変数減少法、ステップワイズ法等の手法を用いることができる（例えば特願２０１４−１２０４２８参照）。また、検証手法および指標は、他の工程と同一のものを用いても良いし、場合によっては別のものを用いてもよい。例えば、前の工程では分割交差検証を用い、本工程では処理時間を短縮するため、ホールドアウト検証を用いるようにしてもよい。
【００６１】
次に、図３に示すように、調整装置１０は３番目の調整工程として教師データの調整を行う。このとき、検証に用いるデータ、分類器および特徴抽出・次元削減の設定は、１番目および２番目の調整工程で決定され、設定格納部１１０に格納されているものを用いる。この場合、教師・検証用データ作成部１０２は、検証部１０３が他の工程で行っているように、選択された処理を実行するためのデータの候補を設定の候補として順次適用し、また、指示部１０１によって選択された処理以外の処理のうち最適な設定が決定済みである処理に、最適な設定を適用する。
【００６２】
分類器によっては教師データの並び順がその判定精度に大きく影響する場合がある。データ順が精度に影響する分類器として、例えば、パーセプトロン、Passive-Aggressive、ＡＲＯＷ、ニューラルネットワーク等がある。また、教師データとして、機械学習させると逆に判定精度が悪化するデータがある。一例として、余りにも古いデータは、直近のデータと傾向が異なり過ぎて、悪影響を及ぼすことがある。
【００６３】
指示部１０１および教師・検証用データ作成部１０２は、原教師データから含有するデータの期間および並び順等が異なった教師データの候補をいくつか作成する。検証部１０３は、作成されたそれぞれの教師データ候補と検証用データを、これまでの工程で決定した設定等に基づき、学習・判定してホールドアウト検証を行う。そして、分析部１０４は各候補の指標を算出する。
【００６４】
この検証がすべての設定の組の候補について実施されると、分析部１０４は、各検証結果について指標を算出し、最も良い指標であった教師データ候補を選出し、調整済教師データとして決定する。
【００６５】
また、誤検知をより低減させる手法として、誤検知グッドウェアのデータを調整用データとして用いた事例選択手法が考えられる。事例選択手法によって、調整済教師データをさらに調整し、より判定精度を向上させることができる（例えば特願２０１５−０８７９２４参照）。
【００６６】
また、検証手法および指標は、他の工程と同一のものを用いても良いし、場合によっては別のものを用いてもよい。例えば、事例選択手法を用いると、より誤検知率を低減させることができる（例えば特願２０１５−０８７９２４参照）。そのため、例えば本工程では前の工程より指定誤検知率が低い指標を用いるようにしてもよい。
【００６７】
次に、図３に示すように、調整装置１０は４番目の調整工程として判定設定の調整およびホワイトリストの生成を行う。このとき、検証に用いるデータ、分類器および特徴抽出・次元削減の設定は、１番目から３番目の調整工程で決定され、設定格納部１１０に格納されているものを用いる。
【００６８】
この調整工程は、マルウェア判定装置２０がスコア閾値による判定を行う場合に行われるものである。まず、これまでの調整工程で調整された設定、調整済教師データ、および検証用データを用いて、検証部１０３はホールドアウト検証を行う。次に、分析部１０４は指標を算出し、その指標が指示等で与えられた目的指標値に達しているか否かを判定する。目的指標値として、例えば指定誤検知率以下に調整した検知率を用いてもよい。
【００６９】
目的指標値が達成された場合は、上記検証において分析部１０４で算出されたスコア閾値をそのまま設定格納部１１０に格納する。一方、目的指標値が達成されなかった場合は、分析部１０４は以下の処理を行い、ホワイトリストとスコア閾値を決定する。まず、分析部１０４は、検知率の最低値を越えるスコア閾値を算出する。次に、指定誤検知率以下となる個数だけ高いスコアから順にグッドウェアを抽出し、ホワイトリストとする。分析部１０４は、このようにして得たスコア閾値とホワイトリストを設定格納部１１０に格納する。
【００７０】
そして、調整工程が完了すると、調整装置１０は、決定した調整事項、すなわち設定格納部１１０に格納された各種設定および調整済教師データを出力する。マルウェア判定装置２０は、これらの出力を読み込み、調整事項を各部に反映させる。なお、調整装置１０は電子ファイルとして出力を行ってもよいし、通信上のデータとして出力を行ってもよい。
【００７１】
また、各工程において、分析部１０４が各候補から設定等を選出し決定する処理には、人間による判断が含まれていてもよい。例えば、指標によっては、複数の候補で同一値の最良の指標値が計測されることがある。その場合は、それら候補を人間が判断してどれか１つに決定することが考えられる。
【００７２】
［第１の実施形態の処理］
第１の実施形態の処理について説明する。まず、図６を用いて調整装置１０の処理について説明する。図６は、第１の実施形態に係る調整装置の処理を示すフローチャートである。
【００７３】
図６に示すように、指示部１０１は、指示等を読み込み、設定格納部１１０の初期設定を行う（ステップＳ１０１）。次に、教師・検証用データ作成部１０２は、原教師データ、調整用データ、原検証用データから誤りや対象外のデータ等を除去するデータクレンジングを行う（ステップＳ１０２）。そして、指示部１０１は、実行する調整工程を指定する（ステップＳ１０３）。
【００７４】
そして、指示部１０１は各部に調整工程における検証の実行を指示する（ステップＳ１０４）。教師・検証用データ作成部１０２は、原教師データ、調整用データおよび原検証用データから教師データおよび検証用データを作成し、設定格納部１１０へ格納する（ステップＳ１０５）。そして、検証部１０３は、設定格納部１１０の設定等に基づき、教師データを学習し、検証用データを判定する（ステップＳ１０６）。
【００７５】
ここで、指示部１０１は、現工程の全ての検証が完了したか否かを判定する（ステップＳ１０７）。なお、全ての検証が完了したか否かは、例えば設定の候補の全てについて検証データの判定が行われたか否かによって判定される。また、指示部１０１は、全ての検証が完了していないと判定した場合（ステップＳ１０７、Ｎｏ）、ステップＳ１０４へ戻り、さらに検証を実行させる。
【００７６】
指示部１０１が全ての検証が完了したと判定した場合（ステップＳ１０７、Ｙｅｓ）、分析部１０４は、各調整工程に対応した分析方法によって分析を行い、決定した調整事項を設定格納部１１０へ格納する（ステップＳ１０８）。
【００７７】
ここで、指示部１０１は、全ての調整工程が完了していない場合（ステップＳ１０９、Ｎｏ）、ステップＳ１０３へ戻り、さらに調整工程を指定する。また、全調整工程が完了した場合（ステップＳ１０９、Ｙｅｓ）、調整装置１０は調整された設定等を出力し（ステップＳ１１０）、処理を終了する。なお、各調整工程の検証方法および分析方法は図３に示す通りである。
【００７８】
次に、図７を用いてマルウェア判定装置２０の処理について説明する。図７は、第１の実施形態に係るマルウェア判定装置の処理を示すフローチャートである。まず、学習処理について説明する。学習処理においては、マルウェアであるかグッドウェアであるかが既知の教師データが入力される。図７に示すように、学習を行う場合、特徴抽出・次元削減部２０２は教師データから特徴ベクトルを生成する（ステップＳ２０１）。そして、分類器２０３は特徴ベクトルを用いて学習を行う（ステップＳ２０２）。
【００７９】
次に、判定処理について説明する。判定処理においては、マルウェアであるかグッドウェアであるかが未知の判定対象データが入力される。図７に示すように、ホワイトリスト適用部２０１は、対象ファイルがホワイトリストに該当する場合（ステップＳ２１１、Ｙｅｓ）、対象ファイルがグッドウェアであると判定し、処理を終了する。
【００８０】
対象ファイルがホワイトリストに該当しない場合（ステップＳ２１１、Ｎｏ）、特徴抽出・次元削減部２０２は、対象ファイルの特徴抽出および必要に応じて次元削減を行い、特徴ベクトルを生成する（ステップＳ２１２）。そして、分類器２０３は、特徴ベクトルからマルウェアらしさのスコアを算出する（ステップＳ２１３）。そして、判定部２０４はスコアからマルウェア判定を行う（ステップＳ２１４）。
【００８１】
［第１の実施形態の効果］
調整装置１０は、所定の順序で１つ以上の前処理を実行した後、分類器によってファイルのスコアを算出するスコア算出処理を実行し、算出したスコアに基づいて該ファイルがマルウェアであるか否かの判定処理を行うマルウェア判定装置２０における、各処理を実行するための最適な設定を決定する。
【００８２】
指示部１０１は、マルウェア判定装置２０の各処理を所定の順序で選択する。教師・検証用データ作成部１０２および検証部１０３は、指示部１０１によって処理が選択されるたびに、選択された処理を実行するための設定の候補を順次適用し、また、指示部１０１によって選択された処理以外の処理のうち最適な設定が決定済みである処理に、最適な設定を適用する。そして、検証部１０３は、設定の適用が行われるたびに、適用された設定にしたがってマルウェア判定装置２０の各処理を実行した場合の、設定の候補のそれぞれに対応する結果を取得する。
【００８３】
分析部１０４は、教師・検証用データ作成部１０２および検証部１０３によって選択された処理の設定の候補のすべてについて対応する結果が取得されるたびに、設定の候補のうち、設定の候補のそれぞれに対応する結果からマルウェアの判定精度が最も高くなると判定された設定の候補を、選択した処理の最適な設定として決定する。
【００８４】
これによって、マルウェア判定装置２０の複数の処理の調整を行う場合であっても、各処理と設定の候補の組み合わせの全てについて検証および分析を行う必要がなく、精度向上手法の調整事項の調整を効率良く行うことができる。
【００８５】
また、指示部１０１は、例えばマルウェア判定装置２０において実行される順序と逆の順序で各処理を選択する。また、マルウェア判定装置２０が、ホワイトリストの適用、特徴抽出および次元削減の順で前処理を行い、ファイルがマルウェアであるか否かの判定を閾値によって行う場合、指示部１０１は、スコア算出処理、特徴抽出および次元削減、ホワイトリストの適用および判定処理の順で各処理を指定するようにしてもよい。また、調整装置１０は、各部を用いて教師データの調整を行うようにしてもよい。このように、分類器に密接な調整事項から順に調整を行っていくことで、より効果的な精度向上のための調整を効率的に行うことができる。
【００８６】
［第２の実施形態］
第１の実施形態においては、マルウェア判定装置が学習処理と判定処理の両方を行う場合について説明した。一方、第２の実施形態においては、マルウェア判定装置に学習機能が備わっていない場合の例について説明する。
【００８７】
［第２の実施形態の構成］
図８を用いて、第２の実施形態に係る調整装置およびマルウェア判定装置を含んだマルウェア判定システムの構成について説明する。図８は、第２の実施形態に係る調整装置およびマルウェア判定装置を含んだマルウェア判定システムの構成の一例を示す図である。
【００８８】
図８に示すように、マルウェア判定装置２０の分類器２０３ａは、第１の実施形態と異なり、学習機能が備わっていない。そのため、マルウェア判定装置２０は、教師データによってマルウェア判定のための学習済みの識別モデルを作成することができない。そこで、調整装置１０の検証部１０３は、マルウェア判定のための識別モデルを機械学習により取得し、取得した識別モデルを調整済設定とともにマルウェア判定装置２０に対して出力する。
【００８９】
［システム構成等］
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵ（Central  Processing  Unit）および当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００９０】
また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００９１】
［プログラム］
図９は、プログラムが実行されることにより、調整装置が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００９２】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００９３】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、調整装置１０の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、調整装置１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【００９４】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００９５】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３およびプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３およびプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００９６】
１  マルウェア判定システム
１０  調整装置
２０  マルウェア判定装置
１０１  指示部
１０２  教師・検証用データ作成部
１０３  検証部
１０４  分析部
１１０、２１０  設定格納部
２０１  ホワイトリスト適用部
２０２  特徴抽出・次元削減部
２０３、２０３ａ  分類器
２０４  判定部
【要約】      （修正有）【課題】マルウェア判定を行うための精度向上手法を組み合わせる場合の、各精度向上手法における調整事項の調整を効率良く行う。【解決手段】ホワイトリストの適用、特徴抽出および次元削減の順で前処理を行い、ファイルがマルウェアであるか否かの判定を閾値によって行うマルウェア判定装置２０に対して、調整装置１０は、スコア算出処理、特徴抽出および次元削減、ホワイトリストの適用および判定処理の順で、各処理に設定の候補の中から設定を適用していき、マルウェア判定精度を分析する。このとき、最適な設定が既に決定された処理については、以降は決定された最適な処理を適用し、分析を行う。【選択図】図１【図１】
0006039768.tif 000002
【図２】
0006039768.tif 000003
【図３】
0006039768.tif 000004
【図４】
0006039768.tif 000005
【図５】
0006039768.tif 000006
【図６】
0006039768.tif 000007
【図７】
0006039768.tif 000008
【図８】
0006039768.tif 000009
【図９】
0006039768.tif 000010