(57)【要約】【課題】更新時と動作時の双方において、デバイス内のＯＳの完全性や健全性を安全かつ効率的に監視して正常動作を維持する。【解決手段】ＯＳ監視設定情報生成装置１０は、ＯＳ監視装置３０による監視で用いられる監視設定情報を保持する監視設定情報管理部１２と、監視設定情報管理部１２により保持されている監視設定情報と、バージョン情報と、監視対象ソフトウェアとの対応関係を示すバインド情報とを含む監視設定情報ファイルを生成して出力する監視設定情報出力部１３と、監視設定情報ファイルのデジタル署名を生成して付与するデジタル署名部１４とを備える。【選択図】図１
2008135004.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステム監視装置による監視で用いられる監視設定情報を保持する監視設定情報管理部と、
前記監視設定情報管理部により保持されている前記監視設定情報と、バージョン情報と、監視対象ソフトウェアとの対応関係を示すバインド情報とを含む監視設定情報ファイルを生成して出力する監視設定情報出力部と、
前記監視設定情報ファイルのデジタル署名を生成して付与するデジタル署名部とを備えることを特徴とするオペレーティングシステム監視設定情報生成装置。
【請求項２】
前記監視設定情報は、前記監視対象ソフトウェアのハッシュ値と、該監視対象ソフトウェアが保持されるアドレスと、該監視対象ソフトウェアのサイズとを含むことを特徴とする請求項１に記載のオペレーティングシステム監視設定情報生成装置。
【請求項３】
前記監視設定情報は、前記監視対象記憶領域のアドレスと、該監視対象記憶領域のサイズと、該監視対象記憶領域に保持される値が取り得る範囲とを含むことを特徴とする請求項１に記載のオペレーティングシステム監視設定情報生成装置。
【請求項４】
前記監視設定情報は、前記監視のタイミング、該監視の頻度、該監視の周期の少なくとも１つを指定する監視スケジューリング情報を更に含むことを特徴とする請求項２に記載のオペレーティングシステム監視設定情報生成装置。
【請求項５】
前記監視スケジューリング情報は、前記監視のタイミングとして、該監視対象ソフトウェアの監視を実行する契機となるイベント種別或いは前記オペレーティングシステム監視装置の起動時の少なくとも１つを指定することを特徴とする請求項４に記載のオペレーティングシステム監視設定情報生成装置。
【請求項６】
前記監視スケジューリング情報は、前記監視の頻度として、該監視対象ソフトウェアの監視に関する優先度を指定することを特徴とする請求項４に記載のオペレーティングシステム監視設定情報生成装置。
【請求項７】
オペレーティングシステム上の監視対象ソフトウェアの監視を行うオペレーティングシステム監視装置であって、
オペレーティングシステム監視設定情報生成装置から入力された監視設定情報ファイルに含まれている監視設定情報を利用して、前記監視を行う監視部と、
前記監視対象ソフトウェアが更新される前に、前記監視設定情報ファイルの更新の可否について判定する更新テスト部と、
前記監視設定情報ファイルが更新可能であると判定された場合に、前記監視設定情報ファイルを更新する監視設定情報更新部と、
所定回数以上、前記監視設定情報ファイルの更新に失敗した場合に、該監視設定情報ファイルに対する復旧処理を行う復旧部とを備えることを特徴とするオペレーティングシステム監視装置。
【請求項８】
前記更新テスト部は、前記監視設定情報ファイルと前記監視対象ソフトウェアとの対応関係を示すバインド情報を検査することを特徴とする請求項７に記載のオペレーティングシステム監視装置。
【請求項９】
前記監視設定情報に基づいて前記監視対象ソフトウェアのハッシュ値を算出し、算出した該監視対象ソフトウェアのハッシュ値と該監視設定情報に含まれる前記監視対象ソフトウェアのハッシュ値とを比較し、両者が一致しない場合に、該監視対象ソフトウェアに関する異常が発生したと判定する完全性監視部を備えることを特徴する請求項７又は８に記載のオペレーティングシステム監視装置。
【請求項１０】
監視設定情報に含まれる監視スケジューリング情報に従って、前記監視を制御する監視制御部を備えることを特徴とする請求項７乃至９のいずれか一項に記載のオペレーティングシステム監視装置。
【請求項１１】
入力されたイベント情報と、前記監視スケジューリング情報において前記監視のタイミングとして指定されているイベント種別とが一致した場合に、該監視を実行するように該監視を制御するイベントベース監視制御部を備えることを特徴とする請求項１０に記載のオペレーティングシステム監視装置。
【請求項１２】
前記監視スケジューリング情報において指定されている優先度に従って、前記監視の順序や周期を調整する優先度ベース監視制御部を備えることを特徴とする請求項１０に記載のオペレーティングシステム監視装置。
【請求項１３】
前記監視部は、前記監視の要否を示す監視フラグに応じて、該監視を行うか否かについて決定することを特徴とする請求項７乃至１２のいずれか一項に記載のオペレーティングシステム監視装置。
【請求項１４】
オペレーティングシステム監視装置自身のプログラム及びパラメータの改竄を検知する自己監視部を備えることを特徴とする請求項７〜１３のいずれか一項に記載のオペレーティングシステム監視装置。
【請求項１５】
前記監視設定情報は、前記監視対象記憶領域のアドレスと、該監視対象記憶領域のサイズと、該監視対象記憶領域に保持される値が取り得る範囲を含み、
前記監視設定情報に基づいて、前記監視対象記憶領域におけるパラメータの正常性を判定するパラメータ監視部を備えることを特徴とする請求項７乃至１４のいずれか一項に記載のオペレーティングシステム監視装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、携帯電話やＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）やＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）や情報家電等のデバイス内に配置するオペレーティングシステム監視装置（以下、ＯＳ監視装置）と、オペレーティングシステム（以下、ＯＳ）を監視するための監視設定情報を生成するオペレーティングシステム監視設定情報生成装置（以下、ＯＳ監視設定情報生成装置）に関する。
【背景技術】
【０００２】
従来、携帯電話やＰＣ等のデバイスにおいて、監視対象のＯＳから隔離された環境に配置されたＯＳ監視装置によって、該監視対象のＯＳのメモリやファイルの完全性を監視して、異常時に対処する技術が知られている（特許文献１参照）。
【０００３】
かかるＯＳ監視装置は、メモリやファイルを監視するための監視設定情報（ソフトウェアのバイナリのハッシュ値やアドレスやサイズ等を含む）をポリシーとして保持する。
【０００４】
このように、かかる技術によれば、かかるＯＳ監視装置を、監視対象のＯＳから隔離された環境に配置することで、障害や攻撃から監視対象のＯＳを保護することができる。
【０００５】
一方、パッチ適用や機能追加のために、監視対象ソフトウェアを更新する際、かかる監視対象ソフトウェアに対応する監視設定情報も整合をとって更新する必要がある。
【０００６】
かかる必要性を考慮して、ソフトウェア更新パッケージの署名検証や、デバイス識別情報に基づいてソフトウェア更新パッケージと当該デバイスのソフトウェア構成との適合性を検査する技術が開発されている（特許文献２参照）。
【特許文献１】ＵＳ  ２００５０１３２１２２  Ａ１
【特許文献２】ＵＳ  ６８３２３７３
【特許文献３】ＵＳ  ２００１００１８７１７  Ａ１
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、デバイス内のＯＳの完全性や健全性を安全かつ効率的に監視し、正常動作を維持するにあたり、更新時と動作時（いわゆる、ランタイム）の双方において、以下のような課題がある。
【０００８】
（更新時の課題）
更新時の課題としては、不正な監視設定情報への更新、或いは、更新されたソフトウェアと整合しない監視設定情報への更新を防止することが挙げられる。前者の不正な監視設定情報への更新は、デジタル署名等によって検証できるが、後者を解決するには、以下のような課題がある。
【０００９】
第１の課題は、監視設定情報の更新の失敗による不整合の防止である。
【００１０】
すなわち、ソフトウェアの更新完了後に、当該ソフトウェアに対応する監視設定情報の更新に失敗すると、当該更新後のソフトウェアと当該更新に失敗した監視設定情報との間に不整合が起きるが、当該更新後のソフトウェアを元に戻すのは、ストレージ容量の制約により困難である。
【００１１】
そして、デバイスが、このような不整合状態のまま動作すると、ＯＳ監視装置によって異常が検知され、リセットによって利用不可になったり、機能制限が課されたりする等、ユーザの利便性が低下するという問題点があった。
【００１２】
第２の課題は、デバイス内のソフトウェア環境との不整合の防止である。
【００１３】
すなわち、監視設定情報の生成時に、当該監視設定情報とソフトウェア更新パッケージとの不整合が紛れ込む場合、監視設定情報の更新は成功しても、当該監視設定情報とソフトウェアと間に不整合が起きてしまい、ＯＳ監視装置による監視が失敗するという問題点があった。
【００１４】
また、監視設定情報のみを独立して更新する場合、デバイス内のソフトウェア環境と適合しているかの確認が必要である。そして、デバイス内のソフトウェア環境に適合していないにも関わらず監視設定情報を更新した場合、当該監視設定情報とソフトウェアと間に不整合が起きてしまうという問題点があった。
【００１５】
第３の課題は、古い監視設定情報への置き換え防止である。
【００１６】
すなわち、既に新しい監視設定情報が存在するにも関わらず、当該監視設定情報を古い監視設定情報に置き換えるような攻撃がされた場合、署名検証では、かかる攻撃を検知できず、古いセキュリティポリシーで動作する脅威が存在するという問題点があった。
【００１７】
（動作時の課題）
動作時の課題としては、監視設定情報の更新と効率化の観点から、以下のような課題がある。
【００１８】
第１の課題は、動作時に配置アドレスが決まるソフトウェアの対応である。
【００１９】
すなわち、利用時に動的にロードされるデバイスドライバ等について、ＯＳ監視装置は、当該デバイストライバ等の配置アドレスをＯＳから動作時に通知してもらう必要があるが、危殆化されたＯＳは、偽装する（嘘をつく）可能性があるという問題点があった。
【００２０】
第２の課題は、オーバヘッドの削減である。
【００２１】
すなわち、上述の監視に係るオーバヘッドを削減するに際して、上述の監視による応答性低下やバッテリ消費増への対策と、安全性維持とのトレードオフの関係を考慮する必要がある。
【００２２】
そこで、本発明は、上述の課題に鑑みてなされたものであり、更新時と動作時の双方において、デバイス内のＯＳの完全性や健全性を安全かつ効率的に監視して正常動作を維持することができるＯＳ監視設定情報生成装置及びＯＳ監視装置を提供することを目的とする。
【課題を解決するための手段】
【００２３】
本発明の第１の特徴は、オペレーティングシステム監視設定情報生成装置であって、オペレーティングシステム監視装置による監視で用いられる監視設定情報を保持する監視設定情報管理部と、前記監視設定情報管理部により保持されている前記監視設定情報と、バージョン情報と、監視対象ソフトウェアとの対応関係を示すバインド情報とを含む監視設定情報ファイルを生成して出力する監視設定情報出力部と、前記監視設定情報ファイルのデジタル署名を生成して付与するデジタル署名部とを備えることを要旨とする。
【００２４】
かかる発明によれば、監視設定情報ファイルに対して、監視対象ソフトウェアとの対応関係を示すバインド情報を付加することで、ソフトウェア更新パッケージ又は監視対象ソフトウェアと監視設定情報との間の不整合を防止することができる。
【００２５】
また、かかる発明によれば、監視設定情報ファイルのバージョン情報を付加することで、古い監視設定情報ファイルへの置き換えを防止することができる。
【００２６】
また、かかる発明によれば、デジタル署名を付与することにより、監視設定情報の改竄を防ぎ、ＯＳ監視装置による安全な監視を行うことができる。
【００２７】
さらに、かかる発明によれば、最新の監視設定情報ファイルのバージョンをチェックすることで、古い監視設定情報ファイルへの置き換え攻撃を防止することができる。
【００２８】
本発明の第１の特徴において、前記監視設定情報は、前記監視対象ソフトウェアのハッシュ値と、該監視対象ソフトウェアが保持されるアドレスと、該監視対象ソフトウェアのサイズとを含んでいてもよい。
【００２９】
かかる発明によれば、ＯＳ監視設定情報生成装置は、上述の監視設定情報を、ＯＳ監視装置に提供するため、かかるＯＳ監視装置は、かかる監視設定情報を用いて、ソフトウェアの完全性を検証して異常時に対処を実行することで、デバイスの正常動作を維持することができる。
【００３０】
本発明の第１の特徴において、前記監視設定情報は、前記監視対象記憶領域のアドレスと、該監視対象記憶領域のサイズと、該監視対象記憶領域に保持される値が取り得る範囲とを含んでいてもよい。
【００３１】
かかる発明によれば、ＯＳ監視設定情報生成装置は、上述の監視設定情報を、ＯＳ監視装置に提供するため、ＯＳ監視装置は、かかる監視設定情報を用いて、監視対象パラメータ（監視対象記憶領域におけるパラメータ）が正常の値を取っているか或いは改竄されていないかについて検査することで、デバイスの正常動作を維持することができる。
【００３２】
本発明の第１の特徴において、前記監視設定情報は、前記監視のタイミング、該監視の頻度、該監視の周期の少なくとも１つを指定する監視スケジューリング情報を更に含んでいてもよい。
【００３３】
かかる発明によれば、ＯＳ監視装置は、上述の監視スケジューリング情報を用いて、上述の監視を適切にスケジューリングすることで、効率的かつ十分に安全な監視を実行することができる。
【００３４】
本発明の第１の特徴において、前記監視スケジューリング情報は、前記監視のタイミングとして、該監視対象ソフトウェアの監視を実行する契機となるイベント種別或いは前記オペレーティングシステム監視装置の起動時の少なくとも１つを指定していてもよい。
【００３５】
かかる発明によれば、ＯＳ監視装置は、上述の監視スケジューリング情報を用いて、特定のイベントが起きたときのみ、或いは、ＯＳ監視装置の起動時のみ、当該監視対象ソフトウェアを監視することにより、上述の監視によるオーバヘッドを削減し、効率的な監視を実行することができる。
【００３６】
本発明の第１の特徴において、前記監視スケジューリング情報は、前記監視の頻度として、該監視対象ソフトウェアの監視に関する優先度を指定していてもよい。
【００３７】
かかる発明によれば、ＯＳ監視装置は、重要な監視対象ソフトウェア或いは攻撃されやすい監視対象ソフトウェアに高い優先度を与えることで、このようなソフトウェアを高頻度で監視して、安全性を保証しつつ、優先度の低いソフトウェアの監視頻度を削減して、効率化を図ることができる。
【００３８】
本発明の第２の特徴は、オペレーティングシステム上の監視対象ソフトウェアの監視を行うオペレーティングシステム監視装置であって、オペレーティングシステム監視設定情報生成装置から入力された監視設定情報ファイルに含まれている監視設定情報を利用して、前記監視を行う監視部と、前記監視対象ソフトウェアが更新される前に、前記監視設定情報ファイルの更新の可否について判定する更新テスト部と、前記監視設定情報ファイルが更新可能であると判定された場合に、前記監視設定情報ファイルを更新する監視設定情報更新部と、所定回数以上、前記監視設定情報ファイルの更新に失敗した場合に、該監視設定情報ファイルに対する復旧処理を行う復旧部とを備えることを要旨とする。
【００３９】
かかる発明によれば、ＯＳ監視装置は、監視設定情報の更新可否を判定する事前テストを行った後に、監視対象ソフトウェア及び監視設定情報ファイルの更新を行うことにより、監視対象ソフトウェア及び監視設定情報の更新時の障害による不整合防止に対処することができる。
【００４０】
本発明の第２の特徴において、前記更新テスト部は、前記監視設定情報ファイルと前記監視対象ソフトウェアとの対応関係を示すバインド情報を検査してもよい。
【００４１】
かかる発明によれば、監視設定情報の更新可否を判定する事前テストの際には、ソフトウェア更新パッケージ又は監視対象ソフトウェアとのバインド情報を検査することで、監視設定情報とソフトウェアとの間の不整合が起きることを防止することができる。
【００４２】
また、かかる発明によれば、監視設定情報のみの更新の際も、デバイス側に保存されている監視対象ソフトウェアとの整合を検査して、監視設定情報とソフトウェアとの間の不整合が起きることを防止することができる。
【００４３】
本発明の第２の特徴において、前記監視設定情報に基づいて前記監視対象ソフトウェアのハッシュ値を算出し、算出した該監視対象ソフトウェアのハッシュ値と該監視設定情報に含まれる前記監視対象ソフトウェアのハッシュ値とを比較し、両者が一致しない場合に、該監視対象ソフトウェアに関する異常が発生したと判定する完全性監視部を備えていてもよい。
【００４４】
かかる発明によれば、悪意のソフトウェアによる監視対象ソフトウェアの改竄や消去を検知して対処することで、正常動作を維持することができる。
【００４５】
本発明の第２の特徴において、監視設定情報に含まれる監視スケジューリング情報に従って、前記監視を制御する監視制御部を備えていてもよい。
【００４６】
かかる発明によれば、上述の監視を適切にスケジューリングすることで、効率的かつ安全な監視を実行することができる。
【００４７】
本発明の第２の特徴において、入力されたイベント情報と、前記監視スケジューリング情報において前記監視のタイミングとして指定されているイベント種別とが一致した場合に、該監視を実行するように該監視を制御するイベントベース監視制御部を備えていてもよい。
【００４８】
かかる発明によれば、特定のイベントが起きたときのみ、監視対象ソフトウェアを監視することにより、上述の監視によるオーバヘッドを削減して、効率的な監視を実行することができる。
【００４９】
本発明の第２の特徴において、前記監視スケジューリング情報において指定されている優先度に従って、前記監視の順序や周期を調整する優先度ベース監視制御部を備えていてもよい。
【００５０】
かかる発明によれば、重要な監視対象ソフトウェア或いは攻撃されやすい監視対象ソフトウェアに高い優先度を与えることで、ＯＳ監視装置は、このようなソフトウェアを高頻度で監視して、安全性を保証しつつ、優先度の低いソフトウェアの監視頻度を削減して、効率化を図ることができる。
【００５１】
本発明の第２の特徴において、前記監視部は、前記監視の要否を示す監視フラグに応じて、該監視を行うか否かについて決定してもよい。
【００５２】
かかる発明によれば、監視部における監視機能に不具合があった場合に、遠隔から当該監視機能をオフにし、当該監視機能を修正した後、オンにする等の対応が可能となる。
【００５３】
また、かかる発明によれば、監視設定情報の更新に失敗した場合にも、当該監視機能をオフにて起動して、デバイスの利用可能性を確保することができる。
【００５４】
本発明の第２の特徴において、オペレーティングシステム監視装置自身のプログラム及びパラメータの改竄を検知する自己監視部を備えていてもよい。
【００５５】
かかる発明によれば、ＯＳ監視装置自身を攻撃から守り、安全な監視を行うことができる。
【００５６】
本発明の第２の特徴において、前記監視設定情報は、前記監視対象記憶領域のアドレスと、該監視対象記憶領域のサイズと、該監視対象記憶領域に保持される値が取り得る範囲を含み、前記監視設定情報に基づいて、前記監視対象記憶領域におけるパラメータの正常性を判定するパラメータ監視部を備えていてもよい。
【００５７】
かかる発明によれば、監視対象パラメータ（監視対象記憶領域におけるパラメータ）が正常の値を取っているか或いは改竄されていないかについて検査して、デバイスの正常動作を維持することができる。
【発明の効果】
【００５８】
以上説明したように、本発明によれば、更新時と動作時の双方において、デバイス内のＯＳの完全性や健全性を安全かつ効率的に監視して正常動作を維持することができるＯＳ監視設定情報生成装置及びＯＳ監視装置を提供することができる。
【発明を実施するための最良の形態】
【００５９】
（本発明の第１の実施形態に係るＯＳ監視設定情報生成装置及びＯＳ監視装置の構成）
図１乃至図６を参照して、本発明の第１の実施形態に係るＯＳ監視設定情報生成装置１０及びＯＳ監視装置３０の構成について説明する。
【００６０】
図１に示すように、本実施形態に係るＯＳ監視設定情報生成装置１０は、監視設定情報入力部１１と、監視設定情報管理部１２と、監視設定情報出力部１３と、デジタル署名部１４とを具備する。
【００６１】
本実施形態では、ＯＳ監視設定情報生成装置１０を、ソフトウェアにて実装することを想定しているが、その一部或いは全体をハードウェアにて実装してもよい。
【００６２】
ＯＳ監視設定情報生成装置１０としては、デバイスのソフトウェア更新パッケージを生成するツールと共に利用されるツールを想定している。なお、ＯＳ監視設定情報生成装置１０自身が、ソフトウェア更新パッケージを生成する機能を備えてもよい。
【００６３】
監視設定情報入力部１１は、外部からの入力や計算によって、監視対象ソフトウェアに対応する監視設定情報を取得するように構成されている。
【００６４】
図２及び図３に、かかる監視設定情報の具体例を示す。
【００６５】
図２は、監視対象ソフトウェアの完全性を監視するための監視設定情報である。図２に示すように、かかる監視設定情報は、監視対象ソフトウェアの識別子と、当該監視対象ソフトウェアのハッシュ値と、当該監視対象ソフトウェアが保持されるアドレスと、当該監視対象ソフトウェアのサイズと、監視スケジューリング情報を含む。
【００６６】
ここで、監視対象ソフトウェアの識別子は、当該監視対象ソフトウェアの識別番号でもよいし、当該監視対象ソフトウェアを構成するファイルを識別するための文字列（例えば、ファイル名）でもよい。
【００６７】
また、監視対象ソフトウェアが保持されるアドレスとは、フラッシュＲＯＭ（フラッシュメモリ）上で直接実行される場合は、かかるフラッシュＲＯＭ上に格納されている監視対象ソフトウェアのバイナリのアドレスを示す。
【００６８】
なお、かかるアドレスは、監視対象ソフトウェアを監視するために用いられるアドレスであるため、監視対象ソフトウェア（プログラム）の先頭アドレス（実行のための開始アドレス）であってもよいし、プログラムの途中のアドレスであってもよい。
【００６９】
また、監視対象ソフトウェアのハッシュ値は、図２の例では、アドレス「０ｘａ０００」からサイズ「４ＫＢ」の範囲の監視対象ソフトウェア（プログラム）に対して、ＳＨＡ１アルゴリズムを用いて１６０ビットの値として計算されるものである。
【００７０】
また、監視スケジューリング情報は、上述の監視のタイミング、当該監視の頻度、当該監視の周期の少なくとも１つを指定するものである。
【００７１】
例えば、監視スケジューリング情報は、当該監視のタイミングの指定として、当該監視対象ソフトウェアの監視を実行する契機となるイベント種別や、ＯＳ監視装置３０の起動時等の指定を含んでもよい。
【００７２】
また、監視スケジューリング情報は、当該監視の頻度の指定として、当該監視対象ソフトウェアの監視に関する優先度の指定を含んでもよい。
【００７３】
なお、図２の例では、上述のイベント種別として、「電話発信時」が指定されている。
【００７４】
また、図３は、監視対象パラメータの正常性を監視するための監視設定情報である。図３に示すように、かかる監視設定情報は、監視対象記憶領域のアドレスと、当該監視対象記憶領域のサイズと、当該監視対象記憶領域に保持される値が取り得る範囲（正常値の範囲）を含む。
【００７５】
本実施形態において、かかる監視対象記憶領域としては、ＲＡＭやフラッシュＲＯＭ等を想定する。
【００７６】
図３の例では、「０ｘａ０００」を始点とした４バイトのメモリ領域におけるパラメータは、「１〜１００」の値が正常値であり、それ以外の値が設定されている場合、異常であると判定される。
【００７７】
なお、正常値の範囲は、「１０、２０、３０」等といった離散的な値で指定されていてもよいし、「０でない」や「１０〜１５の範囲でない」等といった異常値を指定してそれ以外が正常値の範囲であるという形で指定されていてもよい。
【００７８】
監視設定情報入力部１１は、所定の設定ファイルから当該監視設定情報を取得するように構成されていてもよいし、管理者やオペレータによるキーボードやマウス等を用いた入力を介して当該監視設定情報を取得するように構成されていてもよい。
【００７９】
さらに、監視設定情報入力部１１は、監視対象ソフトウェアのファイルやソフトウェア更新パッケージを入力して、自身で、監視対象ソフトウェアのハッシュ値やサイズを計算して、かかる計算結果を監視設定情報として取得するように構成されていてもよい。
【００８０】
なお、監視対象ソフトウェアのハッシュ値は、ＳＨＡ-１やＳＨＡ-２５６やＭＤ５等の任意の一方向ハッシュ関数を用いて計算されてもよい。
【００８１】
監視設定情報管理部１２は、複数の監視対象ソフトウェアに対応する監視設定情報を保持するように構成されている。
【００８２】
監視設定情報管理部１２は、監視設定情報入力部１１により取得された監視設定情報を、メモリやファイルシステムに、表形式やリスト形式等の任意の形式で保持するように構成されている。
【００８３】
なお、監視設定情報管理部１２は、監視設定情報入力部１１により取得された監視設定情報に含まれている監視対象ソフトウェアの識別子と同一の監視対象ソフトウェアの識別子を含む監視設定情報を既に保持している場合、新たに取得した監視設定情報への更新（上書き）を行うように構成されている。
【００８４】
また、監視設定情報管理部１２は、監視設定情報入力部１１を介して、所定の監視設定情報の削除要求を受け付けるように構成されていてもよい。
【００８５】
さらに、監視設定情報管理部１２は、監視設定情報の種別として、図２及び図３に示す監視設定情報を混在して管理するように構成されていてもよい。
【００８６】
監視設定情報出力部１３は、監視設定情報管理部１２により保持されている１つ以上の監視設定情報と、バージョン情報と、監視対象ソフトウェアとの対応関係を示すバインド情報とを含む監視設定情報ファイルを生成して出力するように構成されている。
【００８７】
ここで、バージョン情報は、監視設定情報ファイルのバージョンを示すものであり、管理者やオペレータによる入力に基づいて決定されるものであってもよいし、監視設定情報出力部１３によって以前の監視設定情報ファイルの次を示す番号として決定されてもよい。
【００８８】
例えば、バインド情報は、ソフトウェア更新パッケージのバージョン情報や、ソフトウェア更新パッケージの識別子や、監視対象ソフトウェアのバージョン情報である。
【００８９】
また、監視対象ソフトウェアのバージョン情報は、所定のパッチや機能追加等のソフトウェア更新パッケージが適用された後の監視対象ソフトウェア全体としてのバージョン情報である。
【００９０】
図４に、監視設定情報ファイルの構成を示し、図５に、かかる監視設定情報ファイルの具体例を示す。
【００９１】
図５の例では、監視設定情報ファイルのバージョン情報として「Ｖｅｒ.  １.０３」が指定されており、バインド情報として当該監視設定情報ファイルに対応するソフトウェア更新パッケージのバージョン情報「２．１２」が指定されている。
【００９２】
なお、監視設定情報ファイルは、バイナリ形式であってもよいし、アスキー形式であってもよい。また、監視設定情報ファイルは、容量削減のため、圧縮されていてもよい。
【００９３】
デジタル署名部１４は、監視設定情報ファイルのデジタル署名を生成して付与するように構成されている。
【００９４】
ここで、デジタル署名は、監視設定情報ファイルと別ファイルであってもよいし、合体して1つのファイルとなっていてもよい。
【００９５】
図４に、デジタル署名付きの監視設定情報ファイルの構成を示す。
【００９６】
デジタル署名の方式は、ＲＳＡ方式であってもよいし、ＥｌＧａｍｅｌ方式やＤＳＡ方式やＲａｂｉｎ方式等の任意の方式であってもよい。
【００９７】
ただし、デジタル署名の有効性を維持するため、デジタル署名を実行する際の秘密鍵は、ＯＳ監視設定情報生成装置１０の管理者（例えば、デバイスメーカ）が厳重に管理し、決して外部に漏らすことがないようにしなければならない。
【００９８】
図１に示すように、本実施形態に係るＯＳ監視装置３０は、ＯＳ上の監視対象ソフトウェアの監視を行うように構成されている。
【００９９】
具体的には、ＯＳ監視装置３０は、更新テスト部３１と、監視設定情報更新部３２と、監視設定情報ファイル入力部３３と、署名検証部３４と、復旧部３５と、監視設定情報管理部３６と、監視部３７と、異常時対処部３８と、自己監視部３９と、監視フラグ管理部４０と、パラメータ監視部４１と、完全性監視部４２と、監視制御部４３と、イベント入力部４４と、イベントベース監視制御部４５と、優先度ベース監視制御部４６とを具備している。
【０１００】
本実施形態では、ＯＳ監視装置３０の各部は、ハードウェア又はソフトウェアのいずれで実装されていてもよい。
【０１０１】
図６に、本実施形態に係るＯＳ監視装置３０を含むデバイスの構成図を示す。本実施形態では、ＯＳ監視装置３０は、監視対象のＯＳから隔離された領域（ドメイン）で実行されるソフトウェアを想定する。
【０１０２】
ここで、同一のＣＰＵ上で、ドメインを隔離する手段として、図６（ａ）に示すように、Ｘｅｎ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ（http://www.cl.cam.ac.uk/Research/SRG/netos/xen/）等の仮想マシンモニタ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ）に基づくドメイン分離技術を使ってもよいし、図６（ｂ）に示すように、ＡＲＭ社のＴｒｕｓｔＺｏｎｅのようなハードウェアレベルのドメイン分離技術を使ってもよい。
【０１０３】
また、図６（ｃ）に示すように、ＯＳを実行するＣＰＵと別のＣＰＵ上で、ＯＳ監視装置３０を実行することで、ドメインを隔離してもよい。
【０１０４】
ＯＳ監視装置３０は、ＯＳと並行して動作して、上述の監視を実行することができるものとする。
【０１０５】
更新テスト部３１は、監視対象ソフトウェアが更新される前に、当該監視対象ソフトウェアに対応する監視設定情報ファイルの更新の可否について判定する更新テストを行うように構成されている。
【０１０６】
更新テストの例として、監視設定情報ファイルのデジタル署名の検証や、監視設定情報ファイルとソフトウェア更新パッケージ或いは監視対象ソフトウェアとのバインド情報の検査や、書き換え領域の空き容量の検査や、書き換え可否の検査等が挙げられる。
【０１０７】
かかる更新テストが失敗した場合、監視対象ソフトウェアと同期して監視設定情報ファイルを更新することができないため、当該監視対象ソフトウェアの更新手順は中止される。
【０１０８】
監視設定情報更新部３２は、監視設定情報ファイルが更新可能であると判定された場合に、当該監視設定情報ファイルを更新するように構成されている。
【０１０９】
この際、監視設定情報更新部３２は、監視設定情報ファイルのバージョン情報を記録しておくことによって、監視設定情報ファイル入力部３３が、当該バージョン情報を検査することができるようにする。
【０１１０】
ここで、監視設定情報更新部３２は、かかるバージョン情報を安全に保持するために、セキュアストレージ機能を利用してもよい。
【０１１１】
例えば、ＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）等のハードウェアベースのセキュリティチップの多くが、かかるセキュアストレージ機能を提供している。
【０１１２】
当該監視設定情報ファイルの更新が成功した場合は、監視設定情報更新部３２は、かかる更新手順を完了する。
【０１１３】
一方、当該監視設定情報ファイルの更新が失敗した場合、監視設定情報更新部３２は、当該監視設定情報ファイルの更新について再試行（リトライ）し、所定回数（リトライ回数の上限）を超えて失敗した場合、復旧部３５を呼び出す。
【０１１４】
なお、上述の監視設定情報ファイルがダウンロードされるタイミングは、ソフトウェア更新パッケージのダウンロードと一緒であってもよいし、独立であってもよい。
【０１１５】
また、上述の監視設定情報ファイルをダウンロードする主体は、監視設定情報更新部３２であってもよいし、デバイス内のソフトウェア更新モジュール等のモジュールであってもよい。
【０１１６】
ダウンロードされた後、監視設定情報ファイルは、フラッシュメモリやハードディスクやＳＤメモリカード等の外部ストレージ等といった任意のストレージ手段によってデバイス内に保存される。
【０１１７】
以下に、監視設定情報ファイルのダウンロードの具体例について示す。
【０１１８】
第１の例によれば、デバイスのソフトウェア更新モジュールが、無線ネットワークを通じて、監視設定情報ファイルやソフトウェア更新パッケージを保持するデバイス管理サーバから、ソフトウェア更新パッケージと一緒に、監視設定情報ファイルをデバイスにダウンロードしてフラッシュメモリに書き込む。
【０１１９】
その後、デバイスのソフトウェア更新モジュールが、ソフトウェアの更新を行う前に、ＯＳ監視装置３０を呼び出し、更新テスト部３１による監視設定情報の更新テストを実行させた後、当該ソフトウェアの更新を行う。
【０１２０】
第２の例によれば、デバイスのソフトウェア更新モジュールが、ＵＳＢ接続経由で、ＰＣから、ソフトウェア更新パッケージをデバイスにダウンロードし、その後、監視設定情報ファイルをデバイスにダウンロードする。
【０１２１】
その後、デバイスのソフトウェア更新モジュールが、ソフトウェアの更新を行う前に、ＯＳ監視装置３０を呼び出し、更新テスト部３１による監視設定情報の更新テストを実行させた後、当該ソフトウェアの更新を行う。
【０１２２】
第３の例によれば、ＯＳ監視装置３０の監視設定情報更新部３２が、無線ネットワークを通じて、監視設定情報ファイルを保持するサーバから、監視設定情報ファイルをダウンロードして、監視設定情報ファイルのみを更新する。
【０１２３】
なお、監視設定情報更新部３２は、定期的に当該サーバに監視設定情報ファイルの更新の有無を照会してもよいし、当該サーバからプッシュ通信により監視設定情報ファイルの更新を通知してもらってもよい。
【０１２４】
監視設定情報ファイル入力部３３は、ＯＳ監視装置３０の起動時に、監視設定情報ファイルの有無及びバージョン情報を検査し、上述のストレージ手段から、該当する監視設定情報ファイルを取得するように構成されている。
【０１２５】
ここで、監視設定情報ファイルは、ＯＳ監視設定情報生成装置１０によって生成されたファイルであり、ネットワーク経由やケーブル経由で、デバイスにダウンロードされ、監視設定情報更新部３２によってフラッシュメモリ等のストレージ手段に書き込みされているものとする。
【０１２６】
監視設定情報ファイル入力部３３は、上述の検査によって、該当する監視設定情報ファイルが存在しないと判定した場合や、該当する監視設定情報ファイルのバージョン情報が想定のバージョン情報と異なる場合（古いバージョン情報等）、異常であると判定し、復旧部３５を呼び出す。
【０１２７】
このとき、監視設定情報ファイル入力部３３は、上述のバインド情報を検査して、かかる監視設定情報ファイルが現状の監視対象ソフトウェアと整合しているか否かについて判定してもよい。ここで、整合していないと判定した場合、監視設定情報ファイル入力部３３は、復旧部３５を呼び出す。
【０１２８】
署名検証部３４は、監視設定情報ファイルに付与されたデジタル署名を検証するように構成されている。
【０１２９】
署名検証部３４は、かかるデジタル署名の検証に失敗した場合、当該監視設定情報ファイルは不正なものであると判断して、復旧部３５を呼び出す。
【０１３０】
ここで、デジタル署名は、予めセキュリティポリシーによって決められた信頼されたパーティによるものでなければならず、例えば、デバイスメーカや通信キャリア等によって署名がなされるものとする。
【０１３１】
また、署名を検証する際の公開鍵は、安全に保存されているのが望ましく、例えば、書き換え不能なマスクＲＯＭやセキュアストレージに保存することで安全性を向上できる。
【０１３２】
署名検証部３４は、主に、ＯＳ監視装置３０の起動時に実行されることを想定しているが、起動が完了した後の実行中に実行されてもよい。
【０１３３】
復旧部３５は、監視設定情報ファイルに関する異常発生時に、当該監視設定情報ファイルに対する復旧処理を行うように構成されている。
【０１３４】
具体的には、復旧部３５は、所定回数（リトライ回数の上限）以上、監視設定情報ファイルの更新に失敗した場合に、当該監視設定情報ファイルに対する復旧処理を行う。
【０１３５】
かかる復旧処理として、デバイスを再起動してソフトウェア更新モジュールや監視設定情報更新部３２に対して、再度、監視設定情報ファイルをダウンロードさせて、当該監視設定情報ファイルの更新を試みることが考えられる。
【０１３６】
或いは、かかる復旧処理として、外部ストレージ等に退避された監視設定情報ファイルを利用することも考えられる。
【０１３７】
復旧部３５は、これらの復旧処理を用いても、当該監視設定情報ファイルの復旧が不可能であると判断した場合、監視フラグ管理部４０を呼び出して、監視フラグをオフにする。
【０１３８】
監視設定情報管理部３６は、監視設定情報ファイルに含まれている監視設定情報を保持するように構成されている。
【０１３９】
監視設定情報管理部３６は、ＯＳ監視装置３０の起動手順時に、監視部３７による監視処理が行われ易いように、メモリに当該監視情報を展開したり、当該監視情報を構成するファイルが圧縮されている場合には当該ファイルの伸張を行ったりする。
【０１４０】
監視部３７は、上述の監視設定情報を利用して、監視対象ソフトウェアの監視を行い、異常の際には異常時対処部３８を呼び出すように構成されている。
【０１４１】
監視部３７は、ＯＳ監視装置３０の起動時に、監視設定情報管理部３６から監視設定情報を読み出し、必要に応じて初期化を行った後、上述の監視を開始する。
【０１４２】
なお、監視部３７は、上述の監視の要否を示す監視フラグに応じて、当該監視を行うか否かについて決定する。すなわち、監視部３７は、監視フラグ管理部４０により管理されている監視フラグがオフの場合には、上述の監視を停止する。
【０１４３】
監視部３７は、サブシステムとして、完全性監視部４２及びパラメータ監視部４１を備えている。
【０１４４】
本実施形態では、監視方法として、完全性監視部４２による監視対象ソフトウェア（又は、監視対象データ）の完全性の監視や、パラメータ監視部４１による監視対象パラメータの正常性の監視が実行されることを想定しているが、ペリフェラルの入出力の監視等といった別の監視方法が実行されてもよい。
【０１４５】
監視部３７は、ＯＳ監視装置３０の実行時に、監視制御部４３から、所定ソフトウェアの監視要求を受け付け、当該所定ソフトウェアの監視方法を、監視設定情報等を利用して選択し、必要に応じて完全性監視部４２等を呼び出して当該監視を行う。
【０１４６】
異常時対処部３８は、監視部３７により異常が検知された際に呼び出され、かかる異常への対処を行うように構成されている。
【０１４７】
具体的には、異常時対処部３８は、当該異常が発生したことをユーザに通知するための画面表示や、実行中のトランザクションの中止や、再起動の実行や、退避していたソフトウェアやデータによる復旧や、指定のサーバへの異常の通知や、ユーザの権限の制限等などを行う。
【０１４８】
また、異常時対処部３８は、異常種別（改竄や消去や不正アクセス）や監視対象ソフトウェアや監視対象パラメータに対応した対処法を保持し、異常種別等によって対処法を変えてもよい。
【０１４９】
自己監視部３９は、ＯＳ監視装置３０自身のプログラム及びパラメータの改竄を検知するように構成されている。
【０１５０】
自己監視部３９を保護するために、ＯＳ監視装置３０の各部とは隔離されたハードウェアによるセキュアな実行環境で自己監視部３９を実行してもよい。
【０１５１】
自己監視部３９は、周期的に、ＯＳ監視装置３０を監視してもよいし、監視対象ソフトウェアの監視の実行前や、デバイスがアイドル状態である場合等といった所定のイベントや状態を契機に、ＯＳ監視装置３０を監視してもよい。
【０１５２】
監視フラグ管理部４０は、外部から監視の要否を設定する監視フラグの設定要求を受け取り保持するように構成されている。
【０１５３】
例えば、監視フラグ管理部４０は、無線ネットワークを通じて遠隔のデバイス管理サーバから監視フラグの設定要求を受け取ったり、ケーブル接続されたデバイス管理ツールから監視フラグの設定要求を受け取ったりすることが考えられる。
【０１５４】
監視フラグ管理部４０は、かかる監視フラグに関する情報を安全に保持するために、セキュアストレージ機能を利用してもよい。 
パラメータ監視部４１は、監視部３７のサブシステムであり、上述の監視設定情報に基づいて、監視対象パラメータの正常性を検査して、異常発生の有無と判定するように構成されている。
【０１５５】
具体的には、パラメータ監視部４１は、監視設定情報に含まれる監視対象記憶領域のアドレスと監視対象記憶領域のサイズと監視対象記憶領域に保持される値が取り得る範囲（正常値の範囲）とに従って、監視対象パラメータの正常性を検査し、監視対象パラメータが正常値の範囲内にない場合に、異常発生と判定して、異常時対処部を呼び出す。
【０１５６】
なお、監視対象パラメータは、監視対象ソフトウェアに関するパラメータであってもよいし、その他のパラメータであってもよい。
【０１５７】
完全性監視部４２は、監視部３７のサブシステムであり、監視設定情報（監視対象ソフトウェアが保持されるアドレス及び監視対象ソフトウェアのサイズ）に従って、監視対象ソフトウェア（メモリ或いはファイル）のハッシュ値を計算し、算出した当該監視対象ソフトウェアのハッシュ値と当該監視設定情報に含まれる監視対象ソフトウェアのハッシュ値とを比較し、両者が一致しない場合に、当該監視対象ソフトウェアに関する異常が発生したと判定し、異常時対処部３８を呼び出すように構成されている。
【０１５８】
完全性監視部４２は、周期的に、或いは、所定イベントの生起時に、呼び出されることが想定されている。なお、完全性監視部４２は、電力消費削減のために、ＯＳがサスペンドしている際には監視動作を停止し、ＯＳがレジュームして動作を開始した際に監視を再開してもよい。
【０１５９】
監視制御部４３は、上述の監視設定情報に含まれる監視スケジューリング情報に従って、監視対象ソフトウェア（又は、監視対象記憶領域や監視対象パラメータ等を含む）の監視を制御するように構成されている。
【０１６０】
具体的には、監視制御部４３は、監視設定情報に含まれる監視スケジューリング情報によって指定される当該監視のタイミング、当該監視の頻度、当該監視の周期の少なくとも１つに従って、監視部３７を呼び出して、上述の監視を実行させるように構成されている。
【０１６１】
例えば、監視制御部４３は、１分周期で、監視部３７（又は、完全性監視部４２）を呼び出して、監視対象ソフトウェアの完全性の検証を実行させるように構成されてもよいし、所定時刻に、監視部３７（又は、パラメータ監視部４１）を呼び出して、監視対象パラメータの正常性の検証を実行させるように構成されていてもよいし、ＯＳ監視装置３０の起動時に、監視部３７を呼び出して、上述の検証を実行させるように構成されていてもよい。
【０１６２】
また、監視制御部４３は、指定期間や指定回数だけ、上述の監視を実行したら、当該監視を停止するように、監視部３７を制御してもよい。
【０１６３】
監視制御部４３は、サブシステムとして、優先度ベース監視制御部４６及びイベントベース監視制御部４５を備え、監視設定情報に基づいて、必要に応じて、優先度ベース監視制御部４６やイベントベース監視制御部４５を呼び出す。
【０１６４】
イベント入力部４４は、監視対象のＯＳやペリフェラル等の外部から、所定のイベントを示すイベント情報を受け付けるように構成されている。
【０１６５】
かかるイベントの例として、電話発信や、外部ストレージへのデータ書き込みや、電子商取引のトランザクションの実行や、折りたたみ型電話機の開閉や、特定キーの押下等が想定される。
【０１６６】
なお、ＯＳが、上述のイベントが発生した場合に、ＯＳ監視装置３０に対して当該イベントを示すイベント情報を通知する機能を備えており、ペリフェラルが、ＯＳ監視装置３０に対して割り込みを発生する機能を備えることを想定している。
【０１６７】
イベントベース監視制御部４５は、監視制御部４３のサブシステムであり、入力されたイベント情報と、上述の監視スケジューリング情報において上述の監視のタイミングとして指定されているイベント種別とが一致した場合に、監視部３７を呼び出して上述の監視を実行させるように構成されている。
【０１６８】
例えば、所定イベントして電話発信が発生した際に、イベントベース監視制御部４５は、完全性監視部４２を呼び出し、かかる電話発信を監視のタイミングとして指定する監視対象ソフトウェアの完全性の検証を実行する。
【０１６９】
優先度ベース監視制御部４６は、監視制御部４３のサブシステムであり、監視スケジューリング情報で指定されている優先度に従って、上述の監視対象ソフトウェアの監視の順序や周期を調整するように構成されている。
【０１７０】
（本発明の第１の実施形態に係るＯＳ監視設定情報生成装置及びＯＳ監視装置の動作）
図７を参照して、本発明の第１の実施形態に係るＯＳ監視設定情報生成装置１０の動作について説明し、図８乃至図２３を参照して、本発明の第１の実施形態に係るＯＳ監視装置３０の動作について説明する。
【０１７１】
第１に、図７を参照して、本実施形態に係るＯＳ監視設定情報生成装置１０が監視設定情報を生成する動作について説明する。
【０１７２】
図７に示すように、ＯＳ監視設定情報生成装置１０は、ステップＳ１００において起動し、ステップＳ１０１において各種の初期化処理を行う。
【０１７３】
ステップＳ１０２において、監視設定情報入力部１１が、特定のフォルダ内の複数の設定ファイルから監視設定情報を取得する。
【０１７４】
ここでは、１つの監視対象ソフトウェアに対応する監視設定情報が、１つの設定ファイルに保存されており、監視設定情報入力部１１が、複数の設定ファイルを取得して、複数の監視対象ソフトウェアに対応する監視設定情報を取得することを想定している。
【０１７５】
なお、図７に示すフローチャートでは、監視設定情報入力部１１は、設定ファイルから監視設定情報を取得しているが、キーボードやマウス等を用いてオペレータにより入力された監視設定情報を取得してもよいし、監視対象ソフトウェアを構成するファイルを取得して監視対象ソフトウェアのハッシュ値やサイズを計算してもよい。
【０１７６】
ステップＳ１０３において、必要な全ての監視設定情報が入力された場合、ステップＳ１０４において、監視設定情報管理部１２は、監視設定情報入力部１１により取得された複数の監視設定情報をメモリやファイルシステムに保持する。
【０１７７】
監視設定情報出力部は、ステップＳ１０５において、監視設定情報ファイルのバージョン情報を決定し、ステップＳ１０６において、監視対象ソフトウェア（又は、ソフトウェア更新パッケージ）との対応関係を示すバインド情報を生成し、ステップＳ１０７において、監視設定情報管理部１２により保持されている１つ以上の監視設定情報とバージョン情報とバインド情報とを含む監視設定情報ファイルを生成して出力する。 
ステップＳ１０８において、デジタル署名部１４は、上述の監視設定情報ファイルのデジタル署名を生成して付与する。この後、かかるデジタル署名付きの監視設情報ファイルは、デバイス管理サーバやソフトウェア更新ツールのＰＣに保存される。
【０１７８】
第２に、図８を参照して、ＯＳ監視装置３０が、監視対象ソフトウェアが更新される際に、監視設定情報を更新する動作について説明する。
【０１７９】
図８に示すように、ステップＳ２０１において、監視対象ソフトウェアを更新する前に、更新テスト部３１が、監視設定情報の更新可否を判定する更新テストを行う。
【０１８０】
かかる更新テストには、監視設定情報に付与されたデジタル署名の検証や、バインド情報の検査や、書き換え領域の空き容量の検査や、書き換え可否の検査等が含まれる。
【０１８１】
ステップＳ２０２において、かかる更新テストが失敗した場合、監視対象ソフトウェアの更新と同期して監視設定情報ファイルの更新ができないため、監視対象ソフトウェアの更新を中止し、本動作は終了する。
【０１８２】
一方、ステップＳ２０２において、かかる更新テストが成功した場合、ステップＳ２０３において、デバイスが備えるソフトウェア更新機能が、ソフトウェア更新パッケージによるソフトウェアの更新を実行する。なお、ステップＳ２０３において、ソフトウェア更新パッケージ及び監視設定情報ファイルが一括して更新されてもよい。かかる場合、ステップＳ２０５及びＳ２０６の処理は不要となる。
【０１８３】
ステップＳ２０４において、かかるソフトウェアの更新が失敗した場合も、監視対象ソフトウェアの更新と同期して監視設定情報ファイルの更新ができないため、本動作は終了する。
【０１８４】
ステップＳ２０４において、ソフトウェア更新パッケージによる監視対象ソフトウェアの更新が成功した場合、ステップＳ２０５において、監視設定情報更新部３２は、かかる監視対象ソフトウェアに対応する監視設定情報ファイルの更新を実行する。
【０１８５】
ステップＳ２０６において、かかる監視設定情報ファイルの更新が成功した場合、ステップＳ２０７において、監視設定情報更新部３２は、監視設定情報ファイルのバージョン情報を記録し、ＯＳ監視装置３０の起動時に、監視設定情報ファイル入力部３３が、かかるバージョン情報を検査することができるようにする。
【０１８６】
一方、ステップＳ２０６において、かかる監視設定情報ファイルの更新が失敗した場合、監視設定情報更新部３２は、かかる監視設定情報ファイルの更新についてリトライする。
【０１８７】
ステップＳ２０６において、かかる監視設定情報ファイルの更新が、所定回数（リトライ回数の上限）を超えて失敗した場合、監視設定情報更新部３２は、かかる監視を不要とするために、監視フラグをオフにするように監視フラグ管理部４０に指示すると共に、復旧部３５を呼び出す。
【０１８８】
復旧部３５は、監視設定情報ファイルの更新が失敗した理由に従って、例えば、再度、監視設定情報ファイルをダウンロード後に、当該監視設定情報ファイルの更新をリトライしたり、ＯＳ監視装置３０を再起動してメモリを開放した後に、当該監視設定情報ファイルの更新をリトライしたり、不要ファイルの削除後に、当該監視設定情報ファイルの更新をリトライしたりする。
【０１８９】
第３に、図９及び図１０を参照して、ＯＳ監視装置３０が、起動する動作について説明する。
【０１９０】
図９に示すように、ステップＳ３００において、デバイスが起動した時に、ステップＳ３０１において起動したＯＳ監視装置３０のローダは、フラッシュメモリやハードディスク上のＯＳ監視装置のプログラムをロードする前に、ステップＳ３０２において、ＯＳ監視装置のプログラムに付与されたデジタル署名の検証を行う。
【０１９１】
ステップＳ３０３において、かかるデジタル署名の検証に失敗した際には、ＯＳ監視装置３０自身のプログラムが壊れているか改ざんされているため、復旧処理を行う。
【０１９２】
本実施形態では、ＯＳ監視装置３０の復旧部３５を呼び出して復旧部３５による復旧処理を行うことを想定しているが、デバイスの全体の復旧処理等の他の復旧処理を行ってもよい。
【０１９３】
また、本実施形態では、ＯＳ監視装置３０のプログラムに付与されたデジタル署名の検証を行っているが、ＯＳ監視装置３０のプログラムのハッシュ値を計算し、ＯＳ監視装置３０のローダ内に埋め込まれたハッシュ値と一致するかどうかについて判定することによって、ＯＳ監視装置３０のプログラムの正当性を確認してもよい。
【０１９４】
ステップＳ３０３において、かかるデジタル署名の検証に成功した場合、ステップＳ３０４において、ＯＳ監視装置３０の起動手順が実行される。
【０１９５】
ステップＳ３０５において、監視フラグ管理部４０が、起動されて、監視フラグを検査する。
【０１９６】
ステップＳ３０６において、監視フラグがオフであると判定された場合、外部からの監視フラグの設定要求の待ち受け状態に移行して、本動作は終了する。
【０１９７】
すなわち、監視フラグをオンにするという要求が来ない限り、監視対象プログラムの監視を有効にしない。
【０１９８】
一方、監視フラグがオンであると判定された場合、自己監視部３９を起動する。そして、ステップＳ３０７において、監視設定情報ファイル入力部３３は、監視設定情報ファイルの有無やバージョン情報やバインド情報を検査する。
【０１９９】
ステップＳ３０８において、監視設定情報ファイルが存在しなかった場合、監視設定情報ファイル入力部３３は、異常であると判定して復旧部３５を呼び出す。
【０２００】
また、ステップＳ３０８において、監視設定情報ファイルに含まれているバージョン情報が、正常のバージョン情報と異なる場合、監視設定情報ファイル入力部３３は、異常であると判定して復旧部３５を呼び出す。
【０２０１】
さらに、ステップＳ３０８において、バインド情報が、現状の監視対象ソフトウェアと整合していない場合、監視設定情報ファイル入力部３３は、異常であると判定して復旧部３５を呼び出す。
【０２０２】
復旧部３５は、再起動や退避しておいた監視設定情報ファイルのコピー等により、復旧処理を試み、それでも復旧できない場合は、監視フラグ管理部４０を呼び出して監視フラグをオフにする。
【０２０３】
本実施形態では、監視設定情報ファイルの有無の検査、バージョン情報の検査、バインド情報の検査、デジタル署名の検査という順序で検査を行ったが、別の順序でかかる検査を行ってもよい。
【０２０４】
ステップＳ３０８において、上述の検査に成功した場合、図１０に示すように、ステップＳ４０１において、監視設定情報ファイル入力部３３は、監視設定情報ファイルを取得する。
【０２０５】
ステップＳ４０２において、署名検証部３４は、監視設定情報ファイルに付与されたデジタル署名を検証する。
【０２０６】
ステップＳ４０３において、かかるデジタル署名の検証に失敗した場合は、署名検証部３４は、かかる監視設定情報ファイルは、不正なものであると判断し、復旧部３５を呼び出す。
【０２０７】
ステップＳ４０３において、かかるデジタル署名の検証に成功した場合は、ステップＳ４０４において、監視設定情報管理部３６は、監視設定情報ファイル内の監視設定情報を保持する。
【０２０８】
ステップＳ４０５において、監視部３７が、かかる監視設定情報を利用して、監視部３７のサブシステムであるパラメータ監視部４１及び完全性監視部４２の初期化を行い、監視対象ソフトウェア等の監視を開始する。
【０２０９】
かかる初期化は、例えば、監視部３７が、監視制御部４３を呼び出して、かかる監視についてのスケジューリング管理を行う。
【０２１０】
ステップＳ４０６において、自己監視部３９が、起動して、ＯＳ監視装置３０自身の監視を開始する。
【０２１１】
第４に、図１１を参照して、ＯＳ監視装置３０が、監視対象パラメータを監視する動作について説明する。
【０２１２】
図１１に示すように、ステップＳ５００において、図１０の動作と同様に、監視部３７が、監視設定情報を利用して、パラメータ監視部４１の初期化を行う。
【０２１３】
ステップＳ５０１において、パラメータ監視部４１は、図３に示すように、監視設定情報として、監視対象記憶領域のアドレスと監視対象記憶領域のサイズと監視対象記憶領域に保持される値が取り得る範囲（正常値の範囲）を取得する。
【０２１４】
ステップＳ５０２において、パラメータ監視部４１は、監視対象記憶領域に保持される監視対象パラメータを監視する。
【０２１５】
ステップＳ５０３において、パラメータ監視部４１は、監視対象パラメータが正常値の範囲外であった場合に、異常であると判断して、異常時対処部３８を呼び出す。
【０２１６】
異常時対処部３８は、異常発生の通知や、ハードウェアリセットの呼び出しによる再起動等の対処を行う。
【０２１７】
第５に、図１２乃至図１３を参照して、ＯＳ監視装置３０が、周期的に監視対象ソフトウェアの完全性を監視する動作について説明する。
【０２１８】
図１２に示すように、ステップＳ６００において、図１０の動作と同様に、監視部３７が、監視設定情報を利用して、完全性監視部４２の初期化を行う。
【０２１９】
ステップＳ６０１において、完全性監視部４２が、図２に示す監視設定情報として、監視対象ソフトウェアの識別子と、監視対象ソフトウェアのハッシュ値と、監視対象ソフトウェアが保持されるアドレスと、監視対象ソフトウェアのサイズと、監視スケジューリング情報を取得する。
【０２２０】
ステップＳ６０２において、監視制御部４３が、監視設定情報に含まれる監視スケジューリング情報を利用して、上述の監視のスケジューリング管理を行う。
【０２２１】
本実施形態では、監視スケジューリング情報として、上述の監視の周期が、指定されているものとし、図１３に示すように、監視対象ソフトウェア１の監視の周期は「５分」と指定され、監視対象ソフトウェア２の監視の周期は「１分」と指定され、監視対象ソフトウェア３の監視の周期は「３０分」と指定されているものとする。
【０２２２】
監視制御部４３は、任意の手段を用いて、監視のスケジューリング管理を行うことができる。
【０２２３】
例えば、監視制御部４３は、監視対象ソフトウェア１、２、３の監視の周期を、監視制御部４３の起動周期で割った値を、監視対象ソフトウェアの識別子を要素とする配列ｓに保存して管理する。
【０２２４】
監視起動部４３の起動周期が「３０秒」である場合、配列ｓ［１］、ｓ［２］、ｓ［３１］は、それぞれ「１０」、「２」、「６０」と設定される。
【０２２５】
監視制御部４３は、呼び出される度に、カウンタの値を「１」づつ増加させ、かかるカウンタの値が、配列ｓの各要素に保持されている値で割り切れた場合に、かかる要素に対応する監視対象ソフトウェアについて監視するように制御することができる。
【０２２６】
ステップＳ６０３において、監視制御部４３は、適切なタイミングで、監視部３７を呼び出すために、例えば、３０秒ごとのタイマ割り込みを設定する。
【０２２７】
図１４に示すように、ステップＳ７０１において、タイマ割り込みを契機に、監視制御部４３は、起動されて、決定したスケジューリングに従って、監視対象のソフトウェアを指定して監視部３７を呼び出す。
【０２２８】
例えば、上述の通り、監視制御部４３は、カウンタの値を「１」づつ増加させ、配列ｓをスキャンして、監視対象ソフトウェアを決定することができる。
【０２２９】
ステップＳ７０２において、監視部３７は、指定された監視対象ソフトウェアを監視するために、完全性監視部４２を呼び出す。
【０２３０】
ステップＳ７０３において、完全性監視部４２は、指定された監視対象ソフトウェアが保持されるアドレス及びサイズに従って、監視対象ソフトウェア（メモリ又はファイル）のハッシュ値を計算し、監視設定情報に含まれる監視対象ソフトウェアのハッシュ値と比較する。
【０２３１】
ステップＳ７０４において、完全性監視部４２は、両者が一致しない場合に、異常であると判定して、異常時対処部３８を呼び出す。
【０２３２】
ステップＳ７０４において、完全性監視部４２は、両者が一致する場合には、次のタイマ割り込みを待つ。
【０２３３】
なお、完全性監視部４２は、電力消費削減のために、ＯＳがサスペンドしている際には、上述の監視動作を停止し、ＯＳがレジュームして動作を開始した際に、上述の監視動作を再開してもよい。
【０２３４】
また、図１２乃至図１４の例では、完全性監視部４２の動作について説明したが、パラメータ監視部４１も同様のスケジューリングを行ってもよい。
【０２３５】
第６に、図１５及び図１６を参照して、ＯＳ監視装置３０が、動作時に配置アドレスが決まるソフトウェアの完全性を監視する動作について説明する。
【０２３６】
図１５に示すように、ステップＳ８０１において、監視部３７が、監視設定情報を利用して、完全性監視部４２の初期化を行う。
【０２３７】
そして、完全性監視部４２は、かかる初期化において、図２に示すように、監視設定情報として、監視対象ソフトウェアの識別子と、監視対象ソフトウェアのハッシュ値と、監視対象ソフトウェアが保持されるアドレスと、監視対象ソフトウェアのサイズと、監視スケジューリング情報を取得する。
【０２３８】
ステップＳ８０２において、完全性監視部４２は、監視対象ソフトウェアが保持されるアドレスが指定されていない等、動作時に監視対象ソフトウェアが保持されるアドレスが決定されるものがあった場合、動作時の監視対象ソフトウェアが保持されるアドレスを取得する必要があると判定して、本動作は、ステップＳ８０３に進む。
【０２３９】
そのようなものがない場合、本動作は、ステップＳ８０６に進む。
【０２４０】
ステップＳＳ８０３において、完全性監視部４２は、ＯＳの完全性についての監視処理を実行し、ＯＳが危殆化されているか否かについて確認する。
【０２４１】
ステップＳ８０４において、ＯＳの完全性についての監視が失敗した場合は、既にＯＳが危殆化されているということであり、完全性監視部４２は、異常時対処部３８を呼び出して、ＯＳの復旧処理等を行う。
【０２４２】
一方、ＯＳの完全性についての監視が成功した場合、ステップＳ８０５においいて、完全性監視部４２は、ＯＳから、動作時の監視対象ソフトウェアが保持されるアドレス等を含む監視設定情報を受け取り、初期化処理を行う。
【０２４３】
なお、ステップＳ８０６、Ｓ８０７、Ｓ９０１乃至Ｓ９０４の動作は、上述した図１２及び図１４におけるステップＳ６０２、Ｓ６０３、Ｓ７０１乃至Ｓ７０４の動作と同様である。
【０２４４】
第７に、図１７及び図１８を参照して、ＯＳ監視装置３０が、優先度に基づいて、監視対象ソフトウェアの完全性について監視する動作について説明する。本実施形態では、図１８に示すように、監視スケジューリング情報として、優先度が指定されているものとする。
【０２４５】
図１７に示すように、ステップＳ１００１において、監視部３７が、監視設定情報を利用して、完全性監視部４２の初期化を行う。
【０２４６】
ここで、完全性監視部４２は、かかる初期化において、図１８に示すように、監視設定情報として、監視対象ソフトウェアの識別子と、監視対象ソフトウェアのハッシュ値と、監視対象ソフトウェアが保持されるアドレスと、監視対象ソフトウェアのサイズと、監視スケジューリング情報としての優先度を取得する。
【０２４７】
ステップＳ１００２において、監視制御部３７は、監視スケジューリング情報として優先度を含む監視設定情報が取得されたか否かについて調べる。
【０２４８】
ステップＳ１００３において、優先度を含む監視設定情報が取得されたと判定された場合、ステップＳ１００４において、監視制御部３７は、優先度ベース監視制御部４６を呼び出す。
【０２４９】
ステップＳ１００５において、優先度ベース監視制御部４６は、監視設定情報で指定された監視スケジューリング情報としての優先度を利用して、スケジューリング管理を行う。
【０２５０】
かかる優先度に基づくスケジューリング管理は、図１２乃至図１４を参照して説明したスケジューリング管理の後に実行してもよいし、先に実行してもよい。或いは、いずれかのスケジューリング管理のみを実行することにしてもよい。
【０２５１】
図１８に示す例では、監視対象ソフトウェア１に対する監視の優先度は「２」と設定されており、監視対象ソフトウェア２に対する監視の優先度は「１」と設定されており、監視対象ソフトウェア３に対する監視の優先度は「３」と設定されている（優先度は、１、２、３の順で高いものとする）。
【０２５２】
優先度ベース監視制御部４６は、例えば、タイマ割り込みの周期（例えば、３０秒）で監視制御部４３が呼び出された際に、ＣＰＵ負荷が「０.３」を超えた場合には、監視の優先度が「２」以上のソフトウェアを監視するように制御し（すなわち、監視の優先度が「３」であるソフトウェアについては監視としない）、ＣＰＵ負荷が「０.４」を超えた場合には、監視の優先度が「１」以上のソフトウェアを監視するように制御し（すなわち、監視の優先度が「２」及び「３」であるソフトウェアについては監視としない）、ＣＰＵ負荷が「０.５」を超えた場合には、いずれのソフトウェアについても監視しないというスケジューリングを行うことができる。
【０２５３】
かかる場合、優先度ベース監視制御部４６は、配列ｐ［１］、ｐ［２］、ｐ［３］に、それぞれ、監視対象ソフトウェアの識別子「２」、「１」、「３」を割り当てる。
【０２５４】
そして、優先度ベース監視制御部４６は、かかる配列ｐを利用して、タイマ割り込みで呼び出された際、監視対象ソフトウェアを抽出できる。
【０２５５】
例えば、ＣＰＵ負荷が「０.３５」である場合、配列ｐ［１］、ｐ［２］を参照して、識別子が「２」及び「１」であるソフトウェアについて監視するように制御することができる。
【０２５６】
ステップＳ１００６において、監視制御部４３は、適切な周期で監視部３７を呼び出すために、例えば、３０秒のタイマ割り込みを設定する。
【０２５７】
図１９に示すように、ステップＳ１１０１において、タイマ割り込みを契機に、監視制御部４３が、起動されて、優先度に基づくスケジューリング管理を行っているか否かについて調べる。
【０２５８】
ステップＳ１１０２において、優先度に基づくスケジューリング管理が行われていると判定された場合、ステップＳ１１０３において、監視制御部４３は、優先度ベース監視制御部４６を呼び出す。
【０２５９】
ステップＳ１１０４において、優先度ベース監視制御部４６は、現在のＣＰＵ負荷に基づいて、監視対象ソフトウェアが有するべき監視の優先度を決定した後、かかる優先度以上の優先度を有する監視対象ソフトウェアを、配列ｐを利用して抽出して、完全性監視部４２を呼び出す。
【０２６０】
ステップＳ１１０５において、完全性監視部４２は、監視対象ソフトウェアが保持されるアドレス及びサイズの指定に従って、監視対象ソフトウェア（メモリ或いはファイル）のハッシュ値を計算し、監視設定情報に含まれる監視対象ソフトウェアのハッシュ値と比較する。
【０２６１】
ステップＳ１１０６において、完全性監視部４２は、両者が一致しない場合に、異常であると判定して、異常時対処部３８を呼び出す。
【０２６２】
ステップＳ１１０６において、完全性監視部４２は、両者が一致する場合には、次のタイマ割り込みを待つ。
【０２６３】
また、図１７乃至図１９の例では、完全性監視部４２の動作について説明したが、パラメータ監視部４１も同様のスケジューリングを行ってもよい。
【０２６４】
第８に、図２０及び図２２を参照して、ＯＳ監視装置３０が、イベント情報に基づいて、監視対象ソフトウェアの完全性について監視する動作について説明する。本実施形態では、図２１に示すように、監視スケジューリング情報として、イベント種別（イベント情報）が指定されているものとする。
【０２６５】
図２０に示すように、ステップＳ１２００において、監視部３７が、監視設定情報を利用して、完全性監視部４２の初期化を行う。
【０２６６】
ステップＳ１２０１において、完全性監視部４２は、かかる初期化において、図２１に示すように、監視設定情報として、監視対象ソフトウェアの識別子と、監視対象ソフトウェアのハッシュ値と、監視対象ソフトウェアが保持されるアドレスと、監視対象ソフトウェアのサイズと、監視スケジューリング情報としてのイベント情報を取得する。
【０２６７】
ステップＳ１２０２において、監視制御部４３は、監視スケジューリング情報としてイベント情報を含む監視設定情報を取得したか否かについて調べる。
【０２６８】
ステップＳ１２０３において、イベント情報を含む監視設定情報が取得されたと判定された場合、監視制御部４３は、ステップＳ１２０４において、イベントベース監視制御部４５を呼び出す。
【０２６９】
ステップＳ１２０５において、イベントベース監視制御部４５は、監視スケジューリング情報としてのイベント情報をスキャンし、処理するべきイベント情報を決定する。
【０２７０】
図２１に示すように、監視対象ソフトウェア１に対するイベント情報としては「電話発信」が指定されており、監視対象ソフトウェア２に対するイベント情報としては「外部ストレージへのデータの書き込み」が指定されており、監視対象ソフトウェア３に対するイベント情報としては「電子商取引のトランザクションの実行」が指定されており、監視対象ソフトウェア４に対するイベント情報としては「折りたたみ型電話機の開閉」が指定されており、監視対象ソフトウェア５に対するイベント情報としては「特定キーの押下」が指定されており、監視対象ソフトウェア６に対するイベント情報としては「ＯＳのサスペンド」が指定されており、イベントベース監視制御部は、これらのイベント情報に対してのみを処理を行うことを決定する。
【０２７１】
すなわち、イベント入力部４４によってイベントベース監視制御部４５が呼び出される際に指定されるイベント情報が、これらのイベント情報以外であった場合は、イベントベース監視制御部４５は、上述の監視を行わない。
【０２７２】
かかるイベント情報の決定は、図１２乃至図１４を参照にして説明したスケジューリング管理又は図１７乃至図１９を参照にして説明したスケジューリング管理の後に実行してもよいし、先に実行してもよい。
【０２７３】
ステップＳ１２０６において、監視制御部４３は、イベント情報に基づいて監視部３７を呼び出して監視を行うために、イベントの入力の待ち受けを行う。
【０２７４】
図２２に示すように、イベント入力部４４は、ステップＳ１３００において、監視対象のＯＳやペリフェラル等の外部からイベント情報を受け付けると、ステップＳ１３０１において、イベントベース監視制御部４５を呼び出す。
【０２７５】
ステップＳ１３０２において、イベントベース監視制御部４５は、入力されたイベント情報と、監視スケジューリング情報で指定されているイベント情報とが一致するソフトウェアを抽出して、完全性監視部４２を呼び出す。
【０２７６】
ステップＳ１３０３において、完全性監視部４２は、指定された優先度以上の優先度を持つ監視対象ソフトウェアが保持されるアドレス及びサイズの指定に従って、監視対象ソフトウェア（メモリ或いはファイル）のハッシュ値を計算し、監視設定情報に含まれるハッシュ値と比較する。
【０２７７】
ステップＳ１３０４において、完全性監視部４２は、両者が一致しない場合には、異常であると判定して、異常時対処部３８を呼び出す。
【０２７８】
一方、ステップＳ１３０４において、完全性監視部４２は、両者が一致する場合には、次のイベント情報の入力を待つ。
【０２７９】
なお、本実施形態では、イベント入力部４４は、ＯＳやペリフェラルからのイベント情報の入力を待つように説明をしたが、イベント入力部４４が、ＯＳやペリフェラルの状態を見て、自律的にイベント情報を検知してもよい。
【０２８０】
例えば、イベント入力部４４が、随時、折りたたみ型電話機の開閉状態の変化を問合せることで、イベント情報を取得することが考えられる。
【０２８１】
また、図２０乃至図２２の例では、完全性監視部４２の動作について説明したが、パラメータ監視部４１も同様のスケジューリングを行ってもよい。
【０２８２】
第９に、図２３を参照して、ＯＳ監視装置３０が、監視フラグを設定する動作について説明する。本実施形態では、遠隔のデバイス管理サーバが無線ネットワークを通じて監視フラグの設定要求を発行するものとする。
【０２８３】
図２３に示すように、ステップＳ１４０１において、監視フラグ管理部４０は、デバイス管理サーバによって発行された監視フラグの設定要求を受け取る。
【０２８４】
ステップＳ１４０２において、監視フラグ管理部４０は、受信した監視フラグの設定要求が、現在の監視フラグの設定と同じ内容を示しているか否かについて調べる。
【０２８５】
ステップＳ１４０３において、同じ内容を示している場合、特に対処する必要はないため、本動作は終了する。
【０２８６】
一方、ステップＳ１４０３において、同じ内容を示していない場合、設定要求が「オン」を示しているのか、「オフ」を示しているのかによって、以下の２通りの処理が行われる。
【０２８７】
ステップＳ１４０４において、現在の監視フラグの設定が「オフ」であり、かつ、受信した設定要求が「オン」を示している場合、ステップＳ１４０５において、監視フラグ管理部４０は、監視フラグを「オン」に設定して、セキュアストレージに保持した後、図９に示すステップＳ３０５の動作から続行して、ＯＳ監視装置３０を起動する。
【０２８８】
一方、ステップＳ１４０４において、現在の監視フラグの設定が「オン」であり、かつ、受信した設定要求が「オフ」を示している場合、監視フラグ管理部４０は、ステップＳ１４０６において、監視フラグの状態を「オフ」に設定して、セキュアストレージに保持した後、ステップＳ１４０７において、監視部３７を呼び出して、監視の停止を要求する。
【０２８９】
なお、ここでは、直接、監視フラグ管理部４０が、直接、設定要求を受け取る場合を例に説明したが、デバイスの他のモジュールが、一旦、遠隔のデバイス管理サーバからの設定要求を受け取り、監視フラグ管理部４０を呼び出して、かかる設定要求を渡してもよい。
【０２９０】
また、監視フラグ管理部４０は、遠隔のデバイス管理サーバから監視フラグの設定要求があることの通知のみを受け取り、その通知の受信を契機に、デバイス管理サーバにアクセスして設定要求を受信してもよい。
【０２９１】
（本発明の第１の実施形態に係るＯＳ監視設定情報生成装置及びＯＳ監視装置の作用・効果）
本発明の第１の実施形態に係るＯＳ監視設定情報生成装置１０及びＯＳ監視装置３０によれば、監視設定情報ファイルに対して、監視設定情報と監視対象ソフトウェアとの対応関係を示すバインド情報を付加することで、ソフトウェア更新パッケージ又は監視対象ソフトウェアと監視設定情報との間の不整合を防止することができる。
【０２９２】
また、本発明の第１の実施形態に係るＯＳ監視設定情報生成装置１０及びＯＳ監視装置３０によれば、監視設定情報ファイルのバージョン情報を付加することで、古い監視設定情報ファイルへの置き換えを防止することができる。
【０２９３】
また、本発明の第１の実施形態に係るＯＳ監視設定情報生成装置１０及びＯＳ監視装置３０によれば、デジタル署名を付与することにより、監視設定情報の改竄を防ぎ、ＯＳ監視装置による安全な監視を行うことができる。
【０２９４】
さらに、本発明の第１の実施形態に係るＯＳ監視設定情報生成装置１０及びＯＳ監視装置３０によれば、最新の監視設定情報ファイルのバージョンをチェックすることで、古い監視設定情報ファイルへの置き換え攻撃を防止することができる。
【０２９５】
本発明の第１の実施形態に係るＯＳ監視設定情報生成装置１０及びＯＳ監視装置３０によれば、ＯＳ監視設定情報生成装置１０が、上述の監視設定情報を、ＯＳ監視装置３０に提供するため、かかるＯＳ監視装置３０は、かかる監視設定情報を用いて、監視対象ソフトウェアの完全性を検証して異常時に対処を実行することで、デバイスの正常動作を維持することができる。
【０２９６】
本発明の第１の実施形態に係るＯＳ監視設定情報生成装置１０及びＯＳ監視装置３０によれば、ＯＳ監視設定情報生成装置１０が、上述の監視設定情報を、ＯＳ監視装置３０に提供するため、ＯＳ監視装置３０は、かかる監視設定情報を用いて、監視対象パラメータが正常値を取っているか或いは改竄されていないかについて検査することで、デバイスの正常動作を維持することができる。
【０２９７】
本発明の第１の実施形態に係るＯＳ監視設定情報生成装置１０及びＯＳ監視装置３０によれば、ＯＳ監視装置３０は、上述の監視スケジューリング情報を用いて、上述の監視を適切にスケジューリングすることで、効率的かつ十分に安全な監視を実行することができる。
【０２９８】
本発明の第１の実施形態に係るＯＳ監視設定情報生成装置１０及びＯＳ監視装置３０によれば、ＯＳ監視装置３０は、上述の監視スケジューリング情報を用いて、特定のイベントが起きたときのみ、或いは、ＯＳ監視装置３０の起動時のみ、当該監視対象ソフトウェアを監視することにより、上述の監視によるオーバヘッドを削減し、効率的な監視を実行することができる。
【０２９９】
本発明の第１の実施形態に係るＯＳ監視設定情報生成装置１０及びＯＳ監視装置３０によれば、ＯＳ監視装置３０は、重要な監視対象ソフトウェア或いは攻撃されやすい監視対象ソフトウェアに高い優先度を与えることで、このようなソフトウェアを高頻度で監視して、安全性を保証しつつ、優先度の低いソフトウェアの監視頻度を削減して、効率化を図ることができる。
【０３００】
本発明の第１の実施形態に係るＯＳ監視設定情報生成装置１０及びＯＳ監視装置３０によれば、ＯＳ監視装置３０は、監視設定情報の更新可否を判定する事前テスト（更新テスト）を行った後に、監視対象ソフトウェア及び監視設定情報ファイルの更新を行うことにより、監視対象ソフトウェア及び監視設定情報の更新時の障害による不整合防止に対処することができる。
【０３０１】
本発明の第１の実施形態に係るＯＳ監視設定情報生成装置１０及びＯＳ監視装置３０によれば、監視設定情報の更新可否を判定する事前テスト（更新テスト）の際には、ソフトウェア更新パッケージ又は監視対象ソフトウェアとのバインド情報を検査することで、監視設定情報とソフトウェアとの間の不整合が起きることを防止することができる。
【０３０２】
また、本発明の第１の実施形態に係るＯＳ監視設定情報生成装置１０及びＯＳ監視装置３０によれば、監視設定情報のみの更新の際も、デバイス側に保存されたソフトウェア更新パッケージとの整合を検査して、監視設定情報とソフトウェアとの間の不整合が起きることを防止することができる。
【０３０３】
本発明の第１の実施形態に係るＯＳ監視設定情報生成装置１０及びＯＳ監視装置３０によれば、悪意のソフトウェアによる監視対象ソフトウェアの改竄や消去を検知して対処することで、正常動作を維持することができる。
【０３０４】
本発明の第１の実施形態に係るＯＳ監視設定情報生成装置１０及びＯＳ監視装置３０によれば、監視部３７における監視機能に不具合があった場合に、遠隔から当該監視機能をオフにし、当該監視機能を修正した後、オンにする等の対応が可能となる。
【０３０５】
また、本発明の第１の実施形態に係るＯＳ監視設定情報生成装置１０及びＯＳ監視装置３０によれば、監視設定情報の更新に失敗した場合にも、当該監視機能をオフにて起動して、デバイスの利用可能性を確保することができる。
【０３０６】
本発明の第１の実施形態に係るＯＳ監視設定情報生成装置１０及びＯＳ監視装置３０によれば、ＯＳ監視装置３０自身を攻撃から守り、安全な監視を行うことができる。
【０３０７】
また、本実施形態によれば、不正な監視設定情報による更新の防止だけでなく、監視設定情報の更新時の障害や、古い監視設定情報への置き換えや、更新後のソフトウェアパッケージと整合しない監視設定情報の更新を防止し、安全にＯＳ及びＯＳ用のソフトウェア（ミドルウェアやアプリケーションやドライバを含む）を監視して正常動作を維持することができる。
【０３０８】
また、本実施形態によれば、動作時に配置アドレスが決まるソフトウェアについても、安全にＯＳと通信して監視できる。
【０３０９】
また、本実施形態によれば、監視の優先度やイベント種別を考慮した監視処理の細粒度の効率化や、デバイスのスリープ状態を考慮した監視処理の削減により、オーバヘッドを低減できる。
【０３１０】
（本発明の第２の実施形態）
本発明の第２の実施形態では、ＯＳ監視設定情報生成装置１０の構成や動作は第１の実施形態の場合と同一であり、ＯＳ監視装置３０の構成も第１の実施形態の場合と同一であるが、デバイス内におけるＯＳ監視装置３０の配置が異なり、その動作が一部異なる。
【０３１１】
以下、デバイス内におけるＯＳ監視装置３０の配置及び動作の違いに焦点を当てて説明する。
【０３１２】
図２４に、本発明の第２の実施形態に係るＯＳ監視装置３０を含むデバイス１の構成を示す。
【０３１３】
第２の実施形態では、ＯＳ監視装置３０は、監視対象のＯＳから隔離された領域（ドメイン）で実行されるソフトウェアであって、上述の特許文献３に開示される「サスペンド・レジュームに基づくＯＳ切替技術を備えるＯＳ切替装置」を使って監視対象のＯＳと排他的に動作するものとする。
【０３１４】
第１の実施形態では、ＯＳ監視装置３０は、ＯＳと並行して動作して、上述の監視を実行することができるものと仮定したのに対して、第２の実施形態では、ＯＳ監視装置３０は、ＯＳがサスペンド或いはスリープ状態で動作を停止している際に、動作して、上述の監視を実行するものとする。
【０３１５】
また、本実施形態に係るＯＳ監視装置３０は、デバイスの起動時に、ＯＳの起動前に、或いは、ＯＳの起動後に、起動されるものとする。
【０３１６】
以下、本実施形態に係るＯＳ監視装置３０の動作のうち、第１の実施形態の場合と異なる動作について説明する。
【０３１７】
第１に、図２５及び図２６を参照して、本実施形態に係るＯＳ監視装置３０が、周期的に監視対象ソフトウェアの完全性を監視する動作について説明する。
【０３１８】
図２５に示すように、ステップＳ１５００乃至Ｓ１５０２の動作は、上述の図１２のステップＳ６００乃至Ｓ６０２の動作と同一である。
【０３１９】
ステップＳ１５０３において、監視制御部４３は、ＯＳ監視装置３０の起動処理を終了し、ＯＳ監視装置３０をサスペンドしてＯＳに制御を戻す。
【０３２０】
監視制御部４３は、適切なタイミングで監視部３７を呼び出すために、監視スケジューリング情報で指定された監視の周期以下の間隔で、タイマ割り込みされる必要があるが、本実施形態では、ＯＳとＯＳ監視装置３０が排他的に動作する環境であるため、ＯＳが、自主的にサスペンドして制御をＯＳ監視装置３０に渡す必要がある。
【０３２１】
そのため、ＯＳは、例えば、３０秒ごとの周期でサスペンドして、ＯＳ監視装置３０に制御を渡し、監視制御部４３が起動されるように構成されるものと仮定する。
【０３２２】
なお、サスペンドする周期については、監視制御部４３が、監視対象のＯＳに対して指定してもよい。
【０３２３】
例えば、図１３に示す監視スケジューリング情報で指定された監視の周期は、３０秒より大きく、サスペンドする周期は、１分で十分であるため、監視制御部４３は、ＯＳに対して、サスペンドする周期として１分を指定して、処理量の低減による応答性の向上や電力消費の削減を図ることができる。
【０３２４】
図２６に示すように、ステップＳ１６００乃至Ｓ１６０４の動作は、上述の図１４のステップＳ７００乃至Ｓ７０４の動作と同一である。
【０３２５】
ステップＳ１６０４において、両者が一致する場合には、監視制御部４３は、ＯＳ監視装置３０をサスペンドして制御をＯＳに渡し、次のＯＳからのタイマ割り込みを待つ。
【０３２６】
なお、「本実施形態に係るＯＳ監視装置３０が、監視の優先度に基づいて監視対象ソフトウェアの完全性を監視する動作」について、第１の実施形態の場合と本実施形態の場合の相違点は、「上述した本実施形態に係るＯＳ監視装置３０が、周期的に監視対象ソフトウェアの完全性を監視する動作」の場合と同様であるため、説明を省略する。
【０３２７】
第２に、図２７及び図２８を参照して、本実施形態に係るＯＳ監視装置３０が、イベント情報に基づいて、監視対象ソフトウェアの完全性について監視する動作について説明する。本実施形態では、図２１に示すように、監視スケジューリング情報として、イベント種別（イベント情報）が指定されているものとする。
【０３２８】
図２７に示すように、ステップＳ１７００乃至Ｓ１７０５の動作は、上述の図２０におけるステップＳ１２００乃至Ｓ１２０５の動作と同一である。
【０３２９】
ステップＳ１７０６において、監視制御部４３は、ＯＳ監視装置３０の起動処理を終了し、ＯＳ監視装置３０をサスペンドしてＯＳに制御を戻す。
【０３３０】
ステップＳ１７０７において、監視制御部４３は、イベント情報に基づいて監視部３７を呼び出して監視を行うために、イベント情報の入力の待ち受けを行う。
【０３３１】
図２８に示すように、ステップＳ１８００乃至Ｓ１８０４の動作は、上述の図２２におけるステップＳ１３００乃至Ｓ１３０４の動作と同一である。
【０３３２】
ステップ１８０４において、両者が一致する場合には、監視制御部４３は、ＯＳ監視装置３０をサスペンドして制御をＯＳに渡し、次のＯＳからのイベント情報の入力を待つ。
【０３３３】
本実施形態によれば、ＯＳとＯＳ監視装置３０が並行して動作しないため、ＯＳは、ＯＳ監視装置３０に対するイベント情報の通知及び上述の切り替え指示以外のオーバヘッド無しに動作することができ、応答性の向上や電力消費の削減を図ることができる。
【０３３４】
（本発明の第３の実施形態）
本発明の第３の実施形態では、ＯＳ監視設定情報生成装置１０の構成や動作は第１の実施形態の場合と同一であり、ＯＳ監視装置３０の構成も第１の実施形態の場合と同一であるが、デバイス内におけるＯＳ監視装置３０の配置が異なり、その動作が一部異なる。
【０３３５】
以下、デバイス内におけるＯＳ監視装置３０の配置及び動作の違いに焦点を当てて説明する。
【０３３６】
図２９に、本発明の第３の実施形態に係るＯＳ監視装置３０を含むデバイス１の構成を示す。
【０３３７】
本発明の第３の実施形態では、ＯＳ監視装置３０は、監視対象のＯＳとは隔離されずに、ＯＳ内にソフトウェアとして実装され、ＯＳ上のプロセス又はスレッドとして並行的に実行されるように構成されている。
【０３３８】
以下、本実施形態に係るＯＳ監視装置３０の動作のうち、第１の実施形態の場合と異なる動作について説明する。
【０３３９】
具体的には、図３０を参照して、本実施形態に係るＯＳ監視装置が起動する動作について説明する。
【０３４０】
図３０に示すように、ステップＳ１９００において、デバイスが起動した際に、ステップＳ１９０１において、各種ローダ及びＯＳが、起動される。なお、ＯＳ監視装置３０は、かかるＯＳによって起動される。
【０３４１】
ステップＳ１９０２において、ＯＳは、ＯＳ監視装置３０のプログラムをロードする前に、ＯＳ監視装置のプログラムに付与されたデジタル署名の検証を行う。
【０３４２】
かかるデジタル署名の検証に失敗した際には、ＯＳ監視装置３０のプログラムが壊れているため、復旧処理を行う。
【０３４３】
本実施形態では、ＯＳは、ＯＳ監視装置３０の復旧部３５を呼び出して復旧処理をさせているが、他の復旧処理を実行してもよい。
【０３４４】
また、本実施形態では、ＯＳは、デジタル署名の検証を行っているが、ＯＳ監視装置３０のプログラムのハッシュ値を計算し、当該ＯＳによって保持されているＯＳ監視装置の正当なハッシュ値と一致するかどうかによって、ＯＳ監視装置３０のプログラムの正当性を確認してもよい。
【０３４５】
以降の動作は、上述の図９におけるステップＳ３０３乃至Ｓ３０８の動作と同一であるため、説明を省略する。
【図面の簡単な説明】
【０３４６】
【図１】本発明の第１の実施形態に係るＯＳ監視設定情報生成装置及びＯＳ監視装置の機能ブロック図である。
【図２】本発明の第１の実施形態において用いられる監視対象ソフトウェアの完全性を監視するための監視設定情報の具体例を示す図である。
【図３】本発明の第１の実施形態において用いられる監視対象パラメータの正常性を監視するための監視設定情報の具体例を示す図である。
【図４】本発明の第１の実施形態において用いられるデジタル署名付きの監視設定情報ファイルの構成を示す図である。
【図５】本発明の第１の実施形態において用いられる監視設定情報ファイルの具体例を示す図である。
【図６】本発明の第１の実施形態に係るＯＳ監視装置を含むデバイスの構成図である。
【図７】本発明の第１の実施形態に係るＯＳ監視設定情報生成装置におけるＯＳ監視設定情報生成手順を示すフローチャートである。
【図８】本発明の第１の実施形態に係るＯＳ監視装置におけるＯＳ監視設定情報更新手順を示すフローチャートである。
【図９】本発明の第１の実施形態に係るＯＳ監視装置における起動手順を示すフローチャートである。
【図１０】本発明の第１の実施形態に係るＯＳ監視装置における起動手順を示すフローチャートである。
【図１１】本発明の第１の実施形態に係るＯＳ監視装置におけるパラメータ監視手順を示すフローチャートである。
【図１２】本発明の第１の実施形態に係るＯＳ監視装置における完全性監視手順を示すフローチャートである。
【図１３】本発明の第１の実施形態において用いられる監視スケジュール情報における監視の周期指定の具体例を示す図である。
【図１４】本発明の第１の実施形態に係るＯＳ監視装置における完全性監視手順を示すフローチャートである。
【図１５】本発明の第１の実施形態に係るＯＳ監視装置における動作時に配置アドレスが決まるソフトウェアの完全性監視手順を示すフローチャートである。
【図１６】本発明の第１の実施形態に係るＯＳ監視装置における動作時に配置アドレスが決まるソフトウェアの完全性監視手順を示すフローチャートである。
【図１７】本発明の第１の実施形態に係るＯＳ監視装置における優先度に基づく完全性監視手順を示すフローチャートである。
【図１８】本発明の第１の実施形態において用いられる監視スケジュール情報における監視の優先度指定の具体例を示す図である。
【図１９】本発明の第１の実施形態に係るＯＳ監視装置における優先度に基づく完全性監視手順を示すフローチャートである。
【図２０】本発明の第１の実施形態に係るＯＳ監視装置におけるイベント情報に基づく完全性監視手順を示すフローチャートである。
【図２１】本発明の第１の実施形態において用いられる監視スケジュール情報における監視の契機となるイベント情報指定の具体例を示す図である。
【図２２】本発明の第１の実施形態に係るＯＳ監視装置におけるイベント情報に基づく完全性監視手順を示すフローチャートである。
【図２３】本発明の第１の実施形態に係るＯＳ監視装置における監視フラグ設定手順を示すフローチャートである。
【図２４】本発明の第２の実施形態に係るＯＳ監視装置を含むデバイスの構成図である。
【図２５】本発明の第２の実施形態に係るＯＳ監視装置における完全性監視手順を示すフローチャートである。
【図２６】本発明の第２の実施形態に係るＯＳ監視装置における完全性監視手順を示すフローチャートである。
【図２７】本発明の第２の実施形態に係るＯＳ監視装置におけるイベント情報に基づく完全性監視手順を示すフローチャートである。
【図２８】本発明の第２の実施形態に係るＯＳ監視装置におけるイベント情報に基づく完全性監視手順を示すフローチャートである。
【図２９】本発明の第３の実施形態に係るＯＳ監視装置を含むデバイスの構成図である。
【図３０】本発明の第３の実施形態に係るＯＳ監視装置における起動手順を示すフローチャートである。
【符号の説明】
【０３４７】
１…デバイス
１０…ＯＳ監視設定情報生成装置
１１…監視設定情報入力部
１２…監視設定情報管理部
１３…監視設定情報出力部
１４…デジタル署名部
３０…ＯＳ監視装置
３１…更新テスト部
３２…監視設定情報更新部
３３…監視設定情報ファイル入力部
３４…署名検証部
３５…復旧部
３６…監視設定情報管理部
３７…監視部
３８…異常時対処部
３９…自己監視部
４０…監視フラグ管理部
４１…パラメータ監視部
４２…完全性監視部
４３…監視制御部
４４…イベント入力部
４５…イベントベース監視制御部
４６…優先度ベース監視制御部
【図１】
2008135004.tif 000003
【図２】
2008135004.tif 000004
【図３】
2008135004.tif 000005
【図４】
2008135004.tif 000006
【図５】
2008135004.tif 000007
【図６】
2008135004.tif 000008
【図７】
2008135004.tif 000009
【図８】
2008135004.tif 000010
【図９】
2008135004.tif 000011
【図１０】
2008135004.tif 000012
【図１１】
2008135004.tif 000013
【図１２】
2008135004.tif 000014
【図１３】
2008135004.tif 000015
【図１４】
2008135004.tif 000016
【図１５】
2008135004.tif 000017
【図１６】
2008135004.tif 000018
【図１７】
2008135004.tif 000019
【図１８】
2008135004.tif 000020
【図１９】
2008135004.tif 000021
【図２０】
2008135004.tif 000022
【図２１】
2008135004.tif 000023
【図２２】
2008135004.tif 000024
【図２３】
2008135004.tif 000025
【図２４】
2008135004.tif 000026
【図２５】
2008135004.tif 000027
【図２６】
2008135004.tif 000028
【図２７】
2008135004.tif 000029
【図２８】
2008135004.tif 000030
【図２９】
2008135004.tif 000031
【図３０】
2008135004.tif 000032