(57)【特許請求の範囲】
【請求項１】
遠隔サーバへのネットワークに接続された電子装置中に配置され、前記電子装置における１つまたは複数のソフトウェア資産に関する情報を前記ネットワークを介して前記遠隔サーバへ提供し、前記遠隔サーバから前記提供した電子装置における１つまたは複数のソフトウェア資産に関する情報に基づいて前記ネットワークを介して送られた前記電子装置における１つまたは複数のソフトウェア資産の管理に関する命令を受け取り、前記受け取った命令に従って前記電子装置における１つまたは複数のソフトウェア資産の管理に関する、バックグラウンドで実行される少なくとも１つのサービスを有効化、サポート及び／または提供する永続的サービスエージェントであって、
前記電子装置中に隠されたドライバエージェントであって、前記ドライバエージェントは、改竄の際の自己回復を含む、外部改竄に対する耐性を有するように構成され、前記ドライバエージェントは、部分ドライバエージェントまたは全機能ドライバエージェントの少なくとも１つを備え、前記全機能ドライバエージェントは、前記サービスを提供する際前記ネットワークと通信するように構成され、前記部分ドライバエージェントは、前記全機能ドライバエージェントと比較して少ない機能の集合によって、前記全機能ドライバエージェントが前記電子装置中で利用可能か否かを決定するように、構成されるドライバエージェントと、
ユーザによる開始またはユーザによる介入なしに前記ドライバエージェントの動作を自動的に開始するように構成され、ローダモジュールおよびインストーラモジュールを有する実行モジュールと、を備え、
前記ローダモジュールは、ＲＯＭに置かれる、永続的サービスエージェント。
【請求項２】
前記ドライバエージェントは、ソフトウェア資産追跡管理、ソフトウェア資産回復、ソフトウェア導入、データ削除、ファイアウォール保護、データ暗号化、位置追跡管理、メッセージ通知、及びソフトウェアのアップグレードの少なくとも１つを備えるサービスを有効化、サポート及び／または提供するように構成される、請求項１に記載の永続的サービスエージェント。
【請求項３】
前記ドライバエージェントは、前記電子装置において選択されたデータファイルを削除するデータ削除サービスを有効化、サポート及び／または提供するように構成され、前記ドライバエージェントは、前記削除されたデータファイルの報告を前記遠隔サーバに提供する、請求項１に記載の永続的サービスエージェント。
【請求項４】
前記ドライバエージェントは、前記電子装置のオペレーティングシステムの削除を有効化、サポート及び／または提供するように構成されている、請求項３に記載の永続的サービスエージェント。
【請求項５】
前記ドライバエージェントは、まず前記オペレーティングシステム以外のデータファイルを削除し、前記報告を前記遠隔サーバに提供してから、前記オペレーティングシステムを削除するように構成されている、請求項４に記載の永続的サービスエージェント。
【請求項６】
前記ドライバエージェントは、前のデータ削除サービスが完了前に中断された場合データ削除サービスを再開するように構成されている、請求項３に記載の永続的サービスエージェント。
【請求項７】
前記部分ドライバエージェントが、ファームウェア、ソフトウェア及びハードウェアの少なくとも１つとして前記電子装置中に置かれている、請求項２に記載の永続的サービスエージェント。
【請求項８】
前記ファームウェアは、不揮発性メモリを備える、請求項７に記載の永続的サービスエージェント。
【請求項９】
前記不揮発性メモリは、ＢＩＯＳチップ及びフラッシュメモリの少なくとも１つを備える、請求項８に記載の永続的サービスエージェント。
【請求項１０】
前記ソフトウェアは、前記電子装置のオペレーティングシステムを備える、請求項７に記載の永続的サービスエージェント。
【請求項１１】
前記ドライバエージェントは、前記遠隔サーバと通信して、前記電子装置中の選択されたデータファイルのデータ削除に関連する前記遠隔サーバからの命令を受信するように構成されている、請求項３に記載の永続的サービスエージェント。
【請求項１２】
前記ドライバエージェントは、前記遠隔サーバと通信を行い、前記遠隔サーバから命令を受信して該命令に応じた前記サービスを実行し、該通信は、前記ドライバエージェントまたは前記サーバによって開始される、請求項２に記載の永続的サービスエージェント。
【請求項１３】
前記ドライバエージェントは、前記遠隔サーバと通信して、前記電子装置中でファイアウォール保護を確立することに関連した前記遠隔サーバからの命令を受信するように構成されている、請求項１２に記載の永続的サービスエージェント。
【請求項１４】
前記ドライバエージェントは、前記遠隔サーバと通信して、前記電子装置中でデータ暗号化を引き受けることに関連した前記遠隔サーバからの命令を受信するように構成されている、請求項１２に記載の永続的サービスエージェント。
【請求項１５】
前記ドライバエージェントは、前記遠隔サーバと通信して、前記電子装置の位置追跡管理に関連した前記遠隔サーバからの命令を受信するように構成されている、請求項１２に記載の永続的サービスエージェント。
【請求項１６】
前記ドライバエージェントは、前記遠隔サーバと通信して、前記電子装置の一定の機能を無効化するメッセージ通知及び／または命令を受信するように構成されている、請求項１２に記載の永続的サービスエージェント。
【請求項１７】
請求項１に記載の永続的サービスエージェントを備える電子装置。
【請求項１８】
遠隔サーバへのネットワークに接続された電子装置において、前記電子装置における１つまたは複数のソフトウェア資産に関する情報を前記ネットワークを介して前記遠隔サーバへ提供し、前記遠隔サーバから前記提供した電子装置における１つまたは複数のソフトウェア資産に関する情報に基づいて前記ネットワークを介して送られた前記電子装置における１つまたは複数のソフトウェア資産の管理に関する命令を受け取り、前記受け取った命令に従って前記電子装置における１つまたは複数のソフトウェア資産の管理に関する、バックグラウンドで実行されるサービスを有効化、サポート及び／または提供する方法であって、
前記電子装置中のドライバエージェントを隠すステップであって、前記ドライバエージェントは、改竄の際の自己回復を含む、外部改竄に対する耐性を有するように構成され、前記ドライバエージェントは、部分ドライバエージェントまたは全機能ドライバエージェントの少なくとも１つを備え、前記全機能ドライバエージェントは、前記サービスを提供する際前記ネットワークと通信するように構成され、前記部分ドライバエージェントは、前記全機能ドライバエージェントと比較して少ない機能の集合によって、前記全機能ドライバエージェントが前記電子装置中で利用可能か否かを決定するように、構成されているステップと、
ユーザによる開始またはユーザによる介入なしに前記ドライバエージェントの動作を自動的に開始するように構成され、ローダモジュールおよびインストーラモジュールを有する実行モジュールを提供するステップと、
遠隔サーバと通信して、前記サービスに関する命令を受信するため前記ドライバエージェントをネットワークに機能的に接続するステップと、を含み、
前記ローダモジュールは、ＲＯＭに置かれる、方法。
【請求項１９】
前記サービスは、ソフトウェア資産追跡管理、ソフトウェア資産回復、ソフトウェア導入、データ削除、ファイアウォール保護、データ暗号化、位置追跡管理、メッセージ通知、及びソフトウェアのアップグレードの少なくとも１つを備える、請求項１８に記載の方法。
【請求項２０】
前記ドライバエージェントは、前記電子装置において選択されたデータファイルを削除するデータ削除サービスを有効化、サポート及び／または提供するように構成され、前記ドライバエージェントは、前記電子装置のオペレーティングシステムの削除を有効化、サポート及び／または提供するように構成されている、請求項１８に記載の方法。
【請求項２１】
前記ドライバエージェントは、まず前記オペレーティングシステム以外のデータファイルを削除し、報告を前記遠隔サーバに提供してから、前記オペレーティングシステムを削除するように構成されている、請求項１９に記載の方法。
【請求項２２】
ネットワークに接続された電子装置において少なくとも１つのサービスを提供するシステムであって、
前記ネットワークに接続された遠隔サーバと、
前記電子装置中に配置され、前記電子装置における１つまたは複数のソフトウェア資産に関する情報を前記ネットワークを介して前記遠隔サーバへ提供し、前記遠隔サーバから前記提供した電子装置における１つまたは複数のソフトウェア資産に関する情報に基づいて前記ネットワークを介して送られた前記電子装置における１つまたは複数のソフトウェア資産の管理に関する命令を受け取り、前記受け取った命令に従って前記電子装置における１つまたは複数のソフトウェア資産の管理に関する、バックグラウンドで実行される少なくとも１つのサービスを有効化、サポート及び／または提供する永続的サービスエージェントであって、前記電子装置中に隠されたドライバエージェントであって、前記ドライバエージェントは、改竄の際の自己回復を含む、外部改竄に対する耐性を有するように構成され、前記ドライバエージェントは、部分ドライバエージェントまたは全機能ドライバエージェントの少なくとも１つを備え、前記全機能ドライバエージェントは、前記サービスを提供する際前記ネットワークと通信するように構成され、前記部分ドライバエージェントは、前記全機能ドライバエージェントと比較して少ない機能の集合によって、前記全機能ドライバエージェントが前記電子装置中で利用可能か否かを決定するように構成されるドライバエージェントを備え、前記永続的サービスエージェントがさらに、ユーザによる開始またはユーザによる介入なしに前記ドライバエージェントの動作を自動的に開始するように構成され、ローダモジュールおよびインストーラモジュールを有する実行モジュールを備える永続的サービスエージェントとを備え、
前記永続的エージェントは、前記遠隔サーバと通信を行い、前記遠隔サーバから命令を受信して該命令に応じた前記サービスを実行し、
前記ローダモジュールは、ＲＯＭに置かれる、システム。
【請求項２３】
前記通信は、前記ドライバエージェントまたは前記サーバによって開始される、請求項２２に記載のシステム。
【請求項２４】
前記永続的サービスエージェントは、前記遠隔サーバと通信し、
（ａ）前記電子装置中のファイアウォール保護の確立と、
（ｂ）前記電子装置中のデータ暗号化の引き受けと、
（ｃ）電子装置の位置追跡管理と、
（ｄ）メッセージ通知の受信と、
（ｅ）前記電子装置の一定の機能の無効化と、のうちの少なくとも１つに関連した前記遠隔サーバからの命令を受信するように構成されている、請求項２２に記載のシステム。
【請求項２５】
前記ローダモジュールは、オプションＲＯＭの初期化ベクトルおよび／または１つまたは複数の割り込みベクトルによって示される１つまたは複数のエントリポイントに置かれ、
前記オプションＲＯＭの初期化ベクトルは、ＢＩＯＳにおけるＰＣＩオプションＲＯＭの初期化ベクトルであり、
前記割り込みベクトルは、ＢＩＯＳ割り込みベクトルである、請求項１〜１７のいずれか一項に記載の永続的サービスエージェント。
【請求項２６】
前記ローダモジュールは、オプションＲＯＭの初期化ベクトルおよび／または１つまたは複数の割り込みベクトルによって示される１つまたは複数のエントリポイントに置かれ、
前記オプションＲＯＭの初期化ベクトルは、ＢＩＯＳにおけるＰＣＩオプションＲＯＭの初期化ベクトルであり、
前記割り込みベクトルは、ＢＩＯＳ割り込みベクトルである、請求項１８〜２１のいずれか一項に記載の方法。
【請求項２７】
前記ローダモジュールは、オプションＲＯＭの初期化ベクトルおよび／または１つまたは複数の割り込みベクトルによって示される１つまたは複数のエントリポイントに置かれ、
前記オプションＲＯＭの初期化ベクトルは、ＢＩＯＳにおけるＰＣＩオプションＲＯＭの初期化ベクトルであり、
前記割り込みベクトルは、ＢＩＯＳ割り込みベクトルである、請求項２２または２３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本出願は、２００５年３月１８日出願の米国仮特許出願第６０／６６３，４９６号、２００５年３月１８日出願の米国仮特許出願第６０／６６３，６１５号、及び２００６年１月７日出願の米国仮特許出願第６０／７５６，７９６号の利益を主張する。本出願は、２００５年３月２８日出願の米国特許出願第１１／０９３，１８０号の一部継続出願である。これらの文書はその全体を引用によって本出願の記載に援用する。
【０００２】
本出願で参照される全ての刊行物は、その全体を引用によって本出願の記載に援用する。
【０００３】
本発明は、コンピュータ及びネットワーク環境における永続的または改竄防止サービスエージェントに関する。
【背景技術】
【０００４】
現在の競合するビジネス環境では、情報技術（ＩＴ）は日々のビジネス機能での知識の交換においてますます重要な役割を演じつつある。個人、システム、組織、及び他のビジネス資産はこの新たに出現しつつある経済網の中で相互接続しており、このＩＴの状況が次第に複雑さを増すに連れて、コンピュータ資産を効率的に管理する必要も増大している。その結果、今日の組織は、投資を最大限に活用しコストを管理するため、組織のコンピュータ資産ベースを制御し、管理し、安全にする必要をこれまで以上に認識している。
【０００５】
ネットワーク中のコンピュータを管理するために必要な時間と財源の量は重大なものになることがある。こうした資産は電子商取引やビジネスインテリジェンスといった主要なビジネス処理をサポートする。こうした資産が保護されず、事前に資産を管理する能力がない場合、短期及び長期の損失が生じる可能性は莫大である。
【０００６】
組織が直面する主要な課題の１つは、装置の記憶ドライブ上の個々のソフトウェアイメージと必要な更新を管理し、組織のコンピュータの位置と進行中の移動を追跡管理することである。どんな資産がありそれらが時間と共にどのように変化しているかを知ることは、現行のＩＴ資産及びポリシー管理にとって基本的なことである。また、そのことを知っていれば、ハードウェアまたはソフトウェアのアップグレード、またはコンピュータの廃棄といった計画及び予算編成が改善できる。企業が地理的に拡大し、モバイル及び遠隔システムの採用がますます一般的になるに連れて、この問題はさらに複雑になっている。こうした資産とそこにあるソフトウェアイメージを追跡することは、コンピュータ自体の価値にとって重要なだけでなく、マシン上に存在する貴重なデータの保護にとってさらに重要であることが多い。紛失または不適切に設定した資産は内部に読み取り可能な機密情報または著作権を有する情報を有することや、ウイルス対策用に更新されないことがあり、また企業のネットワークにアクセスする権利を有したままでいることがある。企業はその資産及びその構成を明確にし、ハードウェア及びソフトウェアについて何がそれらに搭載されているかだけでなく、それらがどこにありそれらを誰が使用しているかを明確にすることができなければならない。この追加情報があって初めて、組織は遠隔及びモバイルユーザのセキュリティ及び規制遵守の問題に取り組むことができる。
【０００７】
モバイルコンピューティング装置の処理能力の増大に伴って、デスクトップユニットの代替品として、または家庭用または小企業のネットワーク用の追加装置として、モバイルコンピューティング装置を選択する個人が次第に増大している。個人は元来コンピュータ資産のインベントリ及び構成の管理に関心を有さないが、それにもかかわらずパーソナルコンピュータ資産の追跡管理及び個人データの保護に関しては、大企業と同様の関心を共有している。
【０００８】
大部分のＩＴ部門は、従来の資産管理ソリューションが絶えず増大する遠隔及びモバイルユーザの個体数を正しく明確にすることができないという主張を支持するだろう。実際には、通常の組織は、ＰＣドリフト１までの２年間にＰＣ資産の１５％までを失うが、この場合資産は必ずしも紛失または盗難にあったわけではなく、支給されてから何度も所有者または部門が変わったため所在を明確にすることができないだけのことがある。平均すると、備品目録の作成を要求された場合、大部分の組織が正確に識別できるのは、組織の実際のＰＣ資産ベースの６５％に過ぎない。模範事例として、ＰＣ資産の少なくとも９０％の位置を常に把握することが要求されている。
【０００９】
ＬＡＮの外部を移動する遠隔及びモバイルコンピュータ資産には多くの点で問題がある。まず、大部分の資産追跡管理ソフトウェアは、マシンがローカルネットワークに接続されていない場合それを追跡管理することができない。また、こうした遠隔マシンはＩＴネットワーク全体のセキュリティ上の大きな脅威の原因となる。ＩＴ管理者よりもむしろ遠隔ユーザがマシンの管理及び設定更新に対して責任があることが多い。大部分のユーザは普通、必要なセキュリティ意識を有していない。ユーザはセキュリティ設定のレベルを下げ、気付かないうちに悪意のあるソフトウェアをインストールし、ウイルス対策ソフトウェアを期限切れにし、最新のセキュリティパッチをインストールしないことがある。遠隔ユーザにとってはセキュリティ上の小さな過失に見えるかもしれないことが、ネットワーク全体に対して劇的な影響を有することがある。遠隔ユーザは、ＬＡＮに接続すると、セキュリティへの関心が低いため、ネットワーク全体を感染させることがある。こうした遠隔マシンに対する有効な資産管理ツールなしに、ＩＴ管理者はネットワーク全体の完全性を保証することができない。ネットワークの安全性はその最弱リンクの安全性と同じであるに過ぎない。コンピュータセキュリティに関するＣＳＩ／ＦＢＩ年次調査は、盗難にあったＰＣ資産の５７％が企業に対するさらなる犯罪を行うために使用されていることを示している。
【００１０】
最近の企業会計スキャンダル、識別情報の盗難及び悪意のあるハッキングに対して、政府は全ての機密上重要なデジタル情報を保護し明確にすることを企業に要求する規則を制定しつつある。２００２年のサーベンス・オクスリー法（Ｓａｒｂａｎｅｓ−Ｏｘｌｅｙ  Ａｃｔ  ｏｆ  ２００２）はこうした規則の優れた一例である。サーベンス・オクスリー法によって、資産を正確に報告していない場合の摘発が増大している。経営幹部は、正確な資産報告を保証する適切な管理及び規則があるかを法律的に検証するように要求されている。現在では、正確な資産報告の履行を保証することは、最高財務責任者（ＣＦＯ）及び最高経営責任者（ＣＥＯ）の受託者責任である。資産ベースを不正確に報告した組織に対する法律上、規制上及び財政上の摘発は非常に重大なものになり得る。コンピュータは組織の資産ベースの大きな割合を構成することが多いので、正確な報告が必要である。グラム・リーチ・ブライリー（ＧＬＢ）法は、財務部門での顧客記録の保護を保証する別の規則である。同様に、医療保険の相互運用性と説明責任に関する法律（ＨＩＰＡＡ）は、医療記録と保険関連情報の機密性を保護する連邦政府のプライバシーの基準を確立した。組織が全てのコンピュータ資産を有効に追跡管理しなければ、重大な規制上の問題が生じ得る。
【００１１】
追跡管理機能を引き受ける資産追跡管理及び／または設定管理アプリケーションは、ユーザによるある程度の改竄に抵抗できるべきである。資産追跡管理の状況では、通常、許可されたユーザはコンピュータのライフサイクル管理のある面の責任者である。この状況では、追跡管理エージェントは、（例えば、コンピュータ資産のライフサイクル終了時に）エージェントの無効化を可能にする必要性を正当と認める一方で、追跡管理エージェントの偶発による除去から許可されたユーザを保護できるべきである。許可されていないユーザは、エージェントソフトウェアを除去しようとするが、通常コンピュータのライフサイクル管理に責任を負わない人物である。エージェントを除去しようとする故意の、許可されていない試行の理由は、追跡管理ソフトウェアを永久的に除去された状態にしようという窃盗犯または潜在的な窃盗犯の行為であることを含むだろう。許可されていないが偶発的な除去の試行は、例えば、新しいオペレーティングシステムをインストールしたりハードディスクドライブを再イメージングしたりしようとする何者かの成功または不成功の試行を含むだろう。
【００１２】
ＰＣ資産及びその構成を追跡、管理及び更新しようとする試行は、ＰＣはそのライフサイクルを通じて、故障／調整修理、設定変更、オペレーティングシステムの再インストール、ハードディスクドライブの再フォーマット／交換、システムの破壊及びユーザ主導の設定変更を含む多くのハードウェア、ソフトウェア及びイメージの変更を経験するという事実によってさらなる課題を与えられる。こうした変化の多くはオペレーティングシステムの再インストールを必要とし、それによってＰＣ資産の元のフットプリント、識別情報または追跡管理エージェントが無効化または除去されることがある。この変化は、勤勉に記録及び追跡管理しなければ、既知の状態から未知の状態へのＰＣ資産ドリフトの始まりとなる。こうした日常のＰＣライフサイクル動作の要求は、特に遠隔及びモバイルＰＣの場合、ＰＣ資産追跡管理の複雑さと課題を増大しかねない。
【００１３】
これまで、既存の資産追跡管理アプリケーションは、Ｗｉｎｄｏｗｓ（登録商標）  ＮＴ／２０００／ＸＰ（登録商標）環境では、許可されていないユーザによる改竄に対して要求される永続性を達成するために必要な機能を示さないという点で不十分である。こうした追跡管理アプリケーションは一般に、上記で述べた許可されていない、または偶発によるユーザの行為、または、レジストリ設定の削除またはアプリケーションファイルの削除といった他の単純な行為によって簡単に無効になってしまう。
【００１４】
本発明の譲受人である、アブソリュートソフトウェア社（Ａｂｓｏｌｕｔｅ  Ｓｏｆｔｗａｒｅ  Ｃｏｒｐｏｒａｔｉｏｎ）は、資産を安全に追跡管理し紛失または盗難にあった資産を回復する製品及びサービスであるコンピュトレース（Ｃｏｍｐｕｔｒａｃｅ）、及びコンピュトレース技術プラットフォームによって動作する安全な資産追跡管理及びインベントリ管理ソリューションであるアブソリュートトラック（ＡｂｓｏｌｕｔｅＴｒａｃｋ）を開発し販売している。コンピュトレースは、ホストコンピュータのハードディスクドライブに存在するソフトウェアクライアントであるステルスエージェントを導入する。一旦インストールされると、自動的に、エージェントは定期的に監視センタにコンタクトし位置情報及び全ての自動的に発見された資産データポイントを送信するようになる。エージェントと監視センタとの間の進行中の通信はユーザの介入を必要とせず、インターネットまたは電話接続を介して維持される。コンピュータの電源が投入され、（ＩＳＰまたは企業ネットワークを通じて）電話回線への接続またはインターネットへのアクセスの何れかを有している限り、コンピュトレースエージェントは資産データを監視センタに報告することができる。エージェントと監視センタとの間のユーザの介入を必要としない通信によって、エージェントの許可されたユーザはコンピュータインベントリ全体の最新の位置情報と包括的な資産データに安全にアクセスできるようになる。単独で使用されるにせよ、また既存の資産管理ツールの補完物として使用されるにせよ、アブソリュートトラックは、遠隔、モバイル及びデスクトップコンピュータを監視し、日常的なハードウェア及びソフトウェアのインベントリ追跡管理機能を実行するあらゆる規模の企業の助けとなる費用効果的なアプリケーションサービスである。コンピュトレースはモバイルコンピュータの盗難を追跡管理し、盗難にあったモバイルコンピュータを回復する有効なツールである。
【００１５】
様々なコンピュトレース製品及びサービスの根底にある技術は、米国及び他の諸国で開示及び特許取得されており、それらの特許は本出願と同じ譲受人であるアブソリュートソフトウェア社に譲受されている。例えば、米国特許第５，７１５，１７４号、米国特許第５，７６４，８９２号、米国特許第５，８０２，２８０号、米国特許第６，２４４，７５８号、米国特許第６，２６９，３９２号、米国特許第６，３００，８６３号、および米国特許第６，５０７，９１４号の公報、及び関連外国特許を参照されたい。アブソリュートトラックに関するさらなる情報はアブソリュートソフトウェア社によって公開されている（例えば、２００３年４月２５日に発行された白書「アブソリュートトラック−安全なコンピュータ資産追跡管理ソリューション（AbsoluteTrack-Secure Computer Asset Tracking Solution）」を参照されたい）。
【００１６】
保護された各装置に導入されたエージェントはステルス性であって、コンピュータのユーザによる検出に対する耐性を有する。改竄耐性のレベルは検出の困難さとコンピュトレースサービスを無効にするために要求されるスキルのレベルに直接影響する。コンピュトレースエージェントはディスクベースのユーティリティと同程度の改竄耐性を有するが、さらに上のレベルの改竄耐性を提供し、さらに、資産追跡管理及び回復以外のサービスを有効化、サポート及び／または提供する改善されたエージェントを開発することが望ましい。
【発明の概要】
【発明が解決しようとする課題】
【００１７】
本発明は、改竄に対する耐性を改善した、（非制限的に、ハードウェア、ファームウェア、ソフトウェア、データ、等を含む）資産及びそのソフトウェア設定の管理及び保護に関するサービスを有効化、サポート及び／または提供するサービスエージェントに関する。サービスは、資産管理追跡、資産回復、データ削除、ソフトウェア導入、等を含んでもよい。
【課題を解決するための手段】
【００１８】
サービスエージェントは複数のモジュールを備える。各モジュールは個別の動作環境で機能するように設計されている。モジュール設計は、アプリケーション全体を再構築する必要なしに、例えば、ＢＩＯＳ中またはハードディスクドライブ上といった特定の動作環境に導入するようにエージェントを構成する柔軟性を提供する。エージェントは全体的または部分的に（ハードウェアのマイクロコードを含む）ソフトウェアによって実現してもよく、またシステム内のソフトウェア、ファームウェア及び／またはハードウェア構成要素中に存在してもよい。
【００１９】
本発明の１つの態様によれば、ローダモジュールがロードされ、電源投入時自己診断（ＰＯＳＴ）中の制御を得る。このエージェントに依存して、エージェントがインストールされた装置、及びエージェントがインストールされた装置に関連する資産に対するサービス（例えば、追跡管理、データ削除及びソフトウェア更新）を有効化、サポート及び／または提供することができる。一旦制御がローダに渡されると、ローダは、必要に応じて、かつ適当な時に、マシンから除去または紛失した可能性のあるエージェントの部分をネットワーク（例えば、インターネット）経由でリロードすることを含む、エージェントの他の機能及びモジュールをロードする役割を果たす。サービスエージェントは、普通なら除去されてしまうような操作を受けたとしても永続的である能力を有する。
【００２０】
本発明の１つの実施形態では、永続的エージェントのエージェントコードのための少なくとも１つのモジュール及び／またはデータは、装置中に存在するＲＯＭ及び、特に、基本入出力システム（ＢＩＯＳ）またはその機能的同等物といった、装置のファームウェアにおいて実現される。サービスエージェントは、装置のオペレーティングシステムから独立して、その意図するサービス機能（例えば、追跡管理、データ削除及びソフトウェア更新）を実行できるようにエージェント自体をロードすることができ、動作環境を検出することによって、装置のいくつかの基本的な動作（例えば、入力／出力）を制御する環境（例えば、装置のオペレーティングシステム）に適応することができるので、エージェントはシステムのこうした基本的動作を使用してその意図するサービス機能を実行することができる。
【００２１】
別の実施形態では、永続的エージェントは、「コンピュトレース」ローダモジュール（ＣＬＭ）、適応インストーラモジュール（ＡＩＭ）、及び通信ドライバエージェント（ＣＤＡ）を含む、３つの主要なモジュールを備えている。ＣＬＭはＡＩＭをロードし、ＡＩＭは、ＣＤＡの位置を特定し、ＣＤＡを確認、圧縮解除、及び検出されたＯＳ環境に適応させる。１つの実施形態では、ＣＤＡは、部分的すなわちミニＣＤＡ及び全機能ＣＤＡという２つの形態で存在する。ミニＣＤＡの機能は、完全または最新のＣＤＡが装置上のどこかに存在するか否かを決定し、存在しない場合、監視サーバからネットワーク（例えば、インターネット）経由で全機能ＣＤＡをロードすることである。そして、全機能ＣＤＡは、装置と監視サーバとの間の全ての通信を担当する。別の実施形態では、特定の環境に適応するためカスタム機能を必要とすることのある異なるモジュール、特にＣＬＭをプログラム可能にしてもよい。いくつかのモジュールの形でエージェントを提供することによって、カスタマイゼーションのレベルを最小に保持することができる。１つの実施形態では、少なくともＣＬＭはＢＩＯＳのようなファームウェア中に格納され、１つまたは複数の他のモジュールはハードディスクパーティションギャップ、またはハードディスクドライブのホスト保護領域（ＨＰＡ）中に格納される。別の実施形態では、ＣＬＭは代替マスターブートレコード（ＭＢＲ）、または上記の組み合わせの中に格納される。
【００２２】
別の態様では、エージェントが実行するサービス機能は、エージェントにおいて利用可能な汎用サブファンクションの呼び出しを組み合わせることで、遠隔サーバによって制御してもよい。エージェントはこのようにプログラム可能なので、サーバ主導のコマンドに基づいて拡張することができる。この拡張可能性は、スペースが貴重で機能を追加または変更するための頻繁な更新が経済的ではないＢＩＯＳのようなファームウェアにエージェントを無事に導入するため重要である。拡張可能性はエージェントのアクティブ化処理及び再アクティブ化処理の主要な構成要素である。
【００２３】
本発明の別の態様では、エージェントの拡張可能性によって、クライアント装置に格納されたデータを消去するためのデータ削除アプリケーションが可能になる。
【００２４】
本発明のまた別の態様では、エージェントの拡張可能性によって、クライアント装置にソフトウェアの更新を供給しプログラムすることが可能になる。
【００２５】
本発明は、装置の「ユーザ」の操作とは無関係に、事前に導入されたサービスエージェントを「アクティブ」な状態に保持する能力を改善する。本発明の文脈で、「アクティブ」という用語は、エージェントソフトウェアの構成要素がそれ自体をロードして、例えば１つの実施形態では、ハードディスクドライブのフォーマット、オペレーティングシステムの再インストール、イメージングユーティリティを使用したハードディスクドライブの再イメージング、及びハードディスクドライブの交換のための低レベルコマンドを含む、広範な「ユーザ」の操作のための全能力を再構成する特定の能力を指す。「ユーザ」という用語は、こうした操作を実行し、許可された、または許可されていない者として行動し得る個人を指す。エージェントを除去する操作は意図的または偶発的なものでよい。
【００２６】
本発明は、（例えば、コンピュータ資産のライフサイクル終了時に）エージェントの無効化を可能にする必要性を正当と認める一方で、サービスエージェントの偶発による除去から許可されたユーザを保護する。本発明は、許可されていないユーザがエージェントソフトウェアを除去するのを防止する。本発明の永続的な属性は、資産保護、データ及びネットワークのセキュリティ、ＩＴ資産管理、ソフトウェアの導入、及び他の種類の適用業務において価値を有する。安全でステルス性の装置追跡管理ソフトウェアアプリケーションの状況では、貴重な資産の盗難を隠すことは、窃盗犯がどんな操作を行うかに関らずはるかに困難になっており、ソフトウェアは永続して遠隔監視センタにコンタクトすることが可能であるため、本発明は大きな価値を有する。さらに、サービスエージェントが永続的な性質を有しているため、エージェントが偶発的に除去されないという信頼が得られ、セキュリティ要員に安心が提供される。安全な資産管理アプリケーションの状況では、全ライフサイクルにわたる資産の追跡管理の連続性が保証されるため、本発明はさらなる価値を有する。今日のＩＴ管理者の主要な課題は全ライフサイクルにわたって資産の追跡管理を行う能力である。ライフサイクルの間に、装置はあるユーザから別のユーザに引き渡されることが多く、その際装置は再イメージング、またはオペレーティングシステムの再インストール、または他の形で資産の追跡管理を困難にする保守手順の対象になることがあるが、これは本発明によってより容易になる。永続的で拡張可能なエージェントによって、資産追跡管理サービスに加えて、他のサービスを有効化、サポート及び／または提供することができる。
【００２７】
本発明の性質及び利点、及びその好適な使用形態をより完全に理解するには、添付の図面に関連してなされる以下の詳細な説明を参照されたい。これらの図面中、同一の参照符号は全図を通じて同一または同様の部品を表す。
【図面の簡単な説明】
【００２８】
【図１】本発明の１つの実施形態に係る、資産追跡管理を実現し得るネットワークを含む代表的な通信リンクを示す概略図である。
【図２】本発明の１つの実施形態に係る、永続的エージェントを含む、ＰＣＩオプションＲＯＭをＢＩＯＳに取り付けた状態を示す概略図である。
【図３】本発明の１つの実施形態に係る、ＰＣＩオプションＲＯＭ中に存在する永続的エージェントのモジュール構成要素を示す概略図である。
【図４】本発明の１つの実施形態に係る、オプションＲＯＭロードルーチンを示す概略フロー図である。
【図５】本発明の１つの実施形態に係る、永続的エージェントのＣＬＭによって実行されるルーチンを示す概略フロー図である。
【図６Ａ】本発明の１つの実施形態に係る、ＣＬＭの割り込みハンドラによって実行されるルーチンを示す概略フロー図である。
【図６Ｂ】本発明の１つの実施形態に係る、ＣＬＭの割り込みハンドラによって実行されるルーチンを示す概略フロー図である。
【図７】本発明の１つの実施形態に係る、永続的エージェントのＡＩＭによって実行されるルーチンを示す概略フロー図である。
【図８】本発明の１つの実施形態に係る、永続的エージェントのＣＤＡのインストーラモードルーチンを示す概略フロー図である。
【図９】本発明の１つの実施形態に係る、ＣＤＡのサービスモードルーチンを示す概略フロー図である。
【図１０】本発明の１つの実施形態に係る、アプリケーションモードにおけるＣＤＡの概略表示である。
【図１１】本発明の１つの実施形態に係る、フラッシュイメージ管理の概略表示である。
【図１２】本発明の１つの実施形態に係る、ホスト保護領域イメージ管理の概略表示である。
【図１３】本発明の１つの実施形態に係る、パーティションギャップイメージ管理の概略表示である。
【図１４】本発明の１つの実施形態に係る、永続的エージェントのＣＤＡと遠隔サーバとの間の通信セッションの概略表示である。
【図１５】本発明の１つの実施形態に係る、ＣＤＡのクライアント側データ削除ルーチンを示す概略フロー図である。
【図１６】本発明の１つの実施形態に係る、サーバ側データ削除ルーチンを示す概略フロー図である。
【図１７】本発明の１つの実施形態に係る、データ削除実行ルーチンを示す概略フロー図である。
【発明を実施するための形態】
【００２９】
本説明は発明を実施するための現在考えられる最良の形態に関するものである。本説明は、本発明の一般的原理を例示するためになされたものであって、制限的な意味で受け取るべきではない。本発明の範囲は、添付の請求項を参照することによって最もよく決定される。本発明の根底にある原理を理解すれば明らかになるように、本発明は、本発明の範囲及び精神から離れることなく、多様な実現例において有用性を見出すことができる。本発明の永続的エージェント（Ａｇｅｎｔ）の特徴を例示する目的で、エージェント及び追跡管理エージェントによって提供されるサービスの一例としての資産追跡管理、及びエージェントによって提供されるサービスの別の例としてのデータ削除を参照する。本発明の範囲及び精神から離れることなく、エージェントをソフトウェアの配布及び更新といった他のサービスのために使用してよいことを理解されたい。
【００３０】
以下の詳細な説明は主として、本発明の方法または処理、動作、機能及び特徴の符号表現によって提示される。これらの方法の説明及び表現は、当業者がその作業の趣旨を別の当業者に最も効果的に伝えるために使用する手段である。ソフトウェアによって実現される方法または処理は、本出願では、かつ一般的に、所望の結果に至る一連の首尾一貫したステップであると考えられる。こうしたステップは物理量の物理的動作を必要とする。必然的ではないが、多くの場合、物理量は、格納、転送、結合、比較及びその他の動作が可能な電気信号または磁気信号の形態を取る。さらに認識されるように、ハードウェアとソフトウェアとの間の境界は必ずしも明確ではなく、ソフトウェアによって実現される処理を、マイクロコード及び／または格納されたプログラム命令などのコーディングされた命令の形態で、ハードウェア、ファームウェア、またはソフトウェアにおいて実施してもよいことを、当業者は理解するだろう。
【実施例】
【００３１】
［追跡管理システムの概要］
資産追跡管理機能は、本発明の永続的エージェントによって有効化、サポート及び／または提供することができるサービスの一例である。図１を参照すると、本発明の１つの実施形態に係る資産追跡管理システムは、以下の主要構成要素を備え得るクライアント／サーバアーキテクチャを包含する。（ａ）エージェントを埋め込まれた図示の電子装置の何れか１つからなるクライアント装置Ａ。エージェントソフトウェアは、資産、位置及び他の情報を報告し、遠隔サーバから命令を受信して所望の機能をサポート及び実行するようにエージェントをプログラムする目的で、クライアント装置上で実行される。本発明は、偶発または故意による除去に対するエージェントソフトウェアの永続性を高める能力及び監視サーバからのクライアントのプログラミング性を提供する。（ｂ）情報交換リンクなどの通信リンクＢ。これは交換通信ネットワーク、インターネット、私設及び公衆イントラネット、ラジオネットワーク、衛星ネットワーク、及びケーブルネットワークを含んでもよい。及び（ｃ）ホスト監視システムＣ。これはクライアント装置Ａとホスト監視システムＣとの間の通信を監視するホスト監視サーバ３を含み、クライアント装置から定期的にコンタクトを受けクライアント装置からの情報を記録する。また、監視サーバは、クライアントが行う予定の動作、収集すべきデータ、及びクライアントの次の計画呼び出し時間を含む、行うべき動作に関する命令をクライアントに提供する。クライアント装置は、通信リンクＢ（例えば、ＩＰ接続またはダイヤルアップ電話接続）を介して監視サーバにコンタクトする。監視サーバは、インターネット上で提供されるサービス、または企業イントラネット上の自営サーバの何れかとしてその機能を果たすことができる。ホスト監視システムＣは、顧客、管理者及び資産追跡管理サービスプロバイダに、監視サーバ及びクライアント装置のデータを閲覧しこれらの機能を管理する能力を提供する報告及び管理ポータルを含んでもよい。ホスト監視サーバは、多数の通信手段を介して、顧客、指定された代理人及び法執行機関に、資産監視の状況に関する通知を行うことができる。
【００３２】
図１を参照すると、本発明にかかわる永続的サービスエージェントを実現可能な有用なクライアント装置Ａは、制限的ではないが、汎用または特定用途向けデジタル処理、情報処理及び／またはコンピューティング装置を含み、これらの装置は独立型装置またはより大きなシステムの構成部分（例えば、大容量記憶装置）、携帯型、手持ち型または位置固定型でもよい。本発明のサービスエージェントアプリケーションによって異なる種類のクライアント装置を実現してもよい。例えば、以下さらに説明するように、外部サーバと通信する能力を有する、デスクトップクライアントコンピューティング装置、携帯型コンピューティング装置（例えば、ラップトップ及びノートブックコンピュータ）、または手持ち型装置（例えば、携帯電話、ＰＤＡ（携帯情報端末）、情報家電等）に、本発明のサービスエージェントアプリケーションを適用してもよい。クライアント装置は、装置中に存在するオペレーティングシステムに加えて、装置中に格納されたプログラム、ルーチン及び／または一連の命令及び／または論理によって選択的に動作、起動または設定してもよい。約言すれば、本出願で説明及び示唆される方法の使用は、特定の処理構成に制限されない。
【００３３】
本発明の原理、特徴及び機能の理解を容易にするため、例示実施形態における導入及び実現を参照して説明する。一例として、非制限的に、インターネットのコンテキストに関する配置及び実現の例を参照し、クライアント装置Ａとしてラップトップまたはノートブックコンピュータを参照して本発明を説明する（コンピュータＡ１は略図でデスクトップ装置として表示されているが、携帯型コンピューティング装置でもよい）。本出願では、将来のグローバルネットワークの既存の部分に本発明を適用することを考慮していることを当業者は理解するだろう。さらに、本発明のインターネットの態様はクライアントコンピュータＡ１を参照して説明及び例示しているが、インターネットアプリケーションは、本発明の範囲及び精神から離れることなく他のクライアント装置に容易に適用可能であることを理解されたい。
【００３４】
図１は、資産追跡管理のため本発明を導入可能な情報交換ネットワークの形態の通信リンクＢの概略図である。本発明に係る資産追跡管理エージェントアプリケーションがアクセスする情報交換ネットワークは、非制限的に、公衆及び私設コンピュータネットワーク（例えば、インターネット、イントラネット、ＷＡＮ、ＬＡＮ等）、付加価値ネットワーク、通信ネットワーク（例えば、有線または無線ネットワーク）、同報ネットワーク、ケーブルネットワーク、ラジオネットワーク、及びこうしたネットワークの均質または不均質な結合といった、分散型情報交換ネットワークを包含してもよい。当業者が認識するように、ネットワークはハードウェア及びソフトウェアの両方を含み、個々の目的に対して説明が最も有益になるように、それらの何れか一方または両方として見てもよい。例えば、ネットワークは、通信機能による相互接続が可能なハードウェアノードの集合として説明してもよく、また代替的には、通信機能として説明してもよく、また代替的には、ノードを伴うかまたは伴わない通信機能自体として説明してもよい。さらに、ハードウェア、ファームウェア及びソフトウェアの間の境界は必ずしも明確でないことが認識され、こうしたネットワーク及び通信機能、及び永続的エージェント技術プラットフォームの構成要素は、ソフトウェア、ファームウェア及びハードウェアの態様を包含する。
【００３５】
インターネットは、本発明を実現し得るコンピュータネットワークを含む情報交換ネットワークの一例である。インターネットを構成する（サーバ、ルータ、ゲートウェイ等といった）様々なハードウェア及びソフトウェア構成要素の詳細は、当業技術分野で周知であるので示さない。さらに、ユーザ／クライアント装置及びサーバによるインターネットへのアクセスは、同軸ケーブル、電話回線、無線ＲＦリンク等及びブラウザのようなツールによって実現してもよいことを理解されたい。サーバとクライアントとの間の通信は既定のプロトコルによって行われる。以下指摘するように、本発明の永続的資産追跡管理エージェントアプリケーションは、情報交換ネットワークを通じてサーバの１つと通信可能なクライアントの１つにおいて、またはそれ自体として構成してもよい。本発明は他の既存の技術と組み合わせて動作するが、このことは当業技術分野で周知であるので、本発明を不明瞭にするのを避けるため本出願では説明しない。具体的には、例えば、インターネット、ウェブベースのツール及び通信、及び関連方法及びプロトコルを包含する方法が現在存在する。
【００３６】
図１を参照すると、ホスト監視システムＣは単に、（同時または並行して）１つかそれ以上の通信リンクＢを介して、エージェントをインストールしたクライアント装置Ａとデータを交換するように構成したコンピュータ（例えば、サーバ３）でよい。ホスト監視システムＣは、外部ユーザアクセスを識別及びフィルタリングするルーチン（Ｃ１）を含む。また、ホスト管理システムＣは、報告及び管理ポータルを介して、追跡管理されるクライアント装置Ａに関する情報（例えば、ネットワーク位置情報）について追跡管理される装置Ａの所有者及び／または代理人と直接または間接に通信する（Ｃ３）。例えば、ホスト監視システムＣは、電子メール、ファックス、ポケットベル（登録商標）、電話等によって、追跡管理される装置の所有者、所有者が指定した代理人、会社が指定した部署または代理人、人員を配置した監視サービスステーション、法執行機関等と通信してもよい。代替的には、ホスト監視システムＣは、それ自体が人員を配置した監視サービスステーション、または法執行機関の一部であってもよい。ホスト監視システムＣ及び／または下流のターゲット位置（例えば、人員を配置した監視サービスステーション）では、追跡管理される資産のインベントリリスト、または追跡管理される資産の紛失／盗難状態を管理する。図１では１つのホスト監視システムＣが図示されているが、例えば異なる地理的範囲にある通信ネットワークにわたって複数のホスト監視システムＣを分散させてもよい。
【００３７】
エージェントの重要な機能の１つは、ホスト監視システムＣにコンタクトして、関連するクライアント装置Ａに関する識別情報、位置、及び／または他の情報を報告することである。本発明の１つの実施形態によれば、各クライアント装置Ａは固有の識別情報に関連付けられており、この識別情報はクライアント装置Ａがホスト監視ステーションＣに提供する情報の一部でもよい。固有の識別情報は、電子シリアル番号（ＥＳＮ）、媒体アクセス制御（ＭＡＣ）番号、インターネットホスト名／ＩＰアドレス、所有者／ユーザを特定する識別情報、またはクライアント装置を表示、識別する、及び／またはその識別を可能にする他の数字、英字または英数字情報、エージェントの現実または仮想の地理的位置及びその識別情報を決定または評価するさらなる基礎を提示し得る日付及び時間といったさらに別の情報でもよい。
【００３８】
ステルスエージェントを使用して資産の追跡管理及び／または盗難または紛失にあった装置Ａの回復を行うことの一般的な概念は、本発明の譲受人であるアブソリュートソフトウェア社に譲受された特許で開示されている。エージェントは、ホスト監視システムＣを呼び出す適当な時間を決定しなければならない。ここでは、一旦エージェントがインストールされ実行されると、エージェントは、通信処理を開始するためのユーザの介入なしに、周期的（例えば、Ｎ時間毎）、（例えば、システムまたはユーザのログオンから）所定の時間が経過した後、または装置のシステムブートの後、または何らかの所定の条件の発生時、またはハードウェアの再設定といった何らかの内部または外部のイベントによるトリガの何れかによって、通信リンクＢを介してホスト監視システムＣにその識別情報及び／または位置を報告するということに簡単に言及すれば十分であろう。また、エージェントは、同時に２つかそれ以上の利用可能な通信リンクＢを介してホスト監視システムＣにその識別情報及び位置を報告してもよい。エージェントと、ひいては追跡管理される装置の位置は、例えば、インターネットを介してクライアント装置Ａとホスト監視システムＣとの間の通信を可能にするために使用される全てのＩＰルータのリストを得るトレースルートルーチンによって決定してもよい。
【００３９】
監視システムＣに送信された全ての位置及び資産関連データは中央リポジトリに保持してもよく、許可された管理者は、安全なウェブベースまたはネットワークベースのコンソールを介して週７日２４時間いつでもそれにアクセスできる。１つの実施形態では、エージェントが位置及び資産データを転送すると、監視システムＣは、次のタスクの集合及び次の計画呼び出し日時をエージェントに送信しプログラムする。監視システムＣは、全てのエージェントの送信をアーカイブし、各コンピュータ（Ｃ２）に関する最新かつ正確な監査証跡を提供する。包括的なコンピュータ資産追跡管理及びインベントリ作成ソリューションは、企業ネットワークに局所的に接続しているシステム、及びＩＰまたはダイヤルアップを介して遠隔的に接続する遠隔及びモバイルシステム上でこの情報を取り込む。さらに、情報を定期的に取り込んで、資産の最新の状態を確実に把握できるようにする必要がある。
【００４０】
以下さらに説明するように、追跡管理エージェントは、改竄に対する高い耐性を備えた永続的なものであり、エージェントは、許可されていないユーザに対して透過的になるように設定してもよい。エージェントは、ユーザから隠しておくため、干渉するように設計されている場合以外は、動作中のアプリケーションに干渉しない。本発明に係るエージェントの新規な特徴、機能及び動作を以下さらに十分に論じる。
【００４１】
［永続的エージェントプラットフォームの概要］
ＩＴ管理者は、コンピュータの全ライフサイクルを通じて全てのコンピュータ資産を着実に追跡管理する能力を必要とする。これはＬＡＮの外部で動作する遠隔及びモバイルコンピュータを含む。資産追跡管理エージェントは、コンピュータのライフサイクルの初めに一旦インストールし、コンピュータが廃棄されるまで定期的に通信する必要がある。ライフサイクルの間に、コンピュータは多くのユーザ、ハードウェア及びソフトウェアの変更を経験するので、追跡管理エージェントが永続的であり、これらの３つの分野での変化を報告できることが重要である。本発明に係る永続的エージェントは、たとえハードディスクドライブが再フォーマットされたり、オペレーティングシステムが再インストールまたは改竄されたりした場合でも、例えば、ＩＭＡＣ及びブレーク／フィックス動作と無関係に、ＰＣの全ライフサイクルを通じて、ＰＣ資産の当初の識別情報とその状態を報告することができる。永続的エージェントは、それ自体を保護するように設計されているので、許可されていない削除試行を乗り切って残存することができる。この永続的な特徴は、盗難にあった場合ＰＣ資産との接続を保持し、正確で安全な資産追跡管理を確保するため重要である。
【００４２】
永続的エージェントはホストコンピュータ上に存在する検出不可能な下位ソフトウェアクライアントである。エージェントは永続的ソフトウェアであり、削除するのは極めて困難である。エージェントは、たとえエージェントサービスが従来の手段によって削除された場合でも、エージェントソフトウェアのインストレーションを再構築するように機能する自己回復機能を組み込んでいる。エージェントは、オペレーティングシステムのインストール、ハードディスクドライブのフォーマット、及びさらにはハードディスクドライブの交換までも乗り切って残存する。この残存力は、資産追跡管理及び盗難からの回復（及びエージェントが有効化、サポート及び／または提供し得る他のサービス）を成功させるために重要である。自己回復機能はファイルシステム中に存在しないので、これまでのソフトウェアより検出及び削除が困難である。ソフトウェアの永続的かつ自己回復的な部分はそのステルス性のため削除するのが困難である。このソフトウェアは普通、正しいパスワードを有する許可されたＩＴ管理者によってのみ削除される。自己回復機能は、新たにフォーマット及びインストールされたオペレーティングシステム及び新たにイメージングされたシステムにおいてエージェントのインストールを修復するように機能する。
【００４３】
本発明の別の態様では、エージェントは最初にプログラムされたもの以上に機能を拡張するようにプログラム可能である。エージェントは遠隔サーバと通信し、その際遠隔サーバは次のタスク集合をエージェントに提供することによって、エージェントに対する送信及びプログラムを行う。
【００４４】
エージェントは、何らかの電子装置のハードウェア、ファームウェアまたはソフトウェアにおいて実現してもよい。代替的には、エージェントは、モデム中のＤＳＰまたはコンピュータ中のＣＰＵなどの電子構成要素といった、装置の何らかの構成要素において実現してもよい。さらに、データのパケットの送信及び／または受信を通じて通信リンクを確立することのできる何らかのハードウェア装置の回路においてエージェントの機能を実現してもよい。例えば、電子装置の（ＲＯＭ  ＢＩＯＳ、ＲＯＭ、フラッシュＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ等といった）不揮発性メモリ、ソフトウェアプログラム、マイクロコードプログラム、デジタル信号プロセッサ（「ＤＳＰ」）プログラムまたはオペレーティングシステムのビルトイン機能においてエージェントを具体化してもよい。
【００４５】
本発明の１つの実施形態によれば、永続的追跡管理エージェント（以下「永続的エージェント（Ｐｅｒｓｉｓｔｅｎｔ  Ａｒｇｅｎｔ）」とも言う）はＢＩＯＳ（またはそれと機能的に同等のシステム）において具体化される。当業技術分野で周知のように、ＢＩＯＳはシステムの電源投入時または再起動時に常に実行される起動コードである。これは、処理ユニット中に埋め込まれたマイクロコードでもよく、またメモリ空間中の既定の位置から開始されるソフトウェア（命令）でもよい。こうした命令は、装置上に存在するオペレーティングシステムのブートと無関係かつ通常その前に、電源投入時自己診断（ＰＯＳＴ）といった起動動作及びディスクドライブ、キーボード、及びモニタといったハードウェアの低レベル制御を取り扱う。１つの実施形態では、永続的エージェントは、パーソナルコンピュータのようなクライアント装置Ａ中の読み出し専用メモリ（ＲＯＭ）のようなファームウェアにおいて具体化される。チップに埋め込まれる時、ＢＩＯＳはＲＯＭ中の符号化された命令の集合を含む。以下ＢＩＯＳへの言及は全てＲＯＭベースのＢＩＯＳに制限されないことを理解されたい。
【００４６】
現在販売されているマザーボード上のＢＩＯＳチップの一般的な銘柄にはフェニックステクノロジーズ（Ｐｈｏｅｎｉｘ  Ｔｅｃｈｎｏｌｏｇｉｅｓ）（登録商標）、インテル（Ｉｎｔｅｌ）（登録商標）、ＩＢＭ（登録商標）及びアメリカンメガトレンド（Ａｍｅｒｉｃａｎ  Ｍｅｇａｔｒｅｎｄｓ，Ｉｎｃ．）（登録商標）が含まれる。システム構成要素の中には、固有のＢＩＯＳチップを有するものがあるが、その命令も起動時に装置のメモリに読み出される。例えば、ハードディスク制御装置上のＢＩＯＳは、ドライブ上にトラック及びセクタのテーブルを格納する。アブソリュートソフトウェア社の以前の特許で開示されたＢＩＯＳベースのエージェントと異なって、本発明は、エージェントのためのＢＩＯＳベースのローダの使用を含む改善を提示する。ＢＩＯＳベースのローダはエージェント構成要素をより永続的にするので、資産追跡管理または他のサービス機能を無効にするのはさらに困難になる。また、ＢＩＯＳベースのローダはマシンのブート順序を逆にする必要を解消し、ひいては製造工程中の１つのステップを除去する。また、ＢＩＯＳベースのローダは、アンチウイルススキャナ、ディスク全体の暗号化、及びマスターブートレコード（ＭＢＲ）中のオペレーティングシステムローダを読み出しまたは修正する他のユーティリティといった製品との間で発生し得る互換性の問題を軽減する。
【００４７】
本発明の１つの実施形態によれば、図２に示すように、永続的エージェント（Ｐｅｒｓｉｓｔｅｎｔ  Ａｇｅｎｔ）１０は初め、コアＢＩＯＳフラッシュイメージ（Ｃｏｒｅ  ＢＩＯＳ  Ｆｌａｓｈ  Ｉｍａｇｅ）１３に取り付けられた、周辺機器インタフェースバス（ＰＣＩ）ベースのオプションＲＯＭであるＰＣＩオプションＲＯＭ（ＰＣＩ  Ｏｐｔｉｏｎ  ＲＯＭ）１２のようなオプションＲＯＭ（Ｏｐｔｉｏｎ  ＲＯＭ）に格納される。永続的エージェントに関連しない他の機能をサポートする追加のオプションＲＯＭを取り付けてもよい（図示せず）。永続的エージェント１０は複数のモジュールを備える。図３に示すように、３つの主要なモジュールは、「コンピュトレース（Ｃｏｍｐｕｔｒａｃｅ）」ローダモジュール（ＣＬＭ）１４、適応インストーラモジュール（ＡＩＭ）１６、及び通信ドライバエージェント（ＣＤＡ）１８である。
【００４８】
永続的エージェント１０の３つのモジュールを含む小容量（圧縮した状態で約２２Ｋｂでよい）のＰＣＩオプションＲＯＭ１２は、標準コアフラッシュイメージに結合され、ＢＩＯＳ  ＰＯＳＴの際ＢＩＯＳ及び他のオプションＲＯＭと共に保護されたメモリにロードされる永続的エージェント１０の３つのモジュールを含む。小容量のＰＣＩオプションＲＯＭはＰＯＳＴによって認識され、ＢＩＯＳ  ＰＯＳＴの際ＢＩＯＳ及び他のオプションＲＯＭと共に読み出し／書き込みシャドウメモリにロードされる。この構成は、開発のための労力と、再認定を必要とするコアＢＩＯＳ中のインタフェース規定点の数とを最小化しつつ、セキュリティの向上を可能にするモジュールアーキテクチャを提供する。
【００４９】
ＣＬＭは、ＰＣＩ（ＰＣ装置の場合）、イメージ管理（Ｉｍａｇｅ  Ｍａｎａｇｅｍｅｎｔ）及び実行環境（Ｅｘｅｃｕｔｉｏｎ  Ｅｎｖｉｒｏｎｍｎｅｔ）機能を組み込んでいる。ＣＬＭは、ＢＩＯＳへのインタフェース、ＡＩＭの位置の特定及びアンパック、ＰＣＩオプションＲＯＭの最終サイズへのサイズ変更、及びシステム上の適切なコンテキストでのＡＩＭの実行を担当する。ＡＩＭはハードディスクドライブにアクセスし、アクティブなオペレーティングシステムを検出し、ミニＣＤＡを、発見されたインストレーションに適応する。ミニＣＤＡは通信ドライバである。ミニＣＤＡは、ＨＴＴＰプロトコルのサポート、監視サーバと通信するためのアプリケーション層、ＯＳへのインタフェースのためのサービス層、及びＡＩＭとのインタフェースのための適応層を含む。
【００５０】
ミニＣＤＡは、オペレーティングシステムがロードされる時、コンピュータのファイルシステム中で全機能ＣＤＡがサービスとして実行可能か否かの確認を担当する。全機能ＣＤＡが利用できない場合、ミニＣＤＡは監視サーバから全機能ＣＤＡのダウンロードを開始する。全機能ＣＤＡが存在する場合、監視サーバ上にそのより新しいバージョンが存在するかを頻繁に確認し、新しいバージョンが利用可能な場合は、それ自体を新しいバージョンに置き換える。
【００５１】
様々なモジュールのこれら及び他の実施形態をさらに十分に論じる。
【００５２】
［ＢＩＯＳ  ＰＯＳＴシーケンス及びオプションＲＯＭロード処理］
オプションＲＯＭのロード処理２０を図４のフロー図に示す。永続的エージェント１０を導入したクライアント装置Ａのブート時、ＢＩＯＳ  ＰＯＳＴ処理は自己診断及びチップセット設定ルーチンを実行し（２１）、マザーボード上または拡張カード上の機能をサポートするオプションＲＯＭを探してバスをスキャンする段階に到達する（２２）。この段階では、永続的エージェント１０を含むＰＣＩオプションＲＯＭ１２を下位メモリ（例えば、ＲＡＭ）にロードし（２３）、その初期化ベクトル（以下論じるように、ＣＬＭ１４）を呼び出す（２４）。初期化ルーチンは、サポートされる機能の状態とその最終イメージサイズを決定する。その後、ＢＩＯＳ  ＰＯＳＴ処理はオプションＲＯＭのスキャンを完了し、機能が存在する各オプションＲＯＭの最終位置を計算する（２５及び２６）。そして、永続的エージェントを有効化したＰＣＩオプションＲＯＭ１２を含む、各ＰＣＩオプションＲＯＭの位置を再度特定し、その完了ベクトルを呼び出す（一部のフェニックスＢＩＯＳでは、例えば、ＰＣＩオプションＲＯＭの位置を再度特定せず、初期化ベクトルから戻る前にヘッダ中で宣言された最終サイズに適合するように縮小するだけである）。全てのオプションＲＯＭの位置を再度特定した後、ＢＩＯＳメモリを書き込み保護する（２７）。オペレーティングシステムが無事に起動するまで、ブート装置を順番に呼び出す（２８）。この段階で、装置のオペレーティングシステムとエージェントの両方が同時に実行される。
【００５３】
［ＰＣＩオプションＲＯＭ］
［Ａ．ローダモジュールＣＬＭ］
ＣＬＭ１４は、ＡＩＭ１６のための一時実行環境のセットアップ、ＡＩＭ１６のロード及び圧縮解除、及びその適当なコンテキストでの呼び出しを担当する。ＣＬＭ１４の最後の「行為」は、最小サイズ（２Ｋ）に縮小し、ＰＯＳＴに実行を戻すことである。ＡＩＭ１６が見つからないかまたは無効な場合、ＣＬＭは単に「失敗」となるだけである。
【００５４】
ＣＬＭ１４はＰＯＳＴへのインタフェース、またはＰＣＩオプションＲＯＭ１２の「フロントエンド」である。ＰＣＩオプションＲＯＭ１２のヘッダはＣＬＭ１４中にあり、そのエントリポイントはこのヘッダの標準に準拠して通知される。ＣＬＭ１４は、ＢＩＯＳ  ＰＯＳＴに統合するための次の２つのファンクションポイントを提供する。
１．ＲＯＭヘッダ及びＰＣＩオプションＲＯＭヘッダのペア
２．割り込みハンドラ（Ｉｎｔｅｒｒｕｐｔ  Ｈａｎｄｌｅｒ）
【００５５】
ＰＣＩオプションＲＯＭの様々な構成要素のこれら及び他の機能を以下、例えば、ＩＢＭのＴ４３型ノートブックコンピュータにインストールされたＩＢＭ  ＢＩＯＳを参照して説明する。
【００５６】
［１．ＲＯＭエントリポイント］
ＢＩＯＳによるＰＣＩオプションＲＯＭの列挙の際に、初期インタフェースが提示される。このインタフェースは標準レガシーＲＯＭヘッダとＰＣＩオプションＲＯＭヘッダとのペアである。例えば、フェニックスＢＩＯＳを参照すると、１９１７ｈのＰＣＩベンダＩＤ（ＰＣＩ  Ｖｅｎｄｏｒ  ＩＤ）と１２３４ｈの装置ＩＤとを設定してもよい。上記のように、ＢＩＯＳ  ＰＯＳＴ処理がマザーボード上または拡張カード上の機能をサポートするオプションＲＯＭを探してバスをスキャンする時、ＰＣＩオプションＲＯＭ１２全体をロードしＣＬＭ１４の初期化ベクトルを呼び出す。オプションＲＯＭは圧縮された．ＣＯＭアプリケーションをロードし実行する。ＲＯＭエントリポイントはＳＴＡＲＴ＿ＳＥＧラベルによって定義する。ＳＴＡＲＴ＿ＳＥＧセグメントはＲＯＭヘッダとそのＰＣＩオプションＲＯＭヘッダへのリンクを含む。オプションＲＯＭはオプションＲＯＭのオフセット３へのＦＡＲ  ＣＡＬＬによって初期化される。ジャンプ命令チェーンはここではＯｐｔＲｏｍＰｒｏｃに制御を渡す。
【００５７】
図５を参照すると、ＰＣＩオプションＲＯＭのＣＬＭ１４が引き受けるルーチン３０は以下のように要約してもよい。
ａ．ＢＩＯＳ  ＰＯＳＴメモリマネージャ（Ｍｅｍｏｒｙ  Ｍａｎａｇｅｒ）を探し出す（３１）。
ｂ．制御ＳＴＵＢ＿ＢＬＯＣＫを割り当てる（例えば、割り込みハンドリング及びアプリケーションの実行のための２Ｋ）（３２）。
ｃ．圧縮された（ＣＯＭＰＲＥＳＳＥＤ）アプリケーション及びアプリケーションメモリのバックアップのための拡張メモリを割り当てる（例えば、６４Ｋ）（３３）。
ｄ．圧縮解除された（ＤＥＣＯＭＰＲＥＳＳＥＤ）アプリケーションの実行のためコンベンショナルメモリ中のアプリケーションメモリのブロック（例えば、６４Ｋ）を割り当てる（３４）。
ｅ．（４０：７５ｈにおけるカウント、すなわち、ハードディスクの数による決定に従って）ディスクサービスが利用可能な場合（３５）、即座にアプリケーションを実行し（３６）、メモリの解放に進み（３９）、オプションＲＯＭをゼロに縮小する（４０）。
ｆ．また、ビデオベクトル（Ｉｎｔ  １０ｈ）がＸＢＤＡ（４０：０Ｅｈ）より小さい場合（３７）、Ｉｎｔ  １５ｈをＳＴＵＢ＿ＢＬＯＣＫにフックし（３８）、オプションＲＯＭをゼロに縮小する（４０）。
ｇ．また、フックするものがなくできることがなければ、失敗である！  メモリを解放し（３９）、オプションＲＯＭをゼロに縮小する（４０）。
【００５８】
［２．割り込みハンドラ］
第２のインタフェースは割り込みハンドラである。これは、ＢＩＯＳ  ＰＯＳＴメモリマネージャから割り当てられたメモリからのＰＣＩオプションＲＯＭの初期化手順の初期ロード及び実行の後実行される。このインタフェースはまずＩｎｔ  １５ｈで実行され、次に代替トリガで実行される。Ｉｎｔ  １９ｈは好適な代替トリガでありデフォルトである。割り込みハンドラは、ＰＣＩオプションＲＯＭの初期化の際ＢＩＯＳディスクサービス（ＢＩＯＳ  Ｄｉｓｋ  Ｓｅｒｖｉｃｅ）（Ｉｎｔ  １３ｈ）がまだ利用可能でない場合にのみ起動される。場合によっては、最後のＩｎｔ  １５ｈ／ｆｕｎｃ  ９１００ｈの後ＢＩＯＳによってＩｎｔ  １３ｈが発行されないことがあるので、Ｉｎｔ  １９ｈは好適なトリガ方法である。もう１つの問題は、Ｉｎｔ  １９ｈの直前まで物理ドライブ８０ｈがＩｎｔ  １９ｈでの物理ドライブ８０ｈと一致しないことがあるということである。ＣｏｍＦｉｌｅＳｔｕｂは主要な割り込みフックエントリポイントを含む。
【００５９】
図６Ａ及び図６Ｂを参照すると、割り込みハンドラが引き受ける処理４１は以下のように要約してもよい。
ａ．各Ｉｎｔ  １５ｈトリガの際、９１００ｈが機能する（ハードディスクＩＲＱ完了、これはＩｎｔ  １３ｈが使用中であることを示す）（４２）。
ｂ．ハードディスクサービスが利用可能であるかを確認する（４０：７５ｈにおけるカウント）（４３）。
ｃ．また、ビデオベクトルがＸＢＤＡ以上かを確認する（４０：０Ｅｈ、これはＰＯＳＴのセットアップ（ＳＥＴＵＰ）段階が完了していることを示す）。
ｄ．チェーンがまだであればチェーンする（４４）。
ｅ．Ｉｎｔ  １５ｈのフックをリストアし、トリガＩｎｔ  ｘｘｈをフックして（＿ＴＲＩＧＧＥＲ＿ＩＮＴＮＵＭ設定＝Ｉｎｔ  １３ｈまたはＩｎｔ  １９ｈ）次のＩｎｔ  ｘｘｈを待つ（４５）。
ｆ．次のトリガＩｎｔ  ｘｘｈに際して（Ｉｎｔ  １３ｈまたはＩｎｔ  １９ｈ）、（Ｉｎｔ  １３ｈまたはＩｎｔ  １９ｈ）でトリガＩｎｔ  ｘｘｈをリストアする（４６）。
ｇ．スタックを切り替える（４８）。
ｈ．圧縮解除された（ＤＥＣＯＭＰＲＥＳＳＥＤ）アプリケーションメモリを拡張メモリＢＡＣＫＵＰ＿ＢＬＯＣＫにバックアップコピーする（４９）。
ｉ．圧縮された（ＣＯＭＰＲＥＳＳＥＤ）アプリケーションを圧縮解除された（ＤＥＣＯＭＰＲＥＳＳＥＤ）アプリケーションメモリブロックにコピーする（５０）。
ｊ．アプリケーションを呼び出し、拡張メモリＢＡＣＫＵＰ＿ＢＬＯＣＫから圧縮解除された（ＤＥＣＯＭＰＲＥＳＳＥＤ）アプリケーションメモリのコンテンツをリストアする（５１）。
ｋ．スタックを切り替えて元に戻す（５２）
ｌ．チェーンにより中断されたトリガＩｎｔ  ｘｘｈ呼び出しを完了する（５３）。
【００６０】
［Ｂ．エージェントインストーラモジュール（ＡＩＭ）］
ＡＩＭ１６は、ＣＬＭ１４によってセットアップされる実行のコンテキストでロードされるように設計されている。図７を参照すると、ＡＩＭ１６が引き受けるルーチン５４は以下のステップを含む。実行されると、ＡＩＭ１６はパーティションテーブルをスキャンしてアクティブパーティションを探す（５５）。アクティブパーティション上で、ＡＩＭ１６はオペレーティングシステム（ＯＳ）のシステムディレクトリまたはそれをポイントする設定ファイルを探し（５６）、通信ドライバエージェントＣＤＡのインストーラモードインスタンスを作成しインストールする（５７）。インストール機構はＯＳ毎に特定かつ固有のものであり、ＡＩＭ１６は標準ＯＳインストール機構を使用する。
【００６１】
［Ｃ．通信ドライバエージェント（ＣＤＡ）］
ＣＤＡ１８は、ミニＣＤＡ及び全機能ＣＤＡという２つの形態で存在する。１つの実施形態では、ミニＣＤＡはＰＣＩオプションＲＯＭ１２中に存在する。ミニＣＤＡの機能は、全機能及び／または最新バージョンのＣＤＡが装置上にインストールされ機能しているか否かを決定し、そうでない場合、インターネット経由でホスト監視サーバＣ（図１）から全機能ＣＤＡをロードすることである。そして、全機能ＣＤＡは、装置とホスト監視サーバＣとの間の全ての通信を担当する。
【００６２】
図８を参照すると、ミニＣＤＡはまず（ＡＩＭ１６経由で）インストーラモード５８を実行するが、そこではミニＣＤＡの主要な機能はＯＳサービスとして登録することである。エージェントのインストーラモードインスタンスはそれ自体の別のインスタンスを作成し（５９）、例えば２０００／ＸＰでは、サービスマネージャによってそのコピーを登録する（６０）。実行コードはそれ自体のインストーラコピーをクリーンアップして終了する。この段階から全機能ＣＤＡがＣＤＡの通常の動作を引き継ぐので、ミニＣＤＡがインストーラモード（Ｉｎｓｔａｌｌｅｒ  ｍｏｄｅ）で動作するのは一度だけである。
【００６３】
図９を参照すると、ＯＳが次に起動する際、ミニＣＤＡのサービスモードインスタンスは、例えば、２０００／ＸＰの元でのサービス（Ｓｅｒｖｉｃｅ）として実行される。サービスはサービスマネージャ環境をセットアップし（６２）、（６３で待機した後）適当な時に、アプリケーションとしてそれ自体のインスタンスを開始する（６４）。アプリケーションモードはミニＣＤＡの動作の通常のモードである。エージェントはここで「アクティブ」モードになる。
【００６４】
最新の全機能ＣＤＡが装置中に発見されない場合、図１０に示すように、ミニＣＤＡアプリケーションは、例えば、デフォルトでＨＴＴＰプロトコルを使用して、ホスト監視サーバＣとの通信を開始する。他のプロトコルは追加のモジュールによってサポートされ、ホスト監視サーバＣからエージェントへアップロードされる。ホスト監視サーバＣは、エージェントの識別、監視履歴の格納、設定及びソフトウェア更新といった機能を実行する。ホスト監視サーバＣはミニＣＤＡとのセッションを行い、そのプラットフォームでの必要に応じて、フルバージョンのＣＤＡを起動及びインストールし、（例えば、装置のライフサイクル終了時、またはより新しいバージョンへのアップグレードが可能になるように自己回復機能を無効にするため）ミニＣＤＡを無効にし、エージェントを更新し、またエージェントを設定する。本発明の１つの実施形態に係る通信リンクＢを介したクライアント装置ＡとサーバＣとの間の通信を図１０に示す。例えば、ミニＣＤＡがＢＩＯＳまたは装置のプラットフォームの識別情報または形式をサーバＣに提供する場合、特定のＢＩＯＳまたはプラットフォーム用の全機能ＣＤＡまたはその更新版を装置Ａにダウンロードすればよい。
【００６５】
図１を参照して前に述べたように、ステルスエージェントを使用して資産の追跡管理及び／または盗難または紛失にあった装置Ａの回復を行うことの一般的な概念は、本発明の譲受人であるアブソリュートソフトウェア社に譲受された特許で開示されている。全機能ＣＤＡの装置追跡管理及び通信機能のアプリケーションレベルの機能性は、前に記載され本発明の譲受人によって特許取得されたステルスエージェント（これらの特許を引用によって本出願の記載に援用する）及び／または本発明の譲受人が開発したアブソリュートトラック資産追跡管理製品の機能と同様のものでよい。
【００６６】
一般に、単独で、または他の通信リンクＢ（例えば、ＰＳＴＮ）に基づくアプリケーションと同時に実行可能なインターネットアプリケーションの１つの実施形態では、エージェントは、所定、ランダム、イベントベースまたは遅延型の時間間隔でホストへの呼び出しを開始する。１つの実施形態によれば、「アクティブ」モードでは、エージェントは所定の時間が経過する毎にホストを呼び出す。エージェントは現時刻と固有のエージェント識別情報とを使用してインターネットホスト名を符号化する。そして、１つの実施形態では、エージェントは符号化したインターネットホスト名を使用してＤＮＳ要求を形成する。エージェントはインターネットを通じてこのＤＮＳ要求をホストに送信する。所定の期間が経過した後ＤＮＳ要求をインターネットに送信するエージェントの試行が時間切れになった場合、エージェントは、例えば１分間といった、所定の期間スリープしてから呼び出しを繰り返す。（インターネットとの通信を可能にするウィンソック（Ｗｉｎｓｏｃｋ）機能がない、及び／またはＴＣＰ／ＩＰ通信のためのコンピュータの設定失敗、といった）別のエラーのために呼び出しが失敗した場合、エージェントは数時間後にサイクルを繰り返す。このようにして、エージェントは固有の性質としてインターネット接続の存在を確認する。
【００６７】
ＤＮＳ要求の送信後、エージェントは応答を待つ。ホストから有効な応答を受信すると、その応答からＩＰアドレスを抽出し、基準ＩＰアドレスと比較する。例えば、基準ＩＰアドレスは「２０４．１７４．１０．１」に設定してもよい。抽出したＩＰアドレスが「２０４．１７４．１０．１」に等しければ、エージェントのモードはインターネット側で「アクティブ」から「アラート」に変わる。例えば、ホスト、またはホストの操作員、が、エージェントの識別情報がホストに格納された報告済みの紛失または盗難にあったコンピュータのリストにあるエントリの１つと一致すると判断した場合、ホストはこのＩＰアドレスを送信する。ホストの応答から抽出されたＩＰアドレスが「２０４．１７４．１０．１」に等しくない場合、エージェントはアクティブモードのままとなりその後４時間はホストを呼び出さない。しかし、エージェントがインターネットアプリケーションにおいて「アラート」モードに入ると、エージェントは、クライアントコンピュータをホストに接続するために使用されたインターネット通信リンクをホストに提供するトレースルートルーチンを開始する。こうしたインターネット通信リンクは、クライアントコンピュータを追跡管理する際ホストシステムを支援する。ＤＮＳクエリのソースのＩＰアドレスをＤＮＳクエリ中のホストに送信する。しかし、クエリのソースが「プロキシ」サーバを通じて送信されている場合、クライアントコンピュータのＩＰアドレス（インターニック（ＩｎｔｅｒＮＩＣ）によって割り当てられたものではないことがあるため一意でないことがある）ではクライアントコンピュータの位置を追跡管理するのに不十分であることが多い。こうしたシナリオでは、クライアントとホストとの間の通信を可能にするためアクセスされた他のＩＰルータのアドレスを決定する必要がある。こうしたアドレス及びそれがアクセスされた時間を、当該クライアントのアクセス履歴を記録したプロキシサーバの内部ログと比較する。このようにして、クライアントを一意に識別し追跡管理することができる。さらに、インターネットアプリケーションの「アラート」モードへの移行は、他の利用可能な通信アプリケーションの「アラート」モードへの移行をトリガする条件である。
【００６８】
［ＣＤＡ−サーバ通信］
［Ａ．拡張可能プロトコル］
永続的エージェントをＢＩＯＳに無事に導入することは、例えば、通信プロトコルに盛り込まれた拡張可能性を多用することになる。この拡張可能性がなければ、エージェントはより大規模なものになり機能性を追加または変更するため頻繁な更新を必要とするものになるだろう。ＢＩＯＳはプラットフォームのフラッシュＥＥＰＲＯＭ中にプログラムされており、ＢＩＯＳを更新するには専用ツール（ユーザのインタラクションを必要とする場合が非常に多い）を使用しなければならないので、こうした更新は現実的でも経済的でもない。また、ＢＩＯＳの完全性はコンピュータの動作にとって重要なので、ＯＥＭはＢＩＯＳの徹底的な検査を行っている。
拡張可能プロトコルの主要な要素は以下の通りである。
１）エージェントのメモリスペースを読み出し及び書き込みする方法。
２）メモリを割り当てる方法。
３）メモリを解放する方法。
４）外部モジュールをロードする方法。
５）プロシージャアドレスを決定する方法。
６）プロシージャを呼び出す方法。
エージェントのプロトコルはこうした機構を提供するように設計されている。
読み出しパケットのフォーマットは、｜ＡＤＤＲＥＳＳ｜ＮＵＭＢＥＲ＿ＯＦ＿ＢＹＴＥＳである。
書き込みパケットのフォーマットは、｜ＡＤＤＲＥＳＳ｜ＮＵＭＢＥＲ＿ＯＦ＿ＢＹＴＥＳ｜ＤＡＴＡ．．．である。
通信プロトコルは、パケット中にＤＡＴＡが含まれていないことを決定することによって読み出しパケットを区別する。ＤＡＴＡが存在する場合は、書き込みパケットである。このアドレスベースのプロトコルは拡張可能な設計の基礎である。
【００６９】
本発明の１つの実施形態に係る、通信リンクＢを介したクライアント装置ＡとサーバＣとの間の、拡張可能プロトコルに基づく通信セッションのシーケンスの概要を図１４に示す。通信セッションが処理する個々のトランザクションの例を以下開示する。
【００７０】
通常のセッションは次のような接続シーケンスによって開始される。
１）クライアントが接続する。
２）サーバが、アドレス０ｘｆｆｆｆｆｆｆｆ｜０ｘｆｆｆｆｆｆｆｆ｜４からの専用の読み出しによって応答する。
３）クライアントがそのセッションハンドルのアドレスによって応答する。
【００７１】
ハンドル構造は、クライアントのバージョン、サポートするＯＳのバージョン及びコマンドパケット（Ｃｏｍｍａｎｄ  Ｐａｃｋｅｔ）のような重要な情報を含んでいる。クライアントは「書き込み（ｗｒｉｔｅｓ）」をコマンドパケットに「特殊なもの（ｓｐｅｃｉａｌ）」として解釈し、ＣｏｍｍａｎｄＰａｃｋｅｔＰｒｏｃｅｓｓｏｒ（）ファンクションを呼び出す。ＣｏｍｍａｎｄＰａｃｋｅｔＰｒｏｃｅｓｓｏｒ（）ファンクションは、ファンクションコード、パラメータアドレス、パラメータ数、及び結果アドレスといった引数を取る。実現しなければならないファンクションコードの最小集合は以下の通りである。
・ＣＭＤ＿ＦＵＮＣ＿ＣＣＡＬＬ（「Ｃ」ファンクションを呼び出す）
・ＣＭＤ＿ＦＵＮＣ＿ＳＴＤＣＡＬＬ（ＳＴＤＣＡＬＬファンクションを呼び出す）
・ＣＭＤ＿ＧＥＴＭＨ（モジュールハンドルを入手する（Ｇｅｔ  Ｍｏｄｕｌｅ  Ｈａｎｄｌｅ））
・ＣＭＤ＿ＧＥＴＰＡ（プロシージャアドレスを入手する（Ｇｅｔ  Ｐｒｏｃｅｄｕｒｅ  Ａｄｄｒｅｓｓ））
・ＣＭＤ＿ＡＬＬＯＣ（メモリを割り当てる（Ａｌｌｏｃａｔｅ  Ｍｅｍｏｒｙ））
・ＣＭＤ＿ＦＲＥＥ（メモリを解放する（Ｆｒｅｅ  Ｍｅｍｏｒｙ））
【００７２】
実現可能な他のファンクションコードは、コマンドパケット同士をチェーンして効率を向上するためのものである。
・ＣＭＤ＿ＥＮＤＣ（チェーンを終了する（Ｅｎｄ  Ｃｈａｉｎ））
・ＣＭＤ＿ＩＦ（条件分岐（Ｃｏｎｄｉｔｉｏｎａｌ  Ｂｒａｎｃｈ））
・ＣＭＤ＿ＧＯＴＯ（無条件分岐（Ｕｎｃｏｎｄｉｔｉｏｎａｌ  Ｂｒａｎｃｈ））
【００７３】
このコマンドの小さなライブラリをパケット中で合わせてストリングにして何らかの管理タスクを達成してもよい。重要な管理タスクは以下の通りである。
１）ファイルの作成
２）ファンクションのライブラリ、または実行コードとしてのロード
３）オペレーティングシステムまたは作成されたファイルからのプロシージャの呼び出し。
４）エージェントのコンテキストでのメモリの割り当て及び解放。
【００７４】
［Ｂ．トランザクション］
以下の節ではエージェントと遠隔（例えば、監視）サーバ（ＣＴＳＲＶとしても知られる）との間の通信を説明する。説明される各項目は１つのトランザクション（クライアントとサーバとの間のメッセージのペア）を表していることに注意されたい。トランザクションによってはエージェントの呼び出しの都度発生するものもあれば、実現されるサービスに依存するものもあり、保守または回復要員によって設定されたフラグの結果１回の呼び出しでだけなされるものもある。以下はサーバとエージェントとの間の通常の通信セッションの表である。
【００７５】
［基本的通信（エージェントの呼び出しの都度発生）］
【００７６】
【表１】
0005508502.tif 000002
【００７７】
［クライアント上のＡＴ１  ＤＬＬによる基本的資産追跡管理を伴う呼び出し（クライアントが監視サービスプロバイダの追跡管理サービスに加入している場合呼び出しの都度発生する）］
（資産追跡管理／監視サービスの加入者用の）ＡＴ１データを検索して取り出す。これはＡＴ２  ＤＬＬによって収集されたデータの部分集合であることに注意されたい。クライアント上で実行されるのはＡＴ１またはＡＴ２何れかのＤＬＬであって、両方が実行されることはない。
【００７８】
【表２】
0005508502.tif 000003
【００７９】
［クライアント上のＡＴ２  ＤＬＬによる高度資産追跡管理を伴う呼び出し（クライアントがアブソリュートトラックまたはコンピュトレースコンプリート（ＣｏｍｐｕｔｒａｃｅＣｏｍｐｌｅｔｅ）製品を購入している場合、呼び出しの都度発生する）］
（例えば、アブソリュートトラック及びコンピュトレースコンプリートの顧客用の）ＡＴ−ＩＩデータを検索して取り出す。これはＡＴ１  ＤＬＬによって収集されたデータの拡張集合であることに注意されたい。クライアント上で実行されるのはＡＴ１またはＡＴ２何れかのＤＬＬであって、両方が実行されることはない。
【００８０】
【表３】
0005508502.tif 000004
【表４】
0005508502.tif 000005
【００８１】
［基本的呼び出し及びエージェントのバージョンの遠隔アップグレード（技術サポート動作に基づくオン・オフ］
クライアントエージェントのバージョンを確認し、サーバ上のバージョンと比較する。クライアント側のバージョンが古い場合、遠隔アップグレードを行う。
【００８２】
【表５】
0005508502.tif 000006
【００８３】
［基本的呼び出し及び製造、形式及びシリアル番号の検索（技術サポート動作に基づくオン・オフ］
このファンクションはクライアントの製造、形式及びシリアル番号を検索して取り出しブート順序を変更する。
【００８４】
【表６】
0005508502.tif 000007
【００８５】
［Ｃ．アプリケーションモジュールの起動処理］
この起動処理は、アプリケーションエージェントの識別情報を顧客アカウントにリンクし、永続的エージェントモジュールをインストールする。この処理は以下のように説明される。
・アプリケーションエージェントが接続する。
・サーバはプロトコル中の拡張可能機能を使用してインベントリＤＬＬを送信し、コンピュータを識別する−このＤＬＬはＢＩＯＳ、シャーシ及びハードディスクドライブのシリアル番号といった属性を収集する。
・インベントリ記録をサーバ上に格納し、アプリケーションエージェントから読み出した顧客アカウントにリンクする。
・固有の識別番号（電子シリアル番号）をこのインベントリ記録に関連する装置に割り当てる。
【００８６】
通常のインベントリ記録を以下に示す。
<?xml version="1.0" encoding="UTF-8" ?>
-<CT:data version="1.00" xmlns:CT="http://www.absolute.com/atinfo/persistence">
-<CT:section name="MachineInfo">
<CT:setting name="ComputerMakeWMI" value="VIA TECHNOLOGIES, INC.~~"/>
<CT:setting name="ComputerModelWMI" value="MS-6321~MS-6321~"/>
<CT:setting name="ComputerSerialWMI" value="~~"/>
<CT:setting name="ComputerMake" value="VIA TECHNOLOGIES,INC.~~"/>
<CT:setting name="ComputerModel" value="MS-6321~MS-6321~MS-6321~"/>
<CT:setting name="ComputerSerial" value="~~"/>
<CT:setting name="ComputerAsset0" value=""/>
<CT:setting name="ComputerAsset1" value=""/>
<CT:setting name="SystemSMBIOSVersion" value=""/>
<CT:setting name="SystemBiosVersion" value="VIA694 - 42302e31 Award Modular BIOS v6.00PG"/>
<CT:setting name="SystemBiosDate" value="08/22/01"/>
<CT:setting name="BaseBoardVersion" value=""/>
<CT:setting name="HDDSerialNumber0" value="Y3NYPZDE"/>
<CT:setting name="HDDSerialNumber1" value="YMDYMLJ0046"/>
<CT:setting name="HDDSerialNumber2" value=""/>
<CT:setting name="HDDSeriaINumber3" value=""/>
<CT:setting name="ComputerName" value="PBGR7"/>
<CT:setting name="MACAddress0" value="0050ba432204"/>
<CT:setting name="MACAddress1" value="0050ba4434da"/>
<CT:setting name="OSProductKey" value="VF4BY-WXV47-RR9JQ-H297B-6QQVW"/>
<CT:setting name="IBMComputraceStatus" value="FFFFFFFF"/>
</CT:section>
</CT:data>
【００８７】
［Ｄ．永続的モジュールの再アクティブ化処理］
永続的エージェントモジュールが開始されると、以下のステップが発生してアプリケーション（Ａｐｐｌｉｃａｔｉｏｎ）エージェントを再インストールし、設定をリストアする。
・永続的モジュールエージェントが監視サーバ（ＣＴＳＲＶ）を呼び出す。
・監視サーバ（Ｍｏｎｉｔｏｒｉｎｇ  Ｓｅｒｖｅｒ）はプロトコル中の拡張可能機能を使用してインベントリＤＬＬを送信しコンピュータを識別する−このＤＬＬはＢＩＯＳ、シャーシ及びハードディスクドライブのシリアル番号といった属性を収集し、以前格納されたものと比較する。
・最初のアクティブ化の際に格納されたインベントリ記録を探し、この装置のインベントリに関連する以前のＥＳＮを再割り当てする。アプリケーションエージェントをダウンロード及びインストールすると、アプリケーションエージェントは正常に呼び出しを行う。
【００８８】
上記の処理はＢＩＯＳ及びソフトウェア両方の永続性のため、すなわち、永続性モジュールがどこに配置されるかとは無関係に、適用される（以下のさらなる議論を参照されたい）。
【００８９】
［データ削除（Ｄａｔａ  Ｄｅｌｅｔｅ）］
データ削除は、エージェントによって有効化、サポート及び／または提供されるサービスのもう１つの例である。上記で論じたように、ＣＤＡの残存力が拡張されることによって、資産の物理的位置の追跡管理が改善される。資産の位置が確定された場合でも、準拠地域法、警察の執行及び所有権証明の負担のため、追跡管理される装置の物理的回復は必ずしも実行可能ではないことが認識されている。こうした場合、ＣＤＡの拡張可能プロトコルに基づいたプログラム可能な能力によって、装置上の機密または重要なデータを保護する代替手段が提供される。例えば、クライアント装置Ａのハードディスクドライブ上に格納されたユーザ定義データファイル、ユーザプロファイルまたは他のユーザ定義情報を、監視サーバの制御の元で削除できる。監視サーバが指定する機能及びオプションに応じて、選択したデータ項目についてデータ削除を行うこともできるし、また、オペレーティングシステムを含む装置の記憶媒体全体を削除することもできる。
【００９０】
データ削除機能及びオプションの個々の例は以下のものを含む。
１．選択的データ削除−ユーザの選択に基づいて全てまたは特定のファイルまたはディレクトリを削除する（装置の他の部分はそのまま残す）能力。
２．再ブート時のデータ削除再起動−データ削除の進行中に装置が再ブートされた場合、データ削除クライアントも再起動する。
３．オペレーティングシステム全削除の場合の２段階データ削除処理−監視サーバが「全Ｏ／Ｓデータ削除」を指定した時、エージェント（例えば、ＣＤＡ）が確実にログファイルをアップロードできるように、エージェントは２段階削除処理を行う。第１段階削除の後監視サーバはエージェントからログファイルを取得し、その後第２段階でオペレーティングシステムを削除する。全Ｏ／Ｓデータ削除オプションは以下のステップを含む。
ａ）Ｏ／Ｓ以外の全てのファイルを削除する。
ｂ）エージェント呼び出しを強行しログファイルをアップロードする。
ｃ）Ｏ／Ｓファイルを削除する。
４．データ削除オーバライド−コンピュータが引き続き回復される場合、データ削除が再実行されるのを防止するため、監視サーバがデータ削除実行コードをオフにする。
５．データ削除開始前検査−監視サーバが、対象のクライアント装置のための追加の開始前データ削除検査を提供し、以下のことが確認できるようにする：（ａ）対象のクライアント装置について盗難報告が存在する、（ｂ）クライアント装置が明確に識別され、複製が存在しない、（ｃ）クライアント装置所有者による許可（例えば、所有者代理人と、ホスト監視ステーションのような監視サーバを維持する主体との間の事前許可合意）が存在する。
６．通知−データ削除を開始する際、（例えば、電子メール、ＳＭＳ（ショートメッセージサービス）によって）関与当事者（例えば、許可を出す所有者代理人、及び／または要求者）に通知を送信する。
【００９１】
図１５は、本発明の１つの実施形態に係る、ＣＤＡのクライアント側データ削除ルーチン７０を示す概略フロー図である。図１６は、本発明の１つの実施形態に係る、サーバ側データ削除ルーチン８０を示す概略フロー図である。図１７は、本発明の１つの実施形態に係る、データ削除実行ルーチン９０を示す概略フロー図である。各図を参照すると、サーバ側での通常のデータ削除動作では、全機能ＣＤＡが監視サーバにコンタクトする時（７２及び８１）、装置の識別情報が検証される。装置がデータ削除動作の対象としてマークされていることが検証された場合（８２）、上記の拡張可能通信プロトコルを使用してＣＤＡのデータ削除実行コードまたはサブファンクションをトリガする（７４）。全データ構造を削除するワイルドカード変数を使って削除するデータを定義する（９１）パラメータを伴うデータ削除実行コードまたはサブファンクションを呼び出す（８４及び８５）。サーバは、所定の期間（例えば、１５分）以内にサーバにコンタクトするようにエージェントに命令する（８６）。ＣＤＡサブファンクションは、米国国防総省が推奨するアルゴリズムを使用してデータを回復不能となるように削除してもよい（例えば、米国国防総省標準方式５２２０．２２−Ｍ消去／サニタイズマトリックス）。また、ＣＤＡサブファンクションは、利用可能な組み込み型オペレーティングシステムサポートを使用してデータを削除する。こうしたデータ削除アルゴリズム及び機構は当業者に公知であり、実際の削除機構は本出願で説明されるシステムの能力を変化させるものではない。
【００９２】
データ削除アプリケーションは、例えば、ハードディスクドライブ上のアプリケーション及びデータを削除し（９３）、その後監視サーバを呼び出して（９５）報告（例えば、ログファイル）をサーバにアップロードし（７６及び８８）、データ削除アプリケーションの成功を詳述する（例えば、各動作のログを作成／ログファイルに添付する、及び／または削除したファイルの全パスのログを取る、９４）。データ削除アプリケーションがオペレーティングシステムの削除を除外するように命令された場合、データ削除アプリケーションは、オペレーティングシステム及びエージェントの機能のために必要なもの以外の全てのデータ及びアプリケーションファイルを削除する。削除処理の終了時（８３）、監視サーバへの状態報告（例えば、ログファイル）（７６及び８８）の返送（９４）を試みる。クライアント装置は削除処理の後も動作可能である。サーバ及びエージェントのデータ削除ルーチンは他の動作を続ける（７８及び８７）。例えば、データ削除アプリケーションは、サーバによってオペレーティングシステムを削除するように命令されている場合、オペレーティングシステムのファイルの削除を続けて行う。
【００９３】
オペレーティングシステムのデータ削除のためのルーチンは以下の通りである。第１段階で、データ削除アプリケーションは、オペレーティングシステム及びエージェントを機能させるために必要なもの以外の全てのデータ及びアプリケーションファイルを削除する。削除処理の第１段階終了時、エージェントは状態報告を監視サーバに返す。そして、データ削除アプリケーションは装置上の残りのファイルの削除を続ける。これによって装置は動作不能になることがある。一旦全データ削除処理が完了すると、エージェントは監視サーバを呼び出すことができないことがある。ユーザがオペレーティングシステムを再インストールすれば、エージェントは再び元の機能を取り戻す。
何れの構成でも、データ削除サービスは以下の機能を有する。
・０及び１のパターンを３回ファイルに書き込む
・ランダムデータをファイルに書き込む
・ファイル属性を「ディレクトリ」に変更する
・ファイルの日付／タイムスタンプを固定値に変更する
・ファイルサイズを「０」に設定する
・ファイル名をランダムに生成したファイル名に変更する
・新しいファイル名をディレクトリから除去する
【００９４】
できる限り隠密に目的を実行するため、データ削除アプリケーションは偽装している。削除処理中に実行されるサービスは、バックグラウンドで動作する削除処理を隠すため、「ＷＣＴＳＹＳ．ＥＸＥ」というファイル名が付けられている。削除が完了する前にユーザが処理を中止した場合、一旦エージェントが監視サーバへの次の呼び出しを行えば、アプリケーションはオフにされている削除処理を再開することができる。例えば、エージェントはデータ削除が永久的であるかを決定する（９２）。永久的である場合、残りのデータ削除機能に進む（すなわち、９３等）。永久的でなく、かつデータ削除が以前に完了していなければ（９７）、処理はデータ削除機能に進む。データ削除が完了していれば（９７）、データ削除処理は終了する。データ削除が可能な全てのクライアント装置に対して、エージェントの呼び出し返信期間をモデム及びＩＰ呼び出しの両方について所定の値に設定してもよい（例えば、８６）。
【００９５】
データ削除処理を完了するために必要な時間は、プロセッサの速度、ハードディスクドライブのサイズ、削除すべきデータの量、及びそれまでにクライアント装置上で行われたアクティビティの量といった、いくつかの変数に依存する。データ削除処理を完了するために必要な予想時間は数分間から３０分間以上であることが明らかになっている。
【００９６】
削除が成功した際に返送される報告は以下の情報を含む。
・データ削除アプリケーションがダウンロードされ実行されたことの確認
・削除されたファイルのリスト
・ハードディスクスペースの変化（この情報は、資産追跡管理サービスが利用可能でデータがＰＣから収集可能な場合にのみ利用可能である）
【００９７】
この情報はデータ削除処理が成功した際にユーザに提供してもよい。
【００９８】
データ削除の機能は、サーバからダウンロードしたポリシーファイルによって制御してもよい（８４または８５）。ポリシーファイルは、削除すべきファイル、フォルダ、またはファイルの種類をデータ削除アプリケーションに指示する。ポリシーファイルは他のデータ選択基準を指示してもよい。
【００９９】
実現されたポリシーファイルフォーマットのサンプル
【０１００】
｜ｉｔｅｍｓ｜｜ｉｔｅｍ  ｎａｍｅ＝｜＊．ｅｘｔｅｎｓｉｏｎＴｏＢｅＤｅｌｅｔｅｄ｜  ｔｙｐｅ＝｜Ｕ｜  ｉｎｓｔｒｕｃｔｉｏｎ＝｜Ｐ＄Ｃ：＼＊．ｅｘｔｅｎｓｉｏｎＴｏＢｅＤｅｌｅｔｅｄ｜  ｓｅｑ＝｜０｜／｜
｜ｉｔｅｍ  ｎａｍｅ｜＝｜Ｃ：＼ＦｏｌｄｅｒＮａｍｅＴｏＢｅＤｅｌｅｔｅｄ＼｜  ｔｙｐｅ＝｜Ｕ｜  ｉｎｓｔｒｕｃｔｉｏｎ＝｜Ｐ＄Ｃ：＼ＦｏｌｄｅｒＮａｍｅＴｏＢｅＤｅｌｅｔｅｄ＼｜  ｓｅｑ＝｜１｜／｜
｜ｉｔｅｍ  ｎａｍｅ｜＝｜Ｃ：＼ＬＪ＼ＦｉｌｅｎａｍｅＷｉｔｈＥｘｔｅｎｓｉｏｎＴｏＢｅＤｅｌｅｔｅｄ｜  ｔｙｐｅ＝｜Ｕ｜  ｉｎｓｔｒｕｃｔｉｏｎ＝Ｐ＄Ｃ：＼ＬＪ＼ＦｉｌｅｎａｍｅＷｉｔｈＥｘｔｅｎｓｉｏｎＴｏＢｅＤｅｌｅｔｅｄ｜  ｓｅｑ＝｜２｜／｜
｜／ｉｔｅｍｓ｜
【０１０１】
［拡張可能プロトコルのさらなる用途］
上記で述べ、かつ以下さらに述べるように、全機能ＣＤＡ及びミニＣＤＡは、（例えば、非ＢＩＯＳまたはソフトウェアによる永続的実施形態において）拡張可能プロトコルを使用して、監視サーバ上で利用可能な最新バージョンに対応するように保たれている。また、この能力を使用して、他の資産追跡管理拡張機能を最新のバージョンに更新している。拡張可能プロトコルに含まれる汎用サブファンクションは汎用かつ柔軟なものなので、それを活用して、上記で説明した資産追跡管理及びデータ削除に加えて、多数の機能を有することができる。拡張可能プロトコルの別の用途の例は、監視サーバからのアプリケーションのダウンロード及び開始である。実行コードをメモリにダウンロードしてから開始してもよい。代替的には、インストーラを監視サーバからダウンロードして、アプリケーションのインストールまたは既存のアプリケーションのアップグレードを開始してもよい。
【０１０２】
エージェントの拡張可能プロトコルを活用して機能を提供する用途の例は以下のものを含む。
・永続的ファイアウォール。エージェントはネットワーク通信ファイアウォールをダウンロードし実施することができる。また、エージェントは、ファイアウォールの設定の変更またはファイアウォールの除去または無効化を監視及び補正することができる。エージェントは永続的（削除または除去できない）なので、はるかに永続的な方法でファイアウォールのようなセキュリティ機能を提供及び実施することができる。
・データ暗号化。永続的エージェントは、サーバからの命令に応じて、マシン上のデータを暗号化することができる。これによって、はるかに永続的な方法で、盗難または紛失の際のデータ保護が可能になる。また、エージェントは、盗難後暗号化鍵またはパスワードを変更し、ユーザのデータを保護することもできる。暗号化パスワードまたは鍵を変更することによって、ユーザがパスワードを知っている内部盗難の場合でもマシンを保護することができる。
・位置追跡管理。エージェントの主要な機能の１つは、ホスト監視システムにコンタクトして装置の識別情報及び物理的位置を報告することである。物理的位置は、マシンのＩＰアドレスまたは他の関連ネットワークパラメータによって暗黙に定義することができる。エージェントは、装置の物理的位置を識別するため、ビルトインＧＰＳ受信機またはセルラネットワーク受信機及び送信機からのデータを使用してもよい。こうした構成では、エージェントはＧＰＳまたは支援型ＧＰＳの位置情報（最新の、または一連のログ情報）のログを取ることができる。ＣＤＡは周期的にＧＰＳ位置を読み取ってログファイルを作成することができ、ログファイルは呼び出しの際サーバにアップロードすることができる。
【０１０３】
［モジュールの代替実施形態］
本発明は、（ａ）様々な装置（例えば、ＰＣ）製造業者による様々なＢＩＯＳ実装、（ｂ）ＢＩＯＳとの様々なインタフェースの要求、（ｃ）様々な装置製造業者または様々な装置形式で利用可能な多様なフラッシュメモリスペース、及び（ｄ）ＢＩＯＳ  ＰＣＩオプションＲＯＭ列挙フックなしで動作する能力、を含むがそれらに制限されない要素に基づいて固有の環境に適応する永続的エージェントの多様な実施形態において実現できる。こうした要素に適応するために、ＣＬＭはＰＣＩオプションＲＯＭのフォーマットで、ＡＩＭ及びＣＤＡは別個に格納してもよく、またＣＬＭに結合してもよい。ＣＬＭは、ＰＯＳＴサイクル終了時に小さなスタブに縮小する。装置が、ＰＣＩオプションＲＯＭを列挙しないＢＩＯＳを有する場合、ＣＬＭはパーティションギャップ中に存在して代替マスターブートレコード（ＭＢＲ）を使用してもよい。永続的エージェントモジュール構成の様々な実施形態を以下さらに十分に説明する。
【０１０４】
［Ａ．フラッシュ常駐型］
本発明のフラッシュ常駐型実施形態では、ＣＬＭ、ＡＩＭ及びミニＣＤＡは全てＢＩＯＳフラッシュイメージにロードする。このアプローチは、ＰＣＩオプションＲＯＭをＢＩＯＳフラッシュイメージからロードするＢＩＯＳで使用される既存の処理を活用している。追加のモジュール（ＡＩＭ及びミニＣＤＡ）はフラッシュ中に別個に格納してもよく、また、図３の場合のように、ＰＣＩオプションＲＯＭ中のＣＬＭに結合してもよい。
【０１０５】
ＡＩＭ及びミニＣＤＡがＣＬＭに結合されている場合、１８〜２０ＫＢのＰＣＩオプションＲＯＭがＰＯＳＴによって上位シャドウメモリにロードされ、ＡＩＭはＣＬＭによってアンパックされる。そして、ＡＩＭは、ミニＣＤＡをシステムのために適応及び設定し、制御をＣＬＭに戻す。ＣＬＭはＰＣＩオプションＲＯＭイメージを最小サイズに縮小し、２ＫＢのＲＯＭブロックとして上位メモリ領域に留まる。ＡＩＭ（〜６ＫＢ）及びＣＤＡ（〜１０ＫＢ）を単純にフラッシュイメージ中に格納してＣＬＭに結合しない場合、ＣＬＭはＡＩＭ及びミニＣＤＡの位置を特定してアンパックする追加イメージアクセス機能を組み込んでいる。ＣＬＭ、ＡＩＭ、及びミニＣＤＡの動作は上記の結合する方法と同様である。ＣＬＭのサイズはわずかに大きくなり、フラッシュイメージの対象となるプラットフォームに合わせて調整される。このアプローチは、ベンダＩＤが事前に確定しており、フラッシュ常駐型ＰＣＩオプションＲＯＭの認識が可能であることを想定している。フラッシュイメージ管理を図１１に示す。
【０１０６】
［Ｂ．ハードディスクドライブのパーティションギャップ］
ＢＩＯＳ固有のスペース制限のため、永続的エージェント全体の全てのモジュールのためにはＢＩＯＳフラッシュメモリ中のスペースが不十分なことがある。この場合、装置ベンダのサポートに応じて、ＡＩＭ、またはＡＩＭ及びミニＣＤＡは、ハードディスクドライブのパーティションギャップのような大容量記憶装置中のユーザがアクセスできない領域に存在してもよい。これは、「ソフトウェア永続型」の形態の一例である。この実施形態では、ＣＬＭはやはりフラッシュ中に存在し、これまでの実施形態の場合と同様に、ＰＣＩオプションＲＯＭ列挙処理の際呼び出されるが、ＣＬＭはＡＩＭをロードし、ＡＩＭは別の位置からＣＤＡを実行する。
【０１０７】
図１３は、永続的エージェントの追加モジュールがパーティションギャップ内に存在する状況で関連するパーティションギャップイメージ管理を示す。このギャップはＭＢＲと第１のパーティションとの間に存在する。このギャップは、例えば、大部分の最近のハードディスクドライブでは６２セクタであるが、セクタの一部は他のソフトウェアとの互換性を維持するインストレーションユーティリティによって確保されているので、使用可能なサイズは約２７Ｋｂである。このサイズは、サーバと通信し他のモジュールをＯＳにブートストラップするために必要なエージェントの基本モジュール（ＡＩＭ、ＣＤＡ）を組み込むのに十分である。
【０１０８】
［Ｃ．ホスト保護領域（ＨＰＡ）］
図１２を参照すると、代替的には、全てのモジュールのためにはＢＩＯＳフラッシュメモリ中のスペースが十分でないことがある状況で、前の実施形態の場合のようにハードディスクドライブパーティション中に永続的エージェントの追加モジュール（すなわち、ＡＩＭ、及び／またはミニＣＤＡ）を格納する代わりに、永続的エージェントの追加モジュールは、ＨＰＡ内、またはその機能的同等物といった大容量記憶装置上の別のユーザがアクセスできない領域中に存在する。これはソフトウェア永続型の別の例である。ＨＰＡをロック及びアンロックするため追加サポートが必要である。このＨＰＡアクセス機構はＰＣ  ＯＥＭ毎に固有である。ＨＰＡ内のイメージは実行時の管理が必要なことがある。ドライバ及びアプリケーションは、ＢＩＯＳインタフェースによって認証を行いＨＰＡスペースの当該部分を管理するために必要な実行時アクセスを取得する既存の方法をサポートする。この実施形態では、ＣＬＭはやはりフラッシュ中に存在し、これまでの実施形態の場合と同様に、ＰＣＩオプションＲＯＭ列挙処理の際呼び出されるが、ＣＬＭはＡＩＭをロードし、ＡＩＭは別の位置からＣＤＡを実行する。
【０１０９】
［Ｄ．非フラッシュＣＬＭ］
大部分の安全な実施形態はＣＬＭをＢＩＯＳフラッシュメモリ中に存在させているが、これをサポートしない環境もあり得る。ＯＥＭがＰＣＩオプションＲＯＭのスキャン中にＢＩＯＳがフラッシュ中のＣＬＭヘッダを列挙しないように構成した場合そうなることがある。こうしたシステムでは、ＣＬＭの代替の位置は、既存の製品と比較して優れたソリューションを提供する。代替ＭＢＲを使用することはこのことに対するソリューションを提供する。この実施形態では、ＣＬＭは代替マスターブートレコードからロードする。そして、ＣＬＭは、これまでの実施形態で説明したように、ＡＩＭ及びミニＣＤＡをロードしてパーティションギャップ中に配置し、これらに制御を渡す。エージェントサブローダのための代替ＭＢＲのアプローチは本譲受人によって特許取得されており、その特許を引用によって本出願の記載に援用する。本出願のＣＬＭは同様のサブローダのアプローチを利用してもよいが、本発明では、ＣＬＭはＡＩＭ及びＣＤＡに関連して以前の特許には見られない追加の異なる機能を有している。
【０１１０】
［Ｅ．フラッシュ常駐型オペレーティングシステムイメージへの統合］
この実施形態では、ミニＣＤＡを、全体がフラッシュメモリ中に格納されたオペレーティングシステムイメージに統合する。永続性は永続的なオペレーティングシステムイメージ中に組み込まれることによって達成され、オペレーティングシステムに対する偶発または故意による修正を防止するために使用されるものと同じセキュリティ機構によって保護される。この場合、ミニＣＤＡはオペレーティングシステムのユーティリティによって直接ロードされ実行される。続いて全機能ＣＤＡがダウンロードされ揮発性メモリにインストールされる。別のほぼ同様の実施形態では、オペレーティングシステムのユーティリティによってＣＬＭがロードされ、その後ＣＬＭはミニＣＤＡをロードし実行する。この後者の場合、ＣＬＭとミニＣＤＡはどちらも永続的なオペレーティングシステムイメージ中に組み込まれている。
【０１１１】
［Ｆ．サーバ主導の接続］
この実施形態では、サーバは、ＣＤＡがサーバとの通信を開始するのを待つ代わりに、ＣＤＡとの通信を開始する。サーバ主導の接続は、時間制約がありクライアントによる次の計画呼び出しまで待つことのできないサーバ命令の実行を可能にする。この場合、サーバは、ＣＤＡがサーバを呼び出すのに使用する主要な通信ネットワークまたはプロトコルと同じものを使用してもよくまた異なるものを使用してもよい。時間に左右される場合の一例は、装置の盗難が報告された結果ネットワークオペレータによって通信が遮断される前に不適切な場所に置かれたかまたは盗難にあったモバイル装置上でデータ削除操作を実行することである。時間に左右される任意のサービスをこの方法で呼び出してよい。
【０１１２】
［Ｇ．オペレーティングシステムの配布への統合］
この実施形態では、ミニＣＤＡを、オペレーティングシステムの配布（例えば、ソフトウェア、ハードウェアのファームウェア）に統合する。永続性はオペレーティングシステムの基本的で不可分な構成要素として組み込まれることによって達成される。この場合、これはオペレーティングシステムに対する偶発または故意による修正を防止するために使用されるものと同じセキュリティ機構によって保護される。オペレーティングシステムの再インストールの場合、ミニＣＤＡはオペレーティングシステムのインストール媒体から再インストールし、その結果ミニＣＤＡが提供するサービスは二度目のインストールにおいて可能になる。この実施形態では、ミニＣＤＡはオペレーティングシステムの機能によって直接ロードされ実行される。その後、他の実施形態の場合と同様に全機能ＣＤＡをダウンロードしインストールする。
【０１１３】
［Ｈ．拡張可能ファームウェアインタフェース（ＥＦＩ）］
永続的モジュール（すなわち、ＡＩＭ及びＣＬＭ）のＢＩＯＳ実施形態は、ミニＣＤＡまたはエージェントを、ＯＳローダに先立つＥＦＩドライバまたはＥＦＩアプリケーションの何れかとしてＥＦＩ環境中にインストールするように修正してもよい。永続性は、ＥＦＩがＣＬＭをロードした後、ＣＬＭがＡＩＭを使用してＢＩＯＳ実施形態と同様にミニＣＤＡをインストールまたは復元した時達成される。ＢＩＯＳ実施形態と同様に、ミニＣＤＡは、ＯＳブートの後、全機能を備えたエージェントをダウンロードしインストールすることができる。
【０１１４】
［最適化］
ＣＬＭのＰＣＩオプションＲＯＭをシステムＢＩＯＳに統合するのは困難ではない。例えば、ＩＢＭのＴ４３型ノートブックコンピュータには、オプションＲＯＭ構造を有するＩＢＭ  ＢＩＯＳがインストールされている。その形態及び機能は、ＢＩＯＳ中に既に存在するビデオオプションＲＯＭまたはマザーボードコントローラオプションＲＯＭと同様である。簡単に行う場合、ＣＬＭのベンダＩＤを認識するようにＢＩＯＳを簡単に再構成しなければならない。ＣＬＭの形態及び機能をより密接にホストＢＩＯＳに統合する場合、ある種のサイズ最適化を行ってもよい。フラッシュイメージ内にＣＬＭ、ＡＩＭ、及びＣＤＡを格納するために必要な２０ＫＢまでの小さなスペースを節約する機会が存在する。以下は、３つの主要モジュール中の様々な機能と各主要機能グループの概算サイズとをリストにした表である。「最適化」縦列は、各モジュール中の機能グループの最適化の可能性の推定のリストである。
【０１１５】
【表７】
0005508502.tif 000008
【０１１６】
モジュール中の様々な機能の中、ＣＬＭの機能（ＰＣＩ、イメージ管理、及び実行環境）だけをホストＢＩＯＳからの固有のサポートによって最適化してもよい。ＢＩＯＳの圧縮アルゴリズムを使用し、ＡＩＭ及びＣＤＡモジュールを格納する「結合」法を使用することによって、イメージ管理機能のサイズを約０．３ＫＢ縮小することができる。全てのディスク資源を利用できるようにし、ＰＯＳＴメモリマネージャのサポートの必要がなくなるように、ＰＣＩオプションＲＯＭがＰＯＳＴの終わり近くでロードされるようにすることで、実行環境設定及び制御機能は０．８ＫＢ縮小できる。２０ＫＢまでのサイズは約１８．９ＫＢまで小さくなる。ＣＬＭ中でプラットフォーム固有のサポートが必要な場合、上限が２ＫＢ増大することがある。
【０１１７】
ＢＩＯＳインタフェースがＳＭＢＩＯＳを通じてＣＬＭを検出及び設定するためのアプリケーションプログラムインタフェース（ＡＰＩ）を公開する場合、２ＫＢの見えるＲＯＭの「スタブ要求」が緩和される。
【０１１８】
［永続的サービスエージェントの携帯デジタル装置への導入］
永続的サービスエージェントは、携帯デジタル装置のような追加装置を追跡管理するように拡張してもよい。インテリジェントエージェントは、家庭用電子装置（例えば、アップル（Ａｐｐｌｅ）ＩＰＯＤ（登録商標）デジタルメディアプレーヤ、ＭＰ３プレーヤ、携帯電話、またはマイクロソフト（Ｍｉｃｒｏｓｏｆｔ）ＸＢＯＸ（登録商標）またはソニー（Ｓｏｎｙ）プレイステーション（登録商標）といったゲーム装置）のＢＩＯＳオプションＲＯＭ、ハードディスクドライブ上のパーティションギャップ、ハードディスクドライブのホスト保護領域（ＨＰＡ）、埋め込み型ファームウェア（例えば、ＯＳ  ＲＯＭ）に存在してもよい。上記で論じた例で説明したように、一旦実行されると、ＣＤＡは監視サーバと通信する（ＣＤＡ主導またはサーバ主導何れかの通信）。ＣＤＡの機能は、メモリへのコピー、メモリからのコピー及びメモリからの実行といった汎用機能でもよい。こうした機能は、ＣＤＡとの通信の際監視サーバが提供するシーケンスに基づいて実行される。こうしたシーケンスを実行して、アプリケーションをメモリにコピーして実行し、その結果を読み出して監視サーバに返してもよい。上記で説明したように、永続的エージェントはプログラム可能でもよい。
【０１１９】
永続的サービスエージェントは、例えば以下のような様々な携帯用及び／または個人用デジタル装置に導入してもよい。
−個人情報端末（ＰＤＡ）
−ＭＰ３プレーヤ、デジタル録音機、携帯ＴＶ、ラジオ、等といったデジタルメディア装置
−携帯電話、双方向ラジオ、等といった無線装置
−全地球測位システム（ＧＰＳ）、等といった手持ち型装置
−携帯型コンピュータゲーム（任天堂（登録商標）（Ｎｉｎｔｅｎｄｏ（登録商標））、ソニー（登録商標）プレイステーション（登録商標））、等といったゲーム装置
−デジタルカメラ
【０１２０】
エージェント導入の個々の例は以下のものを含む。
【０１２１】
［１．ＩＰＯＤ（登録商標）デジタルメディアプレーヤ］
エージェントは監視サーバにコンタクトし、また監視サーバからコンタクトを受けるように事前にプログラムされる。装置がインターネットに接続するか、またはインターネットに接続した別のベース装置（例えば、パーソナルコンピュータ）に接続するまで、エージェントは待機状態になる。一旦装置が（ＩＴｕｎｅｓ（登録商標）のような）サードパーティのウェブサイトに接続すると、エージェントはウェブサイトの埋め込み型制御を使用して監視サーバに接続する。代替的には、エージェントはそれ自体のコピー、または別のエージェントを接続先のベース装置にインストールして、監視サーバに接続してもよい。一旦接続すると、エージェントは監視サーバから装置の状態を確認する。この確認は、装置の固有の識別情報（例えば、電子シリアル番号（ＥＳＮ）、製造業者のシリアル番号、またはエージェントに埋め込まれたシリアル番号）の検査を含んでもよい。この固有の識別情報を監視サーバのデータベースと照合する。携帯装置に（例えば、装置の元の所有者または代理人によって）紛失を示すフラグが設定されている場合、エージェントは携帯装置をトリガして携帯装置自体を機能しない状態にするための操作（例えば、上記で論じたデータ削除、またはシャットオフまたは無効化または、少なくとも携帯装置の継続使用ができなくなる程度に携帯装置の少なくともいくつかの機能を動作不能にする他の同様の操作）を行わせる。代替的または追加的に、エージェントは装置をトリガして、携帯装置を所持している人物に対して情報メッセージを表示させる。メッセージは、装置の所有者への返還、装置の返還または再有効化に関連する謝礼といったさらなる情報を得るため、所有者、装置ベンダまたは資産追跡管理会社に連絡するようその人物に指示するものでもよい。
【０１２２】
［２．携帯電話］
エージェントは（例えば、サーバ主導またはエージェント主導で）監視サーバにコンタクトするように事前にプログラムされる。一旦装置が無線ネットワークに接続されると、エージェントは標準通信プロトコルを使用して監視サーバと通信してもよく、また、代替的または追加的に、ＳＭＳメッセージ（または別の種類のプロトコル）を監視サーバまたは所有者の代理人に送信してもよい。一旦接続すると、エージェントは装置の固有の識別情報を監視サーバのデータベースに対して有効であることを確認する。この確認は、装置のＥＳＮまたはシリアル番号（製造業者のシリアル番号、またはエージェントに埋め込まれた識別番号、またはＳＩＭカードＩＤ、等）といった識別番号の検査を含んでもよい。この固有の識別情報を監視サーバのデータベースと照合する。装置の元の所有者によって、携帯装置に紛失を示すフラグが設定されている場合、エージェントは携帯装置をトリガして携帯装置自体を機能しない状態にするための操作（例えば、上記で論じたデータ削除、またはシャットオフまたは無効化または、少なくとも携帯装置の継続使用ができなくなる程度に携帯装置の少なくともいくつかの機能を動作不能にする他の同様の操作）を行わせる。代替的または追加的に、エージェントは装置をトリガして、携帯装置を所持している人物に対して情報メッセージを表示させる。メッセージは、装置の所有者への返還、装置の返還または再有効化に関連する謝礼といったさらなる情報を得るため、所有者、装置ベンダまたは資産追跡管理会社に連絡するようその人物に指示するものでもよい。
【０１２３】
［３．ゲームコンソール］
エージェントは（例えば、サーバ主導またはエージェント主導で）監視サーバにコンタクトするように事前にプログラムされる。一旦ゲーム装置がオンラインゲームサーバに接続すると、エージェントは、ゲームサイトに埋め込まれた標準通信プロトコル（例えば、ＩＰ）を使用して監視サーバと通信する。代替的には、エージェントはＴＣＰ／ＩＰまたは標準インターネットプロトコルを別のサードパーティ監視サーバに送信してもよい。一旦接続すると、エージェントは装置の固有の識別情報を確認し、これまで上記で説明した実施形態とほぼ同様の方法で適当な動作を行う。
【０１２４】
上記で開示したサービスエージェントは、普通はサービスエージェントを削除すると予想されるような動作が行われても永続的であるという能力を有する。エージェントはプログラム可能なので、サーバ主導のコマンドに基づいてその機能を拡張することができる。本発明は、事前導入されたサービスエージェントが、装置の「ユーザ」の操作と無関係に「アクティブ」な状態を維持する能力を改善する。エージェントに対するユーザの操作は故意によるものでも偶発的なものでもよい。本発明は、（例えば、コンピュータ資産のライフサイクル終了時に）正当な必要によるエージェントの無効化を可能にする一方で、サービスエージェントの偶発による除去から許可されたユーザを保護する。本発明は、許可されていないユーザがエージェントソフトウェアを除去するのを防止する。本発明の永続的な属性は、セキュリティ及び資産管理両方の用途において価値を有する。安全でステルス性を有する装置追跡管理ソフトウェアアプリケーションの状況では、貴重な資産の盗難を隠すことは、窃盗犯がどんな操作を行うかに関らずはるかに困難になっており、ソフトウェアは永続して遠隔監視センタにコンタクトすることが可能であるため、本発明は大きな価値を有する。さらに、サービスエージェントが永続的な性質を有しているため、トラッキングエージェントが偶発的に除去されないという信頼が得られ、セキュリティ要員に安心が提供される。安全な資産管理アプリケーションの状況では、全ライフサイクルにわたる資産の追跡管理の連続性が保証されるため、これはさらなる価値を有する。今日のＩＴ管理者の主要な課題は全ライフサイクルにわたって資産の追跡管理を行う能力である。ライフサイクルの間に、装置はあるユーザから別のユーザに引き渡されることが多く、その際装置は再イメージング、またはオペレーティングシステムの再インストール、または他の形で資産の追跡管理を困難にする保守手順の対象になることがある。
【０１２５】
以上、ブロック図形式の機能モジュールによって本発明の処理及びシステムを説明した。特記なき場合、本発明の範囲及び精神から離れることなく、１つかそれ以上の機能を単一の物理的装置またはソフトウェア製品中のソフトウェアモジュールに統合してもよく、また１つかそれ以上の機能を単一の場所またはネットワーク全体に分散した単独の物理的装置またはソフトウェアモジュールにおいて実現してもよいことが理解されるだろう。
【０１２６】
各モジュールの実際の実現に関する詳細な議論は本発明の理解を可能にするために必要でないことが認識されるだろう。本出願におけるシステム中の様々な機能モジュールのシステム属性、機能性及び相互関係の開示によれば、実際の実現はプログラム及びシステムエンジニアの通常の技能の範囲内である。当業者は、一般的な技能を適用して過度な実験なしに本発明を実施することができる。
【０１２７】
本発明に係る実施形態に関連して本発明を説明したが、本発明の範囲及び精神から離れることなく様々な修正及び改善をなし得ることが当業者には明らかであろう。例えば、情報抽出アプリケーションは、ユーザにウェブブラウズのさらなる柔軟性を提供する異なるまたは追加の処理に対応するように容易に修正することができる。従って、本発明は個々の例示実施形態によってではなく、添付の請求の範囲によってのみ制限されることが理解されるだろう。
【符号の説明】
【０１２８】
３    ホスト監視サーバ
１０    永続的エージェント
１２    ＰＣＩオプションＲＯＭ
１３    コアＢＩＯＳフラッシュイメージ
１４    ローダモジュール
１６    適応インストーラモジュール
１８    通信ドライバエージェント
Ａ    クライアント装置
Ｂ    通信リンク
Ｃ    ホスト監視システム
【図１】
0005508502.tif 000009
【図２】
0005508502.tif 000010
【図３】
0005508502.tif 000011
【図４】
0005508502.tif 000012
【図５】
0005508502.tif 000013
【図６Ａ】
0005508502.tif 000014
【図６Ｂ】
0005508502.tif 000015
【図７】
0005508502.tif 000016
【図８】
0005508502.tif 000017
【図９】
0005508502.tif 000018
【図１０】
0005508502.tif 000019
【図１１】
0005508502.tif 000020
【図１２】
0005508502.tif 000021
【図１３】
0005508502.tif 000022
【図１４】
0005508502.tif 000023
【図１５】
0005508502.tif 000024
【図１６】
0005508502.tif 000025
【図１７】
0005508502.tif 000026