(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
近年、アイコンを一見無害に見える他のソフトウェアやファイルのアイコンに偽装した上で、不正かつ有害な動作を行う意図で作成された悪意のあるソフトウェアや悪質なコードをユーザに送付し、ユーザが悪意のあるソフトウェアや悪質なコードをそれと知らずに実行してしまう問題が生じている。ここで、不正かつ有害な動作を行う意図で作成された悪意のあるソフトウェアや悪質なコードをマルウェア(Malicious Software)と呼ぶ。
【0003】
マルウェアに感染したコンピュータはネットワークに接続された他のコンピュータに対して不正あるいは有害な動作を行うことが特徴であり、例えば、迷惑メールの大量送信や、サーバへの不正な大量アクセスによるサービス妨害攻撃といった悪質な行動を行うためのツールとして使われる。マルウェアの脅威は外部に対する攻撃のみならず、感染したコンピュータからクレジットカードの番号やアドレス帳などの個人情報を抽出し、外部のコンピュータに送信する動作も存在する。このようなマルウェアによる被害を未然に防ぐためにはマルウェア本体、あるいはマルウェア本体を送受信している通信を検出する技術が必要となる。
【0004】
このようなマルウェアの中には、Word文書などのドキュメントファイルに関連付けされるアイコンそのもの、一見そのように見えるアイコンを保有し自身をドキュメントファイルに誤認させる工夫がされているもの、画像ファイルやフォルダなどのアイコンそのもの、一見そのように見えるアイコンを用いて実行を誘導する工夫がされているものが存在する。ここでは、これらのアイコン類を「偽装アイコン」と呼ぶ。
【0005】
従来、偽装アイコンを有するマルウェアを検知する方法としては、
図12に示すように、実行ファイルのリソース内からアイコンイメージのハッシュ値を抽出し、このハッシュ値と予め保持している偽装アイコンのハッシュ値のリストとのマッチングを行い、合致すれば偽装アイコンを保持していると判別する方法がある。しかし、この方法では、予め保持している偽装アイコンには対応できるものの、アイコンイメージが少しでも変化した場合には、ハッシュ値が異なることから、偽装アイコンと判別できないという問題がある。
図13のアイコンイメージは、左上の画素が異なるだけであるが、ハッシュ値が異なる。
【0006】
他方、特許文献1に開示された技術は、危険性判定の対象となる対象ファイルのアイコン画像の特徴情報と、実行形式ファイルではない文書ファイルなどのファイルのアイコン画像として一般によく知られているアイコン画像である基本アイコン画像の特徴情報との類似度を算出し、算出された類似度に基づいて、対象ファイルの危険性を判定する。
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、特許文献1に開示される技術では、基本アイコン画像の特徴情報との類似度を算出するのみで、本来は正常なファイルであっても、誤って偽装アイコンだと判定してしまうといった問題がある。
【0009】
本発明は、上記のような従来技術に伴う課題を解決しようとするものであって、その目的とするところは、アイコンイメージが少しでも変化した場合でも、偽装アイコンをマルウェアと判定しやすくするところにある。
【0010】
また、本発明の他の目的は、本来は正常なファイルを誤って偽装アイコンと判定するといったような誤検知を抑制するところにある。
【課題を解決するための手段】
【0011】
本発明の一実施形態によれば、所定のファイルのリソース内からアイコン画像のバイナリを抽出する特徴情報抽出部と、前記抽出したアイコン画像のバイナリから特徴ベクトルを生成する特徴ベクトル生成部と、前記特徴ベクトルを用いて機械学習により前記所定のファイルがマルウェアかどうかを判定する判定部と、を備える情報処理装置が提供される。
【0012】
前記特徴情報抽出部は、前記アイコン画像から数値を抽出し、偽装アイコン画像を数値化した数値を記憶する数値記憶部と、前記特徴情報抽出部が抽出した数値と前記数値記憶部が記憶する数値とに基づいて前記所定のファイルがマルウェアかどうかを判定する概括的判定部と、を備えることを特徴とする情報処理装置であってもよい。
【0013】
少なくとも前記判定部及び前記概括的判定部のうち一つが前記所定のファイルをマルウェアと判定した場合に、所定のマルウェア初期ポイントを設定する初期ポイント設定部と、前記所定のファイルがマルウェアかどうかを判定する指標となるポイント閾値を記憶するポイント閾値記憶部と、前記所定のファイルが所定の条件を満たすときに前記マルウェア初期ポイントに所定のポイントを加算または減算するポイント加減部と、前記ポイント加減部によって加算または減算されて算出されるポイントが、前記ポイント閾値記憶部が記憶するポイント閾値を超えるかどうかを判定し、該ポイント閾値を超える場合には、前記所定のファイルをマルウェアと判定する閾値判定部と、をさらに備えることを特徴とする情報処理装置であってもよい。
【0014】
前記マルウェアと判定された所定のファイルのアイコン画像を数値化する数値化部をさらに備え、前記数値記憶部は、前記数値化部によって数値化された数値を記憶することを特徴とする情報処理装置であってもよい。
【0015】
本発明の一実施形態によれば、コンピュータが、所定のファイルのリソース内からアイコン画像のバイナリを抽出し、前記抽出したアイコン画像のバイナリから特徴ベクトルを生成し、前記特徴ベクトルを用いて機械学習により前記所定のファイルがマルウェアかどうかを判定する情報処理方法が提供される。
【0016】
本発明の一実施形態によれば、コンピュータに、所定のファイルのリソース内からアイコン画像のバイナリを抽出し、前記抽出したアイコン画像のバイナリから特徴ベクトルを生成し、前記特徴ベクトルを用いて機械学習により前記所定のファイルがマルウェアかどうかを判定することを実行させるためのプログラムが提供される。
【0017】
前記コンピュータに、前記バイナリを抽出するのに、所定の間隔で抽出することを実行させてもよい。
【0018】
前記コンピュータに、前記アイコン画像から数値を抽出し、偽装アイコン画像を数値化した数値を記憶し、前記抽出した数値と前記記憶する数値とに基づいて前記所定のファイルがマルウェアかどうかを判定することをさらに実行させてもよい。
【0019】
前記コンピュータに、少なくとも前記特徴ベクトルを用いて機械学習により前記所定のファイルがマルウェアかどうかを判定すること及び前記抽出した数値と前記記憶する数値とに基づいて前記所定のファイルがマルウェアかどうかを判定することのうち一つが前記所定のファイルをマルウェアと判定した場合に、所定のマルウェア初期ポイントを設定し、前記所定のファイルがマルウェアかどうかを判定する指標となるポイント閾値を記憶し、前記所定のファイルが所定の条件を満たすときに前記マルウェア初期ポイントに所定のポイントを加算または減算し、前記加算または減算されて算出されるポイントが、前記記憶するポイント閾値を超えるかどうかを判定し、該ポイント閾値を超える場合には、前記所定のファイルをマルウェアと判定することを実行させてもよい。
【0020】
前記コンピュータに、前記マルウェアと判定された所定のファイルのアイコン画像を数値化し、前記数値化された数値を記憶することを実行させてもよい。
【0021】
前記コンピュータに、前記所定のファイルのアイコン画像が正規のアイコン画像かどうかを判定し、前記所定のファイルのアイコン画像が正規のアイコン画像でないと判定した場合に、前記マルウェア初期ポイントに所定のポイントを加算することを実行させてもよい。
【0022】
前記所定のファイルのリソース内に保有されるアイコンの数を抽出し、前記抽出したアイコンの数が所定の数を下回る場合に、前記マルウェア初期ポイントに所定のポイントを加算することを実行させてもよい。
【0023】
前記所定のファイルからバージョン情報を抽出し、前記所定のファイルのアイコン画像が前記バージョン情報に対応しない場合に、前記マルウェア初期ポイントに所定のポイントを加算することを実行させてもよい。
【0024】
前記所定のファイルからプログラミング言語情報を抽出し、前記抽出されるプログラミング言語情報が、前記所定のファイルが保持するアイコン画像に対応するプログラミング言語情報でない場合に、前記マルウェア初期ポイントに所定のポイントを加算することを実行させてもよい。
【0025】
前記所定のファイルからコンパイラ情報を抽出し、前記抽出されるコンパイラ情報が、前記所定のファイルが保持するアイコン画像に対応するコンパイラ情報でない場合に、前記マルウェア初期ポイントに所定のポイントを加算することを実行させてもよい。
【0026】
前記所定のファイルからパッカーに関する情報を抽出し、前記所定のファイルからパッカーに関する情報を抽出した場合に、前記マルウェア初期ポイントに所定のポイントを加算することを実行させてもよい。
【0027】
前記所定のファイルから自己解凍書庫情報を抽出し、前記所定のファイルから自己解凍書庫情報を抽出した場合に、前記マルウェア初期ポイントに所定のポイントを加算することを実行させてもよい。
【0028】
前記所定のファイルからファイル名を抽出し、前記抽出されたファイル名の文字数が所定の文字数を超える場合に、前記マルウェア初期ポイントに所定のポイントを加算することを実行させてもよい。
【0029】
前記所定のファイルからファイル名を抽出し、前記抽出されたファイル名にユニコード制御文字が含まれる場合に、前記マルウェア初期ポイントに所定のポイントを加算することを実行させてもよい。
【0030】
前記所定のファイルからファイル名を抽出し、前記抽出されたファイル名に複数の拡張子が含まれる場合に、前記マルウェア初期ポイントに所定のポイントを加算することを実行させてもよい。
【0031】
前記所定のファイルからファイル名を抽出し、前記抽出されたファイル名に2バイト文字が含まれている場合に、前記マルウェア初期ポイントに所定のポイントを加算することを実行させてもよい。
【0032】
本発明の一実施形態によれば、前記のプログラムを記録したコンピュータ読み取り可能な記録媒体が提供されてもよい。
【発明の効果】
【0033】
本発明によれば、アイコンイメージが少しでも変化した場合でも、偽装アイコンをマルウェアと判定しやすくすることができる。
【発明を実施するための形態】
【0035】
以下、本発明の一実施形態について、図面を参照しながら詳細に説明する。以下に示す実施形態は本発明の実施形態の一例であって、本発明はこれらの実施形態に限定されるものではない。なお、本実施形態で参照する図面において、同一部分または同様な機能を有する部分には同一の符号または類似の符号(数字の後にA、Bなどを付しただけの符号)を付し、その繰り返しの説明は省略する場合がある。また、図面の寸法比率は説明の都合上実際の比率とは異なったり、構成の一部が図面から省略されたりする場合がある。
【0036】
<第1実施形態>
[情報処理装置の構成]
図1乃至
図4を用いて、情報処理装置1について説明する。
図1は、本発明の一実施形態に係る情報処理装置の概念図である。
【0037】
情報処理装置1は、接続するユーザ端末30a、30b、サーバ33それぞれがネットワーク27を介して接続する。なお、ユーザ端末の区別が不要な場合には、「ユーザ端末30」と表記する。
【0038】
ここで、ネットワーク27は、例えば、LAN(ローカルエリアネットワーク)やインターネット等のネットワークであり、無線/有線回線、専用回線等を問わず、ユーザ端末30がワークフロー情報処理装置1に接続可能なネットワーク環境が適用される。
【0039】
また、ユーザ端末30は、多機能携帯電話、携帯電話やPDA(Personal Digital Assistant)等の移動通信端末装置、パーソナルコンピュータなどの通信機能及び演算機能を備えた情報処理端末装置等が含まれる。また、画面を表示する表示制御機能としてブラウザを備え、CPU、メモリ及び情報処理装置1との間の通信制御を遂行する通信制御部等を含む。さらに、マウスやキーボード、タッチパネル等の操作入力装置及び表示装置を備えることができる。
【0040】
情報処理装置1は、特徴情報抽出部10、特徴ベクトル生成部11及び判定部12を備える。
【0041】
特徴情報抽出部10は、検体である所定のファイル(実行ファイルなど)のリソース内からアイコン画像のバイナリを抽出する。ここで、抽出したアイコン画像に対して、縮小や正規化などの加工を行ってもよい。
【0042】
この例では、アイコン画像のバイナリの抽出は、すべての画素から抽出している。もっとも、アイコン画像のバイナリの抽出方法は、この方法に限定されるものではなく、所定の間隔でバイナリを抽出してもよい。例えば、左上の画素を(1、1)として、(1、3)、(1、5)・・・(2、1)、(2、3)・・・といったように奇数の画素のバイナリを抽出してもよいし、偶数の画素のバイナリを抽出してもよい。奇数の画素や偶数の画素ではなく、これらよりも間隔を大きくして、画素のバイナリを抽出してもよい。
【0043】
特徴ベクトル生成部11は、特徴情報抽出部10が抽出したアイコン画像のバイナリから特徴ベクトルを生成する。
図2を用いて、特徴ベクトルの生成について説明する。
図2は、本発明の一実施形態に係る情報処理装置が特徴ベクトルを生成することを説明するための図である。
【0044】
特徴ベクトル生成部11は、アイコン画像の各画素のRGB値をベクトルとする。この例では、
図2のアイコン画像の左上の画素は、「R:0xD4」、「G:0x00」、「B:0xC8」で、「0x00D4D0C8」である。そして、16進数である「D4D0C8」を10進数で表わすと「13947080」となる。
図2のアイコン画像の各画素について、同様に10進数とした上で、ベクトルとする。この例では、特徴ベクトル={13947080、13947080、・・・、8293013、・・・}となる。
【0045】
判定部12は、特徴ベクトルを用いて機械学習により、検体である所定のファイルがマルウェアかどうか判定する。ところで、判定部(モデル)12は、予め生成される。
図3を用いて、判定部(モデル)12の生成について説明する。
図3は、本発明の一実施形態に係る情報処理装置の判定部(モデル)を生成するフローを説明するための図である。
図4は、
図3で生成したモデルを移植することを説明するための概念図である。
【0046】
偽装アイコンを持つマルウェアから抽出したアイコン画像及び正常なソフトウェアから抽出したアイコン画像を複数、ラベル付けして準備する。そして、これを学習データセット(教師データ)とする。この学習データをモデルに投入する(S101)。この例では、学習データを投入するモデルについては、重みwiを任意(ランダム)に決めている。もっとも、公知のプレトレーニング等の方法によって、重みwiの値を決めてもよい。
【0047】
学習データをモデルに投入すると、ディープラーニングのアルゴリズムにしたがって学習を行う(S102)。この学習の結果、モデルの内部構造が変化する。具体的には、モデルの重みwiの値が変化する。なお、活性化関数は、固定されている。ディープラーニングは、CNN(Convolutional Neural Network)などである。この例では、ディープラーニングによる学習を行っているが、これに限定されるものではなく、誤差逆伝播法(Backpropagation;バックプロパゲーション)、ボルツマンマシン、TWDRLS、コグニトロンなど他のアルゴリズムであってもよい。
【0048】
学習の結果、内部構造が変化してモデルの分類精度が、一定の分類精度かどうかを判定する(S103)。一定の分類精度である場合(S103でYesの場合)には、モデルの生成が完了する(S104)。他方、一定の分類精度未満の場合(S103でNoの場合)には、S101からS103を繰り返す。モデルの生成が完了すると、生成したモデルをマルウェア検出エンジンに移植する。この移植したモデルが判定部12である。
【0049】
[マルウェア判定フロー]
図5を用いて、情報処理装置が検体であるファイルをマルウェアと判定するフローを説明する。
図5は、本発明の一実施形態に係る情報処理装置がマルウェアを判定するフローを説明するための図である。
【0050】
まず、特徴情報抽出部10が、検体であるファイル(実行ファイルなど)のリソース内からアイコン画像のバイナリを抽出する(S201)。次に、特徴ベクトル生成部11が、抽出したアイコン画像のバイナリから特徴ベクトルを生成する(S202)。そして、判定部12が、特徴ベクトルを用いて、機械学習により検体であるファイルがマルウェアかどうかを判定する(S203)。判定部12によって、マルウェアと判定されるか(S204a)、正常と判定される(S204b)と、フローは終了となる。
【0051】
本実施形態では、判定部12は、ディープラーニングによる学習により、初期のモデルから内部構造が変化し、一定の分類精度を有すると判定されたモデルが移植されたものである。そして、判定部12は、機械学習により、検体であるファイルをマルウェアかどうか判定する。そのため、従来技術よりも、より高精度で検体であるファイルをマルウェアと判定することができるという効果を奏する。
【0052】
<第2実施形態>
第1実施形態のように、機械学習により検体であるファイルをマルウェアかどうか判定する方法は、従来技術よりもより高精度で検体であるファイルをマルウェアと判定することができるという意味で効果を有する。もっとも、この方法では、検体であるファイルが本来は正常なソフトウェアであるにもかかわらず、誤ってマルウェアと判定してしまうことがある。このような判定を誤検知(誤判定)という。本発明者は、この誤検知を抑制する方法の必要性を認識し、鋭意検討した結果、検体であるファイルのアイコン画像の色の出現回数や濃淡ヒストグラムに着目した統計的アプローチを用いる方法を考えるに至った。
【0053】
[情報処理装置の構成]
図6を用いて、情報処理装置2について説明する。
図6は、本発明の他の実施形態に係る情報処理装置の概念図である。本実施形態に係る情報処理装置2は、第1実施形態の構成に加えて、概括的判定部13、数値記憶部21を備える。ここでは、第1実施形態と異なる点について詳細に説明する。
【0054】
特徴情報抽出部10は、検体であるファイルのリソース内からアイコン画像のバイナリを抽出する。加えて、特徴情報抽出部10は、アイコン画像から数値を抽出する。
【0055】
数値記憶部21は、この例では、偽装アイコン画像を数値化した数値を予め記憶し、保持している。ここで、偽装アイコン画像は、すでに偽装アイコンと判明しているアイコンの画像である。このような画像を多数、数値化して、数値を記憶し、保持する。
【0056】
概括的判定部13は、特徴情報抽出部10が検体であるファイルのリソース内のアイコン画像から抽出した数値と数値記憶部21とに基づいて、検体であるファイルがマルウェアかどうかを判定する。概括的判定部13としては、Average Hashが挙げられる。Average Hashである場合には、特徴情報抽出部10は、アイコン画像のサイズを縮小し(例えば、8×8画素)、色をグレースケールにする。そして、画像の各画素を使って色の平均値を計算し、それぞれの画素で色の濃淡を調べ、その色が平均値よりも濃い場合には、「1」を設定し、薄い場合には、「0」を設定する。そうすると、64ビット(8×8)のビット列ができる。特徴情報抽出部10が抽出する数値は、このビット列である。
【0057】
多数のすでに偽装アイコンと判明しているアイコンの画像についても、同様に、ビット列を生成し、そのビット列(数値)を予め数値記憶部21に記憶する。そして、概括的判定部13は、検体であるファイルから抽出されるビット列(数値)と数値記憶部21が記憶する、多数のすでに偽装アイコンと判明しているアイコンの画像のビット列(数値)とを1ビットずつ比較して、類似度を計算する。そして、予め設定した所定の類似度を超えた場合に、概括的判定部13は、検体であるファイルをマルウェアと判定する。
【0058】
概括的判定部13としては、Average Hashに限定されるものではなく、Jaccard係数、TF/IDF、FuzzyHash、SAD(Sum of Absolute Difference)などを用いてもよい。これらのいずれかを用いて、検体であるファイルから抽出される数値と多数のすでに偽装アイコンと判明しているアイコンの画像の数値とを比較して、類似度を計算する。そして、予め設定した所定の類似度を超えた場合に、概括的判定部13は、検体であるファイルをマルウェアと判定する。また、概括的判定部13として、Average Hashによる判定、Jaccard係数、TF/IDF、FuzzyHash、SAD(Sum of Absolute Difference)などを用いた判定の複数を用いてもよい。これらは互いに独立しているからである。
【0059】
[マルウェア判定フロー]
図7を用いて、情報処理装置が検体であるファイルをマルウェアと判定するフローを説明する。
図7は、本発明の他の実施形態に係る情報処理装置がマルウェアを判定するフローを説明するための図である。本実施形態のS301、S302、S303は、第1実施形態のS201、S202、S203に対応する。ここでは、S303以降について詳細に説明する。
【0060】
機械学習による判定の結果、検体であるファイルがマルウェアではなく正常なソフトウェアと判定される場合(S303でNoの場合)、検体であるファイルは、正常なソフトウェアと判定される(S306)。他方、機械学習による判定の結果、検体であるファイルがマルウェアであると判定される場合(S303でYesの場合)、さらに概括的判定部13が、検体であるファイルがマルウェアかどうか判定する(S304)。具体的な判定方法は、上記のとおりである。
【0061】
概括的判定部13が、検体であるファイルがマルウェアではなく正常なソフトウェアと判定する場合(S304でNoの場合)、検体であるファイルは、正常なソフトウェアと判定され(S306)、フローは終了となる。他方、概括的判定部13が、検体であるファイルがマルウェアであると判定する場合(S304でYesの場合)、検体であるファイルはマルウェアと判定され(S305)、フローは終了となる。
【0062】
本実施形態でも、第1実施形態と同様に、判定部12は、機械学習により、検体であるファイルをマルウェアかどうか判定する。そのため、従来技術よりも、より高精度で検体であるファイルをマルウェアと判定することができるという効果を奏する。
【0063】
本実施形態では、判定部12によってマルウェアと判定されたファイルについて、概括的判定部13がさらにマルウェアかどうか判定する。判定部12は、検体であるファイルが本来は正常なソフトウェアであるにもかかわらず、誤ってマルウェアと判定してしまうことが稀にある。このような判定を誤検知(誤判定)という。概括的判定部13は、判定部12の誤検知を抑制するという効果を奏する。
【0064】
<第3実施形態>
[マルウェア判定フロー]
図8を用いて、情報処理装置が検体であるファイルをマルウェアと判定するフローを説明する。
図8は、本発明の他の実施形態に係る情報処理装置がマルウェアを判定するフローを説明するための図である。
【0065】
第3実施形態は、第2実施形態と一部のフローの順番が異なる。第2実施形態では、判定部12による判定の後に概括的判定部13による判定が行わるが、第3実施形態では、概括的判定部13による判定の後に判定部12による判定が行われる。
【0066】
本実施形態でも、第2実施形態と同様の効果を奏する。
【0067】
<第4実施形態>
第2実施形態及び第3実施形態のように、機械学習により検体であるファイルをマルウェアかどうか判定する方法に加えて、概括的判定を行うことにより、より高精度で検体であるファイルをマルウェアと判定することができる。これらの方法でも、誤検知をすべて防ぐことはできない。そこで、本発明者は、さらに誤検知を抑制する方法を鋭意検討した結果、第2実施形態及び第3実施形態に加えて、マルウェアの特徴を加味して誤検知を抑制する方法を考えるに至った。以下では、マルウェアの特徴例を11項目説明するが、本実施形態は、これらに限定されるものではない。
【0068】
[情報処理装置の構成]
図9を用いて、情報処理装置3について説明する。
図9は、本発明の他の実施形態に係る情報処理装置の概念図である。本実施形態に係る情報処理装置3は、第2実施形態の構成に加えて、初期ポイント設定部14、ポイント加減部15、閾値判定部16、改ざんアイコン判定部17、ポイント閾値記憶部22を備える。ここでは、第2実施形態と異なる点について詳細に説明する。
【0069】
初期ポイント設定部14は、少なくとも判定部12及び概括的判定部13のうち一つが検体である所定のファイルをマルウェアと判定した場合に、所定のマルウェア初期ポイントを設定する。判定部12が検体であるファイルをマルウェアと判定した場合であってもよいし、概括的判定部13が検体であるファイルをマルウェアと判定した場合であってもよいし、判定部12及び概括的判定部13が検体であるファイルをマルウェアと判定した場合であってもよい。これらの場合に、初期ポイント設定部14は、マルウェア初期ポイントを設定する。この例では、マルウェア初期ポイントは、90ポイントとして説明する。マルウェア初期ポイントは、予め記憶部20に記憶しておいてもよい。
【0070】
ポイント閾値記憶部22は、所定のファイルがマルウェアかどうかを判定する指標となるポイント閾値を記憶する。この例では、ポイント閾値は、95ポイントとして説明する。
【0071】
ポイント加減部15は、検体であるファイルが所定の条件を満たすときに、初期ポイント設定部14が設定したマルウェア初期ポイントに所定のポイントを加算または減算する。所定のポイントは、適宜設定可能である。「所定の条件」については、11項目を後述する。所定のポイントは、項目ごとに異なる値であってもよい。また、項目ごとのポイントを予め記憶部20に記憶しておいてもよい。
【0072】
閾値判定部16は、ポイント加減部15によって加算または減算されて算出されるポイントが、ポイント閾値記憶部22が記憶するポイント閾値を超えるかどうかを判定し、そのポイント閾値を超える場合には、検体であるファイルをマルウェアと判定する。例えば、判定部12及び概括的判定部13がマルウェアと判定したファイルには、マルウェア初期ポイントとして90ポイントが設定される。そして、このファイルが所定の条件を満たすとき、ポイント加減部15は、90ポイントに所定のポイントを加算または減算する。90ポイントに所定のポイントを加算または減算して算出されるポイントが95ポイントを超える場合には、検体であるファイルはマルウェアと判定される。
【0073】
マルウェアの具体的特徴11項目について説明する。検体であるファイルがマルウェアの具体的特徴に合致するとき、ポイント加減部15は、初期ポイント設定部14が設定したマルウェア初期ポイントに所定のポイントを加算する。マルウェアの具体的特徴は、特徴情報抽出部10によって抽出される。
【0074】
(具体的特徴1)
改ざんアイコン判定部17は、検体であるファイルのアイコン画像が正規のアイコン画像かどうかを判定する。正規のアイコン画像である場合、オペレーティングシステムの内部に完全に同一のアイコンが保持されている場合がある。また、一般的に知られている正規のアイコン画像については、記憶部20に記憶しておくことで判別可能である。他方、正規のアイコン画像を改ざんしている場合には、マルウェアである可能性が高い。そこで、ポイント加減部15は、改ざんアイコン判定部17が検体であるファイルのアイコン画像が正規のアイコン画像でないと判定した場合に、マルウェア初期ポイントに所定のポイントを加算する。他方、ポイント加減部15は、改ざんアイコン判定部17が検体であるファイルのアイコン画像が正規のアイコン画像であると判定した場合、マルウェア初期ポイントに所定のポイントを減算する。
【0075】
(具体的特徴2)
正規のアプリケーションは、多数のアイコンリソースを保有する傾向がある。他方、マルウェアのアイコンリソース数は極端に少ない傾向がある。そこで、特徴情報抽出部10が、検体であるファイルのリソースファイルからアイコンセグメントの数を抽出する。そして、抽出されたアイコンセグメントの数が所定の閾値を下回る場合には、ポイント加減部15は、マルウェア初期ポイントに所定のポイントを加算する。他方、抽出されたアイコンセグメントの数が所定の閾値以上の場合には、ポイント加減部15は、マルウェア初期ポイントに所定のポイントを減算する。ここで、加算する場合のポイントと減算する場合のポイントとは異なってもよい。また、所定の閾値については、予め記憶部20に記憶しておいてもよい。
【0076】
(具体的特徴3)
例えば、マイクロソフト・ワードなどのマイクロソフト(登録商標)のアイコンを有するアプリケーションは、基本的にはマイクロソフト(登録商標)製のアプリケーションである。そこで、特徴情報抽出部10が、検体であるファイルからバージョン情報を抽出する。そして、ポイント加減部15は、検体であるファイルのアイコン画像がバージョン情報に対応しない場合に、マルウェア初期ポイントに所定のポイントを加算する。例えば、検体であるファイルがマイクロソフト(登録商標)のアイコンを保持しているにもかかわらず、抽出されたバージョン情報がマイクロソフト(登録商標)でない場合には、ポイント加減部15は、マルウェア初期ポイントに所定のポイントを加算する。
【0077】
(具体的特徴4)
例えば、検体であるファイルがマイクロソフト・ワードなどのマイクロソフト(登録商標)のアイコンを有する場合、アイコンが正規のものであれば、当該アイコンを保持するアプリケーションは、基本的にはC++等を利用したネイティブアプリケーションである。他方、バイナリが「.NET」や「Visual Basic(登録商標)」で作成されている場合には、マルウェアである可能性が高い。具体的には、特徴情報抽出部10がファイルのPEヘッダーからプログラミング言語情報を抽出する。そして、検体であるファイルがマイクロソフト・ワードなどのマイクロソフト(登録商標)のアイコンを有し、しかも抽出されたプログラミング言語情報がC++等でない場合には、ポイント加減部15は、マルウェア初期ポイントに所定のポイントを加算する。
【0078】
(具体的特徴5)
例えば、検体であるファイルがマイクロソフト・ワードなどのマイクロソフト(登録商標)のアイコンを有する場合、アイコンが正規のものであれば、コンパイラは、基本的には「Visual Studio(登録商標)」である。その他のコンパイラを利用している形跡がある場合、例えば、利用されているAPI(Application Programming Interface)に差異がある場合などには、検体であるファイルはマルウェアである可能性が高いため、所定のポイントを加算する。具体的には、特徴情報抽出部10が検体であるファイルからコンパイラ情報を抽出する。ポイント加減部15は、抽出されるコンパイラ情報が、ファイルが保持するアイコン画像に対応するコンパイラ情報でない場合に、マルウェア初期ポイントに所定のポイントを加算する。
【0079】
(具体的特徴6)
偽装アイコンを保持しており、UPX(Ultimate Packer for eXecutables)などのパッカーが利用されている場合、検体であるファイルはマルウェアである可能性が高いため、所定のポイントを加算する。具体的には、特徴情報抽出部10がファイルのセクション情報からパッカーに関する情報を抽出する。ポイント加減部15は、特徴情報抽出部10が所定のファイルからパッカーに関する情報を抽出した場合に、マルウェア初期ポイントに所定のポイントを加算する。
【0080】
(具体的特徴7)
本来、自己解凍書庫が持っているアイコンは特定のものである。偽装アイコンがこのアイコンを保持している場合には、ファイルの実行を誘導している可能性が高い。そこで、この場合には、ポイントを加算する。具体的には、特徴情報抽出部10が、検体であるファイルから自己解凍書庫情報を抽出した場合に、マルウェア初期ポイントに所定のポイントを加算する。
【0081】
(具体的特徴8)
正規のアプリケーションの場合、ファイル名は英数のみで文字数も短い傾向にある。そこで、検体であるファイルが非常に長いファイル名を持っており、かつ、偽装アイコンを保持している場合、ドキュメントファイルに誤認させる目的であると考えられるため、所定のポイントを加算する。ここで、ファイル名の文字数の閾値を設定する。この閾値は、適宜設定可能である。また、文字数の閾値は、記憶部20に予め記憶しておいてもよい。具体的には、特徴情報抽出部10が検体であるファイルのヘッダー情報からファイル名を抽出する。そして、ポイント加減部15は、抽出されたファイル名の文字数が所定の文字数(閾値)を超える場合に、マルウェア初期ポイントに所定のポイントを加算する。
【0082】
(具体的特徴9)
ファイル名を途中から逆転させ、拡張子を誤認させることがある。これを偽装アイコンと組み合わせるケースがある。そこで、ファイル名に、例えば、「¥x202e(RLO(Right to Left Override))」といったユニコード制御文字が含まれており、かつ、偽装アイコンを保持している場合には、ポイントを加算する。具体的には、特徴情報抽出部10が検体であるファイルのヘッダー情報からファイル名を抽出する。そして、ポイント加減部15は、抽出されたファイル名にユニコード制御文字が含まれる場合に、マルウェア初期ポイントに所定のポイントを加算する。
【0083】
(具体的特徴10)
「.doc.exe」といった二重拡張子をファイル名に付与することで、実際のファイル形式を誤認させることがある。これを偽装アイコンと組み合わせるケースがある。そこで、ファイル名に二重拡張子が含まれており、かつ偽装アイコンを保持している場合には、ポイントを加算する。具体的には、特徴情報抽出部10が検体であるファイルのヘッダー情報からファイル名を抽出する。そして、ポイント加減部15は、抽出されたファイル名に複数の拡張子が含まれる場合に、マルウェア初期ポイントに所定のポイントを加算する。
【0084】
(具体的特徴11)
マルウェアをドキュメントファイルに偽装する場合、興味を引くようなファイル名が用いられる傾向がある。特に、日本国内で行われる攻撃では、日本語のファイル名が使用される傾向にある。そこで、ファイル名に2バイト文字が含まれており、かつ、偽装アイコンを保持している場合、ポイントを加算する。具体的には、特徴情報抽出部10が検体であるファイルのヘッダー情報からファイル名を抽出する。そして、ポイント加減部15は、抽出されたファイル名に2バイト文字が含まれている場合に、マルウェア初期ポイントに所定のポイントを加算する。
【0085】
以上、ファイルの具体的特徴、11項目について説明した。特徴情報抽出部10が抽出する特徴は、この11項目すべてでもよいし、そのうちのいくつかを組み合わせるものであってもよい。項目数に応じて、ポイント閾値を適宜設定してもよい。
【0086】
[マルウェア判定フロー]
図10を用いて、情報処理装置が検体であるファイルをマルウェアと判定するフローを説明する。
図10は、本発明の他の実施形態に係る情報処理装置がマルウェアを判定するフローを説明するための図である。本実施形態のS501、S502、S503、S504は、第2実施形態のS301、S302、S303、S304に対応する。ここでは、S504以降について詳細に説明する。
【0087】
概括的判定部13による判定の結果、検体であるファイルがマルウェアであると判定される場合(S504でYesの場合)、初期ポイント設定部14がマルウェア初期ポイントを設定する(S505)。ここでは、マルウェア初期ポイントは、90ポイントであるとして説明する。
【0088】
次に、検体であるファイルが所定の条件を満たすかどうか判定する(S506)。具体的には、検体であるファイルが、上記のマルウェアの具体的特徴を有するかどうかを判定する。所定の条件を満たす場合(S506でYesの場合)には、ポイント加算部15は、マルウェア初期ポイントである90ポイントに所定のポイントを加算する(S507)。他方、所定の条件を満たさない場合(S506でNoの場合)には、ポイントが加算されないことから、ポイントはマルウェア初期ポイントの90ポイントのままである。この例では、ポイント閾値は、マルウェア初期ポイントよりも大きいことを前提としている。そのため、ポイントが加算されない場合には、ポイント閾値を下回るため、検体であるファイルは、正常なソフトウェアと判定される(S510)。
【0089】
マルウェア初期ポイントにポイントが加算された結果、ポイント閾値(ここでは、95ポイント)を超える場合(S508でYesの場合)には、検体であるファイルはマルウェアであると判定され(S509)、フローは終了する。他方、マルウェア初期ポイントにポイントが加算された結果、ポイント閾値以下の場合(S508でNoの場合)には、検体であるファイルは正常なソフトウェアと判定され(S510)、フローは終了となる。
【0090】
本実施形態でも、第1実施形態乃至第3実施形態と同様の効果を奏する。
【0091】
判定部12及び概括的判定部13によってマルウェアと判定されたファイルは、本来は正常なソフトウェアであるにもかかわらず、誤ってマルウェアと判定してしまうことが稀にある。そこで、判定部12及び概括的判定部13によってマルウェアと判定されたファイルについて、マルウェア初期ポイントを設定する。そして、ファイルから各特徴情報を抽出し、マルウェアの具体的特徴を有する場合には、マルウェア初期ポイントにポイントが加算される。加算されて算出されたポイントが、ポイント閾値を超える場合に初めて、検体であるファイルはマルウェアと判定される。本実施形態では、判定部12及び概括的判定部13の誤検知を抑制することができるという効果を奏する。
【0092】
<第5実施形態>
[情報処理装置の構成]
図11を用いて、情報処理装置4について説明する。
図11は、本発明の他の実施形態に係る情報処理装置の概念図である。本実施形態に係る情報処理装置4は、第3実施形態の構成に加えて、数値化部18を備える。ここでは、第3実施形態と異なる点について詳細に説明する。
【0093】
数値化部18は、マルウェアと判定された所定のファイルのアイコン画像を数値化する。この例では、数値化部18は、閾値判定部16によってマルウェアと判定されたファイルのアイコン画像を数値化する。そして、数値記憶部21は、数値化部18によって数値化された数値を記憶する。もっとも、これに限定されるものではなく、数値化部18は、判定部12や概括的判定部13によってマルウェアと判定されたファイルのアイコン画像を数値化してもよい。
【0094】
閾値判定部16によって、未知のファイルでマルウェアと判定されたアイコン画像を数値化した数値も記憶されることになる。すなわち、未知のファイルでマルウェアと判定されたアイコン画像も、検体であるファイルから抽出される数値との比較対象となるデータとなる。もっとも、未知のファイルでマルウェアと判定されたファイルは、本来は正常なソフトウェアである可能性も僅かながらある。そこで、比較対象となるデータとしての適格性を持たせるために、数値化部18によって数値化する対象のファイルは、ポイント閾値を極めて高くしてもよい。
【0095】
本実施形態でも、第1実施形態乃至第4実施形態と同様の効果を奏する。
【0096】
本実施形態では、未知のファイルでマルウェアと判定されたアイコン画像も、検体であるファイルから抽出される数値との比較対象となるデータとなる。そのため、数値記憶部21に記憶される数値が増え、より多くの数の比較対象となるデータとの判定をすることができるという効果を奏する。
【0097】
以上の実施形態に係る方法は、多様なコンピュータ手段によって実行が可能なプログラム命令形態で実現されてコンピュータで読み取り可能な媒体に記録されてもよい。コンピュータで読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含んでもよい。コンピュータで読み取り可能な記録媒体の例としては、ハードディスク、フロッピーディスク(登録商標)、および磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気−光媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を格納して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例としては、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含んでもよい。
【0098】
なお、本発明は上記の実施形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【解決手段】本発明の一実施形態に係る情報処理装置は、所定のファイルのリソース内からアイコン画像のバイナリを抽出する特徴情報抽出部と、前記抽出したアイコン画像のバイナリから特徴ベクトルを生成する特徴ベクトル生成部と、前記特徴ベクトルを用いて機械学習により前記所定のファイルがマルウェアかどうかを判定する判定部と、を備えてもよい。また、本発明の一実施形態に係るプログラムは、コンピュータに、所定のファイルのリソース内からアイコン画像のバイナリを抽出し、前記抽出したアイコン画像のバイナリから特徴ベクトルを生成し、前記特徴ベクトルを用いて機械学習により前記所定のファイルがマルウェアかどうかを判定することを実行させてもよい。