(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024053354
(43)【公開日】2024-04-15
(54)【発明の名称】情報処理方法、情報処理装置、コンピュータプログラム及びアプリケーションプログラム
(51)【国際特許分類】
G06F 11/34 20060101AFI20240408BHJP
G06F 21/55 20130101ALI20240408BHJP
G06F 21/64 20130101ALI20240408BHJP
【FI】
G06F11/34 176
G06F21/55 320
G06F21/64
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2022159565
(22)【出願日】2022-10-03
(71)【出願人】
【識別番号】398055691
【氏名又は名称】株式会社DNPハイパーテック
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】浦崎 真人
(72)【発明者】
【氏名】岩田 和人
(72)【発明者】
【氏名】菱川 薫
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042LA02
5B042MA08
5B042MA09
5B042MC40
(57)【要約】
【課題】アプリケーションプログラムの可用性を低下させることなく、正しいログ情報の収集を可能にするとともにアプリケーションプログラムの不正な動作状況を把握できる情報処理方法、情報処理装置、コンピュータプログラム及びアプリケーションプログラムを提供する。
【解決手段】情報処理方法は、アプリケーションプログラムを取得し、取得したアプリケーションプログラム内の実行形式ファイルを解析して、ログを外部に送信するログ収集機能を呼び出す呼出箇所を特定し、特定した呼出箇所で実行形式ファイルがログ収集機能を呼び出す場合、ログに加えて、アプリケーションプログラムに関連するセキュリティを検証するためのセキュリティ検証情報を外部に送信するようにアプリケーションプログラムを改変する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
アプリケーションプログラムを取得し、
取得したアプリケーションプログラム内の実行形式ファイルを解析して、ログを外部に送信するログ収集機能を呼び出す呼出箇所を特定し、
特定した呼出箇所で前記実行形式ファイルが前記ログ収集機能を呼び出す場合、前記ログに加えて、前記アプリケーションプログラムに関連するセキュリティを検証するためのセキュリティ検証情報を外部に送信するように前記アプリケーションプログラムを改変する、
情報処理方法。
【請求項2】
前記ログ収集機能のログ収集仕様に基づいて前記ログ及び前記セキュリティ検証情報を外部に送信するように前記アプリケーションプログラムを改変する、
請求項1に記載の情報処理方法。
【請求項3】
前記セキュリティ検証情報は、検証対象のアプリケーションプログラムの真正性を検証するための整合性情報を含む、
請求項1に記載の情報処理方法。
【請求項4】
検証対象のアプリケーションプログラムの動作時に、前記検証対象のアプリケーションプログラムの真正性を検証するためのアプリ情報を検証対象の整合性情報として取得するように前記アプリケーションプログラムを改変する、
請求項3に記載の情報処理方法。
【請求項5】
取得したアプリケーションプログラム内の署名データエリアを解析して、前記アプリケーションプログラムに付与された署名情報を特定し、
特定した署名情報を前記整合性情報として記録する、
請求項3に記載の情報処理方法。
【請求項6】
取得したアプリケーションプログラム内の任意のファイルのハッシュ値を特定し、
特定したハッシュ値を前記整合性情報として記録する、
請求項3に記載の情報処理方法。
【請求項7】
検証対象のアプリケーションプログラムの動作時に取得された前記検証対象のアプリケーションプログラムの真正性を検証するためのアプリ情報と、予め記録された、アプリケーションプログラムに付与された署名情報、及びアプリケーションプログラム内の任意のファイルのハッシュ値の少なくとも一方との比較結果を前記整合性情報として取得するように前記アプリケーションプログラムを改変する、
請求項3に記載の情報処理方法。
【請求項8】
検証対象のアプリケーションプログラムの動作時の実行環境情報を前記セキュリティ検証情報として取得するように前記アプリケーションプログラムを改変する、
請求項2から請求項7のいずれか一項に記載の情報処理方法。
【請求項9】
制御部を備え、
前記制御部は、
アプリケーションプログラムを取得し、
取得したアプリケーションプログラム内の実行形式ファイルを解析して、ログを外部に送信するログ収集機能を呼び出す呼出箇所を特定し、
特定した呼出箇所で前記実行形式ファイルが前記ログ収集機能を呼び出す場合、前記ログに加えて、前記アプリケーションプログラムに関連するセキュリティを検証するためのセキュリティ検証情報を外部に送信するように前記アプリケーションプログラムを改変する、
情報処理装置。
【請求項10】
コンピュータに、
アプリケーションプログラムを取得し、
取得したアプリケーションプログラム内の実行形式ファイルを解析して、ログを外部に送信するログ収集機能を呼び出す呼出箇所を特定し、
特定した呼出箇所で前記実行形式ファイルが前記ログ収集機能を呼び出す場合、前記ログに加えて、前記アプリケーションプログラムに関連するセキュリティを検証するためのセキュリティ検証情報を外部に送信するように前記アプリケーションプログラムを改変する、
処理を実行させるコンピュータプログラム。
【請求項11】
アプリケーションプログラムであって、
ログを外部に送信するログ収集機能によって外部に送信するためのログを収集し、
前記アプリケーションプログラムに関連するセキュリティを検証するためのセキュリティ検証情報を収集し、
前記ログ収集機能を呼び出す呼出箇所において、収集したログに加えて収集したセキュリティ検証情報を前記ログ収集機能に送出し、
前記ログ収集機能を通じて前記ログ及びセキュリティ検証情報を外部へ送信する、
処理をコンピュータに実行させるアプリケーションプログラム。
【請求項12】
前記ログ収集機能で扱うデータ形式に変換された前記ログを元のデータ形式に復元し、
復元したログに収集したセキュリティ検証情報を追加して前記データ形式に変換し、
変換したログ及びセキュリティ検証情報を前記ログ収集機能に送出する、
処理をコンピュータに実行させる請求項11に記載のアプリケーションプログラム。
【請求項13】
前記セキュリティ検証情報は、
前記アプリケーションプログラムの真正性を検証するための整合性情報、及び前記アプリケーションプログラムの動作時の実行環境情報の少なくとも一つを含む、
請求項11又は請求項12に記載のアプリケーションプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理方法、情報処理装置、コンピュータプログラム及びアプリケーションプログラムに関する。
【背景技術】
【0002】
近年、エンドユーザの端末装置へアプリケーションプログラムを配信後に、当該アプリケーションプログラムの利用状況をログ情報として収集し解析するサービスが普及している。このようなサービスは、アプリケーションプログラムによる不正行為やマーケティング情報などを収集する目的で利用されている。ログ情報の収集方法としては、アプリケーションプログラム内でログ収集API(Application Programming Interface)を呼び出すことが多い。一方、配信されたアプリケーションプログラムを不正な動作環境で解析し、これにより改造した海賊版アプリが生成・再配信され、現実的な脅威となっている。
【0003】
特許文献1には不正な改ざん(リパッケージング)を防ぐため、デジタル透かし情報と検証情報をアプリ内に組み込むことで、これを利用し改ざんの判定を行う方式が開示されている。また、特許文献2にはダミーデバッガの導入とそのプロセス監視により、デバッガ解析などの不正行為を監視し、不正の確認に伴いプログラムの実行を終了させるデバッガ解析防止方式が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第6746156号公報
【特許文献2】特許第4048382号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、特許文献1のリパッケージ判定や、特許文献2のデバッガ解析防止では、不正の検出や誤検知等によりアプリケーションプログラムが起動しない、動作時にシャットダウンするなどの状況が発生すると、不正な状況においてログ情報の収集を行うことが出来ない可能性があり、またアプリケーションプログラムの可用性が低下する。また、前述のような海賊版アプリにおいて、ログ情報の収集方法の改ざんが行われた場合には、アプリケーションプログラムの不正な動作状況に気付かず、ログ集計の本来の目的が達成できないおそれがある。
【0006】
本発明は、斯かる事情に鑑みてなされたものであり、アプリケーションプログラムの可用性を低下させることなく、正しいログ情報の判別・収集を可能にするとともにアプリケーションプログラムの不正な動作状況を把握できる情報処理方法、情報処理装置、コンピュータプログラム及びアプリケーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、情報処理方法は、アプリケーションプログラムを取得し、取得したアプリケーションプログラム内の実行形式ファイルを解析して、ログを外部に送信するログ収集機能を呼び出す呼出箇所を特定し、特定した呼出箇所で前記実行形式ファイルが前記ログ収集機能を呼び出す場合、前記ログに加えて、前記アプリケーションプログラムに関連するセキュリティを検証するためのセキュリティ検証情報を外部に送信するように前記アプリケーションプログラムを改変する。
【発明の効果】
【0008】
本発明によれば、アプリケーションプログラムの可用性を低下させることなく、正しいログ情報の判別・収集を可能にするとともにアプリケーションプログラムの不正な動作状況を把握できる。
【図面の簡単な説明】
【0009】
【
図1】本実施形態の情報処理装置の構成の一例を示す図である。
【
図2】改変前のアプリケーションプログラムの構成の一例を示す図である。
【
図3】情報処理装置が備える機能部の一例を示す図である。
【
図4】改変後のアプリケーションプログラムの構成の一例を示す図である。
【
図5】ログ送出機能及びログ送出拡張機能の処理の一例を示す図である。
【
図6】セキュリティ検証情報収集部の構成の一例を示す図である。
【
図7】改変前のアプリケーションプログラムの処理の一例を示す図である。
【
図8】改変後のアプリケーションプログラムの処理の一例を示す図である。
【発明を実施するための形態】
【0010】
以下、本発明の実施の形態を説明する。
図1は本実施形態の情報処理装置50の構成の一例を示す図である。情報処理装置50は、装置全体を制御する制御部51、入力部52、メモリ53、表示パネル54、出力部55、操作部56、及び記憶部57を備える。情報処理装置50は、例えば、パーソナルコンピュータで構成できるが、タブレット端末又はスマートフォンで構成してもよい。また、情報処理装置50の機能を分散させて複数の情報処理装置で構成してもよい。
【0011】
制御部51は、IC(Integrated Circuit)チップ、CPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)等が所要数組み込まれて構成されてもよい。また、制御部51は、DSP(Digital Signal Processors)、FPGA(Field-Programmable Gate Arrays)等を組み合わせて構成してもよい。
【0012】
入力部52は、通信モジュールやインタフェースモジュールを備え、外部の装置との間で有線通信又は無線通信を行う機能を有する。入力部52は、改変前のアプリケーションプログラムを取得する。改変前のアプリケーションプログラムは、制御部51による処理によって改変される。
【0013】
出力部55は、通信モジュールやインタフェースモジュールを備え、外部の装置との間で有線通信又は無線通信を行う機能を有する。出力部55は、改変後のアプリケーションプログラムを出力する。
【0014】
記憶部57は、例えば、ハードディスク又は半導体メモリ等で構成することができ、コンピュータプログラム60(プログラム製品)、及び所要の情報(例えば、情報処理装置50による処理途中のデータや処理結果など)を記憶する。
【0015】
コンピュータプログラム60は、入力部52を介して外部の装置からダウンロードして記憶部57に記憶してもよい。また、記録媒体(例えば、CD-ROM等の光学可読ディスク記憶媒体)に記録されたコンピュータプログラム60を記録媒体読取部で読み取って記憶部57に記憶してもよい。コンピュータプログラム60は、単一のコンピュータ上で、または通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開することができる。
【0016】
メモリ53は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、フラッシュメモリ等の半導体メモリで構成することができる。コンピュータプログラム60をメモリ53に展開して、制御部51がコンピュータプログラム60を実行することができる。制御部51は、コンピュータプログラム60で定められた処理を実行することができる。すなわち、制御部51による処理は、コンピュータプログラム60による処理でもある。
【0017】
表示パネル54は、液晶パネル又は有機EL(Electro Luminescence)ディスプレイ等で構成することができる。
【0018】
操作部56は、例えば、ハードウェアキーボード、マウスなどで構成され、表示パネル54に表示されたアイコンなどの操作、カーソルの移動や操作、文字等の入力などを行うことができる。なお、操作部56は、タッチパネルで構成してもよい。
【0019】
情報処理装置50は、入力部52を介して取得したアプリケーションプログラム(改変前)に対して所定の処理を行うことにより、可用性を低下させることなく、正しいログ情報の収集を可能にするとともに不正な動作状況を把握できるアプリケーションプログラム(改変後)を生成することができる。すなわち、コンピュータプログラム60は、アプリケーションプログラムを改変するためのコンピュータプログラムである。
【0020】
図2は改変前のアプリケーションプログラム100の構成の一例を示す図である。アプリケーションプログラム100は複数のファイル等で構成される。このようなファイルには、実行形式ファイルや署名データエリアが含まれる。署名データエリアには、署名形式ファイル、特定のデータ構造におけるデータ領域やデータブロック等が含まれる。実行形式ファイルは、例えば、アプリケーションプログラム100の開発者によってコーディングされている。実行形式ファイルは、アプリケーションプログラム100にとって有用なログ(ログ情報ともいう)を取得できる箇所又はタイミング(任意の箇所)でログを収集する。実行形式ファイルは、アプリケーションプログラム100の実行の流れの中で、収集されたログをログ送出機能10がログ収集部(ログ収集APIともいう)20に送出する。ログ送出機能10は、実行形式ファイル中でログ収集部20を呼出箇所で呼び出す機能を実現するコード群である。ログ収集部20は、実行形式ファイル内のログ送出機能10によって呼び出されることにより、それぞれの実行形式ファイルからログを収集し、収集したログを外部サーバ300へ送信する。
【0021】
外部サーバ300は、ログ収集部20に対応したログ処理部を備える。ログ処理部は、収集されたログを解析してアプリケーションプログラム100の稼動状況や利用状況などの情報を生成することができる。
【0022】
次に、情報処理装置50が備える機能部、すなわち制御部51(コンピュータプログラム60)が行う機能について説明する。
【0023】
図3は情報処理装置50が備える機能部の一例を示す図である。情報処理装置50は、ファイル構造分析部501、内部ファイル抽出部502、ファイル情報解析部503、ファイル情報保存部504、ログ送出機能拡張部505、整合性検証モジュール生成部506、実行環境情報取得モジュール生成部507、セキュリティ検証情報管理モジュール生成部508、及びアプリケーションプログラム再構築部509の各機能部を備える。すなわち、制御部51(コンピュータプログラム60)は、ファイル構造分析、内部ファイル抽出、ファイル情報解析、ファイル情報保存、ログ送出機能拡張、整合性検証モジュール生成、実行環境情報取得モジュール生成、セキュリティ検証情報管理モジュール生成、及びアプリケーションプログラム再構築などの各処理を実行する。
【0024】
情報処理装置50は、改変前のアプリケーションプログラム100を取得する。すなわち、制御部51は、アプリケーションプログラム100を取得する。
【0025】
ファイル構造分析部501は、取得したアプリケーションプログラム100のファイル構造を分析する。すなわち、制御部51は、アプリケーションプログラム100のファイル構造を分析する。
【0026】
内部ファイル抽出部502は、ファイル構造分析部501が分析したファイル構造を参照して、実行形式ファイルと、署名データエリアとを抽出する。すなわち、制御部51は、実行形式ファイルと、署名データエリアとを抽出する。
【0027】
ファイル情報解析部503は、抽出された実行形式ファイル及び署名データエリアの情報を解析する。具体的には、ファイル情報解析部503は、抽出された実行形式ファイル内のログ送出機能10の情報を解析して、例えば、ログ収集部(ログ収集API)20を呼び出す機能を実現するコード群に基づいて、ログ収集API方式、ログ収集API実装箇所、ログ収集API呼出箇所などのログ収集API情報を特定する。ログ収集API方式は、例えば、APIの種別、APIのログ収集仕様(例えば、収集して外部へ送信するパラメータの数やパラメータリストの構成など)などの情報を含む。ログ収集API実装箇所は、ログ収集APIが何処に実装されているかの場所を特定する情報を含む。ログ収集API呼出箇所は、実行形式ファイル内のコードの何処からログ収集APIを呼び出すかを特定する情報を含む。ログ収集API情報を特定することにより、改変前の実行形式ファイルのコードを利用して、収集して外部へ送信する情報を拡張できる(アプリケーションプログラムの開発者が決めたログに加えて、本実施形態により追加するセキュリティ検証情報を追加できる)。ファイル情報解析部503は、特定したログ収集API情報をファイル情報保存部504に保存する。すなわち、制御部51は、抽出した実行形式ファイル内のログ送出機能10の情報を解析して、ログ収集API情報を特定する。
【0028】
ファイル情報保存部504は、記憶部57内に設けることができる。
【0029】
ファイル情報解析部503は、抽出された署名データエリアを解析して、アプリケーションプログラムに付与された署名情報を特定する。署名情報は、例えば、署名者、指紋情報、検証アルゴリズム、署名日時、署名有効期限などを含む。ファイル情報解析部503は、アプリケーションプログラム内の特定のファイルのデータに対して所定のハッシュアルゴリズムを使用してハッシュ値を算出し、算出したハッシュ値を特定する。特定のファイルは、アプリケーションプログラム内に任意のファイルでよいが、予めどのファイルを用いるかは定められている。ファイル情報解析部503は、特定した署名情報及びハッシュ値を整合性情報としてファイル情報保存部504に保存する。整合性情報は、検証対象のアプリケーションプログラムの真正性を検証するために使用される。すなわち、制御部51は、取得したアプリケーションプログラム内の署名データエリアを解析して、アプリケーションプログラムに付与された署名情報を特定し、特定した署名情報を整合性情報として記録する。また、制御部51は、取得したアプリケーションプログラム内の任意のファイルのハッシュ値を特定し、特定したハッシュ値を整合性情報として記録する。
【0030】
ログ送出機能拡張部505は、アプリケーションプログラムの開発者がコーディングし、開発者が意図したログ収集に加えて、セキュリティ検証情報も送出できるようにログ送出機能10の送出機能を拡張する。すなわち、ログ送出機能拡張部505は、ログ送出拡張機能を生成することができる。セキュリティ検証情報は、アプリケーションプログラムに関連するセキュリティを検証するための情報であり、例えば、前述の整合性情報、及びアプリケーションプログラムの動作時の実行環境情報などを含む。ログ送出機能10の送出機能拡張の詳細は後述する。
【0031】
整合性検証モジュール生成部506は、検証対象のアプリケーションプログラムの整合性を、ファイル情報解析部503によって特定された整合性情報を用いて検証するための整合性検証モジュールを生成する。
【0032】
実行環境情報取得モジュール生成部507は、検証対象のアプリケーションプログラムの動作時の実行環境情報を取得するための実行環境情報取得モジュールを生成する。実行環境情報は、アプリケーションプログラムが動作している環境(例えば、オペレーティングシステムの種類やバージョン、エミュレータ環境であるか否かなど)を特定できる情報を含む。
【0033】
セキュリティ検証情報管理モジュール生成部508は、整合性検証モジュール及び実行環境情報取得モジュールを管理するとともに、ログ送出拡張機能(拡張されたログ送出機能)との間のインタフェース機能を備えるセキュリティ検証情報管理モジュールを生成する。
【0034】
アプリケーションプログラム再構築部509は、生成されたログ送出拡張機能、整合性検証モジュール、実行環境情報取得モジュール、及びセキュリティ検証情報管理モジュールをアプリケーションプログラムに導入し、アプリケーションファイルを再構築する。
【0035】
上述のように、制御部51は、ログ送出拡張機能、整合性検証モジュール、実行環境情報取得モジュール、及びセキュリティ検証情報管理モジュールを生成することにより、アプリケーションプログラム100を改変することができる。
【0036】
図4は改変後のアプリケーションプログラム150の構成の一例を示す図である。改変後のアプリケーションプログラム150と改変前のアプリケーションプログラム100との相違点は、改変後のアプリケーションプログラム150が、実行形式ファイル内にログ送出機能10を拡張したログ送出拡張機能15を備え、さらにセキュリティ検証情報収集部30を備える点である。
【0037】
ログ送出拡張機能15は、ログ送出機能10の機能を含み、実行形式ファイルの処理の流れの所要のポイント又は所要のタイミングでアプリケーションプログラム100の開発者が意図したログを収集し、収集したログをログ収集部20へ送出する。また、ログ送出拡張機能15は、前述のログをログ収集部20へ送出するタイミングで、セキュリティ検証情報収集部30が予め収集したセキュリティ検証情報を取得し、取得したセキュリティ検証情報を前述のログとともにログ収集部20へ送出する。ログ収集部20は、ログ送出拡張機能15が送出したログ及びセキュリティ検証情報を受け取り、受け取ったログ及びセキュリティ検証情報を外部サーバ300へ送信する。
【0038】
図5はログ送出機能10及びログ送出拡張機能15の処理の一例を示す図である。ログ送出機能10は、実行形式ファイルが処理を実行する過程において所要の箇所やタイミングで収集されたログを外部に送信すべくログ収集APIを呼び出す。より具体的には、ログ送出機能10は、記録するイベントと所要のパラメータを、ログ収集APIが取り扱うデータ形式に変換してログ収集APIに渡す。
図5の例では、収集されたログA1、A2、A3それぞれをパラメータ1、2、3として設定し、API呼出メソッドを実行する。API呼出メソッドでは、イベント名、及びパラメータ1、2、3が所定のデータ形式で渡される。これにより、記録されるイベント名とともにログA1、A2、A3がログ収集部20に送出される。
【0039】
一方、ログ送出拡張機能15では、ログ送出機能10が実行するAPI呼出メソッドによって呼び出されるログ収集API(ログ収集機能)のログ収集仕様に基づいて、API呼出メソッドを実行する。具体的には、
図5に示すように、収集されたログA1、A2、A3、セキュリティ検証情報X1、X2それぞれをパラメータ1、2、3、4、5として設定し、API呼出メソッドを実行する。API呼出メソッドでは、イベント名、及びパラメータ1、2、3、4、5が所定のデータ形式で渡される。これにより、記録されるイベント名とともにログA1、A2、A3、及びセキュリティ検証情報X1、X2がログ収集部20に送出される。
【0040】
上述のように、制御部51は、ログ収集部20(ログ収集機能)のログ収集仕様に基づいて、ログ及びセキュリティ検証情報を外部に送信するようにアプリケーションプログラムを改変することができる。
【0041】
図6はセキュリティ検証情報収集部30の構成の一例を示す図である。セキュリティ検証情報収集部30は、整合性検証モジュール31、実行環境情報取得モジュール35、及びセキュリティ検証情報管理モジュール36を備える。整合性検証モジュール31は、整合性情報32、アプリ情報取得モジュール33、及び整合性判定モジュール34を備える。なお、本明細書において、セキュリティ検証情報は、整合性情報32及び実行環境情報のいずれか一方又は両方を含む。
【0042】
整合性情報32は、
図1に示すように、情報処理装置50によってアプリケーションプログラムが改変される際に、改変対象のアプリケーション内に埋め込まれた固定値であり、アプリケーションプログラムに付与された署名情報、アプリケーションプログラム内の任意のファイルのハッシュ値などを含む。また、整合性情報32は、アプリケーションプログラム内の任意のファイルの部分データ、実行形式ファイルのシンボル情報・データリンク・実行フロー等を含んでもよい。シンボル情報は、例えば、変数名や関数名などの名前であり、アプリケーションプログラムのソースコード内の各識別子(名前)と、それぞれの内容(データ型、メモリ上の配置位置などの情報を含む)とのリンク関係を定めるテーブルのようなものである。なお、整合性情報32は、これらに限定されるものではなく、例えば、ログ送出拡張機能15とセキュリティ検証情報収集部30との間のインタフェースを特定する情報やコードなど、アプリケーションプログラムの整合性を検証するために利用できる情報であればよい。本明細書では、前述の改変対象のアプリケーション内に埋め込まれた整合性情報32を真正の整合性情報32とも称する。すなわち、制御部51は、真正の整合性情報32を取得するようにアプリケーションプログラムを改変することができる。
【0043】
改変後のアプリケーションプログラム150は、真正の整合性情報32をセキュリティ検証情報として、外部サーバ300へ送信する処理をコンピュータに実行させることができる。
【0044】
アプリ情報取得モジュール33は、検証対象のアプリケーションプログラムの動作時に当該アプリケーションプログラムの整合性を検証すべく検証対象の整合性情報を生成するために必要なアプリ情報を取得する。検証対象の整合性情報は、真正の整合性情報32と比較・照合される情報であり、本明細書では、真正の整合性情報32と区別するために「検証対象の整合性情報」と称する。アプリ情報は、検証対象のアプリケーションプログラムの真正性を検証するための情報であり、検証対象の整合性情報を生成するのに必要な情報でもよい。すなわち、制御部51は、検証対象のアプリケーションプログラムの動作時に、当該検証対象のアプリケーションプログラムの真正性を検証するためのアプリ情報を検証対象の整合性情報として取得するようにアプリケーションプログラムを改変することができる。
【0045】
改変後のアプリケーションプログラム150は、アプリ情報取得モジュール33が取得したアプリ情報(真正の整合性情報32と比較する検証対象の整合性情報)をセキュリティ検証情報として、外部サーバ300へ送信する処理をコンピュータに実行させることができる。
【0046】
整合性判定モジュール34は、真正の整合性情報32と、アプリ情報取得モジュール33が取得したアプリ情報とを比較し、整合性の判定を行う。具体的には、アプリ情報取得モジュール33が取得したアプリ情報に基づいて生成された検証対象の整合性情報と真正の整合性情報32とを比較し、一致している場合には整合性ありと判定され、検証対象のアプリケーションプログラムには不正な改ざんが行われていないと判定できる。一方、アプリ情報に基づいて生成された検証対象の整合性情報と真正の整合性情報32とを比較し、一致していない場合には整合性なしと判定され、検証対象のアプリケーションプログラムには不正な改ざんが行われていると判定できる。すなわち、制御部51は、検証対象のアプリケーションプログラムの動作時に取得された当該検証対象のアプリケーションプログラムの真正性を検証するためのアプリ情報と、予め記録された、アプリケーションプログラムの真正の整合性情報32(例えば、アプリケーションプログラムに付与された署名情報及びアプリケーションプログラム内の任意のファイルのハッシュ値の少なくとも一方など)との比較結果(整合性の判定結果)を整合性情報として取得するようにアプリケーションプログラムを改変することができる。
【0047】
改変後のアプリケーションプログラム150は、真正の整合性情報32と、アプリ情報取得モジュール33が取得したアプリ情報に基づいて生成された検証対象の整合性情報とを比較した、整合性の判定結果をセキュリティ検証情報として、外部サーバ300へ送信する処理をコンピュータに実行させることができる。
【0048】
実行環境情報取得モジュール35は、検証対象のアプリケーションプログラムの動作時に、定期・非定期にシステムの状態を観測し実行環境に関する情報を収集する。観測対象は、例えば、不正な動作環境において通常(不正でない)の動作環境と差異が生じるシステム内の既知、あるいは予想される一つ以上の特徴点を含む。例えば、「システム内に通常存在しないはずの実行ファイルが存在する」などの情報を含む。すなわち、制御部51は、検証対象のアプリケーションプログラムの動作時の実行環境情報をセキュリティ検証情報として取得するようにアプリケーションプログラムを改変することができる。
【0049】
改変後のアプリケーションプログラム150は、実行環境情報取得モジュール35が取得した実行環境情報をセキュリティ検証情報として、外部サーバ300へ送信する処理をコンピュータに実行させることができる。
【0050】
セキュリティ検証情報管理モジュール36は、真正の整合性情報32、アプリ情報取得モジュール33が取得したアプリ情報、整合性判定モジュール34による整合性の判定結果、及び実行環境情報取得モジュール35が取得した実行環境情報を保持する。セキュリティ検証情報管理モジュール36は、ログ送出拡張機能15からの要求に応じて、保持した、真正の整合性情報32、アプリ情報、整合性の判定結果、及び実行環境情報の少なくとも一つを当該要求に応じてログ送出拡張機能15へ出力する。
【0051】
上述のように、本実施形態の情報処理装置50、すなわち制御部51(コンピュータプログラム60)は、アプリケーションプログラムを取得し、取得したアプリケーションプログラム内の実行形式ファイルを解析して、ログを外部に送信するログ収集機能を呼び出す呼出箇所を特定し、特定した呼出箇所で当該実行形式ファイルがログ収集機能を呼び出す場合、当該ログに加えて、アプリケーションプログラムに関連するセキュリティを検証するためのセキュリティ検証情報を外部に送信するようにアプリケーションプログラムを改変することができる。
【0052】
上述のように、本実施形態によれば、既存のアプリケーションプログラムの実行形式ファイル内のログ送出機能に着目し、当該ログ送出機能を編集することで、既存のログ(ログ情報)に当該アプリケーションプログラムのセキュリティを検証するためのセキュリティ検証情報を追加できる。これにより、アプリケーションプログラムの開発者は、ログ情報の収集方法に対する保護を意識する必要がなく、ログ情報の収集方法に対する保護を既存のアプリケーションプログラムに組み込むことができる。また、追加されるセキュリティ検証情報には、アプリケーションプログラム自身の整合性情報やアプリケーションプログラムの実行環境情報が含まれるので、収集したログ(データ)が正当に取得されたものか不正な状況で取得されたものかを判別できる。また、不正を検知しても、アプリケーションプログラムの動作停止やシステムのシャットダウンを行うことなく、ログを収集し続けることができる。このように、本実施形態によれば、アプリケーションプログラムの可用性を低下させることなく、正しいログ情報の判別・収集を可能にするとともにアプリケーションプログラムの不正な動作状況を把握できる。
【0053】
次に、アプリケーションプログラムの処理について説明する。まず、比較例として、改変前のアプリケーションプログラム100の処理について説明する。
【0054】
図7は改変前のアプリケーションプログラム100の処理の一例を示す図である。アプリケーションプログラム100は、
図7に示す処理をコンピュータに実行させるので、以下、処理の主体をコンピュータとして説明する。コンピュータは、アプリケーションプログラム100を起動し(S11)、ログ収集部20(ログ収集API)の機能を初期化する(S12)。
【0055】
コンピュータは、ログAを収集し(S13)、収集したログAをログ収集API用のデータ形式に変換する(S14)。コンピュータは、変換したログAをログ収集部20へ送出する(S15)。コンピュータは、ログ収集部20から変換したログAを外部サーバ300へ送信し(S16)、処理を終了する。外部サーバ300は、変換されたログAを復元することにより元のデータ形式のログAを得ることができる。
【0056】
図8は改変後のアプリケーションプログラム150の処理の一例を示す図である。コンピュータは、アプリケーションプログラム150を起動し(S21)、ログ収集部20(ログ収集API)の機能を初期化する(S22)。
【0057】
コンピュータは、ログAを収集し(S23)、収集したログAをログ収集API用のデータ形式に変換する(S24)。コンピュータは、セキュリティ検証情報Xを収集する(S25)。
【0058】
コンピュータは、変換したログAを元のデータ形式に復元し(S26)、復元したログAにセキュリティ検証情報Xを追加してログ収集API用のデータ形式に変換する(S27)。前述のステップS24で収集したログAを変換することにより、改変前のアプリケーションプログラム100を開発した開発者のコーディングの流れをそのまま流用している。これにより、開発者は改変後のアプリケーション150の処理の流れを全く気にする必要がない。
【0059】
コンピュータは、変換したログA及びセキュリティ検証情報Xをログ収集部20へ送出する(S28)。コンピュータは、ログ収集部20から変換したログA及びセキュリティ検証情報Xを外部サーバ300へ送信し(S29)、処理を終了する。外部サーバ300は、変換されたログA及びセキュリティ検証情報Xを復元することにより元のデータ形式のログA及びセキュリティ検証情報Xを得ることができる。
【0060】
上述の処理において、ステップS25の処理は、ステップS27の処理よりも前にあれば、処理のタイミングはいずれでもよい。また、ステップS23からステップS29までの処理は、任意の回数繰り返してもよい。その繰り返しの都度、収集するセキュリティ検証情報を更新してもよく、別の種類の情報を収集してもよい。上述の処理では、ステップS23でログAを収集しているが、収集するログの数や収集する箇所は1つに限定されるものではなく、複数のログを収集してもよく、また複数の箇所でログを収集してもよい。同様に、ステップS25でセキュリティ検証情報Xを収集しているが、収集するセキュリティ検証情報の数や収集する箇所は1つに限定されるものではなく、複数のセキュリティ検証情報を収集してもよく、また複数の箇所でセキュリティ検証情報を収集してもよい。
【0061】
上述のように、改変後のアプリケーションプログラム150は、ログを外部に送信するログ収集機能によって外部に送信するためのログを収集し、アプリケーションプログラム150に関連するセキュリティを検証するためのセキュリティ検証情報を収集し、ログ収集機能を呼び出す呼出箇所において、収集したログに加えて収集したセキュリティ検証情報を前記ログ収集機能に送出し、ログ収集機能を通じて当該ログ及びセキュリティ検証情報を外部へ送信する、処理をコンピュータに実行させることができる。
【0062】
また、アプリケーションプログラム150は、ログ収集機能で扱うデータ形式にされたログを元のデータ形式に復元し、復元したログに収集したセキュリティ検証情報を追加してログ収集機能で扱うデータ形式に変換し、変換したログ及びセキュリティ検証情報をログ収集機能に送出する、処理をコンピュータに実行させることができる。これにより、改変前の既存のアプリケーションプログラムのログ収集に関連するコーディグを変更する必要がない。
【0063】
また、アプリケーションプログラム150が外部に送信するセキュリティ検証情報は、当該アプリケーションプログラムの真正性を検証するための整合性情報、及び当該アプリケーションプログラムの動作時の実行環境情報の少なくとも一つを含む。これにより、収集したログ(データ)が正当に取得されたものか不正な状況で取得されたものかを判別できる。
【0064】
(付記1)情報処理方法は、アプリケーションプログラムを取得し、取得したアプリケーションプログラム内の実行形式ファイルを解析して、ログを外部に送信するログ収集機能を呼び出す呼出箇所を特定し、特定した呼出箇所で前記実行形式ファイルが前記ログ収集機能を呼び出す場合、前記ログに加えて、前記アプリケーションプログラムに関連するセキュリティを検証するためのセキュリティ検証情報を外部に送信するように前記アプリケーションプログラムを改変する。
【0065】
(付記2)情報処理方法は、付記1において、前記ログ収集機能のログ収集仕様に基づいて前記ログ及び前記セキュリティ検証情報を外部に送信するように前記アプリケーションプログラムを改変する。
【0066】
(付記3)情報処理方法は、付記1又は付記2において、前記セキュリティ検証情報は、検証対象のアプリケーションプログラムの真正性を検証するための整合性情報を含む。
【0067】
(付記4)情報処理方法は、付記3において、検証対象のアプリケーションプログラムの動作時に、前記検証対象のアプリケーションプログラムの真正性を検証するためのアプリ情報を検証対象の整合性情報として取得するように前記アプリケーションプログラムを改変する。
【0068】
(付記5)情報処理方法は、付記3又は付記4において、取得したアプリケーションプログラム内の署名データエリアを解析して、前記アプリケーションプログラムに付与された署名情報を特定し、特定した署名情報を前記整合性情報として記録する。
【0069】
(付記6)情報処理方法は、付記3から付記5のいずれか一つにおいて、取得したアプリケーションプログラム内の任意のファイルのハッシュ値を特定し、特定したハッシュ値を前記整合性情報として記録する。
【0070】
(付記7)情報処理方法は、付記3から付記6のいずれか一つにおいて、検証対象のアプリケーションプログラムの動作時に取得された前記検証対象のアプリケーションプログラムの真正性を検証するためのアプリ情報と、予め記録された、アプリケーションプログラムに付与された署名情報、及びアプリケーションプログラム内の任意のファイルのハッシュ値の少なくとも一方との比較結果を前記整合性情報として取得するように前記アプリケーションプログラムを改変する。
【0071】
(付記8)情報処理方法は、付記2から付記7のいずれか一つにおいて、検証対象のアプリケーションプログラムの動作時の実行環境情報を前記セキュリティ検証情報として取得するように前記アプリケーションプログラムを改変する。
【0072】
(付記9)情報処理装置は、制御部を備え、前記制御部は、アプリケーションプログラムを取得し、取得したアプリケーションプログラム内の実行形式ファイルを解析して、ログを外部に送信するログ収集機能を呼び出す呼出箇所を特定し、特定した呼出箇所で前記実行形式ファイルが前記ログ収集機能を呼び出す場合、前記ログに加えて、前記アプリケーションプログラムに関連するセキュリティを検証するためのセキュリティ検証情報を外部に送信するように前記アプリケーションプログラムを改変する。
【0073】
(付記10)コンピュータプログラムは、コンピュータに、アプリケーションプログラムを取得し、取得したアプリケーションプログラム内の実行形式ファイルを解析して、ログを外部に送信するログ収集機能を呼び出す呼出箇所を特定し、特定した呼出箇所で前記実行形式ファイルが前記ログ収集機能を呼び出す場合、前記ログに加えて、前記アプリケーションプログラムに関連するセキュリティを検証するためのセキュリティ検証情報を外部に送信するように前記アプリケーションプログラムを改変する、処理を実行させる。
【0074】
(付記11)アプリケーションプログラムは、アプリケーションプログラムであって、ログを外部に送信するログ収集機能によって外部に送信するためのログを収集し、前記アプリケーションプログラムに関連するセキュリティを検証するためのセキュリティ検証情報を収集し、前記ログ収集機能を呼び出す呼出箇所において、収集したログに加えて収集したセキュリティ検証情報を前記ログ収集機能に送出し、前記ログ収集機能を通じて前記ログ及びセキュリティ検証情報を外部へ送信する、処理をコンピュータに実行させる。
【0075】
(付記12)アプリケーションプログラムは、付記11において、前記ログ収集機能で扱うデータ形式にされた前記ログを元のデータ形式に復元し、復元したログに収集したセキュリティ検証情報を追加して前記データ形式に変換し、変換したログ及びセキュリティ検証情報を前記ログ収集機能に送出する、処理をコンピュータに実行させる。
【0076】
(付記13)アプリケーションプログラムは、付記11又は付記12において、前記セキュリティ検証情報は、前記アプリケーションプログラムの真正性を検証するための整合性情報、及び前記アプリケーションプログラムの動作時の実行環境情報の少なくとも一つを含む。
【0077】
各実施形態に記載した事項は相互に組み合わせることが可能である。また、特許請求の範囲に記載した独立請求項及び従属請求項は、引用形式に関わらず全てのあらゆる組み合わせにおいて、相互に組み合わせることが可能である。さらに、特許請求の範囲には他の2以上のクレームを引用するクレームを記載する形式(マルチクレーム形式)を用いているが、これに限るものではない。マルチクレームを少なくとも一つ引用するマルチクレーム(マルチマルチクレーム)を記載する形式を用いて記載してもよい。
【符号の説明】
【0078】
10 ログ送出機能
15 ログ送出拡張機能
20 ログ収集部
30 セキュリティ検証情報収集部
31 整合性検証モジュール
32 整合性情報
33 アプリ情報取得モジュール
34 整合性判定モジュール
35 実行環境情報取得モジュール
36 セキュリティ検証情報管理モジュール
50 情報処理装置
51 制御部
52 入力部
53 メモリ
54 表示パネル
55 出力部
56 操作部
57 記憶部
60 コンピュータプログラム
100 改変前のアプリケーションプログラム
150 改変後のアプリケーションプログラム
300 外部サーバ