(57)【特許請求の範囲】
【請求項１】
属性テーブルおよび属性値テーブルを含む特徴選択データベースと、
実行ファイルの属性の属性名が入力されると、入力された属性名の属性を抽出対象の属性として前記属性テーブルに登録し、実行ファイルの属性の属性値が入力されると、入力された属性値を削除対象または削除対象外の属性値として前記属性値テーブルに登録する特徴選択設定部と、
実行ファイルが入力されると、該実行ファイルから、前記属性テーブルに抽出対象として登録された属性の属性値を抽出し、抽出した属性値を特徴として含む特徴ベクトルを生成する特徴抽出部と、
前記特徴抽出部が生成した特徴ベクトルから、前記属性値テーブルに削除対象として登録された属性値の削除、または、削除対象外として登録された属性値以外の属性値の削除を行って、該特徴ベクトルを再構成する特徴選択部と、
前記特徴選択部が学習対象の実行ファイルの特徴ベクトルを再構成すると、該特徴ベクトルと該学習対象の実行ファイルの特徴ベクトルがマルウェアであるか否かの情報とを基に、該学習対象の実行ファイルの機械学習を行い、前記特徴選択部が判定対象の実行ファイルの特徴ベクトルを再構成すると、前記機械学習の結果と該特徴ベクトルとを基に、該判定対象の実行ファイルについて、マルウェアらしさのスコアを算出する分類器と、
前記分類器が算出した判定対象の実行ファイルのスコアを基に、該判定対象の実行ファイルがマルウェアであるか否かを判定する判定部と、を含むマルウェア判定器。
【請求項２】
請求項１に記載のマルウェア判定器を有するマルウェア判定システムであって、
特徴選択試行器をさらに有し、
前記特徴選択試行器は、
実行ファイルの属性の属性名と属性値とからなる特徴を１以上組み合わせた組の中から１つの組を選択して前記マルウェア判定器の前記特徴選択設定部に入力する処理を繰り返す特徴選択指示部と、
前記特徴選択指示部が前記組を前記特徴選択設定部に入力する度に、前記マルウェア判定器の前記特徴抽出部に、学習対象の実行ファイルを入力した後に判定対象の実行ファイルを入力する処理を繰り返す検定部と、
前記特徴選択指示部が前記組を前記特徴選択設定部に入力する度に、前記マルウェア判定器の前記判定部から、前記検定部が前記特徴抽出部に繰り返し入力した各判定対象の実行ファイルについて、該判定対象の実行ファイルのスコアと該判定対象の実行ファイルをマルウェアと判定したか否かを示す情報とを含む判定結果を取得し、該判定結果を基に、前記判定部の判定精度の良さを示す指標を計算する指標計算部と、を含み、
前記特徴選択指示部は、
前記特徴選択設定部に入力した組のうち、前記指標計算部が計算した指標が最も高い組を選出し、前記特徴選択設定部に入力する、マルウェア判定システム。
【請求項３】
請求項２に記載のマルウェア判定システムであって、
前記指標計算部は、
前記マルウェア判定器の前記判定部が、マルウェアである判定対象の実行ファイルを正しくマルウェアと判定した率である検知率、または、マルウェアでない判定対象の実行ファイルを誤ってマルウェアと判定した率である誤検知率を用いて、前記指標を計算する、マルウェア判定システム。
【請求項４】
請求項１に記載のマルウェア判定器を有するマルウェア判定システムであって、
ユーザインタフェースをさらに有し、
前記ユーザインタフェースは、
実行ファイルの属性の属性名および属性値を取得する特徴一覧取得部と、
前記特徴一覧取得部が取得した属性名および属性値の一覧を含む設定画面を表示する特徴選択入力部と、を含み、
前記特徴選択入力部は、
属性名を第１のチェックボックスと共に前記設定画面上に表示し、前記属性テーブルに抽出対象として登録された属性の属性名については、該第１のチェックボックスにチェックを付し、
属性値を第２のチェックボックスと共に前記設定画面上に表示し、前記属性値テーブルに削除対象として登録された属性値以外の属性値、または、削除対象外として登録された属性値については、該第２のチェックボックスにチェックを付し、
前記第１のチェックボックスまたは前記第２のチェックボックスのチェック状況が手動で変更されると、変更後の前記第１のチェックボックスにチェックが付いている属性名を前記マルウェア判定器の前記特徴選択設定部に入力すると共に、変更後の前記第２のチェックボックスにチェックが付いていない属性値またはチェックが付いている属性値を前記マルウェア判定器の前記特徴選択設定部に入力する、マルウェア判定システム。
【請求項５】
請求項４に記載のマルウェア判定システムであって、
前記特徴選択入力部は、
属性値を、該属性値が出現する実行ファイルの数である出現数と実行ファイルの全数と共に前記設定画面上に表示する、マルウェア判定システム。
【請求項６】
マルウェア判定器が行うマルウェア判定方法であって、
実行ファイルの属性の属性名が入力されると、入力された属性名の属性を抽出対象の属性として属性テーブルに登録し、実行ファイルの属性の属性値が入力されると、入力された属性値を削除対象または削除対象外の属性値として属性値テーブルに登録する特徴選択設定ステップと、
実行ファイルが入力されると、該実行ファイルから、前記属性テーブルに抽出対象として登録された属性の属性値を抽出し、抽出した属性値を特徴として含む特徴ベクトルを生成する特徴抽出ステップと、
前記特徴抽出ステップで生成した特徴ベクトルから、前記属性値テーブルに削除対象として登録された属性値の削除、または、削除対象外として登録された属性値以外の属性値の削除を行って、該特徴ベクトルを再構成する特徴選択ステップと、
前記特徴選択ステップで学習対象の実行ファイルの特徴ベクトルを再構成すると、該特徴ベクトルと該学習対象の実行ファイルの特徴ベクトルがマルウェアであるか否かの情報とを基に、該学習対象の実行ファイルの機械学習を行い、前記特徴選択ステップで判定対象の実行ファイルの特徴ベクトルを再構成すると、前記機械学習の結果と該特徴ベクトルとを基に、該判定対象の実行ファイルについて、マルウェアらしさのスコアを算出する分類ステップと、
前記分類ステップで算出した判定対象の実行ファイルのスコアを基に、該判定対象の実行ファイルがマルウェアであるか否かを判定する判定ステップと、を含むマルウェア判定方法。
【請求項７】
コンピュータを、
属性テーブルおよび属性値テーブルを含む記憶手段と、
実行ファイルの属性の属性名が入力されると、入力された属性名の属性を抽出対象の属性として前記属性テーブルに登録し、実行ファイルの属性の属性値が入力されると、入力された属性値を削除対象または削除対象外の属性値として前記属性値テーブルに登録する特徴選択設定手段と、
実行ファイルが入力されると、該実行ファイルから、前記属性テーブルに抽出対象として登録された属性の属性値を抽出し、抽出した属性値を特徴として含む特徴ベクトルを生成する特徴抽出手段と、
前記特徴抽出手段が生成した特徴ベクトルから、前記属性値テーブルに削除対象として登録された属性値の削除、または、削除対象外として登録された属性値以外の属性値の削除を行って、該特徴ベクトルを再構成する特徴選択手段と、
前記特徴選択手段が学習対象の実行ファイルの特徴ベクトルを再構成すると、該特徴ベクトルと該学習対象の実行ファイルの特徴ベクトルがマルウェアであるか否かの情報とを基に、該学習対象の実行ファイルの機械学習を行い、前記特徴選択手段が判定対象の実行ファイルの特徴ベクトルを再構成すると、前記機械学習の結果と該特徴ベクトルとを基に、該判定対象の実行ファイルについて、マルウェアらしさのスコアを算出する分類手段と、
前記分類手段が算出した判定対象の実行ファイルのスコアを基に、該判定対象の実行ファイルがマルウェアであるか否かを判定する判定手段と、として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、OS（Operating  System）上で用いられる実行ファイルがマルウェア（悪意のあるソフトウェア）であるか否かを判定する技術に関するものである。
【背景技術】
【０００２】
最近、MS-Windows（登録商標）、Apple  OS-X、Linux（登録商標）、およびUnix（登録商標）などのOS上で用いられる実行ファイルがマルウェアであるか否かを判定する手法がいくつか提案されている。例えば、MS-WindowsやUnixなどで用いられる実行ファイルがマルウェアであるか否かを判定するアンチウィルスシステムでは、実行ファイルを実行して判定する動的判定と、実行せずに判定する静的判定と、の2手法が用いられ、判定に特に速度が求められる場合は静的判定が用いられる。静的判定の手法として、代表的なものに、ハッシュ値一致判定、および、パターンマッチ判定（シグニチャスキャン）が挙げられる。ハッシュ値一致判定は、既存のマルウェアのMD（Message  Digest  Algorithm）5、SHA（Secure  Hash  Algorithm）1、SHA256などのハッシュ値を予めデータベースに登録し、判定対象の実行ファイルのハッシュ値がデータベースに登録されたハッシュ値と一致すれば、その実行ファイルをマルウェアと判定するものである。パターンマッチ判定は、既存のマルウェアに含まれる特定の文字列やバイトコードを予めデータベースに登録し、判定対象の実行ファイルがデータベースに登録された文字列・バイトコードのいずれかを含んでいれば、その実行ファイルをマルウェアと判定するものである。これらの手法は、誤検知率（マルウェアでない実行ファイルを誤ってマルウェアと判定してしまう率）が小さいという利点があるが、既存のマルウェアを改造した亜種のマルウェアや新種のマルウェアの検知は難しかった。【０００３】
そのため、判定対象の実行ファイルが亜種・新種のマルウェアであるか否かを判定する手法として、ヒューリスティック判定が提案されている。これは、これまでの経験を基に、マルウェアらしさを定義し、その定義に従って判定をするものである。【０００４】
ヒューリスティック判定として、機械学習技術を用いる手法がいくつか提案されている。特許文献1に記載の技術は、実行ファイル中に含まれる可読文字列を予め学習し、マルウェアで良く用いられる単語が判定対象の実行ファイル中にどの程度含まれるかを基準に、その実行ファイルのマルウェアらしさを判定する。【０００５】
機械学習では、まず、学習対象の実行ファイル（教師データ）を、いくつかのパラメータの組に変換してから機械学習アルゴリズムで学習を行う。このパラメータの組を特徴ベクトル、または、単に特徴と呼び、この組に含まれるパラメータの数を特徴ベクトル次元と呼ぶ。また、実行ファイルを特徴ベクトルに変換することを特徴抽出と呼ぶ。特徴ベクトルの例として、特許文献1に記載の技術では、単語の単語名とその単語の出現数との組が特徴ベクトルであり、単語種別の数が特徴ベクトル次元となる。【０００６】
特徴ベクトル次元が大きいほど、判定精度が良くなるというわけではなく、逆に悪くなる場合がある。この現象は「次元の呪い」（非特許文献1,2）として知られている。非特許文献3に記載の技術では、実行ファイルのPE（Portable  Executable）ヘッダ情報を用いた機械学習によるマルウェア判定を試みており、次元圧縮という手法を用いることで、特徴ベクトル次元を小さくし、より良い判定精度が得られることを示している。次元圧縮の手法でよく使われるものとして、例えば、主成分分析がある。これは、相関がある特徴同士を自動的に1つの特徴にまとめる手法である（例えば、人間の身長と体重という2つの特徴は大体比例関係にあるので、これら2つの特徴を1つの特徴にまとめる等の手法。この例では、1つにまとめた特徴を、例えば体の大きさと意味づけできるが、通常は意味づけできないことが多い）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開2012-027710号公報
【非特許文献】
【０００８】
【非特許文献１】坂野  鋭,  山田  敬嗣,  "怪奇!!次元の呪い  ---  識別問題，パターン認識，データマイニングの初心者のために（前編）”,  情報処理,  vol.43,  no.5,  pp.562-567  （2002）
【非特許文献２】坂野  鋭,  山田  敬嗣,  "怪奇!!次元の呪い  ---  識別問題，パターン認識，データマイニングの初心者のために（後編）”,  情報処理,  vol.43,  no.6,  pp.658-663  （2002）
【非特許文献３】Shafiq,  et  al.,  "PE-Miner:  Mining  Structural  Information  to  Detect  Malicious  Executables  in  Realtime”,  RAID  '09,  2009.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
マルウェア判定に機械学習技術を適用するにあたって、より良い判定精度を得るためには、上述のように、特徴ベクトル次元を小さくする等、特徴ベクトルの調整が必要である。しかし、特許文献1に記載の技術は、明示的に特徴ベクトルの調整を行う機能を備えていなかった。【００１０】
非特許文献3に記載の技術は、次元圧縮という方式により、特徴ベクトルの調整を行っている。ところで、マルウェア判定は、目的に応じて求められる判定精度が異なることがある。例えば、一般ユーザ向けには、誤検知率を特に低くすることが求められる。逆に専門家が新種のマルウェアを収集する目的には、多少の誤検知があっても、検知率（マルウェアである実行ファイルを正しくマルウェアと判定する率）を高くしたい場合がある。次元圧縮による方式は、ほぼ自動で行われるため、判定精度を全般的に良くすることには貢献するが、誤検知率を特に低くする等の目的別に特徴ベクトルの調整を行うのは難しかった。また、主成分分析などの次元圧縮は、ある特徴と他の特徴とをまとめて機械的に別の特徴を生成する手法であるため、生成された特徴を人間が理解することは難しく、専門家の知識を加味して特徴ベクトルの調整を施せなかった。【００１１】
そこで、本発明の目的は、次元圧縮のような特徴の自動変換を行うことなく、目的に応じて特徴ベクトルの調整を行うことができる技術を提供することにある。
【課題を解決するための手段】
【００１２】
本発明のマルウェア判定器は、
属性テーブルおよび属性値テーブルを含む特徴選択データベースと、
実行ファイルの属性の属性名が入力されると、入力された属性名の属性を抽出対象の属性として前記属性テーブルに登録し、実行ファイルの属性の属性値が入力されると、入力された属性値を削除対象または削除対象外の属性値として前記属性値テーブルに登録する特徴選択設定部と、
実行ファイルが入力されると、該実行ファイルから、前記属性テーブルに抽出対象として登録された属性の属性値を抽出し、抽出した属性値を特徴として含む特徴ベクトルを生成する特徴抽出部と、
前記特徴抽出部が生成した特徴ベクトルから、前記属性値テーブルに削除対象として登録された属性値の削除、または、削除対象外として登録された属性値以外の属性値の削除を行って、該特徴ベクトルを再構成する特徴選択部と、
前記特徴選択部が学習対象の実行ファイルの特徴ベクトルを再構成すると、該特徴ベクトルと該学習対象の実行ファイルの特徴ベクトルがマルウェアであるか否かの情報とを基に、該学習対象の実行ファイルの機械学習を行い、前記特徴選択部が判定対象の実行ファイルの特徴ベクトルを再構成すると、前記機械学習の結果と該特徴ベクトルとを基に、該判定対象の実行ファイルについて、マルウェアらしさのスコアを算出する分類器と、
前記分類器が算出した判定対象の実行ファイルのスコアを基に、該判定対象の実行ファイルがマルウェアであるか否かを判定する判定部と、を含む。【００１３】
本発明の第１のマルウェア判定システムは、
前記マルウェア判定器と、
特徴選択試行器と、を有し、
前記特徴選択試行器は、
属性名と属性値とからなる特徴を１以上組み合わせた組の中から１つの組を選択して前記マルウェア判定器の前記特徴選択設定部に入力する処理を繰り返す特徴選択指示部と、
前記特徴選択指示部が前記組を前記特徴選択設定部に入力する度に、前記マルウェア判定器の前記特徴抽出部に、学習対象の実行ファイルを入力した後に判定対象の実行ファイルを入力する処理を繰り返す検定部と、
前記特徴選択指示部が前記組を前記特徴選択設定部に入力する度に、前記マルウェア判定器の前記判定部から、前記検定部が前記特徴抽出部に繰り返し入力した各判定対象の実行ファイルについて、該判定対象の実行ファイルのスコアと該判定対象の実行ファイルをマルウェアと判定したか否かを示す情報とを含む判定結果を取得し、該判定結果を基に、前記判定部の判定精度の良さを示す指標を計算する指標計算部と、を含み、
前記特徴選択指示部は、
前記特徴選択設定部に入力した組のうち、前記指標計算部が計算した指標が最も高い組を選出し、前記特徴選択設定部に入力する。【００１４】
本発明の第２のマルウェア判定システムは、
前記マルウェア判定器と、
ユーザインタフェースと、を有し、
前記ユーザインタフェースは、
実行ファイルの属性の属性名および属性値を取得する特徴一覧取得部と、
前記特徴一覧取得部が取得した属性名および属性値の一覧を含む設定画面を表示する特徴選択入力部と、を含み、
前記特徴選択入力部は、
属性名を第１のチェックボックスと共に前記設定画面上に表示し、前記属性テーブルに抽出対象として登録された属性の属性名については、該第１のチェックボックスにチェックを付し、
属性値を第２のチェックボックスと共に前記設定画面上に表示し、前記属性値テーブルに削除対象として登録された属性値以外の属性値、または、削除対象外として登録された属性値については、該第２のチェックボックスにチェックを付し、
前記第１のチェックボックスまたは前記第２のチェックボックスのチェック状況が手動で変更されると、変更後の前記第１のチェックボックスにチェックが付いている属性名を前記マルウェア判定器の前記特徴選択設定部に入力すると共に、変更後の前記第２のチェックボックスにチェックが付いていない属性値またはチェックが付いている属性値を前記マルウェア判定器の前記特徴選択設定部に入力する。【００１５】
本発明のマルウェア判定方法は、
マルウェア判定器が行うマルウェア判定方法であって、
実行ファイルの属性の属性名が入力されると、入力された属性名の属性を抽出対象の属性として属性テーブルに登録し、実行ファイルの属性の属性値が入力されると、入力された属性値を削除対象または削除対象外の属性値として属性値テーブルに登録する特徴選択設定ステップと、
実行ファイルが入力されると、該実行ファイルから、前記属性テーブルに抽出対象として登録された属性の属性値を抽出し、抽出した属性値を特徴として含む特徴ベクトルを生成する特徴抽出ステップと、
前記特徴抽出ステップで生成した特徴ベクトルから、前記属性値テーブルに削除対象として登録された属性値の削除、または、削除対象外として登録された属性値以外の属性値の削除を行って、該特徴ベクトルを再構成する特徴選択ステップと、
前記特徴選択ステップで学習対象の実行ファイルの特徴ベクトルを再構成すると、該特徴ベクトルと該学習対象の実行ファイルの特徴ベクトルがマルウェアであるか否かの情報とを基に、該学習対象の実行ファイルの機械学習を行い、前記特徴選択ステップで判定対象の実行ファイルの特徴ベクトルを再構成すると、前記機械学習の結果と該特徴ベクトルとを基に、該判定対象の実行ファイルについて、マルウェアらしさのスコアを算出する分類ステップと、
前記分類ステップで算出した判定対象の実行ファイルのスコアを基に、該判定対象の実行ファイルがマルウェアであるか否かを判定する判定ステップと、を含む。【００１６】
本発明のプログラムは、
コンピュータを、
属性テーブルおよび属性値テーブルを含む記憶手段と、
実行ファイルの属性の属性名が入力されると、入力された属性名の属性を抽出対象の属性として前記属性テーブルに登録し、実行ファイルの属性の属性値が入力されると、入力された属性値を削除対象または削除対象外の属性値として前記属性値テーブルに登録する特徴選択設定手段と、
実行ファイルが入力されると、該実行ファイルから、前記属性テーブルに抽出対象として登録された属性の属性値を抽出し、抽出した属性値を特徴として含む特徴ベクトルを生成する特徴抽出手段と、
前記特徴抽出手段が生成した特徴ベクトルから、前記属性値テーブルに削除対象として登録された属性値の削除、または、削除対象外として登録された属性値以外の属性値の削除を行って、該特徴ベクトルを再構成する特徴選択手段と、
前記特徴選択手段が学習対象の実行ファイルの特徴ベクトルを再構成すると、該特徴ベクトルと該学習対象の実行ファイルの特徴ベクトルがマルウェアであるか否かの情報とを基に、該学習対象の実行ファイルの機械学習を行い、前記特徴選択手段が判定対象の実行ファイルの特徴ベクトルを再構成すると、前記機械学習の結果と該特徴ベクトルとを基に、該判定対象の実行ファイルについて、マルウェアらしさのスコアを算出する分類手段と、
前記分類手段が算出した判定対象の実行ファイルのスコアを基に、該判定対象の実行ファイルがマルウェアであるか否かを判定する判定手段と、として機能させる。
【発明の効果】
【００１７】
本発明のマルウェア判定器によれば、特徴選択設定部は、属性名・属性値が入力されると、その属性名の属性を抽出対象の属性として属性テーブルに登録し、その属性値を削除対象または削除対象外の属性値として属性値テーブルに登録する。そして、機械学習によるマルウェア判定の際には、特徴抽出部は、属性テーブルに抽出対象として登録された属性のみの属性値を抽出して特徴ベクトルを生成し、特徴選択部は、特徴ベクトルから、属性値テーブルに削除対象として登録された属性値、または、削除対象外として登録された属性値以外の属性値をさらに削除する。【００１８】
したがって、不要なまたは有用な属性・属性値を指定することで、不要な属性・属性値に関する特徴を特徴ベクトルから削除したり、有用な属性・属性値に関する特徴のみを特徴ベクトルに含めたりすることができるため、判定精度の向上を図りつつ、特徴ベクトル次元を小さくする等の特徴ベクトルの調整を行うことができる。【００１９】
また、次元圧縮のような特徴の自動変換を行わないため、専門家の知識を加味して特徴ベクトルの調整を施すことができる。【００２０】
また、目的に応じて属性・属性値を指定することで、目的に応じて特徴ベクトルの調整を行うこともできる。
【図面の簡単な説明】
【００２１】
【図１】本発明の第1の実施形態のマルウェア判定器の構成を示す構成図である。
【図２Ａ】本発明の第1の実施形態のマルウェア判定器における特徴選択設定処理の概要を説明するフローチャートである。
【図２Ｂ】本発明の第1の実施形態のマルウェア判定器における教師データ学習処理の概要を説明するフローチャートである。
【図２Ｃ】本発明の第1の実施形態のマルウェア判定器における対象ファイル判定処理の概要を説明するフローチャートである。
【図３】本発明の第1の実施形態のマルウェア判定器における属性テーブルおよび属性値テーブル1を説明する図である。
【図４】本発明の第1の実施形態のマルウェア判定器における属性値テーブル2を説明する図である。
【図５】本発明の第2の実施形態のマルウェア判定システムの構成を示す構成図である。
【図６】本発明の第2の実施形態の特徴選択試行器における処理の概要を説明するフローチャートである。
【図７】本発明の第3の実施形態のマルウェア判定システムの構成を示す構成図である。
【図８】本発明の第3の実施形態の特徴選択UIに表示される設定画面を説明する図である。
【発明を実施するための形態】
【００２２】
以下に、本発明を実施するための形態について図面を参照して説明する。
【００２３】
特徴ベクトル次元を小さくする方法には、次元圧縮の他に、特徴選択という手法がある。この手法は、各特徴を取捨選択することで、目的の判定精度となる組み合わせの特徴ベクトルを探し、特徴ベクトル次元を小さくする手法である。
【００２４】
本発明のマルウェア判定器は、特徴ベクトル次元を小さくする方法として、上記の特徴選択という手法を用いる。
（1）第1の実施形態
（1-1）第1の実施形態の構成
図1に、本発明の第1の実施形態のマルウェア判定器10の構成図を示す。
【００２５】
図1に示すように、本実施形態のマルウェア判定器10は、特徴選択設定部11と、特徴選択データベース（記憶手段）12と、特徴抽出部13と、特徴選択部14と、分類器15と、判定部16と、を有している。
【００２６】
本実施形態のマルウェア判定器10は、学習対象の実行ファイルのPE/COFF（Portable  Executable/Common  Object  File  Format）ヘッダ情報の機械学習を行い、判定対象の実行ファイルがマルウェアであるか否かの判定を行うものであり、これらの学習および判定に際して、特徴ベクトルに含める特徴を選択可能な特徴選択機能を具備している。
（1-2）第1の実施形態の動作
本実施形態のマルウェア判定器10は、まず、特徴ベクトルに含める特徴を設定する（特徴選択設定処理。図2A）。次に、既存のマルウェアとマルウェアでない実行ファイル（グッドウェア）とから構成された教師データの機械学習を行う（教師データ学習処理。図2B）。学習後は、判定対象の実行ファイルについて、マルウェアであるか否かを判定することができる（対象ファイル判定処理。図2C）。
【００２７】
以下、本実施形態のマルウェア判定器10における、特徴選択設定処理、教師データ学習処理、および対象ファイル判定処理について、個々に説明する。
（1-2-1）特徴選択設定処理
図2Aに、本実施形態のマルウェア判定器10における特徴選択設定処理の概要を説明するフローチャートを示す。
【００２８】
図2Aに示すように、特徴選択設定部11は、手入力、または、他の装置より、特徴選択に関する設定が入力されると（ステップA1）、その特徴選択に関する設定を特徴選択データベース12に登録する（ステップA2）。
【００２９】
特徴選択に関する設定は、実行ファイルから抽出するPE/COFFヘッダ情報等の属性の属性名と、各属性の属性値のうち特徴から削除する属性値と、から構成される。
【００３０】
図3に、特徴選択データベース12のデータ構造を示す。
【００３１】
図3に示すように、特徴選択データベース12は、属性テーブルと、属性値テーブル1と、を含んでいる。
【００３２】
特徴選択設定部11は、実行ファイルから抽出する属性の属性名は、属性テーブルに反映させる。具体的には、特徴選択に関する設定に記述された属性については、実行ファイルからの抽出対象の属性として取り扱い、属性テーブルにおいて、その属性の属性名のON/OFFフィールドの値をONとして登録する。一方、特徴選択に関する設定に記述されなかった属性については、実行ファイルからの抽出対象外の属性として取り扱い、属性テーブルにおいて、その属性の属性名のON/OFFフィールドの値をOFFとして登録する。
【００３３】
特徴選択設定部11は、各属性の属性値のうち特徴から削除する属性値は、属性値テーブル1に反映させる。具体的には、特徴選択に関する設定に記述された属性値については、特徴ベクトルからの削除対象の属性値として取り扱い、属性値テーブル1に登録する。
（1-2-2）教師データ学習処理
図2Bに、本実施形態のマルウェア判定器10における教師データ学習処理の概要を説明するフローチャートを示す。
【００３４】
教師データ学習処理で用いられる教師データは、既存のマルウェアとグッドウェアである実行ファイル（学習対象の実行ファイル）と、その実行ファイルがマルウェアであるか否かの分類を示す情報と、で構成される。なお、実行ファイルの代わりに、実行ファイルからPE/COFFヘッダ情報が記述された部分のみ切り出した情報を用いてもよい。
【００３５】
教師データは、特徴抽出部13、特徴選択部14、分類器15の順で処理される。
【００３６】
図2Bに示すように、まず、特徴抽出部13は、教師データが入力されると、教師データ中の実行ファイルからPE/COFFヘッダ情報の各属性の属性値を抽出し、さらに、抽出した属性値を特徴として含む特徴ベクトルを生成する（ステップB1）。実行ファイルからPE/COFFヘッダ情報の各属性の属性値を抽出する方法としては、dumpbin.exe（Microsoft  Visual  C++）、objdump（Linux  等のUnix）などのツールを用いる方法や、それらツール等で用いられているプログラムライブラリを用いる方法等を利用できる。属性値は、特徴選択データベース12の属性テーブルにてONとなっている属性の属性値のみが抽出される。これにより、不要な属性は特徴ベクトルから削除されるため、特徴ベクトル次元は、その分、小さくなる。PE/COFFヘッダ情報の属性の中には、1つの属性で複数の値を持つものがある。例えば、Characteristics属性は、“Executable"、“32  bit  word  machine"、“Debug  information  stripped"等の複数の値を持つ。これらの値は、それぞれ1つの特徴と見做す（この例だと、1つの属性で3つの特徴が抽出されることになる）。File  sizeなど、数値データを持つ属性は、1kB  以下、1kB〜100kB、100kB〜500kB、500kB〜1MB、1MB以上等、適当な間隔での範囲の名称に属性値を変換して取り扱う。これらの特徴の値について、tf-idf（term  trequency-inverse  document  frequency）等の適切な重みづけをしてもよい。
【００３７】
次に、特徴選択部14は、属性値テーブル1に従って、特徴ベクトルから特徴を削除することで、特徴選択を行い、特徴ベクトルを再構成する（ステップB2）。例えば、図3の通りに属性値テーブル1に属性値が登録されている場合、“Characteristics":“Executable"が特徴ベクトルに含まれていれば、特徴“Characteristics":“Executable"を特徴ベクトルから削除する。
【００３８】
次に、分類器15は、前段の特徴抽出部13および特徴選択部14で処理された特徴ベクトルと、学習対象の実行ファイルがマルウェアであるか否かの分類の情報と、を受け取り、その学習対象の実行ファイルの機械学習を行う（ステップB3）。分類器15には、ロジスティック回帰、サポートベクタマシン、パーセプトロン、Passive-Aggressive、単純ベイズ、決定木等、適切な分類器を使用してよい。
（1-2-3）対象ファイル判定処理
図2Cに、本実施形態のマルウェア判定器10における対象ファイル判定処理の概要を説明するフローチャートを示す。
【００３９】
対象ファイル判定処理で用いられる判定対象の実行ファイルは、その実行ファイル全体であってもよいし、その実行ファイルからPE/COFFヘッダ情報が記述された部分のみ切り出した情報であってもよい。
【００４０】
判定対象の実行ファイルは、特徴抽出部13、特徴選択部14、分類器15、判定部16の順で処理される。
【００４１】
まず、特徴抽出部13および特徴選択部14は、特徴抽出部13に判定対象の実行ファイルが入力されると、その判定対象の実行ファイルに対して、（1-2-2）教師データ学習処理時と同様の処理を行う（ステップC1,C2）。
【００４２】
次に、分類器15は、（1-2-2）教師データ学習処理時の機械学習の結果と、前段の特徴抽出部13および特徴選択部14で処理された特徴ベクトルと、を基に、判定対象の実行ファイルのマルウェアらしさを、スコアという数値で算出する（ステップC3）。マルウェアらしさのスコアを算出する方法としては、例えば、特許文献1に記載の技術を利用して、マルウェアで良く用いられる特徴が、判定対象の実行ファイルの特徴ベクトル中にどの程度含まれるかを基準に判定を行う方法等、公知の方法を利用することができる。
【００４３】
次に、判定部16は、分類器15で算出されたスコアを基に、判定対象の実行ファイルがマルウェアであるか否かを判定し、判定結果を出力する（ステップC4）。判定結果は、判定対象の実行ファイルをマルウェア/グッドウェアのどちらに分類したかの情報のみでも良いし、それに分類器15で算出されたスコアを付け加えてもよい。判定方法の一例として、スコアがある閾値以上ならマルウェア、その閾値未満ならグッドウェアとする閾値判定が挙げられる。
【００４４】
なお、本実施形態においては、特徴選択部14は、属性値テーブル1に登録されている属性値を特徴ベクトルから削除するという処理を行うが、その反対に、属性値テーブルに登録されている属性値のみを特徴ベクトルに含めるという処理をしてもよい。この場合、特徴選択に関する設定においては、特徴から削除する属性値に代えて、特徴として含める属性値を指定し、図3の属性値テーブル1に代えて、図4の属性値テーブル2を用意し、指定された属性値を削除対象外の属性値として属性値テーブル2に登録する。図4の通りに属性値テーブル2に属性値が登録されている場合、特徴ベクトルにおいて、Import  DLL属性に関する特徴としては、“Import  DLL":“WINSOCK32.DLL"、“Import  DLL":“WININET.DLL"の属性値のみを残し、これ以外のImport  DLL属性の属性値は全て削除する。
【００４５】
実行ファイルがもつ属性値には、マルウェア判定にほとんど役に立たないものと、非常に役立つものとがある。例えば、役立たないものとして、どの実行ファイルにも必ず現れる属性値“Characteristics":“Executable"があり、役立つものとして、スパイウェア等の通信機能を持つマルウェアではよく出現する“Import  DLL":“WINSOCK32.DLL"等がある。そのため、役に立たない属性値は属性値テーブル1に登録して特徴ベクトルから削除し、役に立つ属性値が明確に判明している場合には、属性値テーブル1の代わりに属性値テーブル2を用意して、役に立つ属性値を属性値テーブル2に登録して、その属性値のみで判定を行う、という使い分けを行うことができる。
【００４６】
上述したように本実施形態においては、特徴選択設定部11は、手入力または他の装置より属性名・属性値が入力されると、その属性名の属性を抽出対象の属性として属性テーブルに登録し、その属性値を削除対象または削除対象外の属性値として属性値テーブルに登録する。そして、機械学習によるマルウェア判定の際には、特徴抽出部13は、属性テーブルに抽出対象として登録された属性のみの属性値を抽出して特徴ベクトルを生成し、特徴選択部14は、特徴ベクトルから、属性値テーブルに削除対象として登録された属性値、または、削除対象外として登録された属性値以外の属性値をさらに削除する。
【００４７】
したがって、マルウェア判定器10に不要なまたは有用な属性・属性値を指定することで、不要な属性・属性値に関する特徴を特徴ベクトルから削除したり、有用な属性・属性値に関する特徴のみを特徴ベクトルに含めたりすることができるため、判定精度の向上を図りつつ、特徴ベクトル次元を小さくする等の特徴ベクトルの調整を行うことができる。また、特徴ベクトル次元を小さくすることができるため、分類器15の処理を軽減することができ、機械学習やマルウェア判定の高速化を図ることができる。
【００４８】
また、次元圧縮のような特徴の自動変換を含まないため、専門家の知識を加味した属性・属性値の指定を行うことができる。例えば、ヘッダ情報の属性の中には、Section  alignment、File  alignment等、デフォルト値を持つ属性があり、マルウェアでは、そのデフォルト値から外れている場合があることが知られている。また、マルウェアは、パッカーと呼ばれる実行ファイル圧縮ソフトを使う傾向がグッドウェアより多いことが知られており、それはSection  flags属性で判定できる。そこで、それらの知識を用いて、有用な属性・属性値の指定を行うことができる。
【００４９】
パッカーは、グッドウェアでも使用されることがある。そこで、マルウェア判定器10の誤検知率を特に低くしたい場合は、デフォルト値を持つ属性のみを指定し、Section  flags属性を指定しない等により、目的に応じて特徴ベクトルの調整を行うこともできる。
（2）第2の実施形態
本発明の第2の実施形態のマルウェア判定システムは、図1に示したマルウェア判定器10へ、他の装置から特徴選択に関する設定を自動で入力するものである。
（2-1）第2の実施形態の構成
図5に、本発明の第2の実施形態のマルウェア判定システムの構成図を示す。
【００５０】
図5に示すように、本実施形態のマルウェア判定システムは、マルウェア判定器10の他に、特徴選択を試行する特徴選択試行器20を他の装置として設けている。また、特徴選択試行器20は、特徴選択指示部21と、検定部22と、指標計算部23と、を有している。
【００５１】
特徴選択を自動的に行う手法は大別して、ラッパー法、フィルタ法、組み込み法があり、本実施形態ではラッパー法を用いる。ラッパー法は、様々な特徴選択の設定に対して、実際に機械学習・分類を行って精度を測定し、最もよい精度の特徴選択の設定を探索する方法である。特徴の組み合わせの探索方法は、全ての組み合わせを試行する総当たり法や、試行回数を減らす工夫を行う変数増加法、変数減少法、ステップワイズ法等の方法がある。本実施形態では、変数増加法を用いた場合について説明するが、他の探索方法を用いてもよい。
（2-2）第2の実施形態の動作
以下、特徴選択試行器20における処理について説明する。
【００５２】
まず、特徴選択試行器20における処理の概要を説明する。
【００５３】
図6に、特徴選択試行器20における処理の概要を説明するフローチャートを示す。
【００５４】
図6に示すように、まず、特徴選択指示部21は、特徴を選択する際の候補となる特徴のリスト（特徴候補リスト）を読み込む（ステップD1）。続いて、特徴選択指示部21は、探索方法に従って、これら候補の特徴から、属性名と属性値とからなる特徴を1以上組み合わせた組である特徴選択の設定を1つ選択し、マルウェア判定器10に入力する（ステップD2）。
【００５５】
次に、検定部22は、既存のマルウェアと既存のグッドウェアとを含む検定用データを分割して、教師データと判定対象の実行ファイルとを生成する（ステップD3）。続いて、検定部22は、教師データをマルウェア判定器10に入力し、マルウェア判定器10に教師データを学習させた後（ステップD4）、判定対象の実行ファイルをマルウェア判定器10に入力し、マルウェア判定器10に判定対象の実行ファイルがマルウェアであるか否かを判定させる（ステップD5）。その判定結果（マルウェア/グッドウェアの分類の情報と、マルウェアらしさのスコア）は、指標計算部23にて取得される（交差検定）。
【００５６】
検定部22は、ステップD3で生成した教師データと判定対象の実行ファイルの全てについて、ステップD4,D5を繰り返す。
【００５７】
指標計算部23は、検定部22が検定を完了した場合（ステップD6のYes）、判定対象の実行ファイルの各々の判定結果を検定用データと突き合わせて評価し、マルウェア判定器10の判定部16の判定精度の良さを示す指標を計算する（ステップD7）。
【００５８】
特徴選択指示部21は、指標計算部23で計算された指標を基に、別の特徴選択の設定を試行するか、それとも試行を終了するかを判断する（ステップD8）。
【００５９】
もし、別の特徴選択の設定を試行するなら、ステップD2に戻り、別の特徴選択の設定をマルウェア判定器10に入力し、以降の処理を行う。
【００６０】
一方、別の特徴選択の設定を終了するなら、試行した中で最も指標が高い（最も判定精度がよい）特徴選択の設定を選出してマルウェア判定器10に入力し（ステップD9）、処理を終了する。
【００６１】
続いて、特徴選択試行器20における上記の処理について、より詳細に説明する。
【００６２】
特徴候補リストは、属性の属性名とその属性の属性値とが特徴候補として記述されたリストである。特徴選択試行器20は、この特徴候補リストに記述された属性名と属性値とを様々に組み合わせて、その中で最も判定精度がよい組み合わせを探す。ここでは、例として特徴A、B、C、Dが特徴候補リストに記述されていたとして以下説明する。無論、特徴候補リストに記述される特徴は4つだけに限るものではなく、属性名、属性値は自由に記述してよい。
【００６３】
本実施形態で用いた探索方法である変数増加法は、用いる特徴（あるいは属性）を1つずつ増やしていき、判定精度（あるいは指標）が最高値となったところで終了する手法である。本例の特徴の候補A、B、C、Dの場合、まず、特徴選択の設定[A]、[B]、[C]、[D]、それぞれで判定精度を測定し、判定精度が最も高かった特徴選択の設定を採用する。本例では、[A]の時が最も高かったとする。次は、[A]に1つ特徴を足して、[A  B]、[A  C]、[A  D]で判定精度を測定する。この時、[A]の判定精度よりも高いものが無かったら終了し、[A]を特徴選択の結果とする。そうでなかったら、判定精度が最も高い特徴選択の設定をまた採用する。本例では、[A  C]の時が最も高かったとする。次は、前回と同様に、[A  C]に1つ特徴を足して、[A  C  B]、[A  C  D]で判定精度を測定し、前回よりも高い精度のものがなければ終了し、そうでないなら、判定精度が最も高い特徴選択の設定をまた採用する。これを試行する特徴選択の設定がなくなるまで繰り返す。
【００６４】
特徴選択指示部21は、上記の変数増加法に従って、特徴選択の設定を最終的に1つに定め、その特徴選択の設定をマルウェア判定器10に入力する。
【００６５】
検定部22で用いられる検定用データは、第1の実施形態の教師データと同様、既存のマルウェアとグッドウェアの実行ファイルと、その実行ファイルがマルウェアであるか否かの分類を示す情報と、で構成される。検定部22で行われる交差検定として、代表的な手法に、検定用データを2分割し、1回のみ検定を行うホールドアウト検定や、N個に等分割し、N回の検定を行うN-分割交差検定があり、どの手法を用いてもよい。
【００６６】
指標計算部23で計算される指標（判定精度）として、機械学習の分野では、AUC（Area  Under  the  Curve）が良く使われる。AUCが良い（大きい）場合は、検知率、誤検知率が共に良くなる傾向がある。本実施形態でも、AUCを指標としてもよい。また、別の指標を用いることもできる。一般に検知率と誤検知率とは相反する関係にあるが、誤検知率を非常に低く抑えた上で、検知率もそれなりに高くしたい場合がある。この場合の指標としては、マルウェア判定器10の判定部16の誤検知率が非常に低く（例えば0.1％以下に）なるよう調整した時の判定部16の検知率を用いることができる。逆に、検知率を非常に高くしながら、誤検知率もそれなりに低くしたい場合がある。この場合の指標としては、判定部16の検知率が非常に高く（例えば99.9％以上に）なるよう調整した時の判定部16の誤検知率による指標（1−誤検知率）を用いることができる。なお、判定部16での誤検知率または検知率の調整は、例えば、閾値判定を行う場合は、その閾値の調整によって実現できる。
【００６７】
指標計算部23で指標が計算された後、特徴選択指示部21は、別の特徴選択の設定で試行するか、試行を終了するかを判断する。変数増加法の場合、以下の順で判断を行う。なお、以下の「個数」とは特徴選択の設定中に含まれる特徴（属性）の数を指している。
【００６８】
1）  同一個数の特徴選択の設定で未試行のものがあれば、その未試行の特徴選択の設定を試行する（例えば、2個組  [A  B]、[A  C]のみ試行済みなら、[A  D]も試行する）。
【００６９】
2）  同一個数の特徴選択の設定を全て試行していた場合
（ア）  現個数≠1、且つ、現個数で最良の指標≦現個数-1  で最良の指標  の時は、現個数-1で最良の指標の特徴選択の設定を採用し、終了（[A]が最良の特徴選択の設定となる）。
【００７０】
（イ）  上記以外の場合、現個数で最良の指標の特徴選択の設定を採用（[A  B]、[A  C]、[AD]の内、最良だった[A  C]を採用）。
【００７１】
3）  個数が最大数（特徴候補リストに含まれている属性・属性値の数）と同一なら終了。少ないなら、個数を1つ増やした特徴選択の設定を試行する（[A  C  ＊]  （＊=B,D）の特徴選択の設定を試行する）。
【００７２】
上述したように本実施形態においては、自動で特徴選択を設定できるようにし、指標計算部23にて判定精度の良さを示す指標を目的に応じて適切なものを計算することで、誤検知率の低減、検知率の向上など、使用目的に合致した判定精度を持つマルウェア判定器10を構成することができる。
（3）第3の実施形態
本発明の第3の実施形態のマルウェア判定システムは、図1に示したマルウェア判定器10へ、手入力で特徴選択に関する設定を入力するものである。
（3-1）第3の実施形態の構成
図7に、本発明の第3の実施形態のマルウェア判定システムの構成図を示す。
図7に示すように、本実施形態のマルウェア判定システムは、マルウェア判定器10の他に、既存のマルウェア・グッドウェアから特徴を収集し、その特徴の一覧を用いて、人手で特徴選択を行う特徴選択UI（User  Interface）30を設けている。また、特徴選択UI30は、特徴一覧取得部31と、特徴選択入力部32と、を有している。
【００７３】
特徴一覧取得部31は、既存のマルウェア・グッドウェアから特徴を取得し、その特徴の一覧を生成する。既存のマルウェア・グッドウェアは、第1の実施形態の教師データや第2の実施形態の検定用データを用いてもよい。
【００７４】
特徴選択入力部32は、特徴一覧取得部31で生成された特徴の一覧とマルウェア判定器10の特徴選択データベース12の情報とを基に設定画面を表示する。
（3-2）第3の実施形態の設定画面
以下に、特徴選択入力部32で表示される設定画面について説明する。
【００７５】
図8に、設定画面の例を示す。
【００７６】
図8において、属性名/属性値および出現数は、特徴一覧取得部31で生成された特徴の一覧を基に表示される。特徴一覧取得部31で生成された特徴の一覧には、属性の属性名および属性値、その属性値を持つ実行ファイルの数の情報が含まれる。属性名/属性値は、+/−ボタンにより、属性の属性名のみの表示と、属性の属性名およびその属性のすべての属性値の表示と、を切り替えることができる。属性値の出現数は、その属性値を持つ実行ファイル数/実行ファイル全数を表す。出現数の表示は、あまりにも頻出する属性値は特性ベクトルから外す等の判断の一助となる。チェックボックス1,2は、特徴選択データベース12の情報を基に表示される。チェックボックス1は、属性テーブルのON/OFFフィールドが反映されており、ON/OFFフィールドがONの属性名、すなわち属性テーブルに抽出対象として登録された属性の属性名にチェックが付く。チェックボックス2は、属性値テーブル1の内容が反映されており、属性値テーブル1に削除対象として登録されている属性値にはチェックが付かず、逆に、削除対象として登録されている属性値以外の属性値（登録されていない属性値）にチェックが付く。この設定画面において、チェックボックス1,2のいずれかのチェック状況が手動で変更されると、特徴選択入力部32は、チェックボックス1にチェックが付いている属性名とチェックボックス2にチェックが付いていない属性値とを特徴選択設定として、マルウェア判定器10の特徴選択設定部11に入力する。そのため、この設定画面において、特徴ベクトルに含めたい属性・属性値にはチェックを付け、逆に除外したい属性・属性値はチェックを外すことで、人手で簡単に特徴選択の設定を行うことができる。
【００７７】
ただし、出現数の表示機能はなくともよい。逆に、マルウェア/グッドウェア別に出現数を表示する機能としてもよい。
【００７８】
なお、属性値テーブル1の代わりに、属性値テーブル2を用意した場合、チェックボックス2は、属性値テーブル2の内容が反映される。すなわち、属性値テーブル2に削除対象外として登録されている属性値にはチェック付き、属性値テーブル2に削除対象外として登録されている属性値以外の属性値（登録されていない属性値）にはチェックが付かない。また、チェックボックス1,2のいずれかのチェック状況が手動で変更された場合、マルウェア判定器10に入力する属性値は、チェックボックス2にチェックが付いている属性値となる。
【００７９】
上述したように本実施形態においては、手動で特徴選択を設定できるようにし、属性名・属性値の指定にチェックボックス1,2を用いているため、利便性の良い特徴選択設定を提供することができる。
【００８０】
なお、第2の実施形態と第3の実施形態とを組み合わせ、第2の実施形態で自動的に特徴選択を設定した後、第3の実施形態により、特徴選択設定を閲覧・修正してもよい。
【００８１】
本発明のマルウェア判定器10は、コンピュータとプログラムとによっても実現することができ、このプログラムを記録媒体に記録することも、ネットワークを通して提供することもできる。
【符号の説明】
【００８２】
10    マルウェア判定器
11    特徴選択設定部
12    特徴選択データベース
13    特徴抽出部
14    特徴選択部
15    分類器
16    判定部
20    特徴選択試行器
21    特徴選択指示部
22    検定部
23    指標計算部
30    特徴選択UI
31    特徴一覧取得部
32    特徴選択入力部
【図１】
0006018345.tif 000002
【図２Ａ】
0006018345.tif 000003
【図２Ｂ】
0006018345.tif 000004
【図２Ｃ】
0006018345.tif 000005
【図３】
0006018345.tif 000006
【図４】
0006018345.tif 000007
【図５】
0006018345.tif 000008
【図６】
0006018345.tif 000009
【図７】
0006018345.tif 000010
【図８】
0006018345.tif 000011