"評価対象のアプリケーションの実行コードを含むアプリケーションファイルを記憶する第1の記憶部と、アプリケーションを開発する際に使用可能なAPIApplicationProgramInterfaceを示すAPI情報を記憶する第2の記憶部と、前記実行コードを逆コンパイルし、前記実行コードに対応するソースコードを得る逆コンパイル部と、スクリプト言語で記述されたスクリプトを外部サーバから取得する設定に関する情報が前記ソースコードに含まれるか否かを判定する判定部と、前記スクリプトを外部サーバから取得する設定に関する情報が前記ソースコードに含まれると判定された場合に、前記ソースコードに基づいて、前記スクリプトが実行されることにより呼び出されるメソッドを特定する特定部と、前記ソースコードにおいて、前記特定部によって特定されたメソッドが記述されている部分に含まれる情報と前記API情報とを比較する比較部と、を備えたことを特徴とするアプリケーション解析装置。前記判定部は、前記スクリプトを外部サーバから取得する機能を利用するインスタンスを生成するコードが前記ソースコードに含まれるか否かを判定することを特徴とする請求項1に記載のアプリケーション解析装置。前記判定部はさらに、前記スクリプトの利用可否を決定するメソッドが前記ソースコードに含まれるか否かを判定することを特徴とする請求項2に記載のアプリケーション解析装置。前記判定部はさらに、外部サーバに自動で接続するメソッドが前記ソースコードに含まれるか否かを判定することを特徴とする請求項2または請求項3に記載のアプリケーション解析装置。前記特定部はさらに、特定したメソッドが実行されることにより呼び出されるメソッドを特定することを特徴とする請求項1~請求項3のいずれか一項に記載のアプリケーション解析装置。前記特定部はさらに、特定したメソッドが記述されている前記ソースコード内の領域において変数を参照するコードを特定した後、当該コードが参照する変数に入力される値を取得するメソッドを特定することを特徴とする請求項1~請求項5のいずれか一項に記載のアプリケーション解析装置。前記比較部は、前記ソースコードにおいて、前記特定部によって特定されたメソッドが記述されている部分に含まれる情報と前記API情報とを比較し、前記特定部によって特定されたメソッドが記述されている部分から、前記API情報が示すAPIと一致するAPIのコードを抽出することを特徴とする請求項1~請求項6のいずれか一項に記載のアプリケーション解析装置。前記API情報は、端末内に存在する情報を取得するAPIを示すことを特徴とする請求項1~請求項7のいずれか一項に記載のアプリケーション解析装置。請求項1~請求項8のいずれか一項に記載のアプリケーション解析装置としてコンピュータを機能させるためのプログラム。外部サーバのスクリプトを利用する悪性アプリケーションを検知する場合、動的解析静的解析のそれぞれの手法において、課題がある。悪性アプリケーションの挙動は、外部サーバから取得したスクリプトのコードの内容によって変化する。このため、動的解析における課題は、攻撃者が外部サーバのスクリプトを変更するだけでアプリケーションの挙動を変化させることができる点である。すなわち、ある時点でアプリケーションの動的解析を行うために取得した外部サーバのスクリプトに悪性コードが含まれない場合、悪性の挙動を見逃してしまう。また、端末内の情報を取得するメソッドはアプリケーションのプログラムに記述されるが、そのメソッドを実行するコードや、取得した情報を外部サーバに送信するコードは外部サーバのスクリプトに記述することが可能である。このため、静的解析における課題は、情報漏洩に関する全コードがアプリケーションのプログラムに存在するとは限らない点である。非特許文献4に記載された手法では、端末内の情報を取得するコードと、取得した情報を外部サーバに送信するコードとの両方が検証対象のアプリケーションに含まれていない限り、悪性アプリケーションを検知することができない。このため、外部サーバのスクリプトからアプリケーションのメソッドを実行して端末内の情報を取得し、取得した情報を外部サーバに送信する悪性の挙動を見逃してしまう。本発明は、上述した課題に鑑みてなされたものであって、外部サーバのスクリプトを利用するアプリケーションに潜在する脅威を推定することができるアプリケーション解析装置およびプログラムを提供することを目的とする。本発明は、上記の課題を解決するためになされたもので、評価対象のアプリケーションの実行コードを含むアプリケーションファイルを記憶する第1の記憶部と、アプリケーションを開発する際に使用可能なAPIApplicationProgramInterfaceを示すAPI情報を記憶する第2の記憶部と、前記実行コードを逆コンパイルし、前記実行コードに対応するソースコードを得る逆コンパイル部と、スクリプト言語で記述されたスクリプトを外部サーバから取得する設定に関する情報が前記ソースコードに含まれるか否かを判定する判定部と、前記スクリプトを外部サーバから取得する設定に関する情報が前記ソースコードに含まれると判定された場合に、前記ソースコードに基づいて、前記スクリプトが実行されることにより呼び出されるメソッドを特定する特定部と、前記ソースコードにおいて、前記特定部によって特定されたメソッドが記述されている部分に含まれる情報と前記API情報とを比較する比較部と、を備えたことを特徴とするアプリケーション解析装置である。また、本発明のアプリケーション解析装置において、前記判定部は、前記スクリプトを外部サーバから取得する機能を利用するインスタンスを生成するコードが前記ソースコードに含まれるか否かを判定することを特徴とする。また、本発明のアプリケーション解析装置において、前記判定部はさらに、前記スクリプトの利用可否を決定するメソッドが前記ソースコードに含まれるか否かを判定することを特徴とする。また、本発明のアプリケーション解析装置において、前記判定部はさらに、外部サーバに自動で接続するメソッドが前記ソースコードに含まれるか否かを判定することを特徴とする。また、本発明のアプリケーション解析装置において、前記特定部はさらに、特定したメソッドが実行されることにより呼び出されるメソッドを特定することを特徴とする。また、本発明のアプリケーション解析装置において、前記特定部はさらに、特定したメソッドが記述されている前記ソースコード内の領域において変数を参照するコードを特定した後、当該コードが参照する変数に入力される値を取得するメソッドを特定することを特徴とする。また、本発明のアプリケーション解析装置において、前記比較部は、前記ソースコードにおいて、前記特定部によって特定されたメソッドが記述されている部分に含まれる情報と前記API情報とを比較し、前記特定部によって特定されたメソッドが記述されている部分から、前記API情報が示すAPIと一致するAPIのコードを抽出することを特徴とする。また、本発明のアプリケーション解析装置において、前記API情報は、端末内に存在する情報を取得するAPIを示すことを特徴とする。また、本発明は、上記のアプリケーション解析装置としてコンピュータを機能させるためのプログラムである。本発明によれば、アプリケーションの実行コードを逆コンパイルして得たソースコードを用いて、スクリプトを外部サーバから取得する設定に関する情報がソースコードに含まれるか否かを判定することによって、外部サーバのスクリプトの利用の有無が分かる。また、スクリプトが実行されることにより呼び出されるメソッドを特定し、ソースコードにおいて、特定されたメソッドが記述されている部分に含まれる情報とAPI情報とを比較することによって、スクリプトの実行により実行される端末の機能が分かる。したがって、外部サーバのスクリプトを利用するアプリケーションに潜在する脅威を推定することができる。以下、図面を参照し、本発明の実施形態を説明する。本発明の一実施形態によるアプリケーション解析装置は、アプリケーションの実行コードを逆コンパイルして得られるソースコードを解析し、スクリプトスクリプトプログラムを外部サーバから取得する設定に関する情報の有無を確認する。また、アプリケーション解析装置は、ソースコードを解析し、スクリプトが実行されることにより呼び出されるメソッドを特定し、特定されたメソッドにおいて、情報漏洩に関するAPIの有無を確認する。スクリプトを外部サーバから取得する設定に関する情報がソースコードに含まれる場合、アプリケーションが外部サーバのスクリプトを利用する可能性がある。また、スクリプトが実行されることにより呼び出されるメソッドに、情報漏洩に関するAPIが含まれる場合、スクリプトの実行によって、端末内の情報が取得される可能性がある。したがって、スクリプトを外部サーバから取得する設定に関する情報がソースコードに含まれるという条件と、スクリプトが実行されることにより呼び出されるメソッドに、情報漏洩に関するAPIが含まれるという条件の両方が満たされる場合には、アプリケーションが外部サーバのスクリプトを利用して端末内の情報を取得する脅威があると推定することができる。以下、本実施形態によるアプリケーション解析装置の構成を説明する。図1は、アプリケーション解析装置の構成を示している。図1に示すように、アプリケーション解析装置は、アプリケーション記憶部1、逆コンパイル部2、設定判定部3、メソッド特定部4、悪性APIリスト記憶部5、脅威推定部6、および表示部7を有する。アプリケーション記憶部1および悪性APIリスト記憶部5は別個の記憶部として構成されているが、これらの記憶部は異なる記憶媒体上の記憶領域であってもよいし、同一の記憶媒体上の異なる記憶領域であってもよい。本実施形態によるアプリケーション解析装置は、例えば携帯端末用のアプリケーションを通信ネットワーク上で販売する販売サイトを管理する企業に設置される。アプリケーション記憶部1は、解析対象のアプリケーションの実行ファイルであるパッケージファイルアプリケーションファイルを記憶する。パッケージファイルは、例えば拡張子がapkのファイルであり、命令列を含む実行コード例えば拡張子がdex、アプリケーションが利用する権限が定義されたマニフェストファイル例えば拡張子がxml、アプリケーションが利用する画像ファイル例えば拡張子がjpg等を含む。逆コンパイル部2は、解析対象のアプリケーションの実行コードを逆コンパイルし、ソースコードソースファイルを得る。逆コンパイルの結果として得られるソースコードは、例えば拡張子がddxのファイルである。図2は、実行ファイルを逆コンパイルすることにより得られるソースコードを示している。ソースコードは、クラス毎のファイルに分かれており、図2に示す例では、ソースコードは、拡張子がddxである8個のファイルに分かれている。設定判定部3は、スクリプト言語本実施形態ではJavaScript登録商標で記述されたスクリプトを外部サーバから取得する設定に関する情報がソースコードに含まれるか否かを判定する。メソッド特定部4は、スクリプトが実行されることにより呼び出されるメソッドをソースコードから特定する。悪性APIリスト記憶部5は、アプリケーションを開発する際に使用可能な命令や関数の集合であるAPIのうち、悪性アプリケーションで利用されやすい、情報漏洩に関係するAPIのリストである悪性APIリストAPI情報を記憶する。図3は悪性APIリストの一例を示している。悪性APIリストは、ソースコード中に出現するAPIの文字列と、APIが実行されたときの脅威の種別と、その脅威の危険度とが関連付けられた表形式のリストである。図3では、端末内に存在する端末識別番号や、端末電話番号、OSのバージョン情報、SIMSubscriberIdentityModuleの固有番号、アカウント情報を取得するAPIが登録されている。危険度は、Low、Medium、Highの3段階で表され、危険度が高くなるほど、アプリケーションを実行した場合のユーザへのリスクが高まる。脅威推定部6は、ソースコードにおいて、メソッド特定部4によって特定されたメソッドが記述されている部分に含まれる情報と悪性APIリスト内の悪性APIの文字列とを比較し、ソースコード内の悪性APIの有無を確認することにより、アプリケーションに潜在する脅威を推定する。表示部7は、アプリケーションの解析結果等を表示する。次に、アプリケーション解析装置の動作を説明する。図4はアプリケーション解析装置の動作を示している。まず、逆コンパイル部2は、アプリケーション記憶部1に格納されている解析対象のアプリケーションのパッケージファイルから実行コードを読み出して逆コンパイルし、ソースファイルを得るステップS100。続いて、設定判定部3は、ステップS100で得られたソースコードに基づいて、WebViewを利用する設定に関する解析を行うステップS105。より具体的には、設定判定部3は以下の処理を行う。設定判定部3は、ステップS100で得られた全てのソースコードに対して、WebViewのインスタンスを生成するコードnewinstanceとandrdwebkitWebViewを検索する。コードの検索は、文字列のパターンマッチングにより行われる。これは、以下のコードの検索においても同様である。図5は、WebViewのインスタンスを生成するコードの一例を示している。図5に示す例では、1行目にWebViewのインスタンスを生成するコードnewinstanceとandrdwebkitWebViewを含む文字列があり、このコードが発見される。前述したように、WebViewクラスを利用して外部サーバのスクリプトからアプリケーションのメソッドを呼び出すことが可能となる。このため、WebViewのインスタンスを生成するコードが存在する場合、アプリケーションがスクリプトを外部サーバから取得すると推定することができる。ステップS105に続いて、設定判定部3は、ステップS105における解析の結果に基づいて、解析対象のアプリケーションがWebViewを使用しているか否かを判定するステップS110。WebViewのインスタンスを生成するコードが発見されなかった場合、解析対象のアプリケーションはWebViewを使用していないので、設定判定部3は、アプリケーションに潜在する脅威はないと判定し、この判定の結果をステップS105の処理結果として脅威推定部6に通知する。この後、処理はステップS155に進む。また、WebViewのインスタンスを生成するコードが発見された場合、解析対象のアプリケーションはWebViewを使用しているので、アプリケーションに脅威が潜在する可能性がある。この場合、設定判定部3は、ステップS100で得られたソースコードに基づいて、スクリプトを利用する設定に関する解析を行うステップS115。より具体的には、設定判定部3は以下の処理を行う。設定判定部3は、ステップS100で得られた全てのソースコードに対して、スクリプトの利用可否を決定するメソッド名andrdwebkitWebSettingssetJSEnabledを検索する。図6は、スクリプトの利用可否を決定するコードの一例を示している。図6に示す例では、2行目にスクリプトの利用可否を決定するメソッド名andrdwebkitWebSettingssetJSEnabledがあり、このメソッド名が発見される。このメソッド名が存在する場合、設定判定部3は、メソッド名の第2引数v3を特定する。その後、設定判定部3は、メソッド名が存在したソースコードにおいて、第2引数を生成している箇所に遡り、その第2引数に代入される値を確認する。図6に示す例では、1行目で第2引数に値が代入されている。値が0であった場合、スクリプトの利用が無効であり、値が1であった場合、スクリプトの利用が有効である。スクリプトの利用が有効である場合、アプリケーションがスクリプトを外部サーバから取得すると推定することができる。ステップS115に続いて、設定判定部3は、ステップS115における解析の結果に基づいて、解析対象のアプリケーションにおいてスクリプトの利用が有効であるか否かを判定するステップS120。スクリプトの利用が無効であった場合、あるいは、スクリプトの利用可否を決定するメソッド名が存在しなかった場合、アプリケーションはスクリプトを使用しないので、設定判定部3は、アプリケーションに潜在する脅威はないと判定し、この判定の結果をステップS115の処理結果として脅威推定部6に通知する。この後、処理はステップS155に進む。また、スクリプトの利用が有効であった場合、設定判定部3は、ステップS100で得られたソースコードに基づいて、外部サーバへ自動で接続する設定に関する解析を行うステップS125。外部サーバへ自動で接続する設定がなされていなくても、ユーザの操作により端末が外部サーバへ接続して外部のスクリプトを利用することは可能である。しかし、外部サーバへ自動で接続する設定がなされている場合、アプリケーションが起動するのと同時に、ユーザにスクリプトの実行を認識させることなくスクリプトが実行される可能性があるため、端末が脅威に晒される確率が増す。このため、設定判定部3は、外部サーバへ自動で接続する設定の有無を確認する。より具体的には、設定判定部3は以下の処理を行う。設定判定部3は、ステップS100で得られた全てのソースコードに対して、外部サーバへ接続するメソッド名andrdwebkitWebViewloadUrlを検索する。図7は、外部サーバへ自動で接続するコードの一例を示している。図7に示す例では、2行目に外部サーバへ自動で接続するメソッド名andrdwebkitWebViewloadUrlがあり、このメソッド名が発見される。このメソッド名が存在する場合、設定判定部3は、メソッド名の第2引数v2を特定する。この第2引数は、接続先のURLを示している。その後、設定判定部3は、メソッド名が存在したソースコードにおいて、第2引数を生成している箇所に遡り、その第2引数に代入されるURLを確認する。図7に示す例では、1行目で第2引数にURLhttpwwwakuseijscriptcomが代入されている。設定判定部3は、外部サーバへ自動で接続するメソッド名の有無をステップS125の処理結果として脅威推定部6に通知する。また、外部サーバへ自動で接続するメソッド名が存在した場合には、設定判定部3は、接続先のURLもステップS125の処理結果として脅威推定部6に通知する。ステップS125に続いて、メソッド特定部4は、ステップS100で得られたソースコードに基づいて、スクリプトから呼び出されるメソッドを定義するクラスに関する解析を行うステップS130。より具体的には、メソッド特定部4は以下の処理を行う。メソッド特定部4は、ステップS100で得られた全てのソースコードに対して、スクリプトから呼び出されるオブジェクトを設定するメソッド名andrdwebkitWebViewaddJsInterfaceを検索する。図8は、スクリプトから呼び出されるメソッドを定義するコードの一例を示している。図8に示す例では、4行目にスクリプトから呼び出されるメソッドを定義するメソッド名andrdwebkitWebViewaddJsInterfaceがあり、このメソッド名が発見される。このメソッド名が存在する場合、メソッド特定部4は、メソッド名の第2引数v0を特定する。その後、メソッド特定部4は、メソッド名が存在したソースコードにおいて、第2引数を生成しているコードnewinstanceを検索し、第2引数に設定されるクラス名を確認する。図8に示す例では、1行目で第2引数v0が生成され、クラス名MainJsObjectが設定されている。スクリプトから呼び出されるメソッドを定義するクラスが設定されている場合、スクリプトが実行されることによりアプリケーション内のメソッドが呼び出されて実行される可能性がある。ステップS130における解析では、アプリケーション内のメソッドを呼び出すスクリプトが、外部サーバから取得したスクリプトであるか否かは分からない。しかし、ステップS130における解析結果をステップS105,S115,S125における解析結果と総合することにより、アプリケーションが外部サーバから取得したスクリプトが実行されることによりアプリケーション内のメソッドが呼び出されて実行されると推定することができる。ステップS130に続いて、メソッド特定部4は、ステップS130における解析の結果に基づいて、解析対象のアプリケーションにおいて、スクリプトから呼び出されるメソッドを定義するクラスが存在するか否かを判定するステップS135。スクリプトから呼び出されるメソッドを定義するクラスが存在しなかった場合スクリプトから呼び出されるオブジェクトを設定するメソッド名が存在しなかった場合、アプリケーションにはスクリプトから呼び出されるメソッドが存在しないので、メソッド特定部4は、アプリケーションに潜在する脅威はないと判定し、この判定の結果をステップS130の処理結果として脅威推定部6に通知する。この後、処理はステップS155に進む。また、スクリプトから呼び出されるメソッドを定義するクラスが存在した場合スクリプトから呼び出されるオブジェクトを設定するメソッド名が存在した場合、メソッド特定部4は、特定したクラス内のソースコードの記述から、そのクラスに含まれる全てのメソッドの領域を特定するステップS140。メソッドの領域は、文字列methodと文字列endmethodとで挟まれた領域である。メソッド特定部4は、文字列のパターンマッチングによりメソッドの領域を特定する。メソッド特定部4は、特定したメソッドの領域をステップS140の処理結果として脅威推定部6に通知する。ステップS140では、スクリプトから実行可能なメソッドを定義するクラス内のメソッドを特定したが、特定したメソッド内で更に他のクラスのメソッドを呼び出すことが考えられる。このため、より詳細な解析を行うには、スクリプトから実行可能なメソッドに加えて、そのメソッドから呼び出される他のクラスのメソッドも特定することがより望ましい。ステップS140に続いて、メソッド特定部4は、ステップS140で特定したメソッドから呼び出される他のクラスのメソッドの領域を特定するステップS145。より具体的には、メソッド特定部4は以下の処理を行う。メソッド特定部4は、ステップS140で特定したメソッドの領域の記述に基づいて、他のクラスを呼び出しているコードnewinstanceを検索し、そのコードの記述からクラス名を特定する。図9は、他のクラスのメソッドを呼び出すメソッドを実行するコードの一例を示している。図9に示す例では、1行目に他のクラスのメソッドを呼び出すメソッドを実行するコードnewinstanceがあり、クラス名Leakが設定されている。続いて、メソッド特定部4は、メソッドを実行するコードinvokevirtualと、特定したクラス名Leakと文字列Ljavalangとを検索することにより、他のクラスのメソッドを呼び出すメソッド名を特定する。図9に示す例では、2行目において、Leakクラスのインスタンスが生成され、startleakというString型のメソッドが実行されている。さらに、メソッド特定部4は、特定したクラスのソースコードにおいて、特定したメソッドの領域を特定する。図2に示したように、ソースコードはクラス毎に分かれており、メソッド特定部4は、特定したクラスのソースコードを選択し、そのソースコードに基づいてメソッドの領域を特定する。図10は、Leakクラスのstartleakメソッドのコードの一例を示している。図10に示すように、メソッド名startleakが含まれ、文字列methodと文字列endmethodとで挟まれた領域がメソッドの領域として特定される。メソッド特定部4は、特定したメソッドの領域をステップS145の処理結果として脅威推定部6に通知する。より詳細な解析を行うためには、ステップS145で特定したメソッドの領域において、ステップS145で特定したメソッドから呼び出される他のクラスのメソッドの領域を特定する処理を行ってもよい。このように、特定したメソッドの領域において、そのメソッドから呼び出される他のクラスのメソッドを特定するという処理を繰り返し行ってもよい。ステップS145に続いて、メソッド特定部4は、ステップS140,S145で特定したメソッドにおける変数の参照に関する解析を行うステップS150。より具体的には、メソッド特定部4は以下の処理を行う。メソッド特定部4は、ステップS140,S145で得られた全てのメソッドの記述に対して、変数を参照するコードigetobjectと文字列Ljavalangとを検索することにより、呼び出されるクラス名と変数名を特定する。図11は、変数を参照するコードの一例を示している。図11に示す例では、1行目に変数を参照するコードigetobjectがあり、Mainクラスに定義されたvariableというString型の変数が参照されている。続いて、メソッド特定部4は、特定したクラスのソースコードを選択し、そのソースコードに基づいて、特定した変数に値を代入するコードiputobjectを検索し、その変数に入力される値を取得するメソッドの領域を特定する。図12は、変数に値を代入するコードの一例を示している。図12に示す例では、3行目に変数variableに値を代入するコードiputobjectがあり、このコード名が発見される。変数に代入する値を取得するコードは、同じメソッド内において、変数に値を代入するコードよりも前に記述される。図12に示す例では、3行目で第1引数であるv1の値が変数variableに代入されており、1行目でgetLine1Numberを実行して取得した値が2行目で第1引数v1に入力されている。メソッド特定部4は、メソッドの先頭位置から変数に値を代入するコードが記述されている位置までの領域をメソッドの領域として特定する。図12に示す例では、文字列methodと文字列iputobjectとで挟まれた領域がメソッドの領域として特定される。メソッド特定部4は、特定したメソッドの領域をステップS150の処理結果として脅威推定部6に通知する。ステップS150に続いて、脅威推定部6は、前のステップの処理結果に基づいて、アプリケーションに潜在する脅威を推定するステップS155。より具体的には、脅威推定部6は以下の処理を行う。ステップS110,S120,S135のいずれかにおいて、アプリケーションに潜在する脅威はないと判定された場合、脅威推定部6は、アプリケーションに潜在する脅威がないことを示す情報を表示部7に表示する。また、ステップS140,S145,S150の処理結果が脅威推定部6に通知された場合、脅威推定部6は、悪性APIリスト記憶部5から悪性APIリストを読み出し、ステップS140,S145,S150のそれぞれにおいて特定したメソッドの領域の記述と、APIリストに含まれるAPIの名称とを比較して文字列のパターンマッチングを行い、APIリストに含まれるAPIの名称と一致する文字列を検索する。APIリストに含まれるAPIの名称と一致する文字列が全くなかった場合、脅威推定部6は、アプリケーションに潜在する脅威がないことを示す情報を表示部7に表示する。また、APIリストに含まれるAPIの名称と一致する文字列があった場合、脅威推定部6は、一致したAPIの名称および危険度の一覧と、ステップS125における処理結果である、外部サーバへ自動で接続するメソッド名の有無と、接続先のURLとを表示部7に表示する。この表示によって、アプリケーションに潜在する脅威をユーザに通知することができる。図13は、APIリストに含まれるAPIの名称と一致する文字列を含むコードを抽出した一例を示している。図13に示す例では、端末の識別番号を取得するgetDeviceIdと、端末の電話番号を取得するgetLine1Numberと、アカウント情報を取得するgetAccountsとが抽出されている。表示部7が表示する内容は、適宜、変更することが可能である。例えば、脅威推定部6が、APIリストに含まれるAPIの名称と一致したAPIの数を計算し、その数を危険度の評価値として表示部7に表示してもよい。あるいは、予めAPIリストの危険度を数値化しておき、脅威推定部6が、APIリストに含まれるAPIの名称と一致したAPIの危険度の数値を合計し、その合計値を危険度の評価値として表示部7に表示してもよい。上述したように、本実施形態によれば、アプリケーションの実行コードを逆コンパイルして得たソースコードを用いて、スクリプトを外部サーバから取得する設定に関する解析を行うと共に、スクリプトが実行されることにより呼び出されるメソッドの記述から、悪性APIリストに含まれるAPIと一致するAPIを抽出することによって、外部サーバのスクリプトを利用するアプリケーションに潜在する脅威を推定することができる。また、ステップS105において、スクリプトを外部サーバから取得する機能を利用するインスタンスを生成するコードに関する解析を行うことによって、アプリケーションがスクリプトを外部サーバから取得するか否かを推定することができる。同様に、ステップS120において、スクリプトの利用可否を決定するメソッドに関する解析を行うことによって、あるいは、ステップS125において、外部サーバに自動で接続するメソッドに関する解析を行うことによって、アプリケーションがスクリプトを外部サーバから取得するか否かを推定することができる。また、ステップS145において、ステップS140で特定したメソッドが実行されることにより呼び出されるメソッドを特定することによって、あるいは、ステップS150において、変数を参照するコードを特定した後、そのコードが参照している変数に入力される値を取得するメソッドを特定することによって、アプリケーションに潜在する脅威となるAPIが記述される領域を特定することができる。さらに、脅威となるAPIを実行するコードの検知漏れをより低減することができる。また、端末内に存在する情報を取得するAPIの情報で悪性APIリストを構成することによって、外部サーバのスクリプトを利用するアプリケーションに潜在する情報漏洩の脅威を推定することができる。上述したアプリケーション解析装置は、その動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させることにより、実現される。ここで、コンピュータは、WWWシステムを利用している場合であれば、ホームページ提供環境あるいは表示環境も含むものとする。また、コンピュータ読み取り可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらにコンピュータ読み取り可能な記録媒体とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリRAMのように、一定時間プログラムを保持しているものも含むものとする。また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する伝送媒体は、インターネット等のネットワーク通信網や電話回線等の通信回線通信線のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル差分プログラムであってもよい。以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。"