(57)【特許請求の範囲】
【請求項１】
既知の通信相手を示す第１の通信相手情報を記憶する第１の記憶部と、
アプリケーションを実行可能な端末内の機能の利用や設定の変更に係る既知の権限を示す第１の権限情報を記憶する第２の記憶部と、
評価対象のアプリケーションの実行コードと、前記評価対象のアプリケーションによる端末内の機能の利用や設定の変更に係る権限を示す第２の権限情報とを含むアプリケーションファイルを記憶する第３の記憶部と、
前記実行コードを逆コンパイルし、前記実行コードに対応するソースコードを得る逆コンパイル部と、
前記ソースコードに含まれる、通信相手を示す第２の通信相手情報を抽出する抽出部と、
前記第１の通信相手情報と前記第２の通信相手情報とを比較する第１の比較部と、
前記第１の権限情報と前記第２の権限情報とを比較する第２の比較部と、
前記第１の比較部による比較の結果と、前記第２の比較部による比較の結果とに基づいて前記評価対象のアプリケーションの安全性を評価する評価部と、
を備えたことを特徴とするアプリケーション評価装置。
【請求項２】
前記第１の通信相手情報は、悪性の通信相手であると予め判明している通信相手の情報を含むことを特徴とする請求項１に記載のアプリケーション評価装置。
【請求項３】
前記第１の通信相手情報は、良性の通信相手であると予め判明している通信相手の情報を含むことを特徴とする請求項１または請求項２に記載のアプリケーション評価装置。
【請求項４】
前記第２の通信相手情報が示す通信相手のドメイン取得日時を検索する検索部をさらに備え、
前記評価部は、前記第１の比較部による比較の結果と、前記第２の比較部による比較の結果と、前記検索部による検索の結果とに基づいて前記評価対象のアプリケーションの安全性を評価する
ことを特徴とする請求項１〜請求項３のいずれか一項に記載のアプリケーション評価装置。
【請求項５】
前記第１の権限情報は、端末内に存在する情報を取得する権限の情報を含むことを特徴とする請求項１〜請求項４のいずれか一項に記載のアプリケーション評価装置。
【請求項６】
請求項１〜請求項５のいずれか一項に記載のアプリケーション評価装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションの安全性を評価するアプリケーション評価装置に関する。また、本発明は、本アプリケーション評価装置としてコンピュータを機能させるためのプログラムにも関する。
【背景技術】
【０００２】
汎用OS（オペレーティングシステム）を用いたオープンプラットフォームを採用する、スマートフォンと呼ばれる携帯情報端末が普及している。ネットワークを介して入手可能なアプリケーションをスマートフォンに導入することにより、スマートフォンの様々な機能を柔軟かつ容易に拡張することが可能である。しかし、アプリケーションの中には、利用者の許諾を伴わずに、端末に格納された個人情報を収集して外部に送信する悪性アプリケーションが存在する。特に、正規のアプリケーションを装いつつ、こうした不正な振る舞いを行うアプリケーションは、トロイの木馬と呼ばれ、その脅威に気付くことが困難である。
【０００３】
スマートフォンとPC（パーソナルコンピュータ）を比較した場合、スマートフォンは、利用者との結びつきがPCよりも緊密な機器であり、氏名、電話番号、メールアドレス、住所録、メールの送受信履歴、インターネットの閲覧履歴等の個人情報が集積している。また、端末の高機能化と、常に携帯されることから、従来のPCでは収集されなかった位置情報等の情報も容易に取得可能となり、情報が悪用される脅威に直面する。したがって、アプリケーションを容易に入手可能な環境において個人情報が悪用される脅威からスマートフォンの利用者を保護する必要がある。
【０００４】
スマートフォンの利用者を悪性アプリケーションによる脅威から保護する手法として、アプリケーションの安全性を事前に検証し、存在しうる脅威を評価する仕組みが有効である。従来、アプリケーションに付与された権限情報や、アプリケーションを実行して得られるログを解析することにより、顕在化した脅威を分析・評価する手法が提案されている（例えば非特許文献１〜３参照）。顕在化した脅威の分析・評価とは、アプリケーションを実行して得られるシステムのデバッグ情報や、システムコールの発行履歴情報、外部ネットワークとの通信履歴情報を収集し、個人情報の収集や、収集した情報の外部サイトへの送信など、アプリケーションの挙動を解析することで、脅威を具体的に算定する手法である。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】磯原、竹森、三宅、「システムコールログのキーワード検索による悪性アプリ検知」情報処理学会コンピュータセキュリティシンポジウム2010、2010年10月
【非特許文献２】磯原、竹森、窪田、高野、「Android向けアプリケーションの挙動に注目したマルウェア検知」、電子情報通信学会 SCIS2011、2011年1月
【非特許文献３】竹森、磯原、窪田、高野、「Android携帯電話上での情報漏洩検知」、電子情報通信学会 SCIS2011、2011年1月
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、従来の、顕在化した脅威を分析・評価する手法では、特定の脅威を見逃す可能性があった。例えば、ユーザが所定の手順で操作を行ったときに顕在化する脅威や、特定の日時になったときに顕在化する脅威など、特定の条件を満たしたときに初めて顕在化する脅威があり、これらの脅威を見逃す可能性があった。
【０００７】
本発明は、上述した課題に鑑みてなされたものであって、脅威が顕在化する条件に依存せずにアプリケーションの安全性を評価することができるアプリケーション評価装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、上記の課題を解決するためになされたもので、既知の通信相手を示す第１の通信相手情報を記憶する第１の記憶部と、アプリケーションを実行可能な端末内の機能の利用や設定の変更に係る既知の権限を示す第１の権限情報を記憶する第２の記憶部と、評価対象のアプリケーションの実行コードと、前記評価対象のアプリケーションによる端末内の機能の利用や設定の変更に係る権限を示す第２の権限情報とを含むアプリケーションファイルを記憶する第３の記憶部と、前記実行コードを逆コンパイルし、前記実行コードに対応するソースコードを得る逆コンパイル部と、前記ソースコードに含まれる、通信相手を示す第２の通信相手情報を抽出する抽出部と、前記第１の通信相手情報と前記第２の通信相手情報とを比較する第１の比較部と、前記第１の権限情報と前記第２の権限情報とを比較する第２の比較部と、前記第１の比較部による比較の結果と、前記第２の比較部による比較の結果とに基づいて前記評価対象のアプリケーションの安全性を評価する評価部と、を備えたことを特徴とするアプリケーション評価装置である。
【０００９】
また、本発明のアプリケーション評価装置において、前記第１の通信相手情報は、悪性の通信相手であると予め判明している通信相手の情報を含むことを特徴とする。
【００１０】
また、本発明のアプリケーション評価装置において、前記第１の通信相手情報は、良性の通信相手であると予め判明している通信相手の情報を含むことを特徴とする。
【００１１】
また、本発明のアプリケーション評価装置は、前記第２の通信相手情報が示す通信相手のドメイン取得日時を検索する検索部をさらに備え、前記評価部は、前記第１の比較部による比較の結果と、前記第２の比較部による比較の結果と、前記検索部による検索の結果とに基づいて前記評価対象のアプリケーションの安全性を評価することを特徴とする。
【００１２】
また、本発明のアプリケーション評価装置において、前記第１の権限情報は、端末内に存在する情報を取得する権限の情報を含むことを特徴とする。
【００１３】
また、本発明は、上記のアプリケーション評価装置としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【００１４】
本発明によれば、評価対象のアプリケーションの実行コードを逆コンパイルして得られるソースコードに含まれる通信相手の情報と、評価対象のアプリケーションに関する権限の情報とに基づいて評価対象のアプリケーションの安全性を評価することによって、脅威が顕在化する条件に依存せずにアプリケーションの安全性を評価することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態によるアプリケーション評価装置の構成を示すブロック図である。
【図２】本発明の一実施形態における悪性通信相手リストの内容を示す参考図である。
【図３】本発明の一実施形態における良性通信相手リストの内容を示す参考図である。
【図４】本発明の一実施形態における権限リストの内容を示す参考図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照し、本発明の実施形態を説明する。本実施形態によるアプリケーション評価装置は、汎用OSの一種であるAndroid（登録商標）上で動作する。
【００１７】
悪性アプリケーションによる不正な行為が行われる際、個人情報を漏洩する目的等で端末は外部のホスト等と通信を行うことがある。本実施形態によるアプリケーション評価装置は、評価対象のアプリケーションの実行コードを逆コンパイルして得られるソースコードから通信相手の情報を抽出し、解析を行う。この通信相手が、顕在化した脅威による通信の相手と一致するか否かを判定することによって、アプリケーションの安全性を評価することができる。
【００１８】
アプリケーションが処理を実行する際には、端末が有する機能の利用や設定の変更に係る権限が設定され、アプリケーションはその権限の範囲内で処理を実行することが可能である。アプリケーション評価装置は、上記の権限に係る権限情報の解析も行う。評価対象のアプリケーションの権限が、顕在化した脅威が利用する権限と一致するか否かを判定することによって、アプリケーションの安全性を評価することができる。ソースコードから抽出した通信相手の情報の解析および権限情報の解析を行うことにより、ユーザが所定の手順で操作を行う、あるいは特定の日時になる等の条件に依存せず、潜在的な脅威が行うであろう挙動を解析することが可能となる。
【００１９】
本実施形態では、通信相手の情報の解析および権限情報の解析を組み合わせてアプリケーションの安全性を評価している。権限情報の解析においては、特に、端末内に存在する情報を取得する権限を利用するアプリケーションの危険度が高くなるような条件のもとに解析が行われる。これによって、端末内に存在する情報を読み取って外部のホスト等へ送信する情報漏洩の脅威を検知することができる。
【００２０】
図１は、本発明の一実施形態によるアプリケーション評価装置の構成を示している。図１に示すように、アプリケーション評価装置は、アプリケーション記憶部１、逆コンパイル部２、通信相手抽出部３、通信相手リスト記憶部４、リスト比較部５、whois検索部６、権限リスト記憶部７、権限比較部８、および安全性評価部９を有する。アプリケーション記憶部１、通信相手リスト記憶部４、および権限リスト記憶部７は別個の記憶部として構成されているが、これらの記憶部は異なる記憶媒体上の記憶領域であってもよいし、同一の記憶媒体上の異なる記憶領域であってもよい。本実施形態によるアプリケーション評価装置は、例えば携帯端末用のアプリケーションを通信ネットワーク上で販売する販売サイトを管理する企業に設置される。
【００２１】
アプリケーション記憶部１は、評価対象のアプリケーションの実行ファイルであるパッケージファイル（アプリケーションファイル）を記憶する。パッケージファイルは、例えば拡張子が.apkのファイルであり、命令列を含む実行コード（例えば拡張子が.dex）、アプリケーションが利用する権限が定義されたマニフェストファイル（例えば拡張子が.xml）、アプリケーションが利用する画像ファイル（例えば拡張子が.jpg）等を含む。
【００２２】
逆コンパイル部２は、アプリケーション記憶部１に格納されているパッケージファイルから実行コードを読み出して逆コンパイルし、ソースファイルを得る。逆コンパイルの結果として得られるソースファイルは、例えば拡張子が.smaliまたは.ddxのファイルである。通信相手抽出部３は、アプリケーションが通信を行う際の通信相手のFQDN（ドメイン名）をソースファイルから抽出する。ソースファイル中には通信相手のFQDNが記載されており、通信相手抽出部３は例えば「http://」あるいは「https://」で始まる文字列を検索し、その文字列に続くFQDNを抽出する。
【００２３】
通信相手リスト記憶部４は、アプリケーションが通信を行う際の通信相手となりうる既知のFQDNを含む通信相手リストを記憶する。通信相手リスト記憶部４が記憶する通信相手リストには、悪性通信相手リストと良性通信相手リストの２種類がある。
【００２４】
悪性通信相手リストは、悪性の通信相手であると予め判明している（評価されている）既知の通信相手のFQDNのリストである。図２は悪性通信相手リストの一例を示している。悪性通信相手リストは、FQDN、そのFQDNを有するサイトの種別、および危険度を含む。危険度は、アプリケーションの安全性を評価する際の指標として用いられる。なお、MalwareDomainListのようなReputationDBから得られる情報を悪性通信相手リストに利用してもよい。
【００２５】
良性通信相手リストは、良性の通信相手であると予め判明している（評価されている）既知の通信相手のFQDNのリストである。図３は良性通信相手リストの一例を示している。良性通信相手リストは、FQDN、そのFQDNを有するサイトの種別、および危険度を含む。良性の通信相手の危険度は０となっている。
【００２６】
リスト比較部５は、通信相手リスト記憶部４から悪性通信相手リストおよび良性通信相手リストを読み出し、各リストに含まれるFQDNと、ソースファイルから抽出されたFQDNとを比較する。ソースファイルから抽出されたFQDNが、悪性通信相手リストまたは良性通信相手リストに含まれるFQDNのいずれかと一致した場合、リスト比較部５は、一致したFQDNに関連付けられている危険度の値とFQDNとの組を通信相手の判定結果として出力する。また、ソースファイルから抽出されたFQDNが、悪性通信相手リストまたは良性通信相手リストに含まれるFQDNのいずれとも一致しなかった場合、リスト比較部５は、危険度の値を１とし、その危険度とFQDNとの組を通信相手の判定結果として出力する。ソースファイルから複数のFQDNが抽出された場合には、それぞれのFQDNに対して上記の処理が行われる。
【００２７】
whois検索部６は、ソースファイルから抽出されたFQDNに対してwhois検索を行い、FQDNに対応するホストがドメイン名を取得した日時を得る。さらに、whois検索部６は、取得した日時と現在の日時との差が所定の時間内である場合に、危険度の値を３とし、その危険度とFQDNとの組をwhois検索結果として出力する。ソースファイルから複数のFQDNが抽出された場合には、それぞれのFQDNに対して上記の処理が行われる。ボットの踏み台ホストとして利用されるホストの特徴として、ボットの活動直前にドメイン名を取得するという特徴がある。したがって、ドメイン名の取得日時が新しいホストは悪性ホストである可能性がある。このことから、本実施形態では、ドメイン名の取得日時が新しい場合に、FQDNに対して高い危険度が付与される。
【００２８】
権限リスト記憶部７は、アプリケーションを実行可能な端末内の機能の利用や設定の変更に係る既知の全ての権限の一覧である権限リストを記憶する。図４は権限リストの一例を示している。権限リストは、権限を示すパーミッション、そのパーミッションを利用する脅威の種別、および危険度を含む。本実施形態では、個人情報の漏洩や位置情報の漏洩などの脅威に利用される、端末内の情報を取得する機能に係るパーミッションに対して、より高い危険度が付与されている。図４に示す例では、詳細な位置情報の取得に係るパーミッション、個人情報である電話番号や端末ID等の端末情報の取得に係るパーミッション、個人情報を含むメールや連絡先データの読み取り等のパーミッション等に対して、より高い危険度が付与されている。
【００２９】
権限比較部８は、アプリケーション記憶部１に格納されているマニフェストファイルから、評価対象のアプリケーションが利用する権限の情報（パーミッション）を読み出すと共に、権限リスト記憶部７から権限リストを読み出し、評価対象のアプリケーションが利用するパーミッションと、権限リストに含まれるパーミッションとを比較する。評価対象のアプリケーションが利用するパーミッションが、権限リストに含まれるパーミッションのいずれかと一致した場合、権限比較部８は、一致したパーミッションに関連付けられている危険度の値とパーミッションとの組を権限の判定結果として出力する。マニフェストファイルに複数のパーミッションが含まれる場合には、それぞれのパーミッションに対して上記の処理が行われる。
【００３０】
安全性評価部９は、通信相手の判定結果と、whois検索結果と、権限の判定結果とに基づいて、評価対象のアプリケーションの安全性を評価する。より具体的には、安全性評価部９は、通信相手の判定結果に含まれる危険度と、whois検索結果に含まれる危険度との中から最大の危険度を選択し、第１の危険度とする。また、安全性評価部９は、権限の判定結果に含まれる危険度の中から最大の危険度を選択し、第２の危険度とする。安全性評価部９は、第１の危険度の値と第２の危険度の値を掛け合わせた（掛け算した）値を評価対象のアプリケーションの安全性の評価値とする。この評価値が高いほど、アプリケーションは危険であり、この評価値が低いほど、アプリケーションは安全である。
【００３１】
上記のようにして得られた評価値を表示装置により表示してもよいし、記憶装置に記録してもよい。また、評価値と閾値を比較し、評価値が閾値を超えた場合にアプリケーションが危険であると判定し、評価値が閾値を超えない場合にアプリケーションが安全であると判定し、判定結果をアプリケーションの安全性の評価結果としてもよい。また、第１の危険度に関連付けられたFQDNやその種別、あるいは第２の危険度に関連付けられたパーミッションやその種別をアプリケーションの安全性の評価結果に含めてもよい。上記の評価値の算出方法は一例であり、他の算出方法を用いてもよい。また、上記の危険度も一例である。
【００３２】
上述したように、本実施形態によれば、評価対象のアプリケーションの実行コードを逆コンパイルして得られるソースコードに含まれる通信相手の情報と、評価対象のアプリケーションに関する権限の情報とに基づいて評価対象のアプリケーションの安全性を評価することによって、脅威が顕在化する条件に依存せずにアプリケーションの安全性を評価することができる。
【００３３】
また、悪性通信リストを用いることによって、情報漏洩等の潜在的な脅威を検知することが可能となり、潜在的な脅威の検知結果をアプリケーションの安全性の評価に反映することができる。
【００３４】
また、前述したように、通信相手の情報の解析では、ソースファイルから抽出されたFQDNのうち良性通信相手リストに含まれるFQDNと一致したFQDNの危険度は０となる。このように、良性のFQDNを明示的に判定することで、悪性のFQDNの判定結果と良性のFQDNの判定結果との両方をアプリケーションの安全性の評価に反映することができ、評価精度を向上することができる。
【００３５】
また、whois検索を行うことによって、ボット化したホストに個人情報が送信される潜在的な脅威を検知することが可能となり、潜在的な脅威の検知結果をアプリケーションの安全性の評価に反映することができる。本実施形態では、ソースコードから抽出された全てのFQDNに対して、悪性通信相手リストおよび良性通信相手リストを用いた判定およびwhois検索の両方を行っているが、ソースコードから抽出された全てのFQDNに対して、悪性通信相手リストおよび良性通信相手リストを用いた判定を行い、悪性通信相手リストにも良性通信相手リストにも登録されていないFQDNについてのみwhois検索を行ってもよい。
【００３６】
端末内の情報を取得し、かつ外部のホスト等と通信を行う場合、情報漏洩の可能性が高くなる。本実施形態では、権限情報の解析において、端末内に存在する情報を取得する権限に対してより高い危険度を付与することによって、潜在的な情報漏洩を検知することが可能となり、潜在的な情報漏洩の検知結果をアプリケーションの安全性の評価に反映することができる。
【００３７】
上述したアプリケーション評価装置は、その動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させることにより、実現される。ここで、「コンピュータ」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００３８】
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００３９】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【００４０】
１・・・アプリケーション記憶部（第３の記憶部）、２・・・逆コンパイル部、３・・・通信相手抽出部（抽出部）、４・・・通信相手リスト記憶部（第１の記憶部）、５・・・リスト比較部（第１の比較部）、６・・・whois検索部、７・・・権限リスト記憶部（第２の記憶部）、８・・・権限比較部（第２の比較部）、９・・・安全性評価部（評価部）
【図１】
0005651065.tif 000002
【図２】
0005651065.tif 000003
【図３】
0005651065.tif 000004
【図４】
0005651065.tif 000005