JP2013065168A - Application analyzer and program - Google Patents
Application analyzer and program Download PDFInfo
- Publication number
- JP2013065168A JP2013065168A JP2011203010A JP2011203010A JP2013065168A JP 2013065168 A JP2013065168 A JP 2013065168A JP 2011203010 A JP2011203010 A JP 2011203010A JP 2011203010 A JP2011203010 A JP 2011203010A JP 2013065168 A JP2013065168 A JP 2013065168A
- Authority
- JP
- Japan
- Prior art keywords
- application
- api
- analysis
- analysis unit
- source code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
Description
本発明は、アプリケーションの機能を解析するアプリケーション解析装置に関する。また、本発明は、本アプリケーション解析装置としてコンピュータを機能させるためのプログラムにも関する。 The present invention relates to an application analysis apparatus that analyzes application functions. The present invention also relates to a program for causing a computer to function as the application analysis apparatus.
汎用OS(オペレーティングシステム)を用いたオープンプラットフォームを採用する、スマートフォンと呼ばれる携帯情報端末が普及している。また、スマートフォンに搭載される汎用OSとして、端末で管理される情報や機能を利用するための命令や関数の集合であるAPI(Application Program Interface) が豊富に用意されているAndroid(登録商標) OS が注目を集めている。本明細書では一例として、Android(登録商標) OSを搭載したスマートフォンについて記載する。 Portable information terminals called smartphones that use an open platform using a general-purpose OS (operating system) have become widespread. In addition, as a general-purpose OS installed in smartphones, Android (registered trademark) OS that has abundant API (Application Program Interface) that is a set of instructions and functions for using information and functions managed by the terminal Has attracted attention. As an example, this specification describes a smartphone equipped with an Android (registered trademark) OS.
スマートフォンは、誰もが自由にアプリケーションを開発して公開でき、公開されたアプリケーションをユーザが自由にインストールできるプラットフォームである。公開されたアプリケーションをスマートフォンに導入することにより、スマートフォンの様々な機能を柔軟かつ容易に拡張することができる。 A smartphone is a platform that allows anyone to freely develop and publish applications and allow users to freely install published applications. By introducing a published application to a smartphone, various functions of the smartphone can be expanded flexibly and easily.
しかし、アプリケーションの中には、ユーザに気付かれないように、端末内の情報を収集して外部に送信する悪性アプリケーションが存在する。特に、正規のアプリケーションを装いつつ、こうした不正な振る舞いを行うアプリケーションはトロイの木馬と呼ばれており、ユーザがその脅威に気付くことは困難である。 However, among applications, there is a malicious application that collects information in a terminal and transmits it to the outside so that the user does not notice it. In particular, an application that impersonates a legitimate application and performs such illegal behavior is called a Trojan horse, and it is difficult for the user to notice the threat.
スマートフォンには、電話やカメラを制御するAPIが設けられており、アプリケーションがAPIを利用して発呼や、SMS通信、写真撮影を行うことができる。これらの行為を悪意のアプリケーションが密かに行った場合、勝手な課金やプライバシの漏洩が発生する。 Smartphones have APIs that control phones and cameras, and applications can make calls, send SMS messages, and take photos using the APIs. If these actions are secretly performed by a malicious application, self-accounting and privacy leakage will occur.
また、スマートフォンは、ユーザとの結びつきがPC(パーソナルコンピュータ)よりも緊密な機器であり、電話番号、メールアドレス、住所録、メールの送受信履歴、インターネットの閲覧履歴等の個人情報が集積している。また、端末の高機能化と、常に携帯される利用形態とから、従来のPCでは収集されなかった位置情報等の情報も容易に取得可能となり、情報が悪用される脅威に直面する。 Smartphones are more closely connected to users than PCs (personal computers), and they collect personal information such as phone numbers, e-mail addresses, address books, e-mail transmission / reception histories, and Internet browsing histories. . In addition, because of the high functionality of the terminal and the mode of use that is always carried, it is possible to easily acquire information such as location information that was not collected by conventional PCs, and face the threat of misuse of information.
また、スマートフォンでは、ユーザが明示的に操作を行ってアプリケーションを起動できる機能以外にも、端末の状態の変化に応じてアプリケーションが自動的に起動する機能がある。例えば、電話の着信があった、端末が再起動した、WiFiがオンになった等の端末の状態の変化によってアプリケーションを自動的に起動させることができる。よって、ユーザが誤って悪性アプリケーションを一旦端末にインストールしてしまうと、ユーザの知らないうちに情報漏洩が発生する可能性がある。したがって、アプリケーションを容易に入手可能な環境において情報が悪用される脅威からユーザを保護する必要がある。 In addition, the smartphone has a function of automatically starting the application in response to a change in the state of the terminal, in addition to a function that allows the user to explicitly operate to start the application. For example, the application can be automatically started by a change in the state of the terminal such as an incoming call, a terminal restarted, or WiFi turned on. Therefore, once a user mistakenly installs a malicious application on a terminal, information leakage may occur without the user's knowledge. Therefore, there is a need to protect users from threats where information is misused in environments where applications are readily available.
ユーザを悪性アプリケーションによる脅威から保護する手法として、アプリケーションの安全性を事前に検証し、悪性アプリケーションを検知する仕組みが有効である。情報漏洩を行うアプリケーションを検知する手法として、動的解析および静的解析の手法が提案されている。 As a technique for protecting users from threats caused by malicious applications, a mechanism for verifying application safety in advance and detecting malicious applications is effective. Dynamic analysis and static analysis methods have been proposed as methods for detecting applications that leak information.
動的解析とは、実際にアプリケーションを動作させ、アプリケーションの振る舞いが記録されたログを解析することで、アプリケーションの悪性/良性判定を行う手法である(例えば、非特許文献1参照)。代表的な解析方法として、straceログの情報を用いた手法がある。この手法は、アプリケーションがシステムの機能を利用した際にログに記録された情報から悪性の挙動を解析する手法である。しかしながら、この手法では、外部に送信する情報が暗号化されていた場合、悪性の挙動を検知することができない。また、アプリケーションがタイマー機能を持ち、アプリケーションが起動してから10時間後に悪性の挙動が発生するなどの設定が行われていることもあり、長時間の監視が必要になるなど、悪性の挙動を検知することが難しくなるといった課題がある。 The dynamic analysis is a method for determining malignancy / benignity of an application by actually operating the application and analyzing a log in which the behavior of the application is recorded (see, for example, Non-Patent Document 1). As a typical analysis method, there is a method using information of an strace log. This method is a method for analyzing malignant behavior from information recorded in a log when an application uses a system function. However, with this method, when information to be transmitted to the outside is encrypted, malignant behavior cannot be detected. In addition, the application has a timer function, and it may be configured that malignant behavior occurs 10 hours after the application starts, so it is necessary to monitor for a long time. There is a problem that it is difficult to detect.
一方、静的解析とは、アプリケーションの実行コードのディスアセンブルを行ってアプリケーションのソースコードを取得し、そのソースコードから悪性の挙動を解析する手法である。非特許文献2には、静的解析を用いてスマートフォン用のアプリケーションを検査し、解析対象のアプリケーションが情報漏洩アプリケーションか否かを判定する手法が記載されている。この手法では、具体的には、個人情報を取得するAPIと、外部に情報を送信するAPIとが繋がるかどうかを解析している。また、個人情報を取得するAPIが実行されるタイミングと、外部に情報を送信するAPIが実行されるタイミングとの間で、情報の利用に関するユーザの承諾(同意)の操作が行われるかどうかを考慮している。
On the other hand, the static analysis is a method of disassembling the execution code of the application to acquire the source code of the application and analyzing the malignant behavior from the source code. Non-Patent
非特許文献2に記載された手法では、個人情報を取得するAPIが実行されるタイミングと、外部に情報を送信するAPIが実行されるタイミングとの間でユーザの承諾の操作が行われることを良性アプリケーションの特徴としている。しかし、この手法では、ユーザが承諾のための操作を行うタイミングとして上記以外のタイミング(例えばアプリケーションの起動直後のタイミング)は考慮されていない。このため、ユーザによる明示的な承諾の操作が行われてから個人情報の取得および外部への情報送信を行うように構成された良性アプリケーションを解析した場合に、個人情報を取得するAPIが実行されるタイミングと、外部に情報を送信するAPIが実行されるタイミングとの間でユーザの承諾の操作が行われないことが分かると、悪性アプリケーションとして誤検知する可能性があった。
In the method described in Non-Patent
本発明は、上述した課題に鑑みてなされたものであって、ユーザが端末に対して行う操作を考慮してアプリケーションの良性/悪性を判定する従来の手法で発生しうる悪性アプリケーションの誤検知を低減することができるアプリケーション解析装置およびプログラムを提供することを目的とする。 The present invention has been made in view of the above-described problems, and detects erroneous detection of a malignant application that may occur in a conventional method of determining benign / malignant application in consideration of an operation performed by a user on a terminal. An object of the present invention is to provide an application analysis apparatus and a program that can be reduced.
本発明は、上記の課題を解決するためになされたもので、解析対象のアプリケーションの実行コードをディスアセンブルし、前記実行コードに対応するソースコードを得るディスアセンブル部と、端末内の情報を取得する第1のAPI(Application Program Interface)および情報を外部の機器へ送信する第2のAPIを前記ソースコードから抽出する抽出部と、前記ソースコードを解析し、前記抽出部によって抽出されたAPIを実行するメソッドを特定し、特定したメソッドが、アプリケーションの起動している状態でユーザが端末上で行う操作に起因しないイベントの発生に基づいて実行されるか否かを判定する解析部と、前記第1のAPIおよび前記第2のAPIが、アプリケーションの起動している状態でユーザが端末上で行う操作に起因しないイベントの発生に基づいて実行されると判定された場合に、前記解析対象のアプリケーションが悪性であると判定する判定部と、を備えたことを特徴とするアプリケーション解析装置である。 The present invention has been made to solve the above-described problem, and disassembles an execution code of an application to be analyzed, obtains a source code corresponding to the execution code, and acquires information in the terminal A first API (Application Program Interface) to be transmitted and a second API for transmitting information to an external device, and an extraction unit for extracting the API extracted from the source code by analyzing the source code An analysis unit that identifies a method to be executed and determines whether the identified method is executed based on an occurrence of an event that is not caused by an operation performed on a terminal by a user while the application is running; Occurrence of an event not caused by an operation performed by the user on the terminal while the application is running in the first API and the second API If it is determined to be executed on the basis of an application analyzing apparatus characterized by comprising: a determination unit and the analysis target application is malignant.
また、本発明のアプリケーション解析装置において、前記解析部は、前記ソースコードを解析し、前記抽出部によって抽出されたAPIを実行するメソッドを特定し、さらに、特定したメソッドを実行する他のメソッドを特定し、特定した他のメソッドが、アプリケーションの起動している状態でユーザが端末上で行う操作に起因しないイベントの発生に基づいて実行されるか否かを判定することを特徴とする。 In the application analysis apparatus of the present invention, the analysis unit analyzes the source code, specifies a method for executing the API extracted by the extraction unit, and further selects another method for executing the specified method. It is characterized in that it is determined whether or not another specified method is executed based on the occurrence of an event not caused by an operation performed by the user on the terminal while the application is running.
また、本発明のアプリケーション解析装置において、メソッドが所定のメソッドを指定するときのメソッド名と前記所定のメソッドのメソッド名とが異なるソースコードから生成されたアプリケーションが解析対象である場合に、前記解析部は、特定したメソッドが前記所定のメソッドであれば、前記所定のメソッドを指定するときのメソッド名に基づいて前記他のメソッドを特定することを特徴とする。 Further, in the application analysis apparatus of the present invention, when an application generated from a source code in which a method name for specifying a predetermined method and a method name of the predetermined method are different from each other, the analysis is performed. The unit is characterized in that, if the specified method is the predetermined method, the other method is specified based on a method name when the predetermined method is designated.
また、本発明のアプリケーション解析装置において、前記解析部は、アプリケーションが利用する機能や権限を規定したマニフェストファイルに基づいて、特定したメソッドが、アプリケーションの起動している状態でユーザが端末上で行う操作に起因しないイベントの発生に基づいて実行されるか否かを判定することを特徴とする。 In the application analysis apparatus of the present invention, the analysis unit performs the specified method on the terminal in a state where the application is activated based on a manifest file that defines the function and authority used by the application. It is characterized by determining whether or not to execute based on the occurrence of an event not caused by an operation.
また、本発明のアプリケーション解析装置において、前記解析部は、特定したメソッドが、アプリケーションを起動するためにユーザが端末上で操作を行ったときに実行されるか否かを判定することを特徴とする。 Further, in the application analysis apparatus of the present invention, the analysis unit determines whether or not the specified method is executed when the user performs an operation on the terminal to start the application. To do.
また、本発明のアプリケーション解析装置において、前記解析部は、特定したメソッドが、端末の状態変化に基づいてブロードキャストされるインテントが発生したときに実行されるか否かを判定することを特徴とする。 Further, in the application analysis apparatus of the present invention, the analysis unit determines whether or not the specified method is executed when an intent that is broadcast based on a state change of the terminal occurs. To do.
また、本発明のアプリケーション解析装置において、前記解析部は、特定したメソッドが、アプリケーションの状態遷移に関係するメソッドであるか否かを判定することを特徴とする。 In the application analysis apparatus of the present invention, the analysis unit determines whether or not the specified method is a method related to application state transition.
また、本発明のアプリケーション解析装置において、前記解析部は、特定した他のメソッドが、アプリケーションの状態遷移に関係するメソッドであるか否かを判定することを特徴とする。 In the application analysis apparatus of the present invention, the analysis unit determines whether or not the other specified method is a method related to application state transition.
また、本発明は、上記のアプリケーション解析装置としてコンピュータを機能させるためのプログラムである。 Further, the present invention is a program for causing a computer to function as the application analysis apparatus.
本発明によれば、アプリケーションの起動している状態でユーザが端末上で行う操作に起因しないイベントの発生に基づいて情報の取得と送信を自動的に実行する悪性アプリケーションを検知することが可能となる。このため、ユーザが端末上で行う操作を考慮してアプリケーションの良性/悪性を判定する従来の手法で発生しうる悪性アプリケーションの誤検知を低減することができる。 According to the present invention, it is possible to detect a malignant application that automatically executes information acquisition and transmission based on the occurrence of an event that is not caused by an operation performed by a user on a terminal while the application is running. Become. For this reason, it is possible to reduce erroneous detection of a malignant application that may occur in a conventional method of determining benign / malignant of an application in consideration of an operation performed by a user on a terminal.
以下、図面を参照し、本発明の実施形態を説明する。本明細書および図面では、便宜上、必要に応じてAndroid(登録商標)という文字列を*Andrd*という文字列で代用し、java(登録商標)という文字列を*jv*という文字列で代用している。すなわち、*Andrd*という文字列はAndroid(登録商標)という文字列と等価であり、*jv*という文字列はjava(登録商標)という文字列と等価である。また、本明細書では、ソースコードに記述されるメソッド名等の文字列を記載するときに、「と」で文字列を囲んで示すことがある。例えば、本明細書では、「XXX」はXXXという文字列を示すものとする。 Hereinafter, embodiments of the present invention will be described with reference to the drawings. In this specification and drawings, for convenience, the character string Android (registered trademark) is substituted with the character string * Andrd * and the character string java (registered trademark) is substituted with the character string * jv * as necessary. ing. That is, the character string * Andrd * is equivalent to the character string Android (registered trademark), and the character string * jv * is equivalent to the character string java (registered trademark). Further, in this specification, when a character string such as a method name described in the source code is described, the character string may be surrounded by “to”. For example, in this specification, “XXX” indicates a character string “XXX”.
本実施形態によるアプリケーション解析装置は、解析対象のアプリケーションの実行コードをディスアセンブル(逆アセンブル)して得られるソースコード(ソースファイル)を解析し、端末に格納された個人情報を取得するAPI(以下、個人情報取得APIと記載)と、情報を外部の機器へ送信するAPI(以下、外部送信APIと記載)とをソースコードから抽出する。また、本実施形態によるアプリケーション解析装置は、ソースコードから抽出した個人情報取得APIと外部送信APIを実行するメソッドを特定し、特定したメソッドが、ユーザが端末上で行う操作(アプリケーションを起動するための操作を除く)に起因しないイベントの発生に基づいて実行される場合に、解析対象のアプリケーションが悪性であると判定する。このようなイベントとして、端末の状態変化が発生したというイベントや、アプリケーションを起動する操作が行われたというイベント等がある。 The application analysis apparatus according to the present embodiment analyzes a source code (source file) obtained by disassembling (disassembling) an execution code of an application to be analyzed, and obtains personal information stored in the terminal (hereinafter referred to as an API). And an API for transmitting information to an external device (hereinafter referred to as an external transmission API) from the source code. In addition, the application analysis apparatus according to the present embodiment specifies a method for executing the personal information acquisition API and the external transmission API extracted from the source code, and the specified method is an operation performed on the terminal by the user (to start the application). In other words, it is determined that the analysis target application is malignant. Examples of such an event include an event that a terminal state change has occurred, an event that an operation for starting an application has been performed, and the like.
本実施形態では、端末に格納された情報の利用を承諾(同意)するためにユーザが行う操作を直接的な発生原因としない特定のイベントが発生したときに個人情報取得APIと外部送信APIを自動的に実行するアプリケーションが悪性アプリケーション(情報漏洩アプリケーション)として検知される。このため、ユーザが行う承諾の操作に伴って個人情報取得APIと外部送信APIを実行するように構成されたアプリケーションを解析した場合には、解析対象のアプリケーションは悪性アプリケーションとして検知されない。したがって、良性アプリケーションを悪性アプリケーションとして誤検知する可能性を低減することができる。 In this embodiment, when a specific event that does not directly cause the operation performed by the user to accept (agree) the use of the information stored in the terminal occurs, the personal information acquisition API and the external transmission API are set. An automatically executed application is detected as a malicious application (information leakage application). For this reason, when analyzing an application configured to execute the personal information acquisition API and the external transmission API in accordance with the consent operation performed by the user, the analysis target application is not detected as a malignant application. Therefore, the possibility that a benign application is erroneously detected as a malignant application can be reduced.
本実施形態によるアプリケーション解析装置は、例えばスマートフォン用のアプリケーションを通信ネットワーク上で販売する販売サイトを管理する企業に設置される。また、本実施形態によるアプリケーション解析装置が行う解析のアルゴリズムをアンチウイルスソフトに適用することも可能である。したがって、ユーザが端末にインストールするアプリケーションを事前に審査することができる。 The application analysis apparatus according to the present embodiment is installed in a company that manages a sales site that sells, for example, smartphone applications on a communication network. The analysis algorithm performed by the application analysis apparatus according to the present embodiment can also be applied to anti-virus software. Therefore, the application that the user installs on the terminal can be examined in advance.
図1は、本実施形態によるアプリケーション解析装置の構成を示している。図1に示すように、アプリケーション解析装置は、アプリケーション解析部1および記憶部2を有する。
FIG. 1 shows the configuration of the application analysis apparatus according to the present embodiment. As illustrated in FIG. 1, the application analysis apparatus includes an
アプリケーション解析部1は、解析対象のアプリケーションの実行ファイルであるパッケージファイル(アプリケーションファイル)からディスアセンブルによりソースコードを取得し、取得したソースコードを解析して解析対象のアプリケーションの良性/悪性の判定を行う。パッケージファイルは、例えば拡張子が.apkのファイルであり、命令列を含む実行コード(例えば拡張子が.dex)、アプリケーションが利用する機能や権限が定義されたマニフェストファイル(例えば拡張子が.xml)、アプリケーションが利用するテキストファイルや画像ファイル等の各種リソースファイルを含む。記憶部2は、解析対象のアプリケーションのパッケージファイルを記憶するほか、個人情報取得APIおよび外部送信API等の情報が記録されたリストを記憶する。
The
アプリケーション解析部1は、ディスアセンブル部10、API抽出部11、解析部12、アプリケーション判定部13、および制御部14を有する。ディスアセンブル部10は、解析対象のアプリケーションの実行コードをディスアセンブル(逆アセンブル)し、実行コードに対応するソースコード(ソースファイル)を得る。API抽出部11は、ソースコードから個人情報取得APIと外部送信APIを抽出する。
The
解析部12は、ソースコードを解析し、API抽出部11によって抽出された個人情報取得APIと外部送信API のそれぞれを実行するメソッドを特定し、特定したメソッドが、アプリケーションの起動している状態でユーザが端末上で行う操作に起因しないイベントの発生に基づいて実行されるか否かを判定する。アプリケーション判定部13は、解析部12がソースコードを解析した結果に基づいて、解析対象のアプリケーションの良性/悪性を判定する。制御部14は、アプリケーション解析部1における各部の動作を制御する。
The
次に、本実施形態におけるアプリケーションの解析手法の概念を説明する。Android(登録商標)OS上で動作するアプリケーションの構成要素(コンポーネント)として、Activity、Service、BroadcastReceiver、ContentProviderの4つがある。以下、各コンポーネントについて説明する。 Next, the concept of the application analysis method in this embodiment will be described. There are four components (components) of an application that runs on an Android (registered trademark) OS: Activity, Service, BroadcastReceiver, and ContentProvider. Hereinafter, each component will be described.
Activityは、ユーザに対して視覚的なインターフェイスを提供し、画面上でユーザと対話を行うコンポーネントである。アプリケーションを起動すると画面が表示される場合、Activityに記述されたプログラムが動作している。 Activity is a component that provides a visual interface to the user and interacts with the user on the screen. If the screen is displayed when the application is started, the program described in Activity is running.
Serviceは、画面を表示する機能を持たずに、バックグラウンドで処理を実行するコンポーネントである。例えば、ユーザが音楽を聞きながらブラウザを起動してインターネットの利用を楽しむ場合、音楽用アプリケーションがServiceを起動することにより、ユーザはインターネットの利用中に音楽を聞くことができる。 Service is a component that executes processing in the background without having a function of displaying a screen. For example, when the user activates a browser while listening to music and enjoys using the Internet, the user can listen to the music while using the Internet by activating the service for the music application.
BroadcastReceiverは、Android(登録商標)OSが搭載された端末のシステム全体にブロードキャストされるINTENT(以下、BroadcastIntentと記載)を受け取るコンポーネントである。例えば、電池残量が減ってきたときに、「残りのバッテリー残量が少ないです」というメッセージを含む画面を表示するアプリケーションでは、電池残量が変化するときに発行されるBroadcastIntentをBroadcastReceiverにより受け取ったアプリケーションがActivityを起動して画面を表示する。 BroadcastReceiver is a component that receives INTENT (hereinafter referred to as “BroadcastIntent”) broadcasted to the entire system of a terminal equipped with an Android (registered trademark) OS. For example, an application that displays a screen that includes the message “Remaining battery level is low” when the battery level is low, receives the BroadcastIntent issued when the battery level changes by the BroadcastReceiver. The application starts Activity and displays the screen.
ContentProviderは、アプリケーションが保持するデータを他のコンポーネントでも使用可能にするコンポーネントである。例えば、あるアプリケーションが電話帳のデータを取得したい場合、そのアプリケーションは、電話帳アプリケーションのContentProviderを利用して、電話帳に登録されている情報を取得する。 ContentProvider is a component that makes it possible for other components to use data held by the application. For example, when an application wants to acquire phonebook data, the application acquires information registered in the phonebook using the ContentProvider of the phonebook application.
Android(登録商標)では、アプリケーションのライフサイクル(状態遷移)に関する特別なメソッドがある。ライフサイクルに関するメソッドとして、コンポーネントが起動したタイミングで呼び出されて実行されるメソッドであるonCreate、onStart、onBind等のほか、コンポーネントが終了するタイミングで呼び出されて実行されるメソッドであるonDestroy等がある。 In Android (registered trademark), there is a special method related to the life cycle (state transition) of an application. As methods related to the life cycle, there are onCreate, onStart, onBind, and the like that are called and executed when the component is activated, and onDestroy that is a method that is called and executed when the component is finished.
本実施形態におけるアプリケーションの解析手法は、特にトロイの木馬の検知に適している。悪意のユーザがAndroid(登録商標)のトロイの木馬を他人の端末に導入させる手法として、不正な挙動が発生するように正規のアプリケーションを改竄し、そのアプリケーションをマーケットに公開するという手法がとられるという特徴がある。不正な挙動が発生するように正規のアプリケーションを改竄する簡単な手法として、以下の2つの手法がある。これまでに出現したトロイの木馬では、2つの手法のどちらかがとられていることが多い。 The application analysis method in this embodiment is particularly suitable for detection of Trojan horses. As a technique for a malicious user to introduce an Android (registered trademark) Trojan to another person's terminal, a technique is adopted in which a legitimate application is falsified so that illegal behavior occurs and the application is released to the market. There is a feature. There are the following two methods as a simple method for falsifying a legitimate application so that an illegal behavior occurs. Trojan horses that have appeared so far often take one of two approaches.
第1の手法は、個人情報の取得と情報の送信を行う正規のアプリケーションに対して、BroadcastReceiverを利用して、端末の状態変化が発生したときに不正な挙動が発生するように改竄を施す手法である。この手法は、正規のアプリケーションの実行コードを改竄せずにマニフェストファイルだけを改竄するだけで容易に実現できる。 The first method uses a BroadcastReceiver for a legitimate application that acquires personal information and transmits information so that it can be tampered with when a terminal state change occurs. It is. This technique can be easily realized by falsifying only the manifest file without falsifying the execution code of a legitimate application.
第2の手法は、個人情報の取得と情報の送信を行う正規のアプリケーションのソースコードにおいて、アプリケーションが起動した際に最初に呼び出されて実行されるメソッドが記述されている箇所に、不正な挙動が発生するメソッドのコードを追記する手法である。アプリケーションが起動した際に最初に呼び出されるメソッドを解析することは容易であり、この手法は、数行のコードを挿入するという容易な手法で実現できる。 In the second method, in the source code of a legitimate application that acquires personal information and transmits information, an illegal behavior is found at the place where the method that is called and executed first when the application is started is described. This is a method of adding the code of the method that causes the problem. It is easy to analyze the method that is called first when the application is started, and this method can be realized by an easy method of inserting several lines of code.
上記の2つの手法で改竄されたアプリケーションは、端末の状態変化の発生やアプリケーションの起動等の特定のイベントが発生した際に自動的に実行されるメソッドによって個人情報取得APIと外部送信APIが実行されるという特徴を有する。そこで、本実施形態では、この特徴を有するアプリケーションを悪性アプリケーションと判定する解析手法をとっている。 The application modified by the above two methods is executed by the personal information acquisition API and the external transmission API by a method that is automatically executed when a specific event such as the occurrence of a terminal state change or application startup occurs. It has the feature of being. Therefore, in this embodiment, an analysis method for determining an application having this feature as a malicious application is adopted.
次に、本実施形態によるアプリケーション解析装置の動作を説明する。図2はアプリケーション解析装置の動作を示している。まず、ディスアセンブル部10は、記憶部2に格納されている解析対象のアプリケーションのパッケージファイルを読み出してディスアセンブルし、ソースコードを得る(ステップS100)。代表的なディスアセンブルツールであるapk-toolを用いてディスアセンブルを行うと、図3に示すように、パッケージファイル(Sample.apk)から、.smali形式のソースコード(Main$JsObj.smali等)と.xml形式のマニフェストファイル(*andrd*Manifest.xml)を得ることができる。
Next, the operation of the application analysis apparatus according to the present embodiment will be described. FIG. 2 shows the operation of the application analysis apparatus. First, the
続いて、API抽出部11は、ステップS100で得られたソースコードに対して、個人情報取得APIと外部送信APIのメソッド名で検索を行い、個人情報取得APIと外部送信APIを抽出する(ステップS110)。図4は、代表的な個人情報取得APIを示している。端末を識別するIDであるIMEI(International Mobile Equipment Identity)を取得するメソッドであるgetDeviceIdや、端末のソフトウェアのバージョンを取得するメソッドであるgetDeviceSoftwareVersion、端末の電話番号を取得するメソッドであるgetLine1Number等が個人情報取得APIである。図5は、代表的な外部送信APIを示している。SMS(Short Message Service)を送信するメソッドであるsendTextMessage等が外部送信APIである。
Subsequently, the
記憶部2には、個人情報取得APIと外部送信APIのメソッド名が記録されたリストが格納されている。ステップS110では、API抽出部11はこのリストを記憶部2から読み出し、リストに含まれるメソッド名の文字列とソースコード中の文字列とを比較し、リストに含まれるメソッド名の文字列と一致する文字列を抽出する。また、API抽出部11はステップS110の処理結果を制御部14へ出力する。
The
続いて、制御部14は、ステップS110の処理結果に基づいて、個人情報取得APIと外部送信APIの両方が抽出された否かを判定する(ステップS120)。ステップS110において、個人情報取得APIのメソッド名の文字列と一致する文字列、外部送信APIのメソッド名の文字列と一致する文字列のうちの少なくとも一方が抽出されなかった場合、処理はステップS140に進む。また、ステップS110において、個人情報取得APIのメソッド名の文字列と一致する文字列、外部送信APIのメソッド名の文字列と一致する文字列のうちの両方が抽出された場合、制御部14は、抽出された個人情報取得APIのメソッド名と外部送信APIのメソッド名を解析部12に与え、ステップS100で得られたソースコードを解析部12に解析させる。
Subsequently, the
解析部12は、ソースコードを解析し、ステップS110で抽出された個人情報取得APIと外部送信API のそれぞれを実行するメソッドの解析を行う(ステップS130)。続いて、アプリケーション判定部13は、解析部12による解析の結果に基づいて、解析対象のアプリケーションの良性/悪性を判定する(ステップS140)。ステップS130,S140における処理の詳細な内容については、後述する。
The
図6および図7は、ステップS130におけるアプリケーション解析装置の詳細な動作を示している。解析部12は、API抽出部11によって抽出された個々のAPIに対応して、図6および図7に示す処理を実行する。図6および図7に示す処理では、ステップS100で得られた全てのソースコードが解析の対象となる。まず、解析部12は、APIを実行するメソッドとクラスを特定する(ステップS1300)。
6 and 7 show the detailed operation of the application analysis apparatus in step S130. The
図8はソースコードの一例を示している。APIは、「.method」と「public」、「private」、「static」、「synthetic」のいずれかと、メソッド名(図8では「onCreate」)とが記述されている行と、「.end method」が記述されている行との間に記述されている。ステップS1300において解析部12は以下の処理を行う。まず、解析部12は、ソースコードにおいてAPI名(図4および図5に示したメソッド名)を検索する。API名やメソッド名の検索は、文字列のマッチングにより行われる。これは、後述する各検索においても同様である。
FIG. 8 shows an example of the source code. The API includes ".method", "public", "private", "static", "synthetic", a line describing the method name ("onCreate" in FIG. 8), and ".end method" "Is described between the line in which" is described. In step S1300, the
API名を発見した場合、解析部12は、ソースコードにおいてAPI名が記述されている行よりも前の行において「.method」を検索し、「.method」が記述されている行からメソッド名(図8では「onCreate」)を抽出する。抽出したメソッド名を有するメソッドが、APIを実行するメソッドである。つまり、図8の例では、onCreateというメソッドが、個人情報取得APIであるgetDeviceIDを実行する。さらに、解析部12は、APIを実行するメソッドのメソッド名が記述されている行よりも前の行において、クラスを規定する文字列である「.class」を検索し、「.class」が記述されている行からクラス名(図8では「com/app/sample/Main_Activity」)を抽出する。
When the API name is found, the
ステップS1300以外のステップにおいて、前の手順で特定したメソッドを実行するメソッドとクラスを特定する際にステップS1300と同様の処理を行う場合、上記のAPI名の代わりに、前の手順で特定したメソッドのメソッド名を使用して同様の処理を行い、メソッド名とクラス名を抽出すればよい。 In the steps other than step S1300, when the same processing as step S1300 is performed when specifying the method and class for executing the method specified in the previous procedure, the method specified in the previous procedure is used instead of the above API name. You can do the same process using the method name and extract the method name and class name.
ステップS1300に続いて、解析部12は、前の手順で特定したメソッドがonBindであるか否かを判定する(ステップS1301)。前の手順で特定したメソッドがonBindであった場合、解析部12は、onBindを実行するメソッドとクラスを特定する(ステップS1307)。
Subsequent to step S1300, the
Android(登録商標) OSに対応したアプリケーションを生成するためのソースコードでは、アプリケーションのライフサイクルに関するメソッドのうち所定のメソッドの記述に特別な記述が用いられる。具体的には、あるメソッドが所定のメソッドを呼び出して実行することを記述している部分では、所定のメソッドのメソッド名とは異なる特別なメソッド名が指定される。例えば、onBindは、他のメソッドからBindServiceというメソッド名で呼び出されて実行される。 In the source code for generating an application corresponding to the Android (registered trademark) OS, a special description is used to describe a predetermined method among methods related to the life cycle of the application. Specifically, in a portion describing that a certain method calls and executes a predetermined method, a special method name different from the method name of the predetermined method is designated. For example, onBind is called from another method with the method name BindService and executed.
ステップS1307において解析部12は以下の処理を行う。onBindを実行するメソッドが記述されている部分(「.method」と「.end method」の間の部分)には、「BindService」と、前の手順でonBindと共に特定したクラス名との両方が記述されている。したがって、解析部12は、「.method」と「.end method」の間の部分において、「BindService」と、前の手順でonBindと共に特定したクラス名との両方を検索する。「.method」と「.end method」の間の部分において、「BindService」と、前の手順でonBindと共に特定したクラス名との両方が記述されていた場合、解析部12はステップS1300と同様にして、BindServiceを実行するメソッドとクラスを特定する。ステップS1307の処理が終了すると、ステップS1308の処理が行われる。
In step S1307, the
ステップS1301において、前の手順で特定したメソッドがonBindでなかった場合、解析部12は、前の手順で特定したメソッドがonActivityResultであるか否かを判定する(ステップS1302)。前の手順で特定したメソッドがonActivityResultであった場合、解析部12は、onActivityResultを実行するメソッドとクラスを特定する(ステップS1307)。onActivityResultは、アプリケーションのライフサイクルに関するメソッドであって、他のメソッドからstartActivityForResultというメソッド名で呼び出されて実行される。
If the method specified in the previous procedure is not onBind in step S1301, the
ステップS1307において解析部12は以下の処理を行う。onActivityResultを実行するメソッドが記述されている部分(「.method」と「.end method」の間の部分)では、以下の3つの要件が満たされる。
第1の要件:「const-class」と、前の手順で特定したクラス名とが同一の行に記述されている。
第2の要件:第1の要件を満たす行よりも下の行に「startActivityForResult(L*andrd*/content/Intent;I)V」が記述されている。
第3の要件:第1の要件を満たす行と、第2の要件を満たす行との間の行に「const-class」が記述されていない。
In step S1307, the
First requirement: “const-class” and the class name specified in the previous procedure are described on the same line.
Second requirement: “startActivityForResult (L * andrd * / content / Intent; I) V” is described in a row below the row satisfying the first requirement.
Third requirement: “const-class” is not described in a row between a row satisfying the first requirement and a row satisfying the second requirement.
図9は、onActivityResultを実行するメソッドが記述されたソースコードの一例を示している。前の手順で特定されたクラス名がcom/app/sample/classである場合、図9に示すように、「const-class」と「com/app/sample/class」が同一の行に記述されている(第1の要件)。また、この行よりも下の行に「startActivityForResult(L*andrd*/content/Intent;I)V」が記述されている(第2の要件)。さらに、「const-class」と「com/app/sample/class」が記述されている行と、「startActivityForResult(L*andrd*/content/Intent;I)V」が記述されている行との間の行に「const-class」が記述されていない(第3の要件)。 FIG. 9 shows an example of source code in which a method for executing onActivityResult is described. If the class name specified in the previous step is com / app / sample / class, “const-class” and “com / app / sample / class” are described on the same line as shown in FIG. (First requirement). Also, “startActivityForResult (L * andrd * / content / Intent; I) V” is described in a line below this line (second requirement). Furthermore, between the line where "const-class" and "com / app / sample / class" are written, and the line where "startActivityForResult (L * andrd * / content / Intent; I) V" is written “Const-class” is not described in the line (third requirement).
解析部12は、「.method」と「.end method」の間の部分で上記の3つの要件が満たされるか否かを判定する。上記の3つの要件が満たされる場合、解析部12はステップS1300と同様にして、onActivityResultを実行するメソッドとクラスを特定する。ステップS1307の処理が終了すると、ステップS1308の処理が行われる。
The
ステップS1302において、前の手順で特定したメソッドがonActivityResultでなかった場合、解析部12は、前の手順で特定したメソッドがonCreateであるか否かを判定する(ステップS1303)。onCreateは、アプリケーションのライフサイクルに関するメソッドであって、他のメソッドから所定のメソッド名で呼び出されて実行される。他のメソッドがonCreateを呼び出して実行するために指定する所定のメソッド名は、onCreateを構成要素とするクラスが継承するコンポーネントによって異なる。
If the method specified in the previous procedure is not onActivityResult in step S1302, the
図10は、ソースコードのうち、クラスが継承するコンポーネントが記述されている部分のみを示している。クラスが継承するコンポーネントが記述されることにより、そのクラスの構成要素であるメソッドはそのコンポーネントを利用することが可能となる。図10に示すように、クラスの宣言である「.class public Lcom/app/sample/Example」が記述されている行よりも下の行に、コンポーネント毎に異なる宣言が記述される。具体的には、クラスがActivityを継承する場合には「.super L*andrd*/app/Activity;」と記述され、クラスがServiceを継承する場合には「.super L*andrd*/app/Service;」と記述され、クラスがBroadcastReceiverを継承する場合には「.super L*andrd*/content/ BroadcastReceiver;」と記述される。 FIG. 10 shows only a part of the source code in which a component inherited by the class is described. By describing a component that a class inherits, a method that is a component of the class can use the component. As shown in FIG. 10, different declarations are described for each component in a line below the line in which “.class public Lcom / app / sample / Example”, which is a class declaration, is described. Specifically, when a class inherits Activity, it is described as “.super L * andrd * / app / Activity;”, and when a class inherits Service, it is denoted as “.super L * andrd * / app / Service. ”And“ .super L * andrd * / content / BroadcastReceiver; ”when the class inherits BroadcastReceiver.
前の手順で特定したメソッドがonCreateであった場合、解析部12は、特定したonCreateが記述されているソースコード(例えば、図8のソースコード)から、 onCreateを構成要素とするクラスが継承するコンポーネントを特定する(ステップS1310)。より具体的には、ステップS1310において解析部12は、前の手順で特定したonCreateとクラス名が記述されているソースコードにおいて、「.super」の後に記述されている文字列からコンポーネントを特定する。
When the method specified in the previous procedure is onCreate, the
続いて、ステップS1310で特定されたコンポーネントに応じて処理が分岐する(ステップS1311)。ステップS1310で特定されたコンポーネントがServiceであった場合、解析部12は、onCreateを実行するメソッドとクラスを特定する(ステップS1307)。onCreate を構成要素とするクラスがServiceを継承している場合、onCreateは、他のメソッドからstartServiceというメソッド名で呼び出されて実行される。
Subsequently, the process branches according to the component specified in step S1310 (step S1311). When the component specified in step S1310 is Service, the
ステップS1307において解析部12は以下の処理を行う。onCreateを実行するメソッドが記述されている部分(「.method」と「.end method」の間の部分)では、以下の3つの要件が満たされる。
第1の要件:「const-class」と、前の手順で特定したクラス名とが同一の行に記述されている。
第2の要件:第1の要件を満たす行よりも下の行に「startService(L*andrd*/content/Intent;)L*andrd*/content/ComponentName」が記述されている。
第3の要件:第1の要件を満たす行と、第2の要件を満たす行との間の行に「const-class」が記述されていない。
In step S1307, the
First requirement: “const-class” and the class name specified in the previous procedure are described on the same line.
Second requirement: “startService (L * andrd * / content / Intent;) L * andrd * / content / ComponentName” is described in a line below the line that satisfies the first requirement.
Third requirement: “const-class” is not described in a row between a row satisfying the first requirement and a row satisfying the second requirement.
図11は、onCreateを実行するメソッドが記述されたソースコードの一例を示している。前の手順で特定されたクラス名がcom/app/sample/classである場合、図11に示すように、「const-class」と「com/app/sample/class」が同一の行に記述されている(第1の要件)。また、この行よりも下の行に「startService(L*andrd*/content/Intent;)L*andrd*/content/ComponentName」が記述されている(第2の要件)。さらに、「const-class」と「com/app/sample/class」が記述されている行と、「startService(L*andrd*/content/Intent;)L*andrd*/content/ComponentName」が記述されている行との間の行に「const-class」が記述されていない(第3の要件)。 FIG. 11 shows an example of source code in which a method for executing onCreate is described. If the class name specified in the previous step is com / app / sample / class, “const-class” and “com / app / sample / class” are described on the same line as shown in FIG. (First requirement). Further, “startService (L * andrd * / content / Intent;) L * andrd * / content / ComponentName” is described in a line below this line (second requirement). In addition, a line describing "const-class" and "com / app / sample / class" and "startService (L * andrd * / content / Intent;) L * andrd * / content / ComponentName" are described. "Const-class" is not described in a line between the current line (third requirement).
解析部12は、「.method」と「.end method」の間の部分で上記の3つの要件が満たされるか否かを判定する。上記の3つの要件が満たされる場合、解析部12はステップS1300と同様にして、onCreateを実行するメソッドとクラスを特定する。ステップS1307の処理が終了すると、ステップS1308の処理が行われる。
The
一方、ステップS1310で特定されたコンポーネントがActivityであった場合、解析部12は、onCreateがランチャーから呼び出されて実行されるか否かの確認を行うため、マニフェストファイル(*andrd*Manifest.xml)を解析する(ステップS1312)。前述したように、マニフェストファイルは、アプリケーションが利用する機能や権限を定義しているファイルである。ランチャーとは、ユーザがアプリケーションを起動するため、スマートフォンの待ち受け画面に表示されるアイコンをクリックした際に最初に実行されるプログラムの箇所である。onCreateがランチャーから呼び出されて実行される場合、ユーザが待ち受け画面上のアイコンをクリックしたというイベントが発生したときに、onCreateが自動的に実行され、情報漏洩が発生する可能性がある。
On the other hand, if the component identified in step S1310 is Activity, the
図12はマニフェストファイルの記述の一例を示している。図12に示すように、「<activity」で始まるタグの中に、クラス名である「com.app.sample.Example_Activity」が記述されている。また、「<activity」で始まるタグと、これと対になるタグである「</activity>」との間に、「<intent-filter>」と「</intent-filter>」のタグがある。また、「<intent-filter>」と「</intent-filter>」の間に、ランチャーに関する記述「<category *andrd*:name="*andrd*.intent.category.LAUNCHER" />」がある。 FIG. 12 shows an example of the description of the manifest file. As shown in FIG. 12, the class name “com.app.sample.Example_Activity” is described in the tag starting with “<activity”. In addition, there are tags <intent-filter> and </ intent-filter> between the tag that begins with <activity and the tag </ activity> that is paired with it. . Also, there is a description about the launcher "<category * andrd *: name =" * andrd * .intent.category.LAUNCHER "/>" between "<intent-filter>" and "</ intent-filter>" .
ステップS1312において解析部12は以下の処理を行う。解析部12は、マニフェストファイルにおいて、「<activity」で始まり「</activity>」で終わる記述の部分を抽出する。続いて、解析部12は、抽出した部分において、「<activity」と同一の行に、前の手順で特定したクラス名が記述されているか否かを判定する。「<activity」と同一の行に、前の手順で特定したクラス名が記述されている場合、解析部12は、抽出した部分に「<intent-filter>」と「</intent-filter>」が記述されているか否かを判定する。抽出した部分に「<intent-filter>」と「</intent-filter>」が記述されている場合、解析部12は、「<intent-filter>」と「</intent-filter>」の間に「<category *andrd*:name="*andrd*.intent.category.LAUNCHER" />」が記述されているか否かを判定する。
In step S1312, the
ステップS1312に続いて、解析部12は、マニフェストファイルにランチャーが登録されているか否かを判定する(ステップS1313)。ステップS1312でマニフェストファイルの解析を行った結果、「<intent-filter>」と「</intent-filter>」の間に「<category *andrd*:name="*andrd*.intent.category.LAUNCHER" />」が記述されている場合、マニフェストファイルにランチャーが登録されている。この場合、スマートフォンの待ち受け画面に表示されるアイコンをユーザがクリックしたときに、onCreateが呼び出されて実行されるため、個人情報取得APIまたは外部送信APIが自動的に実行される。この場合、解析部12は、ステップS110でAPI抽出部11によって抽出されたAPIのメソッド名と、APIが自動的に実行されることを示す情報と、APIを実行するメソッドのメソッド名(onCreate)とを含む解析結果をアプリケーション判定部13へ出力する。
Subsequent to step S1312, the
また、ステップS1312でマニフェストファイルの解析を行った結果、マニフェストファイルにランチャーが登録されていることを確認できなかった場合、解析部12は、onCreateを実行するメソッドとクラスを特定する(ステップS1307)。onCreate を構成要素とするクラスがActivityを継承している場合、onCreateは、他のメソッドからstartActivityというメソッド名で呼び出されて実行される。
Also, as a result of analyzing the manifest file in step S1312, if the launcher is not registered in the manifest file, the
ステップS1307において解析部12は以下の処理を行う。onCreateを実行するメソッドが記述されている部分(「.method」と「.end method」の間の部分)では、以下の3つの要件が満たされる。
第1の要件:「const-class」と、前の手順で特定したクラス名とが同一の行に記述されている。
第2の要件:第1の要件を満たす行よりも下の行に「startActivity(L*andrd*/content/Intent;)V」が記述されている。
第3の要件:第1の要件を満たす行と、第2の要件を満たす行との間の行に「const-class」が記述されていない。
In step S1307, the
First requirement: “const-class” and the class name specified in the previous procedure are described on the same line.
Second requirement: “startActivity (L * andrd * / content / Intent;) V” is described in a row below the row satisfying the first requirement.
Third requirement: “const-class” is not described in a row between a row satisfying the first requirement and a row satisfying the second requirement.
図13は、onCreateを実行するメソッドが記述されたソースコードの一例を示している。前の手順で特定されたクラス名がcom/app/sample/classである場合、図13に示すように、「const-class」と「com/app/sample/class」が同一の行に記述されている(第1の要件)。また、この行よりも下の行に「startActivity(L*andrd*/content/Intent;)V」が記述されている(第2の要件)。さらに、「const-class」と「com/app/sample/class」が記述されている行と、「startActivity(L*andrd*/content/Intent;)V」が記述されている行との間の行に「const-class」が記述されていない(第3の要件)。 FIG. 13 shows an example of source code in which a method for executing onCreate is described. If the class name specified in the previous step is com / app / sample / class, “const-class” and “com / app / sample / class” are described on the same line as shown in FIG. (First requirement). Further, “startActivity (L * andrd * / content / Intent;) V” is described in a line below this line (second requirement). Furthermore, between the line where "const-class" and "com / app / sample / class" are described, and the line where "startActivity (L * andrd * / content / Intent;) V" is described “Const-class” is not described in the line (third requirement).
解析部12は、「.method」と「.end method」の間の部分で上記の3つの要件が満たされるか否かを判定する。上記の3つの要件が満たされる場合、解析部12はステップS1300と同様にして、onCreateを実行するメソッドとクラスを特定する。ステップS1307の処理が終了すると、ステップS1308の処理が行われる。
The
一方、ステップS1310で特定されたコンポーネントがBroadcastReceiverであった場合、解析部12は、onCreateがBroadcastIntentによって呼び出されて実行されるか否かの確認を行うため、マニフェストファイル(*andrd*Manifest.xml)を解析する(ステップS1314)。BroadcastIntentによってメソッドを実行する方法には、OS標準で用意されているBroadcastIntentによってメソッドを実行する方法と、ユーザが作成したBroadcastIntentによってメソッドを実行する方法とがある。onCreateが、OS標準で用意されているBroadcastIntentによって実行される場合、アプリケーションの起動の有無にかかわらず、端末の状態変化によってBroadcastIntentが発行されるというイベントが発生したときに、onCreateが自動的に実行され、情報漏洩が発生する可能性がある。
On the other hand, when the component specified in step S1310 is BroadcastReceiver, the
図14は、OSに標準で用意されているBroadcastIntent(以下、OS標準のBroadcastIntentと記載)の一例を示している。端末が起動したときに発行されるBOOT_COMPLETEDや、バッテリーの残量が変化したときに発行されるACTION_BATTERY_CHANGED等がある。 FIG. 14 shows an example of a BroadcastIntent (hereinafter referred to as OS standard BroadcastIntent) prepared as a standard in the OS. There are BOOT_COMPLETED issued when the terminal starts, ACTION_BATTERY_CHANGED issued when the remaining battery level changes.
図15はマニフェストファイルの記述の一例を示している。図15に示すように、「<receiver」で始まるタグの中に、クラス名である「jp.kddilabs.helloservice.BCreceiver」が記述されている。また、「<receiver」で始まるタグと、これと対になるタグである「</receiver>」との間に、「<intent-filter>」と「</intent-filter>」のタグがある。また、「<intent-filter>」と「</intent-filter>」の間に、BroadcastIntent名を含む記述「<action *andrd*:name="*andrd*.intent.action.BOOT_COMPLETED" />」がある。 FIG. 15 shows an example of the description of the manifest file. As shown in FIG. 15, the class name “jp.kddilabs.helloservice.BCreceiver” is described in the tag starting with “<receiver”. In addition, there are tags <intent-filter> and </ intent-filter> between the tag that starts with "<receiver" and the paired tag "</ receiver>" . In addition, the description "<action * andrd *: name =" * andrd * .intent.action.BOOT_COMPLETED "/>" that includes the BroadcastIntent name between "<intent-filter>" and "</ intent-filter>" There is.
ステップS1314において解析部12は以下の処理を行う。記憶部2には、OS標準のBroadcastIntentの名称が記録されたリストが格納されている。解析部12は、マニフェストファイルにおいて、「<receiver」で始まり「</receiver>」で終わる記述の部分を抽出する。続いて、解析部12は、抽出した部分において、「<receiver」と同一の行に、前の手順で特定したクラス名が記述されているか否かを判定する。「<receiver」と同一の行に、前の手順で特定したクラス名が記述されている場合、解析部12は、抽出した部分に「<intent-filter>」と「</intent-filter>」が記述されているか否かを判定する。抽出した部分に「<intent-filter>」と「</intent-filter>」が記述されている場合、解析部12は、記憶部2から上記のリストを読み出し、「<intent-filter>」と「</intent-filter>」の間に、リストに含まれるBroadcastIntent名が記述されているか否かを判定する。
In step S1314, the
ステップS1314に続いて、解析部12は、マニフェストファイルにOS標準のBroadcastIntentが登録されているか否かを判定する(ステップS1315)。ステップS1314でマニフェストファイルの解析を行った結果、「<intent-filter>」と「</intent-filter>」の間に、リストに含まれるBroadcastIntent名が記述されている場合、マニフェストファイルにOS標準のBroadcastIntentが登録されている。この場合、端末で所定の状態変化が発生したときに、onCreateが呼び出されて実行されるため、個人情報取得APIまたは外部送信APIが自動的に実行される。この場合、解析部12は、ステップS110でAPI抽出部11によって抽出されたAPIのメソッド名と、APIが自動的に実行されることを示す情報と、APIを実行するメソッドのメソッド名(onCreate)とを含む解析結果をアプリケーション判定部13へ出力する。
Subsequent to step S1314, the
また、ステップS1314でマニフェストファイルの解析を行った結果、マニフェストファイルにOS標準のBroadcastIntentが登録されていることを確認できなかった場合、解析部12は、onCreateを実行するメソッドとクラスを特定する(ステップS1307)。onCreate を構成要素とするクラスがBroadcastReceiverを継承している場合、onCreateは、ユーザが作成したBroadcastIntentによって実行される。ユーザが作成したBroadcastIntent によってonCreate が実行される場合、APIの実行の起点となるイベントが不明であるため、さらに解析を行う必要がある。
Further, as a result of analyzing the manifest file in step S1314, if it is not confirmed that the OS standard BroadcastIntent is registered in the manifest file, the analyzing
図16は、ユーザが作成したBroadcastIntentによってonCreateを実行するメソッドが記述されたソースコードの一例を示している。ユーザが定義しているBroadcastIntentの名称がORIGINAL_BROADCASTである場合、図16に示すように、onCreateを実行するメソッドが記述されている部分(「.method」と「.end method」の間の部分)では、ユーザが定義したメソッド名である「ORIGINAL_BROADCAST」と、BroadcastIntentを発行するメソッドである「sendBroadcast」とが記述されている。 FIG. 16 shows an example of source code in which a method for executing onCreate is described by BroadcastIntent created by the user. When the name of BroadcastIntent defined by the user is ORIGINAL_BROADCAST, as shown in FIG. 16, in the part where the method for executing onCreate is described (the part between “.method” and “.end method”) In addition, “ORIGINAL_BROADCAST” which is a method name defined by the user and “sendBroadcast” which is a method for issuing a BroadcastIntent are described.
ステップS1307において解析部12は以下の処理を行う。記憶部2には、OS標準で用意されているBroadcastIntentの名称が記録されたリストが格納されている。解析部12は、マニフェストファイルにおいて、ステップS1314で解析を行った部分の「<intent-filter>」と「</intent-filter>」の間の部分から、上記のリストに含まれていないBroadcastIntent名を抽出する。
In step S1307, the
続いて、解析部12は、ソースコードにおいて、「.method」と「.end method」の間の部分に、抽出したBroadcastIntent名と「sendBroadcast」が記述されているか否かを判定する。「.method」と「.end method」の間の部分に、抽出したBroadcastIntent名と「sendBroadcast」が記述されている場合、解析部12はステップS1300と同様にして、onCreateを実行するメソッドとクラスを特定する。ステップS1307の処理が終了すると、ステップS1308の処理が行われる。
Subsequently, the
一方、ステップS1303において、前の手順で特定したメソッドがonCreateでなかった場合、解析部12は、前の手順で特定したメソッドがonStart,onRestart,onResume,onPause,onStop,onDestroy,onUnbind,onRebindのいずれかであるか否かを判定する(ステップS1304)。これらのメソッドは、アプリケーションのライフサイクルに関するメソッドである。
On the other hand, if the method identified in the previous procedure is not onCreate in step S1303, the
前の手順で特定したメソッドがonStart,onRestart,onResume,onPause,onStop,onDestroy,onUnbind,onRebindのいずれかである場合、アプリケーションのライフサイクルに関する状態変化というイベントが発生したときに、これらのメソッドが呼び出されて実行されるため、個人情報取得APIまたは外部送信APIが自動的に実行される。この場合、解析部12は、ステップS110でAPI抽出部11によって抽出されたAPIのメソッド名と、APIが自動的に実行されることを示す情報と、APIを実行するメソッドのメソッド名(onStart等)とを含む解析結果をアプリケーション判定部13へ出力する。
If the method identified in the previous step is one of onStart, onRestart, onResume, onPause, onStop, onDestroy, onUnbind, or onRebind, these methods are called when an event of a state change related to the application lifecycle occurs. Therefore, the personal information acquisition API or external transmission API is automatically executed. In this case, the
また、前の手順で特定したメソッドがonStart,onRestart,onResume,onPause,onStop,onDestroy,onUnbind,onRebindのどれでもなかった場合、解析部12は、前の手順で特定したメソッドがonClickであるか否かを判定する(ステップS1305)。onClickは、端末上のユーザインタフェースの画面に表示されるボタンをユーザが押した際に呼び出されて実行されるメソッドである。前の手順で特定したメソッドがonClickである場合、ユーザがボタンを押すというイベントが発生したときにAPIが実行される。この場合、解析部12は、ステップS110でAPI抽出部11によって抽出されたAPIのメソッド名と、APIが自動的に実行されないことを示す情報とを含む解析結果をアプリケーション判定部13へ出力する。
If the method identified in the previous procedure is not one of onStart, onRestart, onResume, onPause, onStop, onDestroy, onUnbind, or onRebind, the
また、前の手順で特定したメソッドがonClickでなかった場合、解析部12は、前の手順で特定したメソッドがonItemClickであるか否かを判定する(ステップS1306)。onItemClickは、端末上の画面に表示されるリストの項目をユーザが選択した際に呼び出されて実行されるメソッドである。前の手順で特定したメソッドがonItemClickである場合、ユーザがリストの項目を選択するというイベントが発生したときにAPIが実行される。この場合、解析部12は、ステップS110でAPI抽出部11によって抽出されたAPIのメソッド名と、APIが自動的に実行されないことを示す情報とを含む解析結果をアプリケーション判定部13へ出力する。
If the method specified in the previous procedure is not onClick, the
また、前の手順で特定したメソッドがonItemClickでなかった場合、解析部12は、ステップS1300と同様にして、前の手順で特定したメソッドを実行するメソッドとクラスを特定する(ステップS1307)。続いて、解析部12は、前の手順で特定したメソッドを実行するメソッドが存在するか否かを判定する(ステップS1308)。
If the method specified in the previous procedure is not onItemClick, the
ステップS1307において、前の手順で特定したメソッドを実行するメソッドとクラスを特定できなかった場合、APIが呼び出されて実行されることはないため、解析部12は、ステップS110でAPI抽出部11によって抽出されたAPIのメソッド名と、APIが自動的に実行されないことを示す情報とを含む解析結果をアプリケーション判定部13へ出力する。また、ステップS1307において、前の手順で特定したメソッドを実行するメソッドとクラスを特定できた場合、処理はステップS1301に進む。図6および図7に示す手順に従って解析を行うことにより、アプリケーションが起動している状態でユーザが端末上で行う操作に起因せずにAPIが自動的に実行されるのか否かを判別することができる。
In step S1307, if the method and class for executing the method specified in the previous procedure cannot be specified, the API is not called and executed, so the
次に、ステップS140におけるアプリケーションの良性/悪性の判定方法を説明する。前述したように、解析部12は解析結果をアプリケーション判定部13へ出力する。解析部12は、ステップS110でAPI抽出部11によって抽出されたAPI毎に解析を行うので、API毎の解析結果がアプリケーション判定部13へ出力される。
Next, the benign / malignant determination method of the application in step S140 will be described. As described above, the
ステップS110において、個人情報取得APIと外部送信APIのうちの少なくとも一方が抽出されなかった場合、アプリケーション判定部13は、解析対象のアプリケーションが良性であると判定する。また、ステップS130における解析が行われて解析部12から解析結果が出力された場合、アプリケーション判定部13は解析結果に基づいて以下のようにアプリケーションの良性/悪性を判定する。
In step S110, when at least one of the personal information acquisition API and the external transmission API is not extracted, the
個人情報取得APIと外部送信APIのうちの少なくとも一方について、APIが自動的に実行されないことを示す情報を含む解析結果が出力された場合、個人情報取得APIと外部送信APIのうちの少なくとも一方は実行されない、あるいは個人情報取得APIと外部送信APIのうちの少なくとも一方はアプリケーション起動後のユーザの操作によって実行されるので情報漏洩の危険度は低いと推定できる。この場合、アプリケーション判定部13は、解析対象のアプリケーションが良性であると判定する。
When an analysis result including information indicating that the API is not automatically executed is output for at least one of the personal information acquisition API and the external transmission API, at least one of the personal information acquisition API and the external transmission API is It can be estimated that the risk of information leakage is low because it is not executed or at least one of the personal information acquisition API and the external transmission API is executed by a user operation after starting the application. In this case, the
また、個人情報取得APIと外部送信APIの両方について、APIが自動的に実行されることを示す情報を含む解析結果が出力された場合、アプリケーション判定部13は、個人情報取得APIを実行するメソッドのメソッド名と、外部送信APIを実行するメソッドのメソッド名とが一致するか否かを確認する。両者が一致しなかった場合、個人情報取得APIと外部送信APIは自動的に実行されるが、両者の実行の起点となるメソッドは異なり、両者の実行の関連性は低いので、情報漏洩の危険度は低いと推定できる。この場合、アプリケーション判定部13は、解析対象のアプリケーションが良性であると判定する。
When an analysis result including information indicating that the API is automatically executed is output for both the personal information acquisition API and the external transmission API, the
これに対して、両者が一致した場合、同一のメソッドを起点として個人情報取得APIと外部送信APIが自動的に実行されるので、情報漏洩の危険度が高いと推定できる。この場合、アプリケーション判定部13は、解析対象のアプリケーションが悪性であると判定する。つまり、個人情報取得APIと外部送信APIが同一のメソッドによって自動的に実行される場合に解析対象のアプリケーションが悪性であると判定され、それ以外の場合には解析対象のアプリケーションが良性であると判定される。
On the other hand, if the two match, the personal information acquisition API and the external transmission API are automatically executed starting from the same method, so it can be estimated that the risk of information leakage is high. In this case, the
上述したように、本実施形態によれば、アプリケーションの起動している状態でユーザが端末上で行う操作に起因しないイベントの発生に基づいて情報の取得と送信を自動的に実行する悪性アプリケーションを検知することができる。このため、ユーザが情報の利用を承諾するために端末上で行う操作に起因するイベントの発生に基づいて情報の取得と送信を実行するアプリケーションを悪性アプリケーションとは区別することが可能となるので、悪性アプリケーションの誤検知を低減することができる。 As described above, according to the present embodiment, a malicious application that automatically executes information acquisition and transmission based on the occurrence of an event that is not caused by an operation performed by the user on the terminal while the application is running. Can be detected. For this reason, it becomes possible to distinguish an application that performs acquisition and transmission of information based on the occurrence of an event caused by an operation performed on the terminal in order for the user to consent to use of information from a malignant application. False detection of malicious applications can be reduced.
また、ソースコードの解析において、APIを実行するメソッドを特定しても、特定したメソッドのメソッド名(onBind等)だけからはAPIの実行の起点となるイベントを判別することができない場合に、APIを実行するメソッドを実行する他のメソッドを特定することによって、APIの実行の起点となるイベントを判別できる可能性が高まる。このため、悪性アプリケーションの検知漏れを低減することができる。 Also, in the analysis of the source code, even if the method that executes the API is specified, the event that is the starting point of the API execution cannot be determined only from the method name (such as onBind) of the specified method. By specifying another method that executes a method that executes, the possibility of determining the event that is the starting point of API execution increases. For this reason, omission of detection of a malicious application can be reduced.
また、onBind等の所定のメソッドに関しては、他のメソッドが所定のメソッドを指定するときのメソッド名と所定のメソッドのメソッド名とが異なるが、このようにメソッド名が異なる場合があることを考慮して、APIを実行する他のメソッドを特定することによって、APIの実行の起点となるイベントを判別できる可能性が高まる。このため、悪性アプリケーションの検知漏れを低減することができる。 In addition, for a given method such as onBind, the method name when another method specifies a given method is different from the method name of the given method, but it is possible that the method name may be different. Thus, by specifying other methods for executing the API, the possibility of determining the event that is the starting point for executing the API increases. For this reason, omission of detection of a malicious application can be reduced.
また、onCreateに関しては、マニフェストファイルに基づいて、onCreateが、スマートフォンの待ち受け画面に表示されるアイコンがクリックされた際に最初に実行されるランチャーから呼び出されて実行されるか否か、あるいは端末の状態変化に基づいてOS標準のBroadcastIntentによって呼び出されて実行されるか否かを確認することによって、APIが自動的に実行されるか否かを確認することができる。 In addition, regarding onCreate, onCreate is called from the launcher that is executed first when the icon displayed on the standby screen of the smartphone is clicked based on the manifest file, Whether or not the API is automatically executed can be confirmed by checking whether or not it is called and executed by the OS standard BroadcastIntent based on the state change.
また、特定したメソッドが、アプリケーションの状態遷移に関係する所定のメソッド(onStart等)であるか否かを判定することによって、APIが自動的に実行されるか否かを確認することができる。 Further, by determining whether or not the specified method is a predetermined method (such as onStart) related to the state transition of the application, it can be confirmed whether or not the API is automatically executed.
上述したアプリケーション解析装置は、その動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させることにより、実現される。ここで、「コンピュータ」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。 The application analysis apparatus described above is realized by recording a program for realizing the operation and function in a computer-readable recording medium, causing the computer to read and execute the program recorded in the recording medium. The Here, the “computer” includes a homepage providing environment (or display environment) if the WWW system is used. The “computer-readable recording medium” refers to a storage device such as a portable medium such as a flexible disk, a magneto-optical disk, a ROM, and a CD-ROM, and a hard disk built in the computer. Further, the “computer-readable recording medium” refers to a volatile memory (RAM) in a computer system that becomes a server or a client when a program is transmitted via a network such as the Internet or a communication line such as a telephone line. In addition, those holding programs for a certain period of time are also included.
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。 The program described above may be transmitted from a computer storing the program in a storage device or the like to another computer via a transmission medium or by a transmission wave in the transmission medium. Here, the “transmission medium” for transmitting a program refers to a medium having a function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line. Further, the above-described program may be for realizing a part of the above-described function. Furthermore, what can implement | achieve the function mentioned above in combination with the program already recorded on the computer, what is called a difference file (difference program) may be sufficient.
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。 As described above, the embodiments of the present invention have been described in detail with reference to the drawings. However, the specific configuration is not limited to the above-described embodiments, and includes design changes and the like without departing from the gist of the present invention. .
1・・・アプリケーション解析部、2・・・記憶部、10・・・ディスアセンブル部、11・・・API抽出部、12・・・解析部、13・・・アプリケーション判定部、14・・・制御部
DESCRIPTION OF
Claims (9)
端末内の情報を取得する第1のAPI(Application Program Interface)および情報を外部の機器へ送信する第2のAPIを前記ソースコードから抽出する抽出部と、
前記ソースコードを解析し、前記抽出部によって抽出されたAPIを実行するメソッドを特定し、特定したメソッドが、アプリケーションの起動している状態でユーザが端末上で行う操作に起因しないイベントの発生に基づいて実行されるか否かを判定する解析部と、
前記第1のAPIおよび前記第2のAPIが、アプリケーションの起動している状態でユーザが端末上で行う操作に起因しないイベントの発生に基づいて実行されると判定された場合に、前記解析対象のアプリケーションが悪性であると判定する判定部と、
を備えたことを特徴とするアプリケーション解析装置。 A disassemble unit that disassembles the execution code of the application to be analyzed and obtains a source code corresponding to the execution code;
An extraction unit for extracting, from the source code, a first API (Application Program Interface) for acquiring information in the terminal and a second API for transmitting information to an external device;
Analyze the source code, identify the method that executes the API extracted by the extraction unit, and the identified method will generate an event that does not result from an operation that the user performs on the terminal while the application is running An analysis unit for determining whether to be executed based on,
When it is determined that the first API and the second API are executed based on the occurrence of an event not caused by an operation performed by the user on the terminal while the application is running, the analysis target A determination unit that determines that the application is malicious;
An application analysis apparatus characterized by comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011203010A JP5690689B2 (en) | 2011-09-16 | 2011-09-16 | Application analysis apparatus and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011203010A JP5690689B2 (en) | 2011-09-16 | 2011-09-16 | Application analysis apparatus and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013065168A true JP2013065168A (en) | 2013-04-11 |
JP5690689B2 JP5690689B2 (en) | 2015-03-25 |
Family
ID=48188608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011203010A Active JP5690689B2 (en) | 2011-09-16 | 2011-09-16 | Application analysis apparatus and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5690689B2 (en) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5536944B1 (en) * | 2013-10-06 | 2014-07-02 | 春佳 西守 | Computer program |
KR101480244B1 (en) * | 2013-08-23 | 2015-01-12 | 한양대학교 산학협력단 | Method for detecting malicious application using signature on class basis and device enabling the method |
CN104601768A (en) * | 2014-12-22 | 2015-05-06 | 上海斐讯数据通信技术有限公司 | Android mobile phone automatic testing system and testing method thereof |
JP2015103225A (en) * | 2013-11-28 | 2015-06-04 | 富士通株式会社 | Determination program, determination unit and determination method |
KR101541970B1 (en) * | 2013-12-13 | 2015-08-05 | 경북대학교 산학협력단 | Test scenario generating device, allication testing system comprising the same, test scenario generating method, and recordable meduim thereof |
JP2016206739A (en) * | 2015-04-16 | 2016-12-08 | Kddi株式会社 | Application analysis device, application analysis method, and program |
JP2017207882A (en) * | 2016-05-18 | 2017-11-24 | Nttテクノクロス株式会社 | Analyzer and program |
JP2019220132A (en) * | 2018-06-18 | 2019-12-26 | エーオー カスペルスキー ラボAO Kaspersky Lab | System and method of adapting patterns of dangerous behavior of programs to computer systems of users |
JP2020091814A (en) * | 2018-12-07 | 2020-06-11 | Kddi株式会社 | Privacy policy verification device, computer program and privacy policy verification method |
WO2020115853A1 (en) * | 2018-12-06 | 2020-06-11 | 三菱電機株式会社 | Information processing device, information processing method, and information processing program |
JPWO2021038704A1 (en) * | 2019-08-27 | 2021-03-04 | ||
WO2021038705A1 (en) * | 2019-08-27 | 2021-03-04 | 日本電気株式会社 | Backdoor inspection device, backdoor inspection method, and non-transitory computer-readable medium |
JP2021516379A (en) * | 2018-01-04 | 2021-07-01 | ライン プラス コーポレーションLINE Plus Corporation | License verification device |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473509A (en) * | 2013-09-30 | 2013-12-25 | 清华大学 | Android platform malware automatic detecting method |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004038486A (en) * | 2002-07-02 | 2004-02-05 | Matsushita Electric Ind Co Ltd | Device for permitting publication, device for demanding publication, distribution device, and device and method for executing application |
JP2007280013A (en) * | 2006-04-06 | 2007-10-25 | Internatl Business Mach Corp <Ibm> | Method and program for controlling communication by information processor |
-
2011
- 2011-09-16 JP JP2011203010A patent/JP5690689B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004038486A (en) * | 2002-07-02 | 2004-02-05 | Matsushita Electric Ind Co Ltd | Device for permitting publication, device for demanding publication, distribution device, and device and method for executing application |
JP2007280013A (en) * | 2006-04-06 | 2007-10-25 | Internatl Business Mach Corp <Ibm> | Method and program for controlling communication by information processor |
US20070275694A1 (en) * | 2006-04-06 | 2007-11-29 | International Business Machines Corporation | Controlling Communications Performed by an Information Processing Apparatus |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101480244B1 (en) * | 2013-08-23 | 2015-01-12 | 한양대학교 산학협력단 | Method for detecting malicious application using signature on class basis and device enabling the method |
JP2014219955A (en) * | 2013-10-06 | 2014-11-20 | 春佳 西守 | Computer program |
JP5536944B1 (en) * | 2013-10-06 | 2014-07-02 | 春佳 西守 | Computer program |
JP2015103225A (en) * | 2013-11-28 | 2015-06-04 | 富士通株式会社 | Determination program, determination unit and determination method |
KR101541970B1 (en) * | 2013-12-13 | 2015-08-05 | 경북대학교 산학협력단 | Test scenario generating device, allication testing system comprising the same, test scenario generating method, and recordable meduim thereof |
CN104601768A (en) * | 2014-12-22 | 2015-05-06 | 上海斐讯数据通信技术有限公司 | Android mobile phone automatic testing system and testing method thereof |
JP2016206739A (en) * | 2015-04-16 | 2016-12-08 | Kddi株式会社 | Application analysis device, application analysis method, and program |
JP2017207882A (en) * | 2016-05-18 | 2017-11-24 | Nttテクノクロス株式会社 | Analyzer and program |
JP2021516379A (en) * | 2018-01-04 | 2021-07-01 | ライン プラス コーポレーションLINE Plus Corporation | License verification device |
JP7119096B2 (en) | 2018-01-04 | 2022-08-16 | ライン プラス コーポレーション | license verification device |
JP2019220132A (en) * | 2018-06-18 | 2019-12-26 | エーオー カスペルスキー ラボAO Kaspersky Lab | System and method of adapting patterns of dangerous behavior of programs to computer systems of users |
WO2020115853A1 (en) * | 2018-12-06 | 2020-06-11 | 三菱電機株式会社 | Information processing device, information processing method, and information processing program |
JP7062581B2 (en) | 2018-12-07 | 2022-05-06 | Kddi株式会社 | Privacy policy verification device, computer program and privacy policy verification method |
JP2020091814A (en) * | 2018-12-07 | 2020-06-11 | Kddi株式会社 | Privacy policy verification device, computer program and privacy policy verification method |
JPWO2021038704A1 (en) * | 2019-08-27 | 2021-03-04 | ||
WO2021038705A1 (en) * | 2019-08-27 | 2021-03-04 | 日本電気株式会社 | Backdoor inspection device, backdoor inspection method, and non-transitory computer-readable medium |
JPWO2021038705A1 (en) * | 2019-08-27 | 2021-03-04 | ||
WO2021038704A1 (en) * | 2019-08-27 | 2021-03-04 | 日本電気株式会社 | Backdoor test device, backdoor test method, and non-transitory computer-readable medium |
US20220284109A1 (en) * | 2019-08-27 | 2022-09-08 | Nec Corporation | Backdoor inspection apparatus, backdoor inspection method, and non-transitory computer readable medium |
Also Published As
Publication number | Publication date |
---|---|
JP5690689B2 (en) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5690689B2 (en) | Application analysis apparatus and program | |
Sun et al. | Monet: a user-oriented behavior-based malware variants detection system for android | |
Spreitzenbarth et al. | Mobile-Sandbox: combining static and dynamic analysis with machine-learning techniques | |
US11620383B2 (en) | Dynamic analysis techniques for applications | |
US11604878B2 (en) | Dynamic analysis techniques for applications | |
Spreitzenbarth et al. | Mobile-sandbox: having a deeper look into android applications | |
JP5723760B2 (en) | Application analysis apparatus, application analysis system, and program | |
Gianazza et al. | Puppetdroid: A user-centric ui exerciser for automatic dynamic analysis of similar android applications | |
JP5654944B2 (en) | Application analysis apparatus and program | |
Faruki et al. | Droidanalyst: Synergic app framework for static and dynamic app analysis | |
JP5478390B2 (en) | Log extraction system and program | |
Alfalqi et al. | Android platform malware analysis | |
JP2012008732A (en) | Installation control device and program | |
Liu et al. | No privacy among spies: Assessing the functionality and insecurity of consumer android spyware apps | |
KR101431192B1 (en) | Method for Rooting Attack Events Detection on Mobile Device | |
Vella et al. | Volatile memory-centric investigation of SMS-hijacked phones: a Pushbullet case study | |
Cao et al. | Rotten apples spoil the bunch: An anatomy of Google Play malware | |
Nguyen et al. | Exploitation and detection of a malicious mobile application | |
Hasan et al. | Enhancing monkey to trigger malicious payloads in android malware | |
Short et al. | Android smartphone third party advertising library data leak analysis | |
JP5667957B2 (en) | Malware detection device and program | |
Demissie et al. | Security testing of second order permission re-delegation vulnerabilities in android apps | |
JP5941745B2 (en) | Application analysis apparatus, application analysis system, and program | |
JP5478381B2 (en) | Application determination system and program | |
Liang et al. | An effective online scheme for detecting Android malware |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140221 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20140224 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20141027 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141111 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150107 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20150108 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150127 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150202 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5690689 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |