(57)【特許請求の範囲】
【請求項１】
コンピュータを、
アプリケーションプログラムに含まれ、当該アプリケーションプログラムに関する情報をオペレーションシステム（ＯＳ）へ提供するためのマニフェストファイルを読み込む読込手段と、
マルウェアと正常なソフトウェアとがそれぞれ持つ前記マニフェストファイルに記載された各機能の使用許可情報に基づく学習データを用いて、前記アプリケーションプログラムのマルウェアらしさを解析する演算手段と
として機能させるためのプログラム。
【請求項２】
前記コンピュータを、
前記演算手段による解析の結果、前記アプリケーションプログラムがマルウェアであるか正常なプログラムであるかを特定できない場合に、前記マニフェストファイルとは異なる情報を用いて、前記アプリケーションプログラムのマルウェアらしさを解析する手段
として更に機能させるための請求項１記載のプログラム。
【請求項３】
アプリケーションプログラムに含まれ、当該アプリケーションプログラムに関する情報をオペレーションシステム（ＯＳ）へ提供するためのマニフェストファイルを読み込む読込手段と、
マルウェアと正常なソフトウェアとがそれぞれ持つ前記マニフェストファイルに記載された各機能の使用許可情報に基づく学習データを用いて、前記アプリケーションプログラムのマルウェアらしさを解析する演算手段と
を備える情報処理装置。
【請求項４】
コンピュータが、
アプリケーションプログラムに含まれ、当該アプリケーションプログラムに関する情報をオペレーションシステム（ＯＳ）へ提供するためのマニフェストファイルを読み込むステップと、
マルウェアと正常なソフトウェアとがそれぞれ持つ前記マニフェストファイルに記載された各機能の使用許可情報に基づく学習データを用いて、前記アプリケーションプログラムのマルウェアらしさを解析するステップと
を行う情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明に係るいくつかの態様は、プログラム、情報処理装置、及び情報処理方法に関する。
【背景技術】
【０００２】
近年、不正なプログラムコードがコンピュータを始めとする各種情報処理装置において実行されることにより個人情報や機密情報が流出する事件が後をたたず、社会問題となっている。このような不正、有害な動作を行うための悪意あるソフトウェアは、マルウェア（不正ソフトウェア、不正プログラム）とも呼ばれる。
【０００３】
マルウェアのような悪意あるソフトウェアを検出する手法は、種々考えられている。例えば特許文献１には、アプリケーションが不正であるか否かを判定した結果を示す判定結果情報をネットワーク上の装置から受信したり、アプリケーションの実行ファイルから算出したハッシュ値を暗号化した署名情報等に基づいて実行ファイルの改ざんの有無を判定したりすること等が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−００８７３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、多くの正常なアプリケーションやマルウェアが日々生成される現在の状況において、個々のアプリケーションに対して署名情報や判定結果情報を用いるような特許文献１記載の手法は、署名情報や判定結果情報を日々アップデートしていく必要がある等、処理負荷が高い。
【０００６】
本発明のいくつかの態様は前述の課題に鑑みてなされたものであり、簡易な手法でマルウェアの検出を可能とすることのできるプログラム、情報処理装置、及び情報処理方法を提供することを目的の１つとする。
【課題を解決するための手段】
【０００７】
本発明に係る１のプログラムは、コンピュータを、アプリケーションプログラムに含まれ、当該アプリケーションプログラムに関する情報をオペレーションシステム（ＯＳ）へ提供するためのマニフェストファイルを読み込む読込手段と、前記マニフェストファイルに記載された各機能の使用許可情報に基づき、前記アプリケーションプログラムのマルウェアらしさを解析する演算手段ととして機能させるためのものである。
【０００８】
本発明の１に係る情報処理装置は、アプリケーションプログラムに含まれ、当該アプリケーションプログラムに関する情報をオペレーションシステム（ＯＳ）へ提供するためのマニフェストファイルを読み込む読込手段と、前記マニフェストファイルに記載された各機能の使用許可情報に基づき、前記アプリケーションプログラムのマルウェアらしさを解析する演算手段とを備える。
【０００９】
本発明の１に係る情報処理方法は、コンピュータが、アプリケーションプログラムに含まれ、当該アプリケーションプログラムに関する情報をオペレーションシステム（ＯＳ）へ提供するためのマニフェストファイルを読み込むステップと、前記マニフェストファイルに記載された各機能の使用許可情報に基づき、前記アプリケーションプログラムのマルウェアらしさを解析するステップとを行う。
【００１０】
尚、本発明において、「部」や「手段」、「装置」、「システム」とは、単に物理的手段を意味するものではなく、その「部」や「手段」、「装置」、「システム」が有する機能をソフトウェアによって実現する場合も含む。また、１つの「部」や「手段」、「装置」、「システム」が有する機能が２つ以上の物理的手段や装置により実現されても、２つ以上の「部」や「手段」、「装置」、「システム」の機能が１つの物理的手段や装置により実現されても良い。
【発明の効果】
【００１１】
本発明によれば、簡易な手法でマルウェアの検出を可能とすることのできるプログラム、情報処理装置、及び情報処理方法を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態であるマルウェア検出エンジンの機能構成の一例を示す機能ブロック図である。
【図２】図１に示したマルウェア検出エンジンの一部の機能構成の一例を示す機能ブロック図である。
【図３】マルウェア検出エンジンの処理の一例を説明するための図である。
【図４】マルウェア検出エンジンの処理の流れの一例を示すフローチャートである。
【図５】本発明の実施形態である情報処理装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下に本発明の実施形態を説明する。以下の説明及び参照する図面の記載において、同一又は類似の構成には、それぞれ同一又は類似の符号が付されている。
（実施形態）
【００１４】
図１乃至図５は、実施形態を説明するための図である。以下、これらの図を参照しながら、以下の流れに沿って本実施形態を説明する。まず「１」で実施形態に係るシステムの概要を、具体例を示しながら説明する。次に「２」で処理の流れを説明し、「３」で本システムが実装されうる情報処理装置のハードウェア構成の具体例を説明する。最後に、「４」以降で、本実施形態に係る効果等を説明する。
【００１５】
（１  概要）
（１．１  システム概要）
図１は、１以上のプログラムから構成されるマルウェア検出エンジン１００の概略構成を示す図である。
【００１６】
本実施形態に係るマルウェア検出エンジン１００は、Ａｎｄｒｏｉｄ  ＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）上で動作するアプリケーションプログラムであるＡＰＫファイル２００が、マルウェアであるか否かを検出するためのプログラムである。ここでマルウェアとは、不正かつ有害な動作を意図して作成された悪意あるソフトウェアをいうものとする。
【００１７】
マルウェア検出エンジン１００は、「３」で後述するように、携帯電話等の携帯情報端末やパーソナルコンピュータ、サーバ等の情報処理装置上で動作可能である。図１に示す通り、本実施形態に係るマルウェア検出エンジン１００は、静的解析エンジン制御部１１０、動的解析エンジンログ取得部１２０、及び動的解析エンジン制御部１３０を有する。静的解析エンジン制御部１１０は、ＡＰＫファイル２００を実行せずに、ＡＰＫファイル２００から抽出した特徴パラメータの解析により、静的にマルウェアであるか正常なソフトウェアであるかを判別（静的解析）するためにある。一方、動的解析エンジンログ取得部１２０及び動的解析エンジン制御部１３０は、ＡＰＫファイル２００を、Ａｎｄｒｏｉｄ  ＯＳやＡｎｄｒｏｉｄ  ＯＳのエミュレータ上で動作させ、そのログを解析することで、動的にマルウェアであるか正常なソフトウェアであるかを判別（動的解析）するためにある。
【００１８】
ここで、静的解析及び動的解析は、それぞれ単独で行うことも、双方を連携して行うことも考えられる。連携させる場合の例としては、例えば、ＡＰＫファイル２００がマルウェアであるか正常なソフトウェアであるかを静的解析で判別できなかった場合に、動的解析を行うこと等が考えられる。
【００１９】
静的解析エンジン制御部１１０は上述の通り、ＡＰＫファイル２００を実行させることなく、ＡＰＫファイル２００に含まれる各種パラメータを解析することで、当該ＡＰＫファイル２００がマルウェアであるか否か（マルウェアである確からしさ）を判別（検知／解析／判定）する。静的解析エンジン制御部１１０の構成は、図２を参照しながら「１．２」でより詳細に説明する。
【００２０】
動的解析エンジンログ取得部１２０は、Ａｎｄｒｏｉｄ  ＯＳ又はＡｎｄｒｏｉｄ  ＯＳのエミュレータ上でＡＰＫファイル２００を実行させた場合に、その動作等のログをレイヤ毎に動的解析エンジン制御部１３０へと出力する。尚、この動作ログは、随時（リアルタイムで）出力することも考えられるし、或いは一定時間毎に出力することも考えられる。
【００２１】
動的解析エンジン制御部１３０は、ＡＰＫファイル２００を実際に動作させた上でその挙動を監視することにより、ＡＰＫファイル２００がマルウェアであるか否かを判別する。動的解析エンジン制御部１３０の機能としては、まず、（１）Ａｎｄｒｏｉｄ  ＯＳのエミュレータ上でＡＰＫファイル２００を実行させる場合にはエミュレータの起動、（２）ＡＰＫファイル２００の起動、（３）ＡＰＫファイルへのインテントの送信等をＡＰＫファイル２００に対して行う機能、等がある。それらに加えて動的解析エンジン制御部１３０は、動的解析エンジンログ取得部１２０から出力されるレイヤ毎の動作ログを受信し、当該動作ログの解析結果として、ＡＰＫファイル２００がマルウェアであるか否か（若しくは、マルウェアである確からしさ）を出力する機能も有する。
【００２２】
尚、本実施形態では、静的解析を行う静的解析エンジン制御部１１０と、動的解析を行う動的解析エンジンログ取得部１２０及び動的解析エンジン制御部１３０との両方をマルウェア検出エンジン１００が備えるが、これに限られるものではなく、例えば、静的解析エンジン制御部１１０のみを備えることも考えられる。この場合、ＡＰＫファイル２００を動作させずにマルウェアの検出を行えるため、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やメモリ等の資源が比較的乏しい情報処理装置であっても動作が可能となる。
【００２３】
（１．２  静的解析エンジン制御部１１０の構成）
以下、図２を参照しながら、静的解析エンジン制御部１１０の構成を説明する。図２は、静的解析エンジン制御部１１０の構成を示す機能ブロック図である。
【００２４】
静的解析エンジン制御部１１０は、マニフェスト解析部１１１、ＤＥＸ（Ｄａｌｖｉｋ  Ｅｘｅｃｕｔａｂｌｅ）解析部１１３、ネイティブコード解析部１１５、及びパラメータ解析エンジン１１７を含む。これらの構成のうち、マニフェスト解析部１１１、ＤＥＸ解析部１１３、及びネイティブコード解析部１１５は、ＡＰＫファイル２００から、特徴パラメータを抽出するものである。
【００２５】
ここで、ＡＰＫファイル２００は、アーカイブとして複数のファイルを含んでいる。より具体的には、ＡＰＫファイル２００はＡｎｄｒｏｉｄＭａｎｉｆｅｓｔ．ｘｍｌ２１０（以下、マニフェストファイル２１０ともいう。）と、ｃｌａｓｓｅｓ．ｄｅｘ２２０（以下、実行コード２２０ともいう。）と、ｎａｔｉｖｅ  ｃｏｄｅ２３０（以下、ネイティブファイル２３０ともいう。）とを含む。この他、ＡＰＫファイル２００は、各種画像などのファイルを含むことも可能である。
【００２６】
マニフェストファイル２１０は、ＡＰＫファイル２００として実装されるアプリケーションプログラムに関する各種情報を、Ａｎｄｒｏｉｄ  ＯＳへ提供するための、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）で記述されるファイルである。例えば、アドレス帳へのアクセスの可否や電話やメール送信の可否、インターネットアクセスの可否、アクティビティ間の連携等といった各種機能の使用許可に係る情報（先述のアクティビティ間の連携も含まれるものとする）は、マニフェストファイル２１０に記述される。Ａｎｄｒｏｉｄ  ＯＳは、マニフェストファイル２１０の記載に従って、各種機能の使用権限をＡＰＫファイル２００に与える。マニフェストファイル２１０は、Ａｎｄｒｏｉｄ  ＯＳ上で動作する全てのアプリケーションプログラム（ＡＰＫファイル２００）が有する。
【００２７】
実行コード２２０は、ＡＰＫファイル２００として実装されるアプリケーションプログラムの実行コードが格納される。ネイティブファイル２３０も実行コード２２０と同様にアプリケーションプログラムの実行コードの一部である。ネイティブファイル２３０の実行コード２２０との違いは、実行速度を向上させるために、例えばマシン語等のユーザには可読性の低い形式で記述された（変換された）点にある。尚、ネイティブファイル２３０は、ＡＰＫファイル２００に含まれないこともある。
【００２８】
マニフェスト解析部１１１は、マニフェストファイル２１０から、各種機能の使用許可にかかる情報をパラメータとして抽出した上で、それらの情報を１／０で表現したパラメータ情報をパラメータ解析エンジン１１７へと出力する。このときマニフェストファイル２１０を解析することにより抽出されるパラメータは、例えばパーミッション（ｐｅｒｍｉｓｓｉｏｎ）やインテント（ｉｎｔｅｎｔ）に関する情報である。Ａｎｄｒｏｉｄ  ＯＳ上で使用可能な機能のうち、ＡＰＫファイル２００がどの機能の使用を求め（使用し）、どの機能の使用を求めていない（使用しない）かをマニフェスト解析部１１１は解析した上で、その情報を「１」又は「０」の二値で表現したパラメータ情報として出力する。マニフェスト解析部１１１から出力されたパラメータ情報は、パラメータ解析エンジン１１７のパラメータ解析１１７Ａ（図２中、「パラメータ解析Ａ」）で使用される。マニフェスト解析部１１１及びパラメータ解析１１７Ａの動作については、図３を参照しながら「１．３」でより詳細に説明する。
【００２９】
ＤＥＸ解析部１１３及びネイティブコード解析部１１５は、それぞれ実行コード２２０及びネイティブファイル２３０から、特徴パラメータを抽出してパラメータ解析エンジン１１７へと出力する。ＤＥＸ解析部１１３が出力した実行コード２２０に係るパラメータ情報はパラメータ解析エンジン１１７のパラメータ解析１１７Ｂ（図２中、「パラメータ解析Ｂ」）で、ネイティブコード解析部１１５が出力したネイティブファイル２３０に係るパラメータ情報はパラメータ解析エンジン１１７のパラメータ解析１１７Ｃ（図２中、「パラメータ解析Ｃ」）で使用される。
【００３０】
パラメータ解析エンジン１１７は、マニフェスト解析部１１１、ＤＥＸ解析部１１３、及びネイティブコード解析部１１５から出力されるパラメータ情報を元に、パラメータ解析１１７Ａ乃至１１７Ｃを行う。パラメータ解析エンジン１１７は、パラメータ解析１１７ＡでＡＰＫファイル２００がマルウェア若しくは正常なソフトウェア（マルウェアではないソフトウェア。以下、「正常ソフトウェア」又は「正常プログラム」ともいう。）と判断できる場合には、パラメータ解析１１７Ｂを行わずに解析結果を静的解析結果３００として出力する。パラメータ解析１１７Ａで、ＡＰＫファイル２００がマルウェアであるか或いは正常ソフトウェアであるかを判断出来なかった場合には、パラメータ解析エンジン１１７はパラメータ解析１１７Ｂを行う。ＡＰＫファイル２００がマルウェア若しくは正常なソフトウェアとパラメータ解析１１７Ｂで判断できる場合には、パラメータ解析エンジン１１７はパラメータ解析１１７Ｂを行わずに解析結果を静的解析結果３００として出力する。パラメータ解析１１７Ｂで、ＡＰＫファイル２００がマルウェアであるか或いは正常ソフトウェアであるかを判断できなかった場合には、パラメータ解析エンジン１１７はパラメータ解析１１７Ｃを行い、その結果を静的解析結果３００として出力する。
【００３１】
このうち、パラメータ解析１１７Ａでは、学習データ１１９を用いてマニフェスト解析部１１１から入力を受けたパラメータ情報に含まれる各パラメータを元に、マルウェアらしさを評価する。
【００３２】
ここで、学習データ１１９は、多数のマルウェア及び正常ソフトウェアのマニフェストファイル２１０に係るパラメータ情報を入力としたニューラルネットワークによる機械学習で得られるものである。ニューラルネットワークによる機械学習を用いることにより、例えば「パーミッションＡとパーミッションＢとを求めるアプリケーションは、マルウェアである可能性が高い」等といった、パラメータ間の相関も暗黙的に含むパラメータ評価が可能となる。
【００３３】
（１．３  マニフェストファイル２１０に対する解析）
以下、図３を参照しながら、マニフェストファイル２１０に対する解析の流れの具体例を説明する。
【００３４】
前述の通り、マニフェストファイル２１０には、アドレス帳へのアクセスの可否や電話やメール送信の可否、インターネットアクセスの可否、アクティビティ間の連携等といった各種機能の使用許可に係る情報が、ＸＭＬ形式で記述される。
【００３５】
マニフェスト解析部１１１は、マニフェストファイル２１０から、各機能の使用許可に係る情報をパラメータとして抽出し、それぞれのパラメータの使用の必要の有無を「１」又は「０」のいずれかで二値化して表現されたパラメータ情報を出力する。
【００３６】
このようなパラメータ情報を入力として、パラメータ解析エンジン１１７は、評価対象となるＡＰＫファイル２００のマルウェアらしさを、０〜１００でスコアリングして評価する。パラメータ解析１１７Ａにおける解析結果（スコアリングの結果である評価値）が０〜５０のいずれかであれば、パラメータ解析エンジン１１７は、ＡＰＫファイル２００を正常なソフトウェアと判定することができる。また、解析結果の評価値が７０以上であれば、パラメータ解析エンジン１１７は、ＡＰＫファイル２００をマルウェアとして判定する。一方、評価値が５１〜６９であれば、パラメータ解析エンジン１１７は、正常プログラムであるかマルウェアであるかをパラメータ解析１１７Ｂにより判別する。
【００３７】
パラメータ解析１１７Ａでは、上述の通り、学習データ１１９が解析に用いられる。学習データは、先述の通り、収集した正常プログラムとマルウェアとをそれぞれ分類した上で、それぞれのプログラムが持つマニフェストファイル２１０をマニフェスト解析部１１１で解析することにより得られるパラメータ情報を入力としたニューラルネットワークの学習結果である。ニューラルネットワークを用いることで、人間では一見関連性を見出しにくいパラメータ間の関連性を反映した上で、マルウェアらしさを判定できるようになる。
【００３８】
（２  処理の流れ）
図４を参照しながら、本実施形態に係るマルウェア検出エンジン１００の静的解析の処理の流れを説明する。図４は、本実施形態に係るマルウェア検出エンジン１００の静的解析の処理の流れを示すフローチャートである。
【００３９】
尚、後述の各処理ステップは、処理内容に矛盾を生じない範囲で、任意に順番を変更して若しくは並列に実行することができ、また、各処理ステップ間に他のステップを追加しても良い。更に、便宜上１つのステップとして記載されているステップは複数のステップに分けて実行することもでき、便宜上複数に分けて記載されているステップを１ステップとして実行することもできる。
【００４０】
マニフェスト解析部１１１は、マニフェストファイル２１０を読込み（Ｓ４０１）、当該マニフェストファイル２１０に含まれるパーミッションやインテントに係る使用許可情報を１／０で２値化したパラメータ情報を、パラメータ解析１１７Ａへの入力データとして作成する（Ｓ４０３）。
【００４１】
パラメータ解析エンジン１１７は、マニフェスト解析部１１１から出力されたパラメータ情報の入力を受けて、マルウェアであるか否かを判別するためのパラメータ解析１１７Ａを、学習データ１１９を用いて行う（Ｓ４０５）。その結果、もしマルウェアらしさの評価値が５０以下であれば（Ｓ４０５の「５０以下」）、パラメータ解析エンジン１１７はＡＰＫファイル２００を正常プログラムと判定して、スコアリング結果を静的解析結果３００として出力する。また、評価値が７０以上である場合には（Ｓ４０５の「７０以上」）、パラメータ解析エンジン１１７は、ＡＰＫファイル２００がマルウェアであるものと判定して、スコアリング結果を静的解析結果３００として出力する。
【００４２】
一方、スコアリング結果が５１乃至６９である場合には（Ｓ４０５の「５１〜６９」）、パラメータ解析エンジン１１７は、パラメータ解析１１７Ｂ（及び、必要に応じてパラメータ解析１１７Ｃ）により、更にＡＰＫファイル２００のマルウェアらしさの解析を行う（Ｓ４１１）。
【００４３】
（３  情報処理装置の構成）
以下、図５を参照しながら、上述してきたマルウェア検出エンジン１００を実行可能な情報処理装置（情報機器）の構成の一例を説明する。情報処理装置５００は、例えば、パーソナルコンピュータやサーバ、携帯情報端末等である。
【００４４】
図５に示すように、情報処理装置５００は、プロセッサ５０２、メモリ５０４、記憶装置５０６、入力インタフェース（Ｉ／Ｆ）５０８、データＩ／Ｆ５１０、通信Ｉ／Ｆ５１２、及び表示装置５１４を含む。
【００４５】
プロセッサ５０２は、メモリ５０４に記憶されているプログラムを実行することにより情報処理装置５００における様々な処理の実行を制御する。「１」で説明したマルウェア検出エンジン１００は、メモリ５０４に一次記憶された上で、主にプロセッサ５０２上で動作する。
【００４６】
メモリ５０４は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の記憶媒体である。メモリ５０４は、プロセッサ５０２によって実行されるプログラムのプログラムコードや、プログラムの実行時に必要となるデータを一時的に記憶する。例えば、メモリ５０４の記憶領域には、プログラム実行時に必要となるスタック領域が確保される。
【００４７】
記憶装置５０６は、例えばハードディスクやフラッシュメモリ等の不揮発性の記憶媒体である。記憶装置５０６は、オペレーティングシステムやマルウェア検出エンジン１００を始めとした各種プログラムや、各種データ等を記憶する。記憶装置５０６に記憶されているプログラムやデータは、必要に応じてメモリ５０４にロードされ、プロセッサ５０２により参照される。
【００４８】
入力Ｉ／Ｆ５０８は、ユーザからの入力を受け付けるためのデバイスである。入力Ｉ／Ｆ５０８の具体例としては、キーボードやマウス、タッチパネル、各種センサ等がある。入力Ｉ／Ｆ５０８は、情報処理装置５００外部に設けられることも考えられる。その場合、入力Ｉ／Ｆ５０８は、例えばＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）等のインタフェースを介して情報処理装置５００に接続される。
【００４９】
データＩ／Ｆ５１０は、情報処理装置５００の外部からデータを入力するためのデバイスである。データＩ／Ｆ５１０の具体例としては、各種記憶媒体に記憶されているデータを読み取るためのドライブ装置等がある。データＩ／Ｆ５１０は、情報処理装置５００の外部に設けられることも考えられる。その場合、データＩ／Ｆ５１０は例えばＵＳＢ等のインタフェースを介して情報処理装置５００に接続される。
【００５０】
通信Ｉ／Ｆ５１２は、情報処理装置５００の外部の装置との間で有線又は無線によりデータ通信するためのデバイスである。通信Ｉ／Ｆ５１２は、情報処理装置５００の外部に設けられることも考えられる。その場合、通信Ｉ／Ｆ５１２は、例えばＵＳＢ等のインタフェースを介して情報処理装置５００に接続される。
【００５１】
尚、マルウェア検出エンジン１００全体、又はパラメータ解析エンジン１１７が有する学習データ１１９は、データＩ／Ｆ５１０や通信Ｉ／Ｆ５１２から入力された後、記憶装置５０６へと格納されることが考えられる。
【００５２】
表示装置５１４は、各種情報を表示するためのデバイスであり、例えば、液晶ディスプレイや有機ＥＬ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ等である。表示装置５１４は、情報処理装置５００の外部に設けられても良い。その場合、表示装置５１４は、例えばディスプレイケーブル等を介して情報処理装置５００に接続される。
【００５３】
（４  本実施形態の効果）
以上説明したように、本実施形態のマルウェア検出エンジン１００は、マニフェストファイル２１０に対する静的なパラメータ解析１１７Ａにより、ＡＰＫファイル２００のマルウェアらしさを解析している。これにより、動的な解析と比べて安全に、Ａｎｄｒｏｉｄのアプリケーションプログラムに対してマルウェアであるか否かを判別することができる。また、マニフェストファイル２１０に記載された使用許可情報のパラメータに基づいてマルウェアらしさを評価することで、マルウェアのパターンからマルウェアであるか否かを判別するパターンマッチングに比べて、比較的小さいデータ量でマルウェアを検出できる。
【００５４】
本実施形態のパラメータ解析エンジン１１７は、機械学習による学習データ１１９を用いてマルウェアらしさの評価を演算している。前述のパターンマッチングの手法では、新しいマルウェアが登場した場合には、毎回その数だけ新しいパターンをアップデートしなければマルウェアを検出できない。一方本実施形態のパラメータ解析エンジン１１７は、学習データ１１９を用いてマルウェアらしさを評価することにより、必ずしも同一のマルウェアに対する学習が反映されていない学習データ１１９であっても、過去に同様の使用許可を求めるパラメータを持つマルウェアがあれば、検出が可能となる。つまり、本実施形態に係るパラメータ解析エンジン１１７では、学習データ１１９を頻繁にアップデートする必要がなくなる。
【００５５】
本実施形態のパラメータ解析エンジン１１７は、パラメータ解析１１７Ａでマルウェアであるか正常プログラムであるかを判別できなかった場合に、パラメータ解析１１７Ｂ及び１１７Ｃ、又は動的解析により、更にマルウェアらしさを評価することができる。これにより、高い精度でのマルウェア検出が可能となる。
【００５６】
（５  付記事項）
尚、前述の各実施形態の構成は、組み合わせたり或いは一部の構成部分を入れ替えたりしてもよい。また、本発明の構成は前述の実施形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加えてもよい。
【符号の説明】
【００５７】
１００・・・マルウェア検出エンジン、１１０・・・静的解析エンジン制御部、１１１・・・マニフェスト解析部、１１３・・・ＤＥＸ解析部、１１５・・・ネイティブコード解析部、１２０・・・動的解析エンジンログ取得部、１３０・・・動的解析エンジン制御部、２００・・・ＡＰＫファイル、２１０・・・マニフェストファイル（ＡｎｄｒｏｉｄＭａｎｉｆｅｓｔ．ｘｍｌ）、２２０・・・実行コード（ｃｌａｓｓｅｓ．ｄｅｘ）、２３０・・・ネイティブファイル、３００・・・静的解析結果、５００・・・情報処理装置、５０２・・・プロセッサ、５０４・・・メモリ、５０６・・・記憶装置、５０８・・・入力インタフェース、５１０・・・データインタフェース、５１２・・・通信インタフェース、５１４・・・表示装置
【図１】
0005441043.tif 000002
【図２】
0005441043.tif 000003
【図３】
0005441043.tif 000004
【図４】
0005441043.tif 000005
【図５】
0005441043.tif 000006