JP6018344B2 - 動的読み込みコード解析装置、動的読み込みコード解析方法及び動的読み込みコード解析プログラム - Google Patents

動的読み込みコード解析装置、動的読み込みコード解析方法及び動的読み込みコード解析プログラム Download PDF

Info

Publication number
JP6018344B2
JP6018344B2 JP2016523429A JP2016523429A JP6018344B2 JP 6018344 B2 JP6018344 B2 JP 6018344B2 JP 2016523429 A JP2016523429 A JP 2016523429A JP 2016523429 A JP2016523429 A JP 2016523429A JP 6018344 B2 JP6018344 B2 JP 6018344B2
Authority
JP
Japan
Prior art keywords
information
code
dynamic
reading code
storage unit
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.)
Active
Application number
JP2016523429A
Other languages
English (en)
Other versions
JPWO2015182418A1 (ja
Inventor
孝昭 名雲
孝昭 名雲
満昭 秋山
満昭 秋山
毅 八木
毅 八木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Application granted granted Critical
Publication of JP6018344B2 publication Critical patent/JP6018344B2/ja
Publication of JPWO2015182418A1 publication Critical patent/JPWO2015182418A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Virology (AREA)
  • Bioethics (AREA)
  • Debugging And Monitoring (AREA)
  • Telephone Function (AREA)
  • Stored Programmes (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明は、動的読み込みコード解析装置、動的読み込みコード解析方法及び動的読み込みコード解析プログラムに関する。
現在、例えば、Android(登録商標)アプリケーションなどのモバイル端末向けのアプリケーションにおいて、モバイル端末に蓄積された電話帳データ、位置情報、通話履歴、ブラウザのアクセス履歴などを含む利用者情報を用いて利便性の高いサービスを提供している。
この一方で、アプリケーションのインストール時におけるコード(オリジナルコード)に対して、インストール後に動的に読み込まれるコード(以下、「動的読み込みコード」と言う)が、サービスに不必要な利用者情報まで取得して外部に送信する場合が多い。
また、アプリケーションの解析手法には、動的手法と静的手法とが知られている。例えば、動的手法では、一般的な利用者情報を送信するアプリケーションに対して、モバイル端末内の利用者情報にテイントタグと呼ばれるタグ情報を付与し、ネットワーク送信やファイル書き込み時にタグ情報を解析する。一方で、静的手法では、アプリケーションを動作させずにアプリケーション自体を解析してデータフローを解析する。
Sebastian Poeplau et al., "Execute This! Analyzing Unsafe and Malicious Dynamic Code Loading in Android Applications", Proceedings of Annual Network & Distributed System Security Symposium (NDSS), 2014. "androguard"、[online]、[平成26年5月19日検索]、インターネット<https://code.google.com/p/androguard/> William Enck et al., "TaintDroid: An Information-Flow Tracking System for Realtime Privacy Monitoring on Smartphones", Proceedings of the 9th USENIX Symposium on Operating Systems Design and Implementation (OSDI), 2010.
しかしながら、上記の従来技術では、大量のアプリケーションに対して網羅的に、かつ誤検知なく利用者情報の送信を引き起こした動的読み込みコードを特定することができないという問題がある。なお、ここで言う「誤検知」とは、アプリケーション動作時に起こり得ない動作を検知してしまうことである。
例えば、静的手法では、アプリケーションを動作させないので動的読み込みコードをそもそも入手することができない。また、動的手法では、テイントタグを解析することで外部に送信される利用者情報を検出することが可能であるが、オリジナルコードと動的読み込みコードとを区別して解析することができない。このため、動的手法では、利用者情報の送信がどのコードに起因するのかを特定することができない。
開示の技術は、上述に鑑みてなされたものであって、大量のアプリケーションに対して網羅的に、かつ誤検知なく利用者情報の送信を引き起こした動的読み込みコードを特定することを目的とする。
本願の開示する動的読み込みコード解析装置は、記憶部と、抽出部と、特定部とを備える。記憶部は、ネットワークを介して取得した動的読み込みコード毎に前記動的読み込みコードのクラス構造を示す動的読み込みコード情報と、利用者情報に付与されたタグ情報と前記利用者情報について実行されたコードのクラス構造とを対応付けたコールメソッド情報と、を記憶する。抽出部は、他装置への利用者情報の送信を検出し、検出した前記利用者情報に対して付与されたタグ情報と一致するタグ情報を、前記記憶部に記憶された前記コールメソッド情報から特定し、特定したタグ情報に対応付けられたクラス構造を抽出する。特定部は、抽出された前記クラス構造を示す動的読み込みコード情報を、前記記憶部から検索し、検索された動的読み込みコード情報に対応する動的読み込みコードを特定する。
開示する動的読み込みコード解析装置、動的読み込みコード解析方法及び動的読み込みコード解析プログラムの一つの態様によれば、大量のアプリケーションに対して網羅的に、かつ誤検知なく利用者情報の送信を引き起こした動的読み込みコードを特定することができるという効果を奏する。
図1は、第1の実施形態に係る動的読み込みコード解析システムの構成例を示す図である。 図2は、第1の実施形態に係る動的読み込みコード解析装置による処理動作を説明するための図である。 図3は、第1の実施形態に係る動的読み込みコード解析装置の構成例を示す図である。 図4は、第1の実施形態に係るタグ情報記憶部が記憶するデータ構造の一例を示す図である。 図5は、第1の実施形態に係る動的読み込みコード情報記憶部が記憶するデータ構造の一例を示す図である。 図6は、第1の実施形態に係るコールメソッド情報記憶部が記憶するデータ構造の一例を示す図である。 図7は、第1の実施形態に係るタグ情報制御部の処理動作を説明するための図である。 図8は、第1の実施形態に係る動的読み込みコード解析装置による処理手順を示すフローチャートである。 図9は、第1の実施形態に係る動的読み込みコード情報生成部による処理手順を示すフローチャートである。 図10は、第1の実施形態に係るコールメソッド情報生成部による処理手順を示すフローチャートである。 図11は、第2の実施形態に係る動的読み込みコード解析装置の構成例を示す図である。 図12は、動的読み込みコード解析プログラムを実行するコンピュータを示す図である。
以下に、開示する動的読み込みコード解析装置、動的読み込みコード解析方法及び動的読み込みコード解析プログラムの実施形態について、図面に基づいて詳細に説明する。なお、本実施形態により開示する発明が限定されるものではない。
(第1の実施形態)
図1は、第1の実施形態に係る動的読み込みコード解析システム1の構成例を示す図である。図1に示すように、第1の実施形態に係る動的読み込みコード解析システム1では、LAN(Local Area Network)などのネットワーク2を介して、動的読み込みコード解析装置10と、外部装置3と、外部装置4と、携帯端末装置5とが接続される。なお、動的読み込みコード解析システム1の構成は、図1に示す例に限定されるものではない。例えば、図1に示す例では、外部装置が2台であり、携帯端末装置が1台である場合を図示しているが、外部装置及び携帯端末装置の数は、図1に示した数に限定されるものではない。
外部装置3は、動的読み込みコードを管理する。ここで言う「動的読み込みコード」とは、アプリケーションが端末へインストールされた後に、アプリケーションに組み込まれるコードを示す。言い換えると、「動的読み込みコード」は、アプリケーションのインストール時におけるコード(以下、「オリジナルコード」と言う)に対して、インストール後に動的に読み込まれるコードである。このような動的読み込みコードには、アプリケーションプライバシーポリシーを越えて利用者情報を送信する機能を付加するものが含まれる場合がある。なお、ここで言う「利用者情報」とは、Android(登録商標)を含むスマートフォン端末に格納される、他人によって個人を特定可能な情報及び他人には知られたくない情報を示す。例えば、利用者情報には、住所、電話番号、氏名、契約者ID(Identifier)、パスワード、カード番号、位置情報、通話履歴などが含まれる。
また、外部装置3は、携帯端末装置5や動的読み込みコード解析装置10からの取得要求に応じて、動的読み込みコードを携帯端末装置5や動的読み込みコード解析装置10に配信する。なお、携帯端末装置5や動的読み込みコード解析装置10は、意図して或いは意図せずに、動的読み込みコードの取得を外部装置3に要求する。
外部装置4は、利用者情報を収集する装置である。例えば、外部装置4は、動的読み込みコードを取得した携帯端末装置5から利用者情報を収集する。
携帯端末装置5は、例えば、スマートフォンやタブレット端末などである。この携帯端末装置5には、携帯端末装置5の利用者の利用者情報が格納される。この携帯端末装置5は、利用者の操作に応じて、アプリケーションを配布するアプリケーション管理装置(図示せず)にアクセスし、アプリケーションを取得する。
また、携帯端末装置5が取得したアプリケーションのオリジナルコードが、例えば広告収入を目的とした動的読み込みコードを使用した場合、アプリケーションプライバシーポリシーを越えて利用者情報が例えば外部装置4に送信される場合がある。また、ネットワーク2から取得したコードを読み込む際は、読み込まれる動的読み込みコードが動的に変化する場合がある。このため、同じオリジナルコードを実行しても動的読み込みコードに依存してアプリケーションの動作は変化する。かかる場合、アプリケーションプライバシーポリシーを越えて利用者情報が例えば外部装置4に送信される場合がある。
このようなことから、第1の実施形態に係る動的読み込みコード解析装置10は、動的読み込みコードについて独立して利用者情報の送信を行うかどうかを解析する。例えば、動的読み込みコード解析装置10は、サンドボックスなどの保護された領域を構築し、この保護された領域内で動的読み込みコードを解析することで、動的読み込みコード解析装置10のシステムに影響が及ばないようにする。
図2は、第1の実施形態に係る動的読み込みコード解析装置10による処理動作を説明するための図である。図2に示す例では、動的読み込みコード解析装置10が、外部装置3から取得した動的読み込みコードの中から、利用者情報の送信を引き起こした動的読み込みコードを特定する場合について説明する。
図2に示すように、動的読み込みコード解析装置10は、外部装置3に動的読み込みコードの取得を要求する(ステップS1)。そして、外部装置3は、動的読み込みコードを動的読み込みコード解析装置10に送信する(ステップS2)。
また、動的読み込みコード解析装置10は、取得した動的読み込みコードを解析する(ステップS3)。ここで、動的読み込みコード解析装置10は、動的読み込みコードの解析結果を動的読み込みコード情報として動的読み込みコード情報記憶部に記憶する。
また、動的読み込みコード解析装置10は、取得したアプリケーションを動作させて、利用者情報の流れを解析する動的解析を行う(ステップS4)。例えば、動的読み込みコード解析装置10は、動的解析として、テイント解析を行う。より具体的には、動的読み込みコード解析装置10は、利用者情報にタグ情報を付与した後に、アプリケーションを実行し、利用者情報が操作されるごとにメソッドトレースを行う。動的読み込みコード解析装置10は、メソッドトレースの結果をコールメソッド情報としてコールメソッド情報記憶部に記憶する。
そして、動的読み込みコード解析装置10は、外部に送信される情報のタグ情報を検出すると(ステップS5)、動的読み込みコード情報とコールメソッド情報とを照合して、利用者情報の送信を引き起こした動的読み込みコードを特定する(ステップS6)。
次に、図3を用いて、図1に示した動的読み込みコード解析装置10の構成を説明する。図3は、第1の実施形態に係る動的読み込みコード解析装置10の構成例を示す図である。図3に示すように、動的読み込みコード解析装置10は、入力部11、出力部12、通信制御部13、制御部14および記憶部15を有する。
入力部11は、動的読み込みコード解析装置10の操作者からの各種操作を受付ける。出力部12は、例えば液晶ディスプレイ等であり、各種情報を出力する。通信制御部13は、ネットワーク2を介して接続された他装置との間でやり取りする各種情報に関する通信を制御する。例えば、通信制御部13は、外部装置3に対して動的読み込みコードの取得を要求し、外部装置3から動的読み込みコードを受信する。
記憶部15は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置などである。例えば、記憶部15は、図3に示すように、タグ情報記憶部15aと、動的読み込みコード情報記憶部15bと、コールメソッド情報記憶部15cと、利用者情報記憶部15dとを有する。
利用者情報記憶部15dは、利用者情報を記憶する。ここで、利用者情報とは、Android(登録商標)を含むスマートフォン端末に格納される、他人によって個人を特定可能な情報及び他人には知られたくない情報を示す。利用者情報には、例えば、住所、電話番号、氏名、契約者ID、パスワード、カード番号、位置情報、通話履歴などが含まれる。また、利用者情報には、利用者端末の識別番号、SIM(Subscriber Identity Module)識別番号、OS(Operating System)生成識別番号、カメラ画像、SMS(Short Message Service)情報、ブックマーク情報などが含まれてもよい。なお、動的読み込みコード解析装置10が記憶する利用者情報は、実在する利用者情報ではなくダミーデータであってもよい。
タグ情報記憶部15aは、追跡したい情報に付与されたテイントタグを示すタグ情報を記憶する。図4は、第1の実施形態に係るタグ情報記憶部15aが記憶するデータ構造の一例を示す図である。例えば、図4に示すように、タグ情報記憶部15aは、「テイントタグID」と、「テイントソース」と、「アドレス」と、「利用者情報判定情報」とを対応付けた情報を記憶する。
ここで、タグ情報記憶部15aが記憶する「テイントタグID」は、テイントタグの識別子を示す。例えば、「テイントタグID」には、「タグA」、「タグB」などが格納される。また、タグ情報記憶部15aが記憶する「テイントソース」は、テイントを付与する対象を示す。言い換えると、テイントソースとは追跡したい情報であり、利用者情報が含まれる。例えば、「テイントソース」には、「XX」、「YY」、「ABC」などが格納される。なお、ここで、「XX」及び「YY」は、利用者情報であり、「ABC」は、利用者情報以外の情報であるものとする。
また、タグ情報記憶部15aが記憶する「アドレス」は、記憶領域においてテイントソースが格納された記憶位置を示す。例えば、「アドレス」には、「1000−1100」、「2000−2100」などが格納される。なお、「アドレス」に格納される値は、テイントソースの格納される記憶位置の変更に応じて更新される。また、タグ情報記憶部15aが記憶する「利用者情報判定情報」は、テイントソースが利用者情報であるか否かを示す。例えば、「利用者情報判定情報」には、テイントソースが利用者情報であることを示す「1」、テイントソースが利用者情報ではないことを示す「0」などが格納される。
一例をあげると、図4に示すタグ情報記憶部15aは、利用者情報であるテイントソース「XX」に付与されたテイントタグが「タグA」であり、テイントソース「XX」がアドレス「1000−1100」に格納されていることを示す。また、図4に示すタグ情報記憶部15aは、利用者情報であるテイントソース「YY」に付与されたテイントタグが「タグB」であり、テイントソース「YY」がアドレス「2000−2100」に格納されていることを示す。また、図4に示すタグ情報記憶部15aは、利用者情報ではないテイントソース「ABC」に付与されたテイントタグが「タグC」であり、テイントソース「ABC」がアドレス「3000−3100」に格納されていることを示す。
動的読み込みコード情報記憶部15bは、ネットワークを介して取得した動的読み込みコード毎に前記動的読み込みコードのクラス構造を示す動的読み込みコード情報を記憶する。図5は、第1の実施形態に係る動的読み込みコード情報記憶部15bが記憶するデータ構造の一例を示す図である。例えば、図5に示すように、動的読み込みコード情報記憶部15bは、「動的読み込みコードID」と、「パッケージ名」と、「クラス名」とを対応付けた情報を記憶する。なお、動的読み込みコード情報記憶部15bが記憶する「パッケージ名」及び「クラス名」のことを「解析情報」とも言う。
ここで、動的読み込みコード情報記憶部15bが記憶する「動的読み込みコードID」は、動的読み込みコードの識別子を示す。例えば、「動的読み込みコードID」には、「1」、「2」などが格納される。
また、動的読み込みコード情報記憶部15bが記憶する「パッケージ名」は、動的読み込みコードのクラス構造としてのパッケージ名を示す。例えば、「パッケージ名」には、「com.twxxxxx.android」、「com.xxxxle.android.apps.A」などが格納される。
また、動的読み込みコード情報記憶部15bが記憶する「クラス名」は、動的読み込みコードのクラス構造としてのクラス名を示す。例えば、「クラス名」には、「classC」、「classA」などが格納される。
一例をあげると、図5に示す動的読み込みコード情報記憶部15bは、動的読み込みコードIDが「1」である動的読み込みコードのクラス構造が、「com.twxxxxx.android」及び「classC」であることを示す。また、図5に示す動的読み込みコード情報記憶部15bは、動的読み込みコードIDが「2」である動的読み込みコードのクラス構造が、「com.xxxxle.android.apps.A」及び「classA」であることを示す。
コールメソッド情報記憶部15cは、利用者情報に付与されたタグ情報と前記利用者情報について実行されたコードのクラス構造とを対応付けたコールメソッド情報を記憶する。図6は、第1の実施形態に係るコールメソッド情報記憶部15cが記憶するデータ構造の一例を示す図である。例えば、図6に示すように、コールメソッド情報記憶部15cは、「テイントタグID」と、「パッケージ名」と、「クラス名」とを対応付けた情報を記憶する。なお、コールメソッド情報記憶部15cが記憶する「パッケージ名」及び「クラス名」のことを「トレース情報」とも言う。
ここで、コールメソッド情報記憶部15cが記憶する「テイントタグID」は、テイントタグの識別子を示す。例えば、「テイントタグID」には、「タグA」、「タグB」などが格納される。
また、コールメソッド情報記憶部15cが記憶する「パッケージ名」は、テイントタグが伝搬する場合に実行したコードのクラス構造としてのパッケージ名を示す。例えば、「パッケージ名」には、「com.yyyyy」、「com.xxxxle.android.apps.A」などが格納される。
また、コールメソッド情報記憶部15cが記憶する「クラス名」は、テイントタグが伝搬する場合に実行したコードのクラス構造としてのクラス名を示す。例えば、「クラス名」には、「classB」、「classA」などが格納される。
一例をあげると、図6に示すコールメソッド情報記憶部15cは、テイントタグIDが「タグA」であるテイントタグが伝搬する場合に実行したコードのクラス構造が、「com.yyyyy」及び「classB」であることを示す。また、図6に示すコールメソッド情報記憶部15cは、テイントタグIDが「タグB」であるテイントタグが伝搬する場合に実行したコードのクラス構造が、「com.xxxxle.android.apps.A」及び「classA」であることを示す。
図3に戻る。制御部14は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路やASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路である。この制御部14は、動的読み込みコード情報生成部14aと、コールメソッド情報生成部14bと、抽出部14cと、特定部14dと、タグ情報制御部14eとを有する。
タグ情報制御部14eは、動的解析として、テイント解析を行う。図7は、第1の実施形態に係るタグ情報制御部14eの処理動作を説明するための図である。図7に示すように、タグ情報制御部14eは、テイントソースとして利用者情報である情報XXにタグAを付与し、テイントソースとして利用者情報である情報YYにタグBを付与し、CPU内のレジスタにそれぞれを格納する。そして、アプリケーションが実行されたことにより、情報XXおよび情報YYが加算されて情報ZZとなった場合には、タグ情報制御部14eは、属性Aおよび属性Bも伝搬ルールに従って処理する。すなわち、タグ情報制御部14eは、属性Aと属性Bとを加算し、情報ZZのタグ情報が「属性A、属性B」となる。このように、タグ情報制御部14eは、利用者情報に対する演算処理が実行された場合に、テイントタグを伝搬させる。
なお、後述する抽出部14cは、情報ZZがネットワーク送信されたことを検出する。かかる場合、抽出部14cは、情報ZZのタグ情報「属性A、属性B」を解析し、送信された情報が利用者情報であるか否かを判定する。
動的読み込みコード情報生成部14aは、動的読み込みコード情報を生成する。例えば、動的読み込みコード情報生成部14aは、DexClassLoaderなどで動的読み込みコードを使用するクラスを監視し、このクラスが使用された場合に、動的読み込みコードを検出する。
続いて、動的読み込みコード情報生成部14aは、ネットワークを介して取得した動的読み込みコードを解析して動的読み込みコード情報を生成し、記憶部15に格納する。ここで、動的読み込みコードは、内部コードと同様にDEX(Dalvik EXecutable)ファイル形式であるので、動的読み込みコード情報生成部14aは、DEXファイルのリバースエンジニアリング解析によって、「パッケージ名」と、「クラス名」とを特定する。
そして、動的読み込みコード情報生成部14aは、検出した動的読み込みコードの「動的読み込みコードID」に、特定した「パッケージ名」と「クラス名」とを対応付けた動的読み込みコード情報を生成し、動的読み込み情報記憶部15bに格納する。
コールメソッド情報生成部14bは、利用者情報について演算処理が実行された場合に、演算処理が実行するコードを解析してコールメソッド情報を生成し、生成されたコールメソッド情報を、記憶部15に格納する。例えば、コールメソッド情報生成部14bは、タグ情報制御部14eによって利用者情報に対する演算処理が実行された場合に、メソッドトレースを行う。言い換えると、コールメソッド情報生成部14bは、テイント解析をトリガーとしてコールメソッドを出力させる。
そして、コールメソッド情報生成部14bは、出力されたコールメソッドのうち少なくとも「パッケージ名」と「クラス名」とを、演算処理が実行されたテイントタグの「テイントタグID」に対応付けたコールメソッド情報を生成し、コールメソッド情報記憶部15cに格納する。
抽出部14cは、他装置への利用者情報の送信を検出し、検出した利用者情報に対して付与されたタグ情報と一致するタグ情報を、記憶部15に記憶されたコールメソッド情報から特定し、特定したタグ情報に対応付けられたクラス構造を抽出する。なお、抽出部14cの詳細な処理については、図8を用いて後述する。
特定部14dは、抽出部14cによって抽出されたクラス構造を示す動的読み込みコード情報を、記憶部15から検索し、検索された動的読み込みコード情報に対応する動的読み込みコードを特定する。例えば、特定部14dは、利用者情報の送信が検出されたことを契機に、抽出されたクラス構造を示す動的読み込みコード情報を、記憶部15から検索し、検索された動的読み込みコード情報に対応する動的読み込みコードを特定する。より具体的には、特定部14dは、利用者情報について実行されたコードのパッケージ名及びクラス名と一致するパッケージ名及びクラス名を含んだ動的読み込みコードを動的読み込みコード情報記憶部15bから特定する。なお、特定部14dの詳細な処理については、図8を用いて後述する。
次に、図8を用いて、第1の実施形態に係る動的読み込みコード解析装置10による照合処理を説明する。図8は、第1の実施形態に係る動的読み込みコード解析装置10による処理手順を示すフローチャートである。
図8に示すように、動的読み込みコード解析装置10の抽出部14cは、情報の送信を検出したか否かを判定する(ステップS101)。例えば、抽出部14cは、ネットワーク通信のAPIが呼ばれた場合に、情報の送信を検出したと判定する。なお、抽出部14cは、情報の送信を検出したと判定しなかった場合には(ステップS101、No)、繰り返し情報の送信を検出したか否かを判定する。
ここで、抽出部14cは、情報の送信を検出したと判定した場合(ステップS101、Yes)、送信対象となる情報のテイントを解析する(ステップS102)。例えば、抽出部14cは、送信対象となる情報に付与されているテイントタグを読み出す。そして、抽出部14cは、読み出したテイントタグと一致するテイントタグをタグ情報記憶部15aから特定し、特定したテイントタグに対応付けられた「利用者情報判定情報」に格納される値を読み出す。
続いて、抽出部14cは、情報が利用者情報であるか否かを判定する(ステップS103)。例えば、抽出部14cは、タグ情報記憶部15aの「利用者情報判定情報」を参照し、格納される値が「1」である場合に送信対象となる情報が利用者情報であると判定し、格納される値が「0」である場合に送信対象となる情報が利用者情報ではないと判定する。なお、抽出部14cは、送信対象となる情報にテイントタグが付与されていない場合、送信対象となる情報が利用者情報ではないと判定する。なお、抽出部14cは、送信対象となる情報が利用者情報であると判定しなかった場合(ステップS103、No)、処理を終了する。
ここで、抽出部14cは、送信対象となる情報が利用者情報であると判定した場合(ステップS103、Yes)、テイントタグに対応するトレース情報を読み出す(ステップS104)。例えば、抽出部14cは、読み出したテイントタグと一致するテイントタグをコールメソッド情報記憶部15cから特定し、特定したテイントタグに対応付けられた「パッケージ名」と「クラス名」とに格納される値を読み出す。例えば、利用者情報に付与されたテイントタグが図6に示す「タグB」であった場合、抽出部14cは、トレース情報として「com.xxxxle.android.apps.A」及び「classA」を抽出する。また、利用者情報に付与されたテイントタグが図6に示す「タグA」であった場合、抽出部14cは、トレース情報として「com.yyyyy」及び「classB」を抽出する。
そして、特定部14dは、動的読み込みコード情報が存在するか否かを判定する(ステップS105)。例えば、特定部14dは、動的読み込み情報記憶部15bを検索し、動的読み込み情報が存在するか否かを判定する。ここで、特定部14dは、動的読み込みコード情報が存在すると判定しなかった場合(ステップS105、No)、動的読み込みコードによる利用者情報の送信が起こらないものと判定し、処理を終了する。
一方、特定部14dは、動的読み込みコード情報が存在すると判定した場合(ステップS105、Yes)、トレース情報と一致する動的読み込みコード情報が存在するか否かを判定する(ステップS106)。例えば、利用者情報に付与されたテイントタグが図6に示す「タグB」であった場合について説明する。かかる場合、特定部14dは、トレース情報として「com.xxxxle.android.apps.A」及び「classA」と一致する動的読み込みコード情報を動的読み込みコード情報記憶部15bから検索し、動的読み込みコードIDが「2」である動的読み込みコードを特定する。一方、利用者情報に付与されたテイントタグが図6に示す「タグA」であった場合について説明する。かかる場合、特定部14dは、トレース情報として「com.yyyyy」及び「classB」と一致する動的読み込みコード情報を動的読み込みコード情報記憶部15bから検索するが、一致する動的読み込みコードがないと判定する。
そして、特定部14dは、トレース情報と一致する動的読み込みコード情報が存在すると判定した場合(ステップS106、Yes)、一致する動的読み込みコード情報を、利用者情報の送信を引き起こした動的読み込みコードとして特定する(ステップS107)。なお、特定部14dは、トレース情報と一致する動的読み込みコード情報が存在すると判定しなかった場合(ステップS106、No)、処理を終了する。
次に、図9を用いて、第1の実施形態に係る動的読み込みコード情報生成部14aによる動的読み込みコード情報生成処理を説明する。図9は、第1の実施形態に係る動的読み込みコード情報生成部14aによる処理手順を示すフローチャートである。
図9に示すように、動的読み込みコード情報生成部14aは、動的読み込みコードを検出したか否かを判定する(ステップS201)。例えば、動的読み込みコード情報生成部14aは、DexClassLoaderなどで動的読み込みコードを使用するクラスが使用された場合に、動的読み込みコードを検出する。ここで、動的読み込みコード情報生成部14aは、動的読み込みコードを検出したと判定しなかった場合(ステップS201、No)、繰り返し動的読み込みコードを検出したか否かを判定する。
一方、動的読み込みコード情報生成部14aは、動的読み込みコードを検出したと判定した場合(ステップS201、Yes)、検出した動的読み込みコードを解析する(ステップS202)。そして、動的読み込みコード情報生成部14aは、DEXファイルのリバースエンジニアリング解析によって、「パッケージ名」と「クラス名」とを特定する(ステップS203)。
続いて、動的読み込みコード情報生成部14aは、検出した動的読み込みコードに「動的読み込みコードID」を付与し、付与した「動的読み込みコードID」に、特定した「パッケージ名」と「クラス名」とを対応付けた動的読み込みコード情報を生成し、動的読み込み情報記憶部15bに格納する(ステップS204)。
次に、図10を用いて、第1の実施形態に係るコールメソッド情報生成部14bによるコールメソッド情報生成処理を説明する。図10は、第1の実施形態に係るコールメソッド情報生成部14bによる処理手順を示すフローチャートである。
図10に示すように、コールメソッド情報生成部14bは、利用者情報の演算処理を検出したか否かを判定する(ステップS301)。ここで、コールメソッド情報生成部14bは、利用者情報の演算処理を検出したと判定しなかった場合(ステップS301、No)、繰り返し利用者情報の演算処理を検出したか否かを判定する。
一方、コールメソッド情報生成部14bは、利用者情報の演算処理を検出したと判定した場合(ステップS301、Yes)、コールメソッドを出力させる(ステップS302)。そして、コールメソッド情報生成部14bは、出力されたコールメソッドのうち少なくとも「パッケージ名」と「クラス名」とを取得する(ステップS303)。
続いて、コールメソッド情報生成部14bは、演算処理が実行されたテイントタグの「テイントタグID」に、取得した「パッケージ名」と「クラス名」とを対応付けたコールメソッド情報を生成し、コールメソッド情報記憶部15cに格納する(ステップS304)。
上述してきたように、第1の実施形態に係る動的読み込みコード解析装置10は、利用者情報に付与されたテイントタグを解析することで、利用者情報を送信したコードのクラス構造を特定する。そして、第1の実施形態に係る動的読み込みコード解析装置10は、このコードのクラス構造に基づいて、利用者情報の送信を引き起こした動的読み込みコードを特定する。ここで、第1の実施形態に係る動的読み込みコード解析装置10は、利用者情報の送信が検出されたことを契機に、動的読み込みコードを特定する。これにより、第1の実施形態に係る動的読み込みコード解析装置10は、利用者情報の送信を引き起こした動的読み込みコードを特定することができる。
また、第1の実施形態に係る動的読み込みコード解析装置10は、利用者情報について実行されたコードのパッケージ名及びクラス名と一致するパッケージ名及びクラス名を含んだ動的読み込みコードを特定する。これにより、第1の実施形態に係る動的読み込みコード解析装置10は、大量のアプリケーションに対して網羅的に、かつ誤検知なく利用者情報の送信を引き起こした動的読み込みコードを特定することができる。
なお、上述した第1の実施形態では、抽出部14cは、タグ情報記憶部15aが記憶する利用者情報判定情報を参照して、送信対象となる情報が利用者情報であるか否かを判定するものとして説明したが実施形態はこれに限定されるものではない。例えば、テイントタグを利用者情報に対してのみ付与する場合、抽出部14cは、送信対象となる情報が利用者情報であるか否かを判定しなくてもよい。
(第2の実施形態)
第1の実施形態では、特定部14dが、利用者情報の送信が検出されたことを契機に、抽出されたトレース情報に対応する動的読み込みコードを特定するものとして説明したが、実施形態はこれに限定されるものではない。例えば、特定部14dは、所定の間隔ごとに抽出されたトレース情報を用いて動的読み込みコードを特定するようにしてもよい。そこで、第2の実施形態では、抽出部14cによって抽出されたトレース情報を記憶部15に格納しておき、特定部14dが、所定の間隔ごとにトレース情報を読み出して動的読み込みコードを特定する場合について説明する。
図11は、第2の実施形態に係る動的読み込みコード解析装置100の構成例を示す図である。なお、図11において、図3に示した第1の実施形態に係る動的読み込みコード解析装置10と同一の構成については、同一の符号を付与し詳細な説明を省略する。
図11に示すように、動的読み込みコード解析装置100は、入力部11、出力部12、通信制御部13、制御部140および記憶部150を有する。記憶部150は、例えば、RAM、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置などである。
例えば、記憶部150は、図11に示すように、タグ情報記憶部15aと、動的読み込みコード情報記憶部15bと、コールメソッド情報記憶部15cと、利用者情報記憶部15dと、トレース情報記憶部15eとを有する。トレース情報記憶部15eは、抽出部14cによって抽出されたトレース情報を記憶する。
制御部140は、CPUやMPUなどの電子回路やASICやFPGAなどの集積回路である。この制御部140は、動的読み込みコード情報生成部14aと、コールメソッド情報生成部14bと、抽出部14cと、特定部14dと、タグ情報制御部14eと、格納制御部14fとを有する。
格納制御部14fは、抽出部14cによって抽出されたトレース情報をトレース情報記憶部15eに格納する。言い換えると、格納制御部14fは、抽出部14cによって抽出されたクラス構造をトレース情報記憶部15eに格納する。そして、第2の実施形態に係る特定部14dは、所定の間隔ごとにトレース情報記憶部15eからトレース情報を読み出し、読み出したトレース情報に対応する解析情報を特定し、解析情報に対応付けられた動的読み込みコードを特定する。言い換えると、第2の実施形態に係る特定部14dは、所定の間隔ごとにトレース情報記憶部15eから抽出されたクラス構造を読み出し、読み出した抽出されたクラス構造を示す動的読み込みコード情報を、記憶部15から検索し、検索された動的読み込みコード情報に対応する動的読み込みコードを特定する。
このように、第2の実施形態に係る動的読み込みコード解析装置100は、利用者情報に付与されたテイントタグを解析することで、利用者情報を送信したコードのクラス構造を特定する。そして、第2の実施形態に係る動的読み込みコード解析装置100は、このコードクラス構造に基づいて、利用者情報の送信を引き起こした動的読み込みコードを特定する。ここで、第2の実施形態に係る動的読み込みコード解析装置100は、所定の間隔ごとにトレース情報記憶部15eからトレース情報を読み出し、読み出したトレース情報に対応する解析情報を特定し、解析情報に対応付けられた動的読み込みコードを特定する。これにより、第2の実施形態に係る動的読み込みコード解析装置100は、大量のアプリケーションに対して網羅的に、かつ誤検知なく利用者情報の送信を引き起こした動的読み込みコードを特定することができる。
(システム構成等)
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、コールメソッド情報生成部14bとタグ情報制御部14eとが統合されてもよい。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
(プログラム)
また、上記第1の実施形態において説明した動的読み込みコード解析装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、第1の実施形態に係る動的読み込みコード解析装置10が実行する処理をコンピュータが実行可能な言語で記述した動的読み込みコード解析プログラムを作成することもできる。この場合、コンピュータが動的読み込みコード解析プログラムを実行することにより、上記第1の実施形態と同様の効果を得ることができる。さらに、かかる動的読み込みコード解析プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録された動的読み込みコード解析プログラムをコンピュータに読み込ませて実行することにより上記第1の実施形態と同様の処理を実現してもよい。以下に、図3に示した動的読み込みコード解析装置10と同様の機能を実現する動的読み込みコード解析プログラムを実行するコンピュータの一例を説明する。
図12は、動的読み込みコード解析プログラムを実行するコンピュータ1000を示す図である。図12に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
メモリ1010は、図12に例示するように、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図12に例示するように、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、図12に例示するように、ディスクドライブ1041に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1041に挿入される。シリアルポートインタフェース1050は、図12に例示するように、例えばマウス1051、キーボード1052に接続される。ビデオアダプタ1060は、図12に例示するように、例えばディスプレイ1061に接続される。
ここで、図12に例示するように、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記の動的読み込みコード解析プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1031に記憶される。具体的には、上記実施形態で説明した抽出部14cと同様の情報処理を実行する抽出手順と、特定部14dと同様の情報処理を実行する特定手順とが記述されたプログラムモジュールが、ハードディスクドライブ1031に記憶される。
また、上記第1の実施形態で説明した各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1031に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、各種処理手順を実行する。
なお、動的読み込みコード解析プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してCPU1020によって読み出されてもよい。あるいは、動的読み込みコード解析プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
10、100 動的読み込みコード解析装置
11 入力部
12 出力部
13 通信制御部
14、140 制御部
14a 動的読み込みコード情報生成部
14b コールメソッド情報生成部
14c 抽出部
14d 特定部
14e タグ情報制御部
14f 格納制御部
15、150 記憶部
15a タグ情報記憶部
15b 動的読み込みコード情報記憶部
15c コールメソッド情報記憶部
15d 利用者情報記憶部
15e トレース情報記憶部

Claims (8)

  1. ネットワークを介して取得した動的読み込みコード毎に前記動的読み込みコードのクラス構造を示す動的読み込みコード情報と、利用者情報に付与されたタグ情報と前記利用者情報について実行されたコードのクラス構造とを対応付けたコールメソッド情報と、を記憶する記憶部と、
    他装置への利用者情報の送信を検出し、検出した前記利用者情報に対して付与されたタグ情報と一致するタグ情報を、前記記憶部に記憶された前記コールメソッド情報から特定し、特定したタグ情報に対応付けられたクラス構造を抽出する抽出部と、
    抽出された前記クラス構造を示す動的読み込みコード情報を、前記記憶部から検索し、検索された動的読み込みコード情報に対応する動的読み込みコードを特定する特定部と
    を備えたことを特徴とする動的読み込みコード解析装置。
  2. 前記特定部は、利用者情報の送信が検出されたことを契機に、抽出された前記クラス構造を示す動的読み込みコード情報を、前記記憶部から検索し、検索された動的読み込みコード情報に対応する動的読み込みコードを特定することを特徴とする請求項1に記載の動的読み込みコード解析装置。
  3. 前記抽出部によって抽出されたクラス構造を前記記憶部に格納する格納制御部を更に備え、
    前記特定部は、所定の間隔ごとに前記記憶部から前記抽出されたクラス構造を読み出し、読み出した前記抽出された前記クラス構造を示す動的読み込みコード情報を、前記記憶部から検索し、検索された動的読み込みコード情報に対応する動的読み込みコードを特定する
    ことを特徴とする請求項1に記載の動的読み込みコード解析装置。
  4. 前記動的読み込みコードのクラス構造は、パッケージ名とクラス名とを含み、
    前記利用者情報について実行されたコードのクラス構造は、パッケージ名とクラス名とを含み、
    前記特定部は、前記利用者情報について実行されたコードのパッケージ名及びクラス名と一致するパッケージ名及びクラス名を含んだ前記動的読み込みコードを特定する
    ことを特徴とする請求項1〜3のいずれか一つに記載の動的読み込みコード解析装置。
  5. ネットワークを介して取得した動的読み込みコードを解析して前記動的読み込みコード情報を生成し、前記記憶部に格納する動的読み込み情報生成部と、
    前記利用者情報について演算処理が実行された場合に、前記演算処理が実行するコードを解析して前記コールメソッド情報を生成し、生成された前記コールメソッド情報を、前記記憶部に格納するコールメソッド情報生成部と
    を更に備えたことを特徴とする請求項1〜3のいずれか一つに記載の動的読み込みコード解析装置。
  6. ネットワークを介して取得した動的読み込みコードを解析して前記動的読み込みコード情報を生成し、前記記憶部に格納する動的読み込み情報生成部と、
    前記利用者情報について演算処理が実行された場合に、前記演算処理が実行するコードを解析して前記コールメソッド情報を生成し、生成された前記コールメソッド情報を、前記記憶部に格納するコールメソッド情報生成部と
    を更に備えたことを特徴とする請求項4に記載の動的読み込みコード解析装置。
  7. 動的読み込みコード解析装置で実行される動的読み込みコード解析方法であって、
    前記動的読み込みコード解析装置は、ネットワークを介して取得した動的読み込みコード毎に前記動的読み込みコードのクラス構造を示す動的読み込みコード情報と、利用者情報に付与されたタグ情報と前記利用者情報について実行されたコードのクラス構造とを対応付けたコールメソッド情報と、を記憶する記憶部を備え、
    前記動的読み込みコード解析装置が、
    他装置への利用者情報の送信を検出し、検出した前記利用者情報に対して付与されたタグ情報と一致するタグ情報を、前記記憶部に記憶された前記コールメソッド情報から特定し、特定したタグ情報に対応付けられたクラス構造を抽出する抽出工程と、
    抽出された前記クラス構造を示す動的読み込みコード情報を、前記記憶部から検索し、検索された動的読み込みコード情報に対応する動的読み込みコードを特定する特定工程と
    を含んだことを特徴とする動的読み込みコード解析方法。
  8. コンピュータに実行させるための動的読み込みコード解析プログラムであって、
    前記コンピュータは、ネットワークを介して取得した動的読み込みコード毎に前記動的読み込みコードのクラス構造を示す動的読み込みコード情報と、利用者情報に付与されたタグ情報と前記利用者情報について実行されたコードのクラス構造とを対応付けたコールメソッド情報と、を記憶する記憶部を備え、
    前記コンピュータに、
    他装置への利用者情報の送信を検出し、検出した前記利用者情報に対して付与されたタグ情報と一致するタグ情報を、前記記憶部に記憶された前記コールメソッド情報から特定し、特定したタグ情報に対応付けられたクラス構造を抽出する抽出手順と、
    抽出された前記クラス構造を示す動的読み込みコード情報を、前記記憶部から検索し、検索された動的読み込みコード情報に対応する動的読み込みコードを特定する特定手順と
    を実行させることを特徴とする動的読み込みコード解析プログラム。
JP2016523429A 2014-05-26 2015-05-18 動的読み込みコード解析装置、動的読み込みコード解析方法及び動的読み込みコード解析プログラム Active JP6018344B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014108139 2014-05-26
JP2014108139 2014-05-26
PCT/JP2015/064178 WO2015182418A1 (ja) 2014-05-26 2015-05-18 動的読み込みコード解析装置、動的読み込みコード解析方法及び動的読み込みコード解析プログラム

Publications (2)

Publication Number Publication Date
JP6018344B2 true JP6018344B2 (ja) 2016-11-02
JPWO2015182418A1 JPWO2015182418A1 (ja) 2017-04-20

Family

ID=54698755

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016523429A Active JP6018344B2 (ja) 2014-05-26 2015-05-18 動的読み込みコード解析装置、動的読み込みコード解析方法及び動的読み込みコード解析プログラム

Country Status (5)

Country Link
US (1) US10242191B2 (ja)
EP (1) EP3136278B1 (ja)
JP (1) JP6018344B2 (ja)
CN (1) CN106462704B (ja)
WO (1) WO2015182418A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101857001B1 (ko) * 2017-03-03 2018-05-14 숭실대학교산학협력단 안드로이드 동적 로딩 파일 추출 방법, 이를 수행하기 위한 기록 매체 및 시스템
US11016874B2 (en) * 2018-09-19 2021-05-25 International Business Machines Corporation Updating taint tags based on runtime behavior profiles
US11354433B1 (en) 2019-03-25 2022-06-07 Trend Micro Incorporated Dynamic taint tracking on mobile devices

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013137612A (ja) * 2011-12-28 2013-07-11 Kddi Corp アプリケーション解析装置、アプリケーション解析システム、およびプログラム
JP2013232113A (ja) * 2012-04-27 2013-11-14 Nippon Telegr & Teleph Corp <Ntt> 情報処理装置、監視方法および監視プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8321840B2 (en) 2007-12-27 2012-11-27 Intel Corporation Software flow tracking using multiple threads
US20110314337A1 (en) * 2010-06-18 2011-12-22 International Business Machines Corporation Method and Apparatus for Locating Input-Model Faults Using Dynamic Tainting
US9298918B2 (en) 2011-11-30 2016-03-29 Elwha Llc Taint injection and tracking
TWI461953B (zh) * 2012-07-12 2014-11-21 Ind Tech Res Inst 運算環境安全方法和電子運算系統
CN103269341B (zh) 2013-05-08 2016-02-17 腾讯科技(深圳)有限公司 一种间谍程序的分析方法和计算机系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013137612A (ja) * 2011-12-28 2013-07-11 Kddi Corp アプリケーション解析装置、アプリケーション解析システム、およびプログラム
JP2013232113A (ja) * 2012-04-27 2013-11-14 Nippon Telegr & Teleph Corp <Ntt> 情報処理装置、監視方法および監視プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6015030209; 名雲 孝昭 Takaaki NAGUMO: '動的クラスローダを利用するAndroidアプリケーション解析手法の研究 Analyzing Dynamic Class Load' 電子情報通信学会技術研究報告 Vol.114 No.70 IEICE Technical Report 第114巻, 20140529, pp.39-44, 一般社団法人電子情報通信学会 The Institute of Ele *

Also Published As

Publication number Publication date
WO2015182418A1 (ja) 2015-12-03
EP3136278A4 (en) 2017-12-27
JPWO2015182418A1 (ja) 2017-04-20
EP3136278B1 (en) 2018-10-10
EP3136278A1 (en) 2017-03-01
US20170206355A1 (en) 2017-07-20
US10242191B2 (en) 2019-03-26
CN106462704A (zh) 2017-02-22
CN106462704B (zh) 2019-05-21

Similar Documents

Publication Publication Date Title
EP3295647B1 (en) Malware warning
KR101161493B1 (ko) 안드로이드 단말 플랫폼에서의 악성 코드와 위험 파일의 진단 방법
US9686303B2 (en) Web page vulnerability detection method and apparatus
US9177129B2 (en) Devices, systems, and methods for monitoring and asserting trust level using persistent trust log
CN102656593B (zh) 对使用链接文件的恶意软件进行检测和响应
CN106022112A (zh) 配置用于恶意件测试的沙箱环境
CN113569246B (zh) 漏洞检测方法、装置、计算机设备和存储介质
CN111163095B (zh) 网络攻击分析方法、网络攻击分析装置、计算设备和介质
JP5832954B2 (ja) タグ付与装置及びタグ付与方法
CN103988467A (zh) 确保软件加密技术安全的加密系统和方法
WO2012103646A1 (en) Determining the vulnerability of computer software applications to privilege-escalation attacks
CN111163094B (zh) 网络攻击检测方法、网络攻击检测装置、电子设备和介质
CN105095759A (zh) 文件的检测方法及装置
JP6018344B2 (ja) 動的読み込みコード解析装置、動的読み込みコード解析方法及び動的読み込みコード解析プログラム
JP5441043B2 (ja) プログラム、情報処理装置、及び情報処理方法
JP6258189B2 (ja) 特定装置、特定方法および特定プログラム
KR102145324B1 (ko) 라이브러리 인젝션을 통한 취약점 분석 방법 및 서버
US10552626B2 (en) System and method for selecting a data entry mechanism for an application based on security requirements
US20140283132A1 (en) Computing application security and data settings overrides
CN111177726A (zh) 一种系统漏洞检测方法、装置、设备及介质
US20180089439A1 (en) Detection of ipc-based mobile vulnerabilities due to insufficient caller permissions
EP3563286A1 (en) Attack signature generation
CN113407434B (zh) 调试文件的处理方法、装置
KR102018960B1 (ko) 이중 패킹을 이용한 코드 난독화
JP6125280B2 (ja) 属性情報管理装置及び属性情報管理方法

Legal Events

Date Code Title Description
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: 20160927

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160929

R150 Certificate of patent or registration of utility model

Ref document number: 6018344

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150