説明

マルウェア検知装置およびプログラム

【課題】ブラックリストを利用したマルウェア検知手法では検知できないマルウェアをより的確に検知することができるマルウェア検知装置およびプログラムを提供する。
【解決手段】抽出部11は、アプリケーションの構成要素である複数のファイルを含むパッケージファイルに含まれる複数のファイルから、所定の圧縮形式で圧縮されているファイルを抽出する。判定部12は、抽出部11によって抽出されたファイルを展開して得られるファイルのファイル名が、アプリケーションの構成要素として必須であるファイルのファイル名と一致するか否かを判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルウェアを検知するマルウェア検知装置に関する。また、本発明は、本マルウェア検知装置としてコンピュータを機能させるためのプログラムにも関する。
【背景技術】
【0002】
汎用OS(オペレーティングシステム)を用いたオープンプラットフォームを採用する、スマートフォンと呼ばれる携帯情報端末が普及している。ネットワークを介して入手可能なアプリケーションをスマートフォンに導入することにより、スマートフォンの様々な機能を柔軟かつ容易に拡張することが可能である。しかし、アプリケーションの中には、利用者の許諾を伴わずに、端末に格納された個人情報を収集して外部に送信するマルウェアとして動作する悪性アプリケーションが存在する。特に、正規のアプリケーションを装いつつ、こうした不正な振る舞いを行うアプリケーションは、トロイの木馬と呼ばれ、その脅威に気付くことが困難である。
【0003】
スマートフォンとPC(パーソナルコンピュータ)を比較した場合、スマートフォンは、利用者との結びつきがPCよりも緊密な機器であり、氏名、電話番号、メールアドレス、住所録、メールの送受信履歴、インターネットの閲覧履歴等の個人情報が集積している。また、端末の高機能化と、常に携帯されることから、従来のPCでは収集されなかった位置情報等の情報も容易に取得可能となり、情報が悪用される脅威に直面する。したがって、アプリケーションを容易に入手可能な環境において個人情報が悪用される脅威からスマートフォンの利用者を保護する必要がある。
【0004】
PC向けに一般的に用いられるマルウェア検知技術として、実行コードを含むプログラムを逆アセンブルして、コード内のAPI(Application Program Interface)の呼び出しやデータの制御フローを解析してマルウェアの特徴を抽出する静的検知手法がある(例えば、非特許文献1参照)。しかし、プログラムの逆アセンブルと特徴の抽出に多くの計算処理能力を必要とするため、PCと比較してCPUの処理能力やメモリの搭載容量が乏しいスマートフォンでは、検知に時間がかかること、および消費電力が増大することが課題となる。
【0005】
したがって、スマートフォンのマルウェア検知には、静的検知手法よりも少ない処理量で実現できる手法が利用されている。具体的には、アプリケーションを構成するファイルの名称(ファイル名)があらかじめ登録されたブラックリストを用いてアプリケーションを検査し、ブラックリストに登録されているファイル名と一致するファイル名が発見された場合にマルウェアを検知する手法が用いられる。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】泉田大宗、橋本政朋、森彰、“動的エミュレーションと静的解析を併用したバイナリコードの解析手法”、情報処理学会研究報告. マルチメディア通信と分散処理研究会報告、2010年2月25日
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、アプリケーションを構成するファイルのファイル名と、ブラックリストに登録されたファイル名との照合を行うことによるマルウェアの検知から逃れるため、マルウェアの作成者が、ブラックリストに登録されているファイル名を有する悪意のファイルのファイル名の全部または一部(例えば、拡張子)を変更してアプリケーションのファイルに追加する場合がある。このため、マルウェア検知の回避が可能となり、的確なマルウェア検知を実現することができないという問題があった。また、ブラックリストに登録されていない新規なマルウェアを検知することができないという問題があった。
【0008】
本発明は、上述した課題に鑑みてなされたものであって、ブラックリストを利用したマルウェア検知手法では検知できないマルウェアをより的確に検知することができるマルウェア検知装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明は、上記の課題を解決するためになされたもので、アプリケーションの構成要素である複数のファイルを含むパッケージファイルに含まれる前記複数のファイルから、所定の圧縮形式で圧縮されているファイルを抽出する抽出部と、前記抽出部によって抽出されたファイルを展開して得られるファイルのファイル名が、アプリケーションの構成要素として必須であるファイルのファイル名と一致するか否かを判定する判定部と、を備えたことを特徴とするマルウェア検知装置である。
【0010】
また、本発明のマルウェア検知装置において、前記所定の圧縮形式はZIP形式であることを特徴とする。
【0011】
また、本発明のマルウェア検知装置において、前記判定部はさらに、前記抽出部によって抽出されたファイルの拡張子が「.zip」または「.apk」であるか否かを判定することを特徴とする。
【0012】
また、本発明のマルウェア検知装置において、前記判定部はさらに、前記抽出部によって抽出されたファイルに、実行可能形式のバイナリファイルが含まれているか否かを判定することを特徴とする。
【0013】
また、本発明は、上記のマルウェア検知装置としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【0014】
本発明によれば、パッケージファイルに含まれる複数のファイルから、所定の圧縮形式で圧縮されているファイルを抽出し、抽出されたファイルを展開して得られるファイルのファイル名が、アプリケーションの構成要素として必須であるファイルのファイル名と一致するか否かを判定することによって、ブラックリストを利用したマルウェア検知手法では検知できないマルウェアをより的確に検知することができる。
【図面の簡単な説明】
【0015】
【図1】本発明の一実施形態によるマルウェア検知装置の構成を示すブロック図である。
【図2】本発明の一実施形態によるマルウェア検知装置の動作の手順を示すフローチャートである。
【図3】本発明の一実施形態におけるマルウェア検知手法を説明するための参考図である。
【図4】マルウェアが実行されて情報漏洩等の被害が発生するまでの手順を示すフローチャートである。
【発明を実施するための形態】
【0016】
以下、図面を参照し、本発明の実施形態を説明する。本実施形態では、一例として、スマートフォンに搭載されるOSの一つであるAndroid(登録商標)で動作するアプリケーションを対象としたマルウェア検知手法を説明する。本実施形態のマルウェア検知手法では、アプリケーションを構成するファイルのうち所定の圧縮形式で圧縮されているファイルを展開して得られるファイルのファイル名に基づいてマルウェアを検知する。本明細書および図面では、便宜上、必要に応じてAndroid(登録商標)という文字列を*andrd*という文字列で代用している。すなわち、*andrd*という文字列はAndroid(登録商標)という文字列と等価である。
【0017】
以下、本実施形態のマルウェア検知手法を説明する。アプリケーションの実行ファイルであるapkファイル(パッケージファイル)は、拡張子が「.apk」のファイルであり、アプリケーションが利用する機能や権限が定義されたマニフェストファイル(拡張子が.xml)、命令列を含む実行コード(拡張子が「.dex」)、アプリケーションが利用する画像ファイル等の各種リソースファイルをZIP形式で圧縮したファイルである。図3に示すように、正規のアプリケーション300は、マニフェストファイル310、実行コード320、その他のファイル(画像ファイル330等)で構成されている。
【0018】
マニフェストファイル310と実行コード320はapkファイルの構成要素として必須のファイルである。また、マニフェストファイル310と実行コード320は、正規のアプリケーションとして正しくインストールおよび実行するために必要なファイルであり、かつ、正常な動作を行うためにはファイル名(拡張子を含む)を変更してはいけないファイルである。マニフェストファイル310のファイル名(拡張子を含む)は常に「*andrd*Manifest.xml」であり、実行コード320のファイル名(拡張子を含む)は常に「classes.dex」である。
【0019】
一方、図3に示すように、マルウェア400は、マニフェストファイル410、実行コード420、エクスプロイトコード430、およびZIP形式のファイル440で構成されている。マニフェストファイル410と実行コード420は正規のアプリケーションにも含まれているが、エクスプロイトコード430とファイル440はマルウェアに特有のファイルである。エクスプロイトコード430は、実行可能形式のバイナリファイルである。エクスプロイトコード430が実行されると、アプリケーションは、管理者権限であるroot権限を奪い、情報漏洩等の悪意の挙動を示す。ファイル440は、ZIP形式で圧縮されたファイルである。
【0020】
ファイル440を展開すると、マニフェストファイル441、実行コード442、その他のファイル(画像ファイル443)が得られる。マニフェストファイル441と実行コード442はapkファイルの構成要素として必須のファイルであり、ファイル440自体もapkファイルである。つまり、マルウェア400は、悪性アプリケーションとしてのapkファイルであるファイル440を内包している。ブラックリストを利用したマルウェア検知から逃れるために、マルウェアの作成者は悪性apkファイルのファイル名や拡張子を変更する。図3の例では、ファイル440の拡張子が「.apk」から「.png」に変更されている。マルウェア400を上記のように構成することによって、アプリケーションを構成するファイルの名称(ファイル名)と、ブラックリストに登録されているファイル名とを比較するマルウェア検知において、マルウェアとして検知されないようになる。
【0021】
マルウェア400は以下のように実行される。図4は、マルウェア400が実行されて情報漏洩等の被害が発生するまでの手順を示している。端末の利用者がマルウェア400を端末にインストールし(ステップS200)、マルウェア400を起動すると(ステップS210)、実行コード420がエクスプロイトコード430を実行する(ステップS220)。マルウェア400が利用できる権限はマニフェストファイル410によって制限されているが、エクスプロイトコード430の実行により、マルウェア400はroot権限を得ることができる。
【0022】
root権限を得ることにより、実行コード420は、apkファイルとしての構成を有するファイル440(悪性アプリケーション)をインストールし(ステップS230)、悪性アプリケーションを起動する(ステップS240)。起動した悪性アプリケーションは情報漏洩等の動作を行い、被害が発生する(ステップS250)。
【0023】
図3に示したように、マルウェア400は、所定の圧縮形式(図3の例ではZIP形式)で圧縮されたファイル440を有し、ファイル440を展開して得られるファイルには、アプリケーションの構成要素として必須であるマニフェストファイル410と実行コード420が含まれるという特徴がある。本実施形態では、この特徴の有無を検査することによりマルウェアの有無を判定する手法をとっている。
【0024】
次に、本実施形態のマルウェア検知手法を適用したマルウェア検知装置(アプリケーション解析装置)の構成と動作を説明する。図1は、本実施形態によるマルウェア検知装置の構成を示している。図1に示すように、マルウェア検知装置は、記憶部10、抽出部11、および判定部12を有する。
【0025】
記憶部10は、マルウェア検知の対象となるアプリケーションのapkファイルや、マルウェア検知の結果等を記憶する。抽出部11は、apkファイルからZIP形式のファイル(図3のファイル440)を抽出する。判定部12は、抽出部11によって抽出されたファイルを展開して得られるファイル(図3のマニフェストファイル441等)のファイル名が、アプリケーションの構成要素として必須であるファイルのファイル名と一致するか否かを判定する。
【0026】
図2はマルウェア検知装置の動作を示している。以下、マルウェア検知装置の動作を説明する。まず、抽出部11は、マルウェア検知の対象であるアプリケーションのapkファイルを記憶部10から読み出す。apkファイルはZIP形式で圧縮されており、抽出部11はapkファイルを展開(伸長)する(ステップS100)。続いて、抽出部11は、apkファイルを展開して得られた各ファイルのヘッダを参照し、ZIP形式であることを示す情報がヘッダに格納されているファイルを抽出する(ステップS110)。具体的には、ファイルのヘッダの先頭4バイトがリトルエンディアンで「0x04034b50」またはビッグエンディアンで「PK\003\004」であるZIP形式のファイルが抽出される。
【0027】
続いて、判定部12は、抽出部11によって抽出されたZIP形式のファイルを展開(伸長)し、得られた各ファイルの名称(ファイル名)を確認し、マルウェア検知の対象であるアプリケーションのapkファイルがマルウェアであるか否かを判定する(ステップS120)。具体的には、ファイル名が「*andrd*Manifest.xml」であるファイルと、ファイル名が「classes.dex」であるファイルとの両方が確認された場合、ZIP形式のファイルは悪性アプリケーションであるため、判定部12は、マルウェア検知の対象であるアプリケーションのapkファイルがマルウェアであると判定し、判定結果を記憶部10に格納する。
【0028】
また、ファイル名が「*andrd*Manifest.xml」であるファイルと、ファイル名が「classes.dex」であるファイルとの少なくとも一方が確認されなかった場合、ZIP形式のファイルは悪性アプリケーションではないため、判定部12は、マルウェア検知の対象であるアプリケーションのapkファイルがマルウェアではないと判定し、判定結果を記憶部10に格納する。また、ステップS110でZIP形式のファイルが抽出されなかった場合も、判定部12は、マルウェア検知の対象であるアプリケーションのapkファイルがマルウェアではないと判定し、判定結果を記憶部10に格納する。上記では、判定結果を記憶部10に格納しているが、判定結果を図示せぬ表示部に表示してもよい。
【0029】
以上のようにしてマルウェアを検知することができるが、さらに以下のようにしてもよい。前述したように、ブラックリストを利用したマルウェア検知から逃れるために、マルウェアであるapkファイルに含まれる悪性apkファイル(図3のファイル440)のファイル名や拡張子が変更されることに着目し、悪性apkファイルに関する付随情報を得てもよい。例えば、判定部12は、抽出部11によって抽出されたZIP形式のファイルの拡張子が「.zip」または「.apk」であるか否かを判定する。
【0030】
抽出部11によって抽出されたZIP形式のファイルの拡張子が「.zip」でも「.apk」でもない場合、判定部12は、悪性度が高いと判定し、悪性度が高いことを示す付随情報を、ステップS120で得られた判定結果と関連付けて記憶部10に格納する。あるいは、ステップS120でファイル名が「*andrd*Manifest.xml」であるファイルと、ファイル名が「classes.dex」であるファイルとの両方が確認され、かつ、上記のようにZIP形式のファイルの拡張子が「.zip」でも「.apk」でもない場合に、マルウェア検知の対象であるアプリケーションのapkファイルがマルウェアであると判定してもよい。
【0031】
また、マルウェア検知の対象であるアプリケーションのapkファイルにエクスプロイトコードのような実行可能形式のバイナリファイルが含まれているか否かを判定し、悪性apkファイルに関する付随情報を得てもよい。例えば、判定部12は、ステップS100でapkファイルを展開して得られた各ファイルのヘッダを参照し、実行可能形式のバイナリファイルであることを示す情報がヘッダに格納されているファイルがあるか否かを判定する。具体的には、判定部12は、ファイルのヘッダの先頭4バイトがリトルエンディアンで「0X464C457F」またはビッグエンディアンで「0x7F454C46」であるファイルがあるか否かを判定する。
【0032】
実行可能形式のバイナリファイルであることを示す情報がヘッダに格納されているファイルがある場合、判定部12は、悪性度が高いと判定し、悪性度が高いことを示す付随情報を、ステップS120で得られた判定結果と関連付けて記憶部10に格納する。あるいは、ステップS120でファイル名が「*andrd*Manifest.xml」であるファイルと、ファイル名が「classes.dex」であるファイルとの両方が確認され、かつ、上記のようにapkファイルに実行可能形式のバイナリファイルが含まれている場合に、マルウェア検知の対象であるアプリケーションのapkファイルがマルウェアであると判定してもよい。
【0033】
上述したように、本実施形態によれば、apkファイルに含まれる複数のファイルからZIP形式のファイルを抽出し、抽出されたファイルを展開して得られるファイルのファイル名が、アプリケーションの構成要素として必須であるマニフェストファイルや実行コードのファイル名と一致するか否かを判定することによって、ブラックリストを利用したマルウェア検知手法では検知できないマルウェアをより的確に検知することができる。
【0034】
また、ZIP形式のファイルの拡張子が「.zip」または「.apk」であるか否かを判定することや、apkファイルに実行可能形式のバイナリファイルが含まれているか否かを判定することによって、マルウェア検知の対象であるアプリケーションのapkファイルがよりマルウェアらしい特徴を有しているか否かに関する付随情報を得ることができる。
【0035】
本実施形態のマルウェア検知手法を、例えばスマートフォン用のアプリケーションを通信ネットワーク上で販売する販売サイトにおけるアプリケーションの事前審査に適用することが可能である。また、本実施形態のマルウェア検知手法をアンチウイルスソフトに適用することも可能である。
【0036】
上述したマルウェア検知装置は、その動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させることにより、実現される。ここで、「コンピュータ」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0037】
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0038】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【0039】
10・・・記憶部、11・・・抽出部、12・・・判定部

