(57)【要約】【課題】機械学習を用いた、効率的かつ誤検知の少ないマルウェア判定を行う。【解決手段】既存マルウェアデータ１０１および既存グッドウェアデータ１０２を含む教師データ１００と、誤検知グッドウェアデータ１１０と、の特徴ベクトルを抽出し、既存マルウェアデータ１０１のうち誤検知グッドウェアデータ１１０と特徴ベクトルが類似しているものを除去し、誤検知グッドウェアデータ１１０を教師データに挿入し精査教師データ１２０とする。その際、精査教師データ１２０を学習した分類器が誤検知グッドウェアデータ１１０に対する誤検知率が小さくなるような位置に誤検知グッドウェアデータ１１０を挿入する。【選択図】図１
2016206950.tif 000002
【特許請求の範囲】
【請求項１】
悪性であることが既知のファイルである既存マルウェアデータ、良性であることが既知のファイルである既存グッドウェアデータ、および良性であることが既知であるが悪性と判定されたファイルである誤検知グッドウェアデータの各特徴を特徴ベクトルとしてそれぞれ抽出する特徴抽出部と、
前記既存マルウェアデータおよび前記既存グッドウェアデータを含む教師データから、前記誤検知グッドウェアデータの特徴ベクトルと特徴ベクトルが類似している既存マルウェアデータを削除する類似マルウェア除去部と、
前記誤検知グッドウェアデータを、前記既存グッドウェアデータとして前記教師データに挿入する誤検知グッドウェア挿入部と、
を有することを特徴とするマルウェア判定のための精査教師データ出力装置。
【請求項２】
前記誤検知グッドウェア挿入部は、
前記教師データの特徴ベクトルを学習する分類器の種類に応じて、前記教師データのうち、いずれの位置に前記誤検知グッドウェアデータを挿入するか決定し、該決定した位置に前記誤検知グッドウェアデータを挿入することを特徴とする請求項１に記載のマルウェア判定のための精査教師データ出力装置。
【請求項３】
前記誤検知グッドウェア挿入部は、
前記教師データの先頭または最後尾に前記誤検知グッドウェアデータを挿入することを特徴とする請求項１または２に記載のマルウェア判定のための精査教師データ出力装置。
【請求項４】
前記誤検知グッドウェア挿入部は、
前記誤検知グッドウェアデータと同じ複数のデータを前記教師データに挿入することを特徴とする請求項１から３のいずれか１項に記載のマルウェア判定のための精査教師データ出力装置。
【請求項５】
悪性であることが既知のファイルである既存マルウェアデータ、良性であることが既知のファイルである既存グッドウェアデータ、および良性であることが既知であるが悪性と判定されたファイルである誤検知グッドウェアデータの各特徴を特徴ベクトルとしてそれぞれ抽出する第１の特徴抽出部と、前記既存マルウェアデータおよび前記既存グッドウェアデータを含む教師データから、前記誤検知グッドウェアデータの特徴ベクトルと特徴ベクトルが類似している既存マルウェアデータを削除する類似マルウェア除去部と、前記誤検知グッドウェアデータを、前記既存グッドウェアデータとして前記教師データに挿入する誤検知グッドウェア挿入部と、を有する精査教師データ出力装置と、
前記誤検知グッドウェア挿入部によって前記誤検知グッドウェアデータが挿入された教師データおよびマルウェアであるか否かを判定する対象となる対象ファイルの各特徴をそれぞれ特徴ベクトルとして抽出する第２の特徴抽出部と、前記教師データの特徴ベクトルを学習し、前記対象ファイルの特徴ベクトルから前記対象ファイルのマルウェアらしさを示すスコアを算出する第１の分類器と、前記スコアに基づいて前記対象ファイルがマルウェアであるか否かを判定する判定部と、を有する学習判定装置と、
を備えたことを特徴とするマルウェア判定システム。
【請求項６】
教師データおよび前記誤検知グッドウェアデータの候補である誤検知グッドウェア候補データの各特徴を特徴ベクトルとしてそれぞれ抽出する第３の特徴抽出部と、前記教師データの前記特徴ベクトルを学習し、前記誤検知グッドウェア候補データの前記特徴ベクトルから誤検知グッドウェア候補データのマルウェアらしさを示すスコアを算出する第２の分類器と、前記誤検知グッドウェア候補データのうち、前記スコアが所定の閾値より大きいものを抽出し前記誤検知グッドウェアデータとして出力する誤検知グッドウェア抽出部と、を有する誤検知グッドウェアデータ出力装置をさらに備えたことを特徴とする請求項５に記載のマルウェア判定システム。
【請求項７】
マルウェア判定システムで実行されるマルウェア判定方法であって、
悪性であることが既知のファイルである既存マルウェアデータ、良性であることが既知のファイルである既存グッドウェアデータ、および良性であることが既知であるが悪性と判定されたファイルである誤検知グッドウェアデータの各特徴を特徴ベクトルとしてそれぞれ抽出する第１の特徴抽出工程と、
前記既存マルウェアデータおよび前記既存グッドウェアデータを含む教師データから、前記誤検知グッドウェアデータの特徴ベクトルと特徴ベクトルが類似している既存マルウェアデータを削除する類似マルウェア除去工程と、
前記誤検知グッドウェアデータを、前記既存グッドウェアデータとして前記教師データに挿入する誤検知グッドウェア挿入工程と、
前記誤検知グッドウェア挿入工程によって前記誤検知グッドウェアデータが挿入された教師データおよびマルウェアであるか否かを判定する対象となる対象ファイルの各特徴をそれぞれ特徴ベクトルとして抽出する第２の特徴抽出工程と、
前記教師データの特徴ベクトルを学習し、前記対象ファイルの特徴ベクトルから前記対象ファイルのマルウェアらしさを示すスコアを算出する分類工程と、
前記スコアに基づいて前記対象ファイルがマルウェアであるか否かを判定する判定工程と、
を含んだことを特徴とするマルウェア判定方法。
【請求項８】
コンピュータを、請求項１から４のいずれか１項に記載のマルウェア判定のための精査教師データ出力装置として機能させるためのマルウェア判定のための精査教師データ出力プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルウェア判定のための精査教師データ出力装置、マルウェア判定システム、マルウェア判定方法およびマルウェア判定のための精査教師データ出力プログラムに関する。
【背景技術】
【０００２】
Windows（登録商標）やUNIX（登録商標）の実行ファイルがマルウェアか否かを判定するアンチウィルスシステムでは、実行ファイルを実行して判定する動的判定、実行せずに判定する静的判定の２手法が用いられている。さらに、判定に特に速度が求められる場合は、静的判定が用いられる。
【０００３】
静的判定の手法として代表的なものに、ハッシュ値一致判定およびパターンマッチ判定（シグニチャスキャン）が挙げられる。まず、ハッシュ値一致判定とは、予め既知のマルウェアのＭＤ５、ＳＨＡ１、ＳＨＡ２５６等のハッシュ値をデータベースとして持ち、検査ファイルのハッシュ値がそのデータベースに合致すればマルウェアとするものである。次に、パターンマッチ判定とは、予め既知のマルウェアに含まれる特定の文字列やバイトコードをデータベースとして持ち、検査対象ファイル中にそれらのデータベース登録された文字列・バイトコードのいずれかを含んでいればマルウェアとするものである。
【０００４】
しかし、ハッシュ値一致判定およびパターンマッチ判定では、既存マルウェアを改造した亜種マルウェアや新種のマルウェアの検知は難しかった。そのため、亜種・新種のマルウェアを判定する手法として、ヒューリスティック判定が提案されている。これは、これまでの経験に基づいてマルウェアらしさを定義し、その定義に従ってマルウェアか否かを判定するものである。
【０００５】
ヒューリスティック判定の手法として、機械学習技術を用いる手法がいくつか提案されている。例えば、実行ファイル中に含まれる可読文字列をあらかじめ学習し、マルウェアで良く用いられる語が検査ファイル中にどの程度含まれるかを基準に、検査ファイルのマルウェアらしさを判定する方法が提案されている（例えば、特許文献１参照）。提案されている方法においては、例えば、学習対象のデータである教師データをいくつかのパラメータの組に変換したうえで機械学習アルゴリズムによって学習を行う。ここで、個々のパラメータを特徴、パラメータの組を特徴ベクトルと呼ぶ。例えば、単語名とその出現数の組が特徴ベクトルである。そして、機械学習技術を用いたヒューリスティック判定を用いた手法において、分類精度（Ｆ値等）や学習処理速度を改善する種々の方法が提案されている。
【０００６】
例えば、ある手法においては、実行ファイルのＰＥヘッダ情報を用いた機械学習によるマルウェア判定において、適切な次元圧縮と機械学習アルゴリズムを用いることで、９９％の検知率かつ０．５％以下の誤検知率を達成している（例えば、非特許文献１参照）。
【０００７】
また、機械学習において、分類精度を悪化させると思われるデータを教師データから除去する等、教師データの精査を行うことで精度向上を図る事例選択に関する手法が提案されている。例えば、ＳＶＭ（Support  Vector  Machine：サポートベクターマシン）を用いた画像分類において、ＳＶＭの内部パラメータαiを用い、分類しにくい曖昧な画像データを抽出し、これらのデータを教師データから取り除く事例選択手法が提案されている（例えば、非特許文献２参照）。また、スパース表現分類法（ＳＲＣ法）を用いた画像分類において、学習時にその分類の確からしさを表すスコアを用いて寄与率を算出し、寄与率が高い、すなわち、より確からしい典型的事例のみを教師データとすることで、分類精度を高く保ちつつ、学習処理時間の短縮を実現する手法が提案されている（例えば、特許文献２参照）。さらに、検知結果をホワイトリストと照らし合わせる方法が一般的に知られている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１２−２７７１０号公報
【特許文献２】特開２０１２−１７３７９５号公報
【非特許文献】
【０００９】
【非特許文献１】Shafiq,  et  al.,  "PE-Miner:  Mining  Structural  Information  to  Detect  Malicious  Executables  in  Realtime",  RAID  '09,  2009.
【非特許文献２】高取  等、「サポートベクターマシンの内部パラメータに基づく事例選択手法の提案と映像境界検出問題への応用」、人工知能学会全国大会（第22回）、2008.
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記の従来技術では、マルウェア判定における誤検知を十分に低減できているとはいえず、また、ホワイトリストを用いる手法においては、ホワイトリスト照合の処理時間やホワイトリストの記憶領域等が余分に必要となるという問題がある。
【００１１】
一般的に、マルウェア判定においては、判定対象となるグッドウェアの数が多いため、特に低い誤検知率を要求される。例えば、Microsoft社製のＯＳであるWindows7のシステムディレクトリには２０００個以上の実行形式ファイルが存在する。そのため、誤検知率０．５％でも、１０個以上のグッドウェアが誤ってマルウェアと誤検知されることになるため、誤検知率が十分に低いとは言えない。
【００１２】
また、あらかじめ記録したホワイトリストを作成し、判定時にこのホワイトリストを参照し合致したものをグッドウェアと判定することで誤検知を訂正する方法が知られているが、前述の通り、ホワイトリストを記憶するための記憶領域や照合のための処理時間が必要になるため、効率性が低下してしまう。
【００１３】
そこで、本発明の目的は、機械学習を用いた、効率的かつ誤検知の少ないマルウェア判定を行うことにある。
【課題を解決するための手段】
【００１４】
本発明のマルウェア判定のための精査教師データ出力装置は、悪性であることが既知のファイルである既存マルウェアデータ、良性であることが既知のファイルである既存グッドウェアデータ、および良性であることが既知であるが悪性と判定されたファイルである誤検知グッドウェアデータの各特徴を特徴ベクトルとしてそれぞれ抽出する特徴抽出部と、前記既存マルウェアデータおよび前記既存グッドウェアデータを含む教師データから、前記誤検知グッドウェアデータの特徴ベクトルと特徴ベクトルが類似している既存マルウェアデータを削除する類似マルウェア除去部と、前記誤検知グッドウェアデータを、前記既存グッドウェアデータとして、前記教師データに挿入する誤検知グッドウェア挿入部と、を有することを特徴とする。
【００１５】
また、本発明のマルウェア判定システムは、悪性であることが既知のファイルである既存マルウェアデータ、良性であることが既知のファイルである既存グッドウェアデータ、および良性であることが既知であるが悪性と判定されたファイルである誤検知グッドウェアデータの各特徴を特徴ベクトルとしてそれぞれ抽出する第１の特徴抽出部と、前記既存マルウェアデータおよび前記既存グッドウェアデータを含む教師データから、前記誤検知グッドウェアデータの特徴ベクトルと特徴ベクトルが類似している既存マルウェアデータを削除する類似マルウェア除去部と、前記誤検知グッドウェアデータを、前記既存グッドウェアデータとして、前記教師データに挿入する誤検知グッドウェア挿入部と、を有する精査教師データ出力装置と、前記誤検知グッドウェア挿入部によって前記誤検知グッドウェアデータが挿入された教師データおよびマルウェアであるか否かを判定する対象となる対象ファイルの各特徴をそれぞれ特徴ベクトルとして抽出する第２の特徴抽出部と、前記教師データの特徴ベクトルを学習し、前記対象ファイルの特徴ベクトルから前記対象ファイルのマルウェアらしさを示すスコアを算出する第１の分類器と、前記スコアに基づいて前記対象ファイルがマルウェアであるか否かを判定する判定部と、を有する学習判定装置と、を備えたことを特徴とする。
【００１６】
また、本発明のマルウェア判定方法は、マルウェア判定システムで実行されるマルウェア判定方法であって、悪性であることが既知のファイルである既存マルウェアデータ、良性であることが既知のファイルである既存グッドウェアデータ、および良性であることが既知であるが悪性と判定されたファイルである誤検知グッドウェアデータの各特徴を特徴ベクトルとしてそれぞれ抽出する第１の特徴抽出工程と、前記既存マルウェアデータおよび前記既存グッドウェアデータを含む教師データから、前記誤検知グッドウェアデータの特徴ベクトルと特徴ベクトルが類似している既存マルウェアデータを削除する類似マルウェア除去工程と、前記誤検知グッドウェアデータを、前記既存グッドウェアデータとして、前記教師データに挿入する誤検知グッドウェア挿入工程と、前記誤検知グッドウェア挿入工程によって前記誤検知グッドウェアデータが挿入された教師データおよびマルウェアであるか否かを判定する対象となる対象ファイルの各特徴をそれぞれ特徴ベクトルとして抽出する第２の特徴抽出工程と、前記教師データの特徴ベクトルを学習し、前記対象ファイルの特徴ベクトルから前記対象ファイルのマルウェアらしさを示すスコアを算出する分類工程と、前記スコアに基づいて前記対象ファイルがマルウェアであるか否かを判定する判定工程と、を含んだことを特徴とする。
【発明の効果】
【００１７】
本発明によれば、機械学習を用いた、効率的かつ誤検知の少ないマルウェア判定を行うことができる。
【図面の簡単な説明】
【００１８】
【図１】図１は、第１の実施形態に係るマルウェア判定システムの構成の一例を示す図である。
【図２】図２は、第１の実施形態に係るマルウェア判定システムにおける事例選択処理の一例を示すフローチャートである。
【図３】図３は、第１の実施形態に係るマルウェア判定システムにおける学習処理の一例を示すフローチャートである。
【図４】図４は、第１の実施形態に係るマルウェア判定システムにおける判定処理の一例を示すフローチャートである。
【図５】図５は、第２の実施形態に係るマルウェア判定システムの構成の一例を示す図である。
【図６】図６は、第２の実施形態に係る誤検知グッドウェアデータ出力装置の構成の一例を示す図である。
【図７】図７は、第２の実施形態に係るマルウェア判定システムにおける処理の一例を示すフローチャートである。
【図８】図８は、その他の実施形態に係るマルウェア判定装置の構成の一例を示す図である。
【図９】図９は、プログラムが実行されることにより、マルウェア判定装置や精査教師データ出力装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１９】
以下に、本願に係るマルウェア判定のための精査教師データ出力装置、マルウェア判定システム、マルウェア判定方法およびマルウェア判定のための精査教師データ出力プログラムを図面に基づいて詳細に説明する。なお、この実施形態により本願に係るマルウェア判定のための精査教師データ出力装置、マルウェア判定システム、マルウェア判定方法およびマルウェア判定のための精査教師データ出力プログラムが限定されるものではない。
【００２０】
［第１の実施形態の構成］
まず、図１を用いて、第１の実施形態の構成について説明する。図１は、第１の実施形態に係るマルウェア判定システムの構成の一例を示す図である。図１に示すように、マルウェア判定システム１は、精査教師データ出力装置１０および学習・判定装置２０を有する。精査教師データ出力装置１０は、既存マルウェアデータ１０１および既存グッドウェアデータ１０２から構成される教師データ１００と、誤検知グッドウェアデータ１１０と、を用いて事例選択を行い、精査教師データ１２０を出力する。また、学習・判定装置２０は、精査教師データ１２０を学習し、対象ファイル１３０の判定を行い、判定結果１４０を出力する。
【００２１】
精査教師データ出力装置１０は、特徴抽出部１１、次元削減部１２、類似マルウェア除去部１３および誤検知グッドウェア挿入部１４を有する。なお、教師データ１００の既存マルウェアデータ１０１および既存グッドウェアデータ１０２は、既存のマルウェアとグッドウェアの実行ファイル、およびその実行ファイルがマルウェアであるかグッドウェアであるかの分類を示す情報を含んでいる。そして、誤検知グッドウェアデータ１１０は、複数の誤検知したグッドウェアの実行ファイルで構成される。また、誤検知グッドウェアデータ１１０は教師データ１００中に含まれない実行ファイルでもよい。例えば、ユーザから誤検知の申告があったグッドウェア等を含めることができる。なお、精査教師データ出力装置１０で行われる処理を事例選択と呼ぶこともでき、さらに、精査教師データ出力装置を、事例選択装置等と呼ぶこともできる。
【００２２】
特徴抽出部１１は、悪性であることが既知のファイルである既存マルウェアデータ１０１、良性であることが既知のファイルである既存グッドウェアデータ１０２および良性であることが既知であるが悪性と判定されたファイルである誤検知グッドウェアデータ１１０の各特徴をそれぞれ特徴ベクトルとして抽出する。この時、特徴抽出部１１は、特徴ベクトルへの変換を行う前に、精度向上を目的として各特徴の取捨選択を行うようにしてもよい。また、次元削減部１２は、主成分分析等を利用して、特徴ベクトルの次元圧縮を行う。ここで、次元削減部１２は、主成分分析を用いることで相関がある特徴同士を自動的に１つの特徴にまとめることができる。
【００２３】
類似マルウェア除去部１３は、既存マルウェアデータ１０１および既存グッドウェアデータ１０２を含む教師データ１００から、誤検知グッドウェアデータ１１０の特徴ベクトルと特徴ベクトルが類似している既存マルウェアデータ１０１を削除する。具体的には、まず、類似マルウェア除去部１３は、既存マルウェアデータ１０１の実行ファイルの特徴ベクトルと、それぞれの誤検知グッドウェアデータ１１０の実行ファイルの特徴ベクトルを用いて類似度を算出する。そして、類似マルウェア除去部１３は、算出した類似度を条件判定することで、類似か否かを決定し、類似と決定した教師データ１００中の実行ファイルを既存マルウェアデータ１０１、すなわち教師データ１００の中から除去する。
【００２４】
ここで、類似マルウェア除去部１３は、類似度として、ユークリッド距離、コサイン類似度、Jaccard係数等のいずれかを用いることができる。例えば、ユークリッド距離は当該の２つの特徴ベクトルの差の内積の平方根と定義される。そこで、類似マルウェア除去部１３は、例えば、ユークリッド距離が指定の閾値以下なら互いに類似していると決定するようにしてもよい。
【００２５】
また、コサイン類似度は、当該の２つの特徴ベクトルがなす角度の余弦（cosine）と定義される。そこで、類似マルウェア除去部１３は、例えば、コサイン類似度が指定の閾値以上なら互いに類似していると決定するようにしてもよい。さらに、Jaccard係数は、２つの特徴ベクトルの値が０でない各要素について、互いに合致している要素の個数を全要素の個数で割ったものと定義される。そこで、類似マルウェア除去部１３は、例えば、Jaccard係数が指定の閾値以上なら互いに類似していると決定するようにしてもよい。
【００２６】
誤検知グッドウェア挿入部１４は、誤検知グッドウェアデータ１１０を、教師データ１００に挿入し、精査教師データ１２０として出力する。ここで、機械学習アルゴリズムを用いた分類器には、教師データの並び順がその分類精度に大きく影響するものがある。そのため、後述する学習・判定装置２０の分類器２３の種類に応じて、誤検知グッドウェアデータ１１０を適切な並び順で教師データ１００へ挿入することより、誤検知を低減させることができる。
【００２７】
例えば、分類器２３としてオンライン機械学習アルゴリズムＡＲＯＷ（Adaptive  Regularization  of  Weight  Vectors）を用いた場合は、誤検知グッドウェア挿入部１４が誤検知グッドウェアデータ１１０を教師データ１００の最後尾へ挿入することで、より誤検知を低減できることが観察された。一方、分類器２３としてサポートベクターマシンを用いた場合は、誤検知グッドウェア挿入部１４が誤検知グッドウェアデータ１１０を教師データ１００の先頭へ挿入することで、より誤検知を低減できることが観察された。また、分類器２３としてパーセプトロン等を用いた場合は、誤検知グッドウェアデータ１１０と同じものを複数個、教師データ１００の異なった位置に挿入して、誤検知グッドウェアデータ１１０の学習回数を増やすことが有効であった。
【００２８】
最終的に、精査教師データ出力装置１０は、類似マルウェア除去部１３および誤検知グッドウェア挿入部１４で修正された教師データ１００を精査教師データ１２０として出力する。精査教師データ１２０は、教師データ１００と同様に、既存のマルウェアとグッドウェアの実行ファイル、および、その実行ファイルがマルウェアであるかグッドウェアであるかの分類を示す情報で構成される。ただし、実行ファイルの代わりに、学習・判定装置２０で必要とする部分のみを取り出した断片情報であってもよい。例えば、学習・判定装置２０がＰＥヘッダを用いたマルウェア判定を行う場合は、ＰＥヘッダ情報の領域部分のみ取り出した断片情報を精査教師データ１２０としてもよい。精査教師データ１２０は、例えば、固定記憶媒体、メモリ、通信等の媒体上の情報である。
【００２９】
学習・判定装置２０は、特徴抽出部２１、次元削減部２２、分類器２３および判定部２４を有する。特徴抽出部２１は、精査教師データ１２０および対象ファイル１３０の特徴を特徴ベクトルとして抽出する。ここで、対象ファイル１３０は、マルウェアであるかグッドウェアであるかの分類が未知の実行ファイルである。また、次元削減部２２は、次元削減部１２と同様に、次元圧縮を行う。なお、特徴抽出部２１および次元削減部２２は、特徴抽出部１１および次元削減部１２と同様の機能を有するものであってもよい。
【００３０】
分類器２３は、精査教師データ１２０の特徴ベクトルを学習し、対象ファイル１３０の特徴ベクトルから対象ファイル１３０のマルウェアらしさを示すスコアを算出する。具体的には、分類器２３は、精査教師データ１２０の特徴ベクトルおよび精査教師データ１２０の実行ファイルがマルウェアであるかグッドウェアであるかの分類の情報を受け取り、機械学習を行う。例えば、分類器２３としては、ロジスティック回帰、サポートベクターマシン、パーセプトロン、ＡＲＯＷ、単純ベイズ等、の分類器を用いることができる。
【００３１】
機械学習を行った分類器２３は、対象ファイル１３０の特徴ベクトルから、対象ファイル１３０のマルウェアらしさをスコアという数値で出力する。そして、判定部２４は、スコアを基にマルウェアか否かを判定し、判定結果を出力する。なお、判定結果はマルウェアまたはグッドウェアの分類のみでもよいし、スコアを含めてもよい。また、判定部２４は、例えば、スコアがある閾値以上ならマルウェア、閾値以下ならグッドウェアとする閾値判定を用いてもよい。
【００３２】
判定方法として閾値判定を用いる場合、閾値を増大させると、検知率は下がるが誤検知率も下がり、逆に、閾値を減少させると、検知率・誤検知率が上がる。ただし、閾値と検知率、誤検知率の関係は比例関係ではなく、ＲＯＣ曲線に従い、ある閾値の範囲では閾値を増やしても誤検知率はそれほど上がらず、検知率は非常に上がることが知られている。そのため、あらかじめ、適切に閾値を調整することにより、許容範囲内に誤検知率を収めつつ、比較的高い検知率を得られるようにすることができる。例えば、テスト用の対象ファイルを用意・判定（ホールドアウト検証）し、得られたスコアから、許容範囲内に誤検知率が収まるように閾値を決める等の調整方法がある。
【００３３】
［第１の実施形態の処理］
図２〜４を用いて、第１の実施形態の処理について説明する。図２〜４は、第１の実施形態に係るマルウェア判定システムにおける各処理の一例を示すフローチャートである。図２を用いて、事例選択処理について説明する。ここで、事例選択処理とは、前述の通り、精査教師データ出力装置１０で行われる一連の処理を示すものである。
【００３４】
図２に示すように、まず、特徴抽出部１１は、教師データ１００および誤検知グッドウェアデータ１１０から特徴ベクトルを抽出する（ステップＳ１０１）。なお、教師データ１００は、既存マルウェアデータ１０１および既存グッドウェアデータ１０２を含んでいる。次に、次元削減部１２は、特徴抽出部１１で抽出した特徴ベクトルの次元の圧縮を行う（ステップＳ１０２）。
【００３５】
そして、類似マルウェア除去部１３は、特徴ベクトルを用いて、誤検知グッドウェアデータ１１０と類似の既存マルウェアデータ１０１を抽出し、教師データ１００から削除する（ステップＳ１０３）。その後、誤検知グッドウェア挿入部１４は、誤検知グッドウェアデータ１１０を、教師データ１００の適切な位置へ挿入し（ステップＳ１０４）、精査教師データ１２０を出力する。なお、誤検知グッドウェアデータ１１０を挿入する適切な位置とは、教師データ１００の先頭、最後尾等が挙げられ、精査教師データ１２０で最も学習されやすい位置や、精査教師データ１２０を学習した分類器の誤検知率が低くなるような位置である。
【００３６】
次に、図３を用いて、学習・判定装置２０で行われる学習処理について説明する。図３に示すように、まず、特徴抽出部２１は、精査教師データ１２０から特徴ベクトルを抽出する（ステップＳ１１１）。次に、次元削減部２２は、特徴抽出部２１で抽出した特徴ベクトルの次元の圧縮を行う（ステップＳ１１２）。そして、分類器２３にて精査教師データ１２０の学習を行う（ステップＳ１１３）。
【００３７】
最後に、図４を用いて、学習・判定装置２０で行われる判定処理について説明する。図４に示すように、まず、特徴抽出部２１は、対象ファイル１３０から特徴ベクトルを抽出する（ステップＳ１２１）。次に、次元削減部２２は、特徴抽出部２１で抽出した特徴ベクトルの次元の圧縮を行う（ステップＳ１２２）。そして、分類器２３は、特徴ベクトルから、対象ファイル１３０のマルウェアらしさのスコアを算出し（ステップＳ１２３）、判定部２４はスコアを基に対象ファイル１３０がマルウェアであるか否かを判定する（ステップＳ１２４）。
【００３８】
［第１の実施形態の効果］
精査教師データ出力装置１０は、既存マルウェアデータ１０１、既存グッドウェアデータ１０２および誤検知グッドウェアデータ１１０の各特徴を特徴ベクトルとしてそれぞれ抽出し、既存マルウェアデータ１０１および既存グッドウェアデータ１０２を含んだ教師データ１００から、誤検知グッドウェアデータ１１０の特徴ベクトルと特徴ベクトルが類似している既存マルウェアデータ１０１を削除し、誤検知グッドウェアデータ１１０を、既存グッドウェアデータ１０２として教師データ１００に挿入し、精査教師データ１２０として出力する。
【００３９】
従来、グッドウェアをマルウェアと判定する誤検知が発生していた原因として、分類器が該当のグッドウェアと特徴が類似したマルウェアを学習してしまうこと、および該当のグッドウェア自体がうまく学習されにくい条件となっていることの２つが挙げられる。本発明の第１の実施形態においては、誤検知グッドウェアデータを教師データから除去することで、分類器がグッドウェアと類似したマルウェアを学習してしまうことを抑制している。また、誤検知グッドウェアデータを教師データに含めることで、誤検知グッドウェアデータを学習しやすくしている。また、ホワイトリストを用いていないため、処理時間や記憶領域が余分に必要になることがない。以上より、本発明の実施形態１によれば、機械学習を用いた、効率的かつ誤検知の少ないマルウェア判定を行うことができる。
【００４０】
また、精査教師データ出力装置１０は、精査教師データ１２０の特徴ベクトルを学習する分類器の種類に応じて、教師データ１００のうち、いずれの位置に誤検知グッドウェアデータ１１０を挿入するか決定し、該決定した位置に誤検知グッドウェアデータ１１０を挿入する。分類器の種類によって、先頭に挿入することで最も学習されやすくなる場合や、最後尾に挿入することで最も学習されやすくなる場合等がある。分類器の特性等を考慮して挿入する位置を決定することで、より誤検知率が低くなるように学習を行うことができる。また、誤検知グッドウェアデータと同じ複数のデータを教師データに挿入することによっても、より学習されやすくなるという効果が得られる。
【００４１】
［第２の実施形態の構成］
マルウェア判定システム１に、誤検知グッドウェアデータ１１０を出力するための装置を追加して、誤検知グッドウェアデータ１１０の出力からマルウェアの判定までの一連の機能を持たせることもできる。そこで、第２の実施形態では、図５に示すように、マルウェア判定システム１に誤検知グッドウェアデータ出力装置３０を含める。図５は、第２の実施形態に係るマルウェア判定システムの構成の一例を示す図である。
【００４２】
図５に示すように、誤検知グッドウェアデータ出力装置３０は、誤検知グッドウェア候補データ１０５と、教師データ１００である既存マルウェアデータ１０１および既存グッドウェアデータ１０２と、から誤検知グッドウェアデータ１１０を抽出し出力する。そして、出力された誤検知グッドウェアデータ１１０は実施形態１と同様に、精査教師データ出力装置１０および学習・判定装置２０にて使用される。なお、誤検知グッドウェア候補データ１０５は、マルウェア判定システム１で誤検知される可能性があるグッドウェアで構成される。例えば、誤検知グッドウェア候補データ１０５には、教師データ１００に含まれる既存グッドウェアデータ１０２の一部あるいは全てを含めてもよいし、ユーザから誤検知の申告があったグッドウェア等の教師データ１００に含まれないグッドウェアを含めてもよい。
【００４３】
図６を用いて、誤検知グッドウェアデータ出力装置３０について詳しく説明する。図６は、第２の実施形態に係る誤検知グッドウェアデータ出力装置の構成の一例を示す図である。図６に示すように、誤検知グッドウェアデータ出力装置３０は、学習・判定部３０ａおよび誤検知グッドウェア選出部４０を有する。また、学習・判定部３０ａは、特徴抽出部３１、次元削減部３２、分類器３３および判定部３４を有する。
【００４４】
学習・判定部３０ａの各部の機能は、第１の実施形態における学習・判定装置２０の各部の機能と同様である。すなわち、特徴抽出部３１は、教師データ１００および誤検知グッドウェア候補データ１０５の特徴を特徴ベクトルとして抽出する。また、次元削減部３２は、次元削減部２２と同様に、次元圧縮を行う。
【００４５】
分類器３３は、教師データ１００の特徴ベクトルを学習し、誤検知グッドウェア候補データ１０５の特徴ベクトルから誤検知グッドウェア候補データ１０５のマルウェアらしさを示すスコアを算出する。具体的には、分類器３３は、教師データ１００の特徴ベクトルおよび教師データ１００の実行ファイルがマルウェアであるかグッドウェアであるかの分類の情報で機械学習を行う。機械学習を行った分類器３３は、誤検知グッドウェア候補データ１０５の特徴ベクトルから、誤検知グッドウェア候補データ１０５のマルウェアらしさをスコアという数値で出力する。そして、判定部３４は、スコア付き判定結果１０６を出力する。ここで、スコア付き判定結果１０６とは、グッドウェアを識別する名称（例えば、ファイル名、ファイルハッシュ値、または、誤検知グッドウェア候補データ順序番号等）と、そのスコアで構成される。
【００４６】
そして、誤検知グッドウェア選出部４０は、スコア付き判定結果１０６に基づき、指定の条件に従って、誤検知グッドウェア候補データ１０５から、誤検知グッドウェアを選び出し、誤検知グッドウェアデータ１１０として出力する。なお、指定の条件の例としては、指定閾値以上のスコアとなったグッドウェアを選出すること、またはスコアの高い順に指定個数分のグッドウェアを選出すること等が挙げられる。
【００４７】
［第２の実施形態の処理］
図７を用いて、第２の実施形態の処理について説明する。図７は、第２の実施形態に係るマルウェア判定システムにおける処理の一例を示すフローチャートである。図７に示すように、まず、特徴抽出部３１は、教師データ１００から特徴ベクトルを抽出する（ステップＳ２０１）。なお、教師データ１００は、既存マルウェアデータ１０１および既存グッドウェアデータ１０２を含んでいる。次に、次元削減部３２は、特徴抽出部３１で抽出した特徴ベクトルの次元の圧縮を行う（ステップＳ２０２）。そして、分類器３３にて教師データ１００の学習を行う（ステップＳ２０３）。
【００４８】
次に、特徴抽出部３１は、誤検知グッドウェア候補データ１０５から特徴ベクトルを抽出する（ステップＳ２０４）。そして、次元削減部３２は、特徴抽出部３１で抽出した特徴ベクトルの次元の圧縮を行う（ステップＳ２０５）。そして、分類器３３は、特徴ベクトルから、誤検知グッドウェア候補データ１０５のマルウェアらしさのスコアを算出し（ステップＳ２０６）、判定部３４は、スコア付き判定結果１０６を出力する（ステップＳ２０７）。最後に、誤検知グッドウェア選出部４０は、誤検知グッドウェア候補データ１０５から、高スコアのグッドウェアの順に抽出し、誤検知グッドウェアデータ１１０として出力する（ステップＳ２０８）。
【００４９】
［第２の実施形態の効果］
第２の実施形態においては、第１の実施形態のマルウェア判定システム１の構成に、誤検知グッドウェアデータ出力装置３０が追加されている。誤検知グッドウェアデータ出力装置３０は、教師データ１００と、誤検知グッドウェアデータ１１０の候補である誤検知グッドウェア候補データ１０５と、の特徴を特徴ベクトルとして抽出し、教師データ１００の特徴ベクトルを学習し、誤検知グッドウェア候補データ１０５の特徴ベクトルから誤検知グッドウェア候補データ１０５のマルウェアらしさを示すスコアを算出し、誤検知グッドウェア候補データ１０５のうち、スコアが所定の閾値より大きいものを抽出し誤検知グッドウェアデータとして出力する。これにより、誤検知グッドウェアデータ１１０を適切かつ効率的に選別し、生成することができる。
【００５０】
［その他の実施形態］
本発明は、上記の実施形態に限定されるものではなく、例えば、精査教師データ出力装置１０の特徴抽出部１１および次元削減部１２は、学習・判定装置２０の特徴抽出部２１および次元削減部２２と同一のものであってもよいし、異なるものであってもよい。例えば、類似マルウェア除去部１３での類似度としてJaccard係数を用いる場合は、次元圧縮を行うと類似度の算出が行えないため、次元削減部１２では次元圧縮を行わず、次元削減部２２でのみ次元圧縮を行う等、異なる処理を行ってもよい。
【００５１】
また、事例選択において、類似マルウェア除去部１３の次に誤検知グッドウェア挿入部１４で処理する例を説明したが、順序を逆にして、誤検知グッドウェア挿入部１４の次に類似マルウェア除去部１３で処理を行ってもよい。また、必ずしも両処理を実施するのではなく、類似マルウェア除去部１３の処理のみ、あるいは、誤検知グッドウェア挿入部１４の処理のみを実施するようにしてもよい。
【００５２】
また、第１の実施形態においては、マルウェア判定システム１に、精査教師データ出力装置１０および学習・判定装置２０が含まれる構成としたが、マルウェア判定装置が精査教師データ出力装置１０および学習・判定装置２０の機能を有する構成としてもよい。図８は、その他の実施形態に係るマルウェア判定装置の構成の一例を示す図である。図８に示すように、マルウェア判定装置１ａは、精査教師データ出力装置１０と同様の機能を有する精査教師データ出力部１０ａおよび学習・判定装置２０と同様の機能を有する学習・判定部２０ａから構成される。
【００５３】
［システム構成等］
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵ（Central  Processing  Unit）および当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００５４】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００５５】
［プログラム］
図９は、プログラムが実行されることにより、マルウェア判定装置１ａや精査教師データ出力装置１０が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００５６】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００５７】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、マルウェア判定装置１ａや精査教師データ出力装置１０の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、マルウェア判定装置１ａや精査教師データ出力装置１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【００５８】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００５９】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３およびプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３およびプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００６０】
１  マルウェア判定システム
１ａ  マルウェア判定装置
１０  精査教師データ出力装置
１０ａ  精査教師データ出力部
１１、２１、３１  特徴抽出部
１２、２２、３２  次元削減部
１３  類似マルウェア除去部
１４  誤検知グッドウェア挿入部
２０  学習・判定装置
２０ａ、３０ａ  学習・判定部
２３、３３  分類器
２４、３４  判定部
３０  誤検知グッドウェアデータ出力装置
４０  誤検知グッドウェア選出部
１００  教師データ
１０１  既存マルウェアデータ
１０２  既存グッドウェアデータ
１０５  誤検知グッドウェア候補データ
１０６  スコア付き判定結果
１１０  誤検知グッドウェアデータ
１２０  精査教師データ
１３０  対象ファイル
１４０  判定結果
【図１】
2016206950.tif 000003
【図２】
2016206950.tif 000004
【図３】
2016206950.tif 000005
【図４】
2016206950.tif 000006
【図５】
2016206950.tif 000007
【図６】
2016206950.tif 000008
【図７】
2016206950.tif 000009
【図８】
2016206950.tif 000010
【図９】
2016206950.tif 000011