(57)【要約】【課題】圧縮または暗号化された実行形式の２以上のファイルの類似度評価を精度よく行う。【解決手段】類似度評価装置３は、処理対象のファイルがメモリ上に展開されると、当該ファイルのメモリイメージのバイナリファイルを生成する。そして、類似度評価装置３は、生成されたバイナリファイルのうち、類似度の評価における比較元ファイルおよび比較先ファイルそれぞれを複数の区間に分割し、比較元分割ファイルと比較先分割ファイルとを生成する。その後、類似度評価装置３は、比較元分割ファイルと比較先分割ファイルそれぞれの区間ごとの所定のエントロピー値を示す比較元区間特徴量と比較先区間特徴量とを生成し、比較元区間特徴量と比較先区間特徴量それぞれに対し、ＤＰマッチングによる補正を行い、補正が行われた比較元区間特徴量と比較先区間特徴量とを区間ごとに比較することにより類似度を評価する。【選択図】図２
2018067126.tif 000002
【特許請求の範囲】
【請求項１】
圧縮または暗号化された実行形式の２以上のファイルの類似度を評価する類似度評価装置であって、
前記類似度の評価の対象となるファイルがメモリ上に展開された場合、展開された前記ファイルのメモリイメージのバイナリファイルを生成するメモリダンプ部と、
前記メモリダンプ部により生成されたバイナリファイルのうち、前記類似度の評価における比較元ファイルを複数の区間に分割した比較元分割ファイルと、前記類似度の評価における比較先ファイルを複数の区間に分割した比較先分割ファイルとを生成する区間分割部と、
前記比較元分割ファイルの区間ごとの所定のエントロピー値である比較元区間特徴量と、前記比較先分割ファイルの区間ごとの前記エントロピー値である比較先区間特徴量とを生成する区間特徴量算出部と、
前記比較元区間特徴量と前記比較先区間特徴量それぞれに対し、ＤＰ（Dynamic  Programming）マッチングにより前記比較元区間特徴量と前記比較先区間特徴量との距離をできるだけ小さくする補正を行う補正部と、
前記補正が行われた前記比較元区間特徴量と前記比較先区間特徴量とを区間ごとに比較することにより前記比較元ファイルと前記比較先ファイルとの類似度を評価する類似度評価部と
を備えることを特徴とする類似度評価装置。
【請求項２】
前記比較元ファイルのファイル全体から前記エントロピー値を算出して比較元全体特徴量を生成し、前記比較先ファイルのファイル全体から前記エントロピー値を算出して比較先全体特徴量を生成する全体特徴量算出部と、
前記比較元全体特徴量と前記比較先全体特徴量とに基づいて前記比較元ファイルと前記比較先ファイルとが類似するか否かを示す判定結果を求める全体類似度評価部と、
をさらに備え、
前記判定結果が前記比較元ファイルと前記比較先ファイルとが類似することを示すとき、前記区間分割部、前記区間特徴量算出部、前記補正部および前記類似度評価部による処理を実行することを特徴とする請求項１に記載の類似度評価装置。
【請求項３】
前記区間分割部は、
ローリングハッシュにより前記比較元ファイルと前記比較先ファイルそれぞれを複数の区間に分割することを特徴とする請求項１または２に記載の類似度評価装置。
【請求項４】
利用者端末と類似度評価装置とを含み、圧縮または暗号化された実行形式の２以上のファイルの類似度を評価する類似度評価システムであって、
前記利用者端末は、
前記類似度の評価の対象となるファイルがメモリ上に展開された場合、展開された前記ファイルのメモリイメージのバイナリファイルを生成するメモリダンプ部と、
前記メモリダンプ部により生成されたバイナリファイルのうち、前記類似度の評価における比較元ファイルと前記類似度の評価における比較先ファイルとを前記類似度評価装置へ出力する投入部と、
前記類似度評価装置から出力された前記比較元ファイルと前記比較先ファイルとの類似度の評価の結果を表示する表示部とを備え、
前記類似度評価装置は、
前記比較元ファイルを複数の区間に分割した比較元分割ファイルと、前記比較先ファイルを前記複数の区間に分割した比較先分割ファイルとを生成する区間分割部と、
前記比較元分割ファイルの区間ごとの所定のエントロピー値である比較元区間特徴量と、前記比較先分割ファイルの区間ごとの前記エントロピー値である比較先区間特徴量とを生成する区間特徴量算出部と、
前記比較元区間特徴量と前記比較先区間特徴量それぞれに対し、ＤＰ（Dynamic  Programming）マッチングにより前記比較元区間特徴量と前記比較先区間特徴量との距離をできるだけ小さくする補正を行う補正部と、
前記補正が行われた前記比較元区間特徴量と前記比較先区間特徴量とを区間ごとに比較することにより前記比較元ファイルと前記比較先ファイルとの類似度を評価する類似度評価部と、
前記類似度の評価結果を前記利用者端末へ出力する出力部と
を備えることを特徴とする類似度評価システム。
【請求項５】
利用者端末と類似度評価装置とを含み、圧縮または暗号化された実行形式の２以上のファイルの類似度を評価する類似度評価システムであって、
前記利用者端末は、
前記類似度の評価の対象となるファイルがメモリ上に展開された場合、展開された前記ファイルのメモリイメージのバイナリファイルを生成するメモリダンプ部と、
前記メモリダンプ部により生成されたバイナリファイルのうち、前記類似度の評価における比較元ファイルを複数の区間に分割した比較元分割ファイルと、前記類似度の評価における比較先ファイルを前記複数の区間に分割した比較先分割ファイルとを生成する区間分割部と、
前記比較元分割ファイルの区間ごとの所定のエントロピー値である比較元区間特徴量と、前記比較先分割ファイルの区間ごとの前記エントロピー値である比較先区間特徴量とを生成する区間特徴量算出部と、
前記比較元ファイルと前記比較先ファイルとを前記類似度評価装置へ出力する投入部と、
前記類似度評価装置から出力された前記比較元ファイルと前記比較先ファイルとの類似度の評価の結果を表示する表示部とを備え、
前記類似度評価装置は、
前記比較元区間特徴量と前記比較先区間特徴量それぞれに対し、ＤＰ（Dynamic  Programming）マッチングにより前記比較元区間特徴量と前記比較先区間特徴量との距離をできるだけ小さくする補正を行う補正部と、
前記補正が行われた前記比較元区間特徴量と前記比較先区間特徴量とを区間ごとに比較することにより前記比較元ファイルと前記比較先ファイルとの類似度を評価する類似度評価部と、
前記類似度の評価結果を前記利用者端末へ出力する出力部と
を備えることを特徴とする類似度評価システム。
【請求項６】
圧縮または暗号化された実行形式の２以上のファイルの類似度を評価する類似度評価方法であって、
類似度評価装置が、
前記類似度の評価の対象となるファイルがメモリ上に展開された場合、展開された前記ファイルのメモリイメージのバイナリファイルを生成するメモリダンプステップと、
前記メモリダンプステップで生成されたバイナリファイルのうち、前記類似度の評価における比較元ファイルを複数の区間に分割した比較元分割ファイルと、前記類似度の評価における比較先ファイルを前記複数の区間に分割した比較先分割ファイルとを生成する区間分割ステップと、
前記比較元分割ファイルの区間ごとの所定のエントロピー値である比較元区間特徴量と、前記比較先分割ファイルの区間ごとの前記エントロピー値である比較先区間特徴量とを生成する区間特徴量算出ステップと、
前記比較元区間特徴量と前記比較先区間特徴量それぞれに対し、ＤＰ（Dynamic  Programming）マッチングにより前記比較元区間特徴量と前記比較先区間特徴量との距離をできるだけ小さくする補正を行う補正ステップと、
前記補正が行われた前記比較元区間特徴量と前記比較先区間特徴量とを区間ごとに比較することにより前記比較元ファイルと前記比較先ファイルとの類似度を評価する類似度評価ステップと
を含んだことを特徴とする類似度評価方法。
【請求項７】
圧縮または暗号化された実行形式の２以上のファイルの類似度を評価するための類似度評価プログラムであって、
前記類似度の評価の対象となるファイルがメモリ上に展開された場合、展開された前記ファイルのメモリイメージのバイナリファイルを生成するメモリダンプステップと、
前記メモリダンプステップで生成されたバイナリファイルのうち、前記類似度の評価における比較元ファイルを複数の区間に分割した比較元分割ファイルと、前記類似度の評価における比較先ファイルを前記複数の区間に分割した比較先分割ファイルとを生成する区間分割ステップと、
前記比較元分割ファイルの区間ごとの所定のエントロピー値である比較元区間特徴量と、前記比較先分割ファイルの区間ごとの前記エントロピー値である比較先区間特徴量とを生成する区間特徴量算出ステップと、
前記比較元区間特徴量と前記比較先区間特徴量それぞれに対し、ＤＰ（Dynamic  Programming）マッチングにより前記比較元区間特徴量と前記比較先区間特徴量との距離をできるだけ小さくする補正を行う補正ステップと、
前記補正が行われた前記比較元区間特徴量と前記比較先区間特徴量とを区間ごとに比較することにより前記比較元ファイルと前記比較先ファイルとの類似度を評価する類似度評価ステップと
をコンピュータに実行させることを特徴とする類似度評価プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、類似度評価装置、類似度評価システム、類似度評価方法、および、類似度評価プログラムに関する。
【背景技術】
【０００２】
マルウェアの検出やＤＬＰ(Data  Loss  Prevention)の分野で、ファイルのエントロピー値を求め、このエントロピー値によりファイルの類似度の評価を行うことがある。ここで、ファイル全体としてのエントロピー値が比較対象のファイルのエントロピー値と近い値となった場合でも、実際には類似していないこともある。このため、より詳細な類似度評価を行えるよう、比較対象のファイルを複数の区間に分割し、ＤＰ（Dynamic  Programming）マッチングを行うことで、ファイルそれぞれの区間ごとのエントロピー値を比較する技術が提案されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−０６６１３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、圧縮または暗号化された実行形式のファイルに対し、上記の方法で類似度の評価を行おうとすると、ファイルのエントロピー値の分布が「８」に張り付いてしまい、有効な類似度の評価を行えないという問題があった。
【０００５】
そこで、本発明は前記した問題を解決し、処理対象となるファイルが圧縮または暗号化された実行形式のファイルであっても、有効な類似度の評価を行うことを課題とする。
【課題を解決するための手段】
【０００６】
前記した課題を解決するため、本発明は、圧縮または暗号化された実行形式の２以上のファイルの類似度を評価する類似度評価装置であって、前記類似度の評価の対象となるファイルがメモリ上に展開された場合、展開された前記ファイルのメモリイメージのバイナリファイルを生成するメモリダンプ部と、前記メモリダンプ部により生成されたバイナリファイルのうち、前記類似度の評価における比較元ファイルを複数の区間に分割した比較元分割ファイルと、前記類似度の評価における比較先ファイルを複数の区間に分割した比較先分割ファイルとを生成する区間分割部と、前記比較元分割ファイルの区間ごとの所定のエントロピー値である比較元区間特徴量と、前記比較先分割ファイルの区間ごとの前記エントロピー値である比較先区間特徴量とを生成する区間特徴量算出部と、前記比較元区間特徴量と前記比較先区間特徴量それぞれに対し、ＤＰ（Dynamic  Programming）マッチングにより前記比較元区間特徴量と前記比較先区間特徴量との距離をできるだけ小さくする補正を行う補正部と、前記補正が行われた前記比較元区間特徴量と前記比較先区間特徴量とを区間ごとに比較することにより前記比較元ファイルと前記比較先ファイルとの類似度を評価する類似度評価部とを備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、処理対象となるファイルが圧縮または暗号化された実行形式のファイルであっても、有効な類似度の評価を行うことができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１の実施形態の類似度評価システムの構成の一例を示す図である。
【図２】図２（ａ）は、図１の利用者端末の構成の一例を示す図であり、図２（ｂ）は、図１の類似度評価装置の構成の一例を示す図である。
【図３】図３は、図１の利用者端末の処理フローの一例を示す図である。
【図４】図４は、図１の類似度評価装置の処理フローの一例を示す図である。
【図５】図５は、ローリングハッシュの処理フローの一例を示す図である。
【図６】図６は、第２の実施形態の類似度評価システムの構成の一例を示す図である。
【図７】図７（ａ）は、図６の利用者端末の構成の一例を示す図であり、図７（ｂ）は、図６の類似度評価装置の構成の一例を示す図である。
【図８】図８は、図６の利用者端末の処理フローの一例を示す図である。
【図９】図９は、図６の類似度評価装置の処理フローの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態（実施形態）を説明する。なお、本発明は本実施形態に限定されない。まず、本実施形態の類似度評価システムにおける、ファイルのエントロピー値を用いたファイル間の類似度の評価方法を説明する。
【００１０】
なお、類似度評価システムにおける処理対象のファイルは、パッキング（圧縮または暗号化）された実行形式の２以上のファイル（例えば、「.exe」ファイル）である。このファイルは、フルパッキングされたファイルでもよいし、ハーフパッキングされたファイルでもよい。類似度評価システムは、上記の処理対象のファイルがメモリ上に展開されたとき、そのメモリイメージのバイナリファイルを生成し、このバイナリファイルを対象にファイル間の類似度の評価を行う。以下、類似度評価システムが生成するメモリイメージのバイナリファイルを、適宜、「ファイル」と略す。
【００１１】
ファイルのエントロピー値の計算は順序性を考慮しない場合には式（１）により行われる。順序性を考慮する場合には式（２）により行われる。以下、順序性を考慮したエントロピー値は、Ｍ１エントロピーと呼ぶ。式（１）および式（２）において、Ｐｉは対象ファイルの中で値がｉとなる確率である。
【００１２】
【数１】
2018067126.tif 000003
【００１３】
このようにファイルのエントロピー値により類似度を評価することで、例えば、原本ファイルに対して意図的に変更を加えて検知を逃れるタイプのマルウェアやアンチフォレンジック手法が用いられた場合でもこれを検知しやすくなる。
【００１４】
なお、エントロピー値を用いた類似度評価をより正確に行うため、式（３）のように、ファイルサイズでエントロピー値に重み付けを行ってもよい。
【００１５】
【数２】
2018067126.tif 000004
【００１６】
重み付きエントロピー値を用いた類似度は、Ｅ１を比較元ファイルの重み付きエントロピー値とし、Ｅ２を比較先ファイルの重み付きエントロピー値とし、Ｓ１を比較元ファイルのファイルサイズとし、Ｓ２を比較先ファイルのファイルサイズとして、式（４）により計算される。
【００１７】
【数３】
2018067126.tif 000005
【００１８】
式（４）は計算例であり通常のファイルに適用した場合、有意な値を取らないこともある。この場合、例えば、式（５）により類似度を計算する。
【００１９】
【数４】
2018067126.tif 000006
【００２０】
（第１の実施形態）
（構成）
図１を参照して、第１の実施形態の類似度評価システムの構成例を説明する。類似度評価システムは、処理対象となるファイルがメモリ上に展開されたとき、このファイルが展開されたときのメモリイメージをバイナリファイルとして保存する。そして、類似度評価システムは、このバイナリファイルを、特許文献１に記載の比較元ファイル、比較先ファイルとして用いて、類似度の評価を行う。
【００２１】
この類似度評価システムは、１以上の利用者端末２と、類似度評価装置３を含む。利用者端末２と類似度評価装置３はネットワーク４に接続される。ネットワーク４は、接続される各装置が相互に通信可能なように構成されていればよく、例えばインターネットやＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等で構成することができる。なお、各装置は必ずしもネットワークを介してオンラインで通信可能である必要はない。例えば、利用者端末２の出力する情報を磁気テープやＵＳＢ（Universal  Serial  Bus）メモリなどの可搬型記録媒体に記憶し、その可搬型記録媒体からオフラインで類似度評価装置３へ入力するように構成してもよい。また、利用者端末２と類似度評価装置３とは同一装置上に存在してもよい。
【００２２】
図２（ａ）を参照して利用者端末２の構成例を説明する。利用者端末２は、制御部２０１、メモリ２０２、メモリダンプ部２０３、ファイル記憶部２１、投入部２２、表示部２３を備える。利用者端末２は、例えば、ＣＰＵ（Central  Processing  Unit）、ＲＡＭ（Random  Access  Memory）等を有するコンピュータにより実現される。
【００２３】
制御部２０１は、利用者端末２全体の制御を司る。メモリ２０２は、利用者端末２に入力されたデータや各処理で得られたデータが格納される。このメモリ２０２に格納されたデータは必要に応じて読み出されて他の処理に利用される。例えば、メモリ２０２上には、制御部２０１により読み込まれたファイルが展開される。
【００２４】
メモリダンプ部２０３は、所定のファイル（処理対象となるファイル）がメモリ２０２上に展開された場合、展開されたファイルそれぞれのメモリイメージのバイナリファイルを生成する。そして、メモリダンプ部２０３は、生成したバイナリファイル群をファイル記憶部２１に記憶（保存）する。
【００２５】
このメモリダンプ部２０３は、例えば、Windows（登録商標）のタスクマネージャ等、プロセス名やプロセスＩＤを指定することにより、ユーザモードプロセスダンプを取得し、ダンプファイルとして記憶装置に保存する手段により実現される。このメモリダンプ部２０３がどのファイルを対象にメモリイメージのバイナリファイルを生成するかは、利用者端末２の利用者等が事前に設定しておくものとする。
【００２６】
ファイル記憶部２１は、メモリダンプ部２０３により生成されたバイナリファイル群を記憶する。このファイル記憶部２１は、例えば、ＲＡＭ等の主記憶装置、ハードディスクや光ディスクもしくはフラッシュメモリなどの半導体メモリ素子により構成される補助記憶装置等により構成することができる。
【００２７】
投入部２２は、利用者の操作に従って、ファイル記憶部２１から選択された、類似度を評価する比較対象ファイル群（バイナリファイル群）を類似度評価装置３へ送信する。
【００２８】
比較対象ファイル群に含まれるファイルの数は２つであってもよいし、３つ以上であってもよい。以降の説明では、２つのファイルの類似度を評価する場合について説明し、３つ以上の場合に相違する点があれば適宜説明する。また、比較対象の２つのファイルは、それぞれ比較元ファイル、比較先ファイルと呼ぶ。
【００２９】
表示部２３は、類似度評価装置３から送信された比較対象のファイルの類似度評価結果を表示する。例えば、表示部２３は、利用者端末２に接続されたディスプレイ等に類似度評価結果を表示する。
【００３０】
図２（ｂ）を参照して、類似度評価装置３の構成例を説明する。
【００３１】
類似度評価装置３は、制御部３０１、メモリ３０２、入力部３１、全体特徴量算出部３２、全体類似度評価部３３、区間分割部３４、区間特徴量算出部３５、補正部３６、区間類似度評価部３７、出力部３８、特徴量記憶部３９を備える。
【００３２】
類似度評価装置３は、例えば、ＣＰＵ、ＲＡＭ等を有するコンピュータにより実現される。
【００３３】
制御部３０１は、類似度評価装置３全体の制御を司る。メモリ３０２は、類似度評価装置３に入力されたデータや各処理で得られたデータが格納される。このメモリ３０２に格納されたデータは必要に応じて読み出されて他の処理に利用される。
【００３４】
入力部３１は、外部装置から類似度評価装置３への各種データの入力を受け付ける。例えば、入力部３１は、利用者端末２から比較元ファイル、比較先ファイルとなるファイルの入力を受け付ける。
【００３５】
全体特徴量算出部３２は、比較元ファイルのファイル全体から所定のエントロピー値を算出し、比較元全体特徴量を生成する。また、全体特徴量算出部３２は、比較先ファイルのファイル全体から所定のエントロピー値を算出し、比較先全体特徴量を生成する。ここでのエントロピー値の算出には、例えば、前記した式（１）、式（２）または式（３）を用いる。
【００３６】
全体類似度評価部３３は、比較元全体特徴量と比較先全体特徴量から全体類似度を算出する。そして、全体類似度評価部３３は、算出した全体類似度を所定の閾値と比較することにより、ファイル全体として類似しているか否かの判定を行う。なお、ここでの全体類似度の算出には、例えば、前記した式（５）を用いる。
【００３７】
区間分割部３４は、比較元ファイルと比較先ファイルそれぞれを複数の区間に分割し、比較元分割ファイルと比較先分割ファイルとを生成する。例えば、区間分割部３４は、各ファイルを所定サイズで分割したり、所定数で分割したりする。
【００３８】
区間特徴量算出部３５は、比較元分割ファイルの区間ごとの所定のエントロピー値を示す比較元区間特徴量を生成する。また、区間特徴量算出部３５は、比較先分割ファイルの区間ごとの所定のエントロピー値を示す比較先区間特徴量を生成する。ここでのエントロピー値の算出にも、例えば、前記した式（１）、式（２）または式（３）を用いる。
【００３９】
補正部３６は、比較元区間特徴量および比較先区間特徴量それぞれに対し、ＤＰ（Dynamic  Programming）マッチングを適用した補正を行う。例えば、比較元区間特徴量が以下の式（６）に示すＸ（ｘ１，ｘ２，…，ｘｎ）であり、比較先区間特徴量が以下の式（６）に示すＹ（ｙ１，ｙ２，…，ｙｍ）であるとする。なお、ｘ１，ｘ２，…，ｘｎは比較元ファイルの各区間のエントロピー値であり、ｙ１，ｙ２，…，ｙｍは比較先ファイルの各区間のエントロピー値である。補正部３６は、以下の式（７）によりＸとＹとの距離Ｄ（Ｘ，Ｙ）をできるだけ小さくするようにＸ，Ｙの補正を行う。このように、補正部３６が比較元区間特徴量および比較先区間特徴量についてＤＰマッチングによる補正を行うことで、比較元区間特徴量と比較先区間特徴量の対応付け（整列化）を行うことができる。これにより、類似度評価装置３は、例えば、比較対象のファイルの区間ごとのエントロピー値の分布のパターン（波形）がずれている場合であっても、ファイル間の類似度を精度よく評価することができる。
【００４０】
【数５】
2018067126.tif 000007
【数６】
2018067126.tif 000008
【００４１】
区間類似度評価部３７は、補正が行われた比較元区間特徴量と比較先区間特徴量とを区間ごとに比較することにより比較元ファイルと比較先ファイルとの類似度を評価する。ここでの類似度の評価は、例えば、以下の式（８）により、比較元区間特徴量に含まれる区間ごとのエントロピー値と、比較先区間特徴量に含まれる区間ごとのエントロピー値との差をそれぞれ算出し、その平均を算出することにより行われる。そして、区間類似度評価部３７は、式（８）で算出した平均（Ｄ）を所定の閾値と比較することにより類似しているか否かの判定を行う。判定の結果（類似度評価結果）は利用者端末２へ送信する。
【００４２】
【数７】
2018067126.tif 000009
【００４３】
なお、式（８）におけるｎは区間の総数であり、Ｈ１ｉは比較元ファイルの区間ｉのエントロピー値であり、Ｈ２ｉは比較先ファイルの区間ｉのエントロピー値である。
【００４４】
出力部３８は、類似度評価装置３の各種データを外部装置へ出力する。例えば、出力部３８は、区間類似度評価部３７から比較対象のファイルが類似しているか否かの判定の結果（類似度評価結果）を利用者端末２へ出力する。
【００４５】
特徴量記憶部３９は、全体特徴量算出部３２により算出された比較元全体特徴量および比較先全体特徴量や、区間特徴量算出部３５により算出された比較元区間特徴量と比較先区間特徴量を記憶する。この特徴量記憶部３９は、例えば、ＲＡＭ等の主記憶装置、ハードディスクや光ディスクもしくはフラッシュメモリなどの半導体メモリ素子により構成される補助記憶装置等により構成することができる。
【００４６】
このような類似度評価システムによれば、処理対象となるファイルが圧縮または暗号化された実行形式のファイルであっても、有効な類似度の評価を行うことができる。
【００４７】
（処理手順）
まず、図３を参照して利用者端末２の処理手順の例を説明する。利用者端末２の制御部２０１がファイルを読み込むと（Ｓ１１）、当該ファイルがメモリ２０２上に展開される（Ｓ１２）。そして、当該ファイルがメモリイメージのバイナリファイルの生成対象のファイルであれば、メモリダンプ部２０３はメモリイメージのバイナリファイルを生成し（Ｓ１３）、生成したバイナリファイルをファイル記憶部２１に保存する（Ｓ１４）。メモリダンプ部２０３は、Ｓ１３、Ｓ１４の処理を、メモリイメージのバイナリファイルの生成対象のファイルそれぞれについて実行する。その後、投入部２２は、ファイル記憶部２１に保存されたバイナリファイル群のうち、利用者の操作に従って選択されたバイナリファイル群（比較対象ファイル群）を類似度評価装置３へ送信する（Ｓ１５）。
【００４８】
次に、図４を参照して類似度評価装置３の処理手順の例を説明する。まず、類似度評価装置３の入力部３１は利用者端末２が送信した比較対象ファイル群の入力を受け付ける（Ｓ３１）。
【００４９】
Ｓ３１の後、全体特徴量算出部３２は、比較対象ファイル群の比較元ファイルと比較先ファイルそれぞれから所定のエントロピー値を算出する。つまり、全体特徴量算出部３２は、比較元ファイルと比較先ファイルそれぞれのファイル全体のエントロピー値を特徴量として算出する（Ｓ３２：ファイル全体の特徴量を算出）。比較元ファイルから算出したエントロピー値は比較元全体特徴量、比較先ファイルから算出したエントロピー値は比較先全体特徴量と呼ぶ。算出するエントロピー値は、様々な種類のエントロピー値を適用することができる。例えば、上記の式（１）で算出されるエントロピー値でもよい。上記の式（２）で算出されるＭ１エントロピー値でもよい。上記の式（３）で算出されるファイルサイズ重み付きエントロピー値でもよい。また例えば、N-gramエントロピーを算出してもよい。N-gramエントロピーとは、決められたバイト数（Ｎバイト）の単位でファイル中における各ビットパターンの出現数から算出するエントロピー値である。比較対象ファイル群が３つ以上のファイルを含む場合には、すべての２つのファイルの組み合わせについて、所定のエントロピー値を算出すればよい。
【００５０】
図４のＳ３２で算出された比較元全体特徴量および比較先全体特徴量は特徴量記憶部３９に記憶される。全体類似度評価部３３は、特徴量記憶部３９から読み出した比較元全体特徴量と比較先全体特徴量から全体類似度を算出する（Ｓ３３１：ファイル全体の類似度を算出）。全体類似度の算出は、例えば、上記の式（５）により計算することができる。比較対象ファイル群が３つ以上のファイルを含む場合には、すべての２つのファイルの組み合わせについて、全体類似度を算出すればよい。
【００５１】
全体類似度評価部３３は、Ｓ３３１で算出した全体類似度をあらかじめ定めた閾値と比較し、比較元ファイルと比較先ファイルが類似するか否かを判定し、その判定結果（暫定判定結果）を求める（Ｓ３３２：全体類似度が閾値以上のファイル群が存在するか）。全体類似度評価部３３は、全体類似度が閾値以上である場合には暫定判定結果にファイルが類似することを示す値を設定し、全体類似度が閾値未満の場合には暫定判定結果にファイルが類似しないことを示す値を設定する。比較対象ファイル群が３つ以上のファイルを含む場合には、暫定判定結果に全体類似度が閾値以上であるファイルの組み合わせが存在する場合に類似するファイルが存在することを示す値を設定し、全体類似度が閾値以上であるファイルの組み合わせが存在しない場合には暫定判定結果に類似するファイルが存在しないことを示す値を設定すればよい。
【００５２】
図４のＳ３３２で暫定判定結果が比較元ファイルと比較先ファイルとが類似しないことを示す場合には（Ｓ３３２でＮｏ）、全体類似度評価部３３は、比較元ファイルと比較先ファイルとが類似しないと判定し（Ｓ３８２：類似ファイルはない）、その判定結果を出力し、処理を終了する。
【００５３】
一方、暫定判定結果が比較元ファイルと比較先ファイルとが類似することを示す場合には（図４のＳ３３２でＹｅｓ）、Ｓ３４以降の処理を継続する。比較対象ファイル群が３つ以上のファイルを含む場合であって、複数のファイルの組み合わせでファイルが類似すると判定された場合には、類似するファイルの組み合わせすべてについて以降の処理を繰り返し実行する。
【００５４】
比較元ファイルと比較先ファイルが区間分割部３４へ入力されると、区間分割部３４は、比較元ファイルと比較先ファイルそれぞれを所定の分割方法で複数の区間に分割する（Ｓ３４：個々のファイルを区間分割）。比較元ファイルを分割した後のファイルは比較元分割ファイル、比較先ファイルを分割した後のファイルは比較先分割ファイルと呼ぶ。区間分割部３４は、例えば、あらかじめ定めた固定サイズで各ファイルを分割する。例えば、区間分割部３４は、各ファイルを10Kバイトごとに区間を分割する。また、例えば、区間分割部３４は、比較対象ファイルのファイルサイズに比例した均等割りにより分割サイズを決定してもよい。ファイルサイズに比例した均等割りであれば、末端の少量サイズの区間が生じることを回避することができる。また、このほかに、区間分割部３４は、例えば、ローリングハッシュによりファイルの区間分割点を決定してもよい。
【００５５】
図５にローリングハッシュによる区間分割の動作例を示す。区間分割部３４は、分割対象のファイルが入力されると、そのファイルのバイナリ列からｍバイトを読み取る（Ｓ３４１）。このｍバイト分のバイナリ列をウィンドウと呼ぶ。ウィンドウのサイズを決定するｍは任意の値を取ることができる。例えば、ｍ＝７などと設定すればよい。次に、区間分割部３４は、読み取ったウィンドウのハッシュ値を計算してメモリ３０２に記憶する（Ｓ３４２）。ハッシュ関数としては、例えば、文字列を構成する全文字の値を加算する関数、各文字のASCIIコードを全て掛け合わせる関数等が考えられる。続いて、区間分割部３４は、計算したハッシュ値の下位ｔビットがあらかじめ定めた任意のビットパターンと一致する否かを判断する（Ｓ３４３）。ここで、下位ｔビットがあらかじめ定めた任意のビットパターンと一致する場合には（Ｓ３４３でＹｅｓ）、区間分割部３４は、そのウィンドウの位置を分割点としてメモリ３０２に記憶する（Ｓ３４４）。一方、下位ｔビットがあらかじめ定めた任意のビットパターンと一致しない場合には（Ｓ３４３でＮｏ）、Ｓ３４５へ進む。なお、ビットパターンはどのようなものでもよく、例えば、下位ｔビットがすべて１の場合でもよいし、すべて０の場合でもよい。ｔは、例えば、Ｌをファイルサイズとし、Ｎを区間の総数として、下記の式（９）により決定すればよい。
【００５６】
【数８】
2018067126.tif 000010
【００５７】
ここで、
【数９】
2018067126.tif 000011
【００５８】
は床関数であり、ｘを超えない最大の整数である。
【００５９】
Ｓ３４４の後、区間分割部３４は、ウィンドウの位置がファイルの終点であるか否かを確認する（Ｓ３４５）。ここで、ファイルのウィンドウの位置がファイルの終点でなければ（Ｓ３４５でＮｏ）、区間分割部３４はウィンドウの位置を先頭から１バイト後方へ移動させ、Ｓ３４１以降の処理を再度行う。一方、ファイルのウィンドウの位置がファイルの終点であれば（Ｓ３４５でＹｅｓ）、処理を終了する。
【００６０】
区間分割部３４が上記のローリングハッシュを用いてファイルの区間分割を行うことで、比較対象の２つのファイルの相違点を除いて共通の部分を区間として抽出することができる可能性が高い。
【００６１】
図４の説明に戻る。Ｓ３４の後、比較元分割ファイルと比較先分割ファイルは区間特徴量算出部３５へ入力される。区間特徴量算出部３５は、比較元分割ファイルと比較先分割ファイルそれぞれから区間ごとに所定のエントロピー値（特徴量）を算出する（Ｓ３５：区間ごとの特徴量を算出）。比較元分割ファイルの区間ごとのエントロピー値のスペクトルを比較元区間特徴量と呼び、比較先分割ファイルの区間ごとのエントロピー値のスペクトルを比較先区間特徴量と呼ぶ。算出するエントロピー値は、全体特徴量と同様に、様々な種類のエントロピー値を適用することができる。例えば、上記の式（１）で算出されるエントロピー値でもよい。上記の式（２）で算出されるＭ１エントロピー値でもよい。上記の式（３）で算出されるファイルサイズ重み付きエントロピー値でもよい。また、例えば、N-gramエントロピーを算出してもよい。
【００６２】
図４のＳ３５の後、補正部３６は、比較元区間特徴量および比較先区間特徴量それぞれに対し、ＤＰマッチングによる補正を行う（Ｓ３６）。例えば、前記したとおり、比較元区間特徴量が式（６）に示すＸ（ｘ１，ｘ２，…，ｘｎ）であり、比較先区間特徴量が式（６）に示すＹ（ｙ１，ｙ２，…，ｙｍ）であるとすると、補正部３６は、式（７）によりＸとＹとの距離Ｄ（Ｘ，Ｙ）をできるだけ小さくするようにＸ（ｘ１，ｘ２，…，ｘｎ）およびＹ（ｙ１，ｙ２，…，ｙｍ）の補正を行う。
【００６３】
Ｓ３６で補正された比較元区間特徴量および比較先区間特徴量は区間類似度評価部３７へ入力される。そして、区間類似度評価部３７は、補正後の比較元区間特徴量および比較先区間特徴量に基づいて比較元ファイルと比較先ファイルが類似するか否かを示す判定結果を求める。つまり、区間類似度評価部３７は、補正後の区間特徴量が評価基準を満たすか否かを判定する（Ｓ３７）。判定の方法は、例えば、式（８）を用いて、補正後の比較元区間特徴量に含まれる区間ごとのエントロピー値と、補正後の比較先区間特徴量に含まれる区間ごとのエントロピー値との差をそれぞれ算出し、その平均を計算すればよい。
【００６４】
なお、類似するか否かの判定には、補正後の比較元区間特徴量および比較先区間特徴量についての各種の統計を用いてもよい。
【００６５】
例えば、区間類似度評価部３７は、補正後の比較元区間特徴量および比較先区間特徴量それぞれの標準偏差を算出し、標準偏差の差が閾値未満であればファイルが類似すると判定してもよい。
【００６６】
また、区間類似度評価部３７は、類似するか否かの判定に相関係数を用いてもよい。例えば、区間類似度評価部３７は、補正後の比較元区間特徴量および比較先区間特徴量の相関係数を求め、その相関係数が閾値以上であればファイルが類似すると判定する。
【００６７】
さらに、区間類似度評価部３７は、類似するか否かの判定に最長一致系列比較を用いてもよい。例えば、区間類似度評価部３７は、補正後の比較元区間特徴量および比較先区間特徴量で対応する区間エントロピー値が連続して一致する区間の長さを求め、その一致する区間の長さが閾値以上であればファイルが類似すると判定する。
【００６８】
また、区間類似度評価部３７は、類似するか否かの判定にフーリエ解析を用いてもよい。例えば、区間類似度評価部３７は、補正後の比較元区間特徴量と比較先区間特徴量それぞれをフーリエ変換し、得られたパワースペクトルの系列を比較して一致する要素の数が閾値以上であればファイルが類似すると判定する。
【００６９】
さらに、区間類似度評価部３７は、類似するか否かの判定にΧスクエア検定を用いてもよい。例えば、区間類似度評価部３７は、補正後の比較元区間特徴量と比較先区間特徴量をそれぞれ所定の関数に近似させて検定統計量を算出することにより、あらかじめ定めた閾値を有意水準としてファイルが類似するか否かの仮説検定を行う。
【００７０】
区間類似度評価部３７はＳ３７における判定結果を、出力部３８を介して利用者端末２へ送信する。すなわち、区間類似度評価部３７は、Ｓ３７において補正後の区間特徴量が評価基準を満たすと判定したとき（Ｓ３７でＹｅｓ）、ファイルが類似すると判定し（Ｓ３８１：類似ファイルがある）、その判定結果を利用者端末２へ送信する。一方、区間類似度評価部３７は、Ｓ３７において補正後の区間特徴量が評価基準を満たさないと判定したとき（Ｓ３７でＮｏ）、ファイルが類似しないと判定し（Ｓ３８２：類似ファイルはない）、その判定結果を利用者端末２へ送信する。なお、ここで送信する判定結果には、例えば、比較対象ファイルの全体特徴量、比較対象ファイル間の全体類似度、比較対象ファイルの区間特徴量、比較対象ファイル間の類似度判定結果、区間エントロピー値の差の平均等の類似度を判定するために用いた値を含めてもよい。
【００７１】
Ｓ３８１，３８２の後、利用者端末２の表示部２３は、類似度評価装置３から受信した判定結果を表示する。表示の方法はどのような方法であってもよい。例えば、利用者端末２のディスプレイに整形して表示してもよいし、利用者端末２に設定された所定のプリンタへあらかじめ定めた書式で出力してもよい。
【００７２】
このようなシステムによれば、処理対象となるファイルが圧縮または暗号化された実行形式のファイルであっても、有効な類似度の評価を行うことができる。
【００７３】
（第２の実施形態）
（構成）
図６を参照して、第２の実施形態の類似度評価システムの構成例を説明する。前記した第１の実施形態と同じ構成は、同じ符号を付して説明を省略する。この第２の実施形態の類似度評価システムは、１以上の利用者端末２ａと、類似度評価装置３ａを含む。第２の実施形態の類似度評価システムは、利用者端末２ａが全体特徴量算出部３２、区間分割部３４、区間特徴量算出部３５を備えることを特徴とする。
【００７４】
図７（ａ）を参照して、利用者端末２ａの構成例を説明する。利用者端末２ａは、制御部６０１、メモリ６０２、メモリダンプ部６０３、ファイル記憶部２１、投入部２２、表示部２３、全体特徴量算出部３２、区間分割部３４、区間特徴量算出部３５を備える。この利用者端末２ａも、例えば、ＣＰＵ、ＲＡＭ等を有するコンピュータにより実現される。
【００７５】
制御部６０１は、利用者端末２ａ全体の制御を司る。メモリ６０２は、利用者端末２ａに入力されたデータや各処理で得られたデータが格納される。このメモリ６０２に格納されたデータは必要に応じて読み出されて他の処理に利用される。例えば、メモリ６０２上には、制御部６０１により読み込まれたファイルが展開される。メモリダンプ部６０３は、第１の実施形態の類似度評価システムの処理対象と同様に、メモリ６０２上に展開されたファイルのうち、所定のファイルのメモリイメージのバイナリファイルを生成し、ファイル記憶部２１に記憶（保存）する。
【００７６】
図７（ｂ）を参照して、類似度評価装置３ａの構成例を説明する。類似度評価装置３ａは、制御部７０１、メモリ７０２、入力部３１、全体類似度評価部３３、補正部３６、区間類似度評価部３７、出力部３８、特徴量記憶部３９を備える。この類似度評価装置３ａも、例えば、ＣＰＵ、ＲＡＭ等を有するコンピュータにより実現される。
【００７７】
制御部７０１は、類似度評価装置３ａ全体の制御を司る。メモリ７０２は、類似度評価装置３ａに入力されたデータや各処理で得られたデータが格納される。このメモリ７０２に格納されたデータは必要に応じて読み出されて他の処理に利用される。
【００７８】
（処理手順）
図８を参照して、利用者端末２ａの処理手順の例を説明する。まず、利用者端末２ａの制御部６０１は、ファイルを読み込み（Ｓ１１）、当該ファイルがメモリ６０２上に展開されると（Ｓ１２）、図３のＳ１３およびＳ１４と同様の手順により、メモリイメージのバイナリファイルの生成対象のファイルについて、メモリイメージのバイナリファイルを生成し（Ｓ１３）、ファイル記憶部２１に保存する（Ｓ１４）。その後、利用者端末２ａは、ファイル記憶部２１に保存されたバイナリファイル群のうち、利用者の操作に従って選択されたバイナリファイルそれぞれに対し、Ｓ３２以降の処理を実行する。
【００７９】
すなわち、利用者端末２ａの全体特徴量算出部３２は、図４のＳ３２と同様に、比較対象ファイル群の比較元ファイルと比較先ファイルそれぞれから所定のエントロピー値を算出すると、比較元ファイルと比較先ファイルが区間分割部３４へ入力される。区間分割部３４は、比較元ファイルと比較先ファイルそれぞれを所定の方法で複数の区間に分割する（Ｓ３４）。区間分割の方法は、第１の実施形態と同様であるので説明を省略する。
【００８０】
Ｓ３４の後、比較元分割ファイルと比較先分割ファイルが区間特徴量算出部３５へ入力されると、区間特徴量算出部３５は、図４のＳ３５と同様に、比較元分割ファイルと比較先分割ファイルそれぞれから区間ごとに所定のエントロピー値（特徴量）を算出する（Ｓ３５：区間ごとの特徴量を算出）。
【００８１】
Ｓ３５の後、利用者端末２ａの投入部２２は、Ｓ３５で算出した特徴量（つまり、比較元全体特徴量および比較先全体特徴量と、比較元区間特徴量および比較先区間特徴量）を類似度評価装置３ａへ送信する。
【００８２】
図９を参照して、類似度評価装置３ａの処理手順の例を説明する。まず、類似度評価装置３ａの入力部３１は利用者端末２ａが送信した特徴量の入力を受け付ける（Ｓ３１１）。入力された特徴量は特徴量記憶部３９に記憶される。
【００８３】
Ｓ３１１の後、全体類似度評価部３３は、図４のＳ３３１と同様に、特徴量記憶部３９から読み出した比較元全体特徴量と比較先全体特徴量から全体類似度を算出する（Ｓ３３１：ファイル全体の類似度を算出）。全体類似度の算出は、第１の実施形態と同様であるので説明を省略する。
【００８４】
全体類似度評価部３３は、図４のＳ３３２と同様に、Ｓ３３１で算出した全体類似度をあらかじめ定めた閾値と比較し、比較元ファイルと比較先ファイルが類似するか否かを判定し、その判定結果（暫定判定結果）を求める（Ｓ３３２：全体類似度が閾値以上のファイル群が存在するか）。つまり、全体類似度評価部３３は、全体類似度が閾値以上である場合にはファイルが類似することを示す値を暫定判定結果に設定し、全体類似度が閾値未満の場合にはファイルが類似しないことを示す値を暫定判定結果に設定する。
【００８５】
Ｓ３３２における暫定判定結果が比較元ファイルと比較先ファイルとが類似しないことを示す場合（Ｓ３３２でＮｏ）、全体類似度評価部３３は、比較元ファイルと比較先ファイルとが類似しないと判定し（Ｓ３８２：類似ファイルはない）、その判定結果を出力し、処理を終了する。
【００８６】
一方、Ｓ３３２で暫定判定結果が比較元ファイルと比較先ファイルとが類似することを示す場合には（Ｓ３３２でＹｅｓ）、補正部３６は、特徴量記憶部３９から読み出した比較元区間特徴量と比較先区間特徴量それぞれに対し、図４のＳ３６と同様にＤＰマッチングによる補正を行う（Ｓ３６）。
【００８７】
そして、区間類似度評価部３７は、Ｓ３６で補正された比較元区間特徴量および比較先区間特徴量に基づいて比較元ファイルと比較先ファイルが類似するか否かを示す判定結果を求める。つまり、区間類似度評価部３７は、補正後の区間特徴量が評価基準を満たすか否かを判定する（Ｓ３７）。そして、区間類似度評価部３７はＳ３７における判定結果を、出力部３８を介して利用者端末２ａへ送信する。すなわち、区間類似度評価部３７は、Ｓ３７において補正後の区間特徴量が評価基準を満たすと判定したとき（Ｓ３７でＹｅｓ）、ファイルが類似すると判定し（Ｓ３８１：類似ファイルがある）、その判定結果を利用者端末２ａへ送信する。一方、区間類似度評価部３７は、Ｓ３７において補正後の区間特徴量が評価基準を満たさないと判定したとき（Ｓ３７でＮｏ）、ファイルが類似しないと判定し（Ｓ３８２：類似ファイルはない）、その判定結果を利用者端末２ａへ送信する。送信する判定結果に含める情報および利用者端末２ａにおける表示方法は第１の実施形態と同様であるので説明を省略する。
【００８８】
第２の実施形態の類似度評価システムによれば、利用者端末２ａで各種特徴量を算出して類似度評価装置３ａへ送信するので、利用者端末２ａから類似度評価装置３ａへの送信データ量を低減できる。したがって、ネットワーク４上に流れるトラフィックを抑え、類似度評価システムにおけるレスポンスを向上させることができる。
【００８９】
（その他の実施形態）
この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。上記実施例において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【００９０】
また、上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【００９１】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００９２】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ（Digital  Versatile  Disc）、ＣＤ−ＲＯＭ（Compact  Disc−Read  Only  Memory）等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００９３】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application  Service  Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００９４】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【００９５】
２，２ａ  利用者端末
３，３ａ  類似度評価装置
２１    ファイル記憶部
２２    投入部
２３    表示部
３１    入力部
３２    全体特徴量算出部
３３    全体類似度評価部
３４    区間分割部
３５    区間特徴量算出部
３６    補正部
３７    区間類似度評価部
３８    出力部
３９    特徴量記憶部
２０２，６０２  メモリ
２０３，６０３  メモリダンプ部
【図１】
2018067126.tif 000012
【図２】
2018067126.tif 000013
【図３】
2018067126.tif 000014
【図４】
2018067126.tif 000015
【図５】
2018067126.tif 000016
【図６】
2018067126.tif 000017
【図７】
2018067126.tif 000018
【図８】
2018067126.tif 000019
【図９】
2018067126.tif 000020