(57)【要約】本発明は、コンピュータに信頼可能な実行環境を構築する方法であって、信頼可能ファイル検証モジュールと、信頼可能プロセスメモリコード検証モジュールとをオペレーティングシステム内に予め設置して、安全なオペレーティングシステムをロードして実行させることを鍵とする。信頼可能ファイル検証モジュールは全てのファイル操作行為を捕獲し、信頼可能ファイルに対する操作行為であれば、このファイル操作種類に基づいて処理し、信頼不能ファイルに対する操作行為であれば、このファイルに対する検証に合格した後、ファイルに対して操作を行う。信頼可能プロセスメモリコード検証モジュールは、全てのプロセスコードの実行状態と完備性が正常であるか否かを定時に検証して、正常でなければ警報を出し、このプロセス実行の現場データを保存した後、このプロセスを終了し修復することとなり、正常であれば正常的に実行し続ける。本発明によれば、ファイル及びプロセス自体が攻撃を受けたか否かを検出し、このように、既知或は未知のウィルスからの攻撃にも関わらず、コンピュータにおける実行環境のセキュリティを確保でき、且つユーザの運用を便利にし、実現のコストが低下である。【選択図】図２
2008522298.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに信頼可能な実行環境を構築する方法であって、
信頼可能ファイル検証モジュールと、信頼可能プロセスメモリコード検証モジュールとをオペレーティングシステム内に予め設置して、安全なオペレーティングシステムをロードして実行させ、
この方法は、
信頼可能ファイル検証モジュールが全てのファイル操作行為を捕獲して、現在の操作待ちファイルが信頼可能ファイルであるか否かを検査し、信頼可能ファイルであればこのファイル操作種類に基づいて処理し、信頼可能ファイルでなければこのファイルに対する検証に合格した後、ファイルに対して操作処理を行うステップと、
信頼可能プロセスメモリコード検証モジュールは、全てのプロセスコードの実行状態と完備性が正常であるか否かを定時に検証し、正常でなければ警報を出し、このプロセス実行の現場データを保存した後、このプロセスを終了し、正常であれば正常的に実行し続けるステップを含むことを特徴とする方法。
【請求項２】
前記の安全なオペレーティングシステムをロードして実行させる手順には、基本ファイル管理システム、及びユーザが予め指定したオペレーティングシステムのカーネルファイルと、起動に係るファイルと、ユーザの保護すべきアプリケーションソフトウェアのファイル名とが含まれた信頼可能ファイルリストを予め設置すると共に、全てのセキュリティを確保すべきデータとその完備性値とをセキュリティ記憶部品内に設置し、コンピュータのファームウェアに信頼可能オペレーティングシステム基礎ソフトウェア完備性検証回復モジュールを設置することを含み、オペレーティングシステムをロードして実行させる具体的手順は、
コンピュータ内のファームウェアに対する検証に成功して起動した後、ファームウェアによって基本ファイル管理システムの完備性値がセキュリティ記憶部品に予め記憶された完備性値と一致するか否かを検証し、一致であればファームウェアがこの基本ファイル管理システムを起動した後、ステップｂを実行し、そうでなければシステムの起動を停止させるステップａと、
基本ファイル管理システムが信頼可能オペレーティングシステム基礎ソフトウェア完備性検証モジュールを起動し、この信頼可能オペレーティングシステム基礎ソフトウェア完備性検証回復モジュールによってディスクセクタからディスクパラメータを読み出し、このディスクパラメータの完備性値がセキュリティ記憶部品に予め記憶された完備性値と一致するか否かを検証し、一致であればステップｃを実行し、そうでなければ、信頼可能オペレーティングシステム基礎ソフトウェア完備性検証回復モジュールは、セキュリティ記憶部品から予め記憶されたディスクデータを取り出して、現在のディスクセクタに書いた後、ステップｃを実行するステップｂと、
信頼可能オペレーティングシステム基礎ソフトウェア完備性検証回復モジュールは、信頼可能ファイルリストの完備性値がセキュリティ記憶部品に予め記憶された完備性値と一致するか否かを検証し、一致であればステップｄを実行し、そうでなければ、予め記憶された信頼可能ファイルリストをセキュリティ記憶部品から取り出して、現在の信頼可能ファイルリストを上書きした後、ステップｄを実行するステップｃと、
信頼可能オペレーティングシステム基礎ソフトウェア完備性検証回復モジュールは、信頼可能ファイルリスト中のオペレーティングシステムのカーネルファイルを読み出して、このオペレーティングシステムのカーネルファイルの完備性値がセキュリティ記憶部品に予め記憶された完備性値と一致するか否かを検証し、一致であればオペレーティングシステムをロードして実行させ、そうでなければ、予め記憶されたオペレーティングシステムのカーネルファイルをセキュリティ記憶部品から取り出して現在のオペレーティングカーネルファイルに上書きした後、オペレーティングシステムをロードして実行させるステップｄと、を含むことを特徴とする請求項１に記載する方法。
【請求項３】
前記基本ファイル管理システムは、セキュリティ記憶部品、或はファームウェア、或はオペレーティングシステムに位置され、
前記信頼可能ファイルリストは、セキュリティ記憶部品、或はオペレーティングシステムに位置されていることを特徴とする請求項２に記載する方法。
【請求項４】
前記のセキュリティ記憶部品内における全てのセキュリティを確保すべきデータは、システム実行の需要とユーザの需要に応じて決定されたものであり、
前記の全てのセキュリティを確保すべきデータは、ファームウェアと、オペレーティングシステムと、各種のアプリケーションソフトウェアやファイルのデータと、ディスクパラメータとを含むが、これらに限定されないことを特徴とする請求項２に記載する方法。
【請求項５】
前記ディスクパラメータは、マストブートセクタパラメータと、パーティションブートセクタパラメータと、ファイル割当テーブルパラメータとを含むが、これらに限定されないことを特徴とする請求項２又は４に記載する方法。
【請求項６】
前記信頼可能ファイル検証モジュールが現在の操作待ちファイルが信頼可能ファイルであるか否かを検査する方法は、現在の操作待ちファイルが信頼可能ファイルリスト中のファイルであるか否かを検査し、そうであれば現在の操作待ちファイルが信頼可能ファイルであり、そうでなければ現在の操作待ちファイルが信頼不能ファイルであることを特徴とする請求項２に記載する方法。
【請求項７】
現在のファイル操作種類に基づいて信頼可能ファイルを処理する手順は、現在のファイル操作行為の種類が読出し操作であるのか、それとも修正操作であるのかを検査し、
読出し操作であれば、この現在の操作待ちファイルの完備性値がセキュリティ記憶部品に予め記憶された完備性値と一致するか否かを検証し、一致であればこの現在の操作待ちファイルをメモリにロードして、読出し操作の実行をアクセス者に許可し、そうでなければ、予め記憶されたこの信頼可能ファイルをセキュリティ記憶部品から取り出して現在のファイルに上書きした後、さらにこの現在の操作待ちファイルをメモリにロードして、読出し操作の実行をアクセス者に許可し、
修正操作であれば、コンピュータが、現在、セキュリティ状態にあると検査した後、信頼可能ファイルリストに対する修正をアクセス者に許可し、その後、信頼可能ファイルリストと修正されたファイルとの完備性値を改めて計算し、この新たな信頼可能ファイルリストの完備性値と修正されたこのファイルの完備性値をセキュリティ記憶部品に記憶させることを特徴とする請求項６に記載する方法。
【請求項８】
前記修正操作は、書込み操作、及び／或は属性修正操作、及び／或は削除操作、及び／或はニューファイル作成操作を含むが、これらに限定されなく、
前記セキュリティ状態は、コンピュータが、現在、ネットワークと物理的に接続しておらず、且つ、信頼可能ファイルリストが、現在、修正操作有効の状態にあることを特徴とする請求項７に記載する方法。
【請求項９】
修正操作を有効化させる物理スイッチを設置し、この物理スイッチのオン或はオフの状態に基づいて、信頼可能ファイルリストが、現在、修正操作有効の状態にあるか否かを確定することをさらに含むことを特徴とする請求項８に記載する方法。
【請求項１０】
信頼不能ファイルについて、このファイルに対する検証に合格した後、さらにファイルに対して操作処理を行う手順は、信頼不能ファイルに対するウィルス検出が終了した後、この信頼不能ファイルに対応したプロセスを仮想マシンにロードし、仮想マシンによってこのプロセスの行為を監視して、このプロセスが不正行為をしたことを発見すると、警報を出しこのプロセスを終了させ、そうでなければ、このファイルに対する操作処理を許可することを特徴とする請求項６に記載する方法。
【請求項１１】
前記不正行為は、少なくともオペレーティングシステムファイルに対する不正修正操作、及び／或はディスクに対する不正修正操作、及び／或はメモリに対する不正越境アクセス、及び／或は不正ジャンプ操作の実行を含むことを特徴とする請求項１０に記載する方法。
【請求項１２】
前記信頼可能プロセスメモリコード検証モジュールが、全てのプロセスコードの実行状態が正常であるか否かを定時に検証する手順は、プロセスプログラムポインタがプロセスに規定している物理メモリアドレスを超えたか否か、及び／或はプロセスコードが所定の物理メモリアドレスを越えたか否かを検査することとなり、
前記信頼可能プロセスメモリコード検証モジュールが全てのプロセスコードの完備性が正常であるか否かを検証する方法は、ファイルが初めてメモリにロードされる時、このファイルに対応しているプロセスのプロセスコードのメモリにおける完備性値を計算し、この完備性値をセキュリティ記憶部品に記憶し、信頼可能プロセスメモリコード検証モジュールは、現在の全てのプロセスコードの完備性値がセキュリティ記憶部品に予め記憶された完備性値と一致するか否かを定時に検証し、一致であればプロセスコードが正常であり、そうでなければ正常ではないことを特徴とする請求項２に記載する方法。
【請求項１３】
前記信頼可能プロセスメモリコード検証モジュールがプロセスコードの実行状態及び／或は完備性が不正常であると検証した後、この方法は、信頼可能ファイル検証モジュールによって不正常なプロセスに対応しているファイルを改めて検証し、その後、このファイルをメモリに再びロードし、このファイルに対応しているプロセスのメモリにおける完備性値を計算し、計算した完備性値をセキュリティ記憶部品に記憶すると共に、前回に保存したプロセス実行の現場データに基づいて、当該プロセスを前回の実行状態に回復させることをさらに含むことを特徴とする請求項１２に記載する方法。
【請求項１４】
前記ファイル操作行為は、ファイルの読み書き操作と、ファイル属性の修正操作と、ファイルの削除操作と、ファイルの作成操作とを含むが、これらに限定されないことを特徴とする請求項１に記載する方法。
【請求項１５】
前記セキュリティ記憶部品は、強制アクセス制御権限付与を有するハードディスク記憶部品でもよく、強制アクセス権限付与制御を有するチップ記憶部品でもよく、アクセス制御メカニズムを有するメモリ部品でもよいことを特徴とする請求項２、３、４、７、１２のいずれか１項に記載する方法。
【請求項１６】
前記セキュリティ記憶部品は、セキュリティチップ、或はセキュリティ保護機能を有するハードディスク、或はアクセス制御機能を有するｆｌａｓｈメモリであることを特徴とする請求項２、３、４、７、１２のいずれか１項に記載する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータセキュリティ技術分野に属し、特に、コンピュータに信頼可能な実行環境を構築する方法に関する。
【背景技術】
【０００２】
コンピュータ・オペレーティングシステムは、それ自体の欠陥のため、攻撃を受けた後、特に新たな未知攻撃或はウィルス攻撃を受けた後、システムの崩壊が非常に容易になり、従ってシステムの全体が継続的に動作できなくなり、動作できても、様々な問題が発生することになる。このように、コンピュータの実行環境の信頼性に対してユーザに疑念を抱かせ、また、電子支払いや電子公文書等の操作のような機密情報の処理及び交流をコンピュータで行うことに対してユーザに不安を抱かせる。これは社会の発展に不利である。
【０００３】
現在、上記の問題に対する解決方式として、通常、以下の幾つの方法がある。
【０００４】
方法１：アンチウィルスソフトウェアを適用して上記の問題を解決する。具体的な方法において、アンチウィルスソフトウェアが特徴マッチングの方法を採用してネットワークウィルスの攻撃を検出し、ウィルスが検出されると感染されたファイルを隔離したり、或は感染されたファイルに対してウィルス除去操作を行ったりすることによって、コンピュータのセキュリティを保障する。
【０００５】
この方法の欠陥は、未知ウィルスの攻撃を検出できないことである。コンピュータシステムは、新たなアンチウィルスライブラリ（ＡｎｔｉＶｉｒｕｓ  Ｌｉｂｒａｒｙ）と、規則ライブラリと、ホール・パック（ｈｏｌｅｓ  ｐａｃｋ）が発布される前に、攻撃行為を抵抗できない。そして、このアンチウィルスソフトウェア自体も攻撃され易くなる。
【０００６】
方法２：ホスト侵入検出ソフトウェアを適用して上記の問題を解決する。具体的な方法において、ホスト侵入検出ソフトウェアが攻撃特徴規則ライブラリを利用して、攻撃行為を検出して警報を出す。
【０００７】
この方法の欠陥は方法１と類似である。コンピュータシステムは、未知の攻撃を検出できず、新たなアンチウィルスライブラリと、規則ライブラリと、ホール・パックを発布する前に、攻撃行為を抵抗することができない。そして、このホスト侵入検出ソフトウェア自体も攻撃され易くなる。
【０００８】
方法３：両網の物理的隔離や、両網の物理的隔離のコンピュータや、二重モードオペレーティングシステムの切替を利用して上記の問題を解決する。具体的な方法において、両網或は二重モードの切替によってコンピュータの実行環境のセキュリティを保障する。
【０００９】
この方法の欠陥は、コンピュータ自体のコストを増加させると共に、ユーザはコンピュータのモードを常時に切り替える必要があるので、使用するには極めて不便であることである。
【００１０】
方法４：プロセス隔離技術を適用して上記の問題を解決する。具体的な方法において、プロセスに身元識別標識を設置して、プロセスのアクセス者を識別すると共に、異なるプロセスの間の隔離を実現し、プロセスプールにおけるプロセスの物理メモリの使用状況や、ＣＰＵの利用状況や、システム性能状況等を監視し、プロセス間のメモリオーバーフロー（Ｍｅｍｏｒｙ  ｏｖｅｒｆｌｏｗ）を防止する。
【００１１】
この方法の欠陥は、プロセス自体が攻撃されたか否かを検出していないので、依然としてセキュリティに関する恐れがある。
【００１２】
上記方法のいずれも、各種の攻撃に対する防護対策であるが、コンピュータにおいて実行環境のセキュリティと信頼性を確保できないものである。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
本発明はこれに鑑みてなされたものであり、コンピュータに信頼可能な実行環境を構築する方法を提供して、根本的にコンピュータにおける実行環境のセキュリティと信頼性を保障して、ユーザーの運用を便利にすることを目的にする。
【課題を解決するための手段】
【００１４】
上記の目的を達成するために、本発明の技術方案は下記の通りである。
【００１５】
コンピュータに信頼可能な実行環境を構築する方法であって、
信頼可能ファイル検証モジュールと、信頼可能プロセスメモリコード検証モジュールとをオペレーティングシステム内に予め設置して、安全なオペレーティングシステムをロードして実行させ、
この方法は、
信頼可能ファイル検証モジュールが全てのファイル操作行為を捕獲して、現在の操作待ちファイルが信頼可能ファイルであるか否かを検査し、信頼可能ファイルであればこのファイル操作種類に基づいて処理し、信頼可能ファイルでなければこのファイルに対する検証に合格した後、ファイルに対して操作処理を行うステップと、
信頼可能プロセスメモリコード検証モジュールは、全てのプロセスコードの実行状態と完備性が正常であるか否かを定時に検証し、正常でなければ警報を出し、このプロセス実行の現場データを保存した後、このプロセスを終了し、正常であれば正常的に実行し続けるステップを含むこととなる。
【００１６】
前記の安全なオペレーティングシステムをロードして実行させる手順には、基本ファイル管理システム、及びユーザが予め指定したオペレーティングシステムのカーネルファイルと、起動に係るファイルと、ユーザの保護すべきアプリケーションソフトウェアのファイル名とが含まれた信頼可能ファイルリストを予め設置すると共に、全てのセキュリティを確保すべきデータとその完備性値とをセキュリティ記憶部品内に設置し、コンピュータのファームウェアに信頼可能オペレーティングシステム基礎ソフトウェア完備性検証回復モジュールを設置することを含み、オペレーティングシステムをロードして実行させる具体的手順は、
コンピュータ内のファームウェアに対する検証に成功して起動した後、ファームウェアによって基本ファイル管理システムの完備性値がセキュリティ記憶部品に予め記憶された完備性値と一致するか否かを検証し、一致であればファームウェアがこの基本ファイル管理システムを起動した後、ステップｂを実行し、そうでなければシステムの起動を停止させるステップａと、
基本ファイル管理システムが信頼可能オペレーティングシステム基礎ソフトウェア完備性検証モジュールを起動し、この信頼可能オペレーティングシステム基礎ソフトウェア完備性検証回復モジュールによってディスクセクタからディスクパラメータを読み出し、このディスクパラメータの完備性値がセキュリティ記憶部品に予め記憶された完備性値と一致するか否かを検証し、一致であればステップｃを実行し、そうでなければ、信頼可能オペレーティングシステム基礎ソフトウェア完備性検証回復モジュールは、セキュリティ記憶部品から予め記憶されたディスクデータを取り出して、現在のディスクセクタに書いた後、ステップｃを実行するステップｂと、
信頼可能オペレーティングシステム基礎ソフトウェア完備性検証回復モジュールは、信頼可能ファイルリストの完備性値がセキュリティ記憶部品に予め記憶された完備性値と一致するか否かを検証し、一致であればステップｄを実行し、そうでなければ、予め記憶された信頼可能ファイルリストをセキュリティ記憶部品から取り出して、現在の信頼可能ファイルリストを上書きした後、ステップｄを実行するステップｃと、
信頼可能オペレーティングシステム基礎ソフトウェア完備性検証回復モジュールは、信頼可能ファイルリスト中のオペレーティングシステムのカーネルファイルを読み出して、このオペレーティングシステムのカーネルファイルの完備性値がセキュリティ記憶部品に予め記憶された完備性値と一致するか否かを検証し、一致であればオペレーティングシステムをロードして実行させ、そうでなければ、予め記憶されたオペレーティングシステムのカーネルファイルをセキュリティ記憶部品から取り出して現在のオペレーティングカーネルファイルに上書きした後、オペレーティングシステムをロードして実行させるステップｄと、を含むことが好ましい。
【００１７】
前記基本ファイル管理システムは、セキュリティ記憶部品、或はファームウェア、或はオペレーティングシステムに位置され、前記信頼可能ファイルリストは、セキュリティ記憶部品、或はオペレーティングシステムに位置されていることが好ましい。
【００１８】
前記のセキュリティ記憶部品内における全てのセキュリティを確保すべきデータは、システム実行の需要とユーザの需要に応じて決定されたものであり、前記の全てのセキュリティを確保すべきデータは、ファームウェアと、オペレーティングシステムと、各種のアプリケーションソフトウェアやファイルのデータと、ディスクパラメータとを含むが、これらに限定されないことが好ましい。
【００１９】
前記ディスクパラメータは、マストブートセクタパラメータと、パーティションブートセクタパラメータと、ファイル割当テーブルパラメータとを含むが、これらに限定されないことが好ましい。
【００２０】
前記信頼可能ファイル検証モジュールが現在の操作待ちファイルが信頼可能ファイルであるか否かを検査する方法は、現在の操作待ちファイルが信頼可能ファイルリスト中のファイルであるか否かを検査し、そうであれば現在の操作待ちファイルが信頼可能ファイルであり、そうでなければ現在の操作待ちファイルが信頼不能ファイルであることが好ましい。
【００２１】
現在のファイル操作種類に基づいて信頼可能ファイルを処理する手順は、現在のファイル操作行為の種類が読出し操作であるのか、それとも修正操作であるのかを検査し、
読出し操作であれば、この現在の操作待ちファイルの完備性値がセキュリティ記憶部品に予め記憶された完備性値と一致するか否かを検証し、一致であればこの現在の操作待ちファイルをメモリにロードして、読出し操作の実行をアクセス者に許可し、そうでなければ、予め記憶されたこの信頼可能ファイルをセキュリティ記憶部品から取り出して現在のファイルに上書きした後、さらにこの現在の操作待ちファイルをメモリにロードして、読出し操作の実行をアクセス者に許可し、
修正操作であれば、コンピュータが、現在、セキュリティ状態にあると検査した後、信頼可能ファイルリストに対する修正をアクセス者に許可し、その後、信頼可能ファイルリストと修正されたファイルとの完備性値を改めて計算し、この新たな信頼可能ファイルリストの完備性値と修正されたこのファイルの完備性値をセキュリティ記憶部品に記憶させることが好ましい。
【００２２】
前記修正操作は、書込み操作、及び／或は属性修正操作、及び／或は削除操作、及び／或はニューファイル作成操作を含むが、これらに限定されなく、
前記セキュリティ状態は、コンピュータが、現在、ネットワークと物理的に接続しておらず、且つ、信頼可能ファイルリストが、現在、修正操作有効の状態にあることが好ましい。
【００２３】
修正操作を有効化させる物理スイッチを設置し、この物理スイッチのオン或はオフの状態に基づいて、信頼可能ファイルリストが、現在、修正操作有効の状態にあるか否かを確定することをさらに含むことが好ましい。
【００２４】
信頼不能ファイルについて、このファイルに対する検証に合格した後、さらにファイルに対して操作処理を行う手順は、信頼不能ファイルに対するウィルス検出が終了した後、この信頼不能ファイルに対応したプロセスを仮想マシンにロードし、仮想マシンによってこのプロセスの行為を監視して、このプロセスが不正行為をしたことを発見すると、警報を出しこのプロセスを終了させ、そうでなければ、このファイルに対する操作処理を許可することが好ましい。
【００２５】
前記不正行為は、少なくともオペレーティングシステムファイルに対する不正修正操作、及び／或はディスクに対する不正修正操作、及び／或はメモリに対する不正越境アクセス、及び／或は不正ジャンプ操作の実行を含むことが好ましい。
【００２６】
前記信頼可能プロセスメモリコード検証モジュールが、全てのプロセスコードの実行状態が正常であるか否かを定時に検証する手順は、プロセスプログラムポインタがプロセスに規定している物理メモリアドレスを超えたか否か、及び／或はプロセスコードが所定の物理メモリアドレスを越えたか否かを検査することとなり、
前記信頼可能プロセスメモリコード検証モジュールが全てのプロセスコードの完備性が正常であるか否かを検証する方法は、ファイルが初めてメモリにロードされる時、このファイルに対応しているプロセスのプロセスコードのメモリにおける完備性値を計算し、この完備性値をセキュリティ記憶部品に記憶し、信頼可能プロセスメモリコード検証モジュールは、現在の全てのプロセスコードの完備性値がセキュリティ記憶部品に予め記憶された完備性値と一致するか否かを定時に検証し、一致であればプロセスコードが正常であり、そうでなければ正常ではないことが好ましい。
【００２７】
前記信頼可能プロセスメモリコード検証モジュールがプロセスコードの実行状態及び／或は完備性が不正常であると検証した後、この方法は、信頼可能ファイル検証モジュールによって不正常なプロセスに対応しているファイルを改めて検証し、その後、このファイルをメモリに再びロードし、このファイルに対応しているプロセスのメモリにおける完備性値を計算し、計算した完備性値をセキュリティ記憶部品に記憶すると共に、前回に保存したプロセス実行の現場データに基づいて、当該プロセスを前回の実行状態に回復させることをさらに含むことが好ましい。
【００２８】
前記ファイル操作行為は、ファイルの読み書き操作と、ファイル属性の修正操作と、ファイルの削除操作と、ファイルの作成操作とを含むが、これらに限定されないことが好ましい。
【００２９】
前記セキュリティ記憶部品は、強制アクセス制御権限付与を有するハードディスク記憶部品でもよく、強制アクセス権限付与制御を有するチップ記憶部品でもよく、アクセス制御メカニズムを有するメモリ部品でもよいことが好ましい。
【００３０】
前記セキュリティ記憶部品は、セキュリティチップ、或はセキュリティ保護機能を有するハードディスク、或はアクセス制御機能を有するｆｌａｓｈメモリであることが好ましい。
【００３１】
本発明は、オペレーティングシステム内に信頼可能ファイル検証モジュールと、信頼可能プロセスメモリコード検証モジュールを予め設置して、安全なオペレーティングシステムをロードして実行させ、信頼可能ファイル検証モジュールによって全てのファイル操作行為を捕獲し、信頼可能ファイルに対する操作行為であればこのファイルの操作種類に応じて処理し、信頼不能ファイルの操作行為であればこのファイルに対する検証に合格した後、このファイルに対して操作処理を行う。信頼可能プロセスメモリコード検証モジュールは、全てのプロセスコードの実行状態と完備性が正常であるか否かを定時に検証して、正常でなければ警報を出し、このプロセス実行の現場データを保存した後、このプロセスを終了し、そうでなければ、正常的に実行し続ける。本発明によれば、アンチウィルスライブラリと、規則ライブラリ等の情報によってウィルスが存在しているか否かを検出することではなく、信頼可能なコンピュータハードウェアプラットホームに基づいて、オペレーティングシステムの起動からオペレーティングシステムのカーネルと、アプリケーションファイルと、プロセス自体とが攻撃を受けたか否かを検出して回復することとなる。このように、既知或は未知のウィルスからの攻撃にも関わらず、コンピュータにおける実行環境のセキュリティと信頼性を確保でき、従って信頼可能な実行環境をユーザに提供する一方、ユーザはセキュリティの確保すべきファイルとデータを確定すればよく、適用を便利にして実現のコストが低下である。
【発明を実施するための最良の形態】
【００３２】
以下、本発明について図面を結合して詳しく説明する。
【００３３】
本発明の構想は、信頼可能なコンピュータハードウェアプラットホームに基づいて、オペレーティングシステムと、アプリケーションソフトウェアと、プロセスとを全面的に検証して、信頼チェーンを構築することで、ユーザに対して証明済み信頼可能な実行環境を提供する。
【００３４】
図１は、本発明の一実施例を適用したオペレーティングシステムをロードして実行させる手順を示すフローチャートである。本実施例では、ディスク管理機能とファイル管理機能を備える基本ファイル管理システムと、オペレーティングシステムにおいて起動に係るカーネル（ｋｅｒｎｅｌ）ファイルを検証するための信頼可能オペレーティングシステムの基礎ソフトウェア完備性検証回復モジュールと、を予めコンピュータ内のファームウェア中に設置しておく。システム実行の需要とユーザの需要とに応じて決められた、セキュリティを確保すべき全てのデータとその完備性値とを、コンピュータのセキュリティ記憶部品内に設置しておく。このセキュリティを確保すべきデータは、ＢＩＯＳなどのようなファームウェアと、オペレーティングシステムと、各種のアプリケーションソフトウェアやファイル等のデータと、ディスクパラメータとを含む。
【００３５】
ユーザが予め指定したオペレーティングシステムのカーネルファイルと、起動に係るファイルと、ユーザの保護すべきソフトウェアのファイル名とが含まれた信頼可能ファイルのリストを設置する。オペレーティングシステムをロードして実行させる手順は、具体的に下記のステップを含む。
【００３６】
ステップ１０１において、コンピュータ内におけるファームウェアに対する検証に成功して起動した後、ファームウェアによって基本ファイル管理システムの完備性値がセキュリティ記憶部品に予め記憶された完備性値と一致するか否かを検証し、一致であればステップ１０２を実行し、そうでなければシステムの起動を停止させる。
【００３７】
ステップ１０２−ステップ１０３において、ファームウェアはこの基本ファイル管理システムを起動し、基本ファイル管理システムによって信頼可能オペレーティングシステム基礎ソフトウェア完備性検証回復モジュールを起動する。
【００３８】
ステップ１０４において、この信頼可能オペレーティング基礎ソフトウェア完備性検証回復モジュールによって、ディスクセクタからディスクパラメータを読み出して、このディスクパラメータの完備性値がセキュリティ記憶部品に予め記憶された完備性値と一致するか否かを検証して、一致であればステップ１０６を実行し、そうでなければステップ１０５を実行する。
【００３９】
上記ディスクパラメータは、マストブートセクタ（ｍａｓｔｅｒ  ｂｏｏｔ  ｓｅｃｔｏｒ）パラメータと、パーティションブートセクタ（ｐａｒｔｉｔｉｏｎ  ｂｏｏｔ  ｓｅｃｔｏｒ）と、ファイル割当テーブル（ＦＡＴ  ｆｉｌｅ  ａｌｌｏｃａｔｉｏｎ  ｔａｂｌｅ）パラメータとを含むが、これらに限定されない。
【００４０】
ステップ１０５において、信頼可能オペレーティングシステム基礎ソフトウェア完備性検証回復モジュールは、セキュリティ記憶部品から予め記憶されたディスクデータを取り出し、これを現在のディスクセクタのパラメータに上書きした後、ステップ１０６を実行する。
【００４１】
ステップ１０６において、信頼可能オペレーティングシステム基礎ソフトウェア完備性検証回復モジュールは、信頼可能ファイルリストの完備性値がセキュリティ記憶部品に予め記憶された完備性値と一致するか否かを検証して、一致であればステップ１０８を実行し、そうでなければステップ１０７を実行する。
【００４２】
ステップ１０７において、信頼可能オペレーティングシステム基礎ソフトウェア完備性検証回復モジュールは、セキュリティ記憶部品から予め記憶された信頼可能ファイルリストを取り出して現在の信頼可能ファイルリストに上書きした後、ステップ１０８を実行する。
【００４３】
ステップ１０８において、信頼可能オペレーティングシステム基礎ソフトウェア完備性検証回復モジュールは、信頼可能ファイルリスト中のオペレーティングシステムのカーネルファイルを読み出して、このオペレーティングシステムのカーネルファイルの完備性値がセキュリティ記憶部品に予め記憶された完備性値と一致するか否かを検証して、一致であればステップ１１０を実行し、そうでなければステップ１０９を実行する。
【００４４】
ステップ１０９において、信頼可能オペレーティングシステム基礎ソフトウェア完備性検証回復モジュールは、セキュリティ記憶部品から予め記憶されたオペレーティングシステムのカーネルファイルを取り出して現在のオペレーティングシステムのカーネルファイルに上書きした後、ステップ１１０を実行する。
【００４５】
ステップ１１０において、オペレーティングシステムをロードして実行させる。
【００４６】
ここまで、実行されているオペレーティングシステムのセキュリティを確保することができる。上記実施例では、基本ファイル管理システムをファームウェアに設置することによって、コンピュータ起動ブートの速度を向上させることができる。基本ファイル管理システムは、セキュリティ記憶部品、又はオペレーティングシステムに設置されてもよいことはもちろんである。信頼可能ファイルリストは、セキュリティ記憶部品に設置されてもよいし、オペレーティングシステムに設置してもよい。
【００４７】
オペレーティングシステムが正常的に実行された後、信頼可能ファイルの検証モジュールを起動して現在の操作待ちファイルを検証する。そして、信頼可能プロセスのメモリコード検証モジュールを起動して、全てのプロセスコードの実行状態と完備性を検証することで、コンピュータ実行環境のセキュリティを確保する。以下、信頼可能ファイル検証モジュールと信頼可能プロセスメモリコード検証モジュールの検証方法をそれぞれ説明する。
【００４８】
図２は、信頼可能ファイル検証モジュールが現在の操作待ちファイルを検証する手順を示すフローチャートである。
【００４９】
ステップ２０１において、信頼可能ファイル検証モジュールは、ファイルの読み書きと、ファイル属性の修正と、ファイルの削除等を含む全てのファイル操作行為を捕獲する。
【００５０】
ステップ２０２において、現在操作しようとするファイルが信頼可能ファイルリスト中のファイルであるか否かを検査し、信頼可能ファイルリスト中のファイルであればステップ２０３を実行し、そうでなければステップ２０８を実行する。
【００５１】
ステップ２０３において、捕獲されたファイル操作行為の操作種類を検査して、読出し操作であればステップ２０４を実行し、修正操作であればステップ２０７を実行する。
【００５２】
ステップ２０４において、この現在の操作待ちファイルの完備性値がセキュリティ記憶部品に予め記憶された完備性値と一致するか否かを検証して、一致であればステップ２０６を実行し、そうでなければステップ２０５を実行する。
【００５３】
ステップ２０５において、予め記憶されたこの信頼可能ファイルをセキュリティ記憶部品から取り出して現在のファイルに上書きする。
【００５４】
ステップ２０６において、この現在の操作待ちファイルをメモリにロードし、読出し操作の実行をアクセス者に許可し、本フローを終了する。
【００５５】
ステップ２０７において、コンピュータが現在セキュリティ状態にあると検査されると、信頼可能ファイルリストの修正をアクセス者に許可する。その後、信頼可能ファイルリストと修正後のファイルとの完備性値を改めて計算し、この新たな信頼可能ファイルリストの完備性値と、修正後の当該ファイルの完備性値とをセキュリティ記憶部品に記憶して、本フローを終了する。
【００５６】
上記の修正操作は、書込操作、及び／或は属性修正操作、及び／或は削除操作、及び／或はニューファイル作成を含むが、これらに限定されない。コンピュータが、現在、セキュリティ状態にあることを検査する手順は、コンピュータが、現在、ネットワークと物理的に接続されていないか否かを検出し、且つ、信頼可能ファイルリストが、現在、修正操作有効の状態にあるか否かを検出する。修正操作有効の状態とは、コンピュータにおけるセキュリティ物理スイッチは有効状態にあるようにするものである。図４を参照すると、図４は物理スイッチによって修正操作有効を制御することを示す模式図である。修正操作を有効にする物理スイッチを一つ設置し、この物理スイッチは一端が接地され、他端がコンピュータのメインボードのＩ／Ｏ制御モジュールに接続され、このＩ／Ｏ制御モジュールはチップグループにて実現されてもよいし、ＣＰＵにて実現されてもよい。物理スイッチとＩ／Ｏ制御モジュール間のインターフェースは、ＧＰＩＯ、シリアルポート、パラレルポート、或はＵＳＢインターフェースであってもよいが、これらに限定されない。信頼可能ファイルリストが、現在、修正操作有効の状態にあるか否かを検査する時、物理スイッチが位置するＩ／Ｏアドレスからこの物理スイッチの「オン」又は「オフ」の状態を読み出して、この物理スイッチが「オフ」の状態にあれば、信頼可能ファイルリストは、現在、修正操作有効の状態にあり、この物理スイッチが「オン」の状態にあれば、信頼可能ファイルリストは、現在、修正操作無効の状態にあることとなる。
【００５７】
ステップ２０８において、信頼不能なフアイルに対するウィルス検出が終了した後、この信頼不能ファイルに対応しているプロセスを仮想マシン（ｖｉｒｔｕａｌ  ｍａｃｈｉｎｅ）にロードし、仮想マシンによってこのプロセスの行為を監視し、このプロセスが不正行為をしたことを発見すると、警報を出すと共にこのプロセスを終了することになり、そうでなければ、このファイルの操作をアクセス者に許可する。
【００５８】
上記の仮想マシンは、本コンピュータでの一ソフトウェアを実行し、この仮想マシンソフトウェアは正常的なコンピュータをシミュレーションしてこのプロセスの行為を監視する。上記の不正行為は、少なくともオペレーティングシステムファイルに対する不正修正操作、及び／或はディスクパラメータに対する不正修正操作、及び／或はメモリに対する不正越境アクセス、及び／或は不正ジャンプ操作の実行を含む。
【００５９】
図３は、信頼可能プロセスメモリコード検証モジュールがプロセスコードを検証する手順を示すフローチャートである。
【００６０】
ステップ３０１において、検証を介してファイルが信頼可能ファイルであると確認されると、信頼可能ファイルが初めてメモリにロードされた時、このファイルに対応しているプロセスのプロセスコードのメモリ中の完備性値を計算し、この完備性値をセキュリティ記憶部品に記憶する。
【００６１】
ステップ３０２において、信頼可能プロセスメモリコード検証モジュールは、メモリ中の全てのプロセスの実行状態とプロセスコードの完備性が正常であるか否かを定時に検査し、正常でなければステップ３０３を実行し、正常であれば正常的に実行し続け、ステップ３０２を定時に繰り返して実行する。
【００６２】
上記の全てのプロセスコードの実行状態が正常であるか否かを検証する手順は、プロセスプログラムポインタがプロセスに規定している物理メモリアドレスを超えたか否か、及び／或はプロセスコードが所定の物理メモリアドレスを越えたか否かを検査することである。上記の全てのプロセスコードの完備性が正常であるか否かを検証する方法は、現在の全てのプロセスコードの完備性値がセキュリティ記憶部品に予め記憶された完備性値と一致するか否かを検証し、一致であればプロセスコードは正常であり、そうでなければ正常ではない。
【００６３】
ここで、プロセスプログラムポインタがプロセスに規定している物理メモリアドレスを超えたか否か、及び／或はプロセスコードが所定の物理メモリアドレスを越えたか否かを検査する操作は、ソフトウェアモジュールによって実現されてもよいし、ＣＰＵとチップグループによって実現されてもよい。
【００６４】
ステップ３０３において、警報を出し、プロセス実行の現場データを保存して、このプロセスを終了する。その後、信頼可能ファイル検証モジュールによってこのプロセスに対応しているファイルを再度検証した後、このファイルをメモリに再ロードして、このファイルのプロセスコードのメモリにおける完備性値を改めて計算する。そして、この新たな完備性値をセキュリティ記憶部品に記憶すると共に、前回に保存したプロセス実行の現場データに基づいて、プロセスを前回実行の状態に回復させる。
【００６５】
以上に述べたセキュリティ記憶部品は、強制アクセス制御権限付与を有するハードディスク記憶部品でもよいし、強制アクセス権限付与制御を有するチップ記憶部品でもよいし、アクセス制御メカニズムを有するメモリ部品でもよい。上記ハードディスク記憶部品の保護は、ハードディスクロジックパーティション及びオペレーティングシステムパーティションに拘らず、ハードディスク制御ロジック回路によって行われる。ここで、強制アクセス制御権限付与とは、セキュリティ記憶部品がパスワードに基づいてアクセス者に対する識別に成功すると、自身に対するアクセスをアクセス者に許可したり、或は、セキュリティ記憶部品とアクセス者は、予め共有されていた対となる機密情報（Ｓｅｃｒｅｔ  Ｉｎｆｏｒｍａｔｉｏｎ）を利用し、ｈａｓｈ関数と乱数（ｒａｎｄｏｍ  ｎｕｍｂｅｒ）に基づいて演算に参与する認証プロトコルを利用して、アクセス者に対する身元認証を具現し、認証に成功した後、自身に対するアクセスをアクセス者に許可する。
【００６６】
具体的な以上に述べた前記セキュリティ記憶部品は、セキュリティチップ（ＴＰＭ：Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）でもよく、ＨＰＡ（Ｈｏｓｔ  Ｐｒｏｔｅｃｔｅｄ  Ａｒｅａ）を有するハードディスクのようなセキュリティ保護機能のあるハードディスクでもよく、アクセス制御機能を有するｆｌａｓｈメモリでもよい。具体的なセキュリティチップに関する記載は、本願の出願人が提出した出願番号が「０３１３８３８０．７」で、発明の名称が「セキュリティチップ、このチップに基づく情報セキュリティ処理機器及び方法」である中国特許に開示されているので、ここで再度詳しく述べない。さらに、この出願にも、コンピュータ内におけるファームウェアを検証する方法を説明しているので、ステップ１０１にもファームウェアを検証する方法を詳しく説明しない。
【００６７】
以上に述べたことは、本発明の好ましい実施例に過ぎず、本発明を限定するものではない。本発明の主旨と原則を逸脱しない範囲内であれば、いかなる修正、等価交換、改良等のいずれも、本発明の保護範囲に含まれるべきである。
【図面の簡単な説明】
【００６８】
【図１】図１は、本発明の一実施例を適用したオペレーティングシステムをロードして実行させる手順を示すフローチャートである。
【図２】図２は、信頼可能ファイル検証モジュールが現在の操作待ちファイルを検証する手順を示すフローチャートである。
【図３】図３は、信頼可能プロセスメモリコード検証モジュールがプロセスコードを検証する手順を示すフローチャートである。
【図４】図４は、物理スイッチによって修正操作の有効化を制御することを示す模式図である。
【図１】
2008522298.tif 000003
【図２】
2008522298.tif 000004
【図３】
2008522298.tif 000005
【図４】
2008522298.tif 000006
【国際調査報告】
2008522298.tif 000007
2008522298.tif 000008
2008522298.tif 000009
2008522298.tif 000010