(57)【要約】【課題】効率の低下や誤検出を増大しないようにしつつ、検知漏れが少ない機械学習によるマルウェア判定を行う。【解決手段】マルウェア判定装置８０は、未学習データから、機械学習によるマルウェアか否かの判定が難しいデータを抽出する抽出手段８１と、判定対象データのマルウェアらしさを示すスコアを算出する分類手段８２と、抽出手段８１が抽出したデータと学習済みデータとを対象として学習を行って分類手段８２を更新する更新手段８３と、分類手段が算出したスコアにもとづいて判定対象データがマルウェアか否か判定する判定手段８４とを備えている。【選択図】図６
2018160172.tif 000002
【特許請求の範囲】
【請求項１】
機械学習を利用してマルウェア判定を行うマルウェア判定方法であって、
未学習データから、機械学習によるマルウェアか否かの判定が難しいデータを抽出し、
機械学習を更新するために、抽出された前記データと学習済みデータとを対象として学習し、
判定対象データのマルウェアらしさを示すスコアを算出し、
算出されたスコアにもとづいて判定対象データがマルウェアか否か判定する
ことを特徴とするマルウェア判定方法。
【請求項２】
グッドウェアとされているがスコアがあらかじめ定められている第１しきい値以上であるデータと、マルウェアとされているがスコアがあらかじめ定められている第２しきい値未満であるデータとを、機械学習によるマルウェアか否かの判定が難しいデータとして抽出する
請求項１記載のマルウェア判定方法。
【請求項３】
未学習データがマルウェアとされているのかグッドウェアとされているのかを表す情報を入力する
請求項２記載のマルウェア判定方法。
【請求項４】
機械学習を利用してマルウェア判定を行うマルウェア判定装置であって、
未学習データから、機械学習によるマルウェアか否かの判定が難しいデータを抽出する抽出手段と、
判定対象データのマルウェアらしさを示すスコアを算出する分類手段と、
前記抽出手段が抽出した前記データと学習済みデータとを対象として学習を行って前記分類手段を更新する更新手段と、
前記分類手段が算出したスコアにもとづいて判定対象データがマルウェアか否か判定する判定手段と
を備えたことを特徴とするマルウェア判定装置。
【請求項５】
抽出手段は、グッドウェアとされているがスコアがあらかじめ定められている第１しきい値以上であるデータと、マルウェアとされているがスコアがあらかじめ定められている第２しきい値未満であるデータとを、機械学習によるマルウェアか否かの判定が難しいデータとして抽出する
請求項４記載のマルウェア判定装置。
【請求項６】
未学習データがマルウェアとされているのかグッドウェアとされているのかを表す情報を入力する分類情報入力手段をさらに備えた請求項５記載のマルウェア判定装置。
【請求項７】
機械学習を利用してマルウェア判定を行うマルウェア判定を行うためのマルウェア判定プログラムであって、
コンピュータに、
未学習データから、機械学習によるマルウェアか否かの判定が難しいデータを抽出する処理と、
機械学習を更新するために、抽出された前記データと学習済みデータとを対象として学習する処理と、
判定対象データのマルウェアらしさを示すスコアを算出する処理と、
算出されたスコアにもとづいて判定対象データがマルウェアか否か判定する処理と
を実行させるためのマルウェア判定プログラム。
【請求項８】
コンピュータに、
グッドウェアとされているがスコアがあらかじめ定められている第１しきい値以上であるデータと、マルウェアとされているがスコアがあらかじめ定められている第２しきい値未満であるデータとを、機械学習によるマルウェアか否かの判定が難しいデータとして抽出させるための請求項７記載のマルウェア判定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械学習を利用してマルウェア判定を行うマルウェア判定方法、マルウェア判定装置およびマルウェア判定プログラムに関する。
【背景技術】
【０００２】
Windows （登録商標）やUNIX（登録商標）の環境における実行ファイルがマルウェアを含むか否か判定する手法として、主として、実行ファイルを実行して判定する動的判定と、実行ファイルを実行せずに判定する静的判定とがある。判定速度が重視される場合には、静的判定が用いられる。
【０００３】
特許文献１に、静的判定の手法として代表的なものとして、ハッシュ値一致判定およびパターンマッチ判定（シグニチャスキャン）が挙げられている。ハッシュ値一致判定は、既知のマルウェアのＭＤ５、ＳＨＡ１、ＳＨＡ２５６等のハッシュ値があらかじめ記憶され、検査対象ファイルのハッシュ値が、記憶されているハッシュ値と一致した場合、検査対象ファイルはマルウェアを含むとされる。パターンマッチ判定では、既知のマルウェアに含まれる特定の文字列やバイトコードがあらかじめ記憶され、検査対象ファイル中に記憶されている文字列やバイトコードが含まれている場合、検査対象ファイルはマルウェアを含むとされる。
【０００４】
また、特許文献１には、以下のような記述もある。すなわち、ハッシュ値一致判定およびパターンマッチ判定では、既存のマルウェアを改造した亜種マルウェアや新種のマルウェアの検知は難しいので、亜種マルウェアや新種のマルウェアを判定する手法として、ヒューリスティック判定が提案されている。ヒューリスティック判定では、過去の経験にもとづいてマルウェアらしさを定義し、その定義に従ってマルウェアか否か判定される。
【０００５】
さらに、特許文献１には、以下のような記述もある。すなわち、誤判定（誤検知）を低減するために、ホワイトリスト（信頼性が高いとされるプログラムやコードがリストアップされたリスト）を参照する方法が知られている。具体的には、あらかじめホワイトリストが作成され、ホワイトリストに掲載されているプログラムやコードがグッドウェア（マルウェアではないファイル）と判定され、ホワイトリストに掲載されていないプログラムやコードは、マルウェア等と見なされて、実行が禁止される。しかし、ホワイトリストを記憶するための記憶領域や照合のための処理時間が必要になるので、効率性が低下するとされている。なお、誤判定は、グッドウェアをマルウェアとして誤って判定してしまうことであり、False Positiveといわれることもある。
【０００６】
特許文献１には、機械学習を利用するマルウェア判定において、誤判定が少ないマルウェア判定を効率的に実行するために、既存マルウェアデータおよび既存グッドウェアデータを含む教師データから、誤検知グッドウェアデータの特徴ベクトルと特徴ベクトルが類似している既存マルウェアデータを削除する手法が記載されている。さらに、誤検知グッドウェアデータが、既存グッドウェアデータとして教師データに挿入された精査教師データが作成される。そして、分類器が、精査教師データの特徴ベクトルを学習し、検査対象ファイルの特徴ベクトルから、検査対象ファイルのマルウェアらしさを示すスコアを算出する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１６−２０６９５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１に記載された技術によれば、ホワイトリストを使用しないで、グッドウェアが誤ってマルウェアと判定される可能性が低減したマルウェア判定方法が実現される。
【０００９】
しかし、特許文献１に記載された技術は、マルウェアをマルウェアとして判定（検知）しないFalse Negative（検知漏れ）が考慮されていない。
【００１０】
標的型攻撃やランサムウェア等、攻撃が多様化および深刻化している。そのような状況の下では、False Positiveの低減による運用性の向上に加えて、False Negativeの低減による安全性の向上も重要である。
【００１１】
本発明は、効率の低下や誤検出（False Positive）を増大しないようにしつつ、検知漏れ（False Negative）が少ない機械学習によるマルウェア判定を行うことを目的とする。
【課題を解決するための手段】
【００１２】
本発明によるマルウェア判定方法は、機械学習を利用してマルウェア判定を行うマルウェア判定方法であって、未学習データから、機械学習によるマルウェアか否かの判定が難しいデータを抽出し、機械学習モデルを更新するために、抽出されたデータと学習済みデータとを対象として学習し、判定対象データのマルウェアらしさを示すスコアを算出し、算出されたスコアにもとづいて判定対象データがマルウェアか否か判定することを特徴とする。
【００１３】
本発明によるマルウェア判定装置は、機械学習を利用してマルウェア判定を行うマルウェア判定装置であって、未学習データから、機械学習によるマルウェアか否かの判定が難しいデータを抽出する抽出手段と、判定対象データのマルウェアらしさを示すスコアを算出する分類手段と、抽出手段が抽出したデータと学習済みデータとを対象として学習を行って分類手段を更新する更新手段と、分類手段が算出したスコアにもとづいて判定対象データがマルウェアか否か判定する判定手段とを備えたことを特徴とする。
【００１４】
本発明によるマルウェア判定プログラムは、機械学習を利用してマルウェア判定を行うマルウェア判定を行うためのマルウェア判定プログラムであって、コンピュータに、未学習データから、機械学習によるマルウェアか否かの判定が難しいデータを抽出する処理と、機械学習モデルを更新するために、抽出されたデータと学習済みデータとを対象として学習する処理と、判定対象データのマルウェアらしさを示すスコアを算出する処理と、算出されたスコアにもとづいて判定対象データがマルウェアか否か判定する処理とを実行させることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、効率の低下や誤検出を増大しないようにしつつ、検知漏れが少ない機械学習によるマルウェア判定を行うことができる。
【図面の簡単な説明】
【００１６】
【図１】マルウェア判定装置の一実施形態を示すブロック図である。
【図２】マルウェア判定装置の学習フェーズの処理の一例を示すフローチャートである。
【図３】学習フェーズが開始されるときに未学習データベースおよび学習済みデータベースに格納されているデータを示す説明図である。
【図４】マルウェア判定装置の判定フェーズの処理の一例を示すフローチャートである。
【図５】分類情報入力処理を示すフローチャートである。
【図６】マルウェア判定装置の主要部を示すブロック図である。
【図７】他の態様のマルウェア判定装置の主要部を示すブロック図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態を図面を参照して説明する。
【００１８】
図１は、本発明によるマルウェア判定装置の一実施形態を示すブロック図である。なお、図１には、データベース（学習済みデータベースおよび未学習データベース）等も示されている。また、図１には、説明を容易にするために、対象ファイル１１０、判定結果１２０および分類情報１３０も示されているが、それらは、マルウェア判定装置１に入力されるデータまたはマルウェア判定装置１から出力されるデータである。
【００１９】
図１に示すマルウェア判定装置１は、学習データ抽出部１０、分類器更新部２０、データベース更新部３０、分類器４０、判定部５０および分類情報入力部６０を備えている。
【００２０】
学習データ抽出部１０は、未学習データベース１００に格納されている未学習データを用いて、機械学習によるマルウェアか否かの判定が難しいデータを出力する。データベース１００に格納されている未学習データは、例えば、未学習データ本体（例えば、コードやプログラムなどの実行ファイル）と、その実行ファイルがマルウェアであるかグッドウェアであるかを表す情報（以下、分類情報という。）と、その実行ファイルのマルウェアらしさを示すスコアとの組で構成されている。
【００２１】
具体的には、学習データ抽出部１０は、未学習データベース１００に格納されている未学習データのうち、グッドウェアとされているがスコアがあらかじめ定められている第１しきい値以上であるデータ（データＡとする。）、および、マルウェアとされているがスコアがあらかじめ定められている第２しきい値未満であるデータ（データＢとする。）を、機械学習によるマルウェアか否かの判定が難しいデータとして抽出する。
【００２２】
第１しきい値（データＡを抽出するためのしきい値）と第２しきい値（データＢを抽出するためのしきい値）とは異なっていてもよいし同じでもよい。第１しきい値を高くしたり、第２しきい値を低くしたりすると抽出されるデータ数が少なくなる。第１しきい値を低くしたり、第２しきい値を高くしたりすると抽出されるデータ数が多くなる。前者は効率重視の調整、後者は精度重視の調整といえる。
【００２３】
なお、機械学習によるマルウェアか否かの判定が難しいデータの基準として、他の基準を用いてもよい。
【００２４】
分類器更新部２０は、学習済みデータベース１０１に格納されている全ての学習済みデータ、および学習データ抽出部１０が抽出した機械学習によるマルウェアか否かの判定が難しいデータ（データＡおよびデータＢ）について学習を行い、分類器４０を更新する。
【００２５】
具体的には、分類器更新部２０は、学習済みデータベース１０１に格納されている全ての学習済みデータと、学習データ抽出部１０が抽出したデータＡおよびデータＢ中の未学習データ本体、ならびに、学習済みデータベース１０１に格納されている全ての学習済みデータの分類情報および学習データ抽出部１０が抽出したデータＡおよびデータＢ中の未学習データ本体の分類情報を受け取り、それらについて機械学習を行う。
【００２６】
データベース更新部３０は、分類器更新部２０が分類器４０を更新した後、学習データ抽出部２０が抽出したデータを学習済みデータベース１０１に追加する。その後、未学習データベース１００を空にする。また、データベース更新部３０は、判定部５０が判定結果１２０を出力した後、対象ファイル１１０と判定結果１２０に含まれるスコアとを組にして未学習データベース１００に追加する。このとき、分類情報は空の状態で未学習データベース１００に追加される。なお、対象ファイル１１０は、マルウェアであるかグッドウェアであるかの分類が未知の実行ファイルである。
【００２７】
分類器４０は、対象ファイル１１０のマルウェアらしさを示すスコアを算出する。
【００２８】
判定部５０は、スコアを基に対象ファイル１１０がマルウェアか否かを判定し、判定結果１２０を出力する。判定部５０は、一例として、スコアがあらかじめ定められたしきい値以上であればマルウェアであると判定し、しきい値未満であればグッドウェアとするしきい値判定を用いる。なお、判定結果１２０は、マルウェアまたはグッドウェアの分類とスコアとを含む。
【００２９】
判定方法としてしきい値判定を用いる場合、しきい値を大きくすると、判定率（マルウェアがそうであると判定される率）は下がるが誤判定率も下がる。しきい値を減少させると、判定率と誤判定率の双方が上がる。ただし、しきい値と判定率および誤判定率は比例せず、ROC 曲線（Receiver Operating Characteristic curve ）に従う。すなわち、あるしきい値の範囲ではしきい値を増やしても誤判定率はそれほど上がらず、判定率は非常に上がることが知られている。従って、あらかじめ適切にしきい値を調整することにより、許容範囲内に誤判定率を収めつつ、比較的高い判定率を得られるようにすることが好ましい。
【００３０】
一例として、あらかじめ用意されたテスト用の対象ファイルをホールドアウト検証し、得られたスコアから、許容範囲内に誤判定率が収まるようにしきい値を決める方法が採用される。
【００３１】
分類情報入力部６０は、分類情報１３０を基に未学習データベース１００に格納されている未学習データのうち分類情報の更新対象となるデータを決め、当該データの分類情報を更新する。分類情報１３０は、未学習データのうちどのデータが更新対象となるかを決定するためのIDと、マルウェアであるかグッドウェアであるかを表す分類情報との組からなる。
【００３２】
なお、学習データ抽出部１０、分類器更新部２０、データベース更新部３０、分類器４０、判定部５０および分類情報入力部６０（通信機能を実現するためのハードウェア部分を除く。）は、プログラム記憶部に格納されたプログラムにもとづいてＣＰＵ（Central Processing Unit ）が処理を実行することによって実現可能である。しかし、それらは、ハードウェア（個別回路またはＬＳＩ（Large Scale Integration ））で実現されてもよい。
【００３３】
次に、マルウェア判定装置１の動作を説明する。
【００３４】
図２は、マルウェア判定装置１の学習フェーズの処理の一例を示すフローチャートである。図３は、学習フェーズが開始されるときに未学習データベース１００および学習済みデータベース１０１に格納されているデータを示す説明図である。
【００３５】
図３に示すように、未学習データベース１００には、未学習データ（コードやプログラム等の未学習データ本体、分類情報、および実行ファイルのマルウェアらしさを示すスコアとの組）がIDとともに格納されている。
【００３６】
図２に示すように、学習データ抽出部１０は、未学習データベース１００に格納されている未学習データのうち、マルウェアらしさを示すスコアがあらかじめ定められたしきい値以上のグッドウェアに分類されているデータ（データＡ）と、マルウェアらしさを示すスコアがあらかじめ定められたしきい値未満のマルウェアに分類されているデータ（データＢ）を、機械学習によるマルウェアか否かの判定が難しいデータとして抽出する（ステップＳ１０１）。
【００３７】
分類器更新部２０は、ステップＳ１０１の処理で抽出されたデータＡ，Ｂと、学習済みデータベース１０１に格納されている全ての学習済みデータとを学習して、分類器４０を更新する（ステップＳ１０２）。
【００３８】
データベース更新部３０は、ステップＳ１０１の処理で抽出されたデータＡ，Ｂを学習済みデータベース１０１に追加し、未学習データベース１００を空にする（ステップＳ１０３）。
【００３９】
図４は、マルウェア判定装置１の判定フェーズの処理の一例を示すフローチャートである。
【００４０】
図４に示すように、分類器４０は、対象ファイル１１０のマルウェアらしさを示すスコアを算出する（ステップＳ１１１）。判定部５０は、算出されたスコアを基に、対象ファイル１１０がマルウェアであるか否か判定する（ステップＳ１１２）。上述したように、判定部５０は、例えば、算出されたスコアが所定のしきい値以上であればマルウェアと判定し、しきい値未満であればグッドウェアと判定する。そして、判定部５０は、判定結果１２０を出力する。判定結果１２０は、マルウェアまたはグッドウェアの分類情報とスコアとを含む。
【００４１】
データベース更新部３０は、対象ファイル１１０と判定結果１２０に含まれるスコアとを組にして未学習データベース１００に追加する（ステップＳ１１３）。ただし、分類情報が空の状態で未学習データベース１００に追加される。
【００４２】
図５は、分類情報入力処理を示すフローチャートである。図５に示すように、分類情報入力部６０は、分類情報１３０に含まれるIDを参照して、未学習データベース１００のうち、IDに対応するデータについてのマルウェアであるかグッドウェアであるかの分類情報を、分類情報１３０に含まれるマルウェアであるかグッドウェアであるかの分類情報で更新する（ステップS１２１）。
【００４３】
なお、分類情報１３０は、例えば、マルウェア判定装置１の外部から対象ファイル１１０ととともに入力される情報である。
【００４４】
以上に説明したように、本実施形態では、マルウェア判定装置１は、分類器４０への学習がまだ行われていない実行ファイル（未学習データ本体）、その実行ファイルがマルウェアであるかグッドウェアであるかを表す分類情報、その実行ファイルのマルウェアらしさを示すスコアを含む未学習データから機械学習によるマルウェアか否かの判定が難しいデータを抽出する学習データ抽出部１０と、学習データ抽出部１０が抽出した機械学習によるマルウェアか否かの判定が難しいデータと学習済みデータとを対象として学習を行って分類器４０を更新する分類器更新部２０と、未学習データが格納される未学習データベース１００および学習済みデータが格納される学習済みデータベース１０１の内容を更新するデータベース更新部３０と、マルウェアであるか否かの判定対象となる対象ファイル１１０のマルウェアらしさを示すスコアを算出する分類器４０と、算出されたスコアに基づいて対象ファイル１１０がマルウェアであるか否かを判定する判定部５０と、未学習データベース１００中のIDが合致する未学習データの分類情報を更新する分類情報入力部６０とを備えている。
【００４５】
また、本実施形態では、マルウェア判定方法は、マルウェア判定装置１で実行されるマルウェア判定方法であって、分類器４０への学習がまだ行われていない実行ファイル（未学習データ本体）、その実行ファイルがマルウェアであるかグッドウェアであるかを表す分類情報、その実行ファイルのマルウェアらしさを示すスコアを含む未学習データから機械学習によるマルウェアか否かの判定が難しいデータを抽出する学習データ抽出工程と、学習データ抽出工程で抽出された機械学習によるマルウェアか否かの判定が難しいデータと学習済みデータとを対象として学習を行って分類器４０を更新する分類器更新工程と、未学習データが格納される未学習データベース１００および学習済みデータが格納される学習済みデータベース１０１の内容を更新するデータベース更新工程と、マルウェアか否かの判定対象となる対象ファイルから対象ファイルのマルウェアらしさを示すスコアを算出する分類工程と、算出されたスコアに基づいて対象ファイルがマルウェアであるか否かを判定する判定工程と、未学習データベース１００中のIDが合致する未学習データの分類情報を更新する分類情報入力工程とを備えている。
【００４６】
そのような構成にもとづいて、未学習データの全てを対象として学習が行われるのではなく、分類器４０が明確に分類することができなかったデータのみについて学習が行われる。すなわち、分類器４０が既に適切に学習できているデータは学習対象から外される。よって、学習に要する時間が短縮される。また、誤検出（False Positive）を増大しないようにしつつ、検知漏れ（False Negative）が少ない機械学習によるマルウェア判定を行うことができる。
【００４７】
なお、従来技術では、マルウェア判定の精度を向上させるために、多くのデータを学習する分類器が作成されていた。亜種のマルウェアや新種のマルウェアに対する判定精度を維持するには学習を継続して行って分類器を最新の状態に保つことが求められ、かつ、データの学習に要する時間がデータ数の増加に応じて増大するので、長期間に亘る運用に支障を来しかねないという課題がある。また、機械学習では、分類器がどのような尺度を用いてスコアを算出しているかが人間にとって分かりづらいので、判定精度を維持しながら学習データを削減することが困難であった。
【００４８】
なお、図１に示されたマルウェア判定装置１における各要素、未学習データベース１００、および学習済みデータベース１０１は、機能に着目して、役割が割り当てられているが、各要素等の構成の仕方は、図１に示された例に限定されない。
【００４９】
図６は、本発明によるマルウェア判定装置の主要部を示すブロック図である。図６に示すマルウェア判定装置８０は、未学習データから、機械学習によるマルウェアか否かの判定が難しいデータを抽出する抽出手段８１（実施形態では、学習データ抽出部１０で実現される。）と、判定対象データのマルウェアらしさを示すスコアを算出する分類手段８２（実施形態では、分類器４０で実現される。）と、抽出手段８１が抽出したデータと学習済みデータとを対象として学習を行って分類手段８２を更新する更新手段８３（実施形態では、分類器更新部２０で実現される。）と、分類手段が算出したスコアにもとづいて判定対象データがマルウェアか否か判定する判定手段８４（実施形態では、判定部５０で実現される。）とを備えている。
【００５０】
マルウェア判定装置８０で実行されるマルウェア判定方法は、未学習データから、機械学習によるマルウェアか否かの判定が難しいデータを抽出し、機械学習モデル（例えば、分類器４０）を更新するために、抽出されたデータと学習済みデータとを対象として学習し、判定対象データのマルウェアらしさを示すスコアを算出し、算出されたスコアにもとづいて判定対象データがマルウェアか否か判定する。
【００５１】
図７は、本発明による他の態様のマルウェア判定装置の主要部を示すブロック図である。図７に示すマルウェア判定装置８０は、未学習データがマルウェアとされているのかグッドウェアとされているのかを表す情報を入力する分類情報入力手段８５をさらに備えている。
【符号の説明】
【００５２】
１      マルウェア判定装置
１０    学習データ抽出部
２０    分類器更新部
３０    データベース更新部
４０    分類器
５０    判定部
６０    分類情報入力部
８０    マルウェア判定装置
８１    抽出手段
８２    分類手段
８３    更新手段
８４    判定手段
８５    分類情報入力手段
１００  未学習データベース
１０１  学習済みデータベース
１１０  対象ファイル
１２０  判定結果
１３０  分類情報
【図１】
2018160172.tif 000003
【図２】
2018160172.tif 000004
【図３】
2018160172.tif 000005
【図４】
2018160172.tif 000006
【図５】
2018160172.tif 000007
【図６】
2018160172.tif 000008
【図７】
2018160172.tif 000009