(57)【要約】      （修正有）【課題】既知の情報収集モジュールと類似した通信を行う情報収集モジュールが組み込まれたアプリケーションを検出する。【解決手段】アプリケーション検査装置１の端末装置２において、記憶部２１は、特定情報パラメータ２１７に広告画像に特有の画像サイズを記憶する。グラフ生成手段２２２は、検出対象通信ログ２１３の送受信信号からグラフ情報を生成して検出対象グラフ２１４として記憶する。グラフ照合手段２２３は、特定情報検出手段２２４に検出対象グラフ２１４を入力し、特定情報検出手段２２４は、検出対象グラフ２１４の頂点の頂点ラベルの画像サイズを参照し、特定情報パラメータ２１７に予め登録した特定画像サイズであれば当該頂点を特定情報取得頂点として抽出する。グラフ照合手段２２３は、特定情報検出手段２２４が特定情報取得頂点を抽出していると、情報収集モジュールが組み込まれていると判定する。【選択図】図１
2018014122.tif 000002
【特許請求の範囲】
【請求項１】
端末装置にて動作するアプリケーションプログラムに広告画像を受信する情報収集モジュールが組み込まれているか否かを検査するアプリケーション検査装置であって、
前記広告画像に特有の画像サイズを予め記憶している記憶手段と、
通信手段と、
前記アプリケーションプログラムの動作中に前記通信手段にて受信された受信信号を検出する信号検出手段と、
前記受信信号の中から前記画像サイズを有した前記広告画像を検出する広告画像検出手段と、
少なくとも前記広告画像が検出された場合に前記アプリケーションプログラムに前記情報収集モジュールが組み込まれていると判定する判定手段と、
を備えたことを特徴とするアプリケーション検査装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラムに情報収集モジュールが組み込まれているか否かを検査するアプリケーション検査装置に関する。
【背景技術】
【０００２】
スマートフォン、携帯情報端末あるいは携帯電話などの端末装置には、メールソフト、ゲームソフトあるいは便利ツールなどのアプリケーションプログラム（以下、単にアプリケーションと称する）が豊富に提供されている。これらのアプリケーションの多くには広告配信や利用統計取得のための情報収集モジュールが組み込まれていると言われている。
【０００３】
情報収集モジュールは、端末装置内に記憶されている利用者の個人情報等を利用者に許可を求めることなく外部送信する可能性があり、情報収集モジュールが組み込まれたアプリケーションのインストールは利用者にとっての潜在リスクとなる。そのため、情報収集モジュールが組み込まれたアプリケーションを特定して端末装置の利用者に知らせることで、利用者が安心してアプリケーションの恩恵を享受できる社会を形成することが望まれる。
【０００４】
情報収集モジュールが組み込まれたアプリケーションを特定する方法のひとつとして、アプリケーションが動作しているときの通信を検査して既知の情報収集モジュールが行う通信のパターンと類似しているか否かを判定することが考えられる。
【０００５】
従来、既知の通信と類似した通信を検出するために、予め既知の通信が行う送受信等の順序を状態遷移パターンとして登録し、未知の通信のログ等を当該状態遷移パターンと比較して既知の通信と類似した通信を検出するマルウェア検知システムが提案されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−０１５５１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、情報収集モジュールには、送受信の順序を入れ替える変更を加えたもの、リダイレクトなどの送受信を加える変更を加えたものなど、登録した状態遷移パターンと一致しない通信を行うものが次々と作成される。また、情報収集モジュールの通信中にリトライが発生するなどして通信に冗長性が加わった場合も登録した状態遷移パターンと一致しなくなる。
そのため、従来技術では、新たに作成された情報収集モジュールおよびリトライが発生したときの情報収集モジュールを検出することが困難であった。
【０００８】
本発明は、上記問題を鑑みてなされたものであり、送受信の順序が入れ替わっていたり冗長な送受信が加わっていても類似する通信を検出可能な通信照合装置および既知の情報収集モジュールと類似した通信を行う情報収集モジュールが組み込まれたアプリケーションを検査可能なアプリケーション検査装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
かかる課題を解決するために、本発明は、端末装置にて動作するアプリケーションプログラムに広告画像を受信する情報収集モジュールが組み込まれているか否かを検査するアプリケーション検査装置であって、前記広告画像に特有の画像サイズを予め記憶している記憶手段と、通信手段と、前記アプリケーションプログラムの動作中に前記通信手段にて受信された受信信号を検出する信号検出手段と、前記受信信号の中から前記画像サイズを有した前記広告画像を検出する広告画像検出手段と、少なくとも前記広告画像が検出された場合に前記アプリケーションプログラムに前記情報収集モジュールが組み込まれていると判定する判定手段と、を備えたことを特徴とするアプリケーション検査装置を提供する。これにより、アプリケーションが広告用のバナー画像を送受信する情報収集モジュールを含んでいるか検査することができる。
【発明の効果】
【００１０】
本発明によれば、送受信の順序が入れ替わっていたり冗長な送受信が加わっていても類似する通信を検出可能となり、既知の情報収集モジュールと類似した通信を行う情報収集モジュールが組み込まれたアプリケーションを検出可能になる。
【図面の簡単な説明】
【００１１】
【図１】本発明を適用したアプリケーション検査システムの全体構成を説明する図である。
【図２】グラフ情報を図化したグラフの例を示す図である。
【図３】グラフ情報の記憶例を示す図である。
【図４】アプリケーション検査処理を示すフローチャートである。
【図５】参照グラフのグラフ登録処理を示すフローチャートである。
【図６】グラフの頂点のマージと辺のマージの例を説明する図である。
【図７】検査対象グラフのグラフ生成処理を示すフローチャートである。
【図８】参照グラフと検査対象グラフのグラフ照合処理を示すフローチャートである。
【図９】関係情報抽出の別例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明に係るアプリケーション検査システムの実施の形態について、図を参照しつつ説明する。図１は、アプリケーション検査システムの全体構成図である。図１に示すアプリケーション検査システム１は、端末装置２と外部サーバ４がネットワーク３を介して接続されて構成される。
【００１３】
端末装置２は、ネットワーク３を介して外部サーバ４に接続されたスマートフォン、携帯情報端末または携帯電話等の情報機器である。端末装置２には検査対象のアプリケーションプログラム（検査対象アプリケーション２１１）がインストールされている。また、端末装置２には検査対象アプリケーション２１１に情報収集モジュールが組み込まれているか否かを検査するアプリケーション検査プログラムがインストールされており、端末装置２はアプリケーション検査装置として動作する。
なお、端末装置２は上述したスマートフォン等をエミュレートして検査対象アプリケーション２１１、情報収集モジュール及びアプリケーション検査プログラムを実行可能なパーソナルコンピュータやサーバであってもよい。
【００１４】
ネットワーク３はインターネットまたは一般電話回線網等の広域通信網である。ネットワーク３は、端末装置２及び外部サーバ４に接続され、検査対象アプリケーション２１１及び情報収集モジュールと外部サーバ４の通信を中継する。
【００１５】
外部サーバ４は、情報収集モジュールとの通信を行って端末装置２から個人情報等を収集する情報収集サーバ、及び検査対象アプリケーション２１１との通信を行って端末装置２に機能又はサービスを提供するアプリケーションサーバである。
【００１６】
本実施形態において、端末装置２と外部サーバ４はHTTP通信を行う。情報収集モジュールが行うHTTP通信は、複数の送受信信号、すなわち要求信号（HTTPリクエスト信号）と当該要求信号に対する応答信号（HTTPレスポンス信号）の対の繰り返しにより構成される。アプリケーション検査装置は、既知の情報収集モジュールが行ったHTTP通信の情報を登録して検査対象アプリケーション２１１の動作中に行われたHTTP通信を登録されたHTTP通信と照合する通信照合装置を含み、検査対象アプリケーション２１１の動作中に行われたHTTP通信に登録されたHTTP通信と類似するHTTP通信が含まれている場合に、検査対象アプリケーション２１１に情報収集モジュールが組み込まれていると判定する。
また本実施形態のアプリケーション検査装置は情報収集モジュールのうち特に広告配信を目的とした情報収集モジュールが検査対象アプリケーション２１１に組み込まれているか否かを検査する。広告配信を目的とした情報収集モジュールはその通信において特有の画像サイズを有した広告バナー画像（以降、広告画像と称する）を受信する。そこでアプリケーション検査装置は受信信号の中から広告画像が検出されることを検査対象アプリケーション２１１に情報収集モジュールが組み込まれていると判定する際の条件とする。
【００１７】
端末装置２は、記憶部２１と、制御部２２と、通信部２３と、表示操作部２４を有している。
【００１８】
記憶部２１は、ＲＯＭ、ＲＡＭ、磁気ハードディスク等の記憶装置であり、各種プログラムや各種データを記憶し、検査対象アプリケーション２１１、固有情報２１２、検査対象通信ログ２１３、検査対象グラフ２１４、参照通信ログ２１５、参照グラフ２１６、特定情報パラメータ２１７を記憶する記憶領域を持つ。
【００１９】
固有情報２１２は、端末装置２を識別するために付与される端末固有番号や各種端末識別情報、緯度経度による現在位置を示す位置情報、アドレス帳、メール情報、スケジュール情報等である。
【００２０】
検査対象通信ログ２１３は、検査対象アプリケーション２１１がネットワーク３を介して外部と行った通信の履歴データである。検査対象通信ログ２１３として検査対象アプリケーション２１１が動作している間に通信部２３にて送受信したＩＰパケットのデータがそのまま記憶されている。
【００２１】
検査対象グラフ２１４は、検査対象通信ログ２１３から生成されるグラフ情報である。グラフ情報の詳細については後述する。
【００２２】
参照通信ログ２１５は、特定通信を行うことが既に知られているアプリケーションがネットワーク３を介して外部と情報の送受信をした外部通信の履歴を記憶したものである。過去のアプリケーション検査等で取得されたＩＰパケットのデータがそのままアプリケーション別に対応付けられて記憶されている。
【００２３】
参照グラフ２１６は、参照通信ログ２１５から生成されるグラフ情報である。グラフ情報の詳細については後述する。
【００２４】
特定情報パラメータ２１７は、広告画像に特有の画像サイズであり、予めの設定により記憶部２１に記憶される。例えば、広告画像特有の画像サイズとして320x48, 320x50, 300x48, 300x50の4パターンが設定される。
【００２５】
ここで、グラフ情報について、詳細に説明する。グラフ情報は、通信を構成する複数の送受信信号を、各送受信信号に対応して当該送受信信号が送受信した内容（送受信内容）を表す複数の頂点と、送受信信号同士のつながりに対応して頂点間の接続を表す辺からなるグラフ構造で表現したデータである。通信ログに記録された送受信信号のうち、つながりが連鎖する複数の送受信信号からひとつのグラフ情報が生成される。なお、HTTP通信を対象とする本実施形態においては、HTTPリクエストとHTTPレスポンスの対からなるHTTPセッションを送受信信号の最小単位とする。
【００２６】
図２にグラフ情報を図化したグラフの例を示す。図２のグラフは、６つの頂点（ｖ１、ｖ２、ｖ３、ｖ４、ｖ５、ｖ６）と５つの辺（ｅ１、ｅ２、ｅ３、ｅ４、ｅ５）から構成されている。
図３は、図２のグラフに対応するグラフ情報である。グラフ情報はテーブル形式の頂点情報とテーブル形式の辺情報の2つのテーブルで構成される。各グラフ情報には一意なグラフ識別子が付与され、各頂点にはグラフ情報内で一意な頂点識別子が付与される。そして、頂点情報を構成する各頂点のデータは、グラフ識別子と頂点識別子と頂点ラベルが対応づけて記憶される。頂点ラベルは頂点と対応する送受信信号の送受信内容を表し、URL、データ型（テキスト、画像など）、画像サイズが頂点ラベルとなる。また、辺情報を構成する各辺データは、グラフ識別子と辺識別子と接続頂点対と辺ラベルが対応づけされる。各辺データの接続頂点対は当該辺が接続する２つの頂点の頂点識別子である。辺ラベルはつながりの種類を表し、リンクによるつながり、リダイレクトによるつながり、クッキーによるつながり、セッションによるつながりが辺ラベルとなる。接続頂点対である２つの頂点は順不同であり、本発明のグラフ情報は無向性グラフである。
【００２７】
例えば、グラフ‘１’の頂点‘ｖ１’が表す送受信信号が送受信した送受信内容は‘ＵＲＬ１’であり、同グラフの頂点‘ｖ２’が表す送受信信号が送受信した送受信内容は‘ＵＲＬ２’であり、頂点‘ｖ１’と頂点‘ｖ２’を接続する辺‘ｅ１’が表すつながりの種類は‘data http content relation’すなわちリンクによるつながりである。これにより、ＵＲＬ１とＵＲＬ２の間で、一方のコンテンツ内のＵＲＬを参照して他方のHTTPセッションを開始したことを示している。また、グラフ‘１’の頂点‘ｖ４’ が表す送受信信号が送受信した送受信内容は‘ＵＲＬ４, image get terminate state, 300x50’すなわちＵＲＬ４から取得した画像サイズが300×50の広告画像であることを示している。
【００２８】
制御部２２はＣＰＵやＭＰＵ等から構成される演算装置である。制御部２２は、記憶部２３から各種プログラムを読み出し、当該プログラムに従って通信ログ取得手段２２１、グラフ生成手段２２２、グラフ照合手段２２３および特定情報検出手段２２４などとして動作する。
【００２９】
通信ログ取得手段２２１は検査対象アプリケーション２１１の動作中に通信部２３にて送受信された送受信信号を検出する信号検出手段である。具体的には、通信ログ取得手段２２１は、通信部２３を監視して通信部２３に入出力されたＩＰパケットを順次記憶部２１の検査対象通信ログ２１３に追加記憶させる。
【００３０】
グラフ生成手段２２２は、送受信信号を分析して当該送受信信号のそれぞれにて送受信された送受信内容および当該送受信信号同士のつながりを検出し、検出したつながりが連鎖する複数の送受信信号について、送受信信号と対応する頂点情報およびつながりと対応して頂点情報同士の関係を表す辺情報からなるグラフ情報を生成する。
具体的には、グラフ生成手段２２２は、登録モードにて動作する場合、参照通信ログ２１５からグラフ情報を生成して記憶部２１に参照グラフ２１６として記憶させる（登録する）。また、グラフ生成手段２２２は、検査モードにて動作する場合、検査対象通信ログ２１３からグラフ情報を生成して記憶部２１に検査対象グラフ２１４として記憶させる。このとき特に、グラフ生成手段２２２は、少なくとも送受信内容が共通する複数の送受信信号をひとつの頂点情報にまとめてグラフ情報を生成する。これによって、リトライに係る複数の送受信信号はひとつの頂点情報にまとめられ、送受信信号の順序に違いがある２つの通信であっても当該送受信信号が共通すれば同じグラフ情報が生成されるので、リトライの発生有無または送受信信号の順序違いの有無にかかわらず通信同士が類似するか否かを正しく判定できる。グラフ生成処理については、図５〜図７を参照して後述する。
【００３１】
グラフ照合手段２２３は、グラフ生成手段２２２が２つの通信それぞれから生成したグラフ情報同士の類似度を算出し、類似度が予め定めたしきい値以上である場合に２つの通信が類似すると判定する類似判定手段である。グラフ照合手段２２３は類似判定の結果を表示操作部２４に出力する。具体的には、グラフ照合手段２２３は検査対象アプリケーション２１１の動作中に行われた検査対象通信から生成した検査対象グラフ２１４と、既知の情報収集モジュールが行った参照通信から生成した参照グラフ２１６の類似度を算出し、類似度がしきい値以上である場合に検査対象通信と参照通信が類似すると判定し、検査対象アプリケーション２１１に情報収集モジュールが組み込まれていると判定する。なお、類似度がしきい値未満である場合、グラフ照合手段２２３は２つの通信は類似せず、検査対象アプリケーション２１１に情報収集モジュールは組み込まれていないと判定する。
グラフ照合手段２２３は、グラフ情報間にて頂点情報及び辺情報の組み合わせが一致する数が多いほど高く、一致する数が少ないほど低い類似度を算出する。このような、２つのグラフ情報の類似度は、公知である種々のグラフマッチング法により算出することができる。
【００３２】
特定情報検出手段２２４は、送受信信号から特定情報パラメータ２１７に設定された送受信内容を含んだ送受信信号を検出し、検出結果をグラフ照合手段２２３に出力する。すなわち特定情報検出手段２２４はグラフ情報の頂点情報を参照して、頂点ラベルに特定情報パラメータ２１７と一致する情報を含んだ頂点データを検出する。本実施形態において特定情報パラメータ２１７は広告画像に特有の画像サイズであり、特定情報検出手段２２４は頂点ラベルに広告画像に特有の画像サイズを含んだ頂点データを検出する。
【００３３】
通信部２３は、制御部２２及びネットワーク３と接続され、端末装置２が外部サーバ４との通信を行なうインタフェースであり、接続するネットワークに対応している。
【００３４】
表示操作部２４は、タッチパネル付き液晶ディスプレイなどで構成された入出力インタフェースであり、グラフ照合手段２２３による判定結果の表示、アプリケーション実行時の画面表示、及び確認操作の受付等を行う。なお、表示操作部２４は、表示機能だけもつ表示用デバイスと、操作ボタン等の入力デバイスを別々に設けた構成としてもよい。
【００３５】
図４を参照し、検査対象アプリケーション２１１が情報収集モジュールを含むか否かを検査するアプリケーション検査処理のフローを説明する。なお、以下に説明する処理フローは、制御部２２で実行されるプログラムによって制御される。
【００３６】
まず、グラフ生成手段２２２が、参照通信ログ２１５から参照グラフ２１６を生成し登録する（ステップＳ１１）。
【００３７】
図５を参照してステップＳ１１のグラフ生成処理を説明する。グラフ生成処理を始めるに当たって、既知の情報収集モジュールの動作中に得た参照通信ログ２１５が予め記憶部２１に記憶されているものとする。
まず、グラフ生成手段２２２は、記憶部２１から参照通信ログ２１５を読み出す（ステップＳ１１１）。
【００３８】
次にグラフ生成手段２２２は、読み出した参照通信ログ２１５を分析して複数のHTTPセッションを抽出し、各HTTPセッションに頂点識別子を付与する（ステップＳ１１２）。各HTTPセッションは、端末装置２から外部サーバ４への要求信号であるHTTPリクエストと、当該要求信号に対する外部サーバ４から端末装置２への応答信号であるHTTPレスポンスの対である。本実施形態においてはHTTPセッションを送受信信号の最小単位とする。すなわちグラフ生成手段２２２は、それぞれが要求信号と当該要求信号に対する応答信号の対からなる複数の送受信信号を参照通信から抽出する。なお、HTTPセッションを抽出するにあたり、グラフ生成手段２２２はIPパケットからTCPセッションを再構築し、さらにHTTPセッションを再構築する。この結果、それぞれが複数のHTTPセッションのまとまりである複数のTCPセッションが参照通信ログ２１５から再構築される。グラフ生成手段２２２は各まとまりに含まれる各HTTPセッションに対して同一TCPセッションに属することを示すTCP識別子を付与する。
【００３９】
続いてグラフ生成手段２２２は、各HTTPセッションを分析して送受信内容を検出し、検出した送受信内容を頂点ラベルとして当該HTTPセッションに付与した頂点識別子と対応付ける（ステップＳ１１３）。具体的にはグラフ生成手段２２２は、各HTTPセッションにおいて、HTTPリクエスト中のRequest Line項目に記録されたURL、及びHTTPリクエスト中のContent Type項目に記録されたデータ型（要求された情報がテキストであるか画像であるかなど）を送受信内容として検出する。また、データ型が画像である場合、グラフ生成手段２２２はHTTPレスポンス中のデータ部に記録された画像サイズを送受信内容に加える。こうしてグラフ生成手段２２２は、送受信信号を分析して送受信信号のそれぞれにて送受信された送受信内容を検出する。
【００４０】
続いてグラフ生成手段２２２は、各HTTPセッションを分析してHTTPセッション間のつながり及び当該つながりの種類を検出し、検出したつながりに辺識別子を付与するとともに当該つながりを接続頂点対、当該つながりの種類を辺ラベルとして当該HTTPセッションの頂点識別子と対応付ける（ステップＳ１１４）。具体的にはグラフ生成手段２２２は以下の４種類のつながりを検出する。
【００４１】
１種類目は、HTTPレスポンス中のＨＴＴＰ  Ｍｅｓｓａｇｅ‐Ｂｏｄｙ  ＵＲＬ項目に記録されたリンク先URLに基づくつながりである。当該URLはコンテンツに含まれるURLを参照して別のHTTPセッションを開始させることを意味している。注目するHTTPセッションから当該URLが検出された場合、グラフ生成手段２２２は当該HTTPセッションに後続するHTTPセッションの送受信内容を検索して同一のURLが検出された後続HTTPセッションとのつながりを検出する。またグラフ生成手段２２２はつながりが検出されたURLが、HTMLコンテンツ内でのリンク先であった場合はつながりの種類を‘data http content relation’とし、JavaScript（登録商標）コンテンツ内でのリンク先であった場合はつながりの種類を‘data js content relation’とする。
【００４２】
２種類目は、HTTPレスポンス中のHTTP Redirect項目に記録されたリダイレクト先URLに基づくつながりである。当該URLは、あるURLから他のURLへのリダイレクトを意味している。注目するHTTPセッションから当該URLが検出された場合、グラフ生成手段２２２は当該HTTPセッションに後続するHTTPセッションの送受信内容を検索して同一のURLが検出された後続HTTPセッションとのつながりを検出する。またグラフ生成手段２２２はこのつながりの種類を‘data http relation’とする。
【００４３】
３種類目は、HTTPリクエスト中及びHTTPレスポンス中のHTTP Cookie項目に記録された識別子である。当該識別子は識別子が同一である複数のHTTPセッション間での関係性維持を意味している。注目するHTTPセッションから当該識別子が検出された場合、グラフ生成手段２２２は当該HTTPセッションに後続するHTTPセッションを検索して同一の識別子が記録された後続HTTPセッションとのつながりを検出する。またグラフ生成手段２２２はこのつながりの種類を‘cookie’とする。
【００４４】
４種類目は、ステップＳ１１２にて付与したTCP識別子である。グラフ生成手段２２２は当該HTTPセッションに後続するHTTPセッションを検索して同一のTCP識別子が付与された後続HTTPセッションとのつながりを検出する。またグラフ生成手段２２２はこのつながりの種類を‘http persistent connection’とする。
【００４５】
なお、上述した４種類のつながりのうち２種類以上のつながりが同一の接続頂点対に対して検出されることがある（例えばTCP識別子とCookieの識別子により検出されるつながり）。本実施形態では照合において１種類でも同一であれば辺が一致すると判定するため、グラフ生成手段２２２は検出されたつながりの種類は全て辺ラベルに記録する。そのためグラフ照合手段２２３は１つの辺ラベルとして最大４種類の検出結果を記録する。なお、つながりの種類だけ辺データを作成してこれらの辺データに共通の辺識別子を付与する構成とすることもできる。
【００４６】
以上のように、グラフ生成手段２２２は要求信号と当該要求信号に対する応答信号の対をひとつの送受信信号にまとめて送受信内容とつながりを検出する。このように要求信号と応答信号の対をひとつの送受信信号にまとめることで、HTTP通信のように、送受信内容及びつながりの情報が要求信号と応答信号に分散していても送受信内容及びつながりを正確に検出することが可能となる。
【００４７】
ステップＳ１１４の時点で、HTTPセッション間の関係を表すグラフ情報の原型が生成される。ステップＳ１１５以降では、このグラフ情報に修正を加えてリトライや順序変更の影響を受けにくいグラフ情報を生成する。
【００４８】
まずグラフ生成手段２２２は、グラフ情報を検索して頂点ラベルが同一の頂点データ（重複頂点）が存在するか否かかを判定する（ステップＳ１１５）。すなわちグラフ生成手段２２２は送受信内容が共通する複数の送受信信号が存在するか否かを判定する。重複する頂点が存在しなければ（ステップＳ１１５−Ｎｏ）、グラフ情報の修正は行わずに処理をステップＳ１２０に進める。
重複頂点が存在する場合（ステップＳ１１５−Ｙｅｓ）、グラフ生成手段２２２は重複頂点を同化させた仮グラフ情報を生成する（ステップＳ１１６）。仮グラフ情報は、ステップＳ１１４までの処理で生成されたグラフ情報をコピーし、当該コピーにおいて重複頂点の頂点識別子を同じ頂点識別子に書き換えることで生成する。例えば、頂点ｖ１と頂点ｖ３が重複頂点である場合、頂点識別子ｖ３をｖ１に書き換える。
【００４９】
次にグラフ生成手段２２２は、仮グラフ情報を検索して接続頂点対及び辺ラベルが同一の辺データ（重複辺）が存在するか否かを判定する（ステップＳ１１７）。すなわちグラフ生成手段２２２はつながりおよびつながりの種類が共通する送受信信号が存在するか否かを判定する。このとき接続頂点対は順不同で比較する。例えば接続頂点対［ｖ１，ｖ２］と接続頂点対［ｖ２，ｖ１］は同一とみなして比較する。重複辺が存在しなければ（ステップＳ１１７−Ｎｏ）、グラフ情報の修正は行わずに処理をステップＳ１２０に進める。
重複辺が存在する場合（ステップＳ１１７−Ｙｅｓ）、グラフ生成手段２２２はグラフ情報に重複辺の重複頂点を統合する変更を加え（ステップＳ１１８）、グラフ情報に対し重複辺を統合する変更を加える（ステップＳ１１９）。具体的にはグラフ生成手段２２２は、仮グラフ情報にて重複辺とされた辺データを元のグラフ情報と対比して、仮グラフ情報の当該辺データにおいて書き換えられた頂点識別子を特定する。そして、グラフ生成手段２２２は元のグラフ情報の頂点情報からこの頂点識別子が付与された頂点データを削除し（重複辺の重複頂点を統合）、元のグラフ情報の辺情報に対してこの書き換えを行うとともに重複辺の辺データのうち１つだけ残してその他を削除する（重複辺の統合）。
【００５０】
ステップＳ１２０では、ステップＳ１１１〜ステップＳ１１９にて生成したグラフ情報を記憶部２１に参照グラフ２１６として記憶させる。
【００５１】
ここで、図６（ａ）を参照し、グラフ生成の例について説明する。
グラフ５０１は、ステップＳ１１４までの処理にて生成されるグラフ情報を図化した例である。グラフ５０１は時系列に送受信された５つの送受信信号に対応して５つの頂点ｖ１、ｖ２、ｖ３、ｖ４、ｖ５を有している。またグラフ５０１は、頂点ｖ１とｖ２のつながりを表す辺ｅ１、頂点ｖ２とｖ３のつながりを表す辺ｅ２、頂点ｖ３とｖ４のつながりを表す辺ｅ３、頂点ｖ４とｖ５のつながりを表す辺ｅ４を有している。頂点ｖ１、ｖ２、ｖ３、ｖ４、ｖ５が表す送受信信号の送受信内容はそれぞれＡ、Ｂ、Ａ、Ｂ、Ｃであり、４つの辺ｅ１、ｅ２、ｅ３、ｅ４が表すつながりの種類（図中の「関係」）はそれぞれｙ、ｙ、ｚ、ｚである。
このグラフ５０１に対し、グラフ生成手段２２２はステップＳ１２５にて頂点ｖ１と頂点ｖ３、及び頂点ｖ２と頂点ｖ４がそれぞれ重複頂点であると判定する。そしてグラフ生成手段２２２はステップＳ１２７にて、頂点ｖ３とのつながり及びつながりの種類ｙが共通する辺ｅ１と辺ｅ２を重複辺であると判定する。
グラフ生成手段２２２は、ステップＳ１２８にて重複辺の重複頂点である頂点ｖ１と頂点ｖ２のうち頂点ｖ２を削除して頂点ｖ１に統合し、ステップＳ１２９にて重複辺である辺ｅ１と辺ｅ２のうち辺ｅ２を削除して辺ｅ１に統合する。
その結果、グラフ５０１はグラフ５０２に修正され、グラフ５０２が参照グラフ２１６として登録される。
この参照グラフ２１６はリトライが発生したときもこれを吸収できる。例えば送受信信号ｖ１とｖ２のリトライが発生し、これらと送受信内容、つながり及びつながりの種類が同一な送受信信号ｖ６とｖ７が加わってグラフ５０３のごとき通信が行われても、グラフ５０３からはグラフ５０２と同一のグラフが生成されるので、グラフ５０１の通信とグラフ５０３の通信は類似すると判定できる。
また、この参照グラフ２１６は送受信信号の順序入れ換えが行われてもこれを吸収できる。例えば送受信信号ｖ１とｖ２の順序を入れ替えたグラフ５０４のごとき通信が行われても、グラフ５０４からはグラフ５０２と同一のグラフが生成されるので、グラフ５０１の通信とグラフ５０４の通信は類似すると判定できる。
このようにグラフ生成手段２２２は、送受信内容、つながりおよびつながりの種類が共通する複数の送受信信号をひとつの頂点情報にまとめてグラフ情報を生成することによって、送受信信号間の時間順序に影響を受けにくく、リトライの発生や送受信信号の順序入れ換えに対して類似判定結果に影響を受けにくいグラフ情報を生成できる。また頂点間に方向性を持たせないことも送受信信号間の時間順序に影響を受けにくい効果に寄与している。
【００５２】
上述した統合処理は送受信内容、つながり及びつながりの種類の共通性を条件に頂点情報をまとめた。このうちつながりの種類の条件は、ひとつの検査対象アプリケーションに複数の情報収集モジュールが組み込まれている場合など、類似性の高い通信が同時に行われる場合（通信ログに混在する場合）に、これらの情報収集モジュールによる送受信信号を明確に区別できる効果がある。
検査対象アプリケーションに複数の情報収集モジュールが組み込まれている可能性が低い場合などには、条件を緩和し、グラフ生成手段２２２は、送受信内容、つながりが共通する複数の送受信信号をひとつの頂点情報にまとめてグラフ情報を生成することもできる。この構成によってもリトライの発生や送受信信号の順序入れ換えに対して類似判定結果に影響を受けにくいグラフ情報を生成できる効果が得られる。
【００５３】
また、つながりの条件は情報収集モジュールと検査対象アプリケーションなど異なる種類のプログラムが同時に通信を行う場合（通信ログに混在する場合）に、これらの送受信信号を明確に区別できる効果がある。
これらの送受信信号を切り分けた通信ログなどが用意できる場合などには、さらに条件を緩和し、グラフ生成手段２２２は、送受信内容が共通する複数の送受信信号をひとつの頂点情報にまとめてグラフ情報を生成することもできる。この構成によれば、例えば、図６（ｂ）に示すグラフ５０５の通信からグラフ５０６の参照グラフが生成される。この構成によってもリトライの発生や送受信信号の順序入れ換えに対して類似判定結果に影響を受けにくいグラフ情報を生成できる効果が得られる。
【００５４】
図４に戻り、グラフ生成手段２２２が、検査対象通信ログ２１３を入力として、検査対象グラフ２１４を生成する（ステップＳ１２）。
【００５５】
図７を参照してステップＳ１２のグラフ生成処理を説明する。グラフ生成処理を始めるに当たって、初期設定状態の検査対象アプリケーション２１１の機能を一通り動作させて得られる検査対象通信ログ２１３が記憶部２１に記憶されているものとする。
【００５６】
まず、グラフ生成手段２２２は、この記憶部２１に記憶されている検査対象通信ログ２１３を読み出す（ステップＳ１２１）。次に、グラフ生成手段２２２は、検査対象通信ログ２１３の中から複数のHTTPセッションを抽出する（ステップＳ１２２）。なお、ステップＳ１２２〜ステップＳ１２９の具体的な処理は、図５の参照グラフ生成処理のステップＳ１１２〜ステップＳ１１９と同じ処理であるため、詳細な説明は省略する。
【００５７】
ステップＳ１２２で抽出した複数のHTTPセションに対して、グラフ生成手段２２２は、各HTTPセッションを分析して送受信内容を検出し、検出した送受信内容を頂点ラベルとして当該HTTPセッションに付与した頂点識別子と対応付ける（ステップＳ１２３）。続いてグラフ生成手段２２２は、各HTTPセッションを分析してHTTPセッション間のつながり及び当該つながりの種類を検出し、検出したつながりに辺識別子を付与するとともに当該つながりを接続頂点対、当該つながりの種類を辺ラベルとして当該HTTPセッションの頂点識別子と対応付ける（ステップＳ１２４）。そして、グラフ情報を検索して、頂点ラベルが同一の頂点データ（重複頂点）が存在するか否かを判定する（ステップＳ１２５）。重複する頂点が存在しなければ（ステップＳ１２５−Ｎｏ）、グラフ情報の修正は行わずに処理をステップＳ１３０に進める。
重複頂点が存在する場合（ステップＳ１２５−Ｙｅｓ）、グラフ生成手段２２２は重複頂点を同化させた仮グラフ情報を生成する（ステップＳ１２６）。
【００５８】
次にグラフ生成手段２２２は、仮グラフ情報を検索して接続頂点対及び辺ラベルが同一の辺データ（重複辺）が存在するか否かを判定する（ステップＳ１２７）。重複辺が存在しなければ（ステップＳ１２７−Ｎｏ）、グラフ情報の修正は行わずに処理をステップＳ１３０に進める。
重複辺が存在する場合（ステップＳ１２７−Ｙｅｓ）、グラフ生成手段２２２はグラフ情報に重複辺の重複頂点を統合する変更を加え（ステップＳ１２８）、グラフ情報に対し重複辺を統合する変更を加える（ステップＳ１２９）。
【００５９】
ステップＳ１３０では、ステップＳ１２１〜ステップＳ１２９にて生成したグラフ情報を記憶部２１に検査対象グラフ２１４として記憶させる。
このようにして生成される検査対象グラフ２１４も参照グラフ２１６と同様、送受信信号の時間順序の影響を受けにくいグラフ情報となる。
【００６０】
図４に戻り、グラフ照合手段２２３は、参照グラフ２１６と検査対象グラフ２１４を比較照合する（ステップＳ１３）。
【００６１】
図８を参照してステップＳ１３のグラフ照合処理を詳細に説明する。
グラフ照合手段２２３は、記憶部２１から参照グラフ２１６と検査対象グラフ２１４を読み出して処理を開始する。
【００６２】
まず、グラフ照合手段２２３は、特定情報検出手段２２４に検査対象グラフ２１４を入力し、特定情報検出手段２２４は、検査対象グラフ２１４の各頂点の頂点ラベルを検索して、特定情報取得頂点を抽出する（ステップＳ２１）。具体的には、特定情報検出手段２２４は、送受信内容が画像である頂点ラベルを検索し、その画像サイズを参照し、特定情報パラメータ２１７に予め登録した特定画像サイズであれば、その頂点を特定情報取得頂点として抽出する。
【００６３】
グラフ照合手段２２３は、特定情報検出手段２２４による特定情報取得頂点の抽出有無を確認し（ステップＳ２２）、抽出頂点があれば、検査対象グラフ２１４と参照グラフ２１６との比較照合処理に進む（ステップＳ２２―Ｙｅｓ）。一方、抽出頂点がなければ（ステップＳ２２−Ｎｏ）、ステップＳ２７へ進み、検出対象である情報収集モジュールが検出されなかった旨を検出結果として出力して、処理を終了する。
【００６４】
参照グラフ２１６には複数のグラフが登録されている場合があるため、各参照グラフについ比較照合処理を行う。まず、グラフ照合手段２２３は、検査対象グラフ２１４と選択している参照グラフ２１６の２つのグラフを比較照合して類似度を算出する（ステップＳ２３）。次に、得られた類似度、即ち、最大共通部分の数に応じた値が閾値以上か判定する（ステップＳ２４）。
【００６５】
閾値以上の場合（ステップＳ２４−Ｙｅｓ）、情報収集モジュール検出をセットする（ステップＳ２５）。
そして、検査対象グラフ２１４と参照グラフ２１６の各参照グラフについて、ステップＳ２３〜ステップＳ２４の処理を繰り返し行う。参照グラフ２１６中のすべてのグラフとの比較照合処理を行うと、情報収集モジュール検出結果を出力して、処理を終了する。
【００６６】
そして、図４に戻り、得られた結果を出力する（ステップＳ１４）。
以上述べたように、参照通信及び検査対象通信のそれぞれから送受信信号の時間順序の影響を受けにくいグラフ情報を生成して、グラフ情報同士を照合するので、リトライの発生や送受信信号の順序入れ換えがあってもその影響を軽減して参照通信と検査対象通信の類似性を精度よく判定できる。
【００６７】
また、広告画像という特定情報を取得する特定通信を、広告画像を取得するHTTPセッションと関係を持つHTTPセッションから構成されるグラフを用いて検出し、検査対象のアプリケーションを情報収集モジュールを含むかどうかを効率的かつ確実に検査することができる。
【００６８】
本発明は、上記実施の形態に限定されるものではなく、幾多の変更及び変形が可能である。例えば、図８において、各参照グラフについて検査対象グラフとの比較する方法を説明したが、この処理は省略してもよい。つまり、図８において、ステップＳ２２−Ｙｅｓにて情報収集モジュール検出を出力するようにしてもよい。このとき、広告画像の検出の有無で特定通信が含まれると判断することができる。
【００６９】
また、広告画像の検出の有無で特定通信が含まれると判断したい場合、検査対象グラフ２１４を生成するグラフ生成処理の図７において、ステップＳ１２３の送受信内容抽出にて頂点に頂点ラベルに割り当てを行った時点で、特定情報取得頂点の抽出をしてもよい。つまり、図８のステップＳ２１において、図７のステップＳ１２４〜ステップＳ１２９を省略したグラフ生成処理結果の検査対象グラフ２１４を用い、ステップＳ２２−Ｙｅｓにて情報収集モジュール検出を出力するようにしてもよい。
【００７０】
また、図８において、検査対象グラフを全ての参照グラフと比較する方法を説明したが、ステップＳ２５で情報収集モジュール検出した場合、途中でループを抜けて情報収集モジュール検出を出力するようにしてもよい。これにより、情報収集モジュールが組み込まれたアプリケーションであることを速やかに出力することができる。
【００７１】
また、検査対象グラフは１つの場合を説明したが、検査対象のアプリケーションは情報収集モジュールだけが通信を行うわけではなく、利用者が意図した通信と利用者の意図と関係のなく行われる情報収集モジュールの通信との間で関係性がなく、検査対象グラフ自体が複数のグラフから構成される可能性がある。その場合、図８のグラフ照合処理を、検査対象グラフを構成するグラフの数の回数分、繰り返せばよい。また、検査対象グラフを構成する複数のグラフの中から、先に広告画像頂点を含むグラフを抽出し、抽出したグラフについて、図８のステップＳ２３〜ステップＳ２５の参照グラフとの比較処理を行うようにしてもよい。
【００７２】
また、図５のステップＳ１１３及び図７のステップＳ１２３の送受信内容（頂点）の検出の処理において、HTTPセッションの頂点識別子として、各HTTPセッションのHTTPリクエストのデータ部分とHTTPレスポンスのデータ部分を連結したデータに対してハッシュ値を用いてもよい。その場合、頂点識別子が同一であるHTTPセッションを１つだけ残して他を分析対象から除外する。分析するHTTPセッションに重複がない状態を作ってから関係情報を抽出することができ、効率的な処理が可能となる。
【００７３】
また、図５のステップＳ１１４及び図７のステップＳ１２４のつながり（辺）の検出の処理において、図９のように処理を行うことにより、図５のステップＳ１１５〜ステップＳ１１９、図７のステップＳ１２５〜ステップＳ１２９の重複頂点と重複辺の統合処理を簡略化することができる。
頂点間のつながりは抽出した複数のHTTPセッションの集合の中から選んだ２つのHTTPセッションのつながりから作成される。そこで、まず、HTTPセッションの集合から１つのHTTPセッションに着目し、着目HTTPセッションにおいて、時間順序に関係ないHTTPセッションのHTTPリクエストのデータ部分とHTTPレスポンスのデータ部分を連結したデータに対してハッシュ値h１を求める（ステップＳ３１）。
次に、つながりを確認するもう一方のHTTPセッションを集合の残りからを１つ選び、選択HTTPセッションにおいて、時間順序に関係ないHTTPセッションのHTTPリクエストのデータ部分とHTTPレスポンスのデータ部分を連結したデータに対してハッシュ値h２を求める（ステップＳ３２）。
ステップＳ３３において、ハッシュ値ｈ１とハッシュ値ｈ２を比較する。ハッシュ値が一致している場合（ステップＳ３３−Ｙｅｓ）、更に、ハッシュ値ｈ１にてつながりを解析済みか、作業領域上のリストを参照して判定する（ステップＳ３４）。ハッシュ値が一致すると、その他のHTTPセッションに対しては同じ頂点と辺を有していることになるため、既につながりの解析が終了していれば、つながり（辺）をマージし、新たに辺として登録する処理は行わず（ステップＳ３５）、ループを抜ける。一方、ハッシュ値が一致しない場合（ステップＳ３３−Ｎｏ）、まだ処理していない集合の残りのHTTPセッションについて順次選択HTTPセッションとして処理するループに戻る。
そして、まだ処理していない集合の残りのHTTPセッションについて順次選択HTTPセッションとして、ステップＳ３２〜ステップＳ３４を繰り返し、全てが終わると、着目HTTPセッションとその他のHTTPセッションの間でつながりの解析を行い、つながりを有するときは、ハッシュ値を頂点の頂点識別子として辺データを作業領域上のリストに新規追加する（ステップＳ３６）。そして、着目HTTPセッションを変えて同じ処理を行い、全てのHTTPセッションの組み合わせへのつながり（辺）の検出を行う。
【００７４】
本実施の形態では、広告画像を特定情報とし、広告配信を行う情報収集モジュールの通信を特定通信として検出する例で説明をしたが、これに用途が限定されるものではない。例えば、情報送信の検出、マルウェア検出にも利用可能である。情報送信の検出の場合、特定情報の取得ではなく特定情報の送信に着目し、送信される情報を特定情報とし、情報送信を行う情報収集モジュールの通信を特定通信とすればいい。また、マルウェア検出の場合も、既知のマルウェアの通信ログから参照グラフを生成すればよい。
【符号の説明】
【００７５】
１・・・アプリケーション検査システム
２・・・端末装置
２１・・・記憶部
２１１・・・検査対象アプリケーション
２１２・・・固有情報
２１３・・・検査対象通信ログ
２１４・・・検査対象グラフ
２１５・・・参照通信ログ
２１６・・・参照グラフ
２１７・・・特定情報パラメータ
２２・・・制御部
２２１・・・通信ログ取得手段
２２２・・・グラフ生成手段
２２３・・・グラフ照合手段
２２４・・・特定情報検出手段
２３・・・通信部
２４・・・表示操作部
３・・・ネットワーク
４・・・外部サーバ
【図１】
2018014122.tif 000003
【図２】
2018014122.tif 000004
【図３】
2018014122.tif 000005
【図４】
2018014122.tif 000006
【図５】
2018014122.tif 000007
【図６】
2018014122.tif 000008
【図７】
2018014122.tif 000009
【図８】
2018014122.tif 000010
【図９】
2018014122.tif 000011