オペレーティングシステム監視設定情報生成装置及びオペレーティングシステム監視装置
【課題】更新時と動作時の双方において、デバイス内のOSの完全性や健全性を安全かつ効率的に監視して正常動作を維持する。
【解決手段】OS監視設定情報生成装置10は、OS監視装置30による監視で用いられる監視設定情報を保持する監視設定情報管理部12と、監視設定情報管理部12により保持されている監視設定情報と、バージョン情報と、監視対象ソフトウェアとの対応関係を示すバインド情報とを含む監視設定情報ファイルを生成して出力する監視設定情報出力部13と、監視設定情報ファイルのデジタル署名を生成して付与するデジタル署名部14とを備える。
【解決手段】OS監視設定情報生成装置10は、OS監視装置30による監視で用いられる監視設定情報を保持する監視設定情報管理部12と、監視設定情報管理部12により保持されている監視設定情報と、バージョン情報と、監視対象ソフトウェアとの対応関係を示すバインド情報とを含む監視設定情報ファイルを生成して出力する監視設定情報出力部13と、監視設定情報ファイルのデジタル署名を生成して付与するデジタル署名部14とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、携帯電話やPDA(Personal Digital Assistant)やPC(Personal Computer)や情報家電等のデバイス内に配置するオペレーティングシステム監視装置(以下、OS監視装置)と、オペレーティングシステム(以下、OS)を監視するための監視設定情報を生成するオペレーティングシステム監視設定情報生成装置(以下、OS監視設定情報生成装置)に関する。
【背景技術】
【0002】
従来、携帯電話やPC等のデバイスにおいて、監視対象のOSから隔離された環境に配置されたOS監視装置によって、該監視対象のOSのメモリやファイルの完全性を監視して、異常時に対処する技術が知られている(特許文献1参照)。
【0003】
かかるOS監視装置は、メモリやファイルを監視するための監視設定情報(ソフトウェアのバイナリのハッシュ値やアドレスやサイズ等を含む)をポリシーとして保持する。
【0004】
このように、かかる技術によれば、かかるOS監視装置を、監視対象のOSから隔離された環境に配置することで、障害や攻撃から監視対象のOSを保護することができる。
【0005】
一方、パッチ適用や機能追加のために、監視対象ソフトウェアを更新する際、かかる監視対象ソフトウェアに対応する監視設定情報も整合をとって更新する必要がある。
【0006】
かかる必要性を考慮して、ソフトウェア更新パッケージの署名検証や、デバイス識別情報に基づいてソフトウェア更新パッケージと当該デバイスのソフトウェア構成との適合性を検査する技術が開発されている(特許文献2参照)。
【特許文献1】US 20050132122 A1
【特許文献2】US 6832373
【特許文献3】US 20010018717 A1
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、デバイス内のOSの完全性や健全性を安全かつ効率的に監視し、正常動作を維持するにあたり、更新時と動作時(いわゆる、ランタイム)の双方において、以下のような課題がある。
【0008】
(更新時の課題)
更新時の課題としては、不正な監視設定情報への更新、或いは、更新されたソフトウェアと整合しない監視設定情報への更新を防止することが挙げられる。前者の不正な監視設定情報への更新は、デジタル署名等によって検証できるが、後者を解決するには、以下のような課題がある。
【0009】
第1の課題は、監視設定情報の更新の失敗による不整合の防止である。
【0010】
すなわち、ソフトウェアの更新完了後に、当該ソフトウェアに対応する監視設定情報の更新に失敗すると、当該更新後のソフトウェアと当該更新に失敗した監視設定情報との間に不整合が起きるが、当該更新後のソフトウェアを元に戻すのは、ストレージ容量の制約により困難である。
【0011】
そして、デバイスが、このような不整合状態のまま動作すると、OS監視装置によって異常が検知され、リセットによって利用不可になったり、機能制限が課されたりする等、ユーザの利便性が低下するという問題点があった。
【0012】
第2の課題は、デバイス内のソフトウェア環境との不整合の防止である。
【0013】
すなわち、監視設定情報の生成時に、当該監視設定情報とソフトウェア更新パッケージとの不整合が紛れ込む場合、監視設定情報の更新は成功しても、当該監視設定情報とソフトウェアと間に不整合が起きてしまい、OS監視装置による監視が失敗するという問題点があった。
【0014】
また、監視設定情報のみを独立して更新する場合、デバイス内のソフトウェア環境と適合しているかの確認が必要である。そして、デバイス内のソフトウェア環境に適合していないにも関わらず監視設定情報を更新した場合、当該監視設定情報とソフトウェアと間に不整合が起きてしまうという問題点があった。
【0015】
第3の課題は、古い監視設定情報への置き換え防止である。
【0016】
すなわち、既に新しい監視設定情報が存在するにも関わらず、当該監視設定情報を古い監視設定情報に置き換えるような攻撃がされた場合、署名検証では、かかる攻撃を検知できず、古いセキュリティポリシーで動作する脅威が存在するという問題点があった。
【0017】
(動作時の課題)
動作時の課題としては、監視設定情報の更新と効率化の観点から、以下のような課題がある。
【0018】
第1の課題は、動作時に配置アドレスが決まるソフトウェアの対応である。
【0019】
すなわち、利用時に動的にロードされるデバイスドライバ等について、OS監視装置は、当該デバイストライバ等の配置アドレスをOSから動作時に通知してもらう必要があるが、危殆化されたOSは、偽装する(嘘をつく)可能性があるという問題点があった。
【0020】
第2の課題は、オーバヘッドの削減である。
【0021】
すなわち、上述の監視に係るオーバヘッドを削減するに際して、上述の監視による応答性低下やバッテリ消費増への対策と、安全性維持とのトレードオフの関係を考慮する必要がある。
【0022】
そこで、本発明は、上述の課題に鑑みてなされたものであり、更新時と動作時の双方において、デバイス内のOSの完全性や健全性を安全かつ効率的に監視して正常動作を維持することができるOS監視設定情報生成装置及びOS監視装置を提供することを目的とする。
【課題を解決するための手段】
【0023】
本発明の第1の特徴は、オペレーティングシステム監視設定情報生成装置であって、オペレーティングシステム監視装置による監視で用いられる監視設定情報を保持する監視設定情報管理部と、前記監視設定情報管理部により保持されている前記監視設定情報と、バージョン情報と、監視対象ソフトウェアとの対応関係を示すバインド情報とを含む監視設定情報ファイルを生成して出力する監視設定情報出力部と、前記監視設定情報ファイルのデジタル署名を生成して付与するデジタル署名部とを備えることを要旨とする。
【0024】
かかる発明によれば、監視設定情報ファイルに対して、監視対象ソフトウェアとの対応関係を示すバインド情報を付加することで、ソフトウェア更新パッケージ又は監視対象ソフトウェアと監視設定情報との間の不整合を防止することができる。
【0025】
また、かかる発明によれば、監視設定情報ファイルのバージョン情報を付加することで、古い監視設定情報ファイルへの置き換えを防止することができる。
【0026】
また、かかる発明によれば、デジタル署名を付与することにより、監視設定情報の改竄を防ぎ、OS監視装置による安全な監視を行うことができる。
【0027】
さらに、かかる発明によれば、最新の監視設定情報ファイルのバージョンをチェックすることで、古い監視設定情報ファイルへの置き換え攻撃を防止することができる。
【0028】
本発明の第1の特徴において、前記監視設定情報は、前記監視対象ソフトウェアのハッシュ値と、該監視対象ソフトウェアが保持されるアドレスと、該監視対象ソフトウェアのサイズとを含んでいてもよい。
【0029】
かかる発明によれば、OS監視設定情報生成装置は、上述の監視設定情報を、OS監視装置に提供するため、かかるOS監視装置は、かかる監視設定情報を用いて、ソフトウェアの完全性を検証して異常時に対処を実行することで、デバイスの正常動作を維持することができる。
【0030】
本発明の第1の特徴において、前記監視設定情報は、前記監視対象記憶領域のアドレスと、該監視対象記憶領域のサイズと、該監視対象記憶領域に保持される値が取り得る範囲とを含んでいてもよい。
【0031】
かかる発明によれば、OS監視設定情報生成装置は、上述の監視設定情報を、OS監視装置に提供するため、OS監視装置は、かかる監視設定情報を用いて、監視対象パラメータ(監視対象記憶領域におけるパラメータ)が正常の値を取っているか或いは改竄されていないかについて検査することで、デバイスの正常動作を維持することができる。
【0032】
本発明の第1の特徴において、前記監視設定情報は、前記監視のタイミング、該監視の頻度、該監視の周期の少なくとも1つを指定する監視スケジューリング情報を更に含んでいてもよい。
【0033】
かかる発明によれば、OS監視装置は、上述の監視スケジューリング情報を用いて、上述の監視を適切にスケジューリングすることで、効率的かつ十分に安全な監視を実行することができる。
【0034】
本発明の第1の特徴において、前記監視スケジューリング情報は、前記監視のタイミングとして、該監視対象ソフトウェアの監視を実行する契機となるイベント種別或いは前記オペレーティングシステム監視装置の起動時の少なくとも1つを指定していてもよい。
【0035】
かかる発明によれば、OS監視装置は、上述の監視スケジューリング情報を用いて、特定のイベントが起きたときのみ、或いは、OS監視装置の起動時のみ、当該監視対象ソフトウェアを監視することにより、上述の監視によるオーバヘッドを削減し、効率的な監視を実行することができる。
【0036】
本発明の第1の特徴において、前記監視スケジューリング情報は、前記監視の頻度として、該監視対象ソフトウェアの監視に関する優先度を指定していてもよい。
【0037】
かかる発明によれば、OS監視装置は、重要な監視対象ソフトウェア或いは攻撃されやすい監視対象ソフトウェアに高い優先度を与えることで、このようなソフトウェアを高頻度で監視して、安全性を保証しつつ、優先度の低いソフトウェアの監視頻度を削減して、効率化を図ることができる。
【0038】
本発明の第2の特徴は、オペレーティングシステム上の監視対象ソフトウェアの監視を行うオペレーティングシステム監視装置であって、オペレーティングシステム監視設定情報生成装置から入力された監視設定情報ファイルに含まれている監視設定情報を利用して、前記監視を行う監視部と、前記監視対象ソフトウェアが更新される前に、前記監視設定情報ファイルの更新の可否について判定する更新テスト部と、前記監視設定情報ファイルが更新可能であると判定された場合に、前記監視設定情報ファイルを更新する監視設定情報更新部と、所定回数以上、前記監視設定情報ファイルの更新に失敗した場合に、該監視設定情報ファイルに対する復旧処理を行う復旧部とを備えることを要旨とする。
【0039】
かかる発明によれば、OS監視装置は、監視設定情報の更新可否を判定する事前テストを行った後に、監視対象ソフトウェア及び監視設定情報ファイルの更新を行うことにより、監視対象ソフトウェア及び監視設定情報の更新時の障害による不整合防止に対処することができる。
【0040】
本発明の第2の特徴において、前記更新テスト部は、前記監視設定情報ファイルと前記監視対象ソフトウェアとの対応関係を示すバインド情報を検査してもよい。
【0041】
かかる発明によれば、監視設定情報の更新可否を判定する事前テストの際には、ソフトウェア更新パッケージ又は監視対象ソフトウェアとのバインド情報を検査することで、監視設定情報とソフトウェアとの間の不整合が起きることを防止することができる。
【0042】
また、かかる発明によれば、監視設定情報のみの更新の際も、デバイス側に保存されている監視対象ソフトウェアとの整合を検査して、監視設定情報とソフトウェアとの間の不整合が起きることを防止することができる。
【0043】
本発明の第2の特徴において、前記監視設定情報に基づいて前記監視対象ソフトウェアのハッシュ値を算出し、算出した該監視対象ソフトウェアのハッシュ値と該監視設定情報に含まれる前記監視対象ソフトウェアのハッシュ値とを比較し、両者が一致しない場合に、該監視対象ソフトウェアに関する異常が発生したと判定する完全性監視部を備えていてもよい。
【0044】
かかる発明によれば、悪意のソフトウェアによる監視対象ソフトウェアの改竄や消去を検知して対処することで、正常動作を維持することができる。
【0045】
本発明の第2の特徴において、監視設定情報に含まれる監視スケジューリング情報に従って、前記監視を制御する監視制御部を備えていてもよい。
【0046】
かかる発明によれば、上述の監視を適切にスケジューリングすることで、効率的かつ安全な監視を実行することができる。
【0047】
本発明の第2の特徴において、入力されたイベント情報と、前記監視スケジューリング情報において前記監視のタイミングとして指定されているイベント種別とが一致した場合に、該監視を実行するように該監視を制御するイベントベース監視制御部を備えていてもよい。
【0048】
かかる発明によれば、特定のイベントが起きたときのみ、監視対象ソフトウェアを監視することにより、上述の監視によるオーバヘッドを削減して、効率的な監視を実行することができる。
【0049】
本発明の第2の特徴において、前記監視スケジューリング情報において指定されている優先度に従って、前記監視の順序や周期を調整する優先度ベース監視制御部を備えていてもよい。
【0050】
かかる発明によれば、重要な監視対象ソフトウェア或いは攻撃されやすい監視対象ソフトウェアに高い優先度を与えることで、OS監視装置は、このようなソフトウェアを高頻度で監視して、安全性を保証しつつ、優先度の低いソフトウェアの監視頻度を削減して、効率化を図ることができる。
【0051】
本発明の第2の特徴において、前記監視部は、前記監視の要否を示す監視フラグに応じて、該監視を行うか否かについて決定してもよい。
【0052】
かかる発明によれば、監視部における監視機能に不具合があった場合に、遠隔から当該監視機能をオフにし、当該監視機能を修正した後、オンにする等の対応が可能となる。
【0053】
また、かかる発明によれば、監視設定情報の更新に失敗した場合にも、当該監視機能をオフにて起動して、デバイスの利用可能性を確保することができる。
【0054】
本発明の第2の特徴において、オペレーティングシステム監視装置自身のプログラム及びパラメータの改竄を検知する自己監視部を備えていてもよい。
【0055】
かかる発明によれば、OS監視装置自身を攻撃から守り、安全な監視を行うことができる。
【0056】
本発明の第2の特徴において、前記監視設定情報は、前記監視対象記憶領域のアドレスと、該監視対象記憶領域のサイズと、該監視対象記憶領域に保持される値が取り得る範囲を含み、前記監視設定情報に基づいて、前記監視対象記憶領域におけるパラメータの正常性を判定するパラメータ監視部を備えていてもよい。
【0057】
かかる発明によれば、監視対象パラメータ(監視対象記憶領域におけるパラメータ)が正常の値を取っているか或いは改竄されていないかについて検査して、デバイスの正常動作を維持することができる。
【発明の効果】
【0058】
以上説明したように、本発明によれば、更新時と動作時の双方において、デバイス内のOSの完全性や健全性を安全かつ効率的に監視して正常動作を維持することができるOS監視設定情報生成装置及びOS監視装置を提供することができる。
【発明を実施するための最良の形態】
【0059】
(本発明の第1の実施形態に係るOS監視設定情報生成装置及びOS監視装置の構成)
図1乃至図6を参照して、本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30の構成について説明する。
【0060】
図1に示すように、本実施形態に係るOS監視設定情報生成装置10は、監視設定情報入力部11と、監視設定情報管理部12と、監視設定情報出力部13と、デジタル署名部14とを具備する。
【0061】
本実施形態では、OS監視設定情報生成装置10を、ソフトウェアにて実装することを想定しているが、その一部或いは全体をハードウェアにて実装してもよい。
【0062】
OS監視設定情報生成装置10としては、デバイスのソフトウェア更新パッケージを生成するツールと共に利用されるツールを想定している。なお、OS監視設定情報生成装置10自身が、ソフトウェア更新パッケージを生成する機能を備えてもよい。
【0063】
監視設定情報入力部11は、外部からの入力や計算によって、監視対象ソフトウェアに対応する監視設定情報を取得するように構成されている。
【0064】
図2及び図3に、かかる監視設定情報の具体例を示す。
【0065】
図2は、監視対象ソフトウェアの完全性を監視するための監視設定情報である。図2に示すように、かかる監視設定情報は、監視対象ソフトウェアの識別子と、当該監視対象ソフトウェアのハッシュ値と、当該監視対象ソフトウェアが保持されるアドレスと、当該監視対象ソフトウェアのサイズと、監視スケジューリング情報を含む。
【0066】
ここで、監視対象ソフトウェアの識別子は、当該監視対象ソフトウェアの識別番号でもよいし、当該監視対象ソフトウェアを構成するファイルを識別するための文字列(例えば、ファイル名)でもよい。
【0067】
また、監視対象ソフトウェアが保持されるアドレスとは、フラッシュROM(フラッシュメモリ)上で直接実行される場合は、かかるフラッシュROM上に格納されている監視対象ソフトウェアのバイナリのアドレスを示す。
【0068】
なお、かかるアドレスは、監視対象ソフトウェアを監視するために用いられるアドレスであるため、監視対象ソフトウェア(プログラム)の先頭アドレス(実行のための開始アドレス)であってもよいし、プログラムの途中のアドレスであってもよい。
【0069】
また、監視対象ソフトウェアのハッシュ値は、図2の例では、アドレス「0xa000」からサイズ「4KB」の範囲の監視対象ソフトウェア(プログラム)に対して、SHA1アルゴリズムを用いて160ビットの値として計算されるものである。
【0070】
また、監視スケジューリング情報は、上述の監視のタイミング、当該監視の頻度、当該監視の周期の少なくとも1つを指定するものである。
【0071】
例えば、監視スケジューリング情報は、当該監視のタイミングの指定として、当該監視対象ソフトウェアの監視を実行する契機となるイベント種別や、OS監視装置30の起動時等の指定を含んでもよい。
【0072】
また、監視スケジューリング情報は、当該監視の頻度の指定として、当該監視対象ソフトウェアの監視に関する優先度の指定を含んでもよい。
【0073】
なお、図2の例では、上述のイベント種別として、「電話発信時」が指定されている。
【0074】
また、図3は、監視対象パラメータの正常性を監視するための監視設定情報である。図3に示すように、かかる監視設定情報は、監視対象記憶領域のアドレスと、当該監視対象記憶領域のサイズと、当該監視対象記憶領域に保持される値が取り得る範囲(正常値の範囲)を含む。
【0075】
本実施形態において、かかる監視対象記憶領域としては、RAMやフラッシュROM等を想定する。
【0076】
図3の例では、「0xa000」を始点とした4バイトのメモリ領域におけるパラメータは、「1〜100」の値が正常値であり、それ以外の値が設定されている場合、異常であると判定される。
【0077】
なお、正常値の範囲は、「10、20、30」等といった離散的な値で指定されていてもよいし、「0でない」や「10〜15の範囲でない」等といった異常値を指定してそれ以外が正常値の範囲であるという形で指定されていてもよい。
【0078】
監視設定情報入力部11は、所定の設定ファイルから当該監視設定情報を取得するように構成されていてもよいし、管理者やオペレータによるキーボードやマウス等を用いた入力を介して当該監視設定情報を取得するように構成されていてもよい。
【0079】
さらに、監視設定情報入力部11は、監視対象ソフトウェアのファイルやソフトウェア更新パッケージを入力して、自身で、監視対象ソフトウェアのハッシュ値やサイズを計算して、かかる計算結果を監視設定情報として取得するように構成されていてもよい。
【0080】
なお、監視対象ソフトウェアのハッシュ値は、SHA-1やSHA-256やMD5等の任意の一方向ハッシュ関数を用いて計算されてもよい。
【0081】
監視設定情報管理部12は、複数の監視対象ソフトウェアに対応する監視設定情報を保持するように構成されている。
【0082】
監視設定情報管理部12は、監視設定情報入力部11により取得された監視設定情報を、メモリやファイルシステムに、表形式やリスト形式等の任意の形式で保持するように構成されている。
【0083】
なお、監視設定情報管理部12は、監視設定情報入力部11により取得された監視設定情報に含まれている監視対象ソフトウェアの識別子と同一の監視対象ソフトウェアの識別子を含む監視設定情報を既に保持している場合、新たに取得した監視設定情報への更新(上書き)を行うように構成されている。
【0084】
また、監視設定情報管理部12は、監視設定情報入力部11を介して、所定の監視設定情報の削除要求を受け付けるように構成されていてもよい。
【0085】
さらに、監視設定情報管理部12は、監視設定情報の種別として、図2及び図3に示す監視設定情報を混在して管理するように構成されていてもよい。
【0086】
監視設定情報出力部13は、監視設定情報管理部12により保持されている1つ以上の監視設定情報と、バージョン情報と、監視対象ソフトウェアとの対応関係を示すバインド情報とを含む監視設定情報ファイルを生成して出力するように構成されている。
【0087】
ここで、バージョン情報は、監視設定情報ファイルのバージョンを示すものであり、管理者やオペレータによる入力に基づいて決定されるものであってもよいし、監視設定情報出力部13によって以前の監視設定情報ファイルの次を示す番号として決定されてもよい。
【0088】
例えば、バインド情報は、ソフトウェア更新パッケージのバージョン情報や、ソフトウェア更新パッケージの識別子や、監視対象ソフトウェアのバージョン情報である。
【0089】
また、監視対象ソフトウェアのバージョン情報は、所定のパッチや機能追加等のソフトウェア更新パッケージが適用された後の監視対象ソフトウェア全体としてのバージョン情報である。
【0090】
図4に、監視設定情報ファイルの構成を示し、図5に、かかる監視設定情報ファイルの具体例を示す。
【0091】
図5の例では、監視設定情報ファイルのバージョン情報として「Ver. 1.03」が指定されており、バインド情報として当該監視設定情報ファイルに対応するソフトウェア更新パッケージのバージョン情報「2.12」が指定されている。
【0092】
なお、監視設定情報ファイルは、バイナリ形式であってもよいし、アスキー形式であってもよい。また、監視設定情報ファイルは、容量削減のため、圧縮されていてもよい。
【0093】
デジタル署名部14は、監視設定情報ファイルのデジタル署名を生成して付与するように構成されている。
【0094】
ここで、デジタル署名は、監視設定情報ファイルと別ファイルであってもよいし、合体して1つのファイルとなっていてもよい。
【0095】
図4に、デジタル署名付きの監視設定情報ファイルの構成を示す。
【0096】
デジタル署名の方式は、RSA方式であってもよいし、ElGamel方式やDSA方式やRabin方式等の任意の方式であってもよい。
【0097】
ただし、デジタル署名の有効性を維持するため、デジタル署名を実行する際の秘密鍵は、OS監視設定情報生成装置10の管理者(例えば、デバイスメーカ)が厳重に管理し、決して外部に漏らすことがないようにしなければならない。
【0098】
図1に示すように、本実施形態に係るOS監視装置30は、OS上の監視対象ソフトウェアの監視を行うように構成されている。
【0099】
具体的には、OS監視装置30は、更新テスト部31と、監視設定情報更新部32と、監視設定情報ファイル入力部33と、署名検証部34と、復旧部35と、監視設定情報管理部36と、監視部37と、異常時対処部38と、自己監視部39と、監視フラグ管理部40と、パラメータ監視部41と、完全性監視部42と、監視制御部43と、イベント入力部44と、イベントベース監視制御部45と、優先度ベース監視制御部46とを具備している。
【0100】
本実施形態では、OS監視装置30の各部は、ハードウェア又はソフトウェアのいずれで実装されていてもよい。
【0101】
図6に、本実施形態に係るOS監視装置30を含むデバイスの構成図を示す。本実施形態では、OS監視装置30は、監視対象のOSから隔離された領域(ドメイン)で実行されるソフトウェアを想定する。
【0102】
ここで、同一のCPU上で、ドメインを隔離する手段として、図6(a)に示すように、Xen Virtual Machine Monitor(http://www.cl.cam.ac.uk/Research/SRG/netos/xen/)等の仮想マシンモニタ(Virtual Machine Monitor)に基づくドメイン分離技術を使ってもよいし、図6(b)に示すように、ARM社のTrustZoneのようなハードウェアレベルのドメイン分離技術を使ってもよい。
【0103】
また、図6(c)に示すように、OSを実行するCPUと別のCPU上で、OS監視装置30を実行することで、ドメインを隔離してもよい。
【0104】
OS監視装置30は、OSと並行して動作して、上述の監視を実行することができるものとする。
【0105】
更新テスト部31は、監視対象ソフトウェアが更新される前に、当該監視対象ソフトウェアに対応する監視設定情報ファイルの更新の可否について判定する更新テストを行うように構成されている。
【0106】
更新テストの例として、監視設定情報ファイルのデジタル署名の検証や、監視設定情報ファイルとソフトウェア更新パッケージ或いは監視対象ソフトウェアとのバインド情報の検査や、書き換え領域の空き容量の検査や、書き換え可否の検査等が挙げられる。
【0107】
かかる更新テストが失敗した場合、監視対象ソフトウェアと同期して監視設定情報ファイルを更新することができないため、当該監視対象ソフトウェアの更新手順は中止される。
【0108】
監視設定情報更新部32は、監視設定情報ファイルが更新可能であると判定された場合に、当該監視設定情報ファイルを更新するように構成されている。
【0109】
この際、監視設定情報更新部32は、監視設定情報ファイルのバージョン情報を記録しておくことによって、監視設定情報ファイル入力部33が、当該バージョン情報を検査することができるようにする。
【0110】
ここで、監視設定情報更新部32は、かかるバージョン情報を安全に保持するために、セキュアストレージ機能を利用してもよい。
【0111】
例えば、TPM(Trusted Platform Module)等のハードウェアベースのセキュリティチップの多くが、かかるセキュアストレージ機能を提供している。
【0112】
当該監視設定情報ファイルの更新が成功した場合は、監視設定情報更新部32は、かかる更新手順を完了する。
【0113】
一方、当該監視設定情報ファイルの更新が失敗した場合、監視設定情報更新部32は、当該監視設定情報ファイルの更新について再試行(リトライ)し、所定回数(リトライ回数の上限)を超えて失敗した場合、復旧部35を呼び出す。
【0114】
なお、上述の監視設定情報ファイルがダウンロードされるタイミングは、ソフトウェア更新パッケージのダウンロードと一緒であってもよいし、独立であってもよい。
【0115】
また、上述の監視設定情報ファイルをダウンロードする主体は、監視設定情報更新部32であってもよいし、デバイス内のソフトウェア更新モジュール等のモジュールであってもよい。
【0116】
ダウンロードされた後、監視設定情報ファイルは、フラッシュメモリやハードディスクやSDメモリカード等の外部ストレージ等といった任意のストレージ手段によってデバイス内に保存される。
【0117】
以下に、監視設定情報ファイルのダウンロードの具体例について示す。
【0118】
第1の例によれば、デバイスのソフトウェア更新モジュールが、無線ネットワークを通じて、監視設定情報ファイルやソフトウェア更新パッケージを保持するデバイス管理サーバから、ソフトウェア更新パッケージと一緒に、監視設定情報ファイルをデバイスにダウンロードしてフラッシュメモリに書き込む。
【0119】
その後、デバイスのソフトウェア更新モジュールが、ソフトウェアの更新を行う前に、OS監視装置30を呼び出し、更新テスト部31による監視設定情報の更新テストを実行させた後、当該ソフトウェアの更新を行う。
【0120】
第2の例によれば、デバイスのソフトウェア更新モジュールが、USB接続経由で、PCから、ソフトウェア更新パッケージをデバイスにダウンロードし、その後、監視設定情報ファイルをデバイスにダウンロードする。
【0121】
その後、デバイスのソフトウェア更新モジュールが、ソフトウェアの更新を行う前に、OS監視装置30を呼び出し、更新テスト部31による監視設定情報の更新テストを実行させた後、当該ソフトウェアの更新を行う。
【0122】
第3の例によれば、OS監視装置30の監視設定情報更新部32が、無線ネットワークを通じて、監視設定情報ファイルを保持するサーバから、監視設定情報ファイルをダウンロードして、監視設定情報ファイルのみを更新する。
【0123】
なお、監視設定情報更新部32は、定期的に当該サーバに監視設定情報ファイルの更新の有無を照会してもよいし、当該サーバからプッシュ通信により監視設定情報ファイルの更新を通知してもらってもよい。
【0124】
監視設定情報ファイル入力部33は、OS監視装置30の起動時に、監視設定情報ファイルの有無及びバージョン情報を検査し、上述のストレージ手段から、該当する監視設定情報ファイルを取得するように構成されている。
【0125】
ここで、監視設定情報ファイルは、OS監視設定情報生成装置10によって生成されたファイルであり、ネットワーク経由やケーブル経由で、デバイスにダウンロードされ、監視設定情報更新部32によってフラッシュメモリ等のストレージ手段に書き込みされているものとする。
【0126】
監視設定情報ファイル入力部33は、上述の検査によって、該当する監視設定情報ファイルが存在しないと判定した場合や、該当する監視設定情報ファイルのバージョン情報が想定のバージョン情報と異なる場合(古いバージョン情報等)、異常であると判定し、復旧部35を呼び出す。
【0127】
このとき、監視設定情報ファイル入力部33は、上述のバインド情報を検査して、かかる監視設定情報ファイルが現状の監視対象ソフトウェアと整合しているか否かについて判定してもよい。ここで、整合していないと判定した場合、監視設定情報ファイル入力部33は、復旧部35を呼び出す。
【0128】
署名検証部34は、監視設定情報ファイルに付与されたデジタル署名を検証するように構成されている。
【0129】
署名検証部34は、かかるデジタル署名の検証に失敗した場合、当該監視設定情報ファイルは不正なものであると判断して、復旧部35を呼び出す。
【0130】
ここで、デジタル署名は、予めセキュリティポリシーによって決められた信頼されたパーティによるものでなければならず、例えば、デバイスメーカや通信キャリア等によって署名がなされるものとする。
【0131】
また、署名を検証する際の公開鍵は、安全に保存されているのが望ましく、例えば、書き換え不能なマスクROMやセキュアストレージに保存することで安全性を向上できる。
【0132】
署名検証部34は、主に、OS監視装置30の起動時に実行されることを想定しているが、起動が完了した後の実行中に実行されてもよい。
【0133】
復旧部35は、監視設定情報ファイルに関する異常発生時に、当該監視設定情報ファイルに対する復旧処理を行うように構成されている。
【0134】
具体的には、復旧部35は、所定回数(リトライ回数の上限)以上、監視設定情報ファイルの更新に失敗した場合に、当該監視設定情報ファイルに対する復旧処理を行う。
【0135】
かかる復旧処理として、デバイスを再起動してソフトウェア更新モジュールや監視設定情報更新部32に対して、再度、監視設定情報ファイルをダウンロードさせて、当該監視設定情報ファイルの更新を試みることが考えられる。
【0136】
或いは、かかる復旧処理として、外部ストレージ等に退避された監視設定情報ファイルを利用することも考えられる。
【0137】
復旧部35は、これらの復旧処理を用いても、当該監視設定情報ファイルの復旧が不可能であると判断した場合、監視フラグ管理部40を呼び出して、監視フラグをオフにする。
【0138】
監視設定情報管理部36は、監視設定情報ファイルに含まれている監視設定情報を保持するように構成されている。
【0139】
監視設定情報管理部36は、OS監視装置30の起動手順時に、監視部37による監視処理が行われ易いように、メモリに当該監視情報を展開したり、当該監視情報を構成するファイルが圧縮されている場合には当該ファイルの伸張を行ったりする。
【0140】
監視部37は、上述の監視設定情報を利用して、監視対象ソフトウェアの監視を行い、異常の際には異常時対処部38を呼び出すように構成されている。
【0141】
監視部37は、OS監視装置30の起動時に、監視設定情報管理部36から監視設定情報を読み出し、必要に応じて初期化を行った後、上述の監視を開始する。
【0142】
なお、監視部37は、上述の監視の要否を示す監視フラグに応じて、当該監視を行うか否かについて決定する。すなわち、監視部37は、監視フラグ管理部40により管理されている監視フラグがオフの場合には、上述の監視を停止する。
【0143】
監視部37は、サブシステムとして、完全性監視部42及びパラメータ監視部41を備えている。
【0144】
本実施形態では、監視方法として、完全性監視部42による監視対象ソフトウェア(又は、監視対象データ)の完全性の監視や、パラメータ監視部41による監視対象パラメータの正常性の監視が実行されることを想定しているが、ペリフェラルの入出力の監視等といった別の監視方法が実行されてもよい。
【0145】
監視部37は、OS監視装置30の実行時に、監視制御部43から、所定ソフトウェアの監視要求を受け付け、当該所定ソフトウェアの監視方法を、監視設定情報等を利用して選択し、必要に応じて完全性監視部42等を呼び出して当該監視を行う。
【0146】
異常時対処部38は、監視部37により異常が検知された際に呼び出され、かかる異常への対処を行うように構成されている。
【0147】
具体的には、異常時対処部38は、当該異常が発生したことをユーザに通知するための画面表示や、実行中のトランザクションの中止や、再起動の実行や、退避していたソフトウェアやデータによる復旧や、指定のサーバへの異常の通知や、ユーザの権限の制限等などを行う。
【0148】
また、異常時対処部38は、異常種別(改竄や消去や不正アクセス)や監視対象ソフトウェアや監視対象パラメータに対応した対処法を保持し、異常種別等によって対処法を変えてもよい。
【0149】
自己監視部39は、OS監視装置30自身のプログラム及びパラメータの改竄を検知するように構成されている。
【0150】
自己監視部39を保護するために、OS監視装置30の各部とは隔離されたハードウェアによるセキュアな実行環境で自己監視部39を実行してもよい。
【0151】
自己監視部39は、周期的に、OS監視装置30を監視してもよいし、監視対象ソフトウェアの監視の実行前や、デバイスがアイドル状態である場合等といった所定のイベントや状態を契機に、OS監視装置30を監視してもよい。
【0152】
監視フラグ管理部40は、外部から監視の要否を設定する監視フラグの設定要求を受け取り保持するように構成されている。
【0153】
例えば、監視フラグ管理部40は、無線ネットワークを通じて遠隔のデバイス管理サーバから監視フラグの設定要求を受け取ったり、ケーブル接続されたデバイス管理ツールから監視フラグの設定要求を受け取ったりすることが考えられる。
【0154】
監視フラグ管理部40は、かかる監視フラグに関する情報を安全に保持するために、セキュアストレージ機能を利用してもよい。
パラメータ監視部41は、監視部37のサブシステムであり、上述の監視設定情報に基づいて、監視対象パラメータの正常性を検査して、異常発生の有無と判定するように構成されている。
【0155】
具体的には、パラメータ監視部41は、監視設定情報に含まれる監視対象記憶領域のアドレスと監視対象記憶領域のサイズと監視対象記憶領域に保持される値が取り得る範囲(正常値の範囲)とに従って、監視対象パラメータの正常性を検査し、監視対象パラメータが正常値の範囲内にない場合に、異常発生と判定して、異常時対処部を呼び出す。
【0156】
なお、監視対象パラメータは、監視対象ソフトウェアに関するパラメータであってもよいし、その他のパラメータであってもよい。
【0157】
完全性監視部42は、監視部37のサブシステムであり、監視設定情報(監視対象ソフトウェアが保持されるアドレス及び監視対象ソフトウェアのサイズ)に従って、監視対象ソフトウェア(メモリ或いはファイル)のハッシュ値を計算し、算出した当該監視対象ソフトウェアのハッシュ値と当該監視設定情報に含まれる監視対象ソフトウェアのハッシュ値とを比較し、両者が一致しない場合に、当該監視対象ソフトウェアに関する異常が発生したと判定し、異常時対処部38を呼び出すように構成されている。
【0158】
完全性監視部42は、周期的に、或いは、所定イベントの生起時に、呼び出されることが想定されている。なお、完全性監視部42は、電力消費削減のために、OSがサスペンドしている際には監視動作を停止し、OSがレジュームして動作を開始した際に監視を再開してもよい。
【0159】
監視制御部43は、上述の監視設定情報に含まれる監視スケジューリング情報に従って、監視対象ソフトウェア(又は、監視対象記憶領域や監視対象パラメータ等を含む)の監視を制御するように構成されている。
【0160】
具体的には、監視制御部43は、監視設定情報に含まれる監視スケジューリング情報によって指定される当該監視のタイミング、当該監視の頻度、当該監視の周期の少なくとも1つに従って、監視部37を呼び出して、上述の監視を実行させるように構成されている。
【0161】
例えば、監視制御部43は、1分周期で、監視部37(又は、完全性監視部42)を呼び出して、監視対象ソフトウェアの完全性の検証を実行させるように構成されてもよいし、所定時刻に、監視部37(又は、パラメータ監視部41)を呼び出して、監視対象パラメータの正常性の検証を実行させるように構成されていてもよいし、OS監視装置30の起動時に、監視部37を呼び出して、上述の検証を実行させるように構成されていてもよい。
【0162】
また、監視制御部43は、指定期間や指定回数だけ、上述の監視を実行したら、当該監視を停止するように、監視部37を制御してもよい。
【0163】
監視制御部43は、サブシステムとして、優先度ベース監視制御部46及びイベントベース監視制御部45を備え、監視設定情報に基づいて、必要に応じて、優先度ベース監視制御部46やイベントベース監視制御部45を呼び出す。
【0164】
イベント入力部44は、監視対象のOSやペリフェラル等の外部から、所定のイベントを示すイベント情報を受け付けるように構成されている。
【0165】
かかるイベントの例として、電話発信や、外部ストレージへのデータ書き込みや、電子商取引のトランザクションの実行や、折りたたみ型電話機の開閉や、特定キーの押下等が想定される。
【0166】
なお、OSが、上述のイベントが発生した場合に、OS監視装置30に対して当該イベントを示すイベント情報を通知する機能を備えており、ペリフェラルが、OS監視装置30に対して割り込みを発生する機能を備えることを想定している。
【0167】
イベントベース監視制御部45は、監視制御部43のサブシステムであり、入力されたイベント情報と、上述の監視スケジューリング情報において上述の監視のタイミングとして指定されているイベント種別とが一致した場合に、監視部37を呼び出して上述の監視を実行させるように構成されている。
【0168】
例えば、所定イベントして電話発信が発生した際に、イベントベース監視制御部45は、完全性監視部42を呼び出し、かかる電話発信を監視のタイミングとして指定する監視対象ソフトウェアの完全性の検証を実行する。
【0169】
優先度ベース監視制御部46は、監視制御部43のサブシステムであり、監視スケジューリング情報で指定されている優先度に従って、上述の監視対象ソフトウェアの監視の順序や周期を調整するように構成されている。
【0170】
(本発明の第1の実施形態に係るOS監視設定情報生成装置及びOS監視装置の動作)
図7を参照して、本発明の第1の実施形態に係るOS監視設定情報生成装置10の動作について説明し、図8乃至図23を参照して、本発明の第1の実施形態に係るOS監視装置30の動作について説明する。
【0171】
第1に、図7を参照して、本実施形態に係るOS監視設定情報生成装置10が監視設定情報を生成する動作について説明する。
【0172】
図7に示すように、OS監視設定情報生成装置10は、ステップS100において起動し、ステップS101において各種の初期化処理を行う。
【0173】
ステップS102において、監視設定情報入力部11が、特定のフォルダ内の複数の設定ファイルから監視設定情報を取得する。
【0174】
ここでは、1つの監視対象ソフトウェアに対応する監視設定情報が、1つの設定ファイルに保存されており、監視設定情報入力部11が、複数の設定ファイルを取得して、複数の監視対象ソフトウェアに対応する監視設定情報を取得することを想定している。
【0175】
なお、図7に示すフローチャートでは、監視設定情報入力部11は、設定ファイルから監視設定情報を取得しているが、キーボードやマウス等を用いてオペレータにより入力された監視設定情報を取得してもよいし、監視対象ソフトウェアを構成するファイルを取得して監視対象ソフトウェアのハッシュ値やサイズを計算してもよい。
【0176】
ステップS103において、必要な全ての監視設定情報が入力された場合、ステップS104において、監視設定情報管理部12は、監視設定情報入力部11により取得された複数の監視設定情報をメモリやファイルシステムに保持する。
【0177】
監視設定情報出力部は、ステップS105において、監視設定情報ファイルのバージョン情報を決定し、ステップS106において、監視対象ソフトウェア(又は、ソフトウェア更新パッケージ)との対応関係を示すバインド情報を生成し、ステップS107において、監視設定情報管理部12により保持されている1つ以上の監視設定情報とバージョン情報とバインド情報とを含む監視設定情報ファイルを生成して出力する。
ステップS108において、デジタル署名部14は、上述の監視設定情報ファイルのデジタル署名を生成して付与する。この後、かかるデジタル署名付きの監視設情報ファイルは、デバイス管理サーバやソフトウェア更新ツールのPCに保存される。
【0178】
第2に、図8を参照して、OS監視装置30が、監視対象ソフトウェアが更新される際に、監視設定情報を更新する動作について説明する。
【0179】
図8に示すように、ステップS201において、監視対象ソフトウェアを更新する前に、更新テスト部31が、監視設定情報の更新可否を判定する更新テストを行う。
【0180】
かかる更新テストには、監視設定情報に付与されたデジタル署名の検証や、バインド情報の検査や、書き換え領域の空き容量の検査や、書き換え可否の検査等が含まれる。
【0181】
ステップS202において、かかる更新テストが失敗した場合、監視対象ソフトウェアの更新と同期して監視設定情報ファイルの更新ができないため、監視対象ソフトウェアの更新を中止し、本動作は終了する。
【0182】
一方、ステップS202において、かかる更新テストが成功した場合、ステップS203において、デバイスが備えるソフトウェア更新機能が、ソフトウェア更新パッケージによるソフトウェアの更新を実行する。なお、ステップS203において、ソフトウェア更新パッケージ及び監視設定情報ファイルが一括して更新されてもよい。かかる場合、ステップS205及びS206の処理は不要となる。
【0183】
ステップS204において、かかるソフトウェアの更新が失敗した場合も、監視対象ソフトウェアの更新と同期して監視設定情報ファイルの更新ができないため、本動作は終了する。
【0184】
ステップS204において、ソフトウェア更新パッケージによる監視対象ソフトウェアの更新が成功した場合、ステップS205において、監視設定情報更新部32は、かかる監視対象ソフトウェアに対応する監視設定情報ファイルの更新を実行する。
【0185】
ステップS206において、かかる監視設定情報ファイルの更新が成功した場合、ステップS207において、監視設定情報更新部32は、監視設定情報ファイルのバージョン情報を記録し、OS監視装置30の起動時に、監視設定情報ファイル入力部33が、かかるバージョン情報を検査することができるようにする。
【0186】
一方、ステップS206において、かかる監視設定情報ファイルの更新が失敗した場合、監視設定情報更新部32は、かかる監視設定情報ファイルの更新についてリトライする。
【0187】
ステップS206において、かかる監視設定情報ファイルの更新が、所定回数(リトライ回数の上限)を超えて失敗した場合、監視設定情報更新部32は、かかる監視を不要とするために、監視フラグをオフにするように監視フラグ管理部40に指示すると共に、復旧部35を呼び出す。
【0188】
復旧部35は、監視設定情報ファイルの更新が失敗した理由に従って、例えば、再度、監視設定情報ファイルをダウンロード後に、当該監視設定情報ファイルの更新をリトライしたり、OS監視装置30を再起動してメモリを開放した後に、当該監視設定情報ファイルの更新をリトライしたり、不要ファイルの削除後に、当該監視設定情報ファイルの更新をリトライしたりする。
【0189】
第3に、図9及び図10を参照して、OS監視装置30が、起動する動作について説明する。
【0190】
図9に示すように、ステップS300において、デバイスが起動した時に、ステップS301において起動したOS監視装置30のローダは、フラッシュメモリやハードディスク上のOS監視装置のプログラムをロードする前に、ステップS302において、OS監視装置のプログラムに付与されたデジタル署名の検証を行う。
【0191】
ステップS303において、かかるデジタル署名の検証に失敗した際には、OS監視装置30自身のプログラムが壊れているか改ざんされているため、復旧処理を行う。
【0192】
本実施形態では、OS監視装置30の復旧部35を呼び出して復旧部35による復旧処理を行うことを想定しているが、デバイスの全体の復旧処理等の他の復旧処理を行ってもよい。
【0193】
また、本実施形態では、OS監視装置30のプログラムに付与されたデジタル署名の検証を行っているが、OS監視装置30のプログラムのハッシュ値を計算し、OS監視装置30のローダ内に埋め込まれたハッシュ値と一致するかどうかについて判定することによって、OS監視装置30のプログラムの正当性を確認してもよい。
【0194】
ステップS303において、かかるデジタル署名の検証に成功した場合、ステップS304において、OS監視装置30の起動手順が実行される。
【0195】
ステップS305において、監視フラグ管理部40が、起動されて、監視フラグを検査する。
【0196】
ステップS306において、監視フラグがオフであると判定された場合、外部からの監視フラグの設定要求の待ち受け状態に移行して、本動作は終了する。
【0197】
すなわち、監視フラグをオンにするという要求が来ない限り、監視対象プログラムの監視を有効にしない。
【0198】
一方、監視フラグがオンであると判定された場合、自己監視部39を起動する。そして、ステップS307において、監視設定情報ファイル入力部33は、監視設定情報ファイルの有無やバージョン情報やバインド情報を検査する。
【0199】
ステップS308において、監視設定情報ファイルが存在しなかった場合、監視設定情報ファイル入力部33は、異常であると判定して復旧部35を呼び出す。
【0200】
また、ステップS308において、監視設定情報ファイルに含まれているバージョン情報が、正常のバージョン情報と異なる場合、監視設定情報ファイル入力部33は、異常であると判定して復旧部35を呼び出す。
【0201】
さらに、ステップS308において、バインド情報が、現状の監視対象ソフトウェアと整合していない場合、監視設定情報ファイル入力部33は、異常であると判定して復旧部35を呼び出す。
【0202】
復旧部35は、再起動や退避しておいた監視設定情報ファイルのコピー等により、復旧処理を試み、それでも復旧できない場合は、監視フラグ管理部40を呼び出して監視フラグをオフにする。
【0203】
本実施形態では、監視設定情報ファイルの有無の検査、バージョン情報の検査、バインド情報の検査、デジタル署名の検査という順序で検査を行ったが、別の順序でかかる検査を行ってもよい。
【0204】
ステップS308において、上述の検査に成功した場合、図10に示すように、ステップS401において、監視設定情報ファイル入力部33は、監視設定情報ファイルを取得する。
【0205】
ステップS402において、署名検証部34は、監視設定情報ファイルに付与されたデジタル署名を検証する。
【0206】
ステップS403において、かかるデジタル署名の検証に失敗した場合は、署名検証部34は、かかる監視設定情報ファイルは、不正なものであると判断し、復旧部35を呼び出す。
【0207】
ステップS403において、かかるデジタル署名の検証に成功した場合は、ステップS404において、監視設定情報管理部36は、監視設定情報ファイル内の監視設定情報を保持する。
【0208】
ステップS405において、監視部37が、かかる監視設定情報を利用して、監視部37のサブシステムであるパラメータ監視部41及び完全性監視部42の初期化を行い、監視対象ソフトウェア等の監視を開始する。
【0209】
かかる初期化は、例えば、監視部37が、監視制御部43を呼び出して、かかる監視についてのスケジューリング管理を行う。
【0210】
ステップS406において、自己監視部39が、起動して、OS監視装置30自身の監視を開始する。
【0211】
第4に、図11を参照して、OS監視装置30が、監視対象パラメータを監視する動作について説明する。
【0212】
図11に示すように、ステップS500において、図10の動作と同様に、監視部37が、監視設定情報を利用して、パラメータ監視部41の初期化を行う。
【0213】
ステップS501において、パラメータ監視部41は、図3に示すように、監視設定情報として、監視対象記憶領域のアドレスと監視対象記憶領域のサイズと監視対象記憶領域に保持される値が取り得る範囲(正常値の範囲)を取得する。
【0214】
ステップS502において、パラメータ監視部41は、監視対象記憶領域に保持される監視対象パラメータを監視する。
【0215】
ステップS503において、パラメータ監視部41は、監視対象パラメータが正常値の範囲外であった場合に、異常であると判断して、異常時対処部38を呼び出す。
【0216】
異常時対処部38は、異常発生の通知や、ハードウェアリセットの呼び出しによる再起動等の対処を行う。
【0217】
第5に、図12乃至図13を参照して、OS監視装置30が、周期的に監視対象ソフトウェアの完全性を監視する動作について説明する。
【0218】
図12に示すように、ステップS600において、図10の動作と同様に、監視部37が、監視設定情報を利用して、完全性監視部42の初期化を行う。
【0219】
ステップS601において、完全性監視部42が、図2に示す監視設定情報として、監視対象ソフトウェアの識別子と、監視対象ソフトウェアのハッシュ値と、監視対象ソフトウェアが保持されるアドレスと、監視対象ソフトウェアのサイズと、監視スケジューリング情報を取得する。
【0220】
ステップS602において、監視制御部43が、監視設定情報に含まれる監視スケジューリング情報を利用して、上述の監視のスケジューリング管理を行う。
【0221】
本実施形態では、監視スケジューリング情報として、上述の監視の周期が、指定されているものとし、図13に示すように、監視対象ソフトウェア1の監視の周期は「5分」と指定され、監視対象ソフトウェア2の監視の周期は「1分」と指定され、監視対象ソフトウェア3の監視の周期は「30分」と指定されているものとする。
【0222】
監視制御部43は、任意の手段を用いて、監視のスケジューリング管理を行うことができる。
【0223】
例えば、監視制御部43は、監視対象ソフトウェア1、2、3の監視の周期を、監視制御部43の起動周期で割った値を、監視対象ソフトウェアの識別子を要素とする配列sに保存して管理する。
【0224】
監視起動部43の起動周期が「30秒」である場合、配列s[1]、s[2]、s[31]は、それぞれ「10」、「2」、「60」と設定される。
【0225】
監視制御部43は、呼び出される度に、カウンタの値を「1」づつ増加させ、かかるカウンタの値が、配列sの各要素に保持されている値で割り切れた場合に、かかる要素に対応する監視対象ソフトウェアについて監視するように制御することができる。
【0226】
ステップS603において、監視制御部43は、適切なタイミングで、監視部37を呼び出すために、例えば、30秒ごとのタイマ割り込みを設定する。
【0227】
図14に示すように、ステップS701において、タイマ割り込みを契機に、監視制御部43は、起動されて、決定したスケジューリングに従って、監視対象のソフトウェアを指定して監視部37を呼び出す。
【0228】
例えば、上述の通り、監視制御部43は、カウンタの値を「1」づつ増加させ、配列sをスキャンして、監視対象ソフトウェアを決定することができる。
【0229】
ステップS702において、監視部37は、指定された監視対象ソフトウェアを監視するために、完全性監視部42を呼び出す。
【0230】
ステップS703において、完全性監視部42は、指定された監視対象ソフトウェアが保持されるアドレス及びサイズに従って、監視対象ソフトウェア(メモリ又はファイル)のハッシュ値を計算し、監視設定情報に含まれる監視対象ソフトウェアのハッシュ値と比較する。
【0231】
ステップS704において、完全性監視部42は、両者が一致しない場合に、異常であると判定して、異常時対処部38を呼び出す。
【0232】
ステップS704において、完全性監視部42は、両者が一致する場合には、次のタイマ割り込みを待つ。
【0233】
なお、完全性監視部42は、電力消費削減のために、OSがサスペンドしている際には、上述の監視動作を停止し、OSがレジュームして動作を開始した際に、上述の監視動作を再開してもよい。
【0234】
また、図12乃至図14の例では、完全性監視部42の動作について説明したが、パラメータ監視部41も同様のスケジューリングを行ってもよい。
【0235】
第6に、図15及び図16を参照して、OS監視装置30が、動作時に配置アドレスが決まるソフトウェアの完全性を監視する動作について説明する。
【0236】
図15に示すように、ステップS801において、監視部37が、監視設定情報を利用して、完全性監視部42の初期化を行う。
【0237】
そして、完全性監視部42は、かかる初期化において、図2に示すように、監視設定情報として、監視対象ソフトウェアの識別子と、監視対象ソフトウェアのハッシュ値と、監視対象ソフトウェアが保持されるアドレスと、監視対象ソフトウェアのサイズと、監視スケジューリング情報を取得する。
【0238】
ステップS802において、完全性監視部42は、監視対象ソフトウェアが保持されるアドレスが指定されていない等、動作時に監視対象ソフトウェアが保持されるアドレスが決定されるものがあった場合、動作時の監視対象ソフトウェアが保持されるアドレスを取得する必要があると判定して、本動作は、ステップS803に進む。
【0239】
そのようなものがない場合、本動作は、ステップS806に進む。
【0240】
ステップSS803において、完全性監視部42は、OSの完全性についての監視処理を実行し、OSが危殆化されているか否かについて確認する。
【0241】
ステップS804において、OSの完全性についての監視が失敗した場合は、既にOSが危殆化されているということであり、完全性監視部42は、異常時対処部38を呼び出して、OSの復旧処理等を行う。
【0242】
一方、OSの完全性についての監視が成功した場合、ステップS805においいて、完全性監視部42は、OSから、動作時の監視対象ソフトウェアが保持されるアドレス等を含む監視設定情報を受け取り、初期化処理を行う。
【0243】
なお、ステップS806、S807、S901乃至S904の動作は、上述した図12及び図14におけるステップS602、S603、S701乃至S704の動作と同様である。
【0244】
第7に、図17及び図18を参照して、OS監視装置30が、優先度に基づいて、監視対象ソフトウェアの完全性について監視する動作について説明する。本実施形態では、図18に示すように、監視スケジューリング情報として、優先度が指定されているものとする。
【0245】
図17に示すように、ステップS1001において、監視部37が、監視設定情報を利用して、完全性監視部42の初期化を行う。
【0246】
ここで、完全性監視部42は、かかる初期化において、図18に示すように、監視設定情報として、監視対象ソフトウェアの識別子と、監視対象ソフトウェアのハッシュ値と、監視対象ソフトウェアが保持されるアドレスと、監視対象ソフトウェアのサイズと、監視スケジューリング情報としての優先度を取得する。
【0247】
ステップS1002において、監視制御部37は、監視スケジューリング情報として優先度を含む監視設定情報が取得されたか否かについて調べる。
【0248】
ステップS1003において、優先度を含む監視設定情報が取得されたと判定された場合、ステップS1004において、監視制御部37は、優先度ベース監視制御部46を呼び出す。
【0249】
ステップS1005において、優先度ベース監視制御部46は、監視設定情報で指定された監視スケジューリング情報としての優先度を利用して、スケジューリング管理を行う。
【0250】
かかる優先度に基づくスケジューリング管理は、図12乃至図14を参照して説明したスケジューリング管理の後に実行してもよいし、先に実行してもよい。或いは、いずれかのスケジューリング管理のみを実行することにしてもよい。
【0251】
図18に示す例では、監視対象ソフトウェア1に対する監視の優先度は「2」と設定されており、監視対象ソフトウェア2に対する監視の優先度は「1」と設定されており、監視対象ソフトウェア3に対する監視の優先度は「3」と設定されている(優先度は、1、2、3の順で高いものとする)。
【0252】
優先度ベース監視制御部46は、例えば、タイマ割り込みの周期(例えば、30秒)で監視制御部43が呼び出された際に、CPU負荷が「0.3」を超えた場合には、監視の優先度が「2」以上のソフトウェアを監視するように制御し(すなわち、監視の優先度が「3」であるソフトウェアについては監視としない)、CPU負荷が「0.4」を超えた場合には、監視の優先度が「1」以上のソフトウェアを監視するように制御し(すなわち、監視の優先度が「2」及び「3」であるソフトウェアについては監視としない)、CPU負荷が「0.5」を超えた場合には、いずれのソフトウェアについても監視しないというスケジューリングを行うことができる。
【0253】
かかる場合、優先度ベース監視制御部46は、配列p[1]、p[2]、p[3]に、それぞれ、監視対象ソフトウェアの識別子「2」、「1」、「3」を割り当てる。
【0254】
そして、優先度ベース監視制御部46は、かかる配列pを利用して、タイマ割り込みで呼び出された際、監視対象ソフトウェアを抽出できる。
【0255】
例えば、CPU負荷が「0.35」である場合、配列p[1]、p[2]を参照して、識別子が「2」及び「1」であるソフトウェアについて監視するように制御することができる。
【0256】
ステップS1006において、監視制御部43は、適切な周期で監視部37を呼び出すために、例えば、30秒のタイマ割り込みを設定する。
【0257】
図19に示すように、ステップS1101において、タイマ割り込みを契機に、監視制御部43が、起動されて、優先度に基づくスケジューリング管理を行っているか否かについて調べる。
【0258】
ステップS1102において、優先度に基づくスケジューリング管理が行われていると判定された場合、ステップS1103において、監視制御部43は、優先度ベース監視制御部46を呼び出す。
【0259】
ステップS1104において、優先度ベース監視制御部46は、現在のCPU負荷に基づいて、監視対象ソフトウェアが有するべき監視の優先度を決定した後、かかる優先度以上の優先度を有する監視対象ソフトウェアを、配列pを利用して抽出して、完全性監視部42を呼び出す。
【0260】
ステップS1105において、完全性監視部42は、監視対象ソフトウェアが保持されるアドレス及びサイズの指定に従って、監視対象ソフトウェア(メモリ或いはファイル)のハッシュ値を計算し、監視設定情報に含まれる監視対象ソフトウェアのハッシュ値と比較する。
【0261】
ステップS1106において、完全性監視部42は、両者が一致しない場合に、異常であると判定して、異常時対処部38を呼び出す。
【0262】
ステップS1106において、完全性監視部42は、両者が一致する場合には、次のタイマ割り込みを待つ。
【0263】
また、図17乃至図19の例では、完全性監視部42の動作について説明したが、パラメータ監視部41も同様のスケジューリングを行ってもよい。
【0264】
第8に、図20及び図22を参照して、OS監視装置30が、イベント情報に基づいて、監視対象ソフトウェアの完全性について監視する動作について説明する。本実施形態では、図21に示すように、監視スケジューリング情報として、イベント種別(イベント情報)が指定されているものとする。
【0265】
図20に示すように、ステップS1200において、監視部37が、監視設定情報を利用して、完全性監視部42の初期化を行う。
【0266】
ステップS1201において、完全性監視部42は、かかる初期化において、図21に示すように、監視設定情報として、監視対象ソフトウェアの識別子と、監視対象ソフトウェアのハッシュ値と、監視対象ソフトウェアが保持されるアドレスと、監視対象ソフトウェアのサイズと、監視スケジューリング情報としてのイベント情報を取得する。
【0267】
ステップS1202において、監視制御部43は、監視スケジューリング情報としてイベント情報を含む監視設定情報を取得したか否かについて調べる。
【0268】
ステップS1203において、イベント情報を含む監視設定情報が取得されたと判定された場合、監視制御部43は、ステップS1204において、イベントベース監視制御部45を呼び出す。
【0269】
ステップS1205において、イベントベース監視制御部45は、監視スケジューリング情報としてのイベント情報をスキャンし、処理するべきイベント情報を決定する。
【0270】
図21に示すように、監視対象ソフトウェア1に対するイベント情報としては「電話発信」が指定されており、監視対象ソフトウェア2に対するイベント情報としては「外部ストレージへのデータの書き込み」が指定されており、監視対象ソフトウェア3に対するイベント情報としては「電子商取引のトランザクションの実行」が指定されており、監視対象ソフトウェア4に対するイベント情報としては「折りたたみ型電話機の開閉」が指定されており、監視対象ソフトウェア5に対するイベント情報としては「特定キーの押下」が指定されており、監視対象ソフトウェア6に対するイベント情報としては「OSのサスペンド」が指定されており、イベントベース監視制御部は、これらのイベント情報に対してのみを処理を行うことを決定する。
【0271】
すなわち、イベント入力部44によってイベントベース監視制御部45が呼び出される際に指定されるイベント情報が、これらのイベント情報以外であった場合は、イベントベース監視制御部45は、上述の監視を行わない。
【0272】
かかるイベント情報の決定は、図12乃至図14を参照にして説明したスケジューリング管理又は図17乃至図19を参照にして説明したスケジューリング管理の後に実行してもよいし、先に実行してもよい。
【0273】
ステップS1206において、監視制御部43は、イベント情報に基づいて監視部37を呼び出して監視を行うために、イベントの入力の待ち受けを行う。
【0274】
図22に示すように、イベント入力部44は、ステップS1300において、監視対象のOSやペリフェラル等の外部からイベント情報を受け付けると、ステップS1301において、イベントベース監視制御部45を呼び出す。
【0275】
ステップS1302において、イベントベース監視制御部45は、入力されたイベント情報と、監視スケジューリング情報で指定されているイベント情報とが一致するソフトウェアを抽出して、完全性監視部42を呼び出す。
【0276】
ステップS1303において、完全性監視部42は、指定された優先度以上の優先度を持つ監視対象ソフトウェアが保持されるアドレス及びサイズの指定に従って、監視対象ソフトウェア(メモリ或いはファイル)のハッシュ値を計算し、監視設定情報に含まれるハッシュ値と比較する。
【0277】
ステップS1304において、完全性監視部42は、両者が一致しない場合には、異常であると判定して、異常時対処部38を呼び出す。
【0278】
一方、ステップS1304において、完全性監視部42は、両者が一致する場合には、次のイベント情報の入力を待つ。
【0279】
なお、本実施形態では、イベント入力部44は、OSやペリフェラルからのイベント情報の入力を待つように説明をしたが、イベント入力部44が、OSやペリフェラルの状態を見て、自律的にイベント情報を検知してもよい。
【0280】
例えば、イベント入力部44が、随時、折りたたみ型電話機の開閉状態の変化を問合せることで、イベント情報を取得することが考えられる。
【0281】
また、図20乃至図22の例では、完全性監視部42の動作について説明したが、パラメータ監視部41も同様のスケジューリングを行ってもよい。
【0282】
第9に、図23を参照して、OS監視装置30が、監視フラグを設定する動作について説明する。本実施形態では、遠隔のデバイス管理サーバが無線ネットワークを通じて監視フラグの設定要求を発行するものとする。
【0283】
図23に示すように、ステップS1401において、監視フラグ管理部40は、デバイス管理サーバによって発行された監視フラグの設定要求を受け取る。
【0284】
ステップS1402において、監視フラグ管理部40は、受信した監視フラグの設定要求が、現在の監視フラグの設定と同じ内容を示しているか否かについて調べる。
【0285】
ステップS1403において、同じ内容を示している場合、特に対処する必要はないため、本動作は終了する。
【0286】
一方、ステップS1403において、同じ内容を示していない場合、設定要求が「オン」を示しているのか、「オフ」を示しているのかによって、以下の2通りの処理が行われる。
【0287】
ステップS1404において、現在の監視フラグの設定が「オフ」であり、かつ、受信した設定要求が「オン」を示している場合、ステップS1405において、監視フラグ管理部40は、監視フラグを「オン」に設定して、セキュアストレージに保持した後、図9に示すステップS305の動作から続行して、OS監視装置30を起動する。
【0288】
一方、ステップS1404において、現在の監視フラグの設定が「オン」であり、かつ、受信した設定要求が「オフ」を示している場合、監視フラグ管理部40は、ステップS1406において、監視フラグの状態を「オフ」に設定して、セキュアストレージに保持した後、ステップS1407において、監視部37を呼び出して、監視の停止を要求する。
【0289】
なお、ここでは、直接、監視フラグ管理部40が、直接、設定要求を受け取る場合を例に説明したが、デバイスの他のモジュールが、一旦、遠隔のデバイス管理サーバからの設定要求を受け取り、監視フラグ管理部40を呼び出して、かかる設定要求を渡してもよい。
【0290】
また、監視フラグ管理部40は、遠隔のデバイス管理サーバから監視フラグの設定要求があることの通知のみを受け取り、その通知の受信を契機に、デバイス管理サーバにアクセスして設定要求を受信してもよい。
【0291】
(本発明の第1の実施形態に係るOS監視設定情報生成装置及びOS監視装置の作用・効果)
本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、監視設定情報ファイルに対して、監視設定情報と監視対象ソフトウェアとの対応関係を示すバインド情報を付加することで、ソフトウェア更新パッケージ又は監視対象ソフトウェアと監視設定情報との間の不整合を防止することができる。
【0292】
また、本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、監視設定情報ファイルのバージョン情報を付加することで、古い監視設定情報ファイルへの置き換えを防止することができる。
【0293】
また、本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、デジタル署名を付与することにより、監視設定情報の改竄を防ぎ、OS監視装置による安全な監視を行うことができる。
【0294】
さらに、本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、最新の監視設定情報ファイルのバージョンをチェックすることで、古い監視設定情報ファイルへの置き換え攻撃を防止することができる。
【0295】
本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、OS監視設定情報生成装置10が、上述の監視設定情報を、OS監視装置30に提供するため、かかるOS監視装置30は、かかる監視設定情報を用いて、監視対象ソフトウェアの完全性を検証して異常時に対処を実行することで、デバイスの正常動作を維持することができる。
【0296】
本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、OS監視設定情報生成装置10が、上述の監視設定情報を、OS監視装置30に提供するため、OS監視装置30は、かかる監視設定情報を用いて、監視対象パラメータが正常値を取っているか或いは改竄されていないかについて検査することで、デバイスの正常動作を維持することができる。
【0297】
本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、OS監視装置30は、上述の監視スケジューリング情報を用いて、上述の監視を適切にスケジューリングすることで、効率的かつ十分に安全な監視を実行することができる。
【0298】
本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、OS監視装置30は、上述の監視スケジューリング情報を用いて、特定のイベントが起きたときのみ、或いは、OS監視装置30の起動時のみ、当該監視対象ソフトウェアを監視することにより、上述の監視によるオーバヘッドを削減し、効率的な監視を実行することができる。
【0299】
本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、OS監視装置30は、重要な監視対象ソフトウェア或いは攻撃されやすい監視対象ソフトウェアに高い優先度を与えることで、このようなソフトウェアを高頻度で監視して、安全性を保証しつつ、優先度の低いソフトウェアの監視頻度を削減して、効率化を図ることができる。
【0300】
本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、OS監視装置30は、監視設定情報の更新可否を判定する事前テスト(更新テスト)を行った後に、監視対象ソフトウェア及び監視設定情報ファイルの更新を行うことにより、監視対象ソフトウェア及び監視設定情報の更新時の障害による不整合防止に対処することができる。
【0301】
本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、監視設定情報の更新可否を判定する事前テスト(更新テスト)の際には、ソフトウェア更新パッケージ又は監視対象ソフトウェアとのバインド情報を検査することで、監視設定情報とソフトウェアとの間の不整合が起きることを防止することができる。
【0302】
また、本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、監視設定情報のみの更新の際も、デバイス側に保存されたソフトウェア更新パッケージとの整合を検査して、監視設定情報とソフトウェアとの間の不整合が起きることを防止することができる。
【0303】
本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、悪意のソフトウェアによる監視対象ソフトウェアの改竄や消去を検知して対処することで、正常動作を維持することができる。
【0304】
本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、監視部37における監視機能に不具合があった場合に、遠隔から当該監視機能をオフにし、当該監視機能を修正した後、オンにする等の対応が可能となる。
【0305】
また、本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、監視設定情報の更新に失敗した場合にも、当該監視機能をオフにて起動して、デバイスの利用可能性を確保することができる。
【0306】
本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、OS監視装置30自身を攻撃から守り、安全な監視を行うことができる。
【0307】
また、本実施形態によれば、不正な監視設定情報による更新の防止だけでなく、監視設定情報の更新時の障害や、古い監視設定情報への置き換えや、更新後のソフトウェアパッケージと整合しない監視設定情報の更新を防止し、安全にOS及びOS用のソフトウェア(ミドルウェアやアプリケーションやドライバを含む)を監視して正常動作を維持することができる。
【0308】
また、本実施形態によれば、動作時に配置アドレスが決まるソフトウェアについても、安全にOSと通信して監視できる。
【0309】
また、本実施形態によれば、監視の優先度やイベント種別を考慮した監視処理の細粒度の効率化や、デバイスのスリープ状態を考慮した監視処理の削減により、オーバヘッドを低減できる。
【0310】
(本発明の第2の実施形態)
本発明の第2の実施形態では、OS監視設定情報生成装置10の構成や動作は第1の実施形態の場合と同一であり、OS監視装置30の構成も第1の実施形態の場合と同一であるが、デバイス内におけるOS監視装置30の配置が異なり、その動作が一部異なる。
【0311】
以下、デバイス内におけるOS監視装置30の配置及び動作の違いに焦点を当てて説明する。
【0312】
図24に、本発明の第2の実施形態に係るOS監視装置30を含むデバイス1の構成を示す。
【0313】
第2の実施形態では、OS監視装置30は、監視対象のOSから隔離された領域(ドメイン)で実行されるソフトウェアであって、上述の特許文献3に開示される「サスペンド・レジュームに基づくOS切替技術を備えるOS切替装置」を使って監視対象のOSと排他的に動作するものとする。
【0314】
第1の実施形態では、OS監視装置30は、OSと並行して動作して、上述の監視を実行することができるものと仮定したのに対して、第2の実施形態では、OS監視装置30は、OSがサスペンド或いはスリープ状態で動作を停止している際に、動作して、上述の監視を実行するものとする。
【0315】
また、本実施形態に係るOS監視装置30は、デバイスの起動時に、OSの起動前に、或いは、OSの起動後に、起動されるものとする。
【0316】
以下、本実施形態に係るOS監視装置30の動作のうち、第1の実施形態の場合と異なる動作について説明する。
【0317】
第1に、図25及び図26を参照して、本実施形態に係るOS監視装置30が、周期的に監視対象ソフトウェアの完全性を監視する動作について説明する。
【0318】
図25に示すように、ステップS1500乃至S1502の動作は、上述の図12のステップS600乃至S602の動作と同一である。
【0319】
ステップS1503において、監視制御部43は、OS監視装置30の起動処理を終了し、OS監視装置30をサスペンドしてOSに制御を戻す。
【0320】
監視制御部43は、適切なタイミングで監視部37を呼び出すために、監視スケジューリング情報で指定された監視の周期以下の間隔で、タイマ割り込みされる必要があるが、本実施形態では、OSとOS監視装置30が排他的に動作する環境であるため、OSが、自主的にサスペンドして制御をOS監視装置30に渡す必要がある。
【0321】
そのため、OSは、例えば、30秒ごとの周期でサスペンドして、OS監視装置30に制御を渡し、監視制御部43が起動されるように構成されるものと仮定する。
【0322】
なお、サスペンドする周期については、監視制御部43が、監視対象のOSに対して指定してもよい。
【0323】
例えば、図13に示す監視スケジューリング情報で指定された監視の周期は、30秒より大きく、サスペンドする周期は、1分で十分であるため、監視制御部43は、OSに対して、サスペンドする周期として1分を指定して、処理量の低減による応答性の向上や電力消費の削減を図ることができる。
【0324】
図26に示すように、ステップS1600乃至S1604の動作は、上述の図14のステップS700乃至S704の動作と同一である。
【0325】
ステップS1604において、両者が一致する場合には、監視制御部43は、OS監視装置30をサスペンドして制御をOSに渡し、次のOSからのタイマ割り込みを待つ。
【0326】
なお、「本実施形態に係るOS監視装置30が、監視の優先度に基づいて監視対象ソフトウェアの完全性を監視する動作」について、第1の実施形態の場合と本実施形態の場合の相違点は、「上述した本実施形態に係るOS監視装置30が、周期的に監視対象ソフトウェアの完全性を監視する動作」の場合と同様であるため、説明を省略する。
【0327】
第2に、図27及び図28を参照して、本実施形態に係るOS監視装置30が、イベント情報に基づいて、監視対象ソフトウェアの完全性について監視する動作について説明する。本実施形態では、図21に示すように、監視スケジューリング情報として、イベント種別(イベント情報)が指定されているものとする。
【0328】
図27に示すように、ステップS1700乃至S1705の動作は、上述の図20におけるステップS1200乃至S1205の動作と同一である。
【0329】
ステップS1706において、監視制御部43は、OS監視装置30の起動処理を終了し、OS監視装置30をサスペンドしてOSに制御を戻す。
【0330】
ステップS1707において、監視制御部43は、イベント情報に基づいて監視部37を呼び出して監視を行うために、イベント情報の入力の待ち受けを行う。
【0331】
図28に示すように、ステップS1800乃至S1804の動作は、上述の図22におけるステップS1300乃至S1304の動作と同一である。
【0332】
ステップ1804において、両者が一致する場合には、監視制御部43は、OS監視装置30をサスペンドして制御をOSに渡し、次のOSからのイベント情報の入力を待つ。
【0333】
本実施形態によれば、OSとOS監視装置30が並行して動作しないため、OSは、OS監視装置30に対するイベント情報の通知及び上述の切り替え指示以外のオーバヘッド無しに動作することができ、応答性の向上や電力消費の削減を図ることができる。
【0334】
(本発明の第3の実施形態)
本発明の第3の実施形態では、OS監視設定情報生成装置10の構成や動作は第1の実施形態の場合と同一であり、OS監視装置30の構成も第1の実施形態の場合と同一であるが、デバイス内におけるOS監視装置30の配置が異なり、その動作が一部異なる。
【0335】
以下、デバイス内におけるOS監視装置30の配置及び動作の違いに焦点を当てて説明する。
【0336】
図29に、本発明の第3の実施形態に係るOS監視装置30を含むデバイス1の構成を示す。
【0337】
本発明の第3の実施形態では、OS監視装置30は、監視対象のOSとは隔離されずに、OS内にソフトウェアとして実装され、OS上のプロセス又はスレッドとして並行的に実行されるように構成されている。
【0338】
以下、本実施形態に係るOS監視装置30の動作のうち、第1の実施形態の場合と異なる動作について説明する。
【0339】
具体的には、図30を参照して、本実施形態に係るOS監視装置が起動する動作について説明する。
【0340】
図30に示すように、ステップS1900において、デバイスが起動した際に、ステップS1901において、各種ローダ及びOSが、起動される。なお、OS監視装置30は、かかるOSによって起動される。
【0341】
ステップS1902において、OSは、OS監視装置30のプログラムをロードする前に、OS監視装置のプログラムに付与されたデジタル署名の検証を行う。
【0342】
かかるデジタル署名の検証に失敗した際には、OS監視装置30のプログラムが壊れているため、復旧処理を行う。
【0343】
本実施形態では、OSは、OS監視装置30の復旧部35を呼び出して復旧処理をさせているが、他の復旧処理を実行してもよい。
【0344】
また、本実施形態では、OSは、デジタル署名の検証を行っているが、OS監視装置30のプログラムのハッシュ値を計算し、当該OSによって保持されているOS監視装置の正当なハッシュ値と一致するかどうかによって、OS監視装置30のプログラムの正当性を確認してもよい。
【0345】
以降の動作は、上述の図9におけるステップS303乃至S308の動作と同一であるため、説明を省略する。
【図面の簡単な説明】
【0346】
【図1】本発明の第1の実施形態に係るOS監視設定情報生成装置及びOS監視装置の機能ブロック図である。
【図2】本発明の第1の実施形態において用いられる監視対象ソフトウェアの完全性を監視するための監視設定情報の具体例を示す図である。
【図3】本発明の第1の実施形態において用いられる監視対象パラメータの正常性を監視するための監視設定情報の具体例を示す図である。
【図4】本発明の第1の実施形態において用いられるデジタル署名付きの監視設定情報ファイルの構成を示す図である。
【図5】本発明の第1の実施形態において用いられる監視設定情報ファイルの具体例を示す図である。
【図6】本発明の第1の実施形態に係るOS監視装置を含むデバイスの構成図である。
【図7】本発明の第1の実施形態に係るOS監視設定情報生成装置におけるOS監視設定情報生成手順を示すフローチャートである。
【図8】本発明の第1の実施形態に係るOS監視装置におけるOS監視設定情報更新手順を示すフローチャートである。
【図9】本発明の第1の実施形態に係るOS監視装置における起動手順を示すフローチャートである。
【図10】本発明の第1の実施形態に係るOS監視装置における起動手順を示すフローチャートである。
【図11】本発明の第1の実施形態に係るOS監視装置におけるパラメータ監視手順を示すフローチャートである。
【図12】本発明の第1の実施形態に係るOS監視装置における完全性監視手順を示すフローチャートである。
【図13】本発明の第1の実施形態において用いられる監視スケジュール情報における監視の周期指定の具体例を示す図である。
【図14】本発明の第1の実施形態に係るOS監視装置における完全性監視手順を示すフローチャートである。
【図15】本発明の第1の実施形態に係るOS監視装置における動作時に配置アドレスが決まるソフトウェアの完全性監視手順を示すフローチャートである。
【図16】本発明の第1の実施形態に係るOS監視装置における動作時に配置アドレスが決まるソフトウェアの完全性監視手順を示すフローチャートである。
【図17】本発明の第1の実施形態に係るOS監視装置における優先度に基づく完全性監視手順を示すフローチャートである。
【図18】本発明の第1の実施形態において用いられる監視スケジュール情報における監視の優先度指定の具体例を示す図である。
【図19】本発明の第1の実施形態に係るOS監視装置における優先度に基づく完全性監視手順を示すフローチャートである。
【図20】本発明の第1の実施形態に係るOS監視装置におけるイベント情報に基づく完全性監視手順を示すフローチャートである。
【図21】本発明の第1の実施形態において用いられる監視スケジュール情報における監視の契機となるイベント情報指定の具体例を示す図である。
【図22】本発明の第1の実施形態に係るOS監視装置におけるイベント情報に基づく完全性監視手順を示すフローチャートである。
【図23】本発明の第1の実施形態に係るOS監視装置における監視フラグ設定手順を示すフローチャートである。
【図24】本発明の第2の実施形態に係るOS監視装置を含むデバイスの構成図である。
【図25】本発明の第2の実施形態に係るOS監視装置における完全性監視手順を示すフローチャートである。
【図26】本発明の第2の実施形態に係るOS監視装置における完全性監視手順を示すフローチャートである。
【図27】本発明の第2の実施形態に係るOS監視装置におけるイベント情報に基づく完全性監視手順を示すフローチャートである。
【図28】本発明の第2の実施形態に係るOS監視装置におけるイベント情報に基づく完全性監視手順を示すフローチャートである。
【図29】本発明の第3の実施形態に係るOS監視装置を含むデバイスの構成図である。
【図30】本発明の第3の実施形態に係るOS監視装置における起動手順を示すフローチャートである。
【符号の説明】
【0347】
1…デバイス
10…OS監視設定情報生成装置
11…監視設定情報入力部
12…監視設定情報管理部
13…監視設定情報出力部
14…デジタル署名部
30…OS監視装置
31…更新テスト部
32…監視設定情報更新部
33…監視設定情報ファイル入力部
34…署名検証部
35…復旧部
36…監視設定情報管理部
37…監視部
38…異常時対処部
39…自己監視部
40…監視フラグ管理部
41…パラメータ監視部
42…完全性監視部
43…監視制御部
44…イベント入力部
45…イベントベース監視制御部
46…優先度ベース監視制御部
【技術分野】
【0001】
本発明は、携帯電話やPDA(Personal Digital Assistant)やPC(Personal Computer)や情報家電等のデバイス内に配置するオペレーティングシステム監視装置(以下、OS監視装置)と、オペレーティングシステム(以下、OS)を監視するための監視設定情報を生成するオペレーティングシステム監視設定情報生成装置(以下、OS監視設定情報生成装置)に関する。
【背景技術】
【0002】
従来、携帯電話やPC等のデバイスにおいて、監視対象のOSから隔離された環境に配置されたOS監視装置によって、該監視対象のOSのメモリやファイルの完全性を監視して、異常時に対処する技術が知られている(特許文献1参照)。
【0003】
かかるOS監視装置は、メモリやファイルを監視するための監視設定情報(ソフトウェアのバイナリのハッシュ値やアドレスやサイズ等を含む)をポリシーとして保持する。
【0004】
このように、かかる技術によれば、かかるOS監視装置を、監視対象のOSから隔離された環境に配置することで、障害や攻撃から監視対象のOSを保護することができる。
【0005】
一方、パッチ適用や機能追加のために、監視対象ソフトウェアを更新する際、かかる監視対象ソフトウェアに対応する監視設定情報も整合をとって更新する必要がある。
【0006】
かかる必要性を考慮して、ソフトウェア更新パッケージの署名検証や、デバイス識別情報に基づいてソフトウェア更新パッケージと当該デバイスのソフトウェア構成との適合性を検査する技術が開発されている(特許文献2参照)。
【特許文献1】US 20050132122 A1
【特許文献2】US 6832373
【特許文献3】US 20010018717 A1
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、デバイス内のOSの完全性や健全性を安全かつ効率的に監視し、正常動作を維持するにあたり、更新時と動作時(いわゆる、ランタイム)の双方において、以下のような課題がある。
【0008】
(更新時の課題)
更新時の課題としては、不正な監視設定情報への更新、或いは、更新されたソフトウェアと整合しない監視設定情報への更新を防止することが挙げられる。前者の不正な監視設定情報への更新は、デジタル署名等によって検証できるが、後者を解決するには、以下のような課題がある。
【0009】
第1の課題は、監視設定情報の更新の失敗による不整合の防止である。
【0010】
すなわち、ソフトウェアの更新完了後に、当該ソフトウェアに対応する監視設定情報の更新に失敗すると、当該更新後のソフトウェアと当該更新に失敗した監視設定情報との間に不整合が起きるが、当該更新後のソフトウェアを元に戻すのは、ストレージ容量の制約により困難である。
【0011】
そして、デバイスが、このような不整合状態のまま動作すると、OS監視装置によって異常が検知され、リセットによって利用不可になったり、機能制限が課されたりする等、ユーザの利便性が低下するという問題点があった。
【0012】
第2の課題は、デバイス内のソフトウェア環境との不整合の防止である。
【0013】
すなわち、監視設定情報の生成時に、当該監視設定情報とソフトウェア更新パッケージとの不整合が紛れ込む場合、監視設定情報の更新は成功しても、当該監視設定情報とソフトウェアと間に不整合が起きてしまい、OS監視装置による監視が失敗するという問題点があった。
【0014】
また、監視設定情報のみを独立して更新する場合、デバイス内のソフトウェア環境と適合しているかの確認が必要である。そして、デバイス内のソフトウェア環境に適合していないにも関わらず監視設定情報を更新した場合、当該監視設定情報とソフトウェアと間に不整合が起きてしまうという問題点があった。
【0015】
第3の課題は、古い監視設定情報への置き換え防止である。
【0016】
すなわち、既に新しい監視設定情報が存在するにも関わらず、当該監視設定情報を古い監視設定情報に置き換えるような攻撃がされた場合、署名検証では、かかる攻撃を検知できず、古いセキュリティポリシーで動作する脅威が存在するという問題点があった。
【0017】
(動作時の課題)
動作時の課題としては、監視設定情報の更新と効率化の観点から、以下のような課題がある。
【0018】
第1の課題は、動作時に配置アドレスが決まるソフトウェアの対応である。
【0019】
すなわち、利用時に動的にロードされるデバイスドライバ等について、OS監視装置は、当該デバイストライバ等の配置アドレスをOSから動作時に通知してもらう必要があるが、危殆化されたOSは、偽装する(嘘をつく)可能性があるという問題点があった。
【0020】
第2の課題は、オーバヘッドの削減である。
【0021】
すなわち、上述の監視に係るオーバヘッドを削減するに際して、上述の監視による応答性低下やバッテリ消費増への対策と、安全性維持とのトレードオフの関係を考慮する必要がある。
【0022】
そこで、本発明は、上述の課題に鑑みてなされたものであり、更新時と動作時の双方において、デバイス内のOSの完全性や健全性を安全かつ効率的に監視して正常動作を維持することができるOS監視設定情報生成装置及びOS監視装置を提供することを目的とする。
【課題を解決するための手段】
【0023】
本発明の第1の特徴は、オペレーティングシステム監視設定情報生成装置であって、オペレーティングシステム監視装置による監視で用いられる監視設定情報を保持する監視設定情報管理部と、前記監視設定情報管理部により保持されている前記監視設定情報と、バージョン情報と、監視対象ソフトウェアとの対応関係を示すバインド情報とを含む監視設定情報ファイルを生成して出力する監視設定情報出力部と、前記監視設定情報ファイルのデジタル署名を生成して付与するデジタル署名部とを備えることを要旨とする。
【0024】
かかる発明によれば、監視設定情報ファイルに対して、監視対象ソフトウェアとの対応関係を示すバインド情報を付加することで、ソフトウェア更新パッケージ又は監視対象ソフトウェアと監視設定情報との間の不整合を防止することができる。
【0025】
また、かかる発明によれば、監視設定情報ファイルのバージョン情報を付加することで、古い監視設定情報ファイルへの置き換えを防止することができる。
【0026】
また、かかる発明によれば、デジタル署名を付与することにより、監視設定情報の改竄を防ぎ、OS監視装置による安全な監視を行うことができる。
【0027】
さらに、かかる発明によれば、最新の監視設定情報ファイルのバージョンをチェックすることで、古い監視設定情報ファイルへの置き換え攻撃を防止することができる。
【0028】
本発明の第1の特徴において、前記監視設定情報は、前記監視対象ソフトウェアのハッシュ値と、該監視対象ソフトウェアが保持されるアドレスと、該監視対象ソフトウェアのサイズとを含んでいてもよい。
【0029】
かかる発明によれば、OS監視設定情報生成装置は、上述の監視設定情報を、OS監視装置に提供するため、かかるOS監視装置は、かかる監視設定情報を用いて、ソフトウェアの完全性を検証して異常時に対処を実行することで、デバイスの正常動作を維持することができる。
【0030】
本発明の第1の特徴において、前記監視設定情報は、前記監視対象記憶領域のアドレスと、該監視対象記憶領域のサイズと、該監視対象記憶領域に保持される値が取り得る範囲とを含んでいてもよい。
【0031】
かかる発明によれば、OS監視設定情報生成装置は、上述の監視設定情報を、OS監視装置に提供するため、OS監視装置は、かかる監視設定情報を用いて、監視対象パラメータ(監視対象記憶領域におけるパラメータ)が正常の値を取っているか或いは改竄されていないかについて検査することで、デバイスの正常動作を維持することができる。
【0032】
本発明の第1の特徴において、前記監視設定情報は、前記監視のタイミング、該監視の頻度、該監視の周期の少なくとも1つを指定する監視スケジューリング情報を更に含んでいてもよい。
【0033】
かかる発明によれば、OS監視装置は、上述の監視スケジューリング情報を用いて、上述の監視を適切にスケジューリングすることで、効率的かつ十分に安全な監視を実行することができる。
【0034】
本発明の第1の特徴において、前記監視スケジューリング情報は、前記監視のタイミングとして、該監視対象ソフトウェアの監視を実行する契機となるイベント種別或いは前記オペレーティングシステム監視装置の起動時の少なくとも1つを指定していてもよい。
【0035】
かかる発明によれば、OS監視装置は、上述の監視スケジューリング情報を用いて、特定のイベントが起きたときのみ、或いは、OS監視装置の起動時のみ、当該監視対象ソフトウェアを監視することにより、上述の監視によるオーバヘッドを削減し、効率的な監視を実行することができる。
【0036】
本発明の第1の特徴において、前記監視スケジューリング情報は、前記監視の頻度として、該監視対象ソフトウェアの監視に関する優先度を指定していてもよい。
【0037】
かかる発明によれば、OS監視装置は、重要な監視対象ソフトウェア或いは攻撃されやすい監視対象ソフトウェアに高い優先度を与えることで、このようなソフトウェアを高頻度で監視して、安全性を保証しつつ、優先度の低いソフトウェアの監視頻度を削減して、効率化を図ることができる。
【0038】
本発明の第2の特徴は、オペレーティングシステム上の監視対象ソフトウェアの監視を行うオペレーティングシステム監視装置であって、オペレーティングシステム監視設定情報生成装置から入力された監視設定情報ファイルに含まれている監視設定情報を利用して、前記監視を行う監視部と、前記監視対象ソフトウェアが更新される前に、前記監視設定情報ファイルの更新の可否について判定する更新テスト部と、前記監視設定情報ファイルが更新可能であると判定された場合に、前記監視設定情報ファイルを更新する監視設定情報更新部と、所定回数以上、前記監視設定情報ファイルの更新に失敗した場合に、該監視設定情報ファイルに対する復旧処理を行う復旧部とを備えることを要旨とする。
【0039】
かかる発明によれば、OS監視装置は、監視設定情報の更新可否を判定する事前テストを行った後に、監視対象ソフトウェア及び監視設定情報ファイルの更新を行うことにより、監視対象ソフトウェア及び監視設定情報の更新時の障害による不整合防止に対処することができる。
【0040】
本発明の第2の特徴において、前記更新テスト部は、前記監視設定情報ファイルと前記監視対象ソフトウェアとの対応関係を示すバインド情報を検査してもよい。
【0041】
かかる発明によれば、監視設定情報の更新可否を判定する事前テストの際には、ソフトウェア更新パッケージ又は監視対象ソフトウェアとのバインド情報を検査することで、監視設定情報とソフトウェアとの間の不整合が起きることを防止することができる。
【0042】
また、かかる発明によれば、監視設定情報のみの更新の際も、デバイス側に保存されている監視対象ソフトウェアとの整合を検査して、監視設定情報とソフトウェアとの間の不整合が起きることを防止することができる。
【0043】
本発明の第2の特徴において、前記監視設定情報に基づいて前記監視対象ソフトウェアのハッシュ値を算出し、算出した該監視対象ソフトウェアのハッシュ値と該監視設定情報に含まれる前記監視対象ソフトウェアのハッシュ値とを比較し、両者が一致しない場合に、該監視対象ソフトウェアに関する異常が発生したと判定する完全性監視部を備えていてもよい。
【0044】
かかる発明によれば、悪意のソフトウェアによる監視対象ソフトウェアの改竄や消去を検知して対処することで、正常動作を維持することができる。
【0045】
本発明の第2の特徴において、監視設定情報に含まれる監視スケジューリング情報に従って、前記監視を制御する監視制御部を備えていてもよい。
【0046】
かかる発明によれば、上述の監視を適切にスケジューリングすることで、効率的かつ安全な監視を実行することができる。
【0047】
本発明の第2の特徴において、入力されたイベント情報と、前記監視スケジューリング情報において前記監視のタイミングとして指定されているイベント種別とが一致した場合に、該監視を実行するように該監視を制御するイベントベース監視制御部を備えていてもよい。
【0048】
かかる発明によれば、特定のイベントが起きたときのみ、監視対象ソフトウェアを監視することにより、上述の監視によるオーバヘッドを削減して、効率的な監視を実行することができる。
【0049】
本発明の第2の特徴において、前記監視スケジューリング情報において指定されている優先度に従って、前記監視の順序や周期を調整する優先度ベース監視制御部を備えていてもよい。
【0050】
かかる発明によれば、重要な監視対象ソフトウェア或いは攻撃されやすい監視対象ソフトウェアに高い優先度を与えることで、OS監視装置は、このようなソフトウェアを高頻度で監視して、安全性を保証しつつ、優先度の低いソフトウェアの監視頻度を削減して、効率化を図ることができる。
【0051】
本発明の第2の特徴において、前記監視部は、前記監視の要否を示す監視フラグに応じて、該監視を行うか否かについて決定してもよい。
【0052】
かかる発明によれば、監視部における監視機能に不具合があった場合に、遠隔から当該監視機能をオフにし、当該監視機能を修正した後、オンにする等の対応が可能となる。
【0053】
また、かかる発明によれば、監視設定情報の更新に失敗した場合にも、当該監視機能をオフにて起動して、デバイスの利用可能性を確保することができる。
【0054】
本発明の第2の特徴において、オペレーティングシステム監視装置自身のプログラム及びパラメータの改竄を検知する自己監視部を備えていてもよい。
【0055】
かかる発明によれば、OS監視装置自身を攻撃から守り、安全な監視を行うことができる。
【0056】
本発明の第2の特徴において、前記監視設定情報は、前記監視対象記憶領域のアドレスと、該監視対象記憶領域のサイズと、該監視対象記憶領域に保持される値が取り得る範囲を含み、前記監視設定情報に基づいて、前記監視対象記憶領域におけるパラメータの正常性を判定するパラメータ監視部を備えていてもよい。
【0057】
かかる発明によれば、監視対象パラメータ(監視対象記憶領域におけるパラメータ)が正常の値を取っているか或いは改竄されていないかについて検査して、デバイスの正常動作を維持することができる。
【発明の効果】
【0058】
以上説明したように、本発明によれば、更新時と動作時の双方において、デバイス内のOSの完全性や健全性を安全かつ効率的に監視して正常動作を維持することができるOS監視設定情報生成装置及びOS監視装置を提供することができる。
【発明を実施するための最良の形態】
【0059】
(本発明の第1の実施形態に係るOS監視設定情報生成装置及びOS監視装置の構成)
図1乃至図6を参照して、本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30の構成について説明する。
【0060】
図1に示すように、本実施形態に係るOS監視設定情報生成装置10は、監視設定情報入力部11と、監視設定情報管理部12と、監視設定情報出力部13と、デジタル署名部14とを具備する。
【0061】
本実施形態では、OS監視設定情報生成装置10を、ソフトウェアにて実装することを想定しているが、その一部或いは全体をハードウェアにて実装してもよい。
【0062】
OS監視設定情報生成装置10としては、デバイスのソフトウェア更新パッケージを生成するツールと共に利用されるツールを想定している。なお、OS監視設定情報生成装置10自身が、ソフトウェア更新パッケージを生成する機能を備えてもよい。
【0063】
監視設定情報入力部11は、外部からの入力や計算によって、監視対象ソフトウェアに対応する監視設定情報を取得するように構成されている。
【0064】
図2及び図3に、かかる監視設定情報の具体例を示す。
【0065】
図2は、監視対象ソフトウェアの完全性を監視するための監視設定情報である。図2に示すように、かかる監視設定情報は、監視対象ソフトウェアの識別子と、当該監視対象ソフトウェアのハッシュ値と、当該監視対象ソフトウェアが保持されるアドレスと、当該監視対象ソフトウェアのサイズと、監視スケジューリング情報を含む。
【0066】
ここで、監視対象ソフトウェアの識別子は、当該監視対象ソフトウェアの識別番号でもよいし、当該監視対象ソフトウェアを構成するファイルを識別するための文字列(例えば、ファイル名)でもよい。
【0067】
また、監視対象ソフトウェアが保持されるアドレスとは、フラッシュROM(フラッシュメモリ)上で直接実行される場合は、かかるフラッシュROM上に格納されている監視対象ソフトウェアのバイナリのアドレスを示す。
【0068】
なお、かかるアドレスは、監視対象ソフトウェアを監視するために用いられるアドレスであるため、監視対象ソフトウェア(プログラム)の先頭アドレス(実行のための開始アドレス)であってもよいし、プログラムの途中のアドレスであってもよい。
【0069】
また、監視対象ソフトウェアのハッシュ値は、図2の例では、アドレス「0xa000」からサイズ「4KB」の範囲の監視対象ソフトウェア(プログラム)に対して、SHA1アルゴリズムを用いて160ビットの値として計算されるものである。
【0070】
また、監視スケジューリング情報は、上述の監視のタイミング、当該監視の頻度、当該監視の周期の少なくとも1つを指定するものである。
【0071】
例えば、監視スケジューリング情報は、当該監視のタイミングの指定として、当該監視対象ソフトウェアの監視を実行する契機となるイベント種別や、OS監視装置30の起動時等の指定を含んでもよい。
【0072】
また、監視スケジューリング情報は、当該監視の頻度の指定として、当該監視対象ソフトウェアの監視に関する優先度の指定を含んでもよい。
【0073】
なお、図2の例では、上述のイベント種別として、「電話発信時」が指定されている。
【0074】
また、図3は、監視対象パラメータの正常性を監視するための監視設定情報である。図3に示すように、かかる監視設定情報は、監視対象記憶領域のアドレスと、当該監視対象記憶領域のサイズと、当該監視対象記憶領域に保持される値が取り得る範囲(正常値の範囲)を含む。
【0075】
本実施形態において、かかる監視対象記憶領域としては、RAMやフラッシュROM等を想定する。
【0076】
図3の例では、「0xa000」を始点とした4バイトのメモリ領域におけるパラメータは、「1〜100」の値が正常値であり、それ以外の値が設定されている場合、異常であると判定される。
【0077】
なお、正常値の範囲は、「10、20、30」等といった離散的な値で指定されていてもよいし、「0でない」や「10〜15の範囲でない」等といった異常値を指定してそれ以外が正常値の範囲であるという形で指定されていてもよい。
【0078】
監視設定情報入力部11は、所定の設定ファイルから当該監視設定情報を取得するように構成されていてもよいし、管理者やオペレータによるキーボードやマウス等を用いた入力を介して当該監視設定情報を取得するように構成されていてもよい。
【0079】
さらに、監視設定情報入力部11は、監視対象ソフトウェアのファイルやソフトウェア更新パッケージを入力して、自身で、監視対象ソフトウェアのハッシュ値やサイズを計算して、かかる計算結果を監視設定情報として取得するように構成されていてもよい。
【0080】
なお、監視対象ソフトウェアのハッシュ値は、SHA-1やSHA-256やMD5等の任意の一方向ハッシュ関数を用いて計算されてもよい。
【0081】
監視設定情報管理部12は、複数の監視対象ソフトウェアに対応する監視設定情報を保持するように構成されている。
【0082】
監視設定情報管理部12は、監視設定情報入力部11により取得された監視設定情報を、メモリやファイルシステムに、表形式やリスト形式等の任意の形式で保持するように構成されている。
【0083】
なお、監視設定情報管理部12は、監視設定情報入力部11により取得された監視設定情報に含まれている監視対象ソフトウェアの識別子と同一の監視対象ソフトウェアの識別子を含む監視設定情報を既に保持している場合、新たに取得した監視設定情報への更新(上書き)を行うように構成されている。
【0084】
また、監視設定情報管理部12は、監視設定情報入力部11を介して、所定の監視設定情報の削除要求を受け付けるように構成されていてもよい。
【0085】
さらに、監視設定情報管理部12は、監視設定情報の種別として、図2及び図3に示す監視設定情報を混在して管理するように構成されていてもよい。
【0086】
監視設定情報出力部13は、監視設定情報管理部12により保持されている1つ以上の監視設定情報と、バージョン情報と、監視対象ソフトウェアとの対応関係を示すバインド情報とを含む監視設定情報ファイルを生成して出力するように構成されている。
【0087】
ここで、バージョン情報は、監視設定情報ファイルのバージョンを示すものであり、管理者やオペレータによる入力に基づいて決定されるものであってもよいし、監視設定情報出力部13によって以前の監視設定情報ファイルの次を示す番号として決定されてもよい。
【0088】
例えば、バインド情報は、ソフトウェア更新パッケージのバージョン情報や、ソフトウェア更新パッケージの識別子や、監視対象ソフトウェアのバージョン情報である。
【0089】
また、監視対象ソフトウェアのバージョン情報は、所定のパッチや機能追加等のソフトウェア更新パッケージが適用された後の監視対象ソフトウェア全体としてのバージョン情報である。
【0090】
図4に、監視設定情報ファイルの構成を示し、図5に、かかる監視設定情報ファイルの具体例を示す。
【0091】
図5の例では、監視設定情報ファイルのバージョン情報として「Ver. 1.03」が指定されており、バインド情報として当該監視設定情報ファイルに対応するソフトウェア更新パッケージのバージョン情報「2.12」が指定されている。
【0092】
なお、監視設定情報ファイルは、バイナリ形式であってもよいし、アスキー形式であってもよい。また、監視設定情報ファイルは、容量削減のため、圧縮されていてもよい。
【0093】
デジタル署名部14は、監視設定情報ファイルのデジタル署名を生成して付与するように構成されている。
【0094】
ここで、デジタル署名は、監視設定情報ファイルと別ファイルであってもよいし、合体して1つのファイルとなっていてもよい。
【0095】
図4に、デジタル署名付きの監視設定情報ファイルの構成を示す。
【0096】
デジタル署名の方式は、RSA方式であってもよいし、ElGamel方式やDSA方式やRabin方式等の任意の方式であってもよい。
【0097】
ただし、デジタル署名の有効性を維持するため、デジタル署名を実行する際の秘密鍵は、OS監視設定情報生成装置10の管理者(例えば、デバイスメーカ)が厳重に管理し、決して外部に漏らすことがないようにしなければならない。
【0098】
図1に示すように、本実施形態に係るOS監視装置30は、OS上の監視対象ソフトウェアの監視を行うように構成されている。
【0099】
具体的には、OS監視装置30は、更新テスト部31と、監視設定情報更新部32と、監視設定情報ファイル入力部33と、署名検証部34と、復旧部35と、監視設定情報管理部36と、監視部37と、異常時対処部38と、自己監視部39と、監視フラグ管理部40と、パラメータ監視部41と、完全性監視部42と、監視制御部43と、イベント入力部44と、イベントベース監視制御部45と、優先度ベース監視制御部46とを具備している。
【0100】
本実施形態では、OS監視装置30の各部は、ハードウェア又はソフトウェアのいずれで実装されていてもよい。
【0101】
図6に、本実施形態に係るOS監視装置30を含むデバイスの構成図を示す。本実施形態では、OS監視装置30は、監視対象のOSから隔離された領域(ドメイン)で実行されるソフトウェアを想定する。
【0102】
ここで、同一のCPU上で、ドメインを隔離する手段として、図6(a)に示すように、Xen Virtual Machine Monitor(http://www.cl.cam.ac.uk/Research/SRG/netos/xen/)等の仮想マシンモニタ(Virtual Machine Monitor)に基づくドメイン分離技術を使ってもよいし、図6(b)に示すように、ARM社のTrustZoneのようなハードウェアレベルのドメイン分離技術を使ってもよい。
【0103】
また、図6(c)に示すように、OSを実行するCPUと別のCPU上で、OS監視装置30を実行することで、ドメインを隔離してもよい。
【0104】
OS監視装置30は、OSと並行して動作して、上述の監視を実行することができるものとする。
【0105】
更新テスト部31は、監視対象ソフトウェアが更新される前に、当該監視対象ソフトウェアに対応する監視設定情報ファイルの更新の可否について判定する更新テストを行うように構成されている。
【0106】
更新テストの例として、監視設定情報ファイルのデジタル署名の検証や、監視設定情報ファイルとソフトウェア更新パッケージ或いは監視対象ソフトウェアとのバインド情報の検査や、書き換え領域の空き容量の検査や、書き換え可否の検査等が挙げられる。
【0107】
かかる更新テストが失敗した場合、監視対象ソフトウェアと同期して監視設定情報ファイルを更新することができないため、当該監視対象ソフトウェアの更新手順は中止される。
【0108】
監視設定情報更新部32は、監視設定情報ファイルが更新可能であると判定された場合に、当該監視設定情報ファイルを更新するように構成されている。
【0109】
この際、監視設定情報更新部32は、監視設定情報ファイルのバージョン情報を記録しておくことによって、監視設定情報ファイル入力部33が、当該バージョン情報を検査することができるようにする。
【0110】
ここで、監視設定情報更新部32は、かかるバージョン情報を安全に保持するために、セキュアストレージ機能を利用してもよい。
【0111】
例えば、TPM(Trusted Platform Module)等のハードウェアベースのセキュリティチップの多くが、かかるセキュアストレージ機能を提供している。
【0112】
当該監視設定情報ファイルの更新が成功した場合は、監視設定情報更新部32は、かかる更新手順を完了する。
【0113】
一方、当該監視設定情報ファイルの更新が失敗した場合、監視設定情報更新部32は、当該監視設定情報ファイルの更新について再試行(リトライ)し、所定回数(リトライ回数の上限)を超えて失敗した場合、復旧部35を呼び出す。
【0114】
なお、上述の監視設定情報ファイルがダウンロードされるタイミングは、ソフトウェア更新パッケージのダウンロードと一緒であってもよいし、独立であってもよい。
【0115】
また、上述の監視設定情報ファイルをダウンロードする主体は、監視設定情報更新部32であってもよいし、デバイス内のソフトウェア更新モジュール等のモジュールであってもよい。
【0116】
ダウンロードされた後、監視設定情報ファイルは、フラッシュメモリやハードディスクやSDメモリカード等の外部ストレージ等といった任意のストレージ手段によってデバイス内に保存される。
【0117】
以下に、監視設定情報ファイルのダウンロードの具体例について示す。
【0118】
第1の例によれば、デバイスのソフトウェア更新モジュールが、無線ネットワークを通じて、監視設定情報ファイルやソフトウェア更新パッケージを保持するデバイス管理サーバから、ソフトウェア更新パッケージと一緒に、監視設定情報ファイルをデバイスにダウンロードしてフラッシュメモリに書き込む。
【0119】
その後、デバイスのソフトウェア更新モジュールが、ソフトウェアの更新を行う前に、OS監視装置30を呼び出し、更新テスト部31による監視設定情報の更新テストを実行させた後、当該ソフトウェアの更新を行う。
【0120】
第2の例によれば、デバイスのソフトウェア更新モジュールが、USB接続経由で、PCから、ソフトウェア更新パッケージをデバイスにダウンロードし、その後、監視設定情報ファイルをデバイスにダウンロードする。
【0121】
その後、デバイスのソフトウェア更新モジュールが、ソフトウェアの更新を行う前に、OS監視装置30を呼び出し、更新テスト部31による監視設定情報の更新テストを実行させた後、当該ソフトウェアの更新を行う。
【0122】
第3の例によれば、OS監視装置30の監視設定情報更新部32が、無線ネットワークを通じて、監視設定情報ファイルを保持するサーバから、監視設定情報ファイルをダウンロードして、監視設定情報ファイルのみを更新する。
【0123】
なお、監視設定情報更新部32は、定期的に当該サーバに監視設定情報ファイルの更新の有無を照会してもよいし、当該サーバからプッシュ通信により監視設定情報ファイルの更新を通知してもらってもよい。
【0124】
監視設定情報ファイル入力部33は、OS監視装置30の起動時に、監視設定情報ファイルの有無及びバージョン情報を検査し、上述のストレージ手段から、該当する監視設定情報ファイルを取得するように構成されている。
【0125】
ここで、監視設定情報ファイルは、OS監視設定情報生成装置10によって生成されたファイルであり、ネットワーク経由やケーブル経由で、デバイスにダウンロードされ、監視設定情報更新部32によってフラッシュメモリ等のストレージ手段に書き込みされているものとする。
【0126】
監視設定情報ファイル入力部33は、上述の検査によって、該当する監視設定情報ファイルが存在しないと判定した場合や、該当する監視設定情報ファイルのバージョン情報が想定のバージョン情報と異なる場合(古いバージョン情報等)、異常であると判定し、復旧部35を呼び出す。
【0127】
このとき、監視設定情報ファイル入力部33は、上述のバインド情報を検査して、かかる監視設定情報ファイルが現状の監視対象ソフトウェアと整合しているか否かについて判定してもよい。ここで、整合していないと判定した場合、監視設定情報ファイル入力部33は、復旧部35を呼び出す。
【0128】
署名検証部34は、監視設定情報ファイルに付与されたデジタル署名を検証するように構成されている。
【0129】
署名検証部34は、かかるデジタル署名の検証に失敗した場合、当該監視設定情報ファイルは不正なものであると判断して、復旧部35を呼び出す。
【0130】
ここで、デジタル署名は、予めセキュリティポリシーによって決められた信頼されたパーティによるものでなければならず、例えば、デバイスメーカや通信キャリア等によって署名がなされるものとする。
【0131】
また、署名を検証する際の公開鍵は、安全に保存されているのが望ましく、例えば、書き換え不能なマスクROMやセキュアストレージに保存することで安全性を向上できる。
【0132】
署名検証部34は、主に、OS監視装置30の起動時に実行されることを想定しているが、起動が完了した後の実行中に実行されてもよい。
【0133】
復旧部35は、監視設定情報ファイルに関する異常発生時に、当該監視設定情報ファイルに対する復旧処理を行うように構成されている。
【0134】
具体的には、復旧部35は、所定回数(リトライ回数の上限)以上、監視設定情報ファイルの更新に失敗した場合に、当該監視設定情報ファイルに対する復旧処理を行う。
【0135】
かかる復旧処理として、デバイスを再起動してソフトウェア更新モジュールや監視設定情報更新部32に対して、再度、監視設定情報ファイルをダウンロードさせて、当該監視設定情報ファイルの更新を試みることが考えられる。
【0136】
或いは、かかる復旧処理として、外部ストレージ等に退避された監視設定情報ファイルを利用することも考えられる。
【0137】
復旧部35は、これらの復旧処理を用いても、当該監視設定情報ファイルの復旧が不可能であると判断した場合、監視フラグ管理部40を呼び出して、監視フラグをオフにする。
【0138】
監視設定情報管理部36は、監視設定情報ファイルに含まれている監視設定情報を保持するように構成されている。
【0139】
監視設定情報管理部36は、OS監視装置30の起動手順時に、監視部37による監視処理が行われ易いように、メモリに当該監視情報を展開したり、当該監視情報を構成するファイルが圧縮されている場合には当該ファイルの伸張を行ったりする。
【0140】
監視部37は、上述の監視設定情報を利用して、監視対象ソフトウェアの監視を行い、異常の際には異常時対処部38を呼び出すように構成されている。
【0141】
監視部37は、OS監視装置30の起動時に、監視設定情報管理部36から監視設定情報を読み出し、必要に応じて初期化を行った後、上述の監視を開始する。
【0142】
なお、監視部37は、上述の監視の要否を示す監視フラグに応じて、当該監視を行うか否かについて決定する。すなわち、監視部37は、監視フラグ管理部40により管理されている監視フラグがオフの場合には、上述の監視を停止する。
【0143】
監視部37は、サブシステムとして、完全性監視部42及びパラメータ監視部41を備えている。
【0144】
本実施形態では、監視方法として、完全性監視部42による監視対象ソフトウェア(又は、監視対象データ)の完全性の監視や、パラメータ監視部41による監視対象パラメータの正常性の監視が実行されることを想定しているが、ペリフェラルの入出力の監視等といった別の監視方法が実行されてもよい。
【0145】
監視部37は、OS監視装置30の実行時に、監視制御部43から、所定ソフトウェアの監視要求を受け付け、当該所定ソフトウェアの監視方法を、監視設定情報等を利用して選択し、必要に応じて完全性監視部42等を呼び出して当該監視を行う。
【0146】
異常時対処部38は、監視部37により異常が検知された際に呼び出され、かかる異常への対処を行うように構成されている。
【0147】
具体的には、異常時対処部38は、当該異常が発生したことをユーザに通知するための画面表示や、実行中のトランザクションの中止や、再起動の実行や、退避していたソフトウェアやデータによる復旧や、指定のサーバへの異常の通知や、ユーザの権限の制限等などを行う。
【0148】
また、異常時対処部38は、異常種別(改竄や消去や不正アクセス)や監視対象ソフトウェアや監視対象パラメータに対応した対処法を保持し、異常種別等によって対処法を変えてもよい。
【0149】
自己監視部39は、OS監視装置30自身のプログラム及びパラメータの改竄を検知するように構成されている。
【0150】
自己監視部39を保護するために、OS監視装置30の各部とは隔離されたハードウェアによるセキュアな実行環境で自己監視部39を実行してもよい。
【0151】
自己監視部39は、周期的に、OS監視装置30を監視してもよいし、監視対象ソフトウェアの監視の実行前や、デバイスがアイドル状態である場合等といった所定のイベントや状態を契機に、OS監視装置30を監視してもよい。
【0152】
監視フラグ管理部40は、外部から監視の要否を設定する監視フラグの設定要求を受け取り保持するように構成されている。
【0153】
例えば、監視フラグ管理部40は、無線ネットワークを通じて遠隔のデバイス管理サーバから監視フラグの設定要求を受け取ったり、ケーブル接続されたデバイス管理ツールから監視フラグの設定要求を受け取ったりすることが考えられる。
【0154】
監視フラグ管理部40は、かかる監視フラグに関する情報を安全に保持するために、セキュアストレージ機能を利用してもよい。
パラメータ監視部41は、監視部37のサブシステムであり、上述の監視設定情報に基づいて、監視対象パラメータの正常性を検査して、異常発生の有無と判定するように構成されている。
【0155】
具体的には、パラメータ監視部41は、監視設定情報に含まれる監視対象記憶領域のアドレスと監視対象記憶領域のサイズと監視対象記憶領域に保持される値が取り得る範囲(正常値の範囲)とに従って、監視対象パラメータの正常性を検査し、監視対象パラメータが正常値の範囲内にない場合に、異常発生と判定して、異常時対処部を呼び出す。
【0156】
なお、監視対象パラメータは、監視対象ソフトウェアに関するパラメータであってもよいし、その他のパラメータであってもよい。
【0157】
完全性監視部42は、監視部37のサブシステムであり、監視設定情報(監視対象ソフトウェアが保持されるアドレス及び監視対象ソフトウェアのサイズ)に従って、監視対象ソフトウェア(メモリ或いはファイル)のハッシュ値を計算し、算出した当該監視対象ソフトウェアのハッシュ値と当該監視設定情報に含まれる監視対象ソフトウェアのハッシュ値とを比較し、両者が一致しない場合に、当該監視対象ソフトウェアに関する異常が発生したと判定し、異常時対処部38を呼び出すように構成されている。
【0158】
完全性監視部42は、周期的に、或いは、所定イベントの生起時に、呼び出されることが想定されている。なお、完全性監視部42は、電力消費削減のために、OSがサスペンドしている際には監視動作を停止し、OSがレジュームして動作を開始した際に監視を再開してもよい。
【0159】
監視制御部43は、上述の監視設定情報に含まれる監視スケジューリング情報に従って、監視対象ソフトウェア(又は、監視対象記憶領域や監視対象パラメータ等を含む)の監視を制御するように構成されている。
【0160】
具体的には、監視制御部43は、監視設定情報に含まれる監視スケジューリング情報によって指定される当該監視のタイミング、当該監視の頻度、当該監視の周期の少なくとも1つに従って、監視部37を呼び出して、上述の監視を実行させるように構成されている。
【0161】
例えば、監視制御部43は、1分周期で、監視部37(又は、完全性監視部42)を呼び出して、監視対象ソフトウェアの完全性の検証を実行させるように構成されてもよいし、所定時刻に、監視部37(又は、パラメータ監視部41)を呼び出して、監視対象パラメータの正常性の検証を実行させるように構成されていてもよいし、OS監視装置30の起動時に、監視部37を呼び出して、上述の検証を実行させるように構成されていてもよい。
【0162】
また、監視制御部43は、指定期間や指定回数だけ、上述の監視を実行したら、当該監視を停止するように、監視部37を制御してもよい。
【0163】
監視制御部43は、サブシステムとして、優先度ベース監視制御部46及びイベントベース監視制御部45を備え、監視設定情報に基づいて、必要に応じて、優先度ベース監視制御部46やイベントベース監視制御部45を呼び出す。
【0164】
イベント入力部44は、監視対象のOSやペリフェラル等の外部から、所定のイベントを示すイベント情報を受け付けるように構成されている。
【0165】
かかるイベントの例として、電話発信や、外部ストレージへのデータ書き込みや、電子商取引のトランザクションの実行や、折りたたみ型電話機の開閉や、特定キーの押下等が想定される。
【0166】
なお、OSが、上述のイベントが発生した場合に、OS監視装置30に対して当該イベントを示すイベント情報を通知する機能を備えており、ペリフェラルが、OS監視装置30に対して割り込みを発生する機能を備えることを想定している。
【0167】
イベントベース監視制御部45は、監視制御部43のサブシステムであり、入力されたイベント情報と、上述の監視スケジューリング情報において上述の監視のタイミングとして指定されているイベント種別とが一致した場合に、監視部37を呼び出して上述の監視を実行させるように構成されている。
【0168】
例えば、所定イベントして電話発信が発生した際に、イベントベース監視制御部45は、完全性監視部42を呼び出し、かかる電話発信を監視のタイミングとして指定する監視対象ソフトウェアの完全性の検証を実行する。
【0169】
優先度ベース監視制御部46は、監視制御部43のサブシステムであり、監視スケジューリング情報で指定されている優先度に従って、上述の監視対象ソフトウェアの監視の順序や周期を調整するように構成されている。
【0170】
(本発明の第1の実施形態に係るOS監視設定情報生成装置及びOS監視装置の動作)
図7を参照して、本発明の第1の実施形態に係るOS監視設定情報生成装置10の動作について説明し、図8乃至図23を参照して、本発明の第1の実施形態に係るOS監視装置30の動作について説明する。
【0171】
第1に、図7を参照して、本実施形態に係るOS監視設定情報生成装置10が監視設定情報を生成する動作について説明する。
【0172】
図7に示すように、OS監視設定情報生成装置10は、ステップS100において起動し、ステップS101において各種の初期化処理を行う。
【0173】
ステップS102において、監視設定情報入力部11が、特定のフォルダ内の複数の設定ファイルから監視設定情報を取得する。
【0174】
ここでは、1つの監視対象ソフトウェアに対応する監視設定情報が、1つの設定ファイルに保存されており、監視設定情報入力部11が、複数の設定ファイルを取得して、複数の監視対象ソフトウェアに対応する監視設定情報を取得することを想定している。
【0175】
なお、図7に示すフローチャートでは、監視設定情報入力部11は、設定ファイルから監視設定情報を取得しているが、キーボードやマウス等を用いてオペレータにより入力された監視設定情報を取得してもよいし、監視対象ソフトウェアを構成するファイルを取得して監視対象ソフトウェアのハッシュ値やサイズを計算してもよい。
【0176】
ステップS103において、必要な全ての監視設定情報が入力された場合、ステップS104において、監視設定情報管理部12は、監視設定情報入力部11により取得された複数の監視設定情報をメモリやファイルシステムに保持する。
【0177】
監視設定情報出力部は、ステップS105において、監視設定情報ファイルのバージョン情報を決定し、ステップS106において、監視対象ソフトウェア(又は、ソフトウェア更新パッケージ)との対応関係を示すバインド情報を生成し、ステップS107において、監視設定情報管理部12により保持されている1つ以上の監視設定情報とバージョン情報とバインド情報とを含む監視設定情報ファイルを生成して出力する。
ステップS108において、デジタル署名部14は、上述の監視設定情報ファイルのデジタル署名を生成して付与する。この後、かかるデジタル署名付きの監視設情報ファイルは、デバイス管理サーバやソフトウェア更新ツールのPCに保存される。
【0178】
第2に、図8を参照して、OS監視装置30が、監視対象ソフトウェアが更新される際に、監視設定情報を更新する動作について説明する。
【0179】
図8に示すように、ステップS201において、監視対象ソフトウェアを更新する前に、更新テスト部31が、監視設定情報の更新可否を判定する更新テストを行う。
【0180】
かかる更新テストには、監視設定情報に付与されたデジタル署名の検証や、バインド情報の検査や、書き換え領域の空き容量の検査や、書き換え可否の検査等が含まれる。
【0181】
ステップS202において、かかる更新テストが失敗した場合、監視対象ソフトウェアの更新と同期して監視設定情報ファイルの更新ができないため、監視対象ソフトウェアの更新を中止し、本動作は終了する。
【0182】
一方、ステップS202において、かかる更新テストが成功した場合、ステップS203において、デバイスが備えるソフトウェア更新機能が、ソフトウェア更新パッケージによるソフトウェアの更新を実行する。なお、ステップS203において、ソフトウェア更新パッケージ及び監視設定情報ファイルが一括して更新されてもよい。かかる場合、ステップS205及びS206の処理は不要となる。
【0183】
ステップS204において、かかるソフトウェアの更新が失敗した場合も、監視対象ソフトウェアの更新と同期して監視設定情報ファイルの更新ができないため、本動作は終了する。
【0184】
ステップS204において、ソフトウェア更新パッケージによる監視対象ソフトウェアの更新が成功した場合、ステップS205において、監視設定情報更新部32は、かかる監視対象ソフトウェアに対応する監視設定情報ファイルの更新を実行する。
【0185】
ステップS206において、かかる監視設定情報ファイルの更新が成功した場合、ステップS207において、監視設定情報更新部32は、監視設定情報ファイルのバージョン情報を記録し、OS監視装置30の起動時に、監視設定情報ファイル入力部33が、かかるバージョン情報を検査することができるようにする。
【0186】
一方、ステップS206において、かかる監視設定情報ファイルの更新が失敗した場合、監視設定情報更新部32は、かかる監視設定情報ファイルの更新についてリトライする。
【0187】
ステップS206において、かかる監視設定情報ファイルの更新が、所定回数(リトライ回数の上限)を超えて失敗した場合、監視設定情報更新部32は、かかる監視を不要とするために、監視フラグをオフにするように監視フラグ管理部40に指示すると共に、復旧部35を呼び出す。
【0188】
復旧部35は、監視設定情報ファイルの更新が失敗した理由に従って、例えば、再度、監視設定情報ファイルをダウンロード後に、当該監視設定情報ファイルの更新をリトライしたり、OS監視装置30を再起動してメモリを開放した後に、当該監視設定情報ファイルの更新をリトライしたり、不要ファイルの削除後に、当該監視設定情報ファイルの更新をリトライしたりする。
【0189】
第3に、図9及び図10を参照して、OS監視装置30が、起動する動作について説明する。
【0190】
図9に示すように、ステップS300において、デバイスが起動した時に、ステップS301において起動したOS監視装置30のローダは、フラッシュメモリやハードディスク上のOS監視装置のプログラムをロードする前に、ステップS302において、OS監視装置のプログラムに付与されたデジタル署名の検証を行う。
【0191】
ステップS303において、かかるデジタル署名の検証に失敗した際には、OS監視装置30自身のプログラムが壊れているか改ざんされているため、復旧処理を行う。
【0192】
本実施形態では、OS監視装置30の復旧部35を呼び出して復旧部35による復旧処理を行うことを想定しているが、デバイスの全体の復旧処理等の他の復旧処理を行ってもよい。
【0193】
また、本実施形態では、OS監視装置30のプログラムに付与されたデジタル署名の検証を行っているが、OS監視装置30のプログラムのハッシュ値を計算し、OS監視装置30のローダ内に埋め込まれたハッシュ値と一致するかどうかについて判定することによって、OS監視装置30のプログラムの正当性を確認してもよい。
【0194】
ステップS303において、かかるデジタル署名の検証に成功した場合、ステップS304において、OS監視装置30の起動手順が実行される。
【0195】
ステップS305において、監視フラグ管理部40が、起動されて、監視フラグを検査する。
【0196】
ステップS306において、監視フラグがオフであると判定された場合、外部からの監視フラグの設定要求の待ち受け状態に移行して、本動作は終了する。
【0197】
すなわち、監視フラグをオンにするという要求が来ない限り、監視対象プログラムの監視を有効にしない。
【0198】
一方、監視フラグがオンであると判定された場合、自己監視部39を起動する。そして、ステップS307において、監視設定情報ファイル入力部33は、監視設定情報ファイルの有無やバージョン情報やバインド情報を検査する。
【0199】
ステップS308において、監視設定情報ファイルが存在しなかった場合、監視設定情報ファイル入力部33は、異常であると判定して復旧部35を呼び出す。
【0200】
また、ステップS308において、監視設定情報ファイルに含まれているバージョン情報が、正常のバージョン情報と異なる場合、監視設定情報ファイル入力部33は、異常であると判定して復旧部35を呼び出す。
【0201】
さらに、ステップS308において、バインド情報が、現状の監視対象ソフトウェアと整合していない場合、監視設定情報ファイル入力部33は、異常であると判定して復旧部35を呼び出す。
【0202】
復旧部35は、再起動や退避しておいた監視設定情報ファイルのコピー等により、復旧処理を試み、それでも復旧できない場合は、監視フラグ管理部40を呼び出して監視フラグをオフにする。
【0203】
本実施形態では、監視設定情報ファイルの有無の検査、バージョン情報の検査、バインド情報の検査、デジタル署名の検査という順序で検査を行ったが、別の順序でかかる検査を行ってもよい。
【0204】
ステップS308において、上述の検査に成功した場合、図10に示すように、ステップS401において、監視設定情報ファイル入力部33は、監視設定情報ファイルを取得する。
【0205】
ステップS402において、署名検証部34は、監視設定情報ファイルに付与されたデジタル署名を検証する。
【0206】
ステップS403において、かかるデジタル署名の検証に失敗した場合は、署名検証部34は、かかる監視設定情報ファイルは、不正なものであると判断し、復旧部35を呼び出す。
【0207】
ステップS403において、かかるデジタル署名の検証に成功した場合は、ステップS404において、監視設定情報管理部36は、監視設定情報ファイル内の監視設定情報を保持する。
【0208】
ステップS405において、監視部37が、かかる監視設定情報を利用して、監視部37のサブシステムであるパラメータ監視部41及び完全性監視部42の初期化を行い、監視対象ソフトウェア等の監視を開始する。
【0209】
かかる初期化は、例えば、監視部37が、監視制御部43を呼び出して、かかる監視についてのスケジューリング管理を行う。
【0210】
ステップS406において、自己監視部39が、起動して、OS監視装置30自身の監視を開始する。
【0211】
第4に、図11を参照して、OS監視装置30が、監視対象パラメータを監視する動作について説明する。
【0212】
図11に示すように、ステップS500において、図10の動作と同様に、監視部37が、監視設定情報を利用して、パラメータ監視部41の初期化を行う。
【0213】
ステップS501において、パラメータ監視部41は、図3に示すように、監視設定情報として、監視対象記憶領域のアドレスと監視対象記憶領域のサイズと監視対象記憶領域に保持される値が取り得る範囲(正常値の範囲)を取得する。
【0214】
ステップS502において、パラメータ監視部41は、監視対象記憶領域に保持される監視対象パラメータを監視する。
【0215】
ステップS503において、パラメータ監視部41は、監視対象パラメータが正常値の範囲外であった場合に、異常であると判断して、異常時対処部38を呼び出す。
【0216】
異常時対処部38は、異常発生の通知や、ハードウェアリセットの呼び出しによる再起動等の対処を行う。
【0217】
第5に、図12乃至図13を参照して、OS監視装置30が、周期的に監視対象ソフトウェアの完全性を監視する動作について説明する。
【0218】
図12に示すように、ステップS600において、図10の動作と同様に、監視部37が、監視設定情報を利用して、完全性監視部42の初期化を行う。
【0219】
ステップS601において、完全性監視部42が、図2に示す監視設定情報として、監視対象ソフトウェアの識別子と、監視対象ソフトウェアのハッシュ値と、監視対象ソフトウェアが保持されるアドレスと、監視対象ソフトウェアのサイズと、監視スケジューリング情報を取得する。
【0220】
ステップS602において、監視制御部43が、監視設定情報に含まれる監視スケジューリング情報を利用して、上述の監視のスケジューリング管理を行う。
【0221】
本実施形態では、監視スケジューリング情報として、上述の監視の周期が、指定されているものとし、図13に示すように、監視対象ソフトウェア1の監視の周期は「5分」と指定され、監視対象ソフトウェア2の監視の周期は「1分」と指定され、監視対象ソフトウェア3の監視の周期は「30分」と指定されているものとする。
【0222】
監視制御部43は、任意の手段を用いて、監視のスケジューリング管理を行うことができる。
【0223】
例えば、監視制御部43は、監視対象ソフトウェア1、2、3の監視の周期を、監視制御部43の起動周期で割った値を、監視対象ソフトウェアの識別子を要素とする配列sに保存して管理する。
【0224】
監視起動部43の起動周期が「30秒」である場合、配列s[1]、s[2]、s[31]は、それぞれ「10」、「2」、「60」と設定される。
【0225】
監視制御部43は、呼び出される度に、カウンタの値を「1」づつ増加させ、かかるカウンタの値が、配列sの各要素に保持されている値で割り切れた場合に、かかる要素に対応する監視対象ソフトウェアについて監視するように制御することができる。
【0226】
ステップS603において、監視制御部43は、適切なタイミングで、監視部37を呼び出すために、例えば、30秒ごとのタイマ割り込みを設定する。
【0227】
図14に示すように、ステップS701において、タイマ割り込みを契機に、監視制御部43は、起動されて、決定したスケジューリングに従って、監視対象のソフトウェアを指定して監視部37を呼び出す。
【0228】
例えば、上述の通り、監視制御部43は、カウンタの値を「1」づつ増加させ、配列sをスキャンして、監視対象ソフトウェアを決定することができる。
【0229】
ステップS702において、監視部37は、指定された監視対象ソフトウェアを監視するために、完全性監視部42を呼び出す。
【0230】
ステップS703において、完全性監視部42は、指定された監視対象ソフトウェアが保持されるアドレス及びサイズに従って、監視対象ソフトウェア(メモリ又はファイル)のハッシュ値を計算し、監視設定情報に含まれる監視対象ソフトウェアのハッシュ値と比較する。
【0231】
ステップS704において、完全性監視部42は、両者が一致しない場合に、異常であると判定して、異常時対処部38を呼び出す。
【0232】
ステップS704において、完全性監視部42は、両者が一致する場合には、次のタイマ割り込みを待つ。
【0233】
なお、完全性監視部42は、電力消費削減のために、OSがサスペンドしている際には、上述の監視動作を停止し、OSがレジュームして動作を開始した際に、上述の監視動作を再開してもよい。
【0234】
また、図12乃至図14の例では、完全性監視部42の動作について説明したが、パラメータ監視部41も同様のスケジューリングを行ってもよい。
【0235】
第6に、図15及び図16を参照して、OS監視装置30が、動作時に配置アドレスが決まるソフトウェアの完全性を監視する動作について説明する。
【0236】
図15に示すように、ステップS801において、監視部37が、監視設定情報を利用して、完全性監視部42の初期化を行う。
【0237】
そして、完全性監視部42は、かかる初期化において、図2に示すように、監視設定情報として、監視対象ソフトウェアの識別子と、監視対象ソフトウェアのハッシュ値と、監視対象ソフトウェアが保持されるアドレスと、監視対象ソフトウェアのサイズと、監視スケジューリング情報を取得する。
【0238】
ステップS802において、完全性監視部42は、監視対象ソフトウェアが保持されるアドレスが指定されていない等、動作時に監視対象ソフトウェアが保持されるアドレスが決定されるものがあった場合、動作時の監視対象ソフトウェアが保持されるアドレスを取得する必要があると判定して、本動作は、ステップS803に進む。
【0239】
そのようなものがない場合、本動作は、ステップS806に進む。
【0240】
ステップSS803において、完全性監視部42は、OSの完全性についての監視処理を実行し、OSが危殆化されているか否かについて確認する。
【0241】
ステップS804において、OSの完全性についての監視が失敗した場合は、既にOSが危殆化されているということであり、完全性監視部42は、異常時対処部38を呼び出して、OSの復旧処理等を行う。
【0242】
一方、OSの完全性についての監視が成功した場合、ステップS805においいて、完全性監視部42は、OSから、動作時の監視対象ソフトウェアが保持されるアドレス等を含む監視設定情報を受け取り、初期化処理を行う。
【0243】
なお、ステップS806、S807、S901乃至S904の動作は、上述した図12及び図14におけるステップS602、S603、S701乃至S704の動作と同様である。
【0244】
第7に、図17及び図18を参照して、OS監視装置30が、優先度に基づいて、監視対象ソフトウェアの完全性について監視する動作について説明する。本実施形態では、図18に示すように、監視スケジューリング情報として、優先度が指定されているものとする。
【0245】
図17に示すように、ステップS1001において、監視部37が、監視設定情報を利用して、完全性監視部42の初期化を行う。
【0246】
ここで、完全性監視部42は、かかる初期化において、図18に示すように、監視設定情報として、監視対象ソフトウェアの識別子と、監視対象ソフトウェアのハッシュ値と、監視対象ソフトウェアが保持されるアドレスと、監視対象ソフトウェアのサイズと、監視スケジューリング情報としての優先度を取得する。
【0247】
ステップS1002において、監視制御部37は、監視スケジューリング情報として優先度を含む監視設定情報が取得されたか否かについて調べる。
【0248】
ステップS1003において、優先度を含む監視設定情報が取得されたと判定された場合、ステップS1004において、監視制御部37は、優先度ベース監視制御部46を呼び出す。
【0249】
ステップS1005において、優先度ベース監視制御部46は、監視設定情報で指定された監視スケジューリング情報としての優先度を利用して、スケジューリング管理を行う。
【0250】
かかる優先度に基づくスケジューリング管理は、図12乃至図14を参照して説明したスケジューリング管理の後に実行してもよいし、先に実行してもよい。或いは、いずれかのスケジューリング管理のみを実行することにしてもよい。
【0251】
図18に示す例では、監視対象ソフトウェア1に対する監視の優先度は「2」と設定されており、監視対象ソフトウェア2に対する監視の優先度は「1」と設定されており、監視対象ソフトウェア3に対する監視の優先度は「3」と設定されている(優先度は、1、2、3の順で高いものとする)。
【0252】
優先度ベース監視制御部46は、例えば、タイマ割り込みの周期(例えば、30秒)で監視制御部43が呼び出された際に、CPU負荷が「0.3」を超えた場合には、監視の優先度が「2」以上のソフトウェアを監視するように制御し(すなわち、監視の優先度が「3」であるソフトウェアについては監視としない)、CPU負荷が「0.4」を超えた場合には、監視の優先度が「1」以上のソフトウェアを監視するように制御し(すなわち、監視の優先度が「2」及び「3」であるソフトウェアについては監視としない)、CPU負荷が「0.5」を超えた場合には、いずれのソフトウェアについても監視しないというスケジューリングを行うことができる。
【0253】
かかる場合、優先度ベース監視制御部46は、配列p[1]、p[2]、p[3]に、それぞれ、監視対象ソフトウェアの識別子「2」、「1」、「3」を割り当てる。
【0254】
そして、優先度ベース監視制御部46は、かかる配列pを利用して、タイマ割り込みで呼び出された際、監視対象ソフトウェアを抽出できる。
【0255】
例えば、CPU負荷が「0.35」である場合、配列p[1]、p[2]を参照して、識別子が「2」及び「1」であるソフトウェアについて監視するように制御することができる。
【0256】
ステップS1006において、監視制御部43は、適切な周期で監視部37を呼び出すために、例えば、30秒のタイマ割り込みを設定する。
【0257】
図19に示すように、ステップS1101において、タイマ割り込みを契機に、監視制御部43が、起動されて、優先度に基づくスケジューリング管理を行っているか否かについて調べる。
【0258】
ステップS1102において、優先度に基づくスケジューリング管理が行われていると判定された場合、ステップS1103において、監視制御部43は、優先度ベース監視制御部46を呼び出す。
【0259】
ステップS1104において、優先度ベース監視制御部46は、現在のCPU負荷に基づいて、監視対象ソフトウェアが有するべき監視の優先度を決定した後、かかる優先度以上の優先度を有する監視対象ソフトウェアを、配列pを利用して抽出して、完全性監視部42を呼び出す。
【0260】
ステップS1105において、完全性監視部42は、監視対象ソフトウェアが保持されるアドレス及びサイズの指定に従って、監視対象ソフトウェア(メモリ或いはファイル)のハッシュ値を計算し、監視設定情報に含まれる監視対象ソフトウェアのハッシュ値と比較する。
【0261】
ステップS1106において、完全性監視部42は、両者が一致しない場合に、異常であると判定して、異常時対処部38を呼び出す。
【0262】
ステップS1106において、完全性監視部42は、両者が一致する場合には、次のタイマ割り込みを待つ。
【0263】
また、図17乃至図19の例では、完全性監視部42の動作について説明したが、パラメータ監視部41も同様のスケジューリングを行ってもよい。
【0264】
第8に、図20及び図22を参照して、OS監視装置30が、イベント情報に基づいて、監視対象ソフトウェアの完全性について監視する動作について説明する。本実施形態では、図21に示すように、監視スケジューリング情報として、イベント種別(イベント情報)が指定されているものとする。
【0265】
図20に示すように、ステップS1200において、監視部37が、監視設定情報を利用して、完全性監視部42の初期化を行う。
【0266】
ステップS1201において、完全性監視部42は、かかる初期化において、図21に示すように、監視設定情報として、監視対象ソフトウェアの識別子と、監視対象ソフトウェアのハッシュ値と、監視対象ソフトウェアが保持されるアドレスと、監視対象ソフトウェアのサイズと、監視スケジューリング情報としてのイベント情報を取得する。
【0267】
ステップS1202において、監視制御部43は、監視スケジューリング情報としてイベント情報を含む監視設定情報を取得したか否かについて調べる。
【0268】
ステップS1203において、イベント情報を含む監視設定情報が取得されたと判定された場合、監視制御部43は、ステップS1204において、イベントベース監視制御部45を呼び出す。
【0269】
ステップS1205において、イベントベース監視制御部45は、監視スケジューリング情報としてのイベント情報をスキャンし、処理するべきイベント情報を決定する。
【0270】
図21に示すように、監視対象ソフトウェア1に対するイベント情報としては「電話発信」が指定されており、監視対象ソフトウェア2に対するイベント情報としては「外部ストレージへのデータの書き込み」が指定されており、監視対象ソフトウェア3に対するイベント情報としては「電子商取引のトランザクションの実行」が指定されており、監視対象ソフトウェア4に対するイベント情報としては「折りたたみ型電話機の開閉」が指定されており、監視対象ソフトウェア5に対するイベント情報としては「特定キーの押下」が指定されており、監視対象ソフトウェア6に対するイベント情報としては「OSのサスペンド」が指定されており、イベントベース監視制御部は、これらのイベント情報に対してのみを処理を行うことを決定する。
【0271】
すなわち、イベント入力部44によってイベントベース監視制御部45が呼び出される際に指定されるイベント情報が、これらのイベント情報以外であった場合は、イベントベース監視制御部45は、上述の監視を行わない。
【0272】
かかるイベント情報の決定は、図12乃至図14を参照にして説明したスケジューリング管理又は図17乃至図19を参照にして説明したスケジューリング管理の後に実行してもよいし、先に実行してもよい。
【0273】
ステップS1206において、監視制御部43は、イベント情報に基づいて監視部37を呼び出して監視を行うために、イベントの入力の待ち受けを行う。
【0274】
図22に示すように、イベント入力部44は、ステップS1300において、監視対象のOSやペリフェラル等の外部からイベント情報を受け付けると、ステップS1301において、イベントベース監視制御部45を呼び出す。
【0275】
ステップS1302において、イベントベース監視制御部45は、入力されたイベント情報と、監視スケジューリング情報で指定されているイベント情報とが一致するソフトウェアを抽出して、完全性監視部42を呼び出す。
【0276】
ステップS1303において、完全性監視部42は、指定された優先度以上の優先度を持つ監視対象ソフトウェアが保持されるアドレス及びサイズの指定に従って、監視対象ソフトウェア(メモリ或いはファイル)のハッシュ値を計算し、監視設定情報に含まれるハッシュ値と比較する。
【0277】
ステップS1304において、完全性監視部42は、両者が一致しない場合には、異常であると判定して、異常時対処部38を呼び出す。
【0278】
一方、ステップS1304において、完全性監視部42は、両者が一致する場合には、次のイベント情報の入力を待つ。
【0279】
なお、本実施形態では、イベント入力部44は、OSやペリフェラルからのイベント情報の入力を待つように説明をしたが、イベント入力部44が、OSやペリフェラルの状態を見て、自律的にイベント情報を検知してもよい。
【0280】
例えば、イベント入力部44が、随時、折りたたみ型電話機の開閉状態の変化を問合せることで、イベント情報を取得することが考えられる。
【0281】
また、図20乃至図22の例では、完全性監視部42の動作について説明したが、パラメータ監視部41も同様のスケジューリングを行ってもよい。
【0282】
第9に、図23を参照して、OS監視装置30が、監視フラグを設定する動作について説明する。本実施形態では、遠隔のデバイス管理サーバが無線ネットワークを通じて監視フラグの設定要求を発行するものとする。
【0283】
図23に示すように、ステップS1401において、監視フラグ管理部40は、デバイス管理サーバによって発行された監視フラグの設定要求を受け取る。
【0284】
ステップS1402において、監視フラグ管理部40は、受信した監視フラグの設定要求が、現在の監視フラグの設定と同じ内容を示しているか否かについて調べる。
【0285】
ステップS1403において、同じ内容を示している場合、特に対処する必要はないため、本動作は終了する。
【0286】
一方、ステップS1403において、同じ内容を示していない場合、設定要求が「オン」を示しているのか、「オフ」を示しているのかによって、以下の2通りの処理が行われる。
【0287】
ステップS1404において、現在の監視フラグの設定が「オフ」であり、かつ、受信した設定要求が「オン」を示している場合、ステップS1405において、監視フラグ管理部40は、監視フラグを「オン」に設定して、セキュアストレージに保持した後、図9に示すステップS305の動作から続行して、OS監視装置30を起動する。
【0288】
一方、ステップS1404において、現在の監視フラグの設定が「オン」であり、かつ、受信した設定要求が「オフ」を示している場合、監視フラグ管理部40は、ステップS1406において、監視フラグの状態を「オフ」に設定して、セキュアストレージに保持した後、ステップS1407において、監視部37を呼び出して、監視の停止を要求する。
【0289】
なお、ここでは、直接、監視フラグ管理部40が、直接、設定要求を受け取る場合を例に説明したが、デバイスの他のモジュールが、一旦、遠隔のデバイス管理サーバからの設定要求を受け取り、監視フラグ管理部40を呼び出して、かかる設定要求を渡してもよい。
【0290】
また、監視フラグ管理部40は、遠隔のデバイス管理サーバから監視フラグの設定要求があることの通知のみを受け取り、その通知の受信を契機に、デバイス管理サーバにアクセスして設定要求を受信してもよい。
【0291】
(本発明の第1の実施形態に係るOS監視設定情報生成装置及びOS監視装置の作用・効果)
本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、監視設定情報ファイルに対して、監視設定情報と監視対象ソフトウェアとの対応関係を示すバインド情報を付加することで、ソフトウェア更新パッケージ又は監視対象ソフトウェアと監視設定情報との間の不整合を防止することができる。
【0292】
また、本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、監視設定情報ファイルのバージョン情報を付加することで、古い監視設定情報ファイルへの置き換えを防止することができる。
【0293】
また、本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、デジタル署名を付与することにより、監視設定情報の改竄を防ぎ、OS監視装置による安全な監視を行うことができる。
【0294】
さらに、本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、最新の監視設定情報ファイルのバージョンをチェックすることで、古い監視設定情報ファイルへの置き換え攻撃を防止することができる。
【0295】
本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、OS監視設定情報生成装置10が、上述の監視設定情報を、OS監視装置30に提供するため、かかるOS監視装置30は、かかる監視設定情報を用いて、監視対象ソフトウェアの完全性を検証して異常時に対処を実行することで、デバイスの正常動作を維持することができる。
【0296】
本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、OS監視設定情報生成装置10が、上述の監視設定情報を、OS監視装置30に提供するため、OS監視装置30は、かかる監視設定情報を用いて、監視対象パラメータが正常値を取っているか或いは改竄されていないかについて検査することで、デバイスの正常動作を維持することができる。
【0297】
本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、OS監視装置30は、上述の監視スケジューリング情報を用いて、上述の監視を適切にスケジューリングすることで、効率的かつ十分に安全な監視を実行することができる。
【0298】
本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、OS監視装置30は、上述の監視スケジューリング情報を用いて、特定のイベントが起きたときのみ、或いは、OS監視装置30の起動時のみ、当該監視対象ソフトウェアを監視することにより、上述の監視によるオーバヘッドを削減し、効率的な監視を実行することができる。
【0299】
本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、OS監視装置30は、重要な監視対象ソフトウェア或いは攻撃されやすい監視対象ソフトウェアに高い優先度を与えることで、このようなソフトウェアを高頻度で監視して、安全性を保証しつつ、優先度の低いソフトウェアの監視頻度を削減して、効率化を図ることができる。
【0300】
本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、OS監視装置30は、監視設定情報の更新可否を判定する事前テスト(更新テスト)を行った後に、監視対象ソフトウェア及び監視設定情報ファイルの更新を行うことにより、監視対象ソフトウェア及び監視設定情報の更新時の障害による不整合防止に対処することができる。
【0301】
本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、監視設定情報の更新可否を判定する事前テスト(更新テスト)の際には、ソフトウェア更新パッケージ又は監視対象ソフトウェアとのバインド情報を検査することで、監視設定情報とソフトウェアとの間の不整合が起きることを防止することができる。
【0302】
また、本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、監視設定情報のみの更新の際も、デバイス側に保存されたソフトウェア更新パッケージとの整合を検査して、監視設定情報とソフトウェアとの間の不整合が起きることを防止することができる。
【0303】
本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、悪意のソフトウェアによる監視対象ソフトウェアの改竄や消去を検知して対処することで、正常動作を維持することができる。
【0304】
本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、監視部37における監視機能に不具合があった場合に、遠隔から当該監視機能をオフにし、当該監視機能を修正した後、オンにする等の対応が可能となる。
【0305】
また、本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、監視設定情報の更新に失敗した場合にも、当該監視機能をオフにて起動して、デバイスの利用可能性を確保することができる。
【0306】
本発明の第1の実施形態に係るOS監視設定情報生成装置10及びOS監視装置30によれば、OS監視装置30自身を攻撃から守り、安全な監視を行うことができる。
【0307】
また、本実施形態によれば、不正な監視設定情報による更新の防止だけでなく、監視設定情報の更新時の障害や、古い監視設定情報への置き換えや、更新後のソフトウェアパッケージと整合しない監視設定情報の更新を防止し、安全にOS及びOS用のソフトウェア(ミドルウェアやアプリケーションやドライバを含む)を監視して正常動作を維持することができる。
【0308】
また、本実施形態によれば、動作時に配置アドレスが決まるソフトウェアについても、安全にOSと通信して監視できる。
【0309】
また、本実施形態によれば、監視の優先度やイベント種別を考慮した監視処理の細粒度の効率化や、デバイスのスリープ状態を考慮した監視処理の削減により、オーバヘッドを低減できる。
【0310】
(本発明の第2の実施形態)
本発明の第2の実施形態では、OS監視設定情報生成装置10の構成や動作は第1の実施形態の場合と同一であり、OS監視装置30の構成も第1の実施形態の場合と同一であるが、デバイス内におけるOS監視装置30の配置が異なり、その動作が一部異なる。
【0311】
以下、デバイス内におけるOS監視装置30の配置及び動作の違いに焦点を当てて説明する。
【0312】
図24に、本発明の第2の実施形態に係るOS監視装置30を含むデバイス1の構成を示す。
【0313】
第2の実施形態では、OS監視装置30は、監視対象のOSから隔離された領域(ドメイン)で実行されるソフトウェアであって、上述の特許文献3に開示される「サスペンド・レジュームに基づくOS切替技術を備えるOS切替装置」を使って監視対象のOSと排他的に動作するものとする。
【0314】
第1の実施形態では、OS監視装置30は、OSと並行して動作して、上述の監視を実行することができるものと仮定したのに対して、第2の実施形態では、OS監視装置30は、OSがサスペンド或いはスリープ状態で動作を停止している際に、動作して、上述の監視を実行するものとする。
【0315】
また、本実施形態に係るOS監視装置30は、デバイスの起動時に、OSの起動前に、或いは、OSの起動後に、起動されるものとする。
【0316】
以下、本実施形態に係るOS監視装置30の動作のうち、第1の実施形態の場合と異なる動作について説明する。
【0317】
第1に、図25及び図26を参照して、本実施形態に係るOS監視装置30が、周期的に監視対象ソフトウェアの完全性を監視する動作について説明する。
【0318】
図25に示すように、ステップS1500乃至S1502の動作は、上述の図12のステップS600乃至S602の動作と同一である。
【0319】
ステップS1503において、監視制御部43は、OS監視装置30の起動処理を終了し、OS監視装置30をサスペンドしてOSに制御を戻す。
【0320】
監視制御部43は、適切なタイミングで監視部37を呼び出すために、監視スケジューリング情報で指定された監視の周期以下の間隔で、タイマ割り込みされる必要があるが、本実施形態では、OSとOS監視装置30が排他的に動作する環境であるため、OSが、自主的にサスペンドして制御をOS監視装置30に渡す必要がある。
【0321】
そのため、OSは、例えば、30秒ごとの周期でサスペンドして、OS監視装置30に制御を渡し、監視制御部43が起動されるように構成されるものと仮定する。
【0322】
なお、サスペンドする周期については、監視制御部43が、監視対象のOSに対して指定してもよい。
【0323】
例えば、図13に示す監視スケジューリング情報で指定された監視の周期は、30秒より大きく、サスペンドする周期は、1分で十分であるため、監視制御部43は、OSに対して、サスペンドする周期として1分を指定して、処理量の低減による応答性の向上や電力消費の削減を図ることができる。
【0324】
図26に示すように、ステップS1600乃至S1604の動作は、上述の図14のステップS700乃至S704の動作と同一である。
【0325】
ステップS1604において、両者が一致する場合には、監視制御部43は、OS監視装置30をサスペンドして制御をOSに渡し、次のOSからのタイマ割り込みを待つ。
【0326】
なお、「本実施形態に係るOS監視装置30が、監視の優先度に基づいて監視対象ソフトウェアの完全性を監視する動作」について、第1の実施形態の場合と本実施形態の場合の相違点は、「上述した本実施形態に係るOS監視装置30が、周期的に監視対象ソフトウェアの完全性を監視する動作」の場合と同様であるため、説明を省略する。
【0327】
第2に、図27及び図28を参照して、本実施形態に係るOS監視装置30が、イベント情報に基づいて、監視対象ソフトウェアの完全性について監視する動作について説明する。本実施形態では、図21に示すように、監視スケジューリング情報として、イベント種別(イベント情報)が指定されているものとする。
【0328】
図27に示すように、ステップS1700乃至S1705の動作は、上述の図20におけるステップS1200乃至S1205の動作と同一である。
【0329】
ステップS1706において、監視制御部43は、OS監視装置30の起動処理を終了し、OS監視装置30をサスペンドしてOSに制御を戻す。
【0330】
ステップS1707において、監視制御部43は、イベント情報に基づいて監視部37を呼び出して監視を行うために、イベント情報の入力の待ち受けを行う。
【0331】
図28に示すように、ステップS1800乃至S1804の動作は、上述の図22におけるステップS1300乃至S1304の動作と同一である。
【0332】
ステップ1804において、両者が一致する場合には、監視制御部43は、OS監視装置30をサスペンドして制御をOSに渡し、次のOSからのイベント情報の入力を待つ。
【0333】
本実施形態によれば、OSとOS監視装置30が並行して動作しないため、OSは、OS監視装置30に対するイベント情報の通知及び上述の切り替え指示以外のオーバヘッド無しに動作することができ、応答性の向上や電力消費の削減を図ることができる。
【0334】
(本発明の第3の実施形態)
本発明の第3の実施形態では、OS監視設定情報生成装置10の構成や動作は第1の実施形態の場合と同一であり、OS監視装置30の構成も第1の実施形態の場合と同一であるが、デバイス内におけるOS監視装置30の配置が異なり、その動作が一部異なる。
【0335】
以下、デバイス内におけるOS監視装置30の配置及び動作の違いに焦点を当てて説明する。
【0336】
図29に、本発明の第3の実施形態に係るOS監視装置30を含むデバイス1の構成を示す。
【0337】
本発明の第3の実施形態では、OS監視装置30は、監視対象のOSとは隔離されずに、OS内にソフトウェアとして実装され、OS上のプロセス又はスレッドとして並行的に実行されるように構成されている。
【0338】
以下、本実施形態に係るOS監視装置30の動作のうち、第1の実施形態の場合と異なる動作について説明する。
【0339】
具体的には、図30を参照して、本実施形態に係るOS監視装置が起動する動作について説明する。
【0340】
図30に示すように、ステップS1900において、デバイスが起動した際に、ステップS1901において、各種ローダ及びOSが、起動される。なお、OS監視装置30は、かかるOSによって起動される。
【0341】
ステップS1902において、OSは、OS監視装置30のプログラムをロードする前に、OS監視装置のプログラムに付与されたデジタル署名の検証を行う。
【0342】
かかるデジタル署名の検証に失敗した際には、OS監視装置30のプログラムが壊れているため、復旧処理を行う。
【0343】
本実施形態では、OSは、OS監視装置30の復旧部35を呼び出して復旧処理をさせているが、他の復旧処理を実行してもよい。
【0344】
また、本実施形態では、OSは、デジタル署名の検証を行っているが、OS監視装置30のプログラムのハッシュ値を計算し、当該OSによって保持されているOS監視装置の正当なハッシュ値と一致するかどうかによって、OS監視装置30のプログラムの正当性を確認してもよい。
【0345】
以降の動作は、上述の図9におけるステップS303乃至S308の動作と同一であるため、説明を省略する。
【図面の簡単な説明】
【0346】
【図1】本発明の第1の実施形態に係るOS監視設定情報生成装置及びOS監視装置の機能ブロック図である。
【図2】本発明の第1の実施形態において用いられる監視対象ソフトウェアの完全性を監視するための監視設定情報の具体例を示す図である。
【図3】本発明の第1の実施形態において用いられる監視対象パラメータの正常性を監視するための監視設定情報の具体例を示す図である。
【図4】本発明の第1の実施形態において用いられるデジタル署名付きの監視設定情報ファイルの構成を示す図である。
【図5】本発明の第1の実施形態において用いられる監視設定情報ファイルの具体例を示す図である。
【図6】本発明の第1の実施形態に係るOS監視装置を含むデバイスの構成図である。
【図7】本発明の第1の実施形態に係るOS監視設定情報生成装置におけるOS監視設定情報生成手順を示すフローチャートである。
【図8】本発明の第1の実施形態に係るOS監視装置におけるOS監視設定情報更新手順を示すフローチャートである。
【図9】本発明の第1の実施形態に係るOS監視装置における起動手順を示すフローチャートである。
【図10】本発明の第1の実施形態に係るOS監視装置における起動手順を示すフローチャートである。
【図11】本発明の第1の実施形態に係るOS監視装置におけるパラメータ監視手順を示すフローチャートである。
【図12】本発明の第1の実施形態に係るOS監視装置における完全性監視手順を示すフローチャートである。
【図13】本発明の第1の実施形態において用いられる監視スケジュール情報における監視の周期指定の具体例を示す図である。
【図14】本発明の第1の実施形態に係るOS監視装置における完全性監視手順を示すフローチャートである。
【図15】本発明の第1の実施形態に係るOS監視装置における動作時に配置アドレスが決まるソフトウェアの完全性監視手順を示すフローチャートである。
【図16】本発明の第1の実施形態に係るOS監視装置における動作時に配置アドレスが決まるソフトウェアの完全性監視手順を示すフローチャートである。
【図17】本発明の第1の実施形態に係るOS監視装置における優先度に基づく完全性監視手順を示すフローチャートである。
【図18】本発明の第1の実施形態において用いられる監視スケジュール情報における監視の優先度指定の具体例を示す図である。
【図19】本発明の第1の実施形態に係るOS監視装置における優先度に基づく完全性監視手順を示すフローチャートである。
【図20】本発明の第1の実施形態に係るOS監視装置におけるイベント情報に基づく完全性監視手順を示すフローチャートである。
【図21】本発明の第1の実施形態において用いられる監視スケジュール情報における監視の契機となるイベント情報指定の具体例を示す図である。
【図22】本発明の第1の実施形態に係るOS監視装置におけるイベント情報に基づく完全性監視手順を示すフローチャートである。
【図23】本発明の第1の実施形態に係るOS監視装置における監視フラグ設定手順を示すフローチャートである。
【図24】本発明の第2の実施形態に係るOS監視装置を含むデバイスの構成図である。
【図25】本発明の第2の実施形態に係るOS監視装置における完全性監視手順を示すフローチャートである。
【図26】本発明の第2の実施形態に係るOS監視装置における完全性監視手順を示すフローチャートである。
【図27】本発明の第2の実施形態に係るOS監視装置におけるイベント情報に基づく完全性監視手順を示すフローチャートである。
【図28】本発明の第2の実施形態に係るOS監視装置におけるイベント情報に基づく完全性監視手順を示すフローチャートである。
【図29】本発明の第3の実施形態に係るOS監視装置を含むデバイスの構成図である。
【図30】本発明の第3の実施形態に係るOS監視装置における起動手順を示すフローチャートである。
【符号の説明】
【0347】
1…デバイス
10…OS監視設定情報生成装置
11…監視設定情報入力部
12…監視設定情報管理部
13…監視設定情報出力部
14…デジタル署名部
30…OS監視装置
31…更新テスト部
32…監視設定情報更新部
33…監視設定情報ファイル入力部
34…署名検証部
35…復旧部
36…監視設定情報管理部
37…監視部
38…異常時対処部
39…自己監視部
40…監視フラグ管理部
41…パラメータ監視部
42…完全性監視部
43…監視制御部
44…イベント入力部
45…イベントベース監視制御部
46…優先度ベース監視制御部
【特許請求の範囲】
【請求項1】
オペレーティングシステム監視装置による監視で用いられる監視設定情報を保持する監視設定情報管理部と、
前記監視設定情報管理部により保持されている前記監視設定情報と、バージョン情報と、監視対象ソフトウェアとの対応関係を示すバインド情報とを含む監視設定情報ファイルを生成して出力する監視設定情報出力部と、
前記監視設定情報ファイルのデジタル署名を生成して付与するデジタル署名部とを備えることを特徴とするオペレーティングシステム監視設定情報生成装置。
【請求項2】
前記監視設定情報は、前記監視対象ソフトウェアのハッシュ値と、該監視対象ソフトウェアが保持されるアドレスと、該監視対象ソフトウェアのサイズとを含むことを特徴とする請求項1に記載のオペレーティングシステム監視設定情報生成装置。
【請求項3】
前記監視設定情報は、前記監視対象記憶領域のアドレスと、該監視対象記憶領域のサイズと、該監視対象記憶領域に保持される値が取り得る範囲とを含むことを特徴とする請求項1に記載のオペレーティングシステム監視設定情報生成装置。
【請求項4】
前記監視設定情報は、前記監視のタイミング、該監視の頻度、該監視の周期の少なくとも1つを指定する監視スケジューリング情報を更に含むことを特徴とする請求項2に記載のオペレーティングシステム監視設定情報生成装置。
【請求項5】
前記監視スケジューリング情報は、前記監視のタイミングとして、該監視対象ソフトウェアの監視を実行する契機となるイベント種別或いは前記オペレーティングシステム監視装置の起動時の少なくとも1つを指定することを特徴とする請求項4に記載のオペレーティングシステム監視設定情報生成装置。
【請求項6】
前記監視スケジューリング情報は、前記監視の頻度として、該監視対象ソフトウェアの監視に関する優先度を指定することを特徴とする請求項4に記載のオペレーティングシステム監視設定情報生成装置。
【請求項7】
オペレーティングシステム上の監視対象ソフトウェアの監視を行うオペレーティングシステム監視装置であって、
オペレーティングシステム監視設定情報生成装置から入力された監視設定情報ファイルに含まれている監視設定情報を利用して、前記監視を行う監視部と、
前記監視対象ソフトウェアが更新される前に、前記監視設定情報ファイルの更新の可否について判定する更新テスト部と、
前記監視設定情報ファイルが更新可能であると判定された場合に、前記監視設定情報ファイルを更新する監視設定情報更新部と、
所定回数以上、前記監視設定情報ファイルの更新に失敗した場合に、該監視設定情報ファイルに対する復旧処理を行う復旧部とを備えることを特徴とするオペレーティングシステム監視装置。
【請求項8】
前記更新テスト部は、前記監視設定情報ファイルと前記監視対象ソフトウェアとの対応関係を示すバインド情報を検査することを特徴とする請求項7に記載のオペレーティングシステム監視装置。
【請求項9】
前記監視設定情報に基づいて前記監視対象ソフトウェアのハッシュ値を算出し、算出した該監視対象ソフトウェアのハッシュ値と該監視設定情報に含まれる前記監視対象ソフトウェアのハッシュ値とを比較し、両者が一致しない場合に、該監視対象ソフトウェアに関する異常が発生したと判定する完全性監視部を備えることを特徴する請求項7又は8に記載のオペレーティングシステム監視装置。
【請求項10】
監視設定情報に含まれる監視スケジューリング情報に従って、前記監視を制御する監視制御部を備えることを特徴とする請求項7乃至9のいずれか一項に記載のオペレーティングシステム監視装置。
【請求項11】
入力されたイベント情報と、前記監視スケジューリング情報において前記監視のタイミングとして指定されているイベント種別とが一致した場合に、該監視を実行するように該監視を制御するイベントベース監視制御部を備えることを特徴とする請求項10に記載のオペレーティングシステム監視装置。
【請求項12】
前記監視スケジューリング情報において指定されている優先度に従って、前記監視の順序や周期を調整する優先度ベース監視制御部を備えることを特徴とする請求項10に記載のオペレーティングシステム監視装置。
【請求項13】
前記監視部は、前記監視の要否を示す監視フラグに応じて、該監視を行うか否かについて決定することを特徴とする請求項7乃至12のいずれか一項に記載のオペレーティングシステム監視装置。
【請求項14】
オペレーティングシステム監視装置自身のプログラム及びパラメータの改竄を検知する自己監視部を備えることを特徴とする請求項7〜13のいずれか一項に記載のオペレーティングシステム監視装置。
【請求項15】
前記監視設定情報は、前記監視対象記憶領域のアドレスと、該監視対象記憶領域のサイズと、該監視対象記憶領域に保持される値が取り得る範囲を含み、
前記監視設定情報に基づいて、前記監視対象記憶領域におけるパラメータの正常性を判定するパラメータ監視部を備えることを特徴とする請求項7乃至14のいずれか一項に記載のオペレーティングシステム監視装置。
【請求項1】
オペレーティングシステム監視装置による監視で用いられる監視設定情報を保持する監視設定情報管理部と、
前記監視設定情報管理部により保持されている前記監視設定情報と、バージョン情報と、監視対象ソフトウェアとの対応関係を示すバインド情報とを含む監視設定情報ファイルを生成して出力する監視設定情報出力部と、
前記監視設定情報ファイルのデジタル署名を生成して付与するデジタル署名部とを備えることを特徴とするオペレーティングシステム監視設定情報生成装置。
【請求項2】
前記監視設定情報は、前記監視対象ソフトウェアのハッシュ値と、該監視対象ソフトウェアが保持されるアドレスと、該監視対象ソフトウェアのサイズとを含むことを特徴とする請求項1に記載のオペレーティングシステム監視設定情報生成装置。
【請求項3】
前記監視設定情報は、前記監視対象記憶領域のアドレスと、該監視対象記憶領域のサイズと、該監視対象記憶領域に保持される値が取り得る範囲とを含むことを特徴とする請求項1に記載のオペレーティングシステム監視設定情報生成装置。
【請求項4】
前記監視設定情報は、前記監視のタイミング、該監視の頻度、該監視の周期の少なくとも1つを指定する監視スケジューリング情報を更に含むことを特徴とする請求項2に記載のオペレーティングシステム監視設定情報生成装置。
【請求項5】
前記監視スケジューリング情報は、前記監視のタイミングとして、該監視対象ソフトウェアの監視を実行する契機となるイベント種別或いは前記オペレーティングシステム監視装置の起動時の少なくとも1つを指定することを特徴とする請求項4に記載のオペレーティングシステム監視設定情報生成装置。
【請求項6】
前記監視スケジューリング情報は、前記監視の頻度として、該監視対象ソフトウェアの監視に関する優先度を指定することを特徴とする請求項4に記載のオペレーティングシステム監視設定情報生成装置。
【請求項7】
オペレーティングシステム上の監視対象ソフトウェアの監視を行うオペレーティングシステム監視装置であって、
オペレーティングシステム監視設定情報生成装置から入力された監視設定情報ファイルに含まれている監視設定情報を利用して、前記監視を行う監視部と、
前記監視対象ソフトウェアが更新される前に、前記監視設定情報ファイルの更新の可否について判定する更新テスト部と、
前記監視設定情報ファイルが更新可能であると判定された場合に、前記監視設定情報ファイルを更新する監視設定情報更新部と、
所定回数以上、前記監視設定情報ファイルの更新に失敗した場合に、該監視設定情報ファイルに対する復旧処理を行う復旧部とを備えることを特徴とするオペレーティングシステム監視装置。
【請求項8】
前記更新テスト部は、前記監視設定情報ファイルと前記監視対象ソフトウェアとの対応関係を示すバインド情報を検査することを特徴とする請求項7に記載のオペレーティングシステム監視装置。
【請求項9】
前記監視設定情報に基づいて前記監視対象ソフトウェアのハッシュ値を算出し、算出した該監視対象ソフトウェアのハッシュ値と該監視設定情報に含まれる前記監視対象ソフトウェアのハッシュ値とを比較し、両者が一致しない場合に、該監視対象ソフトウェアに関する異常が発生したと判定する完全性監視部を備えることを特徴する請求項7又は8に記載のオペレーティングシステム監視装置。
【請求項10】
監視設定情報に含まれる監視スケジューリング情報に従って、前記監視を制御する監視制御部を備えることを特徴とする請求項7乃至9のいずれか一項に記載のオペレーティングシステム監視装置。
【請求項11】
入力されたイベント情報と、前記監視スケジューリング情報において前記監視のタイミングとして指定されているイベント種別とが一致した場合に、該監視を実行するように該監視を制御するイベントベース監視制御部を備えることを特徴とする請求項10に記載のオペレーティングシステム監視装置。
【請求項12】
前記監視スケジューリング情報において指定されている優先度に従って、前記監視の順序や周期を調整する優先度ベース監視制御部を備えることを特徴とする請求項10に記載のオペレーティングシステム監視装置。
【請求項13】
前記監視部は、前記監視の要否を示す監視フラグに応じて、該監視を行うか否かについて決定することを特徴とする請求項7乃至12のいずれか一項に記載のオペレーティングシステム監視装置。
【請求項14】
オペレーティングシステム監視装置自身のプログラム及びパラメータの改竄を検知する自己監視部を備えることを特徴とする請求項7〜13のいずれか一項に記載のオペレーティングシステム監視装置。
【請求項15】
前記監視設定情報は、前記監視対象記憶領域のアドレスと、該監視対象記憶領域のサイズと、該監視対象記憶領域に保持される値が取り得る範囲を含み、
前記監視設定情報に基づいて、前記監視対象記憶領域におけるパラメータの正常性を判定するパラメータ監視部を備えることを特徴とする請求項7乃至14のいずれか一項に記載のオペレーティングシステム監視装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【公開番号】特開2008−135004(P2008−135004A)
【公開日】平成20年6月12日(2008.6.12)
【国際特許分類】
【出願番号】特願2007−248044(P2007−248044)
【出願日】平成19年9月25日(2007.9.25)
【出願人】(392026693)株式会社エヌ・ティ・ティ・ドコモ (5,876)
【Fターム(参考)】
【公開日】平成20年6月12日(2008.6.12)
【国際特許分類】
【出願日】平成19年9月25日(2007.9.25)
【出願人】(392026693)株式会社エヌ・ティ・ティ・ドコモ (5,876)
【Fターム(参考)】
[ Back to top ]