(57)【特許請求の範囲】
【請求項１】
モバイルオペレーティングシステム環境で駆動され得る悪意あるアプリケーション実行ファイルとその悪意あるアプリケーション実行ファイルからの変種ファイルとの共通的な特徴情報を、悪意があるか否かの診断のためのシグネチャデータとして格納するシグネチャ格納部と、
診断対象アプリケーション実行ファイルから前記共通的な特徴情報に対応する情報を収集する情報収集部と、
収集された前記対応する情報と前記シグネチャ格納部に格納された前記共通的な特徴情報とを比較して前記診断対象アプリケーション実行ファイルの悪意の有無を判断する診断判別部と、
前記診断対象アプリケーション実行ファイルの悪意の有無の判別結果を提供する結果提供部とを含み、
前記診断対象アプリケーション実行ファイルは、ＡＰＫ（ａｎｄｒｏｉｄ  ｐａｃｋａｇｅ）ファイルであり、
前記情報収集部は、前記ＡＰＫファイル内のファイル経路情報又は認証書情報を収集するＡＰＫ情報収集部を含み、
前記ＡＰＫ情報収集部は、前記ＡＰＫファイルを構成するファイルのツリー構造を抽出してファイルの経路に該当するハッシュ値を抽出するファイルツリー構造抽出部を含むことを特徴とする悪意あるアプリケーション診断装置。
【請求項２】
モバイルオペレーティングシステム環境で駆動され得る悪意あるアプリケーション実行ファイルとその悪意あるアプリケーション実行ファイルからの変種ファイルとの共通的な特徴情報を、悪意があるか否かの診断のためのシグネチャデータとして格納するシグネチャ格納部と、
診断対象アプリケーション実行ファイルから前記共通的な特徴情報に対応する情報を収集する情報収集部と、
収集された前記対応する情報と前記シグネチャ格納部に格納された前記共通的な特徴情報とを比較して前記診断対象アプリケーション実行ファイルの悪意の有無を判断する診断判別部と、
前記診断対象アプリケーション実行ファイルの悪意の有無の判別結果を提供する結果提供部とを含み、
前記診断対象アプリケーション実行ファイルは、ＡＰＫ（ａｎｄｒｏｉｄ  ｐａｃｋａｇｅ）ファイルであり、
前記情報収集部は、前記ＡＰＫファイル内のファイル経路情報又は認証書情報を収集するＡＰＫ情報収集部を含み、
前記ＡＰＫ情報収集部は、前記ＡＰＫファイル内に存在する特定ファイルの経路を抽出して該当ファイルの経路に該当するハッシュ値を抽出するファイル経路抽出部を含むことを特徴とする悪意あるアプリケーション診断装置。
【請求項３】
モバイルオペレーティングシステム環境で駆動され得る悪意あるアプリケーション実行ファイルとその悪意あるアプリケーション実行ファイルからの変種ファイルとの共通的な特徴情報を、悪意があるか否かの診断のためのシグネチャデータとして格納するシグネチャ格納部と、
診断対象アプリケーション実行ファイルから前記共通的な特徴情報に対応する情報を収集する情報収集部と、
収集された前記対応する情報と前記シグネチャ格納部に格納された前記共通的な特徴情報とを比較して前記診断対象アプリケーション実行ファイルの悪意の有無を判断する診断判別部と、
前記診断対象アプリケーション実行ファイルの悪意の有無の判別結果を提供する結果提供部とを含み、
前記診断対象アプリケーション実行ファイルは、ＡＰＫ（ａｎｄｒｏｉｄ  ｐａｃｋａｇｅ）ファイルであり、
前記情報収集部は、前記ＡＰＫファイル内のファイル経路情報又は認証書情報を収集するＡＰＫ情報収集部を含み、
前記ＡＰＫ情報収集部は、前記ＡＰＫファイル内のＭＥＴＡ-ＩＮＦフォルダに存在するＲＳＡファイルの自己署名情報を抽出する認証書情報抽出部を含むことを特徴とする悪意あるアプリケーション診断装置。
【請求項４】
前記認証書情報抽出部は、前記自己署名情報の中からＳｅｒｉａｌ Ｎｕｍｂｅｒ、Ｉｓｓｕｒｅ ＤＮ又はＶａｌｉｄｉｔｙのうち少なくとも１つを抽出する請求項３に記載の悪意あるアプリケーション診断装置。
【請求項５】
モバイルオペレーティングシステム環境で駆動され得る悪意あるアプリケーション実行ファイルとその悪意あるアプリケーション実行ファイルからの変種ファイルとの共通的な特徴情報を、悪意があるか否かの診断のためのシグネチャデータとして格納するシグネチャ格納部と、
診断対象アプリケーション実行ファイルから前記共通的な特徴情報に対応する情報を収集する情報収集部と、
収集された前記対応する情報と前記シグネチャ格納部に格納された前記共通的な特徴情報とを比較して前記診断対象アプリケーション実行ファイルの悪意の有無を判断する診断判別部と、
前記診断対象アプリケーション実行ファイルの悪意の有無の判別結果を提供する結果提供部とを含み、
前記情報収集部は、前記診断対象アプリケーション実行ファイル内のＤＥＸファイルを分析してＪＡＶＡ（登録商標）クラスファイルの特徴を抽出するＤＥＸ情報収集部を含むことを特徴とする悪意あるアプリケーション診断装置。
【請求項６】
前記ＤＥＸ情報収集部は、前記ＤＥＸファイルで含むＪＡＶＡ（登録商標）ファイルがインポートする外部クラス情報の目録を用いてＣＲＣを求めるインポートクラス抽出部を含むことを特徴とする請求項５に記載の悪意あるアプリケーション診断装置。
【請求項７】
前記ＤＥＸ情報収集部は、前記ＤＥＸファイルに定義されたプロトタイプ目録を集めてＣＲＣを求めるプロトタイプ抽出部を含むことを特徴とする請求項５に記載の悪意あるアプリケーション診断装置。
【請求項８】
前記ＤＥＸ情報収集部は、前記ＤＥＸファイルに含まれているＪＡＶＡ（登録商標）クラスファイルの名前を羅列してＣＲＣを求めるクラスリスト抽出部を含むことを特徴とする請求項５に記載の悪意あるアプリケーション診断装置。
【請求項９】
前記ＤＥＸ情報収集部は、前記ＤＥＸファイルに含まれているクラスに対してクラス内部の属性値又はＪＡＶＡ（登録商標）コード命令語の句文を抽出するクラスハッシュ抽出部を含むことを特徴とする請求項５に記載の悪意あるアプリケーション診断装置。
【請求項１０】
モバイルオペレーティングシステム環境で駆動され得る悪意あるアプリケーション実行ファイルとその悪意あるアプリケーション実行ファイルからの変種ファイルとの共通的な特徴情報を、悪意があるか否かの診断のためのシグネチャデータとして格納するシグネチャ格納部と、
診断対象アプリケーション実行ファイルから前記共通的な特徴情報に対応する情報を収集する情報収集部と、
収集された前記対応する情報と前記シグネチャ格納部に格納された前記共通的な特徴情報とを比較して前記診断対象アプリケーション実行ファイルの悪意の有無を判断する診断判別部と、
前記診断対象アプリケーション実行ファイルの悪意の有無の判別結果を提供する結果提供部とを含み、
前記情報収集部は、前記診断対象アプリケーション実行ファイル内のａｎｄｒｏｉｄＭａｎｉｆｅｓｔ.ｘｍｌファイルで内部情報を収集するマニフェスト情報収集部を含み、
前記マニフェスト情報収集部は、前記ａｎｄｒｏｉｄＭａｎｉｆｅｓｔ.ｘｍｌファイルのＸＭＬツリー構造情報をハッシュ値として抽出するＸＭＬツリー構造抽出部を含むことを特徴とする悪意あるアプリケーション診断装置。
【請求項１１】
前記マニフェスト情報収集部は、前記ａｎｄｒｏｉｄＭａｎｉｆｅｓｔ.ｘｍｌファイルからアプリケーションに関する情報を抽出するアプリケーション情報抽出部を含むことを特徴とする請求項１０に記載の悪意あるアプリケーション診断装置。
【請求項１２】
モバイルオペレーティングシステム環境で駆動され得る悪意あるアプリケーション実行ファイルとその悪意あるアプリケーション実行ファイルからの変種ファイルとの共通的な特徴情報を、悪意があるか否かの診断のためのシグネチャデータとして格納するシグネチャ格納部と、
診断対象アプリケーション実行ファイルから前記共通的な特徴情報に対応する情報を収集する情報収集部と、
収集された前記対応する情報と前記シグネチャ格納部に格納された前記共通的な特徴情報とを比較して前記診断対象アプリケーション実行ファイルの悪意の有無を判断する診断判別部と、
前記診断対象アプリケーション実行ファイルの悪意の有無の判別結果を提供する結果提供部とを含み、
前記情報収集部は、ｒｅｓｏｕｒｃｅｓ.ａｒｓｃファイル内のリソース構造体の形態的な構成情報をハッシュ値として抽出するリソース情報収集部を含むことを特徴とする悪意あるアプリケーション診断装置。
【請求項１３】
複数の共通的な特徴情報を組み合わせて前記診断対象アプリケーション実行ファイルの悪意の有無を判別するための診断規則を格納する診断規則格納部を更に含み、
前記情報収集部は、前記診断規則に従って前記共通的な特徴情報を収集することを特徴とする請求項１〜１２のいずれか一項に記載の悪意あるアプリケーション診断装置。
【請求項１４】
前記診断規則の設定を要請できる設定部を更に含み、
前記設定部による要請によって設定された前記診断規則は、前記診断規則格納部に格納されることを特徴とする請求項１３に記載の悪意あるアプリケーション診断装置。
【請求項１５】
モバイルオペレーティングシステム環境で駆動され得る悪意あるアプリケーション実行ファイルとその悪意あるアプリケーション実行ファイルからの変種ファイルとの共通的な特徴情報を、悪意があるか否かの診断のためのシグネチャデータとして格納する段階と、
診断対象アプリケーション実行ファイルから前記共通的な特徴情報に対応する情報を収集する段階と、
収集された前記対応する情報と前記シグネチャデータとして格納された前記共通的な特徴情報とを比較して前記診断対象アプリケーション実行ファイルの悪意の有無を判断する段階と、
前記診断対象アプリケーション実行ファイルの悪意の有無の判別結果を提供する段階と、
を含み、
前記診断対象アプリケーション実行ファイルは、ＡＰＫ（ａｎｄｒｏｉｄ  ｐａｃｋａｇｅ）ファイルであり、
前記情報を収集する段階は、前記ＡＰＫファイル内のファイル経路情報又は認証書情報を収集する段階を含み、
前記ファイル経路情報又は認証書情報を収集する段階は、
前記ＡＰＫファイルを構成するファイルのツリー構造を抽出してファイルの経路に該当するハッシュ値を抽出する段階を含む、
悪意あるアプリケーション診断方法によるそれぞれの段階を行う命令語を含むプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【請求項１６】
モバイルオペレーティングシステム環境で駆動され得る悪意あるアプリケーション実行ファイルとその悪意あるアプリケーション実行ファイルからの変種ファイルとの共通的な特徴情報を、悪意があるか否かの診断のためのシグネチャデータとして格納する段階と、
診断対象アプリケーション実行ファイルから前記共通的な特徴情報に対応する情報を収集する段階と、
収集された前記対応する情報と前記シグネチャデータとして格納された前記共通的な特徴情報とを比較して前記診断対象アプリケーション実行ファイルの悪意の有無を判断する段階と、
前記診断対象アプリケーション実行ファイルの悪意の有無の判別結果を提供する段階と、
を含み、
前記診断対象アプリケーション実行ファイルは、ＡＰＫ（ａｎｄｒｏｉｄ  ｐａｃｋａｇｅ）ファイルであり、
前記情報を収集する段階は、前記ＡＰＫファイル内のファイル経路情報又は認証書情報を収集する段階を含み、
前記ファイル経路情報又は認証書情報を収集する段階は、
前記ＡＰＫファイル内に存在する特定ファイルの経路を抽出して該当ファイルの経路に該当するハッシュ値を抽出する段階を含む、
悪意あるアプリケーション診断方法によるそれぞれの段階を行う命令語を含むプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【請求項１７】
モバイルオペレーティングシステム環境で駆動され得る悪意あるアプリケーション実行ファイルとその悪意あるアプリケーション実行ファイルからの変種ファイルとの共通的な特徴情報を、悪意があるか否かの診断のためのシグネチャデータとして格納する段階と、
診断対象アプリケーション実行ファイルから前記共通的な特徴情報に対応する情報を収集する段階と、
収集された前記対応する情報と前記シグネチャデータとして格納された前記共通的な特徴情報とを比較して前記診断対象アプリケーション実行ファイルの悪意の有無を判断する段階と、
前記診断対象アプリケーション実行ファイルの悪意の有無の判別結果を提供する段階と、
を含み、
前記診断対象アプリケーション実行ファイルは、ＡＰＫ（ａｎｄｒｏｉｄ  ｐａｃｋａｇｅ）ファイルであり、
前記情報を収集する段階は、前記ＡＰＫファイル内のファイル経路情報又は認証書情報を収集する段階を含み、
前記ファイル経路情報又は認証書情報を収集する段階は、
前記ＡＰＫファイル内のＭＥＴＡ-ＩＮＦフォルダに存在するＲＳＡファイルの自己署名情報を抽出する段階を含む、
悪意あるアプリケーション診断方法によるそれぞれの段階を行う命令語を含むプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【請求項１８】
モバイルオペレーティングシステム環境で駆動され得る悪意あるアプリケーション実行ファイルとその悪意あるアプリケーション実行ファイルからの変種ファイルとの共通的な特徴情報を、悪意があるか否かの診断のためのシグネチャデータとして格納する段階と、
診断対象アプリケーション実行ファイルから前記共通的な特徴情報に対応する情報を収集する段階と、
収集された前記対応する情報と前記シグネチャデータとして格納された前記共通的な特徴情報とを比較して前記診断対象アプリケーション実行ファイルの悪意の有無を判断する段階と、
前記診断対象アプリケーション実行ファイルの悪意の有無の判別結果を提供する段階とを含み、
前記情報を収集する段階は、前記診断対象アプリケーション実行ファイル内のＤＥＸファイルを分析してＪＡＶＡ（登録商標）クラスファイルの特徴を抽出する段階を含む、
悪意あるアプリケーション診断方法によるそれぞれの段階を行う命令語を含むプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【請求項１９】
モバイルオペレーティングシステム環境で駆動され得る悪意あるアプリケーション実行ファイルとその悪意あるアプリケーション実行ファイルからの変種ファイルとの共通的な特徴情報を、悪意があるか否かの診断のためのシグネチャデータとして格納する段階と、
診断対象アプリケーション実行ファイルから前記共通的な特徴情報に対応する情報を収集する段階と、
収集された前記対応する情報と前記シグネチャデータとして格納された前記共通的な特徴情報とを比較して前記診断対象アプリケーション実行ファイルの悪意の有無を判断する段階と、
前記診断対象アプリケーション実行ファイルの悪意の有無の判別結果を提供する段階とを含み、
前記情報を収集する段階は、前記診断対象アプリケーション実行ファイル内のａｎｄｒｏｉｄＭａｎｉｆｅｓｔ.ｘｍｌファイルで内部情報を収集する段階を含み、
前記内部情報を収集する段階は、前記ａｎｄｒｏｉｄＭａｎｉｆｅｓｔ.ｘｍｌファイルのＸＭＬツリー構造情報をハッシュ値として抽出する段階を含む、
悪意あるアプリケーション診断方法によるそれぞれの段階を行う命令語を含むプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【請求項２０】
モバイルオペレーティングシステム環境で駆動され得る悪意あるアプリケーション実行ファイルとその悪意あるアプリケーション実行ファイルからの変種ファイルとの共通的な特徴情報を、悪意があるか否かの診断のためのシグネチャデータとして格納する段階と、
診断対象アプリケーション実行ファイルから前記共通的な特徴情報に対応する情報を収集する段階と、
収集された前記対応する情報と前記シグネチャデータとして格納された前記共通的な特徴情報とを比較して前記診断対象アプリケーション実行ファイルの悪意の有無を判断する段階と、
前記診断対象アプリケーション実行ファイルの悪意の有無の判別結果を提供する段階とを含み、
前記情報を収集する段階は、ｒｅｓｏｕｒｃｅｓ.ａｒｓｃファイル内のリソース構造体の形態的な構成情報をハッシュ値として抽出する段階を含む、
悪意あるアプリケーション診断方法によるそれぞれの段階を行う命令語を含むプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、悪意あるアプリケーション診断装置及び方法に関するものである。より具体的には、モバイルオペレーティングシステムでアプリケーション実行ファイルを対象に悪意があるか否かを診断する悪意あるアプリケーション診断装置及び方法に関するものである。
【背景技術】
【０００２】
近年、有無線インターネットだけでなく、移動通信技術の発達に伴い単なる通話機能のみならず無線インターネット機能などの多様な機能を備えた携帯電話が普及している。特に最近普及が拡大しているスマートフォン（ｓｍａｒｔｐｈｏｎｅ）は、モバイルオペレーティングシステムで動作する多様なアプリケーションプログラム（以下、アプリケーションという）をインストールでき、このような理由からユーザはスマートフォンを多様な用途で使用している。
【０００３】
スマートフォンには、アンドロイド（Ａｎｄｒｏｉｄ）、ｉ-ＯＳ（Ｏｐｅｒａｔｉｎｇ Ｓｙｓｔｅｍ）、ウィンドウモバイル（ｗｉｎｄｏｗ ｍｏｂｉｌｅ）などのモバイルオペレーティングシステムが搭載され、各種モバイルオペレーティングシステムで実行可能なアプリケーションの開発が活発に行われている。
【０００４】
上記モバイルオペレーティングシステムの中で、アンドロイドプラットフォームはグーグル（Ｇｏｏｇｌｅ）社が主導するＯＨＡ（Ｏｐｅｎ Ｈａｎｄｓｅｔ Ａｌｌｉａｎｃｅ）にて公開したオープンソースプラットフォームであり、リナックス（登録商標）（Ｌｉｎｕｘ（登録商標））カーネル、仮想マシン（ＶＭ：Ｖｉｒｔｕａｌ Ｍａｃｈｉｎｅ）、フレームワーク（Ｆｒａｍｅｗｏｒｋ）及びアプリケーションをすべて含むソフトウェアパッケージを意味する。
【０００５】
現在アンドロイドプラットフォームに対するユーザの期待が高まり、端末メーカーと移動体通信事業者からの好評からアンドロイドプラットフォームを搭載するスマートフォンなどの携帯用端末が次第に増加することによって、アンドロイドアプリケーション市場が活性化して良質のアンドロイドアプリケーションの供給に対する要求が高まっている。
【０００６】
だがアンドロイドプラットフォームを搭載したスマートフォンのユーザが増加することによって、アンドロイドオペレーティングシステムをターゲットとするマルウェアも急増しており、アンドロイドマルウェアの作成者らは既存のＰＣ環境で習得した多様な技術をアンドロイド用の悪意あるアプリケーション作成に適用し、ＰＣよりも急速に発展させている。
【０００７】
図１は、アンドロイドプラットフォームで駆動するアプリケーションのインストール及び動作のための実行ファイルのアンドロイドパッケージ（ＡＰＫ）ファイルの一例を示すツリー構造図である。
【０００８】
図１に示すように、アンドロイドパッケージファイルは、ルート（ｒｏｏｔ）に複数のフォルダ及びファイルを含んでおり、この中でＭＥＴＡ-ＩＮＦフォルダ(２０)とＡｎｄｒｏｉｄＭａｎｉｆｅｓｔ.ｘｍｌファイル(１０)、ｃｌａｓｓｅｓ.ｄｅｘファイル(３０)及びｒｅｓｏｕｒｃｅｓ.ａｒｓｃファイル(４０)は必須構成要素だ。必須構成要素はいずれか１つでもなければ、アプリケーションが正常にインストールされなかったり実行されない。ＭＥＴＡ-ＩＮＦフォルダ(２０)は、その下位にＲＳＡファイル(２１)、ＳＦファイル(２２)及びＭＡＮＩＦＥＳＴ.ＭＦファイル(２３)を必須要素として含んでいる。
【０００９】
アンドロイドの悪意あるアプリケーションを作成する方法は、ＡｎｄｒｏｉｄＭａｎｉｆｅｓｔ.ｘｍｌファイル(１０)又はｃｌａｓｓｅｓ.ｄｅｘファイル(３０)を修正して作成することが代表的なものとして知られている。
【００１０】
よって従来の技術を駆使してモバイルオペレーティングシステム環境で悪意あるアプリケーションを診断する場合は、悪意があると判定されたＡｎｄｒｏｉｄＭａｎｉｆｅｓｔ.ｘｍｌファイル(１０)及びｃｌａｓｓｅｓ.ｄｅｘファイル(３０)のハッシュ（ｈａｓｈ）値をシグネチャ（ｓｉｇｎａｔｕｒｅ）データベースに予め格納し、診断対象であるアプリケーションから抽出したＡｎｄｒｏｉｄＭａｎｉｆｅｓｔ.ｘｍｌファイル(１０)又はｃｌａｓｓｅｓ.ｄｅｘファイル(３０)のハッシュ値をシグネチャデータベースと比較して、悪意あるアプリケーションを診断及び判別した。
【００１１】
この従来の技術を使用すれば、１つの悪意あるファイルに対して正確に診断ができるが、自動化ツールなどを用いて作成された大量の変種ファイルについては、悪意があるか否かを診断できないという問題があった。
【発明の概要】
【発明が解決しようとする課題】
【００１２】
本発明の実施例は、モバイルオペレーティングシステム環境で駆動可能な悪意あるアプリケーションの実行ファイルを対象にし、変種ファイルにおいても不変であったり、変形が難しい共通的な特徴情報を、悪意あるアプリケーションの診断に活用する悪意あるアプリケーション診断装置及び方法を提供する。
【課題を解決するための手段】
【００１３】
本発明の一実施形態による悪意あるアプリケーション診断装置は、モバイルオペレーティングシステム環境で駆動され得る悪意あるアプリケーション実行ファイルとその悪意あるアプリケーション実行ファイルからの変種ファイルとの共通的な特徴情報を、悪意があるか否かの診断のためのシグネチャデータとして格納するシグネチャ格納部と、診断対象アプリケーション実行ファイルから前記共通的な特徴情報に対応する情報を収集する情報収集部と、収集された前記対応する情報と前記シグネチャ格納部に格納された前記共通的な特徴情報とを比較して前記診断対象アプリケーション実行ファイルの悪意の有無を判断する診断判別部と、前記診断対象アプリケーション実行ファイルの悪意の有無の判別結果を提供する結果提供部とを含むことができる。
【００１４】
ここで、前記悪意あるアプリケーション診断装置は、複数の共通的な特徴情報を組み合わせて前記診断対象アプリケーション実行ファイルの悪意の有無を判別するための診断規則を格納する診断規則格納部を更に含み、前記情報収集部は、前記診断規則に従って前記共通的な特徴情報を収集できる。
【００１５】
前記悪意あるアプリケーション診断装置は、前記診断規則の設定を要請できる設定部を更に含み、前記設定部による要請によって設定された前記診断規則は、前記診断規則格納部に格納され得る。
【００１６】
前記診断対象アプリケーション実行ファイルは、ＡＰＫ（ａｎｄｒｏｉｄ  ｐａｃｋａｇｅ）ファイルであり、前記情報収集部は、前記ＡＰＫファイル内のファイル経路情報又は認証書情報を収集するＡＰＫ情報収集部を含むことができる。
【００１７】
前記ＡＰＫ情報収集部は、前記ＡＰＫファイルを構成するファイルのツリー構造を抽出してファイルの経路に該当するハッシュ値を抽出するファイルツリー構造抽出部を含むことができる。
【００１８】
前記ＡＰＫ情報収集部は、前記ＡＰＫファイル内に存在する特定ファイルの経路を抽出して該当ファイルの経路に該当するハッシュ値を抽出するファイル経路抽出部を含むことができる。
【００１９】
前記ＡＰＫ情報収集部は、前記ＡＰＫファイル内のＭＥＴＡ-ＩＮＦフォルダに存在するＲＳＡファイルの自己署名情報を抽出する認証書情報抽出部を含むことができる。
【００２０】
前記認証書情報抽出部は、前記自己署名情報の中からＳｅｒｉａｌ Ｎｕｍｂｅｒ、Ｉｓｓｕｒｅ ＤＮ又はＶａｌｉｄｉｔｙのうち少なくとも１つを抽出できる。
【００２１】
前記情報収集部は、前記診断対象アプリケーション実行ファイル内のＤＥＸファイルを分析してＪＡＶＡ（登録商標）クラスファイルの特徴を抽出するＤＥＸ情報収集部を含むことができる。
【００２２】
前記ＤＥＸ情報収集部は、前記ＤＥＸファイルで含むＪＡＶＡ（登録商標）ファイルがインポートする外部クラス情報の目録を用いてＣＲＣを求めるインポートクラス抽出部を含むことができる。
【００２３】
前記ＤＥＸ情報収集部は、前記ＤＥＸファイルに定義されたプロトタイプ目録を集めてＣＲＣを求めるプロトタイプ抽出部を含むことができる。
【００２４】
前記ＤＥＸ情報収集部は、前記ＤＥＸファイルに含まれているＪＡＶＡ（登録商標）クラスファイルの名前を羅列してＣＲＣを求めるクラスリスト抽出部を含むことができる。
【００２５】
前記ＤＥＸ情報収集部は、前記ＤＥＸファイルに含まれているクラスに対してクラス内部の属性値又はＪＡＶＡ（登録商標）コード命令語の句文を抽出するクラスハッシュ抽出部を含むことができる。
【００２６】
前記情報収集部は、前記診断対象アプリケーション実行ファイル内のａｎｄｒｏｉｄＭａｎｉｆｅｓｔ.ｘｍｌファイルで内部情報を収集するマニフェスト情報収集部を含むことができる。
【００２７】
前記マニフェスト情報収集部は、前記ａｎｄｒｏｉｄＭａｎｉｆｅｓｔ.ｘｍｌファイルからアプリケーションに関する情報を抽出するアプリケーション情報抽出部を含むことができる。
【００２８】
前記マニフェスト情報収集部は、前記ａｎｄｒｏｉｄＭａｎｉｆｅｓｔ.ｘｍｌファイルのＸＭＬツリー構造情報をハッシュ値として抽出するＸＭＬツリー構造抽出部を含むことができる。
【００２９】
前記情報収集部は、ｒｅｓｏｕｒｃｅｓ.ａｒｓｃファイル内のリソース構造体の形態的な構成情報をハッシュ値として抽出するリソース情報収集部を含むことができる。
【００３０】
本発明の他の実施形態による悪意あるアプリケーション診断方法は、モバイルオペレーティングシステム環境で駆動され得る悪意あるアプリケーション実行ファイルとその悪意あるアプリケーション実行ファイルからの変種ファイルとの共通的な特徴情報を、悪意があるか否かの診断のためのシグネチャデータとして格納する段階と、診断対象アプリケーション実行ファイルから前記共通的な特徴情報に対応する情報を収集する段階と、収集された前記対応する情報と前記シグネチャデータとして格納された前記共通的な特徴情報とを比較して前記診断対象アプリケーション実行ファイルの悪意の有無を判断する段階と、前記診断対象アプリケーション実行ファイルの悪意の有無の判別結果を提供する段階とを含むことができる。
【００３１】
ここで、前記悪意あるアプリケーション診断方法は、複数の共通的な特徴情報を組み合わせて前記診断対象アプリケーション実行ファイルの悪意の有無を判別するための診断規則を格納する段階を更に含み、前記収集する段階は、前記診断規則に従って前記共通的な特徴情報を収集できる。
【００３２】
前記悪意あるアプリケーション診断方法は、前記診断規則の設定を要請される段階を更に含み、前記設定の要請によって前記診断規則を格納できる。
【００３３】
本発明の更に他の実施形態によれば、モバイルオペレーティングシステム環境で駆動され得る悪意あるアプリケーション実行ファイルとその悪意あるアプリケーション実行ファイルからの変種ファイルとの共通的な特徴情報を、悪意があるか否かの診断のためのシグネチャデータとして格納する段階と、診断対象アプリケーション実行ファイルから前記共通的な特徴情報に対応する情報を収集する段階と、収集された前記対応する情報と前記シグネチャデータとして格納された前記共通的な特徴情報とを比較して前記診断対象アプリケーション実行ファイルの悪意の有無を判断する段階と、前記診断対象アプリケーション実行ファイルの悪意の有無の判別結果を提供する段階とを含む悪意あるアプリケーション診断方法によるそれぞれの段階を行う命令語を含むプログラムが記録されたコンピュータ読み取り可能な記録媒体を提供できる。
【発明の効果】
【００３４】
本発明の実施形態によれば、モバイルオペレーティングシステム環境で駆動され得る悪意あるアプリケーションの実行ファイルを対象に変種ファイルでも不変したり、変形し難い共通的な特徴情報を悪意あるアプリケーションの診断に活用する。
【００３５】
従って、外形的に異なるが、本質的には同種類の変種の悪意あるファイル又は新種の悪意あるファイルに対しても既に確保された診断データを活用して悪意があるか否かを診断及び判別できる。なお、正常なアプリケーションの共通的な特徴情報を診断データとして確保してホワイトリスト（ｗｈｉｔｅ ｌｉｓｔ）を別途に管理すれば、正常なアプリケーションを悪意があると誤診する可能性を大きく下げることができるという効果を奏する。
【図面の簡単な説明】
【００３６】
【図１】アンドロイドプラットフォームで駆動されるアプリケーションのインストール及び動作のための実行ファイルであるアンドロイドパッケージ（ＡＰＫ）ファイルの一例を示すツリー構造図である。
【図２】本発明の実施形態による悪意あるアプリケーション診断装置のブロック図である。
【図３】本発明の実施形態による情報収集部の細部的な構成図である。
【図４】本発明の実施形態によるＡＰＫ情報収集部の細部的な構成図である。
【図５】本発明の実施形態によるＤＥＸ情報収集部の細部的な構成図である。
【図６】本発明の実施形態によるマニフェスト情報収集部の細部的な構成図である。
【図７】本発明の実施形態による悪意あるアプリケーション診断方法を説明するためのフローチャートである。
【発明を実施するための形態】
【００３７】
本発明の利点及び特徴、そしてそれらを達成する方法は、添付される図面と共に詳細に後述されている実施形態を参照すれば明確になる。しかしながら、本発明は以下で開示される実施形態に限定されるものではなく、互いに異なる多様な形態で実現され得、但し、本実施形態は、本発明の開示が完全なようにし、本発明の属する技術分野における通常の知識を有する者に発明の範疇を完全に理解させるために提供されるものであり、本発明は請求範囲の範疇により定義されるだけである。明細書全体に亘って同一の参照符号は同一の構成要素を示す。
【００３８】
本発明の実施形態を説明するにおいて公知の機能又は構成についての具体的な説明が本発明の要旨を不要に曖昧にするおそれがあると判断される場合には、その詳細な説明を省略する。そして、後述する用語は、本発明の実施形態での機能を考慮して定義された用語であって、これはユーザ、運用者の意図又は慣例などによって変わり得る。従って、その定義は、本明細書全般に亘る内容に基づいて行われるべきである。
【００３９】
図２は、本発明の実施形態による悪意あるアプリケーション診断装置のブロック図である。
【００４０】
これに示すように、悪意あるアプリケーション診断装置１００は、情報収集部１１０、診断判別部１２０、設定部１３０、シグネチャ格納部１４０、診断規則格納部１５０、結果提供部１６０などを含む。
【００４１】
シグネチャ格納部１４０は、モバイルオペレーティングシステム環境で駆動され得る悪意あるアプリケーション実行ファイルとその悪意あるアプリケーション実行ファイルからの変種ファイルとの共通的な特徴情報を診断対象アプリケーション実行ファイルに対する悪意の有無の診断のためのシグネチャデータとして格納する。このようなシグネチャ格納部１４０は、１つのアプリケーション実行ファイルと関連する複数の共通的な特徴情報を格納できる。
【００４２】
情報収集部１１０は、悪意があるか否かを診断する対象である診断対象アプリケーション実行ファイルからシグネチャ格納部１４０に格納された共通的な特徴情報に対応する情報を収集する。このような情報収集部１１０は、診断規則格納部１５０に格納された診断規則に従ってアプリケーション実行ファイルから共通的な特徴情報に対応する情報を収集できる。即ち、情報収集部１１０は、診断対象アプリケーション実行ファイルから悪意あるアプリケーション実行ファイルとの共通的な特徴情報を収集するとも言える。
【００４３】
診断判別部１２０は、情報収集部１１０により収集された共通的な特徴情報の対応情報とシグネチャ格納部１４０に格納された共通的な特徴情報とを比較してアプリケーション実行ファイルの悪意の有無を診断及び判別する。
【００４４】
結果提供部１６０は、診断判別部１２０によるアプリケーション実行ファイルの悪意の有無の判別結果を外部に提供する。
【００４５】
診断規則格納部１５０は、複数の共通的な特徴情報を組み合わせてアプリケーション実行ファイルの悪意の有無を判別するための診断規則を格納する。
【００４６】
設定部１３０は、悪意あるアプリケーション診断装置１００に各種命令を入力できるインターフェースを提供し、このような設定部１３０を通じて診断規則の設定を要請できる。このような設定部１３０による要請によって診断判別部１２０は、診断規則を設定して診断規則格納部１５０に格納されるようにすることができる。
【００４７】
図３は、本発明の実施形態による情報収集部１１０の細部的な構成図である。
【００４８】
これに示すように、情報収集部１１０は、ＡＰＫ情報収集部１１１、ＤＥＸ情報収集部１１２、マニフェスト情報収集部１１３、リソース情報収集部１１４などを含む。
【００４９】
ＡＰＫ情報収集部１１１は、ＡＰＫ圧縮ファイル内のファイル経路情報又は認証書情報を収集できる。
【００５０】
ＤＥＸ情報収集部１１２は、ＤＥＸファイルを分析してＪＡＶＡ（登録商標）クラスファイルの特徴を抽出できる。
【００５１】
マニフェスト情報収集部１１３は、ａｎｄｒｏｉｄＭａｎｉｆｅｓｔ.ｘｍｌファイルの内部情報を収集できる。
【００５２】
リソース情報収集部１１４は、ｒｅｓｏｕｒｃｅｓ.ａｒｓｃファイル内のリソース構造体の形態的な構成情報をハッシュ値として抽出できる。
【００５３】
図４は、本発明の実施形態によるＡＰＫ情報収集部１１１の細部的な構成図である。
【００５４】
これに示すように、ＡＰＫ情報収集部１１１は、ファイルツリー構造抽出部１１１ａ、ファイル経路抽出部１１１ｂ、認証書情報抽出部１１１ｃなどを含む。
【００５５】
ファイルツリー構造抽出部１１１ａは、ＡＰＫ圧縮ファイルを構成するファイルのツリー構造を抽出してファイルの経路に該当するハッシュ値を抽出できる。
【００５６】
ファイル経路抽出部１１１ｂは、ＡＰＫ圧縮ファイル内に存在する特定ファイルの経路を抽出して該当ファイルの経路に該当するハッシュ値を抽出できる。
【００５７】
認証書情報抽出部１１１ｃは、ＡＰＫ圧縮ファイル内のＭＥＴＡ-ＩＮＦフォルダに存在するＲＳＡファイルの自己署名情報を抽出できる。このような認証書情報抽出部１１１ｃは、自己署名情報の中からＳｅｒｉａｌ Ｎｕｍｂｅｒ、Ｉｓｓｕｒｅ ＤＮ又はＶａｌｉｄｉｔｙを抽出できる。
【００５８】
図５は、本発明の実施形態によるＤＥＸ情報収集部１１２の細部的な構成図である。
【００５９】
これに示すように、ＤＥＸ情報収集部１１２は、インポートクラス抽出部１１２ａ、プロトタイプ抽出部１１２ｂ、クラスリスト抽出部１１２ｃ、クラスハッシュ抽出部１１２ｄを含む。
【００６０】
インポートクラス抽出部１１２ａは、ＤＥＸファイルで含むＪＡＶＡ（登録商標）ファイルがインポートする外部クラス情報の目録を用いてＣＲＣ（Ｃｙｃｌｉｃ Ｒｅｄｕｎｄａｎｃｙ Ｃｈｅｃｋ）を求めることができる。
【００６１】
プロトタイプ抽出部１１２ｂは、ＤＥＸファイルに定義されたプロトタイプ目録を集めてＣＲＣを求めることができる。
【００６２】
クラスリスト抽出部１１２ｃは、ＤＥＸファイルに含まれているＪＡＶＡ（登録商標）クラスファイルの名前を羅列してＣＲＣを求めることができる。
【００６３】
クラスハッシュ抽出部１１２ｄは、ＤＥＸファイルに含まれているクラスに対してクラス内部の属性値又はＪＡＶＡ（登録商標）コード命令語の句文を抽出できる。
【００６４】
図６は、本発明の実施形態によるマニフェスト情報収集部１１３の細部的な構成図である。
【００６５】
これに示すように、マニフェスト情報収集部１１３は、アプリケーション情報抽出部１１３ａ、ＸＭＬツリー構造抽出部１１３ｂを含む。
【００６６】
アプリケーション情報抽出部１１３ａは、ａｎｄｒｏｉｄＭａｎｉｆｅｓｔ.ｘｍｌファイルでアプリケーションに関する情報を抽出できる。
【００６７】
ＸＭＬツリー構造抽出部１１３ｂは、ａｎｄｒｏｉｄＭａｎｉｆｅｓｔ.ｘｍｌファイルのＸＭＬツリー構造情報をハッシュ値として抽出できる。
【００６８】
図７は、本発明の実施形態による悪意あるアプリケーション診断方法を説明するためのフローチャートである。
【００６９】
これに示すように、本発明の実施形態による悪意あるアプリケーション診断装置１００による悪意あるアプリケーション診断方法は、モバイルオペレーティングシステム環境で駆動され得る悪意あるアプリケーション実行ファイルとその悪意あるアプリケーション実行ファイルからの変種ファイルを対象に複数の共通的な特徴情報を、悪意があるか否かの診断のためのシグネチャデータとして格納し、複数の共通的な特徴情報を組み合わせてアプリケーション実行ファイルの悪意の有無を判別するための診断規則を格納した状態でファイル診断モードに進む段階（Ｓ２０１）と、ファイル診断モードの進入によって既に格納された診断規則を確認する段階（Ｓ２０２）と、モバイルオペレーティングシステム環境でファイルを探索してモバイルオペレーティングシステム実行ファイルを判別する段階（Ｓ２０３及びＳ２０４）と、判別されたモバイルオペレーティングシステム実行ファイルから既に格納された診断規則に従って共通的な特徴情報に対応する情報を収集する段階（Ｓ２０５）と、収集された共通的な特徴情報に対応する情報と既に格納されたシグネチャデータとを比較してアプリケーション実行ファイルの悪意の有無を判断する段階（Ｓ２０７）と、判断によりアプリケーション実行ファイルの悪意の有無の判別結果を外部に提供することなどのような悪意あるアプリケーション処理を行う段階（Ｓ２０８）とを含む。例えば、段階Ｓ２０１で診断対象アプリケーション実行ファイルの悪意の有無を判別するための診断規則を格納する際に外部から診断規則の設定が要請されれば、該当要請によって診断規則を設定できる。
【００７０】
以下、図１〜図７を参照して本発明の実施形態による悪意あるアプリケーション診断装置による悪意あるアプリケーション診断方法を更に詳察する。
【００７１】
まず、悪意あるアプリケーション診断装置１００のシグネチャ格納部１４０は、モバイルオペレーティングシステム環境で駆動され得る悪意あるアプリケーション実行ファイルとその悪意あるアプリケーション実行ファイルからの変種ファイルを対象に複数の共通的な特徴情報を、悪意があるか否かの診断のためのシグネチャデータとして格納する。
【００７２】
ここで、シグネチャ格納部１４０がシグネチャデータとして格納する複数の共通的な特徴情報は、アプリケーション実行ファイルに必須的に含まれるフォルダ又はファイルから抽出する。例えば、アンドロイドパッケージ（ＡＰＫ）ファイルのＭＥＴＡ-ＩＮＦフォルダ２０とＡｎｄｒｏｉｄＭａｎｉｆｅｓｔ.ｘｍｌファイル１０、ｃｌａｓｓｅｓ.ｄｅｘファイル３０又はｒｅｓｏｕｒｃｅｓ.ａｒｓｃファイル４０から複数の共通的な特徴情報を抽出できる。
【００７３】
このようなシグネチャ格納部１４０に格納されるシグネチャデータは、モバイルオペレーティングシステム環境で駆動される診断対象アプリケーション実行ファイルから情報収集部１１０が収集する情報と同種類の情報である。このようなシグネチャデータの細部的な説明は、段階Ｓ２０５で情報収集部１１０による情報収集過程で説明する。
【００７４】
このようにシグネチャ格納部１４０によるシグネチャデータの格納過程が実行されれば、悪意あるアプリケーション診断装置１００は、段階Ｓ２０１を通じてファイル診断モードを行えるが、その前に悪意あるアプリケーションを診断するための診断規則を設定する過程をまず行える。
【００７５】
このために、設定部１３０は、悪意あるアプリケーション診断装置１００に各種命令を入力できるユーザインターフェースを提供し、ユーザインターフェースを通じて診断規則の設定が要請されれば、診断規則格納部１５０に悪意あるアプリケーションを診断するための診断規則を格納する。ここで、診断規則とは、シグネチャ格納部１４０に格納されたシグネチャデータの中でどの（各）データを悪意あるアプリケーションの診断に利用するかを指定することを意味する。即ち、シグネチャ格納部１４０に格納された複数の共通的な特徴情報を組み合わせてアプリケーション実行ファイルの悪意の有無を判別するための診断規則を指定及び格納できる。
【００７６】
次に、悪意あるアプリケーション診断装置１００は、診断規則を格納した状態でファイル診断モードに進む（Ｓ２０１）。
【００７７】
ファイル診断モードに進入すれば、診断判別部１２０は、診断規則格納部１５０に既に格納された診断規則を確認し、確認された診断規則に従って情報収集部１１０にファイル探索及び情報収集を要請する（Ｓ２０２）。
【００７８】
情報収集部１１０は、モバイルオペレーティングシステム環境でファイルを探索し（Ｓ２０３）、探索されたファイルがモバイルオペレーティングシステム実行ファイルかを判別する（Ｓ２０４）。例えば、アンドロイドプラットフォームの場合、アンドロイドパッケージ（ＡＰＫ）ファイルかを判別するものである。
【００７９】
ここで、情報収集部１１０は、モバイルオペレーティングシステム実行ファイルを対象に既に格納された診断規則に従って共通的な特徴情報に対応する情報を収集する（Ｓ２０５）。
【００８０】
情報収集部１１０は、構成するＡＰＫ情報収集部１１１、ＤＥＸ情報収集部１１２、マニフェスト情報収集部１１３、リソース情報収集部１１４は、診断規則格納部１５０に既に格納された診断規則に従って何れか１つ又は複数が動作できる。
【００８１】
ＡＰＫ情報収集部１１１は、ＡＰＫ圧縮ファイル内のファイル経路情報又は認証書情報を収集する。このようなＡＰＫ情報収集部１１１を構成するファイルツリー構造抽出部１１１ａ、ファイル経路抽出部１１１ｂ、認証書情報抽出部１１１ｃは、診断規則格納部１５０に既に格納された診断規則に従って何れか１つ又は複数が動作できる。
【００８２】
ファイルツリー構造抽出部１１１ａは、ＡＰＫ圧縮ファイルを構成するファイルのツリー構造を抽出してファイルの経路に該当するハッシュ値を抽出する。ＡＰＫ圧縮ファイルは、必ず存在しなければならないファイルを除けば、製作者が自律的にファイル名と格納経路を指定できる。ＡＰＫ圧縮ファイルでファイルのツリー構造を抽出してファイルの全ての経路名をハッシュ値として抽出し、抽出したファイルの全ての経路名に対応するハッシュ値を同一類型のファイルを区分できるシグネチャとして使用できる。大半の悪意あるファイルは、一度生成されれば、その後、変種が生成されても内部ファイルの構成が変更しないので、この方法の診断率は効果的である。
【００８３】
ファイル経路抽出部１１１ｂは、ＡＰＫ圧縮ファイル内に存在する特定ファイルの経路を抽出して該当ファイルの経路に該当するハッシュ値を抽出する。このようにＡＰＫ圧縮ファイルに存在する特定ファイルの経路とそのファイルのハッシュ値を抽出して同一類型のファイルを区分するシグネチャとして使用できる。これはファイルツリー構造抽出部１１１ａを用いたことに比べて、更に広い範囲の変種ファイルを効果的に診断できる。
【００８４】
認証書情報抽出部１１１ｃは、ＡＰＫ圧縮ファイル内のＭＥＴＡ-ＩＮＦフォルダ２０に存在するＲＳＡファイル２１の自己署名情報を抽出する。このような認証書情報抽出部１１１ｃは、自己署名情報の中からＳｅｒｉａｌ Ｎｕｍｂｅｒ、Ｉｓｓｕｒｅ ＤＮ又はＶａｌｉｄｉｔｙを抽出できる。認証書ファイルは、ＡＰＫ圧縮ファイル内部のＭＥＴＡ-ＩＮＦフォルダ２０にＭＡＮＩＦＥＳＴ.ＭＦファイル２３、ユーザ指定ファイル名.ＳＦファイル２２及びＳＦ拡張子のファイルと同じファイル名.ＲＳＡファイル２１として存在する。このうち、ＲＳＡファイル２１はＸ.５０９形式の自己署名を含んでおり、Ｘ.５０９認証書の内容のうちＳｅｒｉａｌ Ｎｕｍｂｅｒ、Ｉｓｓｕｒｅ ＤＮ、Ｖａｌｉｄｉｔｙ（Ｎｏｔ Ｂｅｆｏｒｅ、Ｎｏｔ Ａｆｔｅｒ）を抽出及び組み合わせて同一類型のファイルを区分するシグネチャとして用いる。
【００８５】
ＤＥＸ情報収集部１１２は、ｃｌａｓｓｅｓ.ｄｅｘファイル３０を分析してＪＡＶＡ（登録商標）クラスファイルの特徴を抽出する。このようなｃｌａｓｓｅｓ.ｄｅｘファイル３０は、アプリケーション製作者がＪＡＶＡ（登録商標）プログラミング言語で作成したコードがバイナリ形態で入っている。ｃｌａｓｓｅｓ.ｄｅｘファイル３０を分析してＪＡＶＡ（登録商標）クラスファイルの特徴を抽出して診断ポイントとして活用する。
【００８６】
このようなＤＥＸ情報収集部１１２を構成するインポートクラス抽出部１１２ａ、プロトタイプ抽出部１１２ｂ、クラスリスト抽出部１１２ｃ、クラスハッシュ抽出部１１２ｄは、診断規則格納部１５０に既に格納された診断規則に従って何れか１つ又は複数が動作できる。
【００８７】
インポートクラス抽出部１１２ａは、ｃｌａｓｓｅｓ.ｄｅｘファイル３０で含むＪＡＶＡ（登録商標）ファイルがインポートする外部クラス情報の目録を用いてＣＲＣ（Ｃｙｃｌｉｃ Ｒｅｄｕｎｄａｎｃｙ Ｃｈｅｃｋ）を求めて診断ポイントとして活用する。
【００８８】
プロトタイプ抽出部１１２ｂは、ｃｌａｓｓｅｓ.ｄｅｘファイル３０に定義されたプロトタイプ目録を集め、ＣＲＣを求めて診断ポイントとして活用する。このとき、ユーザ定義クラス、関数、変数はその形式のみ含めることができる。
【００８９】
クラスリスト抽出部１１２ｃは、ｃｌａｓｓｅｓ.ｄｅｘファイル３０に含まれているＪＡＶＡ（登録商標）クラスファイルの名前を羅列してＣＲＣを求めて診断ポイントとして活用する。２種類のＣＲＣを抽出するにおいて、１つはクラスの名前のみ羅列したＣＲＣであり、他の１つはクラスの名前と経路の情報も含む。実際の悪意行為は、ＪＡＶＡ（登録商標）コード上で発生するようになるが、該当クラスから抽出された情報を用いて正確にマルウェアを検知できる。また、その特徴を抽出するとき、４つのレベルで抽出する情報に差別をおくため、コードの変形も検知できる。
【００９０】
クラスハッシュ抽出部１１２ｄは、ｃｌａｓｓｅｓ.ｄｅｘファイル３０に含まれているクラスに対してクラス内部の属性値又はＪＡＶＡ（登録商標）コード命令語の句文を抽出する。最初の抽出対象情報であるクラス内部の属性値は、ｓｔａｔｉｃ ｆｉｅｌｄｓ ｓｉｚｅ、ｉｎｓｔａｎｃｅ ｆｉｅｌｄｓ sｉｚｅ、ｄｉｒｅｃｔ ｍｅｔｈｏｄｓ ｓｉｚｅ、ｖｉｒｔｕａｌ ｍｅｔｈｏｄｓ ｓｉｚｅ、ｓｔａｔｉｃ ｆｉｅｌｄｓ ｎａｍｅ ＆ ｔｙｐｅ、ｉｎｓｔａｎｃｅ ｆｉｅｌｄｓ ｎａｍｅ ＆ ｔｙｐｅ、ｍｅｔｈｏｄ ｎａｍｅ ＆ ｔｙｐｅ、ｍｅｔｈｏｄ ｒｅｇｉｓｔｅｒｓ ｃｏｕｎｔ、ｍｅｔｈｏｄ ｉｎ-ｏｕｔ ａｒｇｕｍｅｎｔｓ、ｍｅｔｈｏｄ ｔｒｉｅｓ ｌｅｎｇｔｈ、ｍｅｔｈｏｄ ｉｎｓｔｒｕｃｔｉｏｎ ｓｉｚｅなどであり、２番目のハッシュ抽出対象情報であるＪＡＶＡ（登録商標）コード命令語の句文は、ａｌｌ ｏｐｃｏｄｅｓ、ｃｏｎｓｔ ｖａｌｕｅ、ａｌｌ ｃｏｎｓｔ*、ｒｅｔｕｒｎ、ｉｆ、ｇｏｔｏ、ｃｏｎｓｔ-ｓｔｒｉｎｇなどである。前記項目中の１つ又は複数値の組み合わせが診断規則格納部１５０に格納された診断規則に従って悪意あるアプリケーションを判別するために利用され得る。
【００９１】
マニフェスト情報収集部１１３は、ａｎｄｒｏｉｄＭａｎｉｆｅｓｔ.ｘｍｌファイル１０の内部情報を収集する。
【００９２】
このようなマニフェスト情報収集部１１３を構成するアプリケーション情報抽出部１１３ａ、ＸＭＬツリー構造抽出部１１３ｂは、診断規則格納部１５０に既に格納された診断規則に従って何れか１つ又は複数が動作できる。
【００９３】
アプリケーション情報抽出部１１３ａは、ａｎｄｒｏｉｄＭａｎｉｆｅｓｔ.ｘｍｌファイル１０でアプリケーションに関する情報を抽出する。ａｎｄｒｏｉｄＭａｉｎｆｅｓｔ.ｘｍｌファイル１０には、アプリケーションを実行するためにシステムが知っていなければならない基本的な情報が記述されている。このような情報には、Ｐａｃｋａｇｅ Ｎａｍｅを含んでＰｅｒｍｉｓｓｉｏｎ、Ｖｅｒｓｉｏｎ（製品、ＳＤＫ）、Ｒｅｃｅｉｖｅｒ、Ａｃｔｉｖｉｔｙ、Ｓｅｒｖｉｃｅなどがあり、アプリケーションがアップデートされるとき、同じ値又は構造で維持される場合が多い。
【００９４】
アプリケーション情報抽出部１１３ａは、アプリケーションがアップデートされても容易に変わらないａｎｄｒｏｉｄＭａｎｉｆｅｓｔ.ｘｍｌファイル１０の内部情報を悪意あるアプリケーションの診断のために利用する。ａｎｄｒｏｉｄＭａｎｉｆｅｓｔ.ｘｍｌファイル１０は、アプリケーションに関する情報を文字列の形態で表現している。アプリケーションのＰａｃｋａｇｅ ＮａｍｅやＰｅｒｍｉｓｓｉｏｎなどの前記で言及した全ての情報を直接的に抽出可能であるため、固有な情報を文字列基盤の診断シグネチャとして活用可能である。
【００９５】
ＸＭＬツリー構造抽出部１１３ｂは、ａｎｄｒｏｉｄＭａｎｉｆｅｓｔ.ｘｍｌファイル１０のＸＭＬツリー構造情報をハッシュ値として抽出する。ａｎｄｒｏｉｄＭａｎｉｆｅｓｔ.ｘｍｌファイル１０は、ＸＭＬの標準規格に従っている。全ての情報は、それぞれのノードのツリー構造内に含まれる。ＸＭＬでのツリー構造は、生命体の骨と同一のものであって、類似する機能のアプリケーションは、この構造が同一である。この構造をハッシュ形態で抽出して診断シグネチャとして利用できる。
【００９６】
リソース情報収集部１１４は、ｒｅｓｏｕｒｃｅｓ.ａｒｓｃファイル４０内のリソース構造体の形態的な構成情報をハッシュ値として抽出する。
【００９７】
例えば、１種類の悪意あるモバイルトロイの木馬ファイルは作業の性格上、内部的にほぼ同様のリソース（絵、文字列）を有している。従って、このように頻繁に変更されないリソースの特徴を診断規則として定めれば、一度に多数の変種ファイルを診断できる。アンドロイド実行ファイルは、多様なリソース（イメージ、文字列、アイコン、サウンド、レイアウト、音楽、動画、その他）をサポートする。このように多様なリソースファイルをサポートするために、ｒｅｓｏｕｒｃｅｓ.ａｒｓｃファイル４０の内部は、多様な形態の構造体の母音からなっている。例えば、ＢＡＳＩＣ_ＨＥＡＤＥＲ、ＲＥＳＯＵＲＣＥ_ＨＥＡＤＥＲ、ＳＴＲＩＮＧ_ＢＬＯＣＫ、ＰＡＣＫＡＧＥ_ＢＬＯＣＫ、ＴＹＰＥ_ＢＬＯＣＫ、ＣＯＮＦＩＧ_ＢＬＯＣＫ、ＣＯＮＦＩＧ_ＦＬＡＧＳ、ＥＮＴＲＹ_ＢＬＯＣＫなどがある。
【００９８】
リソース情報収集部１１４は、ｒｅｓｏｕｒｃｅｓ.ａｒｓｃファイル４０内のリソース構造体の形態的な構成をハッシュ形態で抽出して診断データとして用いる。
【００９９】
第１に、ＢＡＳＩＣ_ＨＥＡＤＥＲの数、ｒｅｓｏｕｒｃｅｓ.ａｒｓｃファイル４０内に存在する各ＢＡＳＩＣ_ＨＥＡＤＥＲ構造体の開始位置配列のハッシュ値を抽出して診断データとして使用できる。
【０１００】
第２に、ＳＴＲＩＮＧ_ＢＬＯＣＫ構造体に存在する文字列の数、文字列全体の大きさ、文字列位置配列のハッシュ値、文字列全体のハッシュ値を抽出して診断データとして使用できる。
【０１０１】
第３に、ＰＡＣＫＡＧＥ_ＢＬＯＣＫ構造体に存在するＴＹＰＥ_ＢＬＯＣＫ構造体の数、ＴＹＰＥ_ＢＬＯＣＫ構造体のＴｙｐｅＩｄメンバー配列のハッシュ値を抽出して診断データとして使用できる。
【０１０２】
第４に、ＣＯＮＦＩＧ_ＢＬＯＣＫ構造体内部のＥｎｔｒｙ数、ＳｐｅｃＮａｍｅＩｄ配列のハッシュ値、Ｅｎｔｒｙバッファ開始位置配列のハッシュ値を抽出して診断データとして使用できる。
【０１０３】
このようなリソース情報収集部１１４により収集された情報を用いるリソース診断方式は、同一のグラフィカルユーザインターフェース（ＧＵＩ：Ｇｒａｐｈｉｃａｌ Ｕｓｅｒ Ｉｎｔｅｒｆａｃｅ）を用いる変種の悪意あるファイルに効果が良い。
【０１０４】
以上で説明したように、情報収集部１１０が診断規則に従って情報を収集して診断判別部１２０に提供し、診断判別部１２０は、シグネチャ格納部１４０に既に格納されたシグネチャデータと情報収集部１１０により収集された情報とを比較し（Ｓ２０６）、その比較結果によってアプリケーション実行ファイルの悪意の有無を診断及び判別する（Ｓ２０７）。
【０１０５】
そして、診断判別部１２０により検査対象アプリケーションが悪意あると判別されれば、結果提供部１６０は、診断及び判別によりアプリケーション実行ファイルの悪意の有無の判別結果を外部に提供することなどのような悪意あるアプリケーション処理を行う（Ｓ２０８）。
【０１０６】
添付されたブロック図の各ブロックとフローチャートの各段階の組み合わせは、コンピュータプログラムインストラクションにより実行されてもよい。これらのコンピュータプログラムインストラクションは、汎用コンピュータ、特殊用コンピュータ又はその他プログラム可能なデータプロセシング装置のプロセッサに搭載され得るので、コンピュータ又はその他プログラム可能なデータプロセシング装置のプロセッサを通じて行われるそのインストラクションがブロック図の各ブロック又はフローチャートの各段階で説明された機能を行う手段を生成するようになる。これらのコンピュータプログラムインストラクションは、特定方式で機能を実現するためにコンピュータ又はその他プログラム可能なデータプロセシング装置を志向できるコンピュータ利用可能又はコンピュータ読み取り可能なメモリに格納されることも可能であるので、そのコンピュータ利用可能又はコンピュータ読み取り可能なメモリに格納されたインストラクションは、ブロック図の各ブロック又はフローチャートの各段階で説明された機能を行うインストラクション手段を内包する製造品目を生産することも可能である。コンピュータプログラムインストラクションは、コンピュータ又はその他プログラム可能なデータプロセシング装置上に搭載されることも可能であるので、コンピュータ又はその他プログラム可能なデータプロセシング装置上で一連の動作段階が行われ、コンピュータで実行されるプロセスを生成してコンピュータ又はその他プログラム可能なデータプロセシング装置を行うインストラクションはブロック図の各ブロック及びフローチャートの各段階で説明された機能を実行するための段階を提供することも可能である。
【０１０７】
また、各ブロック又は各段階は、特定された論理的な（各）機能を実行するための１つ以上の実行可能なインストラクションを含むモジュール、セグメント又はコードの一部を示すことができる。また、幾つかの代替実施形態ではブロック又は段階で言及された機能が順序から外れて発生することも可能であることに注目しなければならない。例えば、相次いで示されている２つのブロック又は段階は、実際に実質的に同時に行われてもよく、又はそのブロック又は段階が時折該当する機能によって逆順で行われてもよい。
【０１０８】
以上の説明は、本発明の技術思想を例示的に説明したことに過ぎないものであって、本発明の属する技術分野における通常の知識を有する者であれば、本発明の本質的な特性から逸脱しない範囲で多様な修正及び変形が可能である。従って、本発明に開示された実施形態は、本発明の技術思想を限定するためのものではなく、説明するためのものであり、このような実施形態によって本発明の技術思想の範囲が限定されるものではない。本発明の保護範囲は、下記の請求範囲によって解釈されなければならず、それと同等な範囲内にあるあらゆる技術思想は、本発明の権利範囲に含まれるものとして解釈されるべきである。
【図１】
0005992622.tif 000002
【図２】
0005992622.tif 000003
【図３】
0005992622.tif 000004
【図４】
0005992622.tif 000005
【図５】
0005992622.tif 000006
【図６】
0005992622.tif 000007
【図７】
0005992622.tif 000008