特許第6039768号(P6039768)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

<>
  • 6039768-調整装置、調整方法および調整プログラム 図000002
  • 6039768-調整装置、調整方法および調整プログラム 図000003
  • 6039768-調整装置、調整方法および調整プログラム 図000004
  • 6039768-調整装置、調整方法および調整プログラム 図000005
  • 6039768-調整装置、調整方法および調整プログラム 図000006
  • 6039768-調整装置、調整方法および調整プログラム 図000007
  • 6039768-調整装置、調整方法および調整プログラム 図000008
  • 6039768-調整装置、調整方法および調整プログラム 図000009
  • 6039768-調整装置、調整方法および調整プログラム 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6039768
(24)【登録日】2016年11月11日
(45)【発行日】2016年12月7日
(54)【発明の名称】調整装置、調整方法および調整プログラム
(51)【国際特許分類】
   G06F 21/56 20130101AFI20161128BHJP
【FI】
   G06F21/56
【請求項の数】6
【全頁数】18
(21)【出願番号】特願2015-159508(P2015-159508)
(22)【出願日】2015年8月12日
【審査請求日】2015年8月12日
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】岡野 靖
(72)【発明者】
【氏名】熊谷 充敏
(72)【発明者】
【氏名】谷川 真樹
【審査官】 戸島 弘詩
(56)【参考文献】
【文献】 特開2007−013343(JP,A)
【文献】 特表2014−504399(JP,A)
【文献】 国際公開第2014/113281(WO,A1)
【文献】 原田 達也,機械学習による画像理解,映像情報メディア学会誌,日本,一般社団法人映像情報メディア学会,2015年 2月 1日,第69巻,第2号,第117〜123頁
【文献】 坂本 裕太,モジュール組換え型モデルにおけるモジュールの学習とモジュール組換え系列の学習,2012年度人工知能学会全国大会(第26回)論文集 [CD−ROM],社団法人人工知能学会,2012年 6月12日,1〜4頁
(58)【調査した分野】(Int.Cl.,DB名)
G06F21/56
G06N99/00
(57)【特許請求の範囲】
【請求項1】
所定の順序で1つ以上の前処理を実行した後、分類器によってファイルのスコアを算出するスコア算出処理を実行し、算出したスコアに基づいて該ファイルがマルウェアであるか否かの判定処理を行うマルウェア判定装置における、各処理を実行するための最適な設定を決定する調整装置であって、
前記マルウェア判定装置の各処理を、前記マルウェア判定装置において実行される順序と逆の順序で選択する指示部と、
前記指示部によって処理が選択されるたびに、該選択された処理を実行するための設定の候補を順次適用し、また、前記指示部によって選択された処理以外の処理のうち最適な設定が決定済みである処理に、該最適な設定を適用する設定適用部と、
前記設定適用部によって設定の適用が行われるたびに、前記設定適用部によって適用された設定にしたがって前記マルウェア判定装置の各処理を実行した場合の、前記設定の候補のそれぞれに対応する結果を取得する検証部と、
前記検証部によって前記選択された処理の前記設定の候補のすべてについて対応する結果が取得されるたびに、前記設定の候補のうち、前記設定の候補のそれぞれに対応する結果からマルウェアの判定精度が最も高くなると判定された設定の候補を、前記選択した処理の最適な設定として決定する分析部と、
を有することを特徴とする調整装置。
【請求項2】
前記指示部が、前記マルウェア判定装置において実行される順序と逆の順序で選択する処理は、ホワイトリストの適用と、特徴抽出および次元削減と、であることを特徴とする請求項1に記載の調整装置。
【請求項3】
教師データの調整を行う教師データ調整部をさらに有することを特徴とする請求項1または2に記載の調整装置。
【請求項4】
教師データを学習し、分類器でスコア算出処理を行うための識別モデルを作成する学習部をさらに有することを特徴とする請求項1からのいずれか1項に記載の調整装置。
【請求項5】
所定の順序で1つ以上の前処理を実行した後、分類器によってファイルのスコアを算出するスコア算出処理を実行し、算出したスコアに基づいて該ファイルがマルウェアであるか否かの判定処理を行うマルウェア判定装置における、各処理を実行するための最適な設定を決定する調整装置によって実行される調整方法であって、
前記マルウェア判定装置の各処理を、前記マルウェア判定装置において実行される順序と逆の順序で選択する指示工程と、
前記指示工程によって処理が選択されるたびに、該選択された処理を実行するための設定の候補を順次適用し、また、前記指示工程によって選択された処理以外の処理のうち最適な設定が決定済みである処理に、該最適な設定を適用する設定適用工程と、
前記設定適用工程によって設定の適用が行われるたびに、前記設定適用工程によって適用された設定にしたがって前記マルウェア判定装置の各処理を実行した場合の、前記設定の候補のそれぞれに対応する結果を取得する検証工程と、
前記検証工程によって前記選択された処理の前記設定の候補のすべてについて対応する結果が取得されるたびに、前記設定の候補のうち、前記設定の候補のそれぞれに対応する結果からマルウェアの判定精度が最も高くなると判定された設定の候補を、前記選択した処理の最適な設定として決定する分析工程と、
を含んだことを特徴とする調整方法。
【請求項6】
コンピュータを請求項1からのいずれか1項に記載の調整装置として機能させることを特徴とする調整プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルウェア判定装置の設定を調整する調整装置、調整方法および調整プログラムに関する。
【背景技術】
【0002】
MS Windows(登録商標)、Apple OSX(登録商標)、Linux(登録商標)およびその他Unix(登録商標)等のOS上で用いられる実行ファイルがマルウェアであるか否かを判定するアンチウィルスシステムが知られている。アンチウィルスシステムでは、実行ファイルを実行して判定を行う動的判定、および実行ファイルを実行せずに判定を行う静的判定の2手法が用いられ、判定に特に速度が求められる場合は静的判定が用いられる。
【0003】
代表的な静的判定の手法として、ハッシュ値一致判定、およびパターンマッチ判定(シグニチャスキャン)が挙げられる。ハッシュ値一致判定は、あらかじめ既知のマルウェアのMD5、SHA1、SHA256等のハッシュ値をデータベースとして持ち、検査対象ファイルのハッシュ値がそのデータベースに合致すればマルウェアと判定するものである。また、パターンマッチ判定は、あらかじめ既知のマルウェアに含まれる特定の文字列やバイトコードをデータベースとして持ち、検査対象ファイルがデータベースに登録された文字列・バイトコードのいずれかを含んでいればマルウェアと判定するものである。
【0004】
しかし、マルウェアが少し改造されるだけで、ハッシュ値は異なった値となってしまい、パターンマッチ判定で用いる特定の文字列等も変更されてしまう可能性がある。そのため、これらの手法では、既存マルウェアを改造した亜種のマルウェアや新種のマルウェアの検知は難しかった。そこで、亜種・新種のマルウェアを判定する手法として、ヒューリスティック判定が提案されている。これは、これまでの経験に基づいて、マルウェアらしさを定義し、その定義に従って判定を行うものである。
【0005】
ヒューリスティック判定として機械学習技術を用いる手法がいくつか提案されている。例えば、実行ファイル中に含まれる可読文字列をあらかじめ学習し、マルウェアで良く用いられる語が検査ファイル中にどの程度含まれるかを基準にそのマルウェアらしさを判定する方法が提案されている(例えば特許文献1を参照)。
【0006】
機械学習では、まず学習対象のデータ(教師データ)を、いくつかのパラメータの組に変換してから機械学習アルゴリズムで学習を行う。個々のパラメータを特徴、パラメータの組を特徴ベクトルと呼ぶ。例えば、特許文献1の例では、単語名とその出現数が特徴であり、その組が特徴ベクトルである。また、その組に含まれる特徴の個数を特徴ベクトル次元と呼び、前述の例では単語の種類数が特徴ベクトル次元となる。
【0007】
また、機械学習技術を用いたヒューリスティック判定は、亜種・新種のマルウェアも判定可能となる一方で、誤検知率(マルウェアでないファイル(グッドウェア)を間違えてマルウェアと判定してしまう率)が比較的大きい傾向がある。そこで、機械学習技術において、様々な精度向上手法が提案されている。例えば、実行ファイルのPEヘッダ情報を用いた機械学習によるマルウェア判定方法が提案されており、この方法では、適切な次元圧縮と機械学習アルゴリズムを用いることにより、検知精度を向上させている(例えば非特許文献1を参照)。
【0008】
また、分類精度を悪化させると思われるデータを教師データから除去する等、教師データの精査を行う手法である事例選択によっても精度を向上させることができる(例えば非特許文献2を参照)。非特許文献2では、サポートベクターマシン(SVM)を用いた画像分類において、SVMの内部パラメータαiを用い、分類しにくい曖昧な画像データを抽出し、抽出したデータを教師データから取り除く事例選択手法が用いられている。
【0009】
また、用いた機械学習アルゴリズムのパラメータ調整で精度を向上させる方法が一般的に実施されている(例えば非特許文献3を参照)。また、誤検知を判定時に訂正する一般的な手法として、ホワイトリストを用いた誤検知訂正手法もよく用いられる。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2012−27710号公報
【非特許文献】
【0011】
【非特許文献1】Shafiq, et al., “PE-Miner: Mining Structural Information to Detect Malicious Executables in Realtime”, RAID '09, 2009.
【非特許文献2】高取 等、「サポートベクターマシンの内部パラメータに基づく事例選択手法の提案と映像境界検出問題への応用」、人工知能学会全国大会(第22回)、2008.
【非特許文献3】Hsu, et al., “A Practical Guide to Support Vector Classification”, http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf
【発明の概要】
【発明が解決しようとする課題】
【0012】
機械学習を用いたマルウェア判定において、様々な精度向上手法を組み合わせれば、個々の手法だけを用いるよりも判定精度を大きく向上させることが可能である。ここで、各精度向上手法にはそれぞれに多様な調整事項が存在する。しかしながら、従来技術においては、精度向上手法の調整事項の調整を効率良く行うことができないという問題があった。
【0013】
すなわち、様々な精度向上手法を組み合わせて、各手法における調整事項の最適な設定を得るために、各精度向上手法と各調整事項の設定の組み合せを、手法横断的かつ網羅的に試行する必要があり、効率的な調整が行えない。
【0014】
網羅的に試行する調整の一例として、機械学習アルゴリズムのパラメータを調整することを考える。機械学習アルゴリズムのパラメータ調整手法の例として、非特許文献2に記載されているグリッドサーチ法がある。グリッドサーチ法は、アルゴリズムパラメータの候補値をいくつか挙げておき、その候補値を1つ1つ当てはめて、実際に学習・判定を行って試行し、最も良い精度を示した候補値を採用する方法である。複数のパラメータがある場合、パラメータそれぞれにおいて候補値を挙げておき、各パラメータの候補値を総当たりで組み合わせて試行する。例えば、2つのパラメータがあり、それぞれ10個ずつ候補値を用意した場合、その試行回数は10×10=100回となる。
【0015】
また、いくつかの特徴を取り除くことで次元を削減し、マルウェアの判定精度を向上させる特徴選択という手法を調整することも考えられる。例えば、特徴選択の調整方法として、ラッパー法がある(例えば特願2014−120428参照)。ラッパー法は、特徴選択の設定の候補について、実際に学習・判定を行って試行し、最も良い精度を示した特徴選択の設定を採用する方法である。
【0016】
ここで、特徴選択の設定の候補を作成する方法として、変数増加法がある。変数増加法では、特徴(あるいは属性)の数をpとすると、その試行は最小で2p−1回、最大でp×(p−1)/2回となる。アルゴリズムパラメータと特徴選択から最良の精度のものを求める場合、両候補値の組み合せの総当たりを網羅的に試行する必要がある。
【0017】
仮に調整すべきアルゴリズムパラメータが2個で、その候補値の個数を各10個、選択すべき特徴の個数が10個である場合、10×10×19 〜 10×10×45、すなわち1900〜4500回の試行が必要となる。このように、網羅的な試行は調整すべき手法・パラメータが増加するごとに、指数関数的にその試行回数が増え、効率的に調整を行うことができなくなる。
【0018】
また、その他の精度向上手法として、既知の誤検知グッドウェアを用いて類似のマルウェアのデータを教師データから除去すること、および、より学習されやすいようにその誤検知グッドウェアのデータを教師データに適切に挿入することで、特に低誤検知率を実現する事例選択手法が考えられる(例えば特願2015−087924参照)。しかしながら、他の手法と同様に、事例選択手法の調整事項の調整についても網羅的に試行していたため、効率良く調整を行うことができない場合があった。
【課題を解決するための手段】
【0019】
本発明の調整装置は、所定の順序で1つ以上の前処理を実行した後、分類器によってファイルのスコアを算出するスコア算出処理を実行し、算出したスコアに基づいて該ファイルがマルウェアであるか否かの判定処理を行うマルウェア判定装置における、各処理を実行するための最適な設定を決定する調整装置であって、前記マルウェア判定装置の各処理を所定の順序で選択する指示部と、前記指示部によって処理が選択されるたびに、該選択された処理を実行するための設定の候補を順次適用し、また、前記指示部によって選択された処理以外の処理のうち最適な設定が決定済みである処理に、該最適な設定を適用する設定適用部と、前記設定適用部によって設定の適用が行われるたびに、前記設定適用部によって適用された設定にしたがって前記マルウェア判定装置の各処理を実行した場合の、前記設定の候補のそれぞれに対応する結果を取得する検証部と、前記検証部によって前記選択された処理の前記設定の候補のすべてについて対応する結果が取得されるたびに、前記設定の候補のうち、前記設定の候補のそれぞれに対応する結果からマルウェアの判定精度が最も高くなると判定された設定の候補を、前記選択した処理の最適な設定として決定する分析部と、を有することを特徴とする。
【0020】
本発明の調整方法は、所定の順序で1つ以上の前処理を実行した後、分類器によってファイルのスコアを算出するスコア算出処理を実行し、算出したスコアに基づいて該ファイルがマルウェアであるか否かの判定処理を行うマルウェア判定装置における、各処理を実行するための最適な設定を決定する調整方法であって、前記マルウェア判定装置の各処理を所定の順序で選択する指示工程と、前記指示工程によって処理が選択されるたびに、該選択された処理を実行するための設定の候補を順次適用し、また、前記指示工程によって選択された処理以外の処理のうち最適な設定が決定済みである処理に、該最適な設定を適用する設定適用工程と、前記設定適用工程によって設定の適用が行われるたびに、前記設定適用工程によって適用された設定にしたがって前記マルウェア判定装置の各処理を実行した場合の、前記設定の候補のそれぞれに対応する結果を取得する検証工程と、前記検証工程によって前記選択された処理の前記設定の候補のすべてについて対応する結果が取得されるたびに、前記設定の候補のうち、前記設定の候補のそれぞれに対応する結果からマルウェアの判定精度が最も高くなると判定された設定の候補を、前記選択した処理の最適な設定として決定する分析工程と、を含んだことを特徴とする。
【発明の効果】
【0021】
本発明によれば、マルウェア判定を行うための精度向上手法を組み合わせる場合に、各精度向上手法における調整事項の調整を効率良く行うことができる。
【図面の簡単な説明】
【0022】
図1図1は、第1の実施形態に係る調整装置およびマルウェア判定装置を含んだマルウェア判定システムの構成の一例を示す図である。
図2図2は、第1の実施形態に係る調整装置の設定格納部のデータの一例を示す図である。
図3図3は、第1の実施形態に係る調整装置の各調整工程を説明するための図である。
図4図4は、スコア閾値と、検知率および誤検知率との関係を説明するための図である。
図5図5は、ROC曲線について説明するための図である。
図6図6は、第1の実施形態に係る調整装置の処理を示すフローチャートである。
図7図7は、第1の実施形態に係るマルウェア判定装置の処理を示すフローチャートである。
図8図8は、第2の実施形態に係る調整装置およびマルウェア判定装置を含んだマルウェア判定システムの構成の一例を示す図である。
図9図9は、プログラムが実行されることにより、調整装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【0023】
以下に、本願に係る調整装置、調整方法および調整プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係る調整装置、調整方法および調整プログラムが限定されるものではない。
【0024】
[第1の実施形態]
以下の実施形態では、第1の実施形態に係る調整装置およびマルウェア判定装置を含むマルウェア判定システムの構成、処理および効果について説明する。調整装置10は、所定の順序で1つ以上の前処理を実行した後、分類器によってファイルのスコアを算出するスコア算出処理を実行し、算出したスコアに基づいて該ファイルがマルウェアであるか否かの判定処理を行うマルウェア判定装置20における、各処理を実行するための最適な設定を決定する。
【0025】
[第1の実施形態の構成]
図1を用いて、第1の実施形態に係る調整装置およびマルウェア判定装置を含んだマルウェア判定システムの構成について説明する。図1は、第1の実施形態に係る調整装置およびマルウェア判定装置を含んだマルウェア判定システムの構成の一例を示す図である。まず、マルウェア判定システム1におけるデータの流れについて説明する。図1に示すように、まず、調整装置10には、ユーザ等による指示、機械学習のための原教師データ、調整および検証のための調整用データおよび原検証用データが入力される。
【0026】
調整装置10は、これらのデータを基に、調整済教師データおよび調整済設定を作成し、マルウェア判定装置20に対して出力する。そして、マルウェア判定装置20は、調整装置10から取得した各データを用いて、別途入力された判定対象ファイルの判定結果を出力する。ここで、調整装置10の構成および処理の一部は、マルウェア判定装置20の構成等によって決定される。そのため、まずマルウェア判定装置20の構成について説明する。
【0027】
[マルウェア判定装置]
図1に示すように、マルウェア判定装置20は、ホワイトリスト適用部201、特徴抽出・次元削減部202、分類器203、判定部204および設定格納部210を有する。マルウェア判定装置20は、まず設定格納部210に格納されている設定等を読み込み初期化した後、マルウェアとマルウェアでない実行ファイル(グッドウェア)から構成された教師データを学習する。マルウェア判定装置20は、教師データの学習後、判定対象ファイルがマルウェアであるかグッドウェアであるかを判定する。なお、教師データの学習および判定対象ファイルの判定には、ホワイトリスト適用部201、特徴抽出・次元削減部202、分類器203、判定部204が適宜用いられる。
【0028】
前述の通り、マルウェア判定装置20は学習処理を実施した後に判定処理を実施する。まず、学習処理における各部の機能について説明する。マルウェア判定装置20は、特徴抽出・次元削減部202による特徴抽出および次元削減、分類器203によるスコア算出の順で学習処理を実行する。学習対象である教師データは、既存のマルウェアとグッドウェアの実行ファイル、および実行ファイルがマルウェアであるかグッドウェアであるかの分類を示す情報で構成される。
【0029】
特徴抽出・次元削減部202は、教師データから特徴抽出を行う。さらに、特徴抽出・次元削減部202は、必要に応じて抽出した特徴に対して特徴選択や次元圧縮による次元削減を行い、特徴ベクトルを生成する。特徴抽出・次元削減部202が特徴ベクトルに重み付けを行うための手法の例として、例えばtf-idf(Term Frequency - Inverse Document Frequency)が挙げられる。
【0030】
ここで、特徴選択とは、目的の精度がより良くなるように各特徴を取捨選択する手法である。また、次元圧縮の代表的な手法として、例えば相関がある特徴同士を自動的に1つの特徴にまとめる主成分分析(PCA)が知られている。なお、次元削減においては、特徴選択と次元圧縮のどちらか一方のみを行ってもよいし、両方を行ってもよい。
【0031】
分類器203は、特徴ベクトルと、特徴ベクトルと対応する実行ファイルがマルウェアであるかグッドウェアであるかの分類を示す情報を用いて機械学習を行う。分類器203は、ロジスティック回帰、SVM、パーセプトロン、Passive-Aggressive、Adaptive Regularization of Weight Vectors (AROW)、単純ベイズ等のアルゴリズムを用いて機械学習を行うことができる。
【0032】
次に、判定処理における各部の機能について説明する。マルウェア判定装置20は、ホワイトリスト適用部201によるホワイトリストの適用、特徴抽出・次元削減部202による特徴抽出・次元削減、分類器203によるスコア算出、判定部204によるマルウェアであるか否かの判定の順で判定処理を実行する。判定対象である判定対象ファイルは、マルウェアであるかグッドウェアであるかが不明な実行ファイルである。
【0033】
ホワイトリスト適用部201は、判定対象ファイルがホワイトリストに該当するか否かを判定し、該当すると判定された判定対象ファイルをグッドウェアと判定する。ホワイトリストはMD5、SHA1、SHA256等のハッシュアルゴリズムを用いたハッシュのリストであってもよいし、定義された何らかの類似度の算出に必要な値の組(例えば特徴ベクトル)であってもよい。
【0034】
また、特徴抽出・次元削減部202は、ホワイトリストに該当しない判定対象ファイルの特徴ベクトルを生成する。なお、特徴ベクトルの生成方法は学習処理の場合と同様である。そして、分類器203は、特徴ベクトルから判定対象ファイルのマルウェアらしさをスコアという数値で出力する。
【0035】
判定部204は、スコアをもとに判定対象ファイルがマルウェアであるか否かを判定し、判定結果を出力する。判定結果はマルウェア/グッドウェアの分類のみであってもよいし、分類にスコアを付け加えたものであってもよい。判定部204は、例えば、スコアがある閾値を超える場合はマルウェア、スコアが閾値を超えない場合はグッドウェアと判定する閾値判定を採用してもよい。
【0036】
[調整事項]
また、学習処理および判定処理は、設定格納部210に格納されている設定等を読み込み初期化した後に実行される。設定格納部210に格納されている設定等は、これまで説明したマルウェア判定装置20の学習処理および判定処理を行う各部の処理に影響を与える。
【0037】
調整装置10は、設定格納部210に格納する調整事項が調整済みである調整済設定を作成し、マルウェア判定装置20に出力する。また、調整装置10は、教師データの調整も行い、調整済教師データをマルウェア判定装置20に出力するようにしてもよい。この場合、学習処理で用いられる教師データは調整済教師データである。
【0038】
ここで、調整事項について具体的な例を挙げて説明する。まず、特徴抽出・次元削減部202に関する調整事項の例として、特徴抽出時の重み付け設定(例えばtf-idfの重みを付けるか等)、取捨選択すべき特徴の設定(特徴選択設定)、および次元圧縮に用いるアルゴリズムとそのアルゴリズムのパラメータ(例えば圧縮次元数)が挙げられる。
【0039】
また、分類器203に関する調整事項の例として、利用するアルゴリズム、アルゴリズムの調整パラメータが挙げられる。また、アルゴリズムによっては同じ教師データを反復して学習すると精度向上する場合がある。このようなアルゴリズムを用いる場合、反復学習回数を調整事項としてもよい。
【0040】
なお、ホワイトリスト適用部201で用いられるホワイトリスト自体を調整事項としてもよい。また、判定部204に関する調整事項の例として、スコアの閾値判定を行う場合のスコア閾値が挙げられる。また、調整装置10は、事例選択等によって教師データの取捨選択およびデータの並び順の変更等を行うことで、教師データの調整を行い調整済教師データとして出力する。
【0041】
[調整装置]
図1に示すように、調整装置10は、指示部101、教師・検証用データ作成部102、検証部103、分析部104および設定格納部110を有する。調整装置10はマルウェア判定装置20の設定や与える教師データ等の調整事項について、調整工程を順に実行する。そして、調整工程で得られる指標がより向上するように調整事項および設定値を決定し、マルウェア判定装置20に対して調整済教師データおよび調整済設定を出力する。
【0042】
指示部101は、調整工程を管理し、その工程に応じた測定・検証の実行の指示を行う。また、指示部101は、マルウェア判定装置20の各処理を所定の順序で選択することで、マルウェア判定装置20の各部の処理に対応した調整工程の実施順序を決定する。指示部101は、例えば分類器203の調整を1番目に設定し、マルウェア判定装置20において分類器203より以前に行われる処理については、処理の順序と逆の順序としてもよい。
【0043】
教師・検証用データ作成部102は、指示部101の指示に基づき、原教師データ、原検証用データ、調整用データを用いて検証部103へ与える教師データおよび検証用データを作成する。
【0044】
検証部103は、マルウェア判定装置20と同様の処理を実行し、検証を行う。これにより、検証部103は、例えば判定結果としてスコアを出力する。そして、分析部104は、調整工程に対応する分析工程を実施する。具体的に、分析部104は、検証部103の学習または判定結果を基に指標を算出し、指標に基づいて最適な調整事項および設定値を決定し、決定した調整事項および設定値を設定格納部110へ格納する。
【0045】
また、原教師データおよび原検証用データはマルウェア判定装置20で用いられる教師データと同様の構成の情報体である。また、調整用データは誤検知しやすいグッドウェアのデータであり、例えば事例選択手法で用いられるものである(例えば特願2015−087924参照)。
【0046】
ここで、図2を用いて、調整事項と設定値の例について説明する。図2は、第1の実施形態に係る調整装置の設定格納部のデータの一例を示す図である。図2の番号1は、マルウェア判定装置20の分類器203に関する調整事項である。また、図2の番号2〜6は、マルウェア判定装置20の特徴抽出・次元削減部202に関する調整事項である。また、図2の番号7は、マルウェア判定装置20の教師データに関する調整事項である。また、図2の番号8は、マルウェア判定装置20の判定部204に関する調整事項である。また、図2の番号9は、マルウェア判定装置20のホワイトリスト適用部201に関する調整事項である。
【0047】
ここで、調整装置10で行われる、各調整工程および各調整工程に対応する分析工程を含む各工程について説明する。なお、各調整工程を実施する前に、指示部101は、各工程における指示部101が生成する設定の候補の範囲、検証方法、および分析部104で算出する指標、目的指標値等をあらかじめ指示として与えられているものとする。また、調整工程および分析工程については図3を用いて説明を行う。図3は、第1の実施形態に係る調整装置の各調整工程を説明するための図である。
【0048】
各調整工程において、検証部103は、選択された処理を実行するための設定の候補を順次適用し、また、指示部101によって選択された処理以外の処理のうち最適な設定が決定済みである処理に、最適な設定を適用する。そして、検証部103は、設定の適用が行われるたびに、適用された設定にしたがってマルウェア判定装置20の各処理を実行した場合の、設定の候補のそれぞれに対応する結果を取得する。
【0049】
まず、調整工程の前段階の処理として、調整装置10は、設定格納部110の初期化、およびデータのクレンジングを行う。ここで、データクレンジングについて説明する。機械学習によるマルウェア静的判定においては、ファイル種別、すなわち実行ファイルが32bit実行アプリケーションであるか、64bit実行アプリケーションであるか、またはVisual Basic製のアプリケーションであるか等に応じて、その特徴の傾向が異なる。そして、特定のファイル種別のみを学習・判定する方が精度向上する。
【0050】
そこで、データクレンジングを行うことにより、原データ(原教師データ、原検証用データ)から指定のファイル種別のみをデータとして選別する。また、マルウェアと間違ってラベルがつけられたグッドウェアが原データ中に存在する場合がある。そこで、データクレンジングにおいては、グッドウェアと非常に類似したマルウェアを原データから除去する。以降の工程では、特記が無い限り、原データはクレンジング済みのものを指すものとする。
【0051】
次に、図3に示すように、調整装置10は1番目の調整工程として分類器の調整を行う。指示部101は分類器のアルゴリズム、そのアルゴリズムのパラメータ、反復学習回数等の設定の組の候補をいくつか生成し、そのうちの1組を設定格納部110へ仮設定する。そして、教師・検証用データ作成部102は、原データを用いて、教師データおよび検証用データを生成する。
【0052】
検証部103は、設定格納部110に仮設定された設定等に基づき、その教師データおよび検証用データで学習・判定し、検証する。この検証がすべての設定の組の候補について実施されると、分析部104は、各検証結果について指標を算出し、最も良い指標であった設定の組を選出し、決定した調整事項としてその設定を設定格納部110へ格納する。
【0053】
検証方法の一例として、そのまま原教師データを教師データ、原検証用データを検証用データとして学習・判定を行うホールドアウト検証がある。その他の検証方法の例として、K−分割交差検証が挙げられる。K−分割交差検証では、まず原教師データと原検証用データを混合し、K個のデータを生成する。次に、1個のデータを検証用データとして選び、残りのデータを教師データとして学習・判定する。まだ検証用データとしていないデータがあれば、それを検証用データとして選んで学習・判定を行い、全てのデータが1度は検証用データとして選ばれるまで学習・判定を繰り返す。
【0054】
指標の例として、機械学習の検証では良く用いられるAUCやF値が挙げられる。また、指定の誤検知率以下となるように調整した際の検知率や、指定の検知率以上となるように調整した際の誤検知率を1から引いたもの(真陰性率)を指標として用いてもよい。
【0055】
マルウェア判定において、スコア閾値による判定を用いる場合、その閾値を増大させると検知率は下がるが、誤検知率も下がる。逆に、閾値を減少させると、検知率が上がり、誤検知率も上がる。この閾値と検知率および誤検知率の関係は比例関係ではなく、図4に示すように、ある閾値の範囲では閾値を増やしても誤検知率はそれほど上がらず、検知率は非常に上がることが知られている。図4は、スコア閾値と、検知率および誤検知率との関係を説明するための図である。また、このとき誤検知率と検知率の関係は、図5に示すようにROC曲線に従う。図5は、ROC曲線について説明するための図である。
【0056】
そのため、あらかじめ適切に閾値を調整することにより、指定の許容範囲内に誤検知率を収めつつ、比較的高い検知率を得られるようにすることができる。同様に、スコア閾値を調整することによって、指定の検知率以上となるようにすることもできる。なお、これらのスコア閾値は分析部104にて判定結果のスコアを分析することで決定する。
【0057】
次に、図3に示すように、調整装置10は2番目の調整工程として次元削減の調整を行う。このとき、検証に用いるデータおよび分類器の設定は、1番目の調整工程で決定され、設定格納部110に格納されているものを用いる。次元削減の一つの手法である特徴選択における設定項目として、例えばFile name、File size等がある(例えば特願2014−120428を参照)。もう一方の手法として、次元圧縮が挙げられ、次元圧縮の代表例として、主成分分析がある。
【0058】
主成分分析での設定項目は、例えば圧縮次元数である。指示部101は特徴抽出の重み、特徴選択設定および圧縮次元数の候補をいくつか作成し、そのうちの1つを設定格納部110に仮設定する。そして、教師・検証用データ作成部102は、原データを用いて、教師データおよび検証用データを生成する。
【0059】
検証部103は、設定格納部110に仮設定された設定等に基づき、その教師データおよび検証用データで学習・判定し、検証する。この検証がすべての設定の組の候補について実施されると、分析部104は、各検証結果について指標を算出し、最も良い指標であった設定の組を選出し、決定した調整事項としてその設定を設定格納部110へ格納する。
【0060】
特徴選択設定の候補の生成については、総当たり、変数増加法、変数減少法、ステップワイズ法等の手法を用いることができる(例えば特願2014−120428参照)。また、検証手法および指標は、他の工程と同一のものを用いても良いし、場合によっては別のものを用いてもよい。例えば、前の工程では分割交差検証を用い、本工程では処理時間を短縮するため、ホールドアウト検証を用いるようにしてもよい。
【0061】
次に、図3に示すように、調整装置10は3番目の調整工程として教師データの調整を行う。このとき、検証に用いるデータ、分類器および特徴抽出・次元削減の設定は、1番目および2番目の調整工程で決定され、設定格納部110に格納されているものを用いる。この場合、教師・検証用データ作成部102は、検証部103が他の工程で行っているように、選択された処理を実行するためのデータの候補を設定の候補として順次適用し、また、指示部101によって選択された処理以外の処理のうち最適な設定が決定済みである処理に、最適な設定を適用する。
【0062】
分類器によっては教師データの並び順がその判定精度に大きく影響する場合がある。データ順が精度に影響する分類器として、例えば、パーセプトロン、Passive-Aggressive、AROW、ニューラルネットワーク等がある。また、教師データとして、機械学習させると逆に判定精度が悪化するデータがある。一例として、余りにも古いデータは、直近のデータと傾向が異なり過ぎて、悪影響を及ぼすことがある。
【0063】
指示部101および教師・検証用データ作成部102は、原教師データから含有するデータの期間および並び順等が異なった教師データの候補をいくつか作成する。検証部103は、作成されたそれぞれの教師データ候補と検証用データを、これまでの工程で決定した設定等に基づき、学習・判定してホールドアウト検証を行う。そして、分析部104は各候補の指標を算出する。
【0064】
この検証がすべての設定の組の候補について実施されると、分析部104は、各検証結果について指標を算出し、最も良い指標であった教師データ候補を選出し、調整済教師データとして決定する。
【0065】
また、誤検知をより低減させる手法として、誤検知グッドウェアのデータを調整用データとして用いた事例選択手法が考えられる。事例選択手法によって、調整済教師データをさらに調整し、より判定精度を向上させることができる(例えば特願2015−087924参照)。
【0066】
また、検証手法および指標は、他の工程と同一のものを用いても良いし、場合によっては別のものを用いてもよい。例えば、事例選択手法を用いると、より誤検知率を低減させることができる(例えば特願2015−087924参照)。そのため、例えば本工程では前の工程より指定誤検知率が低い指標を用いるようにしてもよい。
【0067】
次に、図3に示すように、調整装置10は4番目の調整工程として判定設定の調整およびホワイトリストの生成を行う。このとき、検証に用いるデータ、分類器および特徴抽出・次元削減の設定は、1番目から3番目の調整工程で決定され、設定格納部110に格納されているものを用いる。
【0068】
この調整工程は、マルウェア判定装置20がスコア閾値による判定を行う場合に行われるものである。まず、これまでの調整工程で調整された設定、調整済教師データ、および検証用データを用いて、検証部103はホールドアウト検証を行う。次に、分析部104は指標を算出し、その指標が指示等で与えられた目的指標値に達しているか否かを判定する。目的指標値として、例えば指定誤検知率以下に調整した検知率を用いてもよい。
【0069】
目的指標値が達成された場合は、上記検証において分析部104で算出されたスコア閾値をそのまま設定格納部110に格納する。一方、目的指標値が達成されなかった場合は、分析部104は以下の処理を行い、ホワイトリストとスコア閾値を決定する。まず、分析部104は、検知率の最低値を越えるスコア閾値を算出する。次に、指定誤検知率以下となる個数だけ高いスコアから順にグッドウェアを抽出し、ホワイトリストとする。分析部104は、このようにして得たスコア閾値とホワイトリストを設定格納部110に格納する。
【0070】
そして、調整工程が完了すると、調整装置10は、決定した調整事項、すなわち設定格納部110に格納された各種設定および調整済教師データを出力する。マルウェア判定装置20は、これらの出力を読み込み、調整事項を各部に反映させる。なお、調整装置10は電子ファイルとして出力を行ってもよいし、通信上のデータとして出力を行ってもよい。
【0071】
また、各工程において、分析部104が各候補から設定等を選出し決定する処理には、人間による判断が含まれていてもよい。例えば、指標によっては、複数の候補で同一値の最良の指標値が計測されることがある。その場合は、それら候補を人間が判断してどれか1つに決定することが考えられる。
【0072】
[第1の実施形態の処理]
第1の実施形態の処理について説明する。まず、図6を用いて調整装置10の処理について説明する。図6は、第1の実施形態に係る調整装置の処理を示すフローチャートである。
【0073】
図6に示すように、指示部101は、指示等を読み込み、設定格納部110の初期設定を行う(ステップS101)。次に、教師・検証用データ作成部102は、原教師データ、調整用データ、原検証用データから誤りや対象外のデータ等を除去するデータクレンジングを行う(ステップS102)。そして、指示部101は、実行する調整工程を指定する(ステップS103)。
【0074】
そして、指示部101は各部に調整工程における検証の実行を指示する(ステップS104)。教師・検証用データ作成部102は、原教師データ、調整用データおよび原検証用データから教師データおよび検証用データを作成し、設定格納部110へ格納する(ステップS105)。そして、検証部103は、設定格納部110の設定等に基づき、教師データを学習し、検証用データを判定する(ステップS106)。
【0075】
ここで、指示部101は、現工程の全ての検証が完了したか否かを判定する(ステップS107)。なお、全ての検証が完了したか否かは、例えば設定の候補の全てについて検証データの判定が行われたか否かによって判定される。また、指示部101は、全ての検証が完了していないと判定した場合(ステップS107、No)、ステップS104へ戻り、さらに検証を実行させる。
【0076】
指示部101が全ての検証が完了したと判定した場合(ステップS107、Yes)、分析部104は、各調整工程に対応した分析方法によって分析を行い、決定した調整事項を設定格納部110へ格納する(ステップS108)。
【0077】
ここで、指示部101は、全ての調整工程が完了していない場合(ステップS109、No)、ステップS103へ戻り、さらに調整工程を指定する。また、全調整工程が完了した場合(ステップS109、Yes)、調整装置10は調整された設定等を出力し(ステップS110)、処理を終了する。なお、各調整工程の検証方法および分析方法は図3に示す通りである。
【0078】
次に、図7を用いてマルウェア判定装置20の処理について説明する。図7は、第1の実施形態に係るマルウェア判定装置の処理を示すフローチャートである。まず、学習処理について説明する。学習処理においては、マルウェアであるかグッドウェアであるかが既知の教師データが入力される。図7に示すように、学習を行う場合、特徴抽出・次元削減部202は教師データから特徴ベクトルを生成する(ステップS201)。そして、分類器203は特徴ベクトルを用いて学習を行う(ステップS202)。
【0079】
次に、判定処理について説明する。判定処理においては、マルウェアであるかグッドウェアであるかが未知の判定対象データが入力される。図7に示すように、ホワイトリスト適用部201は、対象ファイルがホワイトリストに該当する場合(ステップS211、Yes)、対象ファイルがグッドウェアであると判定し、処理を終了する。
【0080】
対象ファイルがホワイトリストに該当しない場合(ステップS211、No)、特徴抽出・次元削減部202は、対象ファイルの特徴抽出および必要に応じて次元削減を行い、特徴ベクトルを生成する(ステップS212)。そして、分類器203は、特徴ベクトルからマルウェアらしさのスコアを算出する(ステップS213)。そして、判定部204はスコアからマルウェア判定を行う(ステップS214)。
【0081】
[第1の実施形態の効果]
調整装置10は、所定の順序で1つ以上の前処理を実行した後、分類器によってファイルのスコアを算出するスコア算出処理を実行し、算出したスコアに基づいて該ファイルがマルウェアであるか否かの判定処理を行うマルウェア判定装置20における、各処理を実行するための最適な設定を決定する。
【0082】
指示部101は、マルウェア判定装置20の各処理を所定の順序で選択する。教師・検証用データ作成部102および検証部103は、指示部101によって処理が選択されるたびに、選択された処理を実行するための設定の候補を順次適用し、また、指示部101によって選択された処理以外の処理のうち最適な設定が決定済みである処理に、最適な設定を適用する。そして、検証部103は、設定の適用が行われるたびに、適用された設定にしたがってマルウェア判定装置20の各処理を実行した場合の、設定の候補のそれぞれに対応する結果を取得する。
【0083】
分析部104は、教師・検証用データ作成部102および検証部103によって選択された処理の設定の候補のすべてについて対応する結果が取得されるたびに、設定の候補のうち、設定の候補のそれぞれに対応する結果からマルウェアの判定精度が最も高くなると判定された設定の候補を、選択した処理の最適な設定として決定する。
【0084】
これによって、マルウェア判定装置20の複数の処理の調整を行う場合であっても、各処理と設定の候補の組み合わせの全てについて検証および分析を行う必要がなく、精度向上手法の調整事項の調整を効率良く行うことができる。
【0085】
また、指示部101は、例えばマルウェア判定装置20において実行される順序と逆の順序で各処理を選択する。また、マルウェア判定装置20が、ホワイトリストの適用、特徴抽出および次元削減の順で前処理を行い、ファイルがマルウェアであるか否かの判定を閾値によって行う場合、指示部101は、スコア算出処理、特徴抽出および次元削減、ホワイトリストの適用および判定処理の順で各処理を指定するようにしてもよい。また、調整装置10は、各部を用いて教師データの調整を行うようにしてもよい。このように、分類器に密接な調整事項から順に調整を行っていくことで、より効果的な精度向上のための調整を効率的に行うことができる。
【0086】
[第2の実施形態]
第1の実施形態においては、マルウェア判定装置が学習処理と判定処理の両方を行う場合について説明した。一方、第2の実施形態においては、マルウェア判定装置に学習機能が備わっていない場合の例について説明する。
【0087】
[第2の実施形態の構成]
図8を用いて、第2の実施形態に係る調整装置およびマルウェア判定装置を含んだマルウェア判定システムの構成について説明する。図8は、第2の実施形態に係る調整装置およびマルウェア判定装置を含んだマルウェア判定システムの構成の一例を示す図である。
【0088】
図8に示すように、マルウェア判定装置20の分類器203aは、第1の実施形態と異なり、学習機能が備わっていない。そのため、マルウェア判定装置20は、教師データによってマルウェア判定のための学習済みの識別モデルを作成することができない。そこで、調整装置10の検証部103は、マルウェア判定のための識別モデルを機械学習により取得し、取得した識別モデルを調整済設定とともにマルウェア判定装置20に対して出力する。
【0089】
[システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPU(Central Processing Unit)および当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0090】
また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0091】
[プログラム]
図9は、プログラムが実行されることにより、調整装置が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0092】
メモリ1010は、ROM(Read Only Memory)1011およびRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
【0093】
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、調整装置10の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、調整装置10における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
【0094】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
【0095】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093およびプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093およびプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【符号の説明】
【0096】
1 マルウェア判定システム
10 調整装置
20 マルウェア判定装置
101 指示部
102 教師・検証用データ作成部
103 検証部
104 分析部
110、210 設定格納部
201 ホワイトリスト適用部
202 特徴抽出・次元削減部
203、203a 分類器
204 判定部
【要約】      (修正有)
【課題】マルウェア判定を行うための精度向上手法を組み合わせる場合の、各精度向上手法における調整事項の調整を効率良く行う。
【解決手段】ホワイトリストの適用、特徴抽出および次元削減の順で前処理を行い、ファイルがマルウェアであるか否かの判定を閾値によって行うマルウェア判定装置20に対して、調整装置10は、スコア算出処理、特徴抽出および次元削減、ホワイトリストの適用および判定処理の順で、各処理に設定の候補の中から設定を適用していき、マルウェア判定精度を分析する。このとき、最適な設定が既に決定された処理については、以降は決定された最適な処理を適用し、分析を行う。
【選択図】図1
図1
図2
図3
図4
図5
図6
図7
図8
図9