【特許請求の範囲】
【請求項1】
アプリケーションの構成要素である複数のファイルを含むパッケージファイルに含まれる前記複数のファイルから、所定の圧縮形式で圧縮されているファイルを抽出する抽出部と、
前記抽出部によって抽出されたファイルを展開して得られるファイルのファイル名が、アプリケーションの構成要素として必須であるファイルのファイル名と一致するか否かを判定する判定部と、
を備えたことを特徴とするマルウェア検知装置。
【請求項2】
前記所定の圧縮形式はZIP形式であることを特徴とする請求項1に記載のマルウェア検知装置。
【請求項3】
前記判定部はさらに、前記抽出部によって抽出されたファイルの拡張子が「.zip」または「.apk」であるか否かを判定することを特徴とする請求項1または請求項2に記載のマルウェア検知装置。
【請求項4】
前記判定部はさらに、前記抽出部によって抽出されたファイルに、実行可能形式のバイナリファイルが含まれているか否かを判定することを特徴とする請求項1〜請求項3のいずれか一項に記載のマルウェア検知装置。
【請求項5】
請求項1に記載のマルウェア検知装置としてコンピュータを機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2013−77154(P2013−77154A)
【公開日】平成25年4月25日(2013.4.25)
【国際特許分類】
【出願番号】特願2011−216431(P2011−216431)
【出願日】平成23年9月30日(2011.9.30)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】