永続性サービス提供エージェント
様々なサービス(例えば、資産追跡、データ削除、及びソフトウェア更新)を可能にし、サポートし、及び/又は、提供するための不正改変を防止するソフトウェアエージェントであって、POST間の制御をロードし、かつ、獲得するOS非依存のローダーモジュール(CLM)、適合インストーラモジュール(AIM)、通信ドライバーエージェント(CDA)を含む複数機能モジュールを有する。1つの制御は、CLMで処理され、AIMをロードし、次に、CDAを検索し、評価し、解凍し、検出されたOS環境に適合させる。CDAは、2つの形式で存在し、フル又は現在のCDAがデバイス上のどこかに存在するかどうかを決定するミニCDA、デバイスと監視サーバ間の全ての通信に責任を有するフルファンクションCDAである。別の観点では、エージェントが実行するサービス機能は、リモートサーバで制御可能であり、エージェントで利用可能な一般的サブ機能コールを組合せることで制御可能である。このエージェントのプログラミング可能な機能は、エージェント機能をサーバドリブンコマンドに基づいて拡張可能である。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータ及びネットワーク環境における永続性又は不正改変防止サービスを提供するエージェントに関する。
【背景技術】
【0002】
今日の競争が激しいビジネス環境においては、情報技術(IT)は、日々のビジネス業務における知識の交換において、ますます重要な役割を演じている。個人、システム、組織、そして他の事業資産は、この新興ビジネスウェブにおいて、相互接続されており、ITの展望が、ますます複雑になるので、コンピュータ資産を効率的に管理する必要がある。結果として、組織は、その投資を最大化し、コストを制御しようとするために、以前よりもっと、コンピュータの資産担保を管理し、安全化することを掌握する必要性を認識している。
【0003】
ネットワーク下でコンピュータを管理するために要求される時間と財源の量は、重要な意義を有する。これらの資産が、電子商取引やビジネスインテリジェンスのようなキー・ビジネスプロセスをサポートする。もし、これらの資産が守られない、及び、それらを積極的に管理する能力が無いなら、短期及び長期の損失の可能性は、非常に高い。
【0004】
組織が出くわす主要な問題の1つは、具体的なソフトウェアイメージ及び記憶装置ドライブに関して要求される更新を管理する能力であり、それらのコンピュータの場所及び進行中の移行を追跡する能力である。何の資産を所有するか、それらは、時間内に変更されているかということを知ることは、進行中のIT資産及びポリシー管理にとって基本となる。この知識は、また、ハードウェア又はソフトウェア更新、もしくは、コンピュータ廃棄のような、より良い計画立案及び予算決めを可能にする。この問題は、さらに、地理的に拡大した会社ほど、モバイル及びリモートシステムの導入がますます一般化するほど、度合いを増す。これらの資産及びその上のソフトウェアイメージを追跡し続けることは、コンピュータそれ自身の価値が重要であるばかりでなく、マシン上にある価値あるデータの保護のために、ますます重要になっている。損失又はミス設定された資産は、その資産上の秘密情報や独占情報を読み出し可能にし、アンチウイルス更新の無い状態にし、又は、企業ネットワーク内でアクセスをまだ有しているかもしれない。企業は、それらの資産及び構成を資産計上しなければならず、ハードウェア及びソフトウェアに関してそれらが何であるかのみならず、それらがどこにあり、誰が使っているかを知らなければならない。この付加的情報のみが、安全性という課題、及び、リモート及びモバイルユーザの規則的な承諾に取り組み始めることができる。
【0005】
モバイルコンピュータデバイス用の電力処理の増加と共に、徐々に、個人は、デスクトップ・ユニットや、ホーム又はスモールビジネスネットワークのための予備デバイスとして、モバイルコンピューティングデバイスを選ぶようになっている。一方、個人は、そもそも、コンピュータ資産在庫、設定管理に関心が無いにもかかわらず、彼らは、パーソナルコンピュータ資産の追跡、及び、個人データの保護に関して、大組織と同じような関心を共有する。
【0006】
多くのIT部門は、今までの資産管理ソリューションは、リモート及びモバイルユーザの増加人口を精度良く説明することが出来ていない。実は、典型的な組織は、2年間にPC資産の15%を、漂流PC1として見失うだろう。そこでは、資産は、必ずしも、失ったか、盗まれたかではなく、最初に用意されてから、何度も所有者や部門が変更されたために説明できないのである。平均して、多くの組織は、実際のPC資産の65%しか確認できておらず、それらは在庫2とされる。最もすばらしい遂行は、IT部門は、少なくとも90%のPC資産がいかなるときにもどこになるのか知ることを要求する。
【0007】
LAN外を移動するリモート及びモバイルコンピュータ資産は、多くの場合に、問題となる。最初に、多くの資産を追跡するソフトウェアは、それらのマシンが、ローカルネットワークに接続されないとき、それらのマシンを追跡することが出来ない。また、それらのマシンは、ITネットワーク全体にとって大きなセキュリティ的脅威をもたらす。さらによく、IT管理者よりむしろリモートユーザは、そのマシンを更新する管理や設定に責任を持たない。多くのユーザは、通常、彼らがすべきセキュリティに関心がない。ユーザは、低いセキュリティ設定、悪意あるソフトウェアを知らずにインストールし、アンチウイルスソフトウェアを期限切れにし、最新のセキュリティ・パッチをインストールできない。リモートユーザに責任のあるセキュリティ監視のようなものは、ネットワーク全体に強烈な影響を与えうる。リモートユーザがLANに接続するとき、それらの緩慢なセキュリティ設定のために、ネットワーク全体が感染を受ける。これらのリモートマシンのための効果的資産管理ツール無しで、IT管理者は、ネットワーク全体の完全性を確実にすることは出来ない。ネットワークは、その最も弱いリンクと同じ安全性しか有さない。コンピュータセキュリティに関する年鑑CSI/FBI調査は、盗まれたPC資産の57%は、企業に対する追加的な犯罪を実行するために使用されることを示している。
【0008】
最近の企業会計スキャンダル、認識のシフト、悪意あるハッキングに応えて、政府は、全ての機密デジタル情報を保護し、責任を有することを、ビジネスに課す規則を設立させている。2002年のサーベンス・オクスリー法は、そのような規制の好適な例である。サーベンス・オクスリーと共に、不正確な資産報告の発覚が増加している。経営幹部は、適切なコントロールや規則が、正確な資産報告を確実にする準備が整っているかどうかを、法的に検証することを要求されている。今は、正確な資産報告が実施されることを確実にすることは、CFO及びCEOに受託された責任である。資産ベースを不正確に報告する組織にとって、法律、規則、金融的開示は重要である。コンピュータは、よく、組織の資産ベースの物質比率を埋め合わせし、これにより、正確な報告を要求する。グラム・リーチ・ブライリー(GLB)法は、顧客記録が金融部門で保護されることを確実にする規定も有する。同様に、医療保険の携行性と責任に関する法律(HIPAA)が、医療記録と情報の秘密性を保護するために、設けられた。もし組織が、効率的にコンピュータ資産の全てを追跡しないなら、厳格な規則が影響してくるだろう。
【発明の開示】
【発明が解決しようとする課題】
【0009】
その追跡機能を請け負う資産追跡、及び/又は、設定管理アプリケーションは、ユーザによって不正使用に対して確実なレベルで抵抗することができるべきである。資産監視の状況において、典型的には、認証ユーザは、コンピュータのライフサイクル管理の幾つかの局面において責任を有する人間である。この状況で、追跡エージェントは、ソフトウェアエージェントの偶然の除去から、認証ユーザを守ることができるべきであり、一方、エージェントを正規に不能にする要求を(例えば、コンピュータ資産使用を終了する場合において)可能とするべきである。非認証ユーザは、エージェントソフトウェアを取り除こうとするユーザであり、典型的にそのコンピュータのライフサイクル管理に責任を有さない者である。良く考えた理由として、エージェントを取り除こうとする非認証な試みは、追跡ソフトウェアが永久的に取り除かれることを確実にすることを望む、泥棒行為又は潜在的泥棒を含むだろう。非認証な偶然的除去の試みは、新しいオペレーティング・システム(OS)に成功に又は不成功にインストールする誰かの試みも含むだろう。
【0010】
PC資産及びその設定を追跡、管理、更新する試みは、多くのハードウェア、ソフトウェア、及び破壊/修繕、設定変更、OS再インストール、ハードドライブ再フォーマット/交換、システムクラッシュ、ユーザドリブン設定変更を含むイメージチェンジを経るPCのライフサイクル間の事実に関してさらに、挑戦的となる。これらの変更は、OSの再インストールを要求し、それにより、オリジナルの足跡、識別、又は、PC資産の追跡エージェントは不能、又は、除去される。この変更は、もし熱心に記録及び追跡されないなら、周知状態から不明状態へ移行するPC資産の始まりとなる。これらの決まりきった手順のPCライフサイクル運用上の要求は、複雑性、PC資産追跡の課題を増加させ、特に、リモート及びモバイルPCについて増加させる。
【0011】
これまで、既存の資産追跡アプリケーションは、それらが非認証ユーザによって不正使用することに対して要求される永続性を得るために必要な構成を表示しないという点で、ウィンドウズ(登録商標)NT/2000/XP環境において不十分である。これらの追跡アプリケーションは、上述した非認証又は偶然のユーザアクションによって、一般に、容易に無効化される。
【0012】
本発明の出願人、アブソリュート・ソフトウェアコーポレーションは、安全に資産を追跡し、失った及び盗まれた資産を回収する製品及びサービス、アブソリュート・トラック、セキュア資産追跡、在庫管理、コンピュトレース技術プラットフォームによって供給されるソリューションを開発し、市販している。コンピュトレースは、ステルスエージェントを展開し、それは、ホストコンピュータのハードドライブに存在するソフトウェアクライアントである。いったんインストールされると、そのエージェントは、自動的に、定期的に位置情報、全自動で発見される資産データ位置を転送する監視センタにコンタクトする。エージェントと監視センタ間の継続的通信は、ユーザの介入を要求せず、インターネット又は電話接続を介して維持される。コンピュータが起動され、かつ、電話回線かインターネットアクセス(ISPや企業ネットワークを通して)のどちらかがある限り、コンピュトレース・エージェントは、監視センタに資産データを報告することが出来るだろう。エージェント及び監視センタ間のユーザ介入の無い通信は、エージェントの認証ユーザに、最新の位置情報及びコンピュータ在庫全体の広範囲の資産データにセキュアアクセスすることを確実にする。スタンドアローン、又は、既存の資産管理ツールの補足としてであろうとなかろうと、アブソリュートトラックは、リモート、モバイル、デスクトップコンピュータの全てのサイズのビジネスを助けるコスト効果のあるアプリケーションであり続け、日々のハードウェア及びソフトウェア品目追跡機能を実行する。コンピュトレースは、モバイルコンピュータの盗難を追跡し、かつ、盗まれたモバイルコンピュータを回収するための効果的ツールであり続ける。
【0013】
様々なコンピュトレース製品及びサービスの基礎をなす技術は、US及び他の国で開示され、特許を受けた。そしてそれは、通常は、アブソリュートソフトウェアコーポレーションに帰属している。例えば、US特許番号、5,5715,174、5,5764,892、5,802,280、6,244,758、6,262,392、及び6,507,914、そして関連する外国特許。さらに、アブソリュートトラックに関する情報は、アブソリュートソフトウェアコーポレーションで発行されている(例えば、セキュアコンピュータ資産追跡ソリューション、ホワイトペーパ、2003年4月25日発行)。
【0014】
各保護されたデバイスに展開されるエージェントソフトウェアは、内密(ステルス)性であり、コンピュータユーザによって発見されることを対して抵抗する。不正使用耐性のレベルは、検出の困難性、及び、コンピュトレースサービスを打ち負かすために要求される技能のレベルに影響を与える。ソフトウェアのみのコンピュトレースは、ディスクベースのユーティリティのような不正使用耐性がある一方、不正使用耐性の付加的レベルを提供する改良されたエージェントを望ましくは発展し、そして、資産追跡及び回収を超えるサービスをさらに可能にし、サポートし、及び/又は、提供する。
【課題を解決するための手段】
【0015】
本発明は、資産の管理及び保護(ハードウェア、ファームウェア、ソフトウェア、データ等の制限を含まず)、それらのソフトウェアの設定に関連するサービスを、改善された不正変更防止と共に可能にし、サポートし、及び/又は提供するサービスエージェントを対象とする。
【0016】
ソフトウェアエージェントは、複数のモジュールを有する。各モジュールは、特定の動作環境で機能するように設計されている。モジュール設計は、アプリケーション全体を構築せずに、特定の動作環境、例えば、BIOS又はハードドライブの中における、展開のためのエージェント設定において柔軟性を提供する。エージェントは、ソフトウェアによって実装されても良く、システム内のソフトウェア、ファームウェア、及び/又はハードウェアに在住することができる。
【0017】
本発明の一実施例によれば、ローダーモジュールは、パワーオンセルフテスト(POST)間にロードされ制御を獲得する。エージェントは、それがインストールされたデバイスに関して、サービス(例えば、追跡、データ削除、及びソフトウェア更新)を可能にし、サポートし、提供することが期待されている。一旦、ローダーに制御が与えられると、ローダーは、適切な時間に必要なだけ含み、かつ、削除され又は機械から無くなってしまったエージェントの部分をネットワーク(例えば、インターネット)を横断して再ロードし、他の機能及びエージェントのモジュールをロードするように行動する。ソフトウェアエージェントは、通常エージェントを取り除くことが期待されるアクションにも関わらず永続性を有する能力がある。
【0018】
本発明の一実施例によれば、永続性エージェントのエージェントコードのための少なくとも1つのモジュール及び/又はデータは、ROMのようなデバイスのファームウェアで、特に基本的な入出力システム(BIOS)又はその同等レベルのもので実装され、そして、そのデバイスに在住する。ソフトウェアエージェントは、デバイスのOSに独立してその設計されたサービスファンクション(例えば、追跡、データ削除、及びソフトウェア更新)をすぐに実行できるようにそれ自身をロードし、エージェントがその設計されたサービスファンクションを実行するシステムの基本動作を利用できるように、OSを検出することによってデバイスのある基本動作(例えば、入出力)を制御する環境(例えば、そのデバイスのOS)に自分自身を適合することができる。
【0019】
別な実施例によれば、「コンピュトレース(Computrace)」ローダーモジュール(CLM)、適合インストーラモジュール(AIM)、及び通信ドライバエージェント(CDA)という、3つのモジュールを有する。CLMは、AIMをロードし、次に、検索し、認証し、解凍し、検出したOS環境にCDAを適合させる。ある実施例では、CDAは、2つの形式、フルファンクションCDA、及び、ミニCDAがある。ミニCDAのファンクションは、フル又は現状のCDAがデバイスのどこかに検出されるか否かを判断し、もしないなら、監視サーバからネットワーク(例えば、インターネット)を横断してフルファンクションCDAをロードすることである。別な実施例では、異なるモジュール、及び、特にCDAは、プログラマブルであり、特有の環境に適合させるためのカスタムな機能性を要求することができる。幾つかのモジュールでエージェントを提供することで、カスタマイゼーションのレベルは、最小に維持される。ある実施例では、少なくともCLMが、BIOSのようなファームウェアで、一つ以上の他のモジュールと共に、ハードドライブパーティションギャップ、又は、ハードドライブホスト保護エリア(HPA)に格納される。別な実施例では、CLMは、代替マスターブートレコード(MBR)又は前述の組み合わせに格納される。
【0020】
別な形態によれば、エージェントが実行するサービス環境は、リモートサーバ、又は、エージェントで利用可能な一般的なサブファンクションコールの組み合わせによって制御される。エージェントのこのプログラム可能な能力は、サーバドリブンコマンドに基づいて、その機能を拡張することが可能である。拡張性は、エリアが高価であり、機能性を加えたり、変更する柔軟な更新が経済的では無いBIOSのようなファームウェアでは、エージェントの上手い展開に関して非常に重要である。拡張性の構成は、エージェントの起動プロセス及び再起動プロセスの主要な要素となる。
【0021】
本発明の別な形態によれば、エージェントの拡張性は、クライアントデバイスで格納されるデータを削除するために、データ削除アプリケーションを有効にする。
【0022】
本発明のさらに別な形態によれば、エージェントの拡張性は、クライアントデバイスに送信され、かつ、プログラム可能となるソフトウェア更新を有効にする。
【0023】
本発明は、デバイスの「ユーザ」の活動にも関わらず、「アクティブ」状態にあり続けるために、先に展開したソフトウェアのための能力を改良する。本発明の状況においては、「アクティブ」は、それ自身をロードし、ある実施例では、例えば、ハードドライブをフォーマットする低レベルコマンド、OSの再インストール、イメージユーティリティを用いたハードドライブの再イメージ化、ハードドライブの交換を含む「ユーザ」活動の広い範囲においてエージェントの全機能を再構築する特有の能力を参照する。「ユーザ」は、これらの活動を実行する個人として参照され、認証された能力、又は、非認証された能力で行動する。エージェントを取り除くこれらの活動は、意図的あるいは偶然であるかもしれない。
【0024】
本発明は、エージェント(例えば、コンピュータ資源のライフの終わりで)エージェントを合法的に無効にすることができる一方で、ソフトウェアエージェントの偶然の削除から認証ユーザを守る。本発明は、非認証ユーザによるソフトウェアエージェントの削除から保護する。本発明の永続性の属性は、資産保護、データ及びネットワークセキュリティ、IT資産管理、ソフトウェア展開、他のタイプのアプリケーションにおいて価値を有する。セキュア、内密なデバイス追跡ソフトウェアアプリケーションという状況において、本発明は、盗難という行動にもかかわらず、価値のある資産の盗難を、隠すことを極めて難しくする。加えて、ソフトウェアエージェントの永続性という性質は、エージェントが偶然でも削除出来ないという信頼を提供するので、個人情報に平和をもたらす。セキュア資産管理アプリケーションという環境で、そのライフサイクル全体を通して、資産を追跡する連続性を保障するので、本発明はさらなる価値を有する。今日、IT管理者のための挑戦すべき鍵は、ライフサイクル全体を通して資産を追跡する能力である。ライフサイクルの間に、デバイスあるユーザから別なユーザへ頻繁に移転され、その間に、デバイスは、再イメージされ、OSを再インストールされ、資産の追跡を困難にするようなメンテナンス手続が課せられるが、本発明によりそれらは容易に行われる。資産追跡サービスに加えて、永続性及び拡張性エージェントのよって、他のサービスが可能になり、サポートされ、及び/又は提供される。
【発明を実施するための最良の形態】
【0025】
好ましい使用はもちろんのこと、本発明の本質及び利点のより十分な理解のために、添付される図面と共に読まれる次の詳細な記述が参照されるべきである。図面では、参照番号は、図面全体を通して類似又は同じ部分を指定する。
【0026】
本記述は、本発明を実行するための現在最も良く考えて記載されたものである。この記述は、本発明の一般的な原則を説明するためのものであり、本発明を制限する意味で理解されるものでは無い。本発明の範囲は、添付された請求項を参照して最も良く判断される。本発明の基礎をなす原則の理解から明白であるように、本発明は、本発明の範囲及び精神から離れることなく、様々な実施例の中に実用性を見つけることができる。本発明の永続性エージェントの構成を説明するために、エージェントや、追跡エージェントにより提供されるサービスの1つとしての資産追跡、及び、エージェントにより提供される別な例としてのデータ削除を参照する。本発明の範囲及び精神から放れることなく、エージェントは、ソフトウェア展開、更新などの他のサービスのために使用されることが理解される。
【0027】
下記に示す詳細な説明は、主として、本発明の方法、プロセス、操作の象徴的な表現、機能及び構成という用語で、表される。これらの方法記載及び表現は、当業者が最も効果的に、他の分野の当業者にその内容を最も効果的に伝えるように使用される手段である。ソフトウェアを実装する方法又はプロセスは、ここにおいて、一般に、望ましい結果に導く自己矛盾の無い連続的なステップと考えられる。これらのステップは、物理量の物理的な操作を要求する。しかし必ずしも必要では無いが、これらの量は、しばしば、格納、転送、結合、及び他の操作を可能にする電気的又は磁気的信号の形をとる。
【0028】
追跡システム外観
資産追跡機能は、本発明の永続性エージェントによって可能、サポート、及び/又は、提供されるサービスの例である。図1を参照すると、本発明の実施例による資産追跡システムは、クライアント・サーバアーキテクチャを含み、そしてそれは、次の主要なコンポーネントを有する。
【0029】
(a)表される電子デバイスのいずれか1つを構成し、かつ、エージェントが実装されるクライアントデバイスA。そのエージェントソフトウェアは、資産、位置、及び他の情報を報告するためのクライアントデバイスであり、かつ、望ましい機能をサポート及び実行するためにそのエージェントをプログラムするためにリモートサーバからの命令を受信するためのクライアントデバイス上で実行する。本発明は、突発的又は計画的な削除に対してより永続性のあるエージェントソフトウェアの能力、及び、監視サーバからのクライアントのプログラマビリティを提供する。
【0030】
(b)切替通信ネットワーク、インターネット、プライベート及びパブリックイントラネット、ラジオネットワーク、衛星ネットワーク、ケーブルネットワークを含む情報交換ネットワークのような通信リンクB。
【0031】
(c)クライアントデバイスAとホスト監視システムCとの間の通信を監視するホスト監視サーバ3を含むホスト監視システムC。そしてそれは、クライアントデバイスからのクライアントデバイス記録情報によって定期的に接触される。その監視サーバは、クライアントが実行すべきアクションは何か、収集すべきデータは何であるかを含む何のアクションを実行するかに関するクライアントへの命令や、次のスケジュールされたコールタイムをクライアントに提供もする。クライアントデバイスは、通信リンクB(例えば、ダイヤルアップ電話通信又はIP接続)を介して監視サーバに接触する。監視サーバは、インターネット上に提供されたサービス、又は、企業イントラネット上の顧客所有サーバとして、機能を実行することもできる。ホスト監視システムCは、報告及び管理者ポータルを含み、そしてそれは、顧客、管理者、及び、データを見たり、監視サーバやクライアントデバイスの機能を監視する資産追跡サービスプロバイダ機能を有する。ホスト監視サーバは、顧客に、及び、多くの通信手段を介して資産監視の状況に関する指定代理人及び法執行代理機関を知らせる。これらのコンポーネントの各々についてさらに以下に詳述する。
【0032】
図1を参照すると、本発明による永続性ソフトウェアエージェントを実装する役に立つクライアントデバイスAは、制限はされないが、一般的又は明確な目的のデジタル処理、情報処理、及び/又は、コンピューティング装置を含み、そしてそれは、スタンドアローンデバイス、又はより大きなシステム(例えば大容量記憶装置)のコンポーネント、持ち運び可能で、携帯可能で、又は固定型であっても良い。異なるタイプのクライアントデバイスは、本発明のソフトウェアエージェントアプリケーションと共に実装される。例えば、本発明のソフトウェアエージェントアプリケーションは、デスクトップクライアントコンピューティングデバイス、ポータブルコンピューティングデバイス(例えば、ラップトップ、ノートブックコンピュータ)、携帯可能デバイス(例えば、携帯電話、PDAs(携帯情報端末)、パーソナル電子機器等)に適用しても良く、そしてそれは、下記でさらに説明するように、外部サーバに通信することが可能である。クライアントデバイスに在住するオペレーティングシステムに加えて、クライアントデバイスは、選択的に操作可能で、プログラムにより開始され又は設定され、ルーチン及び/又は連続した命令及び/又はデバイスに格納されるロジックであっても良い。つまり、ここに記載され示唆される方法の使用は、特定の処理設定に制限されるものでは無い。
【0033】
本発明の原理、構成、及び機能の理解を説明するために、それらは、説明的な実施例において、その展開及び実施を参照して説明される。例示及び非制限の方法で、本発明は、インターネットの状況に関連して展開及び実装例を参照して、クライアントデバイスA(コンピュータA1は、概念的にデスクトップデバイスとして表されるが、それよりむしろ、携帯コンピュータデバイスを有する)として、ラップトップ又はノートブックコンピュータを参照して記載される。現在存在する将来のグローバルネットワークに対する本発明の応用は、ここに意図されている。さらに、本発明のインターネットの形態は、クライアントコンピュータA1に関して記載及び説明されるが、インターネットへの応用は、本発明の範囲及び精神から放れることなく、他のクライアントデバイスに徐々に適用可能である。
【0034】
図1は、情報交換ネットワークの形式で、通信リンクBの概念的表現である。そこで、本発明は、資産追跡のために利用される。本発明により、資産追跡エージェントによりアクセスされる情報交換ネットワークは、パブリック及びプライベートコンピュータネットワーク(例えば、インターネット、イントラネット、WAN、LAN等)、付加価値ネットワーク、通信ネットワーク(例えば、有線又は無線ネットワーク)、ブロードキャストネットワーク、ケーブルネットワーク、ラジオネットワーク、そのようなネットワークの同種又は異種の組み合わせのような、分散情報交換ネットワークを、制限はされないが、有する。当業者であれば正等に評価するように、特定の目的のために最も効果的な記述により、ネットワークは、ハードウェア及びソフトウェアの両方を含み、どちらか、又は、両方として考えられる。例えば、ネットワークは、通信設備により相互接続されるハードウェア・ノードのセットとして、又は、通信設備として、又は、そのノード有り又はノード無しの通信設備として記載される。ハードウェア、ファームウェア、ソフトウェアとの間の境界は、常に明確ではないということがさらに理解され、そのようなネットワーク及び通信設備、及び、永続性エージェント技術プラットフォームのコンポーネントは、ソフトウェア、ファームウェア及びハードウェア形態のように当業者には理解されるだろう。
【0035】
インターネットは、コンピュータネットワークを含む情報交換ネットワークの例であり、そこで、本発明は実施される。当業者であれば明白であるので、インターネットネットワーク(サーバ、ルータ、ゲートウェイのような)を有する様々なハードウェア及びソフトウェアコンポーネントは、示されていない。さらに、ユーザ/クライアントデバイス及びサーバによるインターネットへのアクセスは、同軸ケーブル、電話線、無線RFリンクのような適切な通信媒体L、そこで実装されるブラウザのようなツールを介してなされることは、理解されるだろう。サーバ及びクライアント間の通信は、確立したプロトコルにより生じる。下記に示されるように、本発明の永続性資産追跡エージェントは、クライアントの1つの中に、又は、クライアントの1つとして設定され、それは、情報交換ネットワーク上を越え、サーバの1つと通信する。この発明は、他の既存の技術と連結して働き、そしてその他の技術は、本発明を判りにくくなることを避け、当業者には明らかなのでここでは詳述しない。特に、例えば、方法は、今のところ、インターネット、ウェブベースツール、関連方法、及びプロトコルを含んで存在する。
【0036】
図1を参照すると、ホスト監視システムCは、通信リンクBの1つ以上(並列又は同時)を介して、エージェントをインストールしたクライアントデバイスAでデータを交換するように設定されるコンピュータ(例えば、サーバ3)である。ホスト監視システムCは、外部ユーザアクセス(C1)を識別し、及び、フィルタリングするルーチンを含む。ホスト監視システムCは、さらに、報告及び監視ポータルを介して、所有者又は追跡デバイスA(例えば、ネットワーク位置情報)に関連する情報に関する追跡クライアントデバイスAの代理人と共に直接的又は間接的に通信する。例えば、ホスト監視システムCは、電子メール、ファックス、ページング、電話などで、追跡デバイスの所有者、所有者の指定代理人、企業指定部門又は代理人、配置された監視サービスステーション、法執行機関などと通信する。あるいは、ホスト監視システムCは、それ自身が、配置された監視サービスステーション、法執行機関となっても良い。ホスト監視システムC及び/又は下流の目的位置(例えば、監視サービスステーション)は、追跡された資産の在庫リスト、又は、追跡された資産の紛失/盗難状況を維持する。図1では、ただ1つのホスト監視システムCが示されるが、たくさんのホスト監視システムCが、例えば、異なる地理的領域において、通信ネットワークを横断して分散される。
【0037】
エージェントの重要な機能の一つは、その関係するクライアントデバイスAに関連する識別、位置、及び/又は、他の情報を報告するために、ホスト監視システムCに接触することである。本発明の一実施例によれば、各クライアントデバイスAは、独自の識別に関係しており、その独自の識別は、ホスト監視システムCへクライアントデバイスAから転送される情報の一部であっても良い。独自識別は、電子シリアルナンバ(ESN)、メディアアクセスコントロール(MAC)ナンバ、インターネットホストネーム/IPアドレス、所有者/ユーザ特定識別、クライアントデバイスの識別を表し、識別し、認める他の数字、英字、又は英数字情報の形式であっても良く、さらに、エージェント及びその識別の実際又は架空の地理的位置の決定又は確認のためのベースを表す日付及び時間のような情報の形式であっても良い。
【0038】
資産を追跡し、及び/又は、紛失又は盗難された紛失デバイスAを回収するために、ステルスエージェントを用いる一般的な概念は、本発明の出願人であるアブソリュートソフトウェアコーポレイションの有する特許に記載される。エージェントは、ホスト監視システムCをコールするために、適切な時間を決定しなければならない。いったん、エージェントがインストールされ、周期的に(例えば、時間N)に実行し、又は、特定時間経過後に(例えば、システムから、又は、ユーザログオンから)、又は、デバイスシステムブート後に、ある所与の状況の発生後すぐに、又は、ハードウェア再設定のようなある内部又は外部イベントによるトリガーされ、通信プロセスを開始するためのユーザによる介入無しで、通信リンクBを介してその識別及び/又は位置を、ホスト監視システムCに報告するということをここで手短にのべることで十分である。エージェントは、さらに、2つ以上の利用可能な通信リンクBを介して、その識別と位置を報告する。エージェントの位置は、したがって追跡されたデバイスであり、例えば、インターネットを介したクライアントデバイスAとホスト監視システムCとの間の通信を可能にするように使用される全てのIPルートのリストを獲得するための探索経路ルーチンによって決定される。
【0039】
監視システムCへ転送される位置及び資産管理データの全ては、中央レポジトリで維持され、セキュアウェブベース又はネットワークベースコンソールを介して認証された管理者によって、7日間24時間アクセスされ得る。ある実施例では、エージェントが位置及び資産データを転送するとき、監視システムCは、タスクの次のセットのための命令、及び、次のスケジュールされたコールタイム及び日付をエージェントに対して送り、及び、プログラムする。監視システムCは、各コンピュータ(C2)上の現状及び精度ある監査の跡を提供して、全てのエージェントの送信を記録する。包括的コンピュータ資産追跡及び在庫解決は、IP又はダイヤルアップを介して遠隔から接続する遠隔及びモバイルシステムはもちろんのこと、企業ネットワークに局所的に接続されるシステムに関するこの情報も捕獲する。加えて、情報は、資産が提供される最新の図であることを確実にするために、規則的に捕獲される必要がある。
【0040】
さらに後述するように、追跡エージェントは、不正改変に対する耐性と共に永続的であり、エージェントは、否認証ユーザに対して透明であり続けるように設定される。ユーザに対して隠されているために、エージェントは、インタフェースすることが望まれないなら、いかなる起動中のアプリケーションにも干渉しない。本発明による新規な構成、機能、及び操作は、さらに十分に後述される。
【0041】
永続性エージェントプラットフォーム・アーキテクチャーの外観
IT管理者は、コンピュータ全体のライフサイクルの間中一貫して全てのコンピュータ資産を追跡する能力を要求する。これは、LANの外側で作動するリモート及びモバイルコンピュータを含む。資産追跡エージェントは、コンピュータのライフサイクルの始めに一度インストールされる必要があり、そのコンピュータがリタイアするまで規則的に通信される必要がある。そのライフサイクルの間に、コンピュータは多くのユーザにより使用され、ハードウェア及びソフトウェアは変化し、これら3つの領域で永続的であって、かつ、変化を報告できる追跡エージェントは、危機的状況にある。本発明による永続性エージェントは、たとえハードドライブが再フォーマット又はOSが再インストール又は不正干渉されても、例えば、IMAC及び故障/修理にもかかわらず、PCのライフサイクルの間中、PC資産の独自の識別、その状況を報告することができる。永続性エージェントは、それを保護するように設計され、非認証の削除攻撃を切り抜けるだろう。この永続性構成は、盗難の場合にPC資産に接続され続け、かつ、精度を確実にしながら資産追跡を保障するために、極めて重要である。
【0042】
永続性エージェントは、ホストコンピュータに在住する低レベルの検知できないソフトウェアクライアントである。エージェントは、永続性ソフトウェアであり、取り除くことが極めて難しい。エージェントは、たとえエージェントサービスが従来的手段で検出されても、エージェントソフトウェアのインストールを再構築するように機能する自己回復技術を組み込む。エージェントは、OSインストール、ハードドライブフォーマット、及びハードドライブ交換ですら切り抜けるだろう。生存性は、資産追跡及び盗難回収(及びエージェントが可能にし、サポート、及び/又は提供するサービス)における成功に対して極めて重要である。自己回復機能は、ファイルシステム内に在住せず、従来のソフトウェアより検出及び削除がより困難である。ソフトウェアの永続性及び自己回復部分は、その内密性(ステルス性)のため、取り除くことが困難である。ソフトウェアは、通常は、正しいパスワードと共に認証されたIT管理者によって、通常取り除かれる。自己回復特徴は、新しいイメージされたシステムはもちろんのこと、新しくフォーマット及びイメージされたOSにおいてエージェントインストールを復旧する機能であるだろう。
【0043】
本発明の別な形態によれば、エージェントは、最初にプログラムされたものに加えてその機能を拡張するためにプログラム可能である。エージェントはリモートサーバと通信し、そこでリモートサーバが、次のタスクセットのための命令と共にエージェントを提供することによってエージェントを送信しプログラムする。
【0044】
エージェントは、ハードウェア、ファームウェア、又はいかなる電子デバイスのソフトウェアで実装可能である。あるいは、エージェントは、モデムの中のDSPやコンピュータの中のCPUのような電子部品のように、デバイスの部品で実装可能である。さらに、エージェントの機能性は、パケットデータを送信し及び/又は受信することを通して、通信リンクを確立することが可能ないかなるハードウェアデバイスの回路においても実装可能である。例えば、エージェントは、電子デバイスの(ROM BIOS、ROM、フラッシュROM、EPROM、EEPROM等の様な)不揮発性メモリ、ソフトウェアプログラム、マイクロコードプログラム、デジタルシグナルプロセッサ(「DSP」)プログラム、又はOSの組み込み機能において実施可能である。
【0045】
本発明の実施例により、永続性追跡エージェント(ここでは、「永続性エージェント」としても参照される)は、BIOS(又は、同等の機能のシステム)で実施される。従来知られているように、BIOSは、システム電源起動又は停止において常に実行されるスタートアップコードである。これは、メモリ空間で固定位置から開始するプロセッシングユニット又はソフトウェア(命令)の中で実装されるマイクロコードで有り得る。これらの命令は、電源オンセルフテスト(POST)、デバイスに在住するOSのブート前に典型的にかつ独立した、ディスクドライバ、キーボード、モニタのようなハードウェアの低レベル制御を処理する。ある実施例において、永続性エージェントは、読み出し専用メモリ(ROM)のようなファームウェア、パーソナルコンピュータのようなクライアントデバイスAで実装される。BIOSがチップで実装される場合、それは、ROMでコード化された命令セットを含む。下記においてBIOSで参照される全ては、ROMベースのBIOSに制限されないことを理解されるだろう。
【0046】
今日販売されるマザーボード上のBIOSチップの良く知られたブランドは、フェニックステクノロジー、インテル(登録商標)、IBM(登録商標)、アメリカンメガトレンドを含む。あるシステムコンポーネントは、所有のBIOSチップを有し、そのチップの命令は、開始時にデバイスのメモリの中でも読み出される。ハードディスク制御に関するBIOSは、例えば、ドライブのトラック及びセクターのテーブルを記憶する。もし、アブソリュートソフトウェアコーポレーションの先の特許で開示されたBIOSベースのエージェントでないなら、本発明は、エージェントのためのBIOSベースのローダーの使用を含む改良を表す。BIOSベースのローダーは、エージェントコンポーネントをさらに永続的にし、かつ、それゆえに、資産追跡又は他のサービス機能を無効にすることはさらに難しい。BIOSベースのローダーは、マシン上のブート順番を反転する必要性を減らし、したがって、製造工程でのステップを取り除く。BIOSベースのローダーは、さらに、アンチウイルススキャナー、全ディスク暗号化、及びマスターブートレコード(MBR)でOSローダーを読み込み又は修正する他のユーティリティのような製品と共に製造的互換性という問題を減少する。本発明の一つの実施例においては、永続性エージェント10は、図2に表されるように、コアBIOSフラッシュイメージ13に取付けられるPCIオプションROM12−周辺機器部品インタフェースバスに基づくオプションROMのようなオプションROMに、最初に格納される。(示されていないが)取付けられる追加的オプションROMもあり、それは、永続性エージェントに関連の無い他の機能をサポートする。永続性エージェント10は、複数のモジュールを有する。3つの主なモジュールは、図3に表されるように、「コンピュトレース」ローダーモジュール(CLM)14、適合インストールモジュール(AIM)16、及び、通信ドライバエージェント(CDA)18である。
【0047】
永続性エージェント10の3つのモジュールを含む小さな(圧縮した約22Kbである)PCIオプションROM12は、標準コアフラッシュイメージに結合され、BIOS POSTの間にBIOS及び他のオプションROMにそって保護されるメモリの中にロードされる。小さなPCIオプションROMは、POSTにより認識され、BIOS及びBIOS POST中の他のオプションROMとともに読み書きシャドウメモリにロードされる。この構成は、再条件付けされる必要があるコアBIOSでの開発工数及び多くのインタフェースポイントを最小化する一方、安全性を高める構成を可能にするモジュラーアーキテクチャを提供する。
【0048】
CLMは、PCI(PCデバイスの場合)、イメージ管理、実行環境機能を組み込む。AIMを検索し、解凍し、PCIオプションROMを最終サイズにサイズ変更し、システムの適切な環境でAIMを実行するBIOSにインタフェースする責任がある。AIMは、ハードドライブにアクセスし、アクティブなOSを検出し、ミニCDAを発見した設定に適合させる。ミニCDAは、通信ドライバーである。それは、HTTPプロトコル、監視サーバに通信するアプリケーションレイヤ、OSにインタフェースするサービスレイヤ、及び、AIMとインタフェースする適合レイヤのためのサポートを含む。
【0049】
ミニCDAは、OSがロードされているとき、サービスとして実行するコンピュータのファイルシステムでフルファンクション(全機能)CDAが利用可能かどうかをチェックする責任を有する。フルファンクションCDAが利用不可の場合、ミニCDAは、監視サーバからフルファンクションCDAのダウンロードを開始する。一旦、フルファンクションCDAが存在するなら、監視サーバ上の新バージョンを頻繁にチェックし、もし可能なら、新バージョンでCDA自身を置き換えるだろう。
様々なモジュールのこれら及び他の実施例は、下記に十分に論じられる。
【0050】
BIOS POSTシーケンス及びオプションROMロードプロセス
オプションROMロードプロセスが、図4のフロー図で表される。永続性エージェント10が展開されるクライアントデバイスAのブートにおいて、BIOS POSTプロセスは、セルフテスト及びチップセット構成21を実行し、マザーボード又は拡張カードに関する機能をサポートするオプションROMのためにバスが22でスキャンされるポイントに到達する。このポイントでは、永続性エージェント10を含むPCIオプションROM12は、22で小メモリ(例えば、RAM)にロードされ、及びその開始ベクター(後述するように、CLM14)は、23でコールされる。開始ルーチンは、サポートされるべき機能の状態、及び、その最終イメージサイズを決定する。その後に、25及び26において、BIOS POSTプロセスは、オプションROMスキャンを完了し、機能が存在する各ROMオプションの最終位置を計算する。各PCIオプションROMは、それから、移転され、PCIオプションROM12を有効にした永続性エージェントを含む、その完成ベクターがコールされる(あるフェニックスBIOSでは、例えば、PCIオプションROMは移転されないが、開始ベクターから戻る前にヘッダーで宣言される最終サイズに適合するように、単にサイズを縮める)。全てのオプションROMは、移動されるが、BIOSメモリは、27で書き込みプロテクトされる。次に、28でOSがうまく開始されるまでブートデバイスがコールされる。このポイントで、デバイスOS及びエージェントの両方は、同時に実行しているだろう。
【0051】
PCIオプションROM
A.ローダーモジュールCLM
CLM14は、AIM16のための仮の実行環境を設定し、AIM16をロードし、解凍し、適切な環境でそれをコールするように設定する責任がある。CLM14の最後の「アクティビティ」は、最小サイズ(2K)に縮め、POSTへ実行を返すことである。CLMは、AIM16が見つからず、又は、有効ではないなら、「失敗」するだけである。
【0052】
CLM14は、POSTへのインタフェースであり、又は、PCIオプションROM12の「フロントエンド」である。PCIオプションROMヘッダは、CLM14の中にあり、かつ、そのエントリポイントは、このヘッダの中の標準にしたがって公表される。CLM14は、BIOS POSTとの統合のための2つの機能ポイントを提供する。
1.ROMヘッダ及びPCIオプションROMヘッダペア
2.割り込みハンドラ
【0053】
これら及びPCIオプションROMの様々なコンポネントの他の機能は、IBM(登録商標) BIOS、例えばIBM(登録商標)モデルT43ノートブックコンピュータに関して、後述されるだろう。
【0054】
1.ROMエントリポイント
最初のインタフェースは、BIOSによってPCIオプションROMの数え上げの間に与えられる。このインタフェースは、標準レガシーROMヘッダ、及び、PCIオプションROMヘッダペアである。例えば、フェニックスBIOSに関して、1917hのPCIベンダーID、及びデバイスID1234hは、セットになる。上述したように、BIOS POSTプロセスが、マザーボード上の機能、又は、拡張カードをサポートするPCIオプションROMをスキャンするとき、PCIオプションROM12全体は、ロードされ、CLM14の初期化ベクタがコールされる。オプションROMは、圧縮された「.COM」アプリケーションをロードし、そして、実行する。ROMエントリポイントは、START_SEGレベルで定義される。START_SEGセグメントは、ROMヘッダ、及び、PCIオプションROMヘッダへのそのリンクを含む。オプションROMは、オプションROMの中でオフセット3へのFAR CALLにより初期化される。ジャンプ命令チェーンは、ここでは、OptRomProcへの制御を通過する。
【0055】
図5を参照すると、PCIオプションROM CLM14により始められるルーチン30は、以下のように要約される。
a.31で、BIOS POSTメモリマネージャを検索。
b.32で、制御STUB_BLOCKを割り当て(例えば、処理及びアプリケーション実行のため2K)。
c.33で、圧縮アプリケーション及びアプリケーションメモリのバックアップのための拡張メモリを割り当て(例えば、64K)。
d.34で、アプリケーションの解凍実行のための通常のメモリでアプリケーションメモリの割り当て(例えば、64K)
e.35で、ディスクサービスが利用可能なら(40:75hでの総数で決定される。ハードディスクの数)、36で、アプリケーションを即座に実行し、39でフリーメモリに進み、40でオプションROMをゼロに圧縮する。
f.37で、ビデオベクタ(int 10h)が、XBDA(40:0Eh)以下なら、38で、STUB_BLOCKをInt 15hにフックし、40で、オプションROMをゼロに圧縮する。
g.フックするものが無く、何もすることが無いなら、39で、フリーメモリを「失敗」にし、40で、オプションROMをゼロに圧縮する。
【0056】
2.割り込みハンドラ
二番目のインタフェースは、割り込みハンドラである。これは、初期化ロード、及び、BIOS POSTメモリマネージャから割り当てられたメモリからPCIオプションROMの初期化手続の実行の後に、実行する。このインタフェースは、最初に、int 15hを実行し、それから、代替トリガを実行する。Int 19hは、好ましい代替トリガ、及び、その初期設定である。割り込みハンドラは、BIOSディスクサービス(int 13h)が、まだ、PCIオプションROMの開始の間に利用可能でないなら、割り込みハンドラは、ただ起動される。Int 19hは、好ましいトリガーメソッドである。なぜなら、あるケースでは、最後のInt 15h/func 9100hの後でBIOSにより発行されるInt 13hが無いからである。物理ドライブ80hによる別な問題は、Int 19hの少し前まで、Int 19hで物理ドライブ80hに一致しないということである。ComFileStubは、主な割り込みフックエントリポイントを含む。
【0057】
図6a及び6bを参照すると、割り込みハンドラにより始められるプロセス41は、以下のように要約できる。
【0058】
a.42で、int 15がトリガーする毎に、ファンクション9100h(ハードディスクIRQ完成は、INT 13hが使用されていることを示す)。
b.43で、ハードディスクデバイスが利用可能かチェック(カウント 40:75h)。
c.XBDA以上のビデオベクタ(40:0Ehは、POSTのセットアップフェースが完了したことを示す)。
d.44で、まだ準備できていないなら、チェーンする。
e.45で、Int 15hフックを元に戻し、トリガー Int xxhをフックする(_TRIGGER_INTNUM setting=Int 13h / Int 19h)。
f.46で、次のトリガー Int xxh(Int 13h / Int 19h)で、トリガー Int xxh(Int 13h / Int 19h)を元に戻す。
g.48で、スタックを切り替える。
h.49で、拡張メモリBACKUP_BLOCKに、解凍アプリケーションメモリのコピーをバックアップする。
i.50で、解凍アプリケーションメモリブロックに、圧縮アプリケーションをコピーする。
j.51で、アプリケーションをコールし、拡張メモリBACKUP_BLOCKから、解凍アプリケーションメモリのコンテンツを元に戻す。
k.52で、スタックを戻すように切り替える。
l.53で、阻止されたトリガーInt xxhコールを完成するようにチェーンする。
【0059】
B.エージェントインストールモジュール(AIM)
AIM16は、CLM14により設定される拡張コンテキストの下でロードされるように設計される。図7を参照すると、AIM16によって開始されたルーチン54は、次のステップを含む。実行されると、AIM16は、55で、アクティブパーティションを見つけるパーティションテーブルをスキャンする。アクティブパーティションでは、56で、OSシステムディレクトリ、又は、OSシステムディレクトリを示す設定ファイルを探す。そして、OSシステムディレクトリは、57で、通信ドライバエージェントCDAのインストーラ・モードインスタンスを生成し、インストールする。インストール機構は、各OSで特定され、独特であり、AIM16は、標準OSインストール機構を使用する。
【0060】
C.通信ドライバエージェント(CDA)
CDA18は、2つの形式、ミニCDA、フルファンクションCDAで存在する。1つの実施例において、ミニCDAは、PCIオプションROM12に在住する。ミニCDAの機能は、フルファンクション及び/又は現状のバージョンCDAがインストールされ、かつ、デバイス上で機能しているかどうかを決定することであり、もし無いなら、ホスト監視サーバC(図1)からインターネットを介してフルファンクションCDAをロードすることである。フルファンクションCDAは、デバイスとホスト監視サーバCとの間の全ての通信に責任を有する。
【0061】
図8を参照すると、ミニCDAは、最初に(AIM16を介して)インストーラモード58を実行し、そこでは、ミニCDAの全機能は、OSサービスとして登録することである。59で、エージェントのインストーラモードインスタンスは、その別のインスタンスを生成し、60で、例えば、2000/XP下のサービスマネージャでコピーを登録する。実行ファイルは、それ自身のインストーラコピーを消去し、存在する。フルファンクションCDAは、そのポイントからCDAのノーマル操作を引き継ぐので、フルファンクションCDAは、たった一度、インストーラモードで実行する。
【0062】
図9を参照すると、OSの次のスタートアップで、ミニCDAのサービスモードインスタンスは、例えば、2000/XPの下のサービスとして実行される。そのサービスは、62で、サービスマネージャ環境をセットアップし、適切な時間で(63で待機した後で)64で、それ自身のインスタンスを開始する。アプリケーションモードは、ミニCDAの通常モードの操作である。エージェントは、現在サービスモードである。
【0063】
もし、現状のフルファンクションCDAがデバイスに見つからない場合、ミニCDAアプリケーションは、図10に示されるように初期設定で例えばHTTPプロトコルを用いてホスト監視サーバCとの通信を開始する。他のプロトコルは、付加的モジュールによってサポートされ、ホスト監視サーバCからエージェントへアップロードされる。ホスト監視サーバCは、エージェント、格納監視ヒストリ、設定、ソフトウェア更新のような機能を実行する。ホスト監視サーバCは、フルバージョンCDAをインストールし、起動し、ミニCDAを無効にし(例えば、デバイスのライフの終了時、新バージョンに更新するために自己修復機能を無効化するために)、エージェントを更新し、又は、プラットフォームに要求されるエージェントに設定するために、ミニCDAとのセッションを開始する。本発明の実施例の一つによれば、クライアント装置AとサーバCとの間の通信は、図10に表される。例えば、ミニCDAが、BIOSの識別又はタイプ、又は、デバイスプラットフォームをサーバCに提供すると、BIOSのコピー又はプラットフォーム特有の振るファンクションCDA又はその更新がデバイスにダウンロードされる。
【0064】
図1を参照して述べたように、デバイス追跡及び/又は紛失又は盗難デバイスAを回収するために一般にステルスエージェントを用いるという一般概念は、本発明の出願人であるアブソリュートソフトウェアコーポレーションの有する特許で開示されている。デバイス追跡のアプリケーションレベルの機能性、及び、フルファンクションCDAの通信機能は、本発明の出願人に特許権(そしてその特許は、ここで同一のものとされる)が与えられ、かつ、先に述べられ、及び/又は本発明の権利者によって発展されたアブソリュートトラック資産追跡プロダクトのステルスエージェントの機能に類似している。
【0065】
一般に、単独で実行し又は他の通信リンク(例えば、PSTN)に基づくアプリケーションであるインターネットアプリケーションの実施例においては、エージェントは、所定の、ランダムな、イベントベース、又は間隔を変えてホストにコールを開始する。本発明の一実施例によれば、「アクティブ」モードにおいて、エージェントは、所定の時間ごとにホストをコールする。エージェントは独自の現状時刻、及び、インターネットホストネームを符号化するための独自のエージェント識別を使用する。ある実施例によれば、エージェントは、それから、符号化されたインターネットホストネームを用いてDNSリクエストを形成する。エージェントは、インターネットを介してホストへこのDNSリクエストを送信する。所定の時間間隔後で、DNSリクエストをインターネット時間で送信するというエージェントの試みが経過するなら、エージェントは、所定の時間間隔でスリープ状態になり、それから、コールを再開する。そのコールが、別なエラー(例えば、インターネットへの通信を可能にするWinsock機能が無い、及び/又は、TCP/IP通信のコンピュータ設定の失敗)のために失敗するなら、エージェントは数時間サイクルで繰り返す。このように、エージェントは、本質的に、インターネット接続の存在をチェックする。
【0066】
そのDNSリクエストを送信した後で、エージェントは応答を待つ。ホストから有効な応答を受けるとすぐに、IPアドレスがその応答から抽出され、参照したIPアドレスに対して比較される。例えば、参照IPアドレスが、“204.174.10.1”と設定されるとする。もし、抽出されたIPアドレスが“204.174.10.1”に等しいなら、エージェントのモードは、インターネット側で「アクティブ」から「アラート」へ変更される。例えば、ホスト又はホストでのオペレータが、エージェント識別が、ホストで格納され、かつ、報告された紛失又は盗難コンピュータのリストのエンティティの1つとマッチするということを認識するなら、ホストがこのIPアドレスを送信する。もし、ホスト応答から抽出されたIPアドレスが、「204.174.10.1」と等しくないなら、エージェントはアクティブモードであり続け、さらに4時間後にはホストにコールしない。しかし、エージェントがインターネットアプリケーションで「アラート」モードにならないなら、エージェントは、ホストへクライアントコンピュータを接続するために使用されるインターネット通信リンクにホストを提供する探索経路ルーチンを開始する。これらのインターネット通信リンクは、クライアントコンピュータを追跡するホストシステムを支援するだろう。DNSクエリのソースのIPアドレスは、DNSクエリ内でホストに送られる。しかし、クエリのソースが「プロキシ」サーバを介して転送されるなら、そのとき、クライアントコンピュータのIPアドレス(そしてそれは、内部NICによって割り当てられてないので、独自でないかもしれない)は、クライアントコンピュータの位置を追跡するのに効率的でないかもしれない。そのようなシナリオにおいて、クライアントとホストとの間の通信を可能にするためにアクセスされる他のIPルートのアドレスを決定する必要がある。アクセスされるべきこれらのアドレス及び時間は、そのクライアントのインターネットアクセスストーリーを記録するプロキシサーバの内部ログと比較される。このようにして、クライアントは、独自に識別され、検索される。あるいは、インターネットアプリケーションを、「アラート」モードへの移行は、他の利用可能な通信アプリケーションを「アラート」モードへの移動をトリガーする状況である。
【0067】
CDA−サーバ通信
A.拡張プロトコル
BIOSの中に永続性エージョンをうまく展開することは、例えば、通信プロトコルの中に予定されている拡張性を頻繁に使用することである。この拡張性無しで、エージェントは、機能性を加え又は変更するためにより大きく、かつ、柔軟な更新を要求するかもしれない。そのような更新は、BIOSがそのプラットフォームのフラッシュEEPROMの中にプログラムされており、かつ、特別なツールが(頻繁にユーザーインタラクションを要求して)BIOSを更新するのに使用されなければならないなら、実践的でもないし、経済的でもない。さらに、その完全性が、コンピュータの操作で極めて重要なので、徹底的なテストがBIOSに関するOEMにおって実行される。
【0068】
拡張プロトコルのキー要素は、
1)エージェントのメモリ空間を読み書きする方法
2)メモリ再配置する方法
3)メモリをフリーにする方法
4)外部モジュールをロードする方法
5)プロシージャアドレスを決定する方法
6)プロシージャをコールする方法
【0069】
エージェントのプロトコルは、これらの機構を提供するように設計されている。
リードパケットのフォーマットは、|ADDRESS|NUMBER_OF_BYTES
ライトパケットのフォーマットは、|ADDRESS|NUMBER_OF_BYTES|DATA...
通信プロトコルは、DATAがパケット内に含まれていないということを判断することでリードパケットを区別する。DATAがあれば、そのパケットは、ライトパケットである。このプロトコルに基づくアドレスは、拡張設計に基づいている。
【0070】
本発明の一実施例により、拡張プロトコルに基づいて、通信リンクBを介してクライアントデバイスAとサーバCとの間の通信セッションにおけるステップの一般的な順序は、図14に概略的に表されている。通信セッションにより、処理される特定のトランザクションは、さらに以下に開示される。
【0071】
典型的なセッションは、次のような通信シーケンスで始まる。
1)クライアントが接続する。
2)サーバが、アドレス0xffffffff|0xffffffff|4から特別な読み込みで応答する。
3)クライアントが、そのセッション処理のアドレスで応答する。
【0072】
処理構造は、クライアントのバージョン、サポートOSのバージョン、及びコマンドパケットのような重要な情報を含む。クライアントは、コマンドパケットが書き込まれたとき、「書き込み」を、特別なパケット「特別(Special)」として翻訳し、CommandPacketProcessor()ファンクションをコールする。CommandPacketProcessor()ファンクションは、引数として、ファンクションコード、パラメータアドレス、パラメータ数、結果アドレスをとる。実行されなければならない関数の最低数のセットは、以下のものである。
CMD_FUNC_CALL(C関数をコール)
CMD_FUNC_STDCALL(STDCALLファンクションをコール)
CMD_GETMH(モジュールハンドルをゲット)
CMD_GETPA(プロシージャアドレスをゲット)
CMD_ALLOC(メモリを割り当て)
CMD_FREE(メモリをフリーにする)
【0073】
実行される他の関数コードは、効率を良くするためにコマンドパケットをいっしょにチェーンことである。
CMD_ENDC(チェーン終了)
CMD_IF(通常のブランチ)
CMD_GOTO(通常ではないブランチ)
【0074】
このコマンドの少ないライブラリは、いかなる管理タスクをも成し遂げるために、パケットの中でいっしょにつながれる。重要な管理タスクは以下のものである。
1)CreateFile(ファイル作成)。
2)ファンクションのライブラリ、又は、拡張用としてロード。
3)OSで、又は、作成したファイルからプロシージャをコール。
4)エージェントのコンテキストでメモリを割り当て、及び、空にする。
【0075】
B.トランザクション
次のセクションは、エージェントとリモート(例えば、監視)サーバ(CTSRVとしても知られている)との間の通信を記述する。記述された各アイテムは、1つの(クライアントとサーバとの間のメッセージ組である)トランザクションを表す。幾つかのトランザクションは、全てのエージェントコールで生じ、他のトランザクションは、実施されるサービスに依存し、メンテナンス又は手動修正により設定されるフラグの結果として1つのコールでなされる。下記は、サーバとエージェントとの間の典型的な通信セッションを示す表である。
【0076】
【表1】
【0077】
基本的資産追跡を有するコール(クライアントが監視サービスプロバイダを有する追跡サービスに同意した場合―全てのコール)
(資産追跡/監視サービスへの加入者のための)AT1データ が、検索される。これは、AT2DLLにより集められたデータのサブセットである。AT1、又は、AT2DLLのどちらかが、クライアント上で実行され、決して両方が実行されることは無い。
【0078】
【表2】
【0079】
高度な資産追跡を有するコール(クライアントがアブソリュートトラック又はコンピュトレース製品を購入した場合―全てのコール)
(例えば、アブソリュートトラック及びコンピュトレースの顧客のために)ATIIデータは、検索される。これは、AT1DLLによって集められたデータの特別なセットである。AT1、又は、AT2DLLのどちらかが、クライアント上で実行され、決して両方が実行されることは無い。
【0080】
【表3】
【0081】
【表4】
【0082】
基本コール及びリモートエージェントバージョンの更新(技術サポートアクションに基づく一度限りのタスク)
クライアントエージェントのバージョンをチェックし、サーバ上のバージョンと比較する。クライアントバージョンが低い場合、リモート更新を実行する。
【0083】
【表5】
【0084】
基本コール及び製造元、モデル及びシリアルナンバの検索(技術サポートアクションに基づく一度限りのタスク)
ファンクションが、クライアントから製造元、モデル及びシリアルナンバを検索し、ブート順番を変更する。
【0085】
【表6】
【0086】
C.アプリケーションモジュールの起動プロセス
起動プロセスは、アプリケーションエージェント識別を、顧客アカウントに結びつけ、永続性エージェントモードをインストールする。このプロセスは以下のように記載される。
アプリケーションエージェントが接続する。
サーバが、コンピュータを識別する在庫DLLを送信するプロトコルにおける拡張特性を使用する。このDLLは、BIOS、筐体、ハードドライブシリアル番号のような属性を集める。
在庫記録は、サーバ上に格納され、アプリケーションエージェントから読み出される顧客アカウントに接続される。
独自の識別番号(電子シリアル番号)は、この在庫記録に関係するデバイスに割り当てられる。
【0087】
典型的な在庫番号は、下記のように表される。
【0088】
【表7】
【0089】
D.永続性モジュールの再起動プロセス
一度、永続性エージェントモジュールが起動されると、次のステップが、アプリケーションエージェントを再インストール始め、及び、設定を元に戻す。
永続性モジュールエージェントは、監視サーバをコールする(CTSRV)。
監視サーバは、そのコンピュータを識別する在庫DLLを送信するプロトコルの中で拡張特性を使用する。このDLLは、BIOS、筐体、ハードドライブシリアル番号のような属性を集め、そして、先に格納されたものと比較する。
最初の起動で格納された在庫記録は、見つかり、そして、このデバイスの在庫に関係した以前のESNは、再度割り当てられる。アプリケーションエージェントは、ダウンロードされ、インストールされ、そのアプリケーションエージェントは、正常にコールする。
上述のプロセスは、BIOS及びソフトウェア永続性(前述を参照)の両方に適用される。即ち、永続性モジュールがどこにあるかに関係なく、検索される。
【0090】
データ削除
データ削除は、エージェントによって有効化され、サポートされ、及び/又は提供されるもう1つの例である。上述のように、CDAの強化された生存性は、資産の物理的な位置を追跡することを向上させる。例え、資産の位置が定められるときでさえ、追跡されたデバイスの物理的な回収は、アプリケーションのローカルの法律、警察の執行力、所有者の証明の負担のために、必ずしも実行可能ではないということを認識すべきである。そのような状況で、CDAの拡張プロトコルに基づいてプログラム可能な能力は、デバイス上の秘密で機密のユーザデータを安全に守る手段に、よく変更する。例えば、クライアントデバイスのハードドライブに格納されるデータファイルに規定されたユーザ、ユーザプロファイル、又は、情報が規定された他のユーザは、監視サーバからの制御により削除可能である。データ削除は、選択されたデータアイテムに関して実行され、又は、OSを含む完全な記憶媒体装置が消去される。
【0091】
フルファクションCDAは、監視サーバに接触するとき、デバイスの識別が検証される。そのデバイスがデータ削除アクションのためにマークされるなら、上述した拡張通信プロトコルが、CDAのデータ削除サブファンクションをトリガーするために使用される。データ削除サブファンクションは、完璧なデータ構造を削除するワイルドカード変数と共に、削除されるべきデータを規定するパラメータでコールされる。CDAサブファンクションは、復元させないように米国国防総省が推薦するデータ削除のためのアルゴリズムを使用しても良い(例えば、米国国防総省標準5220.22−M掃除及び浄化マトリックス)。CDAサブファンクションは、データを削除する組み込みのOSサポートで利用可能である。これらのデータ削除アルゴリズム及び機構は、当業者には良く知られており、かつ、実際の削除機構は、ここで記述されたシステム能力を変更しない。
【0092】
データ削除アプリケーションは、ハードドライブ上でアプリケーション及びデータを削除し、例えば、それから、監視サーバにコールバックし、そこで、監視サーバは、データ削除アプリケーションの成功を詳細に述べるレポートをアップロードするだろう。データ削除アプリケーションが、OSの削除を除外するように指示したなら、データ削除アプリケーションは、機能するエージェント及びOSに要求されるものを除いて、全てのデータ及びアプリケーションファイルを削除するだろう。削除プロセスの最後で、エージェントは、監視サーバにステータスレポートを戻すようにする。コンピュータは、削除プロセスの後で、通常の状態に戻っても良い。
【0093】
データ削除がOSを削除するように指示した場合、最終的にクライアントデバイスAを機能しないようにするOSファイルを削除しようとする。最初のパスでは、削除プロセスは、機能するエージェント及びOSに必要とされるものを除いて、全てのデータ及びアプリケーションファイルを削除する。データ削除プロセスの終わりで、エージェントは、監視サーバにステータスレポートを返そうとする。データ削除アプリケーションは、それから、PC上のファイルの残り物を削除し続ける。これは、PCを使用不可にするものである。一旦、全データ削除プロセスが完了したら、エージェントは、監視サーバをコールすることは出来ないだろう。エージェントが、OSを再インストールしたなら、エージェントはそれを独自の機能で回復する。
【0094】
いずれの構成でも、データ削除サーバは、次の構成を有する。
・ファイルに0及び1のパターンを3回書き込む
・ファイルにランダムデータを書き込む
・ファイル属性を「ディレクトリ」に変更する
・ファイルデータ/時間を固定値に変更する
・ファイルサイズを「0」に設定する
・ファイル名称を不規則に生成されたファイル名称に変更する
・ディレクトリから新しいファイル名称を取り除く
【0095】
可能なだけ内密に作動するという目的を維持するとき、データ削除アプリケーションは、隠蔽される。データ削除プロセス中に起動するサービスは、バックグラウンドで起動するOSヘルプタスクとして削除プロセスを隠すために、「HLPMGR.EXE」とタイトル付けされる。削除が終了する前に、ユーザがプロセスを終了するなら、エージェントが監視サーバに次のコールをした時点で、アプリケーションは、捨てられた削除プロセスを再開することが可能である。データ削除で有効になる全てのクライアントデバイスのために、エージェントコールバック間隔は、モデム及びIPコールの両方のために所与の値にセットされる。
【0096】
完成するデータ削除プロセスに要求される時間は、プロセッサの速度、ハードドライブのサイズ、削除すべきデータの量、クライアントデバイスですでに生じているアクティビティの数を含む変数の数に依存する。データ削除プロセスは、完成するために数分から1.5時間以上の間に生じることが期待される。
【0097】
上手く削除された事に関しても出された報告は、次の情報を含む。
・データ削除アプリケーションがダウンロードされ、かつ、実行された確認
・削除されたリストファイル
・ハードドライブ空間の変更(データはPCから収集されるので、この情報が、資産追跡サービスが有効であるときのみこの情報は利用可能である)。この情報は、データ削除プロセスの成功に関するユーザに提供される。
【0098】
拡張プロトコルの追加アプリケーション
上述及び後述するように、フルファンクションCDA及びミニCDA(例えば、BIOS及びソフトウェア永続性実施例)は、監視サーバ上で利用可能になるデータバージョンまで最新で現状を維持するために拡張プロトコルを使用する。それは、この能力を、他の資産追跡拡張を現状のバージョンに更新するために使用する。拡張プロトコルに含まれる一般的なサブファンクションは、上述した資産追跡データ削除に加えて、複数の機能を達成するために、包括的であり、かつ、柔軟性がある。拡張プロトコルの別なアプリケーションの例は、監視サーバからアプリケーションをダウンロードし、開始することである。実行ファイルは、メモリにダウンロード可能であり、それから、実行可能である。あるいは、インストーラが監視サーバからダウンロードされ、アプリケーションをインストールし、又は、既存のアプリケーションを更新するために起動される。
【0099】
モジュールの代替実施例
この発明は、限定されないが、次の要素に基づく特定の環境に適合するために永続性エージェントの様々な実施例で実施される。
(a)異なるデバイス(例えば、PC)の製造会社から異なるBIOS実装
(b)BIOSを有する異なるインタフェース要求
(c)異なるデバイス製造会社から、又は、異なるデバイスモデル上で利用可能となる様々なフラッシュメモリ空間
(d)BIOSPCIオプションROM列挙フック無しで動作可能
【0100】
これらの要素に適合するために、CLMは、PCIオプションROMとしてフォーマットされ、AIM及びCDAは、分割して、又はCLMと連結して格納される。CLMは、POSTサイクルの終わりに小さな断片に縮められる。デバイスがPCIオプションROMに列挙されないBIOSを有するなら、CLMは、パーティションギャップに存在し、代わりのマスターブートレコード(MBR)を使用する。永続性エージェントモジュールの別な実施例が、より詳細に後述される。
【0101】
A.フラッシュ常駐
本発明のフラッシュ常駐実施例において、CLM、AIM、及びミニCDAは、BIOSフラッシュイメージの中に全てロードされる。このアプローチは、PCIオプションROMがBIOSフラッシュイメージからロードされるBIOSで使用されるこの平均的な既存プロセスを利用する。付加的モジュール(AIM及びミニCDA)は、図3のケースにあるように、PCIオプションROMの中のCLMに結びつくか、フラッシュの中で分割して格納される。
【0102】
AIM及びミニCDAがCLMに結び付けられるなら、18〜20KBのPCIオプションROMは、上限値のシャドウメモリの中にPOSTでロードされ、AIMは、CLMによって解凍される。次にAIMは、システムのためにミニCDAを適合し、及び、設定し、及び、CLMに制御を返す。CLMは、PCIオプションROMのサイズを最小値に縮め、2KBROMブロックとしてメモリ領域を上限値にする。AIM(〜6KB)及びCDA(〜10KB)は、単にフラッシュイメージに格納され、CLMと結び付けられず、CLMは、AIM及びミニCDAを検索し、かつ、解凍するための追加イメージアクセス機能を組み込む。CLM、AIM及びミニCDAの操作は、上述の組み合わされたメソッドに類似する。CLMのサイズは、わずかに大きく、フラッシュイメージがターゲットとするプラットフォームに特に特化される。このアプローチは、フラッシュ常住のPCIオプションROMの認識を許可するベンダーIDの事前設定を仮定する。フラッシュイメージの管理は、図11に表される。
【0103】
B.ハードドライブパーティションギャップ
BIOS特定空間制限に依存して、完全な永続性エージェントの全ての方法のためにBIOSフラッシュメモリの中に十分な空間が無いかもしれない。この場合、デバイスベンダーサポートに依存して、AIM、又は、AIM及びミニCDAは、ハードドライブパーティションギャップのような大容量デバイスの中でユーザアクセス不能エリアに在住する。これは、「ソフトウェア永続性」の形式の例である。この実施例では、CLMは、まだ、フラッシュの中に在住し、先の実施例のように、PCIオプションROM列挙プロセスの中に呼び出され、しかし、CLMは、AIMをロードし、そしてつぎに、別な場所からCDAを実行する。
【0104】
図13は、その状況で含まれたパーティションギャップイメージ管理を表す。そこでは、永続性エージェントの追加モジュールは、パーティションギャップ内に存在する。このギャップは、MBR及び第1のパーティションの間に存在する。ギャップは、62セクターあり、大半は新しいハードドライブであるが、セクターの幾つかは、他のソフトウェアとの互換性を維持するインストール・ユーティリティにより予約されており、その使用可能サイズは、27KBである。このサイズは、サーバとの通信に必要なエージェント(AIM、CDA)の基本モジュール、及び、OSの中の残りのモジュールのブートストラップを含む。
【0105】
ホスト保護領域(HPA)
図12を参照すると、代替的に、先の実施例のようなハードドライブパーティションでの永続性エージェント(即ち、AIM及び/又はミニCDA)の付加的モジュールを格納する代わりに、全てのモジュールのためのBIOSフラッシュメモリの中に十分なスペースがない状況において、永続性エージェントの付加的モジュールは、HPA、又は、同等の機能を有するような大容量記憶装置の別なユーザアクセス不能領域に在住する。これは、ソフトウェア永続性の別な例である。付加的サポートは、鍵がかけられた、又は、鍵がかけられてないHPAに要求される。このHPAアクセス機構は、PCOEM特有になるだろう。HPA内のイメージは、ランタイムで管理される必要がある。ドライバ及びアプリケーションは、BIOSインタフェースを承認する既存の方法をサポートし、かつ、HPA空間の部分を管理する必要なランタイムアクセスを獲得するだろう。この実施例では、CLMは、フラッシュ内に在住し、先の実施例のように、PCIオプションROM列挙プロセス間にコールされるが、CLMはAIMをロードし、それは、次に、別な場所からCDAを起動する。
【0106】
D.非フラッシュCLM
多くのセキュアな実施例が、BIOSフラッシュメモリ内に在住するCLMを含む一方、これがサポートされない環境もある。これは、PCIオプションROMスキャンの間に、フラッシュ内のCLMヘッダを列挙するようにBIOSを設定していない場合である。これらのシステムでは、CLMのための代替的な位置が、既存の製品に関連するより優れた解決を提供する。代わりのマスターブートレコードの使用が、この解決のために利用される。この実施例では、CLMは、代わりのマスターブートレコードからロードする。CLMは、それから、ロードし、AIM、及び、ミニCDRに制御を渡し、そして、AIM及びミニCDRは、先の実施例で述べたように、パーティションギャップに配置される。エージェントサブローダのための代わりのMBRアプローチは、出願人によって特許されており、参照においてここに同一のものとされる。本発明において、CLMは、先行特許で見つからないAIM及びCDAに関して追加的及び異なるファンクションであるが、ここで、CLMは、類似のサブロードアプローチの長所がある。
【0107】
最適化
CLMPCIオプションROMは、システムBIOSの中に統合するのは難しい。例えば、IBM(登録商標)モデルT43ノートブックコンピュータは、オプションROM構造を有するIBM(登録商標)BIOSと共にインストールされる。その形式及び機能は、ビデオオプションROM、又は、BIOS内に既に存在しているマザーボードコントロールオプションROMと同等である。単純なケースでは、BIOSは、CLMのベンダーIDを認識するように、単に設定されていなければならない。CLMの形式及び機能は、ホストBIOSによりしっかりと統合され、幾つかのサイズ最適化を起こすことができる。フラッシュイメージ内にCLM、AIM及びCDAモジュールを格納するために要求される〜20KB内に小さな空間をセーブする機会がある。下記は、3つのメインモジュール及び各主要な機能ギャップの凡そのサイズ内の様々な機能を表す表である。最適化列は、各モジュール内の機能グループの最適化機会の評価をリストにしてある。
【0108】
【表8】
【0109】
モジュール内の様々な機能について、CLM機能(PCI、イメージ管理、実行環境)だけが、ホストBIOSから特有のサポートで最適化される。イメージ管理機能のサイズは、BIOSの圧縮アルゴリズムを用いて、及び、AIM及びCDAモジュールを格納する「結合」メソッドを用いて、約3KBに減らせる。実行環境セット及び制御機能のサイズは、全てのディスク資源が利用可能であり、かる、POSTメモリマネージャサポートが必要とされないために、POST後半ロードされるPCIオプションROMを確実にすることによって、0.8KBまで減らすことが可能である。〜20KBサイズのより低い範囲は、およそ〜18.9KBである。上限サイドでは、プラットフォーム特有のサポートは、CLM内で要求され、2KBを単位として増加する。
【0110】
BIOSインタフェースが、SMBIOSを介してCLMを検出し、かつ、設定するためにアプリケーション・プロトコル・インタフェース(API)をあらわにする場合、2KBの可視的なROM「切れ残りの要求」は、緩やかとなる。
【0111】
エージェントは、それを取り除こうとすることが通常期待されているアクションにも関わらず、永続性を有する機能がある。エージェントのプログラマブル機能は、サーバドリブンコマンドに基づいてその機能を拡張することを可能にする。本発明は、そのデバイスの「ユーザ」のアクションにもかかわらず、展開したソフトウェアエージェントのための能力を「アクティブ」に改良する。エージェントに関するユーザのアクションは、意図的又は偶然かもしれない。本発明は、エージェントを無効化する合法的な要求を許可する(例えば、コンピュータ資源のライフの終わりに)一方で、ソフトウェアエージェントの偶然の削除から認証ユーザを守る。本発明は、非認証ユーザが、エージェントソフトウェアを削除することを防ぐ。本発明の永続性属性は、セキュリティ及び資産管理アプリケーションの両方に価値がある。セキュア、内密なデバイス追跡ソフトウェアアプリケーションという状況において、本発明は、窃盗によってなされるアクションにもかかわらず、ソフトウェアは、存続し、遠隔監視センタへの接触を利用可能にし、価値のある資産の窃盗が偽装することをさらに困難にするので、極めて重要である。加えて、ソフトウェアエージェントの永続性の本質は、追跡エージェントが故意に取り除かれないという信用を提供するので、個人情報のセキュリティに対して安心感を提供する。セキュア資産管理アプリケーションと言う状況で、これは、そのライフサイクル全体を通して資産を追跡する継続性を確実にするので、さらなる価値を有する。IT管理者のための挑戦の鍵は、ライフサイクル全体を越えて資産を追跡する能力である。ライフサイクルの間に、デバイスは、しばしば、あるユーザからの別なユーザへ移転され、その間に、デバイスは、再イメージされ、再インストールの操作又は資産追跡を困難にする保守手続を課せられる。
【0112】
本発明のプロセス及びシステムは、ブロックダイアグラムフォーマットで機能モジュールに関して上述した。ここで正反対に別段述べられていないなら、1つ以上のファンクションが、離れた物理的デバイス、又は、1つの位置でのソフトウェアモジュール、又は、ネットワーク上を分散して、本発明の範囲と精神に放れることなく、実施される。
【0113】
各モジュールの実際の実施の詳細な議論は、本発明の理解を可能にするためには必要では無いということが評価される。実際の実装は、プログラマー及びシステムエンジニアの日常のスキル内で良く、システムの属性、機能性、システム内の様々な機能モジュールの内部関係というここで開示されたもので与えられる。通常のスキルを有する当業者は、過度の経験無しで本発明を実施することが可能である。
【0114】
本発明は、発明とともにここで記述された実施例に関して述べられた一方、当業者は、本発明の範囲及び精神から離れることなく様々な修正及び改良を行うことは明らかである。例えば、情報抽出アプリケーションは、ウェブブラウジングのためのユーザの追加的柔軟性を提供するために、異種又は追加のプロセスを適合するように容易に修正される。したがって、本発明は、添付した請求の範囲のみに制限されず、かつ、説明した特有の実施例に制限されないことが理解されるべきである。
【図面の簡単な説明】
【0115】
【図1】本発明の一実施例による資産追跡が実行されるネットワークを有する典型的通信リンクを表す概略図である。
【図2】本発明の一実施例による永続性エージェントを含むBIOSに対するPCIオプションROMの取り付けを表す概略図である。
【図3】本発明の一実施例によるPCIオプションROMの中にある永続性エージェントのモジュールコンポーネントを表す概略図である。
【図4】本発明の一実施例によるオプションROM装填ルーチンを表す概略フロー図である。
【図5】本発明の一実施例による永続性エージェントのCLMにより実行されるルーチンを表す概略フロー図である。
【図6a】本発明の一実施例によるCLMのインタラプト・ハンドラにより実行されるルーチンを表す概略フロー図である。
【図6b】本発明の一実施例によるCLMのインタラプト・ハンドラにより実行されるルーチンを表す概略フロー図である。
【図7】本発明の一実施例による永続性エージェントのAIMによって実行されるルーチンを表す概略フロー図である。
【図8】本発明の一実施例による永続性エージェントのCDAのインストーラモードルーチンを表す概略フロー図である。
【図9】本発明の一実施例によるCDAのサービスモードルーチンを表す概略フロー図である。
【図10】本発明の一実施例によるアプリケーションモードでのCDAの概略図である。
【図11】本発明の一実施例によるフラッシュイメージ管理の概略図である。
【図12】本発明の一実施例によるホスト保護エリアイメージ管理の概略図である。
【図13】本発明の一実施例によるパーティションギャップイメージ管理の概略図である。
【図14】本発明の一実施例による永続性エージェント及びリモートサーバ間の通信セッションの概略図である。
【技術分野】
【0001】
本発明は、コンピュータ及びネットワーク環境における永続性又は不正改変防止サービスを提供するエージェントに関する。
【背景技術】
【0002】
今日の競争が激しいビジネス環境においては、情報技術(IT)は、日々のビジネス業務における知識の交換において、ますます重要な役割を演じている。個人、システム、組織、そして他の事業資産は、この新興ビジネスウェブにおいて、相互接続されており、ITの展望が、ますます複雑になるので、コンピュータ資産を効率的に管理する必要がある。結果として、組織は、その投資を最大化し、コストを制御しようとするために、以前よりもっと、コンピュータの資産担保を管理し、安全化することを掌握する必要性を認識している。
【0003】
ネットワーク下でコンピュータを管理するために要求される時間と財源の量は、重要な意義を有する。これらの資産が、電子商取引やビジネスインテリジェンスのようなキー・ビジネスプロセスをサポートする。もし、これらの資産が守られない、及び、それらを積極的に管理する能力が無いなら、短期及び長期の損失の可能性は、非常に高い。
【0004】
組織が出くわす主要な問題の1つは、具体的なソフトウェアイメージ及び記憶装置ドライブに関して要求される更新を管理する能力であり、それらのコンピュータの場所及び進行中の移行を追跡する能力である。何の資産を所有するか、それらは、時間内に変更されているかということを知ることは、進行中のIT資産及びポリシー管理にとって基本となる。この知識は、また、ハードウェア又はソフトウェア更新、もしくは、コンピュータ廃棄のような、より良い計画立案及び予算決めを可能にする。この問題は、さらに、地理的に拡大した会社ほど、モバイル及びリモートシステムの導入がますます一般化するほど、度合いを増す。これらの資産及びその上のソフトウェアイメージを追跡し続けることは、コンピュータそれ自身の価値が重要であるばかりでなく、マシン上にある価値あるデータの保護のために、ますます重要になっている。損失又はミス設定された資産は、その資産上の秘密情報や独占情報を読み出し可能にし、アンチウイルス更新の無い状態にし、又は、企業ネットワーク内でアクセスをまだ有しているかもしれない。企業は、それらの資産及び構成を資産計上しなければならず、ハードウェア及びソフトウェアに関してそれらが何であるかのみならず、それらがどこにあり、誰が使っているかを知らなければならない。この付加的情報のみが、安全性という課題、及び、リモート及びモバイルユーザの規則的な承諾に取り組み始めることができる。
【0005】
モバイルコンピュータデバイス用の電力処理の増加と共に、徐々に、個人は、デスクトップ・ユニットや、ホーム又はスモールビジネスネットワークのための予備デバイスとして、モバイルコンピューティングデバイスを選ぶようになっている。一方、個人は、そもそも、コンピュータ資産在庫、設定管理に関心が無いにもかかわらず、彼らは、パーソナルコンピュータ資産の追跡、及び、個人データの保護に関して、大組織と同じような関心を共有する。
【0006】
多くのIT部門は、今までの資産管理ソリューションは、リモート及びモバイルユーザの増加人口を精度良く説明することが出来ていない。実は、典型的な組織は、2年間にPC資産の15%を、漂流PC1として見失うだろう。そこでは、資産は、必ずしも、失ったか、盗まれたかではなく、最初に用意されてから、何度も所有者や部門が変更されたために説明できないのである。平均して、多くの組織は、実際のPC資産の65%しか確認できておらず、それらは在庫2とされる。最もすばらしい遂行は、IT部門は、少なくとも90%のPC資産がいかなるときにもどこになるのか知ることを要求する。
【0007】
LAN外を移動するリモート及びモバイルコンピュータ資産は、多くの場合に、問題となる。最初に、多くの資産を追跡するソフトウェアは、それらのマシンが、ローカルネットワークに接続されないとき、それらのマシンを追跡することが出来ない。また、それらのマシンは、ITネットワーク全体にとって大きなセキュリティ的脅威をもたらす。さらによく、IT管理者よりむしろリモートユーザは、そのマシンを更新する管理や設定に責任を持たない。多くのユーザは、通常、彼らがすべきセキュリティに関心がない。ユーザは、低いセキュリティ設定、悪意あるソフトウェアを知らずにインストールし、アンチウイルスソフトウェアを期限切れにし、最新のセキュリティ・パッチをインストールできない。リモートユーザに責任のあるセキュリティ監視のようなものは、ネットワーク全体に強烈な影響を与えうる。リモートユーザがLANに接続するとき、それらの緩慢なセキュリティ設定のために、ネットワーク全体が感染を受ける。これらのリモートマシンのための効果的資産管理ツール無しで、IT管理者は、ネットワーク全体の完全性を確実にすることは出来ない。ネットワークは、その最も弱いリンクと同じ安全性しか有さない。コンピュータセキュリティに関する年鑑CSI/FBI調査は、盗まれたPC資産の57%は、企業に対する追加的な犯罪を実行するために使用されることを示している。
【0008】
最近の企業会計スキャンダル、認識のシフト、悪意あるハッキングに応えて、政府は、全ての機密デジタル情報を保護し、責任を有することを、ビジネスに課す規則を設立させている。2002年のサーベンス・オクスリー法は、そのような規制の好適な例である。サーベンス・オクスリーと共に、不正確な資産報告の発覚が増加している。経営幹部は、適切なコントロールや規則が、正確な資産報告を確実にする準備が整っているかどうかを、法的に検証することを要求されている。今は、正確な資産報告が実施されることを確実にすることは、CFO及びCEOに受託された責任である。資産ベースを不正確に報告する組織にとって、法律、規則、金融的開示は重要である。コンピュータは、よく、組織の資産ベースの物質比率を埋め合わせし、これにより、正確な報告を要求する。グラム・リーチ・ブライリー(GLB)法は、顧客記録が金融部門で保護されることを確実にする規定も有する。同様に、医療保険の携行性と責任に関する法律(HIPAA)が、医療記録と情報の秘密性を保護するために、設けられた。もし組織が、効率的にコンピュータ資産の全てを追跡しないなら、厳格な規則が影響してくるだろう。
【発明の開示】
【発明が解決しようとする課題】
【0009】
その追跡機能を請け負う資産追跡、及び/又は、設定管理アプリケーションは、ユーザによって不正使用に対して確実なレベルで抵抗することができるべきである。資産監視の状況において、典型的には、認証ユーザは、コンピュータのライフサイクル管理の幾つかの局面において責任を有する人間である。この状況で、追跡エージェントは、ソフトウェアエージェントの偶然の除去から、認証ユーザを守ることができるべきであり、一方、エージェントを正規に不能にする要求を(例えば、コンピュータ資産使用を終了する場合において)可能とするべきである。非認証ユーザは、エージェントソフトウェアを取り除こうとするユーザであり、典型的にそのコンピュータのライフサイクル管理に責任を有さない者である。良く考えた理由として、エージェントを取り除こうとする非認証な試みは、追跡ソフトウェアが永久的に取り除かれることを確実にすることを望む、泥棒行為又は潜在的泥棒を含むだろう。非認証な偶然的除去の試みは、新しいオペレーティング・システム(OS)に成功に又は不成功にインストールする誰かの試みも含むだろう。
【0010】
PC資産及びその設定を追跡、管理、更新する試みは、多くのハードウェア、ソフトウェア、及び破壊/修繕、設定変更、OS再インストール、ハードドライブ再フォーマット/交換、システムクラッシュ、ユーザドリブン設定変更を含むイメージチェンジを経るPCのライフサイクル間の事実に関してさらに、挑戦的となる。これらの変更は、OSの再インストールを要求し、それにより、オリジナルの足跡、識別、又は、PC資産の追跡エージェントは不能、又は、除去される。この変更は、もし熱心に記録及び追跡されないなら、周知状態から不明状態へ移行するPC資産の始まりとなる。これらの決まりきった手順のPCライフサイクル運用上の要求は、複雑性、PC資産追跡の課題を増加させ、特に、リモート及びモバイルPCについて増加させる。
【0011】
これまで、既存の資産追跡アプリケーションは、それらが非認証ユーザによって不正使用することに対して要求される永続性を得るために必要な構成を表示しないという点で、ウィンドウズ(登録商標)NT/2000/XP環境において不十分である。これらの追跡アプリケーションは、上述した非認証又は偶然のユーザアクションによって、一般に、容易に無効化される。
【0012】
本発明の出願人、アブソリュート・ソフトウェアコーポレーションは、安全に資産を追跡し、失った及び盗まれた資産を回収する製品及びサービス、アブソリュート・トラック、セキュア資産追跡、在庫管理、コンピュトレース技術プラットフォームによって供給されるソリューションを開発し、市販している。コンピュトレースは、ステルスエージェントを展開し、それは、ホストコンピュータのハードドライブに存在するソフトウェアクライアントである。いったんインストールされると、そのエージェントは、自動的に、定期的に位置情報、全自動で発見される資産データ位置を転送する監視センタにコンタクトする。エージェントと監視センタ間の継続的通信は、ユーザの介入を要求せず、インターネット又は電話接続を介して維持される。コンピュータが起動され、かつ、電話回線かインターネットアクセス(ISPや企業ネットワークを通して)のどちらかがある限り、コンピュトレース・エージェントは、監視センタに資産データを報告することが出来るだろう。エージェント及び監視センタ間のユーザ介入の無い通信は、エージェントの認証ユーザに、最新の位置情報及びコンピュータ在庫全体の広範囲の資産データにセキュアアクセスすることを確実にする。スタンドアローン、又は、既存の資産管理ツールの補足としてであろうとなかろうと、アブソリュートトラックは、リモート、モバイル、デスクトップコンピュータの全てのサイズのビジネスを助けるコスト効果のあるアプリケーションであり続け、日々のハードウェア及びソフトウェア品目追跡機能を実行する。コンピュトレースは、モバイルコンピュータの盗難を追跡し、かつ、盗まれたモバイルコンピュータを回収するための効果的ツールであり続ける。
【0013】
様々なコンピュトレース製品及びサービスの基礎をなす技術は、US及び他の国で開示され、特許を受けた。そしてそれは、通常は、アブソリュートソフトウェアコーポレーションに帰属している。例えば、US特許番号、5,5715,174、5,5764,892、5,802,280、6,244,758、6,262,392、及び6,507,914、そして関連する外国特許。さらに、アブソリュートトラックに関する情報は、アブソリュートソフトウェアコーポレーションで発行されている(例えば、セキュアコンピュータ資産追跡ソリューション、ホワイトペーパ、2003年4月25日発行)。
【0014】
各保護されたデバイスに展開されるエージェントソフトウェアは、内密(ステルス)性であり、コンピュータユーザによって発見されることを対して抵抗する。不正使用耐性のレベルは、検出の困難性、及び、コンピュトレースサービスを打ち負かすために要求される技能のレベルに影響を与える。ソフトウェアのみのコンピュトレースは、ディスクベースのユーティリティのような不正使用耐性がある一方、不正使用耐性の付加的レベルを提供する改良されたエージェントを望ましくは発展し、そして、資産追跡及び回収を超えるサービスをさらに可能にし、サポートし、及び/又は、提供する。
【課題を解決するための手段】
【0015】
本発明は、資産の管理及び保護(ハードウェア、ファームウェア、ソフトウェア、データ等の制限を含まず)、それらのソフトウェアの設定に関連するサービスを、改善された不正変更防止と共に可能にし、サポートし、及び/又は提供するサービスエージェントを対象とする。
【0016】
ソフトウェアエージェントは、複数のモジュールを有する。各モジュールは、特定の動作環境で機能するように設計されている。モジュール設計は、アプリケーション全体を構築せずに、特定の動作環境、例えば、BIOS又はハードドライブの中における、展開のためのエージェント設定において柔軟性を提供する。エージェントは、ソフトウェアによって実装されても良く、システム内のソフトウェア、ファームウェア、及び/又はハードウェアに在住することができる。
【0017】
本発明の一実施例によれば、ローダーモジュールは、パワーオンセルフテスト(POST)間にロードされ制御を獲得する。エージェントは、それがインストールされたデバイスに関して、サービス(例えば、追跡、データ削除、及びソフトウェア更新)を可能にし、サポートし、提供することが期待されている。一旦、ローダーに制御が与えられると、ローダーは、適切な時間に必要なだけ含み、かつ、削除され又は機械から無くなってしまったエージェントの部分をネットワーク(例えば、インターネット)を横断して再ロードし、他の機能及びエージェントのモジュールをロードするように行動する。ソフトウェアエージェントは、通常エージェントを取り除くことが期待されるアクションにも関わらず永続性を有する能力がある。
【0018】
本発明の一実施例によれば、永続性エージェントのエージェントコードのための少なくとも1つのモジュール及び/又はデータは、ROMのようなデバイスのファームウェアで、特に基本的な入出力システム(BIOS)又はその同等レベルのもので実装され、そして、そのデバイスに在住する。ソフトウェアエージェントは、デバイスのOSに独立してその設計されたサービスファンクション(例えば、追跡、データ削除、及びソフトウェア更新)をすぐに実行できるようにそれ自身をロードし、エージェントがその設計されたサービスファンクションを実行するシステムの基本動作を利用できるように、OSを検出することによってデバイスのある基本動作(例えば、入出力)を制御する環境(例えば、そのデバイスのOS)に自分自身を適合することができる。
【0019】
別な実施例によれば、「コンピュトレース(Computrace)」ローダーモジュール(CLM)、適合インストーラモジュール(AIM)、及び通信ドライバエージェント(CDA)という、3つのモジュールを有する。CLMは、AIMをロードし、次に、検索し、認証し、解凍し、検出したOS環境にCDAを適合させる。ある実施例では、CDAは、2つの形式、フルファンクションCDA、及び、ミニCDAがある。ミニCDAのファンクションは、フル又は現状のCDAがデバイスのどこかに検出されるか否かを判断し、もしないなら、監視サーバからネットワーク(例えば、インターネット)を横断してフルファンクションCDAをロードすることである。別な実施例では、異なるモジュール、及び、特にCDAは、プログラマブルであり、特有の環境に適合させるためのカスタムな機能性を要求することができる。幾つかのモジュールでエージェントを提供することで、カスタマイゼーションのレベルは、最小に維持される。ある実施例では、少なくともCLMが、BIOSのようなファームウェアで、一つ以上の他のモジュールと共に、ハードドライブパーティションギャップ、又は、ハードドライブホスト保護エリア(HPA)に格納される。別な実施例では、CLMは、代替マスターブートレコード(MBR)又は前述の組み合わせに格納される。
【0020】
別な形態によれば、エージェントが実行するサービス環境は、リモートサーバ、又は、エージェントで利用可能な一般的なサブファンクションコールの組み合わせによって制御される。エージェントのこのプログラム可能な能力は、サーバドリブンコマンドに基づいて、その機能を拡張することが可能である。拡張性は、エリアが高価であり、機能性を加えたり、変更する柔軟な更新が経済的では無いBIOSのようなファームウェアでは、エージェントの上手い展開に関して非常に重要である。拡張性の構成は、エージェントの起動プロセス及び再起動プロセスの主要な要素となる。
【0021】
本発明の別な形態によれば、エージェントの拡張性は、クライアントデバイスで格納されるデータを削除するために、データ削除アプリケーションを有効にする。
【0022】
本発明のさらに別な形態によれば、エージェントの拡張性は、クライアントデバイスに送信され、かつ、プログラム可能となるソフトウェア更新を有効にする。
【0023】
本発明は、デバイスの「ユーザ」の活動にも関わらず、「アクティブ」状態にあり続けるために、先に展開したソフトウェアのための能力を改良する。本発明の状況においては、「アクティブ」は、それ自身をロードし、ある実施例では、例えば、ハードドライブをフォーマットする低レベルコマンド、OSの再インストール、イメージユーティリティを用いたハードドライブの再イメージ化、ハードドライブの交換を含む「ユーザ」活動の広い範囲においてエージェントの全機能を再構築する特有の能力を参照する。「ユーザ」は、これらの活動を実行する個人として参照され、認証された能力、又は、非認証された能力で行動する。エージェントを取り除くこれらの活動は、意図的あるいは偶然であるかもしれない。
【0024】
本発明は、エージェント(例えば、コンピュータ資源のライフの終わりで)エージェントを合法的に無効にすることができる一方で、ソフトウェアエージェントの偶然の削除から認証ユーザを守る。本発明は、非認証ユーザによるソフトウェアエージェントの削除から保護する。本発明の永続性の属性は、資産保護、データ及びネットワークセキュリティ、IT資産管理、ソフトウェア展開、他のタイプのアプリケーションにおいて価値を有する。セキュア、内密なデバイス追跡ソフトウェアアプリケーションという状況において、本発明は、盗難という行動にもかかわらず、価値のある資産の盗難を、隠すことを極めて難しくする。加えて、ソフトウェアエージェントの永続性という性質は、エージェントが偶然でも削除出来ないという信頼を提供するので、個人情報に平和をもたらす。セキュア資産管理アプリケーションという環境で、そのライフサイクル全体を通して、資産を追跡する連続性を保障するので、本発明はさらなる価値を有する。今日、IT管理者のための挑戦すべき鍵は、ライフサイクル全体を通して資産を追跡する能力である。ライフサイクルの間に、デバイスあるユーザから別なユーザへ頻繁に移転され、その間に、デバイスは、再イメージされ、OSを再インストールされ、資産の追跡を困難にするようなメンテナンス手続が課せられるが、本発明によりそれらは容易に行われる。資産追跡サービスに加えて、永続性及び拡張性エージェントのよって、他のサービスが可能になり、サポートされ、及び/又は提供される。
【発明を実施するための最良の形態】
【0025】
好ましい使用はもちろんのこと、本発明の本質及び利点のより十分な理解のために、添付される図面と共に読まれる次の詳細な記述が参照されるべきである。図面では、参照番号は、図面全体を通して類似又は同じ部分を指定する。
【0026】
本記述は、本発明を実行するための現在最も良く考えて記載されたものである。この記述は、本発明の一般的な原則を説明するためのものであり、本発明を制限する意味で理解されるものでは無い。本発明の範囲は、添付された請求項を参照して最も良く判断される。本発明の基礎をなす原則の理解から明白であるように、本発明は、本発明の範囲及び精神から離れることなく、様々な実施例の中に実用性を見つけることができる。本発明の永続性エージェントの構成を説明するために、エージェントや、追跡エージェントにより提供されるサービスの1つとしての資産追跡、及び、エージェントにより提供される別な例としてのデータ削除を参照する。本発明の範囲及び精神から放れることなく、エージェントは、ソフトウェア展開、更新などの他のサービスのために使用されることが理解される。
【0027】
下記に示す詳細な説明は、主として、本発明の方法、プロセス、操作の象徴的な表現、機能及び構成という用語で、表される。これらの方法記載及び表現は、当業者が最も効果的に、他の分野の当業者にその内容を最も効果的に伝えるように使用される手段である。ソフトウェアを実装する方法又はプロセスは、ここにおいて、一般に、望ましい結果に導く自己矛盾の無い連続的なステップと考えられる。これらのステップは、物理量の物理的な操作を要求する。しかし必ずしも必要では無いが、これらの量は、しばしば、格納、転送、結合、及び他の操作を可能にする電気的又は磁気的信号の形をとる。
【0028】
追跡システム外観
資産追跡機能は、本発明の永続性エージェントによって可能、サポート、及び/又は、提供されるサービスの例である。図1を参照すると、本発明の実施例による資産追跡システムは、クライアント・サーバアーキテクチャを含み、そしてそれは、次の主要なコンポーネントを有する。
【0029】
(a)表される電子デバイスのいずれか1つを構成し、かつ、エージェントが実装されるクライアントデバイスA。そのエージェントソフトウェアは、資産、位置、及び他の情報を報告するためのクライアントデバイスであり、かつ、望ましい機能をサポート及び実行するためにそのエージェントをプログラムするためにリモートサーバからの命令を受信するためのクライアントデバイス上で実行する。本発明は、突発的又は計画的な削除に対してより永続性のあるエージェントソフトウェアの能力、及び、監視サーバからのクライアントのプログラマビリティを提供する。
【0030】
(b)切替通信ネットワーク、インターネット、プライベート及びパブリックイントラネット、ラジオネットワーク、衛星ネットワーク、ケーブルネットワークを含む情報交換ネットワークのような通信リンクB。
【0031】
(c)クライアントデバイスAとホスト監視システムCとの間の通信を監視するホスト監視サーバ3を含むホスト監視システムC。そしてそれは、クライアントデバイスからのクライアントデバイス記録情報によって定期的に接触される。その監視サーバは、クライアントが実行すべきアクションは何か、収集すべきデータは何であるかを含む何のアクションを実行するかに関するクライアントへの命令や、次のスケジュールされたコールタイムをクライアントに提供もする。クライアントデバイスは、通信リンクB(例えば、ダイヤルアップ電話通信又はIP接続)を介して監視サーバに接触する。監視サーバは、インターネット上に提供されたサービス、又は、企業イントラネット上の顧客所有サーバとして、機能を実行することもできる。ホスト監視システムCは、報告及び管理者ポータルを含み、そしてそれは、顧客、管理者、及び、データを見たり、監視サーバやクライアントデバイスの機能を監視する資産追跡サービスプロバイダ機能を有する。ホスト監視サーバは、顧客に、及び、多くの通信手段を介して資産監視の状況に関する指定代理人及び法執行代理機関を知らせる。これらのコンポーネントの各々についてさらに以下に詳述する。
【0032】
図1を参照すると、本発明による永続性ソフトウェアエージェントを実装する役に立つクライアントデバイスAは、制限はされないが、一般的又は明確な目的のデジタル処理、情報処理、及び/又は、コンピューティング装置を含み、そしてそれは、スタンドアローンデバイス、又はより大きなシステム(例えば大容量記憶装置)のコンポーネント、持ち運び可能で、携帯可能で、又は固定型であっても良い。異なるタイプのクライアントデバイスは、本発明のソフトウェアエージェントアプリケーションと共に実装される。例えば、本発明のソフトウェアエージェントアプリケーションは、デスクトップクライアントコンピューティングデバイス、ポータブルコンピューティングデバイス(例えば、ラップトップ、ノートブックコンピュータ)、携帯可能デバイス(例えば、携帯電話、PDAs(携帯情報端末)、パーソナル電子機器等)に適用しても良く、そしてそれは、下記でさらに説明するように、外部サーバに通信することが可能である。クライアントデバイスに在住するオペレーティングシステムに加えて、クライアントデバイスは、選択的に操作可能で、プログラムにより開始され又は設定され、ルーチン及び/又は連続した命令及び/又はデバイスに格納されるロジックであっても良い。つまり、ここに記載され示唆される方法の使用は、特定の処理設定に制限されるものでは無い。
【0033】
本発明の原理、構成、及び機能の理解を説明するために、それらは、説明的な実施例において、その展開及び実施を参照して説明される。例示及び非制限の方法で、本発明は、インターネットの状況に関連して展開及び実装例を参照して、クライアントデバイスA(コンピュータA1は、概念的にデスクトップデバイスとして表されるが、それよりむしろ、携帯コンピュータデバイスを有する)として、ラップトップ又はノートブックコンピュータを参照して記載される。現在存在する将来のグローバルネットワークに対する本発明の応用は、ここに意図されている。さらに、本発明のインターネットの形態は、クライアントコンピュータA1に関して記載及び説明されるが、インターネットへの応用は、本発明の範囲及び精神から放れることなく、他のクライアントデバイスに徐々に適用可能である。
【0034】
図1は、情報交換ネットワークの形式で、通信リンクBの概念的表現である。そこで、本発明は、資産追跡のために利用される。本発明により、資産追跡エージェントによりアクセスされる情報交換ネットワークは、パブリック及びプライベートコンピュータネットワーク(例えば、インターネット、イントラネット、WAN、LAN等)、付加価値ネットワーク、通信ネットワーク(例えば、有線又は無線ネットワーク)、ブロードキャストネットワーク、ケーブルネットワーク、ラジオネットワーク、そのようなネットワークの同種又は異種の組み合わせのような、分散情報交換ネットワークを、制限はされないが、有する。当業者であれば正等に評価するように、特定の目的のために最も効果的な記述により、ネットワークは、ハードウェア及びソフトウェアの両方を含み、どちらか、又は、両方として考えられる。例えば、ネットワークは、通信設備により相互接続されるハードウェア・ノードのセットとして、又は、通信設備として、又は、そのノード有り又はノード無しの通信設備として記載される。ハードウェア、ファームウェア、ソフトウェアとの間の境界は、常に明確ではないということがさらに理解され、そのようなネットワーク及び通信設備、及び、永続性エージェント技術プラットフォームのコンポーネントは、ソフトウェア、ファームウェア及びハードウェア形態のように当業者には理解されるだろう。
【0035】
インターネットは、コンピュータネットワークを含む情報交換ネットワークの例であり、そこで、本発明は実施される。当業者であれば明白であるので、インターネットネットワーク(サーバ、ルータ、ゲートウェイのような)を有する様々なハードウェア及びソフトウェアコンポーネントは、示されていない。さらに、ユーザ/クライアントデバイス及びサーバによるインターネットへのアクセスは、同軸ケーブル、電話線、無線RFリンクのような適切な通信媒体L、そこで実装されるブラウザのようなツールを介してなされることは、理解されるだろう。サーバ及びクライアント間の通信は、確立したプロトコルにより生じる。下記に示されるように、本発明の永続性資産追跡エージェントは、クライアントの1つの中に、又は、クライアントの1つとして設定され、それは、情報交換ネットワーク上を越え、サーバの1つと通信する。この発明は、他の既存の技術と連結して働き、そしてその他の技術は、本発明を判りにくくなることを避け、当業者には明らかなのでここでは詳述しない。特に、例えば、方法は、今のところ、インターネット、ウェブベースツール、関連方法、及びプロトコルを含んで存在する。
【0036】
図1を参照すると、ホスト監視システムCは、通信リンクBの1つ以上(並列又は同時)を介して、エージェントをインストールしたクライアントデバイスAでデータを交換するように設定されるコンピュータ(例えば、サーバ3)である。ホスト監視システムCは、外部ユーザアクセス(C1)を識別し、及び、フィルタリングするルーチンを含む。ホスト監視システムCは、さらに、報告及び監視ポータルを介して、所有者又は追跡デバイスA(例えば、ネットワーク位置情報)に関連する情報に関する追跡クライアントデバイスAの代理人と共に直接的又は間接的に通信する。例えば、ホスト監視システムCは、電子メール、ファックス、ページング、電話などで、追跡デバイスの所有者、所有者の指定代理人、企業指定部門又は代理人、配置された監視サービスステーション、法執行機関などと通信する。あるいは、ホスト監視システムCは、それ自身が、配置された監視サービスステーション、法執行機関となっても良い。ホスト監視システムC及び/又は下流の目的位置(例えば、監視サービスステーション)は、追跡された資産の在庫リスト、又は、追跡された資産の紛失/盗難状況を維持する。図1では、ただ1つのホスト監視システムCが示されるが、たくさんのホスト監視システムCが、例えば、異なる地理的領域において、通信ネットワークを横断して分散される。
【0037】
エージェントの重要な機能の一つは、その関係するクライアントデバイスAに関連する識別、位置、及び/又は、他の情報を報告するために、ホスト監視システムCに接触することである。本発明の一実施例によれば、各クライアントデバイスAは、独自の識別に関係しており、その独自の識別は、ホスト監視システムCへクライアントデバイスAから転送される情報の一部であっても良い。独自識別は、電子シリアルナンバ(ESN)、メディアアクセスコントロール(MAC)ナンバ、インターネットホストネーム/IPアドレス、所有者/ユーザ特定識別、クライアントデバイスの識別を表し、識別し、認める他の数字、英字、又は英数字情報の形式であっても良く、さらに、エージェント及びその識別の実際又は架空の地理的位置の決定又は確認のためのベースを表す日付及び時間のような情報の形式であっても良い。
【0038】
資産を追跡し、及び/又は、紛失又は盗難された紛失デバイスAを回収するために、ステルスエージェントを用いる一般的な概念は、本発明の出願人であるアブソリュートソフトウェアコーポレイションの有する特許に記載される。エージェントは、ホスト監視システムCをコールするために、適切な時間を決定しなければならない。いったん、エージェントがインストールされ、周期的に(例えば、時間N)に実行し、又は、特定時間経過後に(例えば、システムから、又は、ユーザログオンから)、又は、デバイスシステムブート後に、ある所与の状況の発生後すぐに、又は、ハードウェア再設定のようなある内部又は外部イベントによるトリガーされ、通信プロセスを開始するためのユーザによる介入無しで、通信リンクBを介してその識別及び/又は位置を、ホスト監視システムCに報告するということをここで手短にのべることで十分である。エージェントは、さらに、2つ以上の利用可能な通信リンクBを介して、その識別と位置を報告する。エージェントの位置は、したがって追跡されたデバイスであり、例えば、インターネットを介したクライアントデバイスAとホスト監視システムCとの間の通信を可能にするように使用される全てのIPルートのリストを獲得するための探索経路ルーチンによって決定される。
【0039】
監視システムCへ転送される位置及び資産管理データの全ては、中央レポジトリで維持され、セキュアウェブベース又はネットワークベースコンソールを介して認証された管理者によって、7日間24時間アクセスされ得る。ある実施例では、エージェントが位置及び資産データを転送するとき、監視システムCは、タスクの次のセットのための命令、及び、次のスケジュールされたコールタイム及び日付をエージェントに対して送り、及び、プログラムする。監視システムCは、各コンピュータ(C2)上の現状及び精度ある監査の跡を提供して、全てのエージェントの送信を記録する。包括的コンピュータ資産追跡及び在庫解決は、IP又はダイヤルアップを介して遠隔から接続する遠隔及びモバイルシステムはもちろんのこと、企業ネットワークに局所的に接続されるシステムに関するこの情報も捕獲する。加えて、情報は、資産が提供される最新の図であることを確実にするために、規則的に捕獲される必要がある。
【0040】
さらに後述するように、追跡エージェントは、不正改変に対する耐性と共に永続的であり、エージェントは、否認証ユーザに対して透明であり続けるように設定される。ユーザに対して隠されているために、エージェントは、インタフェースすることが望まれないなら、いかなる起動中のアプリケーションにも干渉しない。本発明による新規な構成、機能、及び操作は、さらに十分に後述される。
【0041】
永続性エージェントプラットフォーム・アーキテクチャーの外観
IT管理者は、コンピュータ全体のライフサイクルの間中一貫して全てのコンピュータ資産を追跡する能力を要求する。これは、LANの外側で作動するリモート及びモバイルコンピュータを含む。資産追跡エージェントは、コンピュータのライフサイクルの始めに一度インストールされる必要があり、そのコンピュータがリタイアするまで規則的に通信される必要がある。そのライフサイクルの間に、コンピュータは多くのユーザにより使用され、ハードウェア及びソフトウェアは変化し、これら3つの領域で永続的であって、かつ、変化を報告できる追跡エージェントは、危機的状況にある。本発明による永続性エージェントは、たとえハードドライブが再フォーマット又はOSが再インストール又は不正干渉されても、例えば、IMAC及び故障/修理にもかかわらず、PCのライフサイクルの間中、PC資産の独自の識別、その状況を報告することができる。永続性エージェントは、それを保護するように設計され、非認証の削除攻撃を切り抜けるだろう。この永続性構成は、盗難の場合にPC資産に接続され続け、かつ、精度を確実にしながら資産追跡を保障するために、極めて重要である。
【0042】
永続性エージェントは、ホストコンピュータに在住する低レベルの検知できないソフトウェアクライアントである。エージェントは、永続性ソフトウェアであり、取り除くことが極めて難しい。エージェントは、たとえエージェントサービスが従来的手段で検出されても、エージェントソフトウェアのインストールを再構築するように機能する自己回復技術を組み込む。エージェントは、OSインストール、ハードドライブフォーマット、及びハードドライブ交換ですら切り抜けるだろう。生存性は、資産追跡及び盗難回収(及びエージェントが可能にし、サポート、及び/又は提供するサービス)における成功に対して極めて重要である。自己回復機能は、ファイルシステム内に在住せず、従来のソフトウェアより検出及び削除がより困難である。ソフトウェアの永続性及び自己回復部分は、その内密性(ステルス性)のため、取り除くことが困難である。ソフトウェアは、通常は、正しいパスワードと共に認証されたIT管理者によって、通常取り除かれる。自己回復特徴は、新しいイメージされたシステムはもちろんのこと、新しくフォーマット及びイメージされたOSにおいてエージェントインストールを復旧する機能であるだろう。
【0043】
本発明の別な形態によれば、エージェントは、最初にプログラムされたものに加えてその機能を拡張するためにプログラム可能である。エージェントはリモートサーバと通信し、そこでリモートサーバが、次のタスクセットのための命令と共にエージェントを提供することによってエージェントを送信しプログラムする。
【0044】
エージェントは、ハードウェア、ファームウェア、又はいかなる電子デバイスのソフトウェアで実装可能である。あるいは、エージェントは、モデムの中のDSPやコンピュータの中のCPUのような電子部品のように、デバイスの部品で実装可能である。さらに、エージェントの機能性は、パケットデータを送信し及び/又は受信することを通して、通信リンクを確立することが可能ないかなるハードウェアデバイスの回路においても実装可能である。例えば、エージェントは、電子デバイスの(ROM BIOS、ROM、フラッシュROM、EPROM、EEPROM等の様な)不揮発性メモリ、ソフトウェアプログラム、マイクロコードプログラム、デジタルシグナルプロセッサ(「DSP」)プログラム、又はOSの組み込み機能において実施可能である。
【0045】
本発明の実施例により、永続性追跡エージェント(ここでは、「永続性エージェント」としても参照される)は、BIOS(又は、同等の機能のシステム)で実施される。従来知られているように、BIOSは、システム電源起動又は停止において常に実行されるスタートアップコードである。これは、メモリ空間で固定位置から開始するプロセッシングユニット又はソフトウェア(命令)の中で実装されるマイクロコードで有り得る。これらの命令は、電源オンセルフテスト(POST)、デバイスに在住するOSのブート前に典型的にかつ独立した、ディスクドライバ、キーボード、モニタのようなハードウェアの低レベル制御を処理する。ある実施例において、永続性エージェントは、読み出し専用メモリ(ROM)のようなファームウェア、パーソナルコンピュータのようなクライアントデバイスAで実装される。BIOSがチップで実装される場合、それは、ROMでコード化された命令セットを含む。下記においてBIOSで参照される全ては、ROMベースのBIOSに制限されないことを理解されるだろう。
【0046】
今日販売されるマザーボード上のBIOSチップの良く知られたブランドは、フェニックステクノロジー、インテル(登録商標)、IBM(登録商標)、アメリカンメガトレンドを含む。あるシステムコンポーネントは、所有のBIOSチップを有し、そのチップの命令は、開始時にデバイスのメモリの中でも読み出される。ハードディスク制御に関するBIOSは、例えば、ドライブのトラック及びセクターのテーブルを記憶する。もし、アブソリュートソフトウェアコーポレーションの先の特許で開示されたBIOSベースのエージェントでないなら、本発明は、エージェントのためのBIOSベースのローダーの使用を含む改良を表す。BIOSベースのローダーは、エージェントコンポーネントをさらに永続的にし、かつ、それゆえに、資産追跡又は他のサービス機能を無効にすることはさらに難しい。BIOSベースのローダーは、マシン上のブート順番を反転する必要性を減らし、したがって、製造工程でのステップを取り除く。BIOSベースのローダーは、さらに、アンチウイルススキャナー、全ディスク暗号化、及びマスターブートレコード(MBR)でOSローダーを読み込み又は修正する他のユーティリティのような製品と共に製造的互換性という問題を減少する。本発明の一つの実施例においては、永続性エージェント10は、図2に表されるように、コアBIOSフラッシュイメージ13に取付けられるPCIオプションROM12−周辺機器部品インタフェースバスに基づくオプションROMのようなオプションROMに、最初に格納される。(示されていないが)取付けられる追加的オプションROMもあり、それは、永続性エージェントに関連の無い他の機能をサポートする。永続性エージェント10は、複数のモジュールを有する。3つの主なモジュールは、図3に表されるように、「コンピュトレース」ローダーモジュール(CLM)14、適合インストールモジュール(AIM)16、及び、通信ドライバエージェント(CDA)18である。
【0047】
永続性エージェント10の3つのモジュールを含む小さな(圧縮した約22Kbである)PCIオプションROM12は、標準コアフラッシュイメージに結合され、BIOS POSTの間にBIOS及び他のオプションROMにそって保護されるメモリの中にロードされる。小さなPCIオプションROMは、POSTにより認識され、BIOS及びBIOS POST中の他のオプションROMとともに読み書きシャドウメモリにロードされる。この構成は、再条件付けされる必要があるコアBIOSでの開発工数及び多くのインタフェースポイントを最小化する一方、安全性を高める構成を可能にするモジュラーアーキテクチャを提供する。
【0048】
CLMは、PCI(PCデバイスの場合)、イメージ管理、実行環境機能を組み込む。AIMを検索し、解凍し、PCIオプションROMを最終サイズにサイズ変更し、システムの適切な環境でAIMを実行するBIOSにインタフェースする責任がある。AIMは、ハードドライブにアクセスし、アクティブなOSを検出し、ミニCDAを発見した設定に適合させる。ミニCDAは、通信ドライバーである。それは、HTTPプロトコル、監視サーバに通信するアプリケーションレイヤ、OSにインタフェースするサービスレイヤ、及び、AIMとインタフェースする適合レイヤのためのサポートを含む。
【0049】
ミニCDAは、OSがロードされているとき、サービスとして実行するコンピュータのファイルシステムでフルファンクション(全機能)CDAが利用可能かどうかをチェックする責任を有する。フルファンクションCDAが利用不可の場合、ミニCDAは、監視サーバからフルファンクションCDAのダウンロードを開始する。一旦、フルファンクションCDAが存在するなら、監視サーバ上の新バージョンを頻繁にチェックし、もし可能なら、新バージョンでCDA自身を置き換えるだろう。
様々なモジュールのこれら及び他の実施例は、下記に十分に論じられる。
【0050】
BIOS POSTシーケンス及びオプションROMロードプロセス
オプションROMロードプロセスが、図4のフロー図で表される。永続性エージェント10が展開されるクライアントデバイスAのブートにおいて、BIOS POSTプロセスは、セルフテスト及びチップセット構成21を実行し、マザーボード又は拡張カードに関する機能をサポートするオプションROMのためにバスが22でスキャンされるポイントに到達する。このポイントでは、永続性エージェント10を含むPCIオプションROM12は、22で小メモリ(例えば、RAM)にロードされ、及びその開始ベクター(後述するように、CLM14)は、23でコールされる。開始ルーチンは、サポートされるべき機能の状態、及び、その最終イメージサイズを決定する。その後に、25及び26において、BIOS POSTプロセスは、オプションROMスキャンを完了し、機能が存在する各ROMオプションの最終位置を計算する。各PCIオプションROMは、それから、移転され、PCIオプションROM12を有効にした永続性エージェントを含む、その完成ベクターがコールされる(あるフェニックスBIOSでは、例えば、PCIオプションROMは移転されないが、開始ベクターから戻る前にヘッダーで宣言される最終サイズに適合するように、単にサイズを縮める)。全てのオプションROMは、移動されるが、BIOSメモリは、27で書き込みプロテクトされる。次に、28でOSがうまく開始されるまでブートデバイスがコールされる。このポイントで、デバイスOS及びエージェントの両方は、同時に実行しているだろう。
【0051】
PCIオプションROM
A.ローダーモジュールCLM
CLM14は、AIM16のための仮の実行環境を設定し、AIM16をロードし、解凍し、適切な環境でそれをコールするように設定する責任がある。CLM14の最後の「アクティビティ」は、最小サイズ(2K)に縮め、POSTへ実行を返すことである。CLMは、AIM16が見つからず、又は、有効ではないなら、「失敗」するだけである。
【0052】
CLM14は、POSTへのインタフェースであり、又は、PCIオプションROM12の「フロントエンド」である。PCIオプションROMヘッダは、CLM14の中にあり、かつ、そのエントリポイントは、このヘッダの中の標準にしたがって公表される。CLM14は、BIOS POSTとの統合のための2つの機能ポイントを提供する。
1.ROMヘッダ及びPCIオプションROMヘッダペア
2.割り込みハンドラ
【0053】
これら及びPCIオプションROMの様々なコンポネントの他の機能は、IBM(登録商標) BIOS、例えばIBM(登録商標)モデルT43ノートブックコンピュータに関して、後述されるだろう。
【0054】
1.ROMエントリポイント
最初のインタフェースは、BIOSによってPCIオプションROMの数え上げの間に与えられる。このインタフェースは、標準レガシーROMヘッダ、及び、PCIオプションROMヘッダペアである。例えば、フェニックスBIOSに関して、1917hのPCIベンダーID、及びデバイスID1234hは、セットになる。上述したように、BIOS POSTプロセスが、マザーボード上の機能、又は、拡張カードをサポートするPCIオプションROMをスキャンするとき、PCIオプションROM12全体は、ロードされ、CLM14の初期化ベクタがコールされる。オプションROMは、圧縮された「.COM」アプリケーションをロードし、そして、実行する。ROMエントリポイントは、START_SEGレベルで定義される。START_SEGセグメントは、ROMヘッダ、及び、PCIオプションROMヘッダへのそのリンクを含む。オプションROMは、オプションROMの中でオフセット3へのFAR CALLにより初期化される。ジャンプ命令チェーンは、ここでは、OptRomProcへの制御を通過する。
【0055】
図5を参照すると、PCIオプションROM CLM14により始められるルーチン30は、以下のように要約される。
a.31で、BIOS POSTメモリマネージャを検索。
b.32で、制御STUB_BLOCKを割り当て(例えば、処理及びアプリケーション実行のため2K)。
c.33で、圧縮アプリケーション及びアプリケーションメモリのバックアップのための拡張メモリを割り当て(例えば、64K)。
d.34で、アプリケーションの解凍実行のための通常のメモリでアプリケーションメモリの割り当て(例えば、64K)
e.35で、ディスクサービスが利用可能なら(40:75hでの総数で決定される。ハードディスクの数)、36で、アプリケーションを即座に実行し、39でフリーメモリに進み、40でオプションROMをゼロに圧縮する。
f.37で、ビデオベクタ(int 10h)が、XBDA(40:0Eh)以下なら、38で、STUB_BLOCKをInt 15hにフックし、40で、オプションROMをゼロに圧縮する。
g.フックするものが無く、何もすることが無いなら、39で、フリーメモリを「失敗」にし、40で、オプションROMをゼロに圧縮する。
【0056】
2.割り込みハンドラ
二番目のインタフェースは、割り込みハンドラである。これは、初期化ロード、及び、BIOS POSTメモリマネージャから割り当てられたメモリからPCIオプションROMの初期化手続の実行の後に、実行する。このインタフェースは、最初に、int 15hを実行し、それから、代替トリガを実行する。Int 19hは、好ましい代替トリガ、及び、その初期設定である。割り込みハンドラは、BIOSディスクサービス(int 13h)が、まだ、PCIオプションROMの開始の間に利用可能でないなら、割り込みハンドラは、ただ起動される。Int 19hは、好ましいトリガーメソッドである。なぜなら、あるケースでは、最後のInt 15h/func 9100hの後でBIOSにより発行されるInt 13hが無いからである。物理ドライブ80hによる別な問題は、Int 19hの少し前まで、Int 19hで物理ドライブ80hに一致しないということである。ComFileStubは、主な割り込みフックエントリポイントを含む。
【0057】
図6a及び6bを参照すると、割り込みハンドラにより始められるプロセス41は、以下のように要約できる。
【0058】
a.42で、int 15がトリガーする毎に、ファンクション9100h(ハードディスクIRQ完成は、INT 13hが使用されていることを示す)。
b.43で、ハードディスクデバイスが利用可能かチェック(カウント 40:75h)。
c.XBDA以上のビデオベクタ(40:0Ehは、POSTのセットアップフェースが完了したことを示す)。
d.44で、まだ準備できていないなら、チェーンする。
e.45で、Int 15hフックを元に戻し、トリガー Int xxhをフックする(_TRIGGER_INTNUM setting=Int 13h / Int 19h)。
f.46で、次のトリガー Int xxh(Int 13h / Int 19h)で、トリガー Int xxh(Int 13h / Int 19h)を元に戻す。
g.48で、スタックを切り替える。
h.49で、拡張メモリBACKUP_BLOCKに、解凍アプリケーションメモリのコピーをバックアップする。
i.50で、解凍アプリケーションメモリブロックに、圧縮アプリケーションをコピーする。
j.51で、アプリケーションをコールし、拡張メモリBACKUP_BLOCKから、解凍アプリケーションメモリのコンテンツを元に戻す。
k.52で、スタックを戻すように切り替える。
l.53で、阻止されたトリガーInt xxhコールを完成するようにチェーンする。
【0059】
B.エージェントインストールモジュール(AIM)
AIM16は、CLM14により設定される拡張コンテキストの下でロードされるように設計される。図7を参照すると、AIM16によって開始されたルーチン54は、次のステップを含む。実行されると、AIM16は、55で、アクティブパーティションを見つけるパーティションテーブルをスキャンする。アクティブパーティションでは、56で、OSシステムディレクトリ、又は、OSシステムディレクトリを示す設定ファイルを探す。そして、OSシステムディレクトリは、57で、通信ドライバエージェントCDAのインストーラ・モードインスタンスを生成し、インストールする。インストール機構は、各OSで特定され、独特であり、AIM16は、標準OSインストール機構を使用する。
【0060】
C.通信ドライバエージェント(CDA)
CDA18は、2つの形式、ミニCDA、フルファンクションCDAで存在する。1つの実施例において、ミニCDAは、PCIオプションROM12に在住する。ミニCDAの機能は、フルファンクション及び/又は現状のバージョンCDAがインストールされ、かつ、デバイス上で機能しているかどうかを決定することであり、もし無いなら、ホスト監視サーバC(図1)からインターネットを介してフルファンクションCDAをロードすることである。フルファンクションCDAは、デバイスとホスト監視サーバCとの間の全ての通信に責任を有する。
【0061】
図8を参照すると、ミニCDAは、最初に(AIM16を介して)インストーラモード58を実行し、そこでは、ミニCDAの全機能は、OSサービスとして登録することである。59で、エージェントのインストーラモードインスタンスは、その別のインスタンスを生成し、60で、例えば、2000/XP下のサービスマネージャでコピーを登録する。実行ファイルは、それ自身のインストーラコピーを消去し、存在する。フルファンクションCDAは、そのポイントからCDAのノーマル操作を引き継ぐので、フルファンクションCDAは、たった一度、インストーラモードで実行する。
【0062】
図9を参照すると、OSの次のスタートアップで、ミニCDAのサービスモードインスタンスは、例えば、2000/XPの下のサービスとして実行される。そのサービスは、62で、サービスマネージャ環境をセットアップし、適切な時間で(63で待機した後で)64で、それ自身のインスタンスを開始する。アプリケーションモードは、ミニCDAの通常モードの操作である。エージェントは、現在サービスモードである。
【0063】
もし、現状のフルファンクションCDAがデバイスに見つからない場合、ミニCDAアプリケーションは、図10に示されるように初期設定で例えばHTTPプロトコルを用いてホスト監視サーバCとの通信を開始する。他のプロトコルは、付加的モジュールによってサポートされ、ホスト監視サーバCからエージェントへアップロードされる。ホスト監視サーバCは、エージェント、格納監視ヒストリ、設定、ソフトウェア更新のような機能を実行する。ホスト監視サーバCは、フルバージョンCDAをインストールし、起動し、ミニCDAを無効にし(例えば、デバイスのライフの終了時、新バージョンに更新するために自己修復機能を無効化するために)、エージェントを更新し、又は、プラットフォームに要求されるエージェントに設定するために、ミニCDAとのセッションを開始する。本発明の実施例の一つによれば、クライアント装置AとサーバCとの間の通信は、図10に表される。例えば、ミニCDAが、BIOSの識別又はタイプ、又は、デバイスプラットフォームをサーバCに提供すると、BIOSのコピー又はプラットフォーム特有の振るファンクションCDA又はその更新がデバイスにダウンロードされる。
【0064】
図1を参照して述べたように、デバイス追跡及び/又は紛失又は盗難デバイスAを回収するために一般にステルスエージェントを用いるという一般概念は、本発明の出願人であるアブソリュートソフトウェアコーポレーションの有する特許で開示されている。デバイス追跡のアプリケーションレベルの機能性、及び、フルファンクションCDAの通信機能は、本発明の出願人に特許権(そしてその特許は、ここで同一のものとされる)が与えられ、かつ、先に述べられ、及び/又は本発明の権利者によって発展されたアブソリュートトラック資産追跡プロダクトのステルスエージェントの機能に類似している。
【0065】
一般に、単独で実行し又は他の通信リンク(例えば、PSTN)に基づくアプリケーションであるインターネットアプリケーションの実施例においては、エージェントは、所定の、ランダムな、イベントベース、又は間隔を変えてホストにコールを開始する。本発明の一実施例によれば、「アクティブ」モードにおいて、エージェントは、所定の時間ごとにホストをコールする。エージェントは独自の現状時刻、及び、インターネットホストネームを符号化するための独自のエージェント識別を使用する。ある実施例によれば、エージェントは、それから、符号化されたインターネットホストネームを用いてDNSリクエストを形成する。エージェントは、インターネットを介してホストへこのDNSリクエストを送信する。所定の時間間隔後で、DNSリクエストをインターネット時間で送信するというエージェントの試みが経過するなら、エージェントは、所定の時間間隔でスリープ状態になり、それから、コールを再開する。そのコールが、別なエラー(例えば、インターネットへの通信を可能にするWinsock機能が無い、及び/又は、TCP/IP通信のコンピュータ設定の失敗)のために失敗するなら、エージェントは数時間サイクルで繰り返す。このように、エージェントは、本質的に、インターネット接続の存在をチェックする。
【0066】
そのDNSリクエストを送信した後で、エージェントは応答を待つ。ホストから有効な応答を受けるとすぐに、IPアドレスがその応答から抽出され、参照したIPアドレスに対して比較される。例えば、参照IPアドレスが、“204.174.10.1”と設定されるとする。もし、抽出されたIPアドレスが“204.174.10.1”に等しいなら、エージェントのモードは、インターネット側で「アクティブ」から「アラート」へ変更される。例えば、ホスト又はホストでのオペレータが、エージェント識別が、ホストで格納され、かつ、報告された紛失又は盗難コンピュータのリストのエンティティの1つとマッチするということを認識するなら、ホストがこのIPアドレスを送信する。もし、ホスト応答から抽出されたIPアドレスが、「204.174.10.1」と等しくないなら、エージェントはアクティブモードであり続け、さらに4時間後にはホストにコールしない。しかし、エージェントがインターネットアプリケーションで「アラート」モードにならないなら、エージェントは、ホストへクライアントコンピュータを接続するために使用されるインターネット通信リンクにホストを提供する探索経路ルーチンを開始する。これらのインターネット通信リンクは、クライアントコンピュータを追跡するホストシステムを支援するだろう。DNSクエリのソースのIPアドレスは、DNSクエリ内でホストに送られる。しかし、クエリのソースが「プロキシ」サーバを介して転送されるなら、そのとき、クライアントコンピュータのIPアドレス(そしてそれは、内部NICによって割り当てられてないので、独自でないかもしれない)は、クライアントコンピュータの位置を追跡するのに効率的でないかもしれない。そのようなシナリオにおいて、クライアントとホストとの間の通信を可能にするためにアクセスされる他のIPルートのアドレスを決定する必要がある。アクセスされるべきこれらのアドレス及び時間は、そのクライアントのインターネットアクセスストーリーを記録するプロキシサーバの内部ログと比較される。このようにして、クライアントは、独自に識別され、検索される。あるいは、インターネットアプリケーションを、「アラート」モードへの移行は、他の利用可能な通信アプリケーションを「アラート」モードへの移動をトリガーする状況である。
【0067】
CDA−サーバ通信
A.拡張プロトコル
BIOSの中に永続性エージョンをうまく展開することは、例えば、通信プロトコルの中に予定されている拡張性を頻繁に使用することである。この拡張性無しで、エージェントは、機能性を加え又は変更するためにより大きく、かつ、柔軟な更新を要求するかもしれない。そのような更新は、BIOSがそのプラットフォームのフラッシュEEPROMの中にプログラムされており、かつ、特別なツールが(頻繁にユーザーインタラクションを要求して)BIOSを更新するのに使用されなければならないなら、実践的でもないし、経済的でもない。さらに、その完全性が、コンピュータの操作で極めて重要なので、徹底的なテストがBIOSに関するOEMにおって実行される。
【0068】
拡張プロトコルのキー要素は、
1)エージェントのメモリ空間を読み書きする方法
2)メモリ再配置する方法
3)メモリをフリーにする方法
4)外部モジュールをロードする方法
5)プロシージャアドレスを決定する方法
6)プロシージャをコールする方法
【0069】
エージェントのプロトコルは、これらの機構を提供するように設計されている。
リードパケットのフォーマットは、|ADDRESS|NUMBER_OF_BYTES
ライトパケットのフォーマットは、|ADDRESS|NUMBER_OF_BYTES|DATA...
通信プロトコルは、DATAがパケット内に含まれていないということを判断することでリードパケットを区別する。DATAがあれば、そのパケットは、ライトパケットである。このプロトコルに基づくアドレスは、拡張設計に基づいている。
【0070】
本発明の一実施例により、拡張プロトコルに基づいて、通信リンクBを介してクライアントデバイスAとサーバCとの間の通信セッションにおけるステップの一般的な順序は、図14に概略的に表されている。通信セッションにより、処理される特定のトランザクションは、さらに以下に開示される。
【0071】
典型的なセッションは、次のような通信シーケンスで始まる。
1)クライアントが接続する。
2)サーバが、アドレス0xffffffff|0xffffffff|4から特別な読み込みで応答する。
3)クライアントが、そのセッション処理のアドレスで応答する。
【0072】
処理構造は、クライアントのバージョン、サポートOSのバージョン、及びコマンドパケットのような重要な情報を含む。クライアントは、コマンドパケットが書き込まれたとき、「書き込み」を、特別なパケット「特別(Special)」として翻訳し、CommandPacketProcessor()ファンクションをコールする。CommandPacketProcessor()ファンクションは、引数として、ファンクションコード、パラメータアドレス、パラメータ数、結果アドレスをとる。実行されなければならない関数の最低数のセットは、以下のものである。
CMD_FUNC_CALL(C関数をコール)
CMD_FUNC_STDCALL(STDCALLファンクションをコール)
CMD_GETMH(モジュールハンドルをゲット)
CMD_GETPA(プロシージャアドレスをゲット)
CMD_ALLOC(メモリを割り当て)
CMD_FREE(メモリをフリーにする)
【0073】
実行される他の関数コードは、効率を良くするためにコマンドパケットをいっしょにチェーンことである。
CMD_ENDC(チェーン終了)
CMD_IF(通常のブランチ)
CMD_GOTO(通常ではないブランチ)
【0074】
このコマンドの少ないライブラリは、いかなる管理タスクをも成し遂げるために、パケットの中でいっしょにつながれる。重要な管理タスクは以下のものである。
1)CreateFile(ファイル作成)。
2)ファンクションのライブラリ、又は、拡張用としてロード。
3)OSで、又は、作成したファイルからプロシージャをコール。
4)エージェントのコンテキストでメモリを割り当て、及び、空にする。
【0075】
B.トランザクション
次のセクションは、エージェントとリモート(例えば、監視)サーバ(CTSRVとしても知られている)との間の通信を記述する。記述された各アイテムは、1つの(クライアントとサーバとの間のメッセージ組である)トランザクションを表す。幾つかのトランザクションは、全てのエージェントコールで生じ、他のトランザクションは、実施されるサービスに依存し、メンテナンス又は手動修正により設定されるフラグの結果として1つのコールでなされる。下記は、サーバとエージェントとの間の典型的な通信セッションを示す表である。
【0076】
【表1】
【0077】
基本的資産追跡を有するコール(クライアントが監視サービスプロバイダを有する追跡サービスに同意した場合―全てのコール)
(資産追跡/監視サービスへの加入者のための)AT1データ が、検索される。これは、AT2DLLにより集められたデータのサブセットである。AT1、又は、AT2DLLのどちらかが、クライアント上で実行され、決して両方が実行されることは無い。
【0078】
【表2】
【0079】
高度な資産追跡を有するコール(クライアントがアブソリュートトラック又はコンピュトレース製品を購入した場合―全てのコール)
(例えば、アブソリュートトラック及びコンピュトレースの顧客のために)ATIIデータは、検索される。これは、AT1DLLによって集められたデータの特別なセットである。AT1、又は、AT2DLLのどちらかが、クライアント上で実行され、決して両方が実行されることは無い。
【0080】
【表3】
【0081】
【表4】
【0082】
基本コール及びリモートエージェントバージョンの更新(技術サポートアクションに基づく一度限りのタスク)
クライアントエージェントのバージョンをチェックし、サーバ上のバージョンと比較する。クライアントバージョンが低い場合、リモート更新を実行する。
【0083】
【表5】
【0084】
基本コール及び製造元、モデル及びシリアルナンバの検索(技術サポートアクションに基づく一度限りのタスク)
ファンクションが、クライアントから製造元、モデル及びシリアルナンバを検索し、ブート順番を変更する。
【0085】
【表6】
【0086】
C.アプリケーションモジュールの起動プロセス
起動プロセスは、アプリケーションエージェント識別を、顧客アカウントに結びつけ、永続性エージェントモードをインストールする。このプロセスは以下のように記載される。
アプリケーションエージェントが接続する。
サーバが、コンピュータを識別する在庫DLLを送信するプロトコルにおける拡張特性を使用する。このDLLは、BIOS、筐体、ハードドライブシリアル番号のような属性を集める。
在庫記録は、サーバ上に格納され、アプリケーションエージェントから読み出される顧客アカウントに接続される。
独自の識別番号(電子シリアル番号)は、この在庫記録に関係するデバイスに割り当てられる。
【0087】
典型的な在庫番号は、下記のように表される。
【0088】
【表7】
【0089】
D.永続性モジュールの再起動プロセス
一度、永続性エージェントモジュールが起動されると、次のステップが、アプリケーションエージェントを再インストール始め、及び、設定を元に戻す。
永続性モジュールエージェントは、監視サーバをコールする(CTSRV)。
監視サーバは、そのコンピュータを識別する在庫DLLを送信するプロトコルの中で拡張特性を使用する。このDLLは、BIOS、筐体、ハードドライブシリアル番号のような属性を集め、そして、先に格納されたものと比較する。
最初の起動で格納された在庫記録は、見つかり、そして、このデバイスの在庫に関係した以前のESNは、再度割り当てられる。アプリケーションエージェントは、ダウンロードされ、インストールされ、そのアプリケーションエージェントは、正常にコールする。
上述のプロセスは、BIOS及びソフトウェア永続性(前述を参照)の両方に適用される。即ち、永続性モジュールがどこにあるかに関係なく、検索される。
【0090】
データ削除
データ削除は、エージェントによって有効化され、サポートされ、及び/又は提供されるもう1つの例である。上述のように、CDAの強化された生存性は、資産の物理的な位置を追跡することを向上させる。例え、資産の位置が定められるときでさえ、追跡されたデバイスの物理的な回収は、アプリケーションのローカルの法律、警察の執行力、所有者の証明の負担のために、必ずしも実行可能ではないということを認識すべきである。そのような状況で、CDAの拡張プロトコルに基づいてプログラム可能な能力は、デバイス上の秘密で機密のユーザデータを安全に守る手段に、よく変更する。例えば、クライアントデバイスのハードドライブに格納されるデータファイルに規定されたユーザ、ユーザプロファイル、又は、情報が規定された他のユーザは、監視サーバからの制御により削除可能である。データ削除は、選択されたデータアイテムに関して実行され、又は、OSを含む完全な記憶媒体装置が消去される。
【0091】
フルファクションCDAは、監視サーバに接触するとき、デバイスの識別が検証される。そのデバイスがデータ削除アクションのためにマークされるなら、上述した拡張通信プロトコルが、CDAのデータ削除サブファンクションをトリガーするために使用される。データ削除サブファンクションは、完璧なデータ構造を削除するワイルドカード変数と共に、削除されるべきデータを規定するパラメータでコールされる。CDAサブファンクションは、復元させないように米国国防総省が推薦するデータ削除のためのアルゴリズムを使用しても良い(例えば、米国国防総省標準5220.22−M掃除及び浄化マトリックス)。CDAサブファンクションは、データを削除する組み込みのOSサポートで利用可能である。これらのデータ削除アルゴリズム及び機構は、当業者には良く知られており、かつ、実際の削除機構は、ここで記述されたシステム能力を変更しない。
【0092】
データ削除アプリケーションは、ハードドライブ上でアプリケーション及びデータを削除し、例えば、それから、監視サーバにコールバックし、そこで、監視サーバは、データ削除アプリケーションの成功を詳細に述べるレポートをアップロードするだろう。データ削除アプリケーションが、OSの削除を除外するように指示したなら、データ削除アプリケーションは、機能するエージェント及びOSに要求されるものを除いて、全てのデータ及びアプリケーションファイルを削除するだろう。削除プロセスの最後で、エージェントは、監視サーバにステータスレポートを戻すようにする。コンピュータは、削除プロセスの後で、通常の状態に戻っても良い。
【0093】
データ削除がOSを削除するように指示した場合、最終的にクライアントデバイスAを機能しないようにするOSファイルを削除しようとする。最初のパスでは、削除プロセスは、機能するエージェント及びOSに必要とされるものを除いて、全てのデータ及びアプリケーションファイルを削除する。データ削除プロセスの終わりで、エージェントは、監視サーバにステータスレポートを返そうとする。データ削除アプリケーションは、それから、PC上のファイルの残り物を削除し続ける。これは、PCを使用不可にするものである。一旦、全データ削除プロセスが完了したら、エージェントは、監視サーバをコールすることは出来ないだろう。エージェントが、OSを再インストールしたなら、エージェントはそれを独自の機能で回復する。
【0094】
いずれの構成でも、データ削除サーバは、次の構成を有する。
・ファイルに0及び1のパターンを3回書き込む
・ファイルにランダムデータを書き込む
・ファイル属性を「ディレクトリ」に変更する
・ファイルデータ/時間を固定値に変更する
・ファイルサイズを「0」に設定する
・ファイル名称を不規則に生成されたファイル名称に変更する
・ディレクトリから新しいファイル名称を取り除く
【0095】
可能なだけ内密に作動するという目的を維持するとき、データ削除アプリケーションは、隠蔽される。データ削除プロセス中に起動するサービスは、バックグラウンドで起動するOSヘルプタスクとして削除プロセスを隠すために、「HLPMGR.EXE」とタイトル付けされる。削除が終了する前に、ユーザがプロセスを終了するなら、エージェントが監視サーバに次のコールをした時点で、アプリケーションは、捨てられた削除プロセスを再開することが可能である。データ削除で有効になる全てのクライアントデバイスのために、エージェントコールバック間隔は、モデム及びIPコールの両方のために所与の値にセットされる。
【0096】
完成するデータ削除プロセスに要求される時間は、プロセッサの速度、ハードドライブのサイズ、削除すべきデータの量、クライアントデバイスですでに生じているアクティビティの数を含む変数の数に依存する。データ削除プロセスは、完成するために数分から1.5時間以上の間に生じることが期待される。
【0097】
上手く削除された事に関しても出された報告は、次の情報を含む。
・データ削除アプリケーションがダウンロードされ、かつ、実行された確認
・削除されたリストファイル
・ハードドライブ空間の変更(データはPCから収集されるので、この情報が、資産追跡サービスが有効であるときのみこの情報は利用可能である)。この情報は、データ削除プロセスの成功に関するユーザに提供される。
【0098】
拡張プロトコルの追加アプリケーション
上述及び後述するように、フルファンクションCDA及びミニCDA(例えば、BIOS及びソフトウェア永続性実施例)は、監視サーバ上で利用可能になるデータバージョンまで最新で現状を維持するために拡張プロトコルを使用する。それは、この能力を、他の資産追跡拡張を現状のバージョンに更新するために使用する。拡張プロトコルに含まれる一般的なサブファンクションは、上述した資産追跡データ削除に加えて、複数の機能を達成するために、包括的であり、かつ、柔軟性がある。拡張プロトコルの別なアプリケーションの例は、監視サーバからアプリケーションをダウンロードし、開始することである。実行ファイルは、メモリにダウンロード可能であり、それから、実行可能である。あるいは、インストーラが監視サーバからダウンロードされ、アプリケーションをインストールし、又は、既存のアプリケーションを更新するために起動される。
【0099】
モジュールの代替実施例
この発明は、限定されないが、次の要素に基づく特定の環境に適合するために永続性エージェントの様々な実施例で実施される。
(a)異なるデバイス(例えば、PC)の製造会社から異なるBIOS実装
(b)BIOSを有する異なるインタフェース要求
(c)異なるデバイス製造会社から、又は、異なるデバイスモデル上で利用可能となる様々なフラッシュメモリ空間
(d)BIOSPCIオプションROM列挙フック無しで動作可能
【0100】
これらの要素に適合するために、CLMは、PCIオプションROMとしてフォーマットされ、AIM及びCDAは、分割して、又はCLMと連結して格納される。CLMは、POSTサイクルの終わりに小さな断片に縮められる。デバイスがPCIオプションROMに列挙されないBIOSを有するなら、CLMは、パーティションギャップに存在し、代わりのマスターブートレコード(MBR)を使用する。永続性エージェントモジュールの別な実施例が、より詳細に後述される。
【0101】
A.フラッシュ常駐
本発明のフラッシュ常駐実施例において、CLM、AIM、及びミニCDAは、BIOSフラッシュイメージの中に全てロードされる。このアプローチは、PCIオプションROMがBIOSフラッシュイメージからロードされるBIOSで使用されるこの平均的な既存プロセスを利用する。付加的モジュール(AIM及びミニCDA)は、図3のケースにあるように、PCIオプションROMの中のCLMに結びつくか、フラッシュの中で分割して格納される。
【0102】
AIM及びミニCDAがCLMに結び付けられるなら、18〜20KBのPCIオプションROMは、上限値のシャドウメモリの中にPOSTでロードされ、AIMは、CLMによって解凍される。次にAIMは、システムのためにミニCDAを適合し、及び、設定し、及び、CLMに制御を返す。CLMは、PCIオプションROMのサイズを最小値に縮め、2KBROMブロックとしてメモリ領域を上限値にする。AIM(〜6KB)及びCDA(〜10KB)は、単にフラッシュイメージに格納され、CLMと結び付けられず、CLMは、AIM及びミニCDAを検索し、かつ、解凍するための追加イメージアクセス機能を組み込む。CLM、AIM及びミニCDAの操作は、上述の組み合わされたメソッドに類似する。CLMのサイズは、わずかに大きく、フラッシュイメージがターゲットとするプラットフォームに特に特化される。このアプローチは、フラッシュ常住のPCIオプションROMの認識を許可するベンダーIDの事前設定を仮定する。フラッシュイメージの管理は、図11に表される。
【0103】
B.ハードドライブパーティションギャップ
BIOS特定空間制限に依存して、完全な永続性エージェントの全ての方法のためにBIOSフラッシュメモリの中に十分な空間が無いかもしれない。この場合、デバイスベンダーサポートに依存して、AIM、又は、AIM及びミニCDAは、ハードドライブパーティションギャップのような大容量デバイスの中でユーザアクセス不能エリアに在住する。これは、「ソフトウェア永続性」の形式の例である。この実施例では、CLMは、まだ、フラッシュの中に在住し、先の実施例のように、PCIオプションROM列挙プロセスの中に呼び出され、しかし、CLMは、AIMをロードし、そしてつぎに、別な場所からCDAを実行する。
【0104】
図13は、その状況で含まれたパーティションギャップイメージ管理を表す。そこでは、永続性エージェントの追加モジュールは、パーティションギャップ内に存在する。このギャップは、MBR及び第1のパーティションの間に存在する。ギャップは、62セクターあり、大半は新しいハードドライブであるが、セクターの幾つかは、他のソフトウェアとの互換性を維持するインストール・ユーティリティにより予約されており、その使用可能サイズは、27KBである。このサイズは、サーバとの通信に必要なエージェント(AIM、CDA)の基本モジュール、及び、OSの中の残りのモジュールのブートストラップを含む。
【0105】
ホスト保護領域(HPA)
図12を参照すると、代替的に、先の実施例のようなハードドライブパーティションでの永続性エージェント(即ち、AIM及び/又はミニCDA)の付加的モジュールを格納する代わりに、全てのモジュールのためのBIOSフラッシュメモリの中に十分なスペースがない状況において、永続性エージェントの付加的モジュールは、HPA、又は、同等の機能を有するような大容量記憶装置の別なユーザアクセス不能領域に在住する。これは、ソフトウェア永続性の別な例である。付加的サポートは、鍵がかけられた、又は、鍵がかけられてないHPAに要求される。このHPAアクセス機構は、PCOEM特有になるだろう。HPA内のイメージは、ランタイムで管理される必要がある。ドライバ及びアプリケーションは、BIOSインタフェースを承認する既存の方法をサポートし、かつ、HPA空間の部分を管理する必要なランタイムアクセスを獲得するだろう。この実施例では、CLMは、フラッシュ内に在住し、先の実施例のように、PCIオプションROM列挙プロセス間にコールされるが、CLMはAIMをロードし、それは、次に、別な場所からCDAを起動する。
【0106】
D.非フラッシュCLM
多くのセキュアな実施例が、BIOSフラッシュメモリ内に在住するCLMを含む一方、これがサポートされない環境もある。これは、PCIオプションROMスキャンの間に、フラッシュ内のCLMヘッダを列挙するようにBIOSを設定していない場合である。これらのシステムでは、CLMのための代替的な位置が、既存の製品に関連するより優れた解決を提供する。代わりのマスターブートレコードの使用が、この解決のために利用される。この実施例では、CLMは、代わりのマスターブートレコードからロードする。CLMは、それから、ロードし、AIM、及び、ミニCDRに制御を渡し、そして、AIM及びミニCDRは、先の実施例で述べたように、パーティションギャップに配置される。エージェントサブローダのための代わりのMBRアプローチは、出願人によって特許されており、参照においてここに同一のものとされる。本発明において、CLMは、先行特許で見つからないAIM及びCDAに関して追加的及び異なるファンクションであるが、ここで、CLMは、類似のサブロードアプローチの長所がある。
【0107】
最適化
CLMPCIオプションROMは、システムBIOSの中に統合するのは難しい。例えば、IBM(登録商標)モデルT43ノートブックコンピュータは、オプションROM構造を有するIBM(登録商標)BIOSと共にインストールされる。その形式及び機能は、ビデオオプションROM、又は、BIOS内に既に存在しているマザーボードコントロールオプションROMと同等である。単純なケースでは、BIOSは、CLMのベンダーIDを認識するように、単に設定されていなければならない。CLMの形式及び機能は、ホストBIOSによりしっかりと統合され、幾つかのサイズ最適化を起こすことができる。フラッシュイメージ内にCLM、AIM及びCDAモジュールを格納するために要求される〜20KB内に小さな空間をセーブする機会がある。下記は、3つのメインモジュール及び各主要な機能ギャップの凡そのサイズ内の様々な機能を表す表である。最適化列は、各モジュール内の機能グループの最適化機会の評価をリストにしてある。
【0108】
【表8】
【0109】
モジュール内の様々な機能について、CLM機能(PCI、イメージ管理、実行環境)だけが、ホストBIOSから特有のサポートで最適化される。イメージ管理機能のサイズは、BIOSの圧縮アルゴリズムを用いて、及び、AIM及びCDAモジュールを格納する「結合」メソッドを用いて、約3KBに減らせる。実行環境セット及び制御機能のサイズは、全てのディスク資源が利用可能であり、かる、POSTメモリマネージャサポートが必要とされないために、POST後半ロードされるPCIオプションROMを確実にすることによって、0.8KBまで減らすことが可能である。〜20KBサイズのより低い範囲は、およそ〜18.9KBである。上限サイドでは、プラットフォーム特有のサポートは、CLM内で要求され、2KBを単位として増加する。
【0110】
BIOSインタフェースが、SMBIOSを介してCLMを検出し、かつ、設定するためにアプリケーション・プロトコル・インタフェース(API)をあらわにする場合、2KBの可視的なROM「切れ残りの要求」は、緩やかとなる。
【0111】
エージェントは、それを取り除こうとすることが通常期待されているアクションにも関わらず、永続性を有する機能がある。エージェントのプログラマブル機能は、サーバドリブンコマンドに基づいてその機能を拡張することを可能にする。本発明は、そのデバイスの「ユーザ」のアクションにもかかわらず、展開したソフトウェアエージェントのための能力を「アクティブ」に改良する。エージェントに関するユーザのアクションは、意図的又は偶然かもしれない。本発明は、エージェントを無効化する合法的な要求を許可する(例えば、コンピュータ資源のライフの終わりに)一方で、ソフトウェアエージェントの偶然の削除から認証ユーザを守る。本発明は、非認証ユーザが、エージェントソフトウェアを削除することを防ぐ。本発明の永続性属性は、セキュリティ及び資産管理アプリケーションの両方に価値がある。セキュア、内密なデバイス追跡ソフトウェアアプリケーションという状況において、本発明は、窃盗によってなされるアクションにもかかわらず、ソフトウェアは、存続し、遠隔監視センタへの接触を利用可能にし、価値のある資産の窃盗が偽装することをさらに困難にするので、極めて重要である。加えて、ソフトウェアエージェントの永続性の本質は、追跡エージェントが故意に取り除かれないという信用を提供するので、個人情報のセキュリティに対して安心感を提供する。セキュア資産管理アプリケーションと言う状況で、これは、そのライフサイクル全体を通して資産を追跡する継続性を確実にするので、さらなる価値を有する。IT管理者のための挑戦の鍵は、ライフサイクル全体を越えて資産を追跡する能力である。ライフサイクルの間に、デバイスは、しばしば、あるユーザからの別なユーザへ移転され、その間に、デバイスは、再イメージされ、再インストールの操作又は資産追跡を困難にする保守手続を課せられる。
【0112】
本発明のプロセス及びシステムは、ブロックダイアグラムフォーマットで機能モジュールに関して上述した。ここで正反対に別段述べられていないなら、1つ以上のファンクションが、離れた物理的デバイス、又は、1つの位置でのソフトウェアモジュール、又は、ネットワーク上を分散して、本発明の範囲と精神に放れることなく、実施される。
【0113】
各モジュールの実際の実施の詳細な議論は、本発明の理解を可能にするためには必要では無いということが評価される。実際の実装は、プログラマー及びシステムエンジニアの日常のスキル内で良く、システムの属性、機能性、システム内の様々な機能モジュールの内部関係というここで開示されたもので与えられる。通常のスキルを有する当業者は、過度の経験無しで本発明を実施することが可能である。
【0114】
本発明は、発明とともにここで記述された実施例に関して述べられた一方、当業者は、本発明の範囲及び精神から離れることなく様々な修正及び改良を行うことは明らかである。例えば、情報抽出アプリケーションは、ウェブブラウジングのためのユーザの追加的柔軟性を提供するために、異種又は追加のプロセスを適合するように容易に修正される。したがって、本発明は、添付した請求の範囲のみに制限されず、かつ、説明した特有の実施例に制限されないことが理解されるべきである。
【図面の簡単な説明】
【0115】
【図1】本発明の一実施例による資産追跡が実行されるネットワークを有する典型的通信リンクを表す概略図である。
【図2】本発明の一実施例による永続性エージェントを含むBIOSに対するPCIオプションROMの取り付けを表す概略図である。
【図3】本発明の一実施例によるPCIオプションROMの中にある永続性エージェントのモジュールコンポーネントを表す概略図である。
【図4】本発明の一実施例によるオプションROM装填ルーチンを表す概略フロー図である。
【図5】本発明の一実施例による永続性エージェントのCLMにより実行されるルーチンを表す概略フロー図である。
【図6a】本発明の一実施例によるCLMのインタラプト・ハンドラにより実行されるルーチンを表す概略フロー図である。
【図6b】本発明の一実施例によるCLMのインタラプト・ハンドラにより実行されるルーチンを表す概略フロー図である。
【図7】本発明の一実施例による永続性エージェントのAIMによって実行されるルーチンを表す概略フロー図である。
【図8】本発明の一実施例による永続性エージェントのCDAのインストーラモードルーチンを表す概略フロー図である。
【図9】本発明の一実施例によるCDAのサービスモードルーチンを表す概略フロー図である。
【図10】本発明の一実施例によるアプリケーションモードでのCDAの概略図である。
【図11】本発明の一実施例によるフラッシュイメージ管理の概略図である。
【図12】本発明の一実施例によるホスト保護エリアイメージ管理の概略図である。
【図13】本発明の一実施例によるパーティションギャップイメージ管理の概略図である。
【図14】本発明の一実施例による永続性エージェント及びリモートサーバ間の通信セッションの概略図である。
【特許請求の範囲】
【請求項1】
リモートサーバにネットワーク接続された電子デバイスに関して少なくとも1つのサービスを可能にし、サポートし、及び/又は、提供するために、前記電子デバイスに配置される永続性サービスエージェントであって、
不正変更が生じた場合に自己回復することを含む、外部不正変更に対して永続的であるように設定される前記電子デバイス内で隠されるドライバーエージェントと、
ユーザによる開始又は介入無しで、前記ドライバーエージェントのオペレーションを自動的に開始するように設定されるランモジュールと、
を有することを特徴とする永続性サービスエージェント。
【請求項2】
前記ドライバーエージェントは、
サービスを提供するネットワークと通信するように設定されるフルファンクションドライバーエージェント、又は、
前記電子デバイスで前記フルファンクションドライバーエージェントが利用可能かどうかを判断するように設定され、かつ、前記フルファンクションドライバーエージェントに比べて少ないファンクションセットを有して設定されるパーシャルドライバーエージェント、
を少なくとも1つ有する請求項1に記載の永続性サービスエージェント。
【請求項3】
前記パーシャルドライバーエージェントは、前記電子デバイスで利用可能でないと判断する場合、前記フルファンクションドライバーエージェントのコピーを前記ネットワーク上から検索するようにさらに設定される請求項2に記載の永続性サービスエージェント。
【請求項4】
前記ランモジュールは、
ユーザ介入無しで前記サービスを提供する前記電子デバイスの動作環境に前記ドライバーエージェントを自動的に適合するように設定されるインストーラモジュール、及び、
前記インストーラモジュールを自動的にロードし、次に、前記ドライバーエージェントを自動的にロードするように設定されるローダーモジュール、
を有する請求項1に記載の永続性サービスエージェント。
【請求項5】
前記インストーラモジュールは、前記電子デバイスの前記特定の動作環境に設定するためのプログラマブルモジュールを有する請求項4に記載の永続性サービスエージェント。
【請求項6】
前記ランモジュールは、前記電子デバイスのオペレーティングシステムに独立したドライバーエージェントのオペレーションを開始するように設定される請求項5に記載の永続性サービスエージェント。
【請求項7】
前記サービスは、資産追跡、資産回収、データ削除、ソフトウェア展開、及びソフトウェア更新の少なくとも1つを有する請求項1に記載の永続性サービスエージェント。
【請求項8】
少なくとも部分が、ファームウェア、ソフトウェア、及びハードウェア電子デバイスにおける前記電子デバイスに配置される請求項1に記載の永続性サービスエージェント。
【請求項9】
前記ファームウェアは、不揮発性メモリを有する請求項8に記載の永続性サービスエージェント。
【請求項10】
前記不揮発性メモリは、BIOSチップである請求項9に記載の永続性サービスエージェント。
【請求項11】
前記ローダーモジュールは、ファームウェアに格納され、かつ、前記ドライバーモジュール及びインストーラモジュールの少なくとも1つは、前記電子デバイスの中の大容量記憶装置のユーザアクセス可能なエリアに格納される請求項4に記載の永続性サービスエージェント。
【請求項12】
前記ドライバーエージェントは、前記リモートサーバと通信し、指令にしたがってサービスを実行するための当該指令を前記リモートサーバから受信し、それにより、前記エージェントにより実行され得るサービスの範囲を拡張するように設定される請求項1に記載の永続性サービスエージェント。
【請求項13】
前記サービスは、資産追跡、資産回収、データ削除、ソフトウェア展開、及びソフトウェア更新の少なくとも1つを有する請求項12に記載の永続性サービスエージェント。
【請求項14】
前記ドライバーエージェントは、前記リモートサーバからアプリケーションをダウンロードするように設定され、そして、前記リモートサーバから受信した指令にしたがって前記アプリケーションを開始する請求項12に記載の永続性サービスエージェント。
【請求項15】
前記アプリケーションは、実行ファイルを含む請求項14に記載の永続性サービスエージェント。
【請求項16】
請求項1に記載の永続性サービスエージェントを含む電子デバイス。
【請求項17】
電子デバイスにおいて、サービスを可能にし、サポートし、及び/又は、提供する方法であって、
不正変更が生じた場合に自己回復することを含む、外部不正変更に対して永続的であるように設定されるドライバーエージェントを、前記電子デバイス内で隠し、
ユーザによる開始又は介入無しで、前記ドライバーエージェントのオペレーションを自動的に開始するように設定されるランモジュールを提供し、
リモートサーバと通信し、前記サービスに関連する指令を受信するネットワークに、前記ドライバーエージェントを操作的に接続すること、
を有することを特徴とする方法。
【請求項18】
前記サービスは、資産追跡、資産回収、データ削除、ソフトウェア展開、及びソフトウェア更新の少なくとも1つを有する請求項17に記載の永続性サービスエージェント。
【請求項19】
リモートサーバにネットワークを介して接続される電子デバイスに、少なくとも1つのサービスを可能にし、サポートし、及び/又は、提供するために、前記電子デバイスに
配置される永続性サービスエージェントであって、
不正変更が生じた場合に自己回復することを含む、外部不正変更に対して永続的であるように設定される前記電子デバイス内で隠されるドライバーエージェントと、
ユーザによる開始又は介入無しで、前記ドライバーエージェントのオペレーションを自動的に開始するように設定されるローダーモジュールと、
を有することを特徴とする永続性サービスエージェント。
【請求項20】
ユーザ介入無しで前記サービスを提供する前記電子デバイスの動作環境に前記ドライバーエージェントを自動的に適合するように設定されるインストーラモジュールをさらに有する請求項19に記載の永続性サービスエージェント。
【請求項1】
リモートサーバにネットワーク接続された電子デバイスに関して少なくとも1つのサービスを可能にし、サポートし、及び/又は、提供するために、前記電子デバイスに配置される永続性サービスエージェントであって、
不正変更が生じた場合に自己回復することを含む、外部不正変更に対して永続的であるように設定される前記電子デバイス内で隠されるドライバーエージェントと、
ユーザによる開始又は介入無しで、前記ドライバーエージェントのオペレーションを自動的に開始するように設定されるランモジュールと、
を有することを特徴とする永続性サービスエージェント。
【請求項2】
前記ドライバーエージェントは、
サービスを提供するネットワークと通信するように設定されるフルファンクションドライバーエージェント、又は、
前記電子デバイスで前記フルファンクションドライバーエージェントが利用可能かどうかを判断するように設定され、かつ、前記フルファンクションドライバーエージェントに比べて少ないファンクションセットを有して設定されるパーシャルドライバーエージェント、
を少なくとも1つ有する請求項1に記載の永続性サービスエージェント。
【請求項3】
前記パーシャルドライバーエージェントは、前記電子デバイスで利用可能でないと判断する場合、前記フルファンクションドライバーエージェントのコピーを前記ネットワーク上から検索するようにさらに設定される請求項2に記載の永続性サービスエージェント。
【請求項4】
前記ランモジュールは、
ユーザ介入無しで前記サービスを提供する前記電子デバイスの動作環境に前記ドライバーエージェントを自動的に適合するように設定されるインストーラモジュール、及び、
前記インストーラモジュールを自動的にロードし、次に、前記ドライバーエージェントを自動的にロードするように設定されるローダーモジュール、
を有する請求項1に記載の永続性サービスエージェント。
【請求項5】
前記インストーラモジュールは、前記電子デバイスの前記特定の動作環境に設定するためのプログラマブルモジュールを有する請求項4に記載の永続性サービスエージェント。
【請求項6】
前記ランモジュールは、前記電子デバイスのオペレーティングシステムに独立したドライバーエージェントのオペレーションを開始するように設定される請求項5に記載の永続性サービスエージェント。
【請求項7】
前記サービスは、資産追跡、資産回収、データ削除、ソフトウェア展開、及びソフトウェア更新の少なくとも1つを有する請求項1に記載の永続性サービスエージェント。
【請求項8】
少なくとも部分が、ファームウェア、ソフトウェア、及びハードウェア電子デバイスにおける前記電子デバイスに配置される請求項1に記載の永続性サービスエージェント。
【請求項9】
前記ファームウェアは、不揮発性メモリを有する請求項8に記載の永続性サービスエージェント。
【請求項10】
前記不揮発性メモリは、BIOSチップである請求項9に記載の永続性サービスエージェント。
【請求項11】
前記ローダーモジュールは、ファームウェアに格納され、かつ、前記ドライバーモジュール及びインストーラモジュールの少なくとも1つは、前記電子デバイスの中の大容量記憶装置のユーザアクセス可能なエリアに格納される請求項4に記載の永続性サービスエージェント。
【請求項12】
前記ドライバーエージェントは、前記リモートサーバと通信し、指令にしたがってサービスを実行するための当該指令を前記リモートサーバから受信し、それにより、前記エージェントにより実行され得るサービスの範囲を拡張するように設定される請求項1に記載の永続性サービスエージェント。
【請求項13】
前記サービスは、資産追跡、資産回収、データ削除、ソフトウェア展開、及びソフトウェア更新の少なくとも1つを有する請求項12に記載の永続性サービスエージェント。
【請求項14】
前記ドライバーエージェントは、前記リモートサーバからアプリケーションをダウンロードするように設定され、そして、前記リモートサーバから受信した指令にしたがって前記アプリケーションを開始する請求項12に記載の永続性サービスエージェント。
【請求項15】
前記アプリケーションは、実行ファイルを含む請求項14に記載の永続性サービスエージェント。
【請求項16】
請求項1に記載の永続性サービスエージェントを含む電子デバイス。
【請求項17】
電子デバイスにおいて、サービスを可能にし、サポートし、及び/又は、提供する方法であって、
不正変更が生じた場合に自己回復することを含む、外部不正変更に対して永続的であるように設定されるドライバーエージェントを、前記電子デバイス内で隠し、
ユーザによる開始又は介入無しで、前記ドライバーエージェントのオペレーションを自動的に開始するように設定されるランモジュールを提供し、
リモートサーバと通信し、前記サービスに関連する指令を受信するネットワークに、前記ドライバーエージェントを操作的に接続すること、
を有することを特徴とする方法。
【請求項18】
前記サービスは、資産追跡、資産回収、データ削除、ソフトウェア展開、及びソフトウェア更新の少なくとも1つを有する請求項17に記載の永続性サービスエージェント。
【請求項19】
リモートサーバにネットワークを介して接続される電子デバイスに、少なくとも1つのサービスを可能にし、サポートし、及び/又は、提供するために、前記電子デバイスに
配置される永続性サービスエージェントであって、
不正変更が生じた場合に自己回復することを含む、外部不正変更に対して永続的であるように設定される前記電子デバイス内で隠されるドライバーエージェントと、
ユーザによる開始又は介入無しで、前記ドライバーエージェントのオペレーションを自動的に開始するように設定されるローダーモジュールと、
を有することを特徴とする永続性サービスエージェント。
【請求項20】
ユーザ介入無しで前記サービスを提供する前記電子デバイスの動作環境に前記ドライバーエージェントを自動的に適合するように設定されるインストーラモジュールをさらに有する請求項19に記載の永続性サービスエージェント。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6a】
【図6b】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6a】
【図6b】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公表番号】特表2007−531125(P2007−531125A)
【公表日】平成19年11月1日(2007.11.1)
【国際特許分類】
【出願番号】特願2007−505279(P2007−505279)
【出願日】平成17年3月28日(2005.3.28)
【国際出願番号】PCT/US2005/010595
【国際公開番号】WO2005/096122
【国際公開日】平成17年10月13日(2005.10.13)
【出願人】(506322857)アブソリュート ソフトウエア コーポレイション (4)
【Fターム(参考)】
【公表日】平成19年11月1日(2007.11.1)
【国際特許分類】
【出願日】平成17年3月28日(2005.3.28)
【国際出願番号】PCT/US2005/010595
【国際公開番号】WO2005/096122
【国際公開日】平成17年10月13日(2005.10.13)
【出願人】(506322857)アブソリュート ソフトウエア コーポレイション (4)
【Fターム(参考)】
[ Back to top ]