(57)【要約】【課題】本発明は、システム全体の性能劣化を抑制しつつ、プロセスの動作履歴をバッファオーバーフロー攻撃等から安全に保護することを目的とする。【解決手段】  制限付権限プロセス処理部２００は、オペレーティングシステムの各種機能を利用することができる特権レベルよりも低い制限付権限レベルであり、各種機能の一部のみを利用することができる制限付権限レベルに基づいて動作する制限付権限プロセスを制御する。カーネル特権プロセス処理部３００は、特権レベルに基づいて動作するカーネル特権プロセスを制御する。制限付権限プロセス処理部２００は、制限付権限プロセスの動作の履歴を制限付権限プロセス処理部２００に記録し、カーネル特権プロセス処理部３００は、制限付権限プロセス処理部に記録される動作の履歴のうちの特定動作の履歴をカーネル特権プロセス処理部３００に記録する。【選択図】図１
2007072969.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムの各種機能を利用することができる特権レベルに基づいて動作するカーネル特権プロセスを制御するカーネル特権プロセス処理部と、
前記特権レベルよりも低い制限付権限レベルであり、前記各種機能の一部のみを利用することができる前記制限付権限レベルに基づいて動作する制限付権限プロセスを制御する制限付権限プロセス処理部とを備え、
前記制限付権限プロセス処理部は、前記制限付権限プロセスの動作の履歴を前記制限付権限プロセス処理部に記録し、
前記カーネル特権プロセス処理部は、前記制限付権限プロセス処理部に記録される動作の履歴のうちの特定動作の履歴を前記カーネル特権プロセス処理部に記録することを特徴とする動作履歴保護装置。
【請求項２】
前記特定動作は、前記オペレーティングシステムの設定に関する動作であることを特徴とする請求項１に記載の動作履歴保護装置。
【請求項３】
前記制限付権限プロセスは、第１プロセスと第２プロセスとを含んでおり、
前記カーネル特権プロセス処理部は、前記第１プロセスと前記第２プロセスとのプロセス間通信が実行中である場合には、前記第１プロセスと前記第２プロセスとのそれぞれの前記特定動作の履歴を前記カーネル特権プロセス処理部に記録することを特徴とする請求項１に記載の動作履歴保護装置。
【請求項４】
前記制限付権限プロセスは、第１プロセスと第２プロセスとを含んでおり、
前記カーネル特権プロセス処理部は、前記第１プロセスの前記特定動作が実行中であるときに、前記第１プロセスに基づいて生成された前記第２プロセスの前記特定動作が実行中である場合には、前記第１プロセスと前記第２プロセスとのそれぞれの前記特定動作の履歴を前記カーネル特権プロセス処理部に記録することを特徴とする請求項１に記載の動作履歴保護装置。
【請求項５】
前記カーネル特権プロセス処理部は、前記特定動作を実行中である前記制限付権限プロセスの信頼性の度合を示す信頼度の大きさに応じて、前記特定動作の履歴を前記カーネル特権プロセス処理部に記録するか否か決定することを特徴とする請求項１に記載の動作履歴保護装置。
【請求項６】
前記カーネル特権プロセス処理部は、前記カーネル特権プロセス処理部のみが参照可能な鍵情報を用いることにより、前記制限付権限プロセス処理部に記録される前記特定動作の履歴を暗号化することを特徴とする請求項１に記載の動作履歴保護装置。
【請求項７】
前記カーネル特権プロセス処理部は、前記制限付権限プロセス処理部に記録される前記特定動作の履歴の複製を前記カーネル特権プロセス処理部に記録することを特徴とする請求項１に記載の動作履歴保護装置。
【請求項８】
前記カーネル特権プロセス処理部は、前記制限付権限プロセス処理部に記録される前記特定動作の履歴のハッシュ値を前記カーネル特権プロセス処理部に記録することを特徴とする請求項１に記載の動作履歴保護装置。
【請求項９】
前記カーネル特権プロセス処理部は、前記信頼度の大きさに応じて、前記制限付権限プロセス処理部に記録される前記特定動作の履歴の複製を前記カーネル特権プロセス処理部に記録する処理、又は前記制限付権限プロセス処理部に記録される前記特定動作の履歴のハッシュ値を前記カーネル特権プロセス処理部に記録する処理のいずれかを決定することを特徴とする請求項５に記載の動作履歴保護装置。
【請求項１０】
前記カーネル特権プロセス処理部は、前記制限付権限プロセス処理部に記録された前記特定動作の履歴の前記ハッシュ値と前記カーネル特権プロセス処理部に記録した前記ハッシュ値とが同一である場合には、前記特定動作の履歴が正当な履歴であると判定することを特徴とする請求項８に記載の動作履歴保護装置。
【請求項１１】
前記カーネル特権プロセス処理部は、
前記制限付権限プロセスが実行中の前記特定動作を検出する特定動作検出部と、  
検出された前記特定動作の履歴が保護対象であることを個々に識別するための固有の識別情報を発行する識別情報発行部と、
前記制限付権限プロセスの動作の履歴の保護を要求するための動作履歴保護要求情報を前記制限付権限プロセスから取得したことに基づいて、前記動作履歴保護要求情報の要求元の前記制限付権限プロセスのプロセスＩＤが前記識別情報に含まれている場合には、前記制限付権限プロセスの前記特定動作の履歴を前記カーネル特権プロセス処理部に記録させる動作履歴記録部と
を備えることを特徴とする請求項５に記載の動作履歴保護装置。
【請求項１２】
前記特定動作検出部は、前記制限付権限プロセスが発行したシステムコールに特定のライブラリ関数が含まれている場合には、前記制限付権限プロセスが実行中の前記特定動作を検出することを特徴とする請求項１１に記載の動作履歴保護装置。
【請求項１３】
前記特定動作検出部は、単位時間当りに前記特定動作を検出した検出回数を算出するものであり、
算出された前記検出回数が予め設定された設定回数を超えている場合には、前記動作履歴記録部により前記動作履歴保護要求情報が取得された後の前記動作履歴記録部における処理の開始を所定時間遅延させる遅延処理部を備えることを特徴とする請求項１１に記載の動作履歴保護装置。
【請求項１４】
前記識別情報発行部は、前記制限付権限プロセスが発行した前記システムコールに含まれる前記特定のライブラリ関数の種類、及び前記制限付権限プロセスの信頼性の度合を示す信頼度の大きさに応じて、前記識別情報を発行するか否か決定することを特徴とする請求項１２に記載の動作履歴保護装置。
【請求項１５】
前記動作履歴保護要求情報は、第１動作履歴保護要求情報と、第２動作履歴保護要求情報とを含んでおり、
前記第１動作履歴保護要求情報は、前記制限付権限プロセスの動作の履歴の記録先に対するアクセス権の付与を要求するためのシステムコールであり、
前記第２動作履歴保護要求情報は、前記アクセス権が付与された前記記録先に対して前記制限付権限プロセスの動作の履歴を記録するためのシステムコールであり、
前記動作履歴記録部は、前記第１動作履歴保護要求情報の要求元の前記制限付権限プロセスの前記プロセスＩＤが前記識別情報に含まれている場合には、前記第２動作履歴保護要求情報に含まれている前記制限付権限プロセスの動作の履歴を前記カーネル特権プロセス処理部に記録させることを特徴とする請求項１１に記載の動作履歴保護装置。
【請求項１６】
前記動作履歴保護要求情報は、第３動作履歴保護要求情報を含んでおり、
前記第３動作履歴保護要求情報は、前記アクセス権が付与された前記記録先に対する前記アクセス権の解除を要求するためのシステムコールであり、
前記動作履歴記録部は、前記第３動作履歴保護要求情報を前記制限付権限プロセスから取得した場合には、前記動作履歴記録部の処理を終了することを特徴とする請求項１５に記載の動作履歴保護装置。
【請求項１７】
コンピュータを、
オペレーティングシステムの各種機能を利用することができる特権レベルに基づいて動作するカーネル特権プロセスを制御するカーネル特権プロセス処理部と、
前記特権レベルよりも低い制限付権限レベルであり、前記各種機能の一部のみを利用することができる前記制限付権限レベルに基づいて動作する制限付権限プロセスを制御する制限付権限プロセス処理部として機能させる動作履歴保護プログラムであって、
前記制限付権限プロセス処理部は、前記制限付権限プロセスの動作の履歴を前記制限付権限プロセス処理部に記録し、
前記カーネル特権プロセス処理部は、前記制限付権限プロセス処理部に記録される動作の履歴のうちの特定動作の履歴を前記カーネル特権プロセス処理部に記録することを特徴とする動作履歴保護プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセスの動作履歴をバッファオーバーフロー攻撃等から保護する動作履歴保護装置及び動作履歴保護プログラムに関する。
【背景技術】
【０００２】
パーソナルコンピュータ、ＰＤＡ（Personal Digital Assistant）や携帯電話等の端末装置は、ネットワークを介してプログラムを受信し、受信したプログラムを実行している。これによれば、端末装置は、必要なアプリケーションを実行するためのプログラムを迅速に取得することができるため、端末装置の利便性を向上させることができる。
【０００３】
一方、ネットワークを介して送信されるプログラムを構成するコードには、端末装置の内部データを破壊するコード、端末装置に対する不正操作を実行するコード、端末装置が用いるリソースを乱用するコードなどの不正コードが含まれる場合がある。このため、ダウンロード可能なアプリケーションの拡大に伴ない、当該不正コードによるシステム障害を未然に防ぐ処理、又は当該不正コードによるシステム障害が発生してもシステムの状態を適切に復旧させる処理の重要性が増している。
【０００４】
従来から端末装置は、プログラムにより生成されたプロセスの動作履歴を逐次記録（例えば、オペレーティングシステムで用いられるＳＹＳＬＯＧが動作履歴を逐次記録）し、当該プロセスによりシステム障害が発生した場合には、記録したプロセスの動作履歴を参照することによりシステム障害が発生する前のシステムの状態に復旧させる。
【０００５】
しかしながら、上記システム障害の復旧が行われるためには、プロセスの動作履歴自体の信頼性が保証されなければならない。このため、システム障害に関わる動作履歴が破壊されたり、動作履歴が上記不正コードを含むプログラムにより改竄された場合には、端末装置は、上記動作履歴を本来の目的に利用することができなくなる。
【０００６】
この点を解決するための従来技術として特許文献１で提案されている動作履歴正当性検証技術を例にして説明する。
【０００７】
当該動作履歴正当性検証技術では、現時点の動作履歴とその前の動作履歴とを含むデータに対して電子署名が施されて記録される。記録された電子署名は公開鍵により復号化され、復号化後のデータと予め算出したデータとが一致している場合には、復号化後のデータは正当なデータであると判定される。
【０００８】
一方、復号化後のデータと予め算出したデータとが一致していない場合には、復号化後のデータは、正当なデータではなく、改竄されたデータであると判定される。当該動作履歴正当性検証技術によれば、上記電子署名の正当性を検証することにより動作履歴の正当性を検証することができる。
【特許文献１】特開２００３−１４３１３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ところで、プログラムにより生成されたプロセスは、オペレーティングシステムの各種機能を利用することができる特権レベルに基づいて動作するカーネル特権プロセスと、特権レベルよりも低い制限付権限レベルであり、且つ各種機能の一部のみの機能を利用することができる制限付権限レベルに基づいて動作する制限付権限プロセスとに分類される。
【００１０】
制限付権限プロセスは、該制限付権限プロセスが動作する制限付権限プロセス領域のみに対するアクセス権を有し、カーネル特権プロセスが動作するカーネル特権プロセス領域に対するアクセス権を有しない。従って、制限付権限プロセスは、該制限付権限プロセス自体の動作履歴を制限付権限プロセス領域に記録することとなる。
【００１１】
しかしながら、制限付権限プロセス領域で用いられるファイルやプログラム等は、カーネル特権プロセス領域と比較して、悪意の目的を持って端末装置を利用する悪意者から改竄される恐れが高い。例えば、バッファオーバーフロー攻撃等を利用して端末装置の管理者権限を取得した悪意者は、制限付権限プロセス領域内のファイルやプログラム等を改竄することができる。このため、制限付権限プロセス領域に記録された動作履歴の信頼性は、カーネル特権プロセス領域と比較して低くなる。
【００１２】
従来からの制限付権限プロセスの動作履歴は、制限付権限プロセス領域で保護されている。このため、上記悪意者が端末装置の管理者権限を取得することにより、動作履歴の正当性を検証するための電子署名等の検証情報が破壊、又は当該検証情報を作成する処理自体が改竄されるという安全性が損なわれる恐れが生じていた。
【００１３】
この点を解決するためには、制限付権限プロセスではなくカーネル特権プロセスが制限付権限プロセスの動作履歴を上記バッファオーバーフロー攻撃等から保護する方法が考えられる。１つ目の方法としては、カーネル特権プロセスが制限付権限プロセスの動作を監視し、当該カーネル特権プロセスが制限付権限プロセスの動作履歴を取得してその動作履歴を記録する方法が考えられる。２つ目としては、制限付権限プロセスの動作履歴の正当性を保証するために、カーネル特権プロセスが全ての制限付権限プロセスの動作履歴に対する電子署名をカーネル特権プロセス領域に記録することが考えられる。
【００１４】
ところが、１つ目の方法では、カーネル特権プロセス自体が記録する制限付権限プロセスの動作履歴は、制限付権限プロセス自体が記録する制限付権限プロセスの動作履歴と比較して、利用者にとって理解し難い言語体系で構成されており、有用性に乏しい。
【００１５】
一方、２つ目の方法では、上記端末装置がマルチタスクのオペレーティングシステムを実行することができる場合には、通常は同時並行して多数の制限付権限プロセスが動作することとなる。従って、カーネル特権プロセスが、「全て」の制限付権限プロセスの動作履歴に対して電子署名を施し、その電子署名をカーネル特権プロセス領域で記憶することとなると、カーネル特権プロセスは、カーネル特権プロセス自体の処理量を増大させてしまい、端末装置のシステム全体に対する深刻な性能劣化を引き起こす場合がある。
【００１６】
そこで、本発明は以上の点に鑑みて成されたものであり、システム全体の性能劣化を抑制しつつ、プロセスの動作履歴をバッファオーバーフロー攻撃等から安全に保護することができる動作履歴保護装置及び動作履歴保護プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
上記課題を解決するために、本発明の第１の特徴は、オペレーティングシステムの各種機能を利用することができる特権レベルに基づいて動作するカーネル特権プロセスを制御するカーネル特権プロセス処理部と、特権レベルよりも低い制限付権限レベルであり、各種機能の一部のみを利用することができる制限付権限レベルに基づいて動作する制限付権限プロセスを制御する制限付権限プロセス処理部とを備え、制限付権限プロセス処理部は、制限付権限プロセスの動作の履歴を制限付権限プロセス処理部に記録し、カーネル特権プロセス処理部は、制限付権限プロセス処理部に記録される動作の履歴のうちの特定動作の履歴をカーネル特権プロセス処理部に記録することを要旨とする。
【００１８】
かかる特徴によれば、カーネル特権プロセス処理部が制限付権限プロセスの「全ての動作」の履歴を保護するのではなく、制限付権限プロセスの全ての動作のうちの「特定動作」の履歴をカーネル特権プロセス処理部に記録する。これにより、動作履歴保護装置は、カーネル特権プロセス処理部における処理負担を増大させないようにすることができる。このため、動作履歴保護装置は、制限付権限プロセスの「特定動作」の履歴をカーネル特権プロセス処理部内で記録することにより、システム全体の性能劣化を抑制しつつ、制限付権限プロセスの特定動作の履歴をバッファオーバーフロー攻撃等から安全に保護することができる。
【００１９】
本発明の第２の特徴は、特定動作がオペレーティングシステムの設定に関する動作であることを要旨とする。
【００２０】
本発明の第３の特徴は、制限付権限プロセスが第１プロセスと第２プロセスとを含んでおり、カーネル特権プロセス処理部が、第１プロセスと第２プロセスとのプロセス間通信が実行中である場合には、第１プロセスと第２プロセスとのそれぞれの特定動作の履歴をカーネル特権プロセス処理部に記録することを要旨とする。
【００２１】
本発明の第４の特徴は、制限付権限プロセスが第１プロセスと第２プロセスとを含んでおり、カーネル特権プロセス処理部が、第１プロセスの特定動作が実行中であるときに、第１プロセスに基づいて生成された第２プロセスの特定動作が実行中である場合には、第１プロセスと第２プロセスとのそれぞれの特定動作の履歴をカーネル特権プロセス処理部に記録することを要旨とする。
【００２２】
本発明の第５の特徴は、カーネル特権プロセス処理部が、特定動作を実行中である制限付権限プロセスの信頼性の度合を示す信頼度の大きさに応じて、特定動作の履歴をカーネル特権プロセス処理部に記録するか否か決定することを要旨とする。
【００２３】
本発明の第６の特徴は、カーネル特権プロセス処理部が、カーネル特権プロセス処理部のみが参照可能な鍵情報を用いることにより、制限付権限プロセス処理部に記録される特定動作の履歴を暗号化することを要旨とする。
【００２４】
本発明の第７の特徴は、カーネル特権プロセス処理部が、制限付権限プロセス処理部に記録される特定動作の履歴の複製をカーネル特権プロセス処理部に記録することを要旨とする。
【００２５】
本発明の第８の特徴は、カーネル特権プロセス処理部が、制限付権限プロセス処理部に記録される特定動作の履歴のハッシュ値をカーネル特権プロセス処理部に記録することを要旨とする。
【００２６】
本発明の第９の特徴は、カーネル特権プロセス処理部が、信頼度の大きさに応じて、制限付権限プロセス処理部に記録される特定動作の履歴の複製をカーネル特権プロセス処理部に記録する処理、又は制限付権限プロセス処理部に記録される特定動作の履歴のハッシュ値をカーネル特権プロセス処理部に記録する処理のいずれかを決定することを要旨とする。
【００２７】
本発明の第１０の特徴は、カーネル特権プロセス処理部が、制限付権限プロセス処理部に記録された特定動作の履歴のハッシュ値とカーネル特権プロセス処理部に記録したハッシュ値とが同一である場合には、特定動作の履歴が正当な履歴であると判定することを要旨とする。
【００２８】
本発明の第１１の特徴は、カーネル特権プロセス処理部は、制限付権限プロセスが実行中の特定動作を検出する特定動作検出部と、検出された特定動作の履歴が保護対象であることを個々に識別するための固有の識別情報を発行する識別情報発行部と、制限付権限プロセスの動作の履歴の保護を要求するための動作履歴保護要求情報を制限付権限プロセスから取得したことに基づいて、動作履歴保護要求情報の要求元の制限付権限プロセスのプロセスＩＤが識別情報に含まれている場合には、制限付権限プロセスの特定動作の履歴をカーネル特権プロセス処理部に記録させる動作履歴記録部とを備えることを要旨とする。
【００２９】
本発明の第１２の特徴は、特定動作検出部が、制限付権限プロセスが発行したシステムコールに特定のライブラリ関数が含まれている場合には、制限付権限プロセスが実行中の特定動作を検出することを要旨とする。
【００３０】
本発明の第１３の特徴は、特定動作検出部が単位時間当りに特定動作を検出した検出回数を算出するものであり、算出された検出回数が予め設定された設定回数を超えている場合には、動作履歴記録部により動作履歴保護要求情報が取得された後の動作履歴記録部における処理の開始を所定時間遅延させる遅延処理部を備えることを要旨とする。
【００３１】
本発明の第１４の特徴は、識別情報発行部は、制限付権限プロセスが発行したシステムコールに含まれる特定のライブラリ関数の種類、及び制限付権限プロセスの信頼性の度合を示す信頼度の大きさに応じて、識別情報を発行するか否か決定することを要旨とする。
【００３２】
本発明の第１５の特徴は、動作履歴保護要求情報が第１動作履歴保護要求情報と第２動作履歴保護要求情報とを含んでおり、第１動作履歴保護要求情報が制限付権限プロセスの動作の履歴の記録先に対するアクセス権の付与を要求するためのシステムコールであり、第２動作履歴保護要求情報がアクセス権が付与された記録先に対して制限付権限プロセスの動作の履歴を記録するためのシステムコールであり、動作履歴記録部が、第１動作履歴保護要求情報の要求元の制限付権限プロセスのプロセスＩＤが識別情報に含まれている場合には、第２動作履歴保護要求情報に含まれている制限付権限プロセスの動作の履歴をカーネル特権プロセス処理部に記録させることを要旨とする。
【００３３】
本発明の第１６の特徴は、動作履歴保護要求情報が第３動作履歴保護要求情報を含んでおり、第３動作履歴保護要求情報がアクセス権が付与された記録先に対するアクセス権の解除を要求するためのシステムコールであり、動作履歴記録部が、第３動作履歴保護要求情報を制限付権限プロセスから取得した場合には、動作履歴記録部の処理を終了することを要旨とする。
【発明の効果】
【００３４】
本発明の特徴によれば、システム全体の性能劣化を抑制しつつ、プロセスの動作履歴をバッファオーバーフロー攻撃等から安全に保護することができる。
【発明を実施するための最良の形態】
【００３５】
［第１実施形態］
（動作履歴保護装置の構成）
図１は、本実施形態における動作履歴保護装置１００の概略構成図である。図１に示すように、動作履歴保護装置１００は、制限付権限プロセス処理部２００と、カーネル特権プロセス処理部３００とを備えている。
【００３６】
制限付権限プロセス処理部２００は、オペレーティングシステムの各種機能を利用することができる特権レベルよりも低い制限付権限レベルであり、各種機能の一部のみを利用することができる制限付権限レベルに基づいて動作するプロセス２１０を制御する。なお、プロセス２１０は、制限付権限プロセスを構成する。
【００３７】
制限付権限プロセス処理部２００は、プロセス２１０と、動作履歴記録部２２０とを備えている。プロセス２１０は、プロセス２１０の動作履歴を動作履歴記録部２２０に順次記録する。
【００３８】
カーネル特権プロセス処理部３００は、オペレーティングシステムの各種機能を利用することができる特権レベルに基づいて動作するカーネル特権プロセスを制御する。
【００３９】
カーネル特権プロセス処理部３００は、特定動作検出部３１０と、識別情報発行部３２０と、動作履歴保護規則情報記憶部３３０と、動作履歴保護要求情報検出部３４０と、監視リスト情報記憶部３５０と、動作履歴保護制御部３６０と、保護情報記録部３７０とを備えている。なお、特定動作検出部３１０、識別情報発行部３２０、動作履歴保護要求情報検出部３４０及び動作履歴保護制御部３６０は、カーネル特権プロセスを構成する。
【００４０】
特定動作検出部３１０は、プロセス２１０が実行中の特定動作を検出する。例えば、特定動作検出部３１０は、プロセス２１０が発行したシステムコール（後述するライブラリ関数呼出システムコール２３０など）に特定のライブラリ関数が含まれている場合には、プロセス２１０が実行中の特定動作を検出する。
【００４１】
識別情報発行部３２０は、特定動作検出部３１０により検出された特定動作に基づいて、当該特定動作の履歴が保護対象であることを個々に識別するための固有の識別情報３２１を発行する。
【００４２】
又は、識別情報発行部３２０は、後述する動作履歴保護規則情報３３１を参照し、プロセス２１０が発行したシステムコールに含まれる特定のライブラリ関数の種類、及びプロセスの信頼性の度合を示す信頼度の大きさに応じて、識別情報３２１を発行するか否か決定する。
【００４３】
動作履歴保護規則情報記憶部３３０は、図２に示す動作履歴保護規則情報３３１を記憶する。図２に示すように、動作履歴保護規則情報３３１は、プロセス２１０の特定動作に関するライブラリ関数と、そのライブラリ関数を呼び出したプロセス２１０の特定動作の履歴を保護対象とするか否か決定するための動作履歴保護規則とにより構成されている。
【００４４】
ここで、動作履歴保護規則は、プロセス２１０の信頼度により定められている。プロセス２１０の信頼度は、プロセス２１０を生成したプログラムの信頼性の度合により決定される。
【００４５】
本実施形態では、例えば、プログラムが任意のベンダーから提供された場合には、プログラムの信頼性は低い場合が多いため、当該プログラムが生成したプロセス２１０の信頼度は「低」に設定される。プログラムが一定実績のあるベンダーから提供された場合には、プログラムの信頼性は任意のベンダーから提供されたプログラムよりも高いため、当該プログラムが生成したプロセス２１０の信頼度は「中」に設定される。プログラムが予めシステムに設定されている場合には、プログラムの信頼性は一定実績のあるベンダーから提供されたプログラムよりも高いため、当該プログラムが生成したプロセス２１０の信頼度は「高」に設定される。
【００４６】
図３は、本実施形態における識別情報３２１の内容を示す図である。図３に示すように、識別情報３２１は、特定動作を実行中であるプロセス２１０を個々に識別するための固有のプロセスＩＤと、プロセス２１０が特定動作を実行中に呼び出したライブラリ関数とにより構成されている。
【００４７】
動作履歴保護要求情報検出部３４０は、プロセス２１０の動作履歴の保護を要求するための動作履歴保護要求情報をプロセス２１０から取得したことに基づいて、識別情報３２１及び監視リスト情報３５１を参照し、特定の動作履歴保護要求情報（後述する第２動作履歴保護要求情報）のみを動作履歴保護制御部３６０に送信する。
【００４８】
動作履歴保護制御部３６０は、動作履歴保護要求情報検出部３４０により取得された特定の動作履歴保護要求情報に基づいて、該動作履歴保護要求情報に含まれているプロセス２１０の特定動作の履歴を保護情報記録部３７０に記録する。
【００４９】
本実施形態では、動作履歴保護要求情報は、第１動作履歴保護要求情報（後述するｏｐｅｎシステムコール２４０）と、第２動作履歴保護要求情報（後述するｗｒｉｔｅシステムコール２５０）と、第３動作履歴保護要求情報（後述するｃｌｏｓｅシステムコール２６０）とを含んでいる。
【００５０】
動作履歴保護要求情報検出部３４０は、第１動作履歴保護要求情報（ｏｐｅｎシステムコール２４０）の要求元のプロセス２１０のプロセスＩＤが識別情報に含まれいる場合には、第２動作履歴保護要求情報（ｗｒｉｔｅシステムコール２５０）を動作履歴保護制御部３６０に送信する。動作履歴保護制御部３６０は、動作履歴保護要求情報検出部３４０から送信された第２動作履歴保護要求情報に基づいて、当該第２動作履歴保護要求情報に含まれているプロセス２１０の動作履歴を保護情報記録部３７０に記録する。
【００５１】
動作履歴保護制御部３６０は、動作履歴保護要求情報検出部３４０から送信された第３動作履歴保護要求情報（ｃｌｏｓｅシステムコール２６０）に基づいて、動作履歴保護制御部３６０の処理を終了する。
【００５２】
なお、動作履歴保護要求情報検出部３４０と、監視リスト情報記憶部３５０と、動作履歴保護制御部３６０と、保護情報記録部３７０とは、動作履歴記録部を構成する。
【００５３】
（動作履歴保護装置の動作）
次に、本実施形態における動作履歴保護装置１００の動作について図４を参照しながら説明する。
【００５４】
図４に示すように、Ｓ１０１において、特定動作検出部３１０は、プロセス２１０が実行中の特定動作を検出する。ここで、プロセス２１０が実行中の特定動作とは、プロセス２１０が予め設定された特定のライブラリ関数を呼び出している動作である。当該特定動作には、オペレーティングシステムの設定に関する動作などが含まれている。
【００５５】
本実施形態では、ライブラリ関数を記述するコードの先頭にライブラリ関数呼出システムコール２３０（図１参照）が設定されている。ライブラリ関数呼出システムコール２３０は、ライブラリ関数を特定するための情報を備えており、プロセス２１０が呼び出す特定のライブラリ関数名と、プロセス２１０が特定のライブラリ関数を呼び出すか否か判定するためのフラグとを含んでいる。
【００５６】
フラグは、プロセス２１０が特定のライブラリ関数を呼び出す場合には「１」となり、プロセス２１０が特定のライブラリ関数を呼び出さない場合には「０」となる。ライブラリ関数呼出システムコール２３０の一例を以下に示す。
【００５７】
Func_CALL（“ライブラリ関数名”，フラグ）
例えば、特定動作検出部３１０は、プロセス２１０が発行したライブラリ関数呼出システムコール２３０を取得する。特定動作検出部３１０は、ライブラリ関数呼出システムコール２３０に含まれているフラグが「１」である場合には、ライブラリ関数呼出システムコール２３０に含まれている“ライブラリ関数名”に対応する特定のライブラリ関数をプロセス２１０が呼び出していることを検出する。この場合には、特定動作検出部３１０は、プロセス２１０が特定のライブラリ関数を呼び出していることを検出することにより、プロセス２１０が特定動作を実行中であることを検出することができる。
【００５８】
Ｓ１０３において、特定動作検出部３１０は、プロセス２１０が特定動作を実行中であることを示す情報を検出結果情報として識別情報発行部３２０に送信する。検出結果情報には、特定動作を実行中であるプロセス２１０を個々に識別するための固有のプロセスＩＤ、及び当該プロセス２１０が呼び出した特定のライブラリ関数が含まれている。
【００５９】
Ｓ１０５において、識別情報発行部３２０は、検出結果情報に基づいて、検出結果情報に含まれているライブラリ関数の種類、及び特定動作の実行中のプロセスの信頼度の大きさに応じて、識別情報３２１を発行するか否か決定する。
【００６０】
例えば、検出結果情報に含まれているライブラリ関数が「func_1」であり、そのライブラリ関数「func_1」を呼び出したプロセス２１０のプロセスＩＤが「３８２８」である場合を考える。この場合には、識別情報発行部３２０は、図２に示す動作履歴保護規則情報を参照し、当該ライブラリ関数「func_1」に対応する動作履歴保護規則が「全てのプロセスについて保護する」という規則であるため、当該検出結果情報に対応する識別情報３２１を発行することを決定する。識別情報発行部３２０は、プロセスＩＤ「３８２８」及びライブラリ関数「func_1」により構成される識別情報３２１を発行する（図３参照）。
【００６１】
Ｓ１０７において、識別情報発行部３２０は、発行した識別情報３２１を動作履歴保護要求情報検出部３４０に送信する。
【００６２】
Ｓ１０９において、動作履歴保護要求情報検出部３４０は、識別情報３２１に基づいて、プロセス２１０により送信された「特定の動作履歴保護要求情報」を検出する。
【００６３】
ここで、動作履歴保護要求情報は、プロセス２１０から３段階に渡って送信される。以下では各段階で送信される動作履歴保護要求情報について説明する。本実施形態では２段階目に送信された動作履歴保護要求情報が、上記「特定の動作履歴保護要求情報」として検出される。なお、図５に示す順序でライブラリ関数が記述されている。
【００６４】
（１）１段階目に送信される動作履歴保護要求情報
１段階目に送信される動作履歴保護要求情報（第１動作履歴保護要求情報）は、プロセス２１０の動作履歴の記録先（動作履歴記録部２２０内の記録先）に対するアクセス権の付与を要求するためのｏｐｅｎシステムコール２４０（図１参照）である。ｏｐｅｎシステムコール２４０の一例を以下に示す。
【００６５】
ｏｐｅｎ（“ファイルのｐａｔｈ名”，“アクセス権”，“ファイルパーミッション”，“フラグ”）
上記の通りｏｐｅｎシステムコール２４０は、プロセス２１０の動作履歴の記録先である“ファイルのｐａｔｈ名”と、必要に応じて設定されるアクセス権（追加書込みを行う場合のアクセス権）と、システム内で一意にファイルを識別するためのファイルパーミッションと、システムコールが動作履歴保護要求情報に関するｏｐｅｎシステムコール２４０であるか否か判定するためのフラグとを含んでいる。
【００６６】
フラグは、システムコールが動作履歴保護要求情報に関するｏｐｅｎシステムコール２４０である場合には「１」となり、システムコールが動作履歴保護要求情報に関するｏｐｅｎシステムコール２４０でない場合には「０」となる。
【００６７】
動作履歴保護要求情報検出部３４０は、フラグ「１」が設定されたｏｐｅｎシステムコール２４０をプロセス２１０から取得した場合に、ｏｐｅｎシステムコール２４０の発行元のプロセス２１０のプロセスＩＤを含む識別情報３２１が発行されている場合には、そのプロセスＩＤと、ｏｐｅｎシステムコール２４０に含まれている“ファイルのｐａｔｈ名”に対応するファイルディスクリプタとを監視リスト情報３５１に登録する。
【００６８】
例えば、以下に示すｏｐｅｎシステムコール２４０を考える。
【００６９】
ｏｐｅｎ（“var/log/xxx”，“0_WONLY｜0_APPEND”，“0644”，“1”）
上記のｏｐｅｎシステムコール２４０がプロセスＩＤ「３８２８」のプロセス２１０により発行された場合には、動作履歴保護要求情報検出部３４０は、図３に示す識別情報３２１にプロセスＩＤ「３８２８」が含まれているため、当該プロセスＩＤ「３８２８」と「var/log/xxx」に対応するファイルディスクリプタ「１１」とを監視リスト情報３５１（図６参照）に登録する。
【００７０】
（２）２段階目に送信される動作履歴保護要求情報
２段階目に送信される動作履歴保護要求情報（第２動作履歴保護要求情報）は、アクセス権が付与された記録先に対してプロセス２１０の動作履歴を記録するためのｗｒｉｔｅシステムコール２５０（図１参照）である。ｗｒｉｔｅシステムコール２５０の一例を以下に示す。
【００７１】
ｗｒｉｔｅ（“記録先のファイルディスクリプタ”，“記録内容”，“記録サイズ”）
上記の通りｗｒｉｔｅシステムコール２５０は、一般的に用いられるｗｒｉｔｅシステムコールと同様の内容である。
【００７２】
動作履歴保護要求情報検出部３４０は、ｗｒｉｔｅシステムコール２５０をプロセス２１０から取得した場合に、ｗｒｉｔｅシステムコール２５０の発行元のプロセス２１０のプロセスＩＤ及び“登録先のファイルディスクリプタ”が監視リスト情報３５１に登録されている場合には、ｗｒｉｔｅシステムコール２５０を上記特定の動作履歴保護要求情報として検出する。
【００７３】
例えば、以下に示すｗｒｉｔｅシステムコール２５０を考える。
【００７４】
ｗｒｉｔｅ（“11”，“記録内容”，“10”）
上記のｗｒｉｔｅシステムコール２５０がプロセスＩＤ「３８２８」のプロセス２１０により発行された場合には、動作履歴保護要求情報検出部３４０は、図６に示す監視リスト情報３５１に、プロセスＩＤ「３８２８」及びファイルディスクリプタ「１１」が含まれているため、ｗｒｉｔｅシステムコール２５０を上記特定の動作履歴保護要求情報として検出する。
【００７５】
（３）３段階目に送信される動作履歴保護要求情報
３段階目に送信される動作履歴保護要求情報（第３動作履歴保護要求情報）は、アクセス権が付与された記録先に対するアクセス権の解除を要求するためのｃｌｏｓｅシステムコール２６０（図１参照）である。ｃｌｏｓｅシステムコール２６０の一例を以下に示す。
【００７６】
ｃｌｏｓｅ（“記録先のファイルディスクリプタ”）
上記の通りｃｌｏｓｅシステムコール２６０は、一般的に用いられるｃｌｏｓｅシステムコールと同様の内容を含んでいる。
【００７７】
動作履歴保護要求情報検出部３４０は、ｃｌｏｓｅシステムコール２６０をプロセス２１０から取得した場合に、ｃｌｏｓｅシステムコール２６０の発行元のプロセス２１０のプロセスＩＤ、及び“記録先のファイルディスクリプタ”が監視リスト情報３５１に登録されている場合には、当該プロセスＩＤ及び“記録先のファイルディスクリプタ”により構成される登録内容を監視リスト情報３５１の中から消去する。
【００７８】
例えば、以下に示すｃｌｏｓｅシステムコール２６０を考える。
【００７９】
ｃｌｏｓｅ（“11”）
上記のｃｌｏｓｅシステムコール２６０がプロセスＩＤ「３８２８」のプロセス２１０により発行された場合には、動作履歴保護要求情報検出部３４０は、図６に示す監視リスト情報３５１に、プロセスＩＤ「３８２８」及びファイルディスクリプタ「１１」により構成される登録内容を監視リスト情報３５１の中から消去する。当該登録内容が消去された後の監視リスト情報３５１は、図７に示す通りである。
【００８０】
Ｓ１１３において、動作履歴保護要求情報検出部３４０は、検出した動作履歴保護要求情報（ｗｒｉｔｅシステムコール２５０）を検出結果情報として動作履歴保護制御部３６０に送信する。
【００８１】
Ｓ１１５において、動作履歴保護制御部３６０は、検出結果情報（ｗｒｉｔｅシステムコール２５０）に含まれている“記録内容（プロセス２１０の特定動作の履歴）”を保護する。例えば、動作履歴保護制御部３６０は、検出結果情報に含まれている“記録内容”のハッシュ値を保護情報記録部３７０に記録させたり、検出結果情報に含まれている“記録内容”をそのまま保護情報記録部３７０に記憶させる。これらの保護の手法については、後述の実施形態において詳細に説明する。
【００８２】
かかる特徴によれば、カーネル特権プロセス処理部３００がプロセス２１０の「全ての動作」の履歴を記録するのではなく、プロセス２１０の全ての動作のうちの「特定動作」の履歴をカーネル特権プロセス処理部３００に記録する。これにより、動作履歴保護装置１００は、カーネル特権プロセス処理部３００における処理負担を増大させないようにすることができる。このため、動作履歴保護装置１００は、プロセス２１０の「特定動作」の履歴をカーネル特権プロセス処理部３００内で記録することにより、システム全体の性能劣化を抑制しつつ、プロセス２１０の特定動作の履歴をバッファオーバーフロー攻撃等から安全に保護することができる。
【００８３】
また、カーネル特権プロセス処理部３００は、プロセス２１０が特定動作を実行しているか否かについて常に監視していなくても、ｏｐｅｎシステムコール２４０及びｃｌｏｓｅシステムコール２６０を取得するだけで、プロセス２１０の特定動作の開始・終了を検出することができる。このため、カーネル特権プロセス処理部３００は、カーネル特権プロセス処理部３００の処理負担を増大させないようにすることができ、システム全体の性能劣化を抑制することができる。
【００８４】
また、カーネル特権プロセス処理部３００は、プロセス２１０が発行した特定のライブラリ関数の種類、及び当該プロセス２１０の信頼度の大きさに応じて、プロセス２１０の特定動作の履歴をカーネル特権プロセス処理部３００に記録（保護）するか否か決定する。
【００８５】
例えば、カーネル特権プロセス処理部３００は、システムに元々格納されている信頼度の高いプログラムにより生成されたプロセス２１０の特定動作の履歴を保護せずに、システムに元々格納されておらず、システムに障害を及ぼす可能性の高いプログラムより生成されたプロセス２１０の特定動作の履歴をカーネル特権プロセス処理部３００に記録する。
【００８６】
これにより、カーネル特権プロセス処理部３００は、必要以上にプロセス２１０の特定動作の履歴を記録しないため、カーネル特権プロセス処理部３００の処理負担を増大させないようにすることができる。
【００８７】
（変更例１）
なお、本実施形態における動作履歴保護装置１００は、上記内容に限定されずに以下に示す変更を加えることができる。本変更例では、動作履歴保護装置１００は、プロセス２１０の特定動作の履歴に対応する識別情報３２１を既に発行しているときに、（１）プロセス２１０が呼び出したライブラリ関数の処理が終了した場合又は（２）プロセス２１０が他のライブラリ関数を呼び出した場合）には、以下に示すように識別情報３２１が削除又は追加される。
【００８８】
図８は、本変更例における動作履歴保護装置１００の内部構成を示す図である。図８に示す特定動作検出部３１０及び識別情報発行部３２０の機能が図１に示す同各部の機能と異なるだけであり、図８に示す特定動作検出部３１０及び識別情報発行部３２０以外の機能は図１に示す同各部の機能と同様である。このため、特定動作検出部３１０及び識別情報発行部３２０のみの処理について、上記（１）及び上記（２）のそれぞれに分けて説明する。
【００８９】
（１）プロセス２１０が呼び出したライブラリ関数の処理が終了した場合
特定動作検出部３１０は、フラグが「０」に設定されたライブラリ関数呼出システムコールをライブラリ関数終了システムコール２３１としてプロセス２１０から取得することにより、プロセス２１０が呼び出したライブラリ関数の処理が終了（すなわち、プロセス２１０の特定動作が終了）したことを検出する。
【００９０】
例えば、特定動作検出部３１０は、プロセスＩＤ「３８２８」のプロセス２１０が発行したライブラリ関数終了システムコール２３１を取得することにより、当該プロセスＩＤ「３８２８」のプロセス２１０が呼び出したライブラリ関数「func_1」の処理が終了したことを検出する。識別情報発行部３２０は、既に発行した識別情報３２１の中から、プロセスＩＤ「３８２８」の行からなる識別情報３２１を消去する（図９参照）。その後の処理については第１実施形態と同様の処理であるため、ここでの詳細な説明は省略する。
【００９１】
かかる特徴によれば、カーネル特権プロセス処理部３００は、プロセス２１０の特動作の終了を常に監視しなくても、プロセス２１０が発行したライブラリ関数終了システムコール２３１のみを取得するだけで、プロセス２１０の特定動作が終了したことを検出することができるため、カーネル特権プロセス処理部３００の処理負担を増大させないようにすることができる。
【００９２】
（２）プロセス２１０が他のライブラリ関数を呼び出した場合  
特定動作検出部３１０は、フラグが「１」に設定されたライブラリ関数呼出システムコール２３０を更に取得することにより、プロセス２１０が他のライブラリ関数を呼び出したことを検出する。
【００９３】
例えば、特定動作検出部３１０は、更に取得したライブラリ関数呼出システムコール２３０に基づいて、プロセスＩＤ「３８２８」のプロセス２１０がライブラリ関数「func_2」を更に呼び出したことを検出する。この場合には、識別情報発行部３２０は、プロセスＩＤ「３８２８」のある行にライブラリ関数「func_2」を追加し、プロセスＩＤ「３８２８」及びライブラリ関数「func_2」により構成される識別情報３２１を発行する（図１０参照）。その後の処理については第１実施形態と同様の処理であるため、ここでの詳細な説明は省略する。
【００９４】
かかる特徴によれば、カーネル特権プロセス処理部３００は、プロセス２１０がさらに他のライブラリ関数を呼び出すことにより、当該他のライブラリ関数に対応する識別情報をさらに発行する。これにより、カーネル特権プロセス処理部３００は、更に発行した識別情報を用いて、当該他のライブラリ関数を呼び出したプロセス２１０の特定動作の履歴もカーネル特権プロセス処理部３００に記録することができる。
【００９５】
（変更例２）
なお、本実施形態における動作履歴保護装置１００は、上記内容に限定されずに以下に示す変更を加えることができる。本変更例における動作履歴保護装置１００は、第１プロセスと第２プロセスとのプロセス間通信が実行中である場合には、第１プロセスと第２プロセスとのそれぞれの特定動作の履歴に対応する識別情報３２１を発行してもよい。
【００９６】
ここでは、第１プロセスであるプロセス２１１の特定動作の履歴に対応する識別情報３２１、第２プロセスであるプロセス２１０の動作の履歴に対応する識別情報３２１が既に発行されていることを前提にして説明する。
【００９７】
本変更例では、プロセス２１１とプロセス２１０とがプロセス間通信を実行することにより、プロセス２１１が特定動作を実行中にアクセスしたリソースがプロセス２１０に渡されることがある。このため、当該プロセス２１０は、当該リソースに対してアクセスすることがあり、プロセス２１１と同等の特定動作を実行することがある。これにより、動作履歴保護装置１００は、当該プロセス２１０の特定動作の履歴に対応する識別情報３２１を、プロセス２１１の特定動作の履歴に対応する識別情報３２１と同等のものとして新たに発行する必要がある。以下ではここまでの処理について詳細に説明する。
【００９８】
図１１は、本変更例における動作履歴保護装置１００の内部構成を示す図である。図１１に示す特定動作検出部３１０及び識別情報発行部３２０の機能が図１に示す同各部の機能と異なるだけであり、図１１に示す特定動作検出部３１０及び識別情報発行部３２０以外の機能は図１に示す同各部の機能と同様である。このため、特定動作検出部３１０及び識別情報発行部３２０のみの処理について説明する。
【００９９】
図１２は、本変更例における識別情報３２１の内容を示す図である。図１２に示すように、図３に示す識別情報３２１に対して「送信側ファイルディスクリプタ」及び「受信元プロセスＩＤ」がさらに加えられている。「送信側ファイルディスクリプタ」には、送信側のプロセスがｐｉｐｅ等を生成した際のファイルディスクリプタが記録される。「受信元プロセスＩＤ」には、受信側のプロセスが送信側のデータを受信した場合に受信側のプロセスＩＤが送信側のプロセスＩＤとして記録される。
【０１００】
以下では、プロセスＩＤ「３８２８」のプロセス２１０が、プロセス間通信におけるデータの受信側であるとする。プロセスＩＤ「１１５５６」のプロセス２１１が、プロセス間通信における送信側であるとする。この場合に、ｐｉｐｅを用いたプロセス間通信が実行されたことを例にして説明する。
【０１０１】
ｐｉｐｅの受信用ファイルディスクリプタの格納先をpp[0]、送信用ファイルディスクリプタの格納先をpp[1]とすると、プロセス２１１（送信側）は、先ず以下のプロセス間通信システムコール２３２を発行する。なお、上記送信用ファイルディスクリプタの値は「２１」であるものとする。
【０１０２】
ｐｉｐｅ（pp）；パイプの生成
特定動作検知部１１０は、プロセスＩＤ「１１５５６」のプロセス２１１（送信側）が発行したプロセス間通信システムコール２３２を取得し、プロセスＩＤ「１１５５６」に対応する送信用ファイルディスクリプタの値に「２１」を設定する（図１３に示す識別情報を参照）。
【０１０３】
そして、プロセス２１１（送信側）が生成したｐｉｐｅを利用して、プロセス２１０（受信側）がプロセス２１１（送信側）のデータを受信する場合には、プロセス２１１及びプロセス２１０は以下のシステムコールを発行する。
【０１０４】
ｗｒｉｔｅ（pp[1]，outmsg，strlen(msg)）；データの送信（プロセス２１１）
ｒｅａｄ（pp[0]，inmsg，strlen(msg)）；データの受信（プロセス２１０）
特定動作検出部３１０は、pp[0]の値「２１」が設定されたreadシステムコールを取得したことに基づいて、プロセス２１１（送信側）からプロセス２１０（受信側）にデータが送信されたことを検出する。この場合には、プロセス２１０（受信側）は、プロセス２１１（送信側）が呼び出したライブラリ関数（func_2）を継承することとなる。
【０１０５】
このため、識別情報発行部３２０は、プロセス２１０のプロセスＩＤ「３８２８」、及び継承後のライブラリ関数「func_2」により構成される新たな識別情報３２１を追加し、当該新たな識別情報３２１における送信元プロセスＩＤに「１１５５６」を設定する（図１４参照）。なお、プロセス２１１のプロセスＩＤ「１１５５６」が設定された識別情報３２１が消去された場合には、上記新たな識別情報３２１も消去される。
【０１０６】
その後の処理については第１実施形態と同様の処理であるため、ここでの詳細な説明は省略する。
【０１０７】
かかる特徴によれば、カーネル特権プロセス処理部３００は、プロセス２１０（受信側）の特定動作の履歴に対応する識別情報３２１を発行していても（図１４に示す１段目の識別情報）、さらに当該プロセス２１０（受信側）の特定動作の履歴に対応する識別情報３２１を、プロセス２１１（送信側）の特定動作の履歴に対応する識別情報と同等の識別情報（図１４に示す２段目の識別情報）として新たに発行する。
【０１０８】
これにより、カーネル特権プロセス処理部３００は、プロセス間通信を実行しているプロセス２１０（受信側）の特定動作の履歴に対応する識別情報を適切に発行することができるため、プロセス間通信を実行しているプロセス２１１（送信側）及びプロセス２１０（受信側）のそれぞれの特定動作の履歴を適切に記録することができる。
【０１０９】
（変更例３）
なお、本実施形態における動作履歴保護装置１００は、上記内容に限定されずに以下に示す変更を加えることができる。本変更例における動作履歴保護装置１００は、第１プロセスの特定動作が実行中であるときに、当該第１プロセスに基づいて生成された第２プロセスの特定動作が実行中である場合には、当該第１プロセスと第２プロセスとのそれぞれの特定動作の履歴に対応する識別情報３２１を発行してもよい
図１５は、本変更例における動作履歴保護装置１００の内部構成を示す図である。図１５に示す特定動作検出部３１０及び識別情報発行部３２０の機能が図１に示す同各部の機能と異なるだけであり、図１５に示す特定動作検出部３１０及び識別情報発行部３２０以外の機能は図１に示す同各部の機能と同様である。このため、特定動作検出部３１０及び識別情報発行部３２０のみの処理について説明する。
【０１１０】
特定動作検出部３１０は、既に発行されている識別情報３２１を構成するプロセスＩＤのプロセス２１０が発行した子プロセス生成システムコール２３４を取得し、プロセス２１０に基づいて子プロセス２３３が生成されたことを検出する。
【０１１１】
本実施形態における子プロセス生成システムコール２３４は、プロセス２１０（いわゆる親プロセス）を複製することにより子プロセス２３３を生成するためのシステムコールである。子プロセス生成システムコール２３４には、forkシステムコール、cloneシステムコール等が含まれている。
【０１１２】
識別情報発行部３２０は、プロセス２１０に基づいて子プロセス２３３が生成された場合には、当該子プロセス２３３の特定動作の履歴に対応する識別情報３２１を発行する。
【０１１３】
例えば、プロセス２１０のプロセスＩＤが「３８２８」であり、プロセス２１０に基づいて生成された子プロセス２３３のプロセスＩＤが「３８２９」である場合を考える。また、図３に示す通り、プロセスＩＤ「３８２８」及びそれに対応するライブラリ関数「func_1」が設定された識別情報３２１が既に発行されている場合を考える。
【０１１４】
識別情報発行部３２０は、親プロセスであるプロセス２１０のライブラリ関数「func_1」を複製し、子プロセス２３３のプロセスＩＤ「３８２９」及び複製したライブラリ関数「func_1」を含む識別情報３２１（図１６参照）を新たに発行する。その後の処理については第１実施形態と同様の処理であるため、ここでの詳細な説明は省略する。
【０１１５】
かかる特徴によれば、カーネル特権プロセス処理部３００は、プロセス２１０（親プロセス）に基づいて子プロセス２３３が生成されることにより、当該子プロセス２３３の特定動作の履歴に対応する識別情報３２１も発行する。このため、カーネル特権プロセス処理部３００は、プロセス２１０の識別情報及び子プロセス２３３を含む識別情報を用いて、プロセス２１０の特定動作の履歴を記録するだけではなく、子プロセス２１０の特定動作の履歴も記録することができる。
【０１１６】
［第２実施形態］
第１実施形態では、カーネル特権プロセス処理部がプロセスの特定動作の履歴を保護対象するか否か決定しているが、本実施形態では、制限付権限プロセス処理部がプロセスの特定動作の履歴を保護対象するか否か決定している点で異なる。以下、具体的に説明する。
【０１１７】
図１７は、本実施形態における動作履歴保護装置４００の概略構成図である。図１７に示すように、動作履歴保護装置４００は、制限付権限プロセス処理部５００と、カーネル特権プロセス処理部６００とを備えている。
【０１１８】
制限付権限プロセス処理部５００は、プロセス５１０と、動作履歴記録部５２０とを備えている。カーネル特権プロセス処理部６００は、特定動作検出部６１０と、識別情報発行部６２０と、動作履歴保護規則情報記憶部６３０と、動作履歴保護要求情報検出部６４０と、監視リスト情報記憶部６５０と、暗号化設定規則情報記憶部６６０と、動作履歴保護制御部６７０と、保護情報記録部６８０とを備えている。
【０１１９】
図１７に示す暗号化設定規則情報記憶部６６０が図１に示す構成に加えられ、及び動作履歴保護制御部６７０の機能が図１に示す同部の機能と異なるだけである。図１７に示す暗号化設定規則情報記憶部６６０及び動作履歴保護制御部６７０以外の機能は図１に示す同各部の機能と同様である。このため、暗号化設定規則情報記憶部６６０及び動作履歴保護制御部６７０のみの処理について説明する。
【０１２０】
本実施形態で用いられるｗｒｉｔｅシステムコール５４０の一例を以下に示す。
【０１２１】
ｗｒｉｔｅ（“記録先のファイルディスクリプタ”，“記録内容”，“記録サイズ”，“保護フラグ”）
上記のｗｒｉｔｅシステムコール５４０には、第１実施形態のｗｒｉｔｅシステムコールの内容に加えて保護フラグが加えられている。
【０１２２】
暗号化設定規則情報記憶部６６０は、図１８に示す暗号化設定規則情報６６１を記憶している。図１８に示すように、暗号化設定規則情報６６１には、保護フラグの内容と、それに対応するプロセス５１０の動作履歴の保護方法（記録方法）の内容とが含まれている。
【０１２３】
動作履歴保護制御部６７０は、動作履歴保護要求情報検出部６４０により該当するｗｒｉｔｅシステムコール５４０が検出された場合には、当該ｗｒｉｔｅシステムコール５４０に設定されている保護フラグを参照する。動作履歴保護制御部６７０は、保護フラグが「０」である場合には、ｗｒｉｔｅシステムコール５４０に設定されている記録内容をそのままプロセス５１０に送信する。プロセス５１０は、当該記録内容を動作履歴記録部５２０に記録させる。
【０１２４】
一方、動作履歴保護制御部６７０は、保護フラグが「１」である場合には、カーネル特権プロセス処理部６００のみが参照可能な鍵情報を用いて、ｗｒｉｔｅシステムコール５４０に設定されている記録内容を暗号化し、暗号化後の記録内容を保護対象特定動作履歴としてプロセス５１０に送信する。プロセス５１０は、当該保護対象特定動作履歴を動作履歴記録部５２０に記録させる。
【０１２５】
かかる特徴によれば、カーネル特権プロセス処理部６００だけではなく、制限付権限プロセス処理部５００も保護フラグを用いてプロセス５１０の特定動作の履歴を保護対象するか否か決定することができる。これにより、動作履歴保護装置４００は、上記保護フラグを用いて、プロセス５１０の特定動作の履歴を保護対象するか否かについて「プロセス５１０側」から容易に設定させることができる。
【０１２６】
また、カーネル特権プロセス処理部６００は、プロセス５１０の特定動作の履歴を暗号化する。これにより、カーネル特権プロセス処理部６００は、プロセス５１０の特定動作（例えば、個人情報のアクセスに関する動作）の履歴が悪意者に取得されても、当該プロセス５１０の特定動作を実行させないようにすることができ、個人情報の漏洩を防止することができる。
【０１２７】
更に、プロセス５１０の特定動作の履歴を暗号化するための鍵情報が、カーネル特権プロセス処理部６００にのみ記憶されていることにより、カーネル特権プロセス処理部６００は、当該鍵情報を悪意者に容易に取得させないようにすることができる。
【０１２８】
［第３実施形態］
本実施形態では、第２実施形態におけるプロセスの動作履歴の保護方法とは異なる保護方法について説明する。
【０１２９】
図１９は、本実施形態における動作履歴保護装置７００の概略構成図である。図１９に示すように、動作履歴保護装置７００は、制限付権限プロセス処理部８００と、カーネル特権プロセス処理部９００とを備えている。
【０１３０】
制限付権限プロセス処理部８００は、プロセス８１０と、動作履歴記録部８２０とを備えている。カーネル特権プロセス処理部９００は、特定動作検出部９１０と、識別情報発行部９２０と、重要度決定規則情報記憶部９３０と、動作履歴保護規則情報記憶部９３５と、動作履歴保護要求情報検出部９４０と、監視リスト情報記憶部９５０と、保護レベル決定規則情報記憶部９６０と、動作履歴保護制御部９７０と、保護情報記録部９８０とを備えている。なお、図１９に示す各部のうち、図１に示す同一名称の部については、特段の説明をしていない限り同様の機能を有するものとする。
【０１３１】
重要度決定規則情報記憶部９３０は、図２０に示す重要度決定規則情報９３１を記憶する。図２０に示すように、重要度決定規則情報９３１には、プロセス８１０が呼び出した特定のライブラリ関数と、その特定のライブラリ関数を呼び出したプロセス８１０の信頼度と、プロセス８１０の特定動作の履歴に対する重要性の度合を示す重要度とが含まれている。
【０１３２】
識別情報発行部９２０は、図２に示す動作履歴保護規則情報９３６を参照し、プロセス８１０の特定動作の履歴に対応する識別情報９２１（図３参照）を発行する。識別情報発行部９２０は、図２０に示す重要度決定規則情報９３１を参照し、識別情報９２１に含まれるライブラリ関数に基づいて重要度を決定し、その重要度及び識別ＩＤを識別情報９２１（図２１参照）に設定する。識別情報発行部９２０は、当該識別情報９２１を動作履歴保護要求情報検出部９４０及び動作履歴保護制御部９７０に送信する。
【０１３３】
保護レベル決定規則情報記憶部９６０は、図２２に示す保護レベル決定規則情報９６１を記憶する。図２２に示すように、保護レベル決定規則情報９６１には、重要度と、その重要度に対応するプロセス８１０の動作履歴の保護方法とが含まれている。
【０１３４】
動作履歴保護制御部９７０は、動作履歴保護要求情報により動作履歴保護要求情報（ｗｒｉｔｅシステムコール８４０）が検出された場合には、当該動作履歴保護要求情報の要求元のプロセス８１０のプロセスＩＤが含まれている識別情報９２１を参照する。動作履歴保護制御部９７０は、当該識別情報９２１に設定された重要度に応じて、動作履歴保護要求情報に含まれている記録内容の保護方法を決定する。
【０１３５】
上記保護方法には、プロセス８１０の特定動作の履歴の複製をそのまま保護情報記憶部９８０に記憶する方法、プロセス８１０の特定動作の履歴に対応するハッシュ値を保護情報記憶部９８０に記録する方法などが含まれている。なお、保護情報記憶部９８０は、ハッシュ値記録部を構成する。
【０１３６】
又、動作履歴保護制御部９７０は、プロセス８１０の特定動作の履歴のハッシュ値を算出し、当該ハッシュ値を保護情報記憶部９８０に記録する。動作履歴保護制御部９７０は、動作履歴記録部８２０に記録された特定動作の履歴のロールバックを実行する前に、当該動作履歴記録部８２０に記録された特定動作の履歴のハッシュ値を算出し、そのハッシュ値と保護情報記憶部９８０に記録されたハッシュ値とが同一である場合には、当該動作履歴記録部８２０に記憶された特定動作の履歴が正当であると判定する。なお、動作履歴保護制御部９７０は、算出部及び判定部を構成する。
【０１３７】
次に、本実施形態における動作履歴保護装置７００の動作について図２３を参照しながら説明する。
【０１３８】
図２３に示すように、Ｓ２０１において、特定動作検出部９１０は、プロセス８１０が実行中の特定動作を検出する。
【０１３９】
Ｓ２０３において、特定動作検出部９１０は、プロセス８１０が特定動作を実行中であることを示す情報を検出結果情報として識別情報発行部９２０に送信する。検出結果情報には、特定動作を実行中であるプロセス８１０を個々に識別するための固有のプロセスＩＤ、及び当該プロセス８１０が呼び出した特定のライブラリ関数が含まれている。
【０１４０】
Ｓ２０５において、識別情報発行部９２０は、検出結果情報に基づいて、検出結果情報に含まれているライブラリ関数の種類、及び特定動作を実行中であるのプロセス８１０の信頼度の大きさに応じて、プロセス８１０の特定動作の履歴を保護対象にするか否か決定する（図２参照）。
【０１４１】
また、識別情報発行部９２０は、プロセス８１０の特定動作の履歴を保護対象にすることを決定した場合には、図２０に示す重要度決定規則情報９３１を参照し、プロセス８１０の特定動作の実行中に呼び出されたライブラリ関数の種類及びそのプロセス８１０の信頼度を用いて重要度を決定する。
【０１４２】
識別情報発行部９２０は、特定動作を実行しているプロセス８１０のプロセスＩＤ、当該プロセス８１０の特定動作の実行中に呼び出されたライブラリ関数、識別情報を個々に識別するための固有の識別ＩＤ、決定した重要度を含む識別情報９２１を発行する。
【０１４３】
Ｓ２０７において、識別情報発行部９２０は、発行した識別情報９２１を動作履歴保護要求情報検出部９４０及び動作履歴保護制御部９７０に送信する。
【０１４４】
Ｓ２０９において、動作履歴保護要求情報検出部９４０は、動作履歴保護要求情報であるｏｐｅｎシステムコール８３０をプロセス８１０から取得する。
【０１４５】
Ｓ２１１において、動作履歴保護要求情報検出部９４０は、発行された各識別情報の中から、当該ｏｐｅｎシステムコール８３０の発行元のプロセス８１０のプロセスＩＤを含む識別情報９２１を特定する。
【０１４６】
動作履歴保護要求情報検出部９４０は、特定した識別情報９２１に含まれている識別ＩＤを、ｏｐｅｎシステムコール８３０に対する返り値としてプロセス８１０に返信する。プロセス８１０は、返り値である識別ＩＤと、プロセス８１０の動作履歴とを動作履歴記録部８２０に記録させる。
【０１４７】
また、動作履歴保護要求情報検出部９４０は、ｏｐｅｎシステムコール８３０の発行元のプロセス８１０のプロセスＩＤと、ｏｐｅｎシステムコール８３０に含まれている“ファイルのｐａｔｈ名”に対応するファイルディスクリプタとを監視リスト情報９５１に登録する。
【０１４８】
更に、動作履歴保護要求情報検出部９４０は、動作履歴保護要求情報であるｗｒｉｔｅシステムコール８４０をプロセス８１０から取得した場合には、ｗｒｉｔｅシステムコール８４０の発行元のプロセス８１０のプロセスＩＤ及び“登録先のファイルディスクリプタ”が監視リスト情報９５１に登録されている場合には、Ｓ２１３において、ｗｒｉｔｅシステムコール８４０を検出結果情報として動作履歴保護制御部９７０に送信する。
【０１４９】
Ｓ２１５において、動作履歴保護制御部９７０は、Ｓ２１１において上記特定された識別情報９２１に基づいて、該識別情報９２１に含まれている重要度に応じて、受信したｗｒｉｔｅシステムコール８４０に含まれている“記録内容（プロセス２１０の特定動作の履歴）”の保護方法を決定する。具体的には以下の通りである。
【０１５０】
Ｓ２１５−１において、動作履歴保護制御部９７０は、上記識別情報９２１に含まれている重要度が「高」・「中」・「低」のいずれであるか判定する。
【０１５１】
Ｓ２１５−２において、動作履歴保護制御部９７０は、上記識別情報９２１に設定された重要度が「高」である場合には、該識別情報９２１に含まれている識別ＩＤと、動作履歴保護要求情報に含まれている記録内容（プロセス２１０の特定動作の履歴）の複製とを保護情報記録部９８０に記録させる。
【０１５２】
Ｓ２１５−３において、動作履歴保護制御部９７０は、上記識別情報９２１に含まれている重要度が「中」である場合には、１エントリの動作履歴保護要求情報に含まれている記録内容（プロセス２１０の特定動作の履歴）のハッシュ値、すなわち１つのｗｒｉｔｅシステムコール８４０に含まれている記録内容のハッシュ値を算出し、当該ハッシュ値と、識別情報９２１に含まれている重要度，識別ＩＤとを保護情報記録部９８０に記録させる。
【０１５３】
Ｓ２１５−４において、動作履歴保護制御部９７０は、上記識別情報９２１に含まれている重要度が「低」である場合には、プロセス８１０の全ての動作履歴保護要求情報に含まれている記録内容（プロセス２１０の特定動作の履歴）のハッシュ値を算出し、当該ハッシュ値と、識別情報９２１に含まれている重要度，識別ＩＤとを保護情報記録部９８０に記録させる。
【０１５４】
かかる特徴によれば、カーネル特権プロセス処理部９００は、上記重要度の大きさに応じて、プロセス８１０の特定動作の履歴をそのまま複製して、カーネル特権プロセス処理部９００が持つ特権レベルでのみアクセス可能なカーネル特権プロセス処理部９００に記録したり、プロセス８１０の特定動作の履歴に対応するハッシュ値をカーネル特権プロセス処理部９００に記録する。これにより、カーネル特権プロセス処理部９００は、カーネル特権プロセス処理部９００以外の領域に記憶された情報を改竄するバッファオーバーフロー攻撃などから、プロセス８１０の特定動作の履歴を適切に保護することができる。
【０１５５】
特に、カーネル特権プロセス処理部９００は、上記重要度が「高」である場合にはプロセス８１０の特定動作の履歴をそのまま複製して、カーネル特権プロセス処理部９００が持つ特権レベルでのみアクセス可能なカーネル特権プロセス処理部９００に記録することにより、重要なプロセス８１０の特定動作の履歴を適切に保護することができる。
【０１５６】
また、カーネル特権プロセス処理部９００は、上記重要度が「中」である場合には、プロセス８１０の特定動作の履歴のハッシュ値を１エントリ毎に記録する。これにより、カーネル特権プロセス処理部９００は、重要性の低いプロセス８１０の特定動作の履歴を記録する場合には、プロセス８１０の特定動作の履歴をそのまま複製してカーネル特権プロセス処理部９００に記録するのではなく、プロセス８１０の特定動作の履歴のハッシュ値を１エントリ毎にカーネル特権プロセス処理部９００に記録する。このため、カーネル特権プロセス処理部９００は、カーネル特権プロセス処理部９００に記録させる情報量をより低減することができ、システム全体の性能劣化をより抑制することができる。
【０１５７】
さらに、動作履歴保護装置７００は、上記重要度が「低」である場合には、プロセス８１０の「全て」の特定動作の履歴のハッシュ値を記録させる。これにより、動作履歴保護装置７００は、重要性のさらに低いプロセス８１０の特定動作の履歴を記録する場合には、プロセス８１０の特定動作の履歴のハッシュ値を１エントリ毎に記録するのではなく、プロセス８１０の特定動作の履歴の「全て」のハッシュ値を記録する。このため、カーネル特権プロセス処理部９００は、カーネル特権プロセス処理部９００に記録させる情報量をより低減することができ、システム全体の性能劣化をより抑制することができる。
【０１５８】
ここで、動作履歴記録部８２０に記録されたプロセス８１０の特定動作の履歴の正当性を検証する手法について説明する。
【０１５９】
図２４に示すように、ここでは、識別ＩＤである「３８２８０００１」と、それに対応する動作履歴であるシステム設定変更動作１乃至３とが動作履歴記録部８２０に記録されているものとする。システム設定変更動作１乃至３は、システムの設定を変更するための動作であるものとする。
【０１６０】
もし、システム設定変更動作１乃至３によりシステムに何等かの異常が発生した場合には、システム設定変更動作１乃至３のロールバックが実行されることにより、再びシステム設定変更動作１乃至３が実行される。
【０１６１】
しかし、システム設定変更動作１乃至３自体が不当に改竄された場合には、システム設定変更動作１乃至３のロールバックが実行されることにより、システムの状態が悪化することがある。
【０１６２】
そこで、本実施形態における動作履歴保護装置７００は、システム設定変更動作１乃至３の正当性を検証し、システム設定変更動作１乃至３のロールバックによるシステムの状態の悪化を未然に防いでいる。
【０１６３】
具体的には、動作履歴保護装置７００は、システム設定変更動作１乃至３のロールバックを実行する前に、図２４に示す制限付権限プロセス処理部８００（動作履歴記録部８２０）に記録されたシステム設定変更動作１乃至３の識別ＩＤ「３８２８０００１」を特定する。動作履歴保護装置７００は、図２５に示すカーネル特権プロセス処理部９００（保護情報記録部９８０）を参照し、特定した識別ＩＤ「３８２８０００１」に対応する重要度を参照する。
【０１６４】
動作履歴保護装置７００は、図２５に示す識別ＩＤ「３８２８０００１」に対応する重要度が「中」であるため、保護情報記録部９８０におけるハッシュ値が１エントリ毎（システム設定変更動作毎）に記録されたものであると判定する。この場合には、動作履歴保護装置７００は、図２４に示す識別ＩＤ「３８２８０００１」に対応するシステム設定変更動作１乃至３のそれぞれ（１エントリ毎）のハッシュ値を算出する。
【０１６５】
動作履歴保護装置７００は、図２４に示す識別ＩＤ「３８２８０００１」に対応するシステム設定変更動作１乃至３のハッシュ値のそれぞれと、図２５に示す識別ＩＤ「３８２８０００１」に対応するハッシュ値のそれぞれとが同一である場合には、プロセス８１０の動作履歴であるシステム設定変更動作１乃至３が正当な履歴であると判定し、システム設定変更動作１乃至３をロールバックする。
【０１６６】
一方、動作履歴保護装置７００は、システム設定変更動作１乃至３のハッシュ値のそれぞれと、識別ＩＤ「３８２８０００１」に対応するハッシュ値のそれぞれとが同一でない場合には、システム設定変更動作１乃至３が正当でないものであると判定、すなわちシステム設定変更動作１乃至３が改竄されたもの（又は書換えられたもの）であると判定し、システム設定変更動作１乃至３をロールバックしない。
【０１６７】
このように動作履歴保護装置７００は、システム設定変更動作１乃至３のロールバックを実行する前に、当該システム設定変更動作１乃至３の正当性を検証するため、当該システム設定変更動作１乃至３のロールバックによるシステムの状態の悪化を未然に防ぐことができる。
【０１６８】
［第４実施形態］
ここで、制限付権限プロセス処理部がプロセスの動作の履歴を大量に記録すると、制限付権限プロセス処理部は、カーネル特権プロセス処理部に対してプロセスの動作に関するシステムコール（ライブラリ関数呼出システムコール、ｏｐｅｎシステムコール、ｗｒｉｔｅシステムコール、ｃｌｏｓｅシステムコールなど）を頻繁に送信する。これにより、カーネル特権プロセス処理部における処理負担が増大し、結果的にはシステム全体の性能劣化が懸念される。
【０１６９】
そこで、一定期間内において制限付権限プロセス処理部がカーネル特権プロセス処理部に対してシステムコールを頻繁に送信した場合には、カーネル特権プロセス処理部は、カーネル特権プロセス処理部における処理負担を増大させないようにしている。以下、具体的に説明する。
【０１７０】
図２６は、本実施形態における動作履歴保護装置１０００の内部構成を示す図である。図２６に示すように、動作履歴保護装置１０００は、制限付権限プロセス処理部１１００と、カーネル特権プロセス処理部１２００とを備えている。
【０１７１】
制限付権限プロセス処理部１１００は、プロセス１１１０と、動作履歴記録部１１２０とを備えている。カーネル特権プロセス処理部１２００は、特定動作検出部１２１０と、識別情報発行部１２２０と、動作履歴保護規則情報記憶部１２３０と、特定動作実行履歴情報記録部１２４０と、特定動作制御規則情報記憶部１２５０と、特定動作制御部１２６０と、動作履歴保護要求情報検出部１２７０と、監視リスト情報記憶部１２８０と、動作履歴保護制御部１２９０と、保護情報記録部１３００とを備えている。なお、図２６に示す各部のうち、図１に示す同一名称の部については、特段の説明をしていない限り同様の機能を有するものとする。
【０１７２】
特定動作検出部１２１０は、単位時間当りにプロセス１１１０が特定動作を検出した検出回数を算出する。本実施形態では当該検出回数は、１秒間当りの平均回数とする。
【０１７３】
例えば、特定動作検出部１２１０は、プロセス１１１０が発行したライブラリ関数呼出システムコール１１３０を取得したことに基づいて、プロセス１１１０の特定動作を検出し、当該ライブラリ関数呼出システムコール１１３０によりライブラリ関数が呼び出された呼出時刻、そのライブラリ関数、そのライブラリ関数が呼び出された１秒間当りの平均回数を特定動作実行履歴情報として特定動作実行履歴情報記録部１２４０に記録させる（後述する図２８及び図２９参照）。
【０１７４】
特定動作制御規則情報記憶部１２５０は、後述する設定回数（回数／秒）が設定された特定動作制御規則情報を記憶する。
【０１７５】
特定動作制御部１２６０は、特定動作実行履歴情報記録部１２４０に記録された１秒間当りの平均回数が予め設定された設定回数（回数／秒）を超える場合には、動作履歴保護要求情報検出部１２７０により動作履歴保護要求情報が取得された後の動作履歴保護要求情報検出部１２７０における処理の開始を所定時間遅延させる。なお、特定動作制御部１２６０及び動作履歴保護要求情報検出部１２７０は、遅延処理部を構成する。
【０１７６】
次に、本実施形態における動作履歴保護装置１０００の動作について図２７を参照しながら説明する。図２７に示すＡ部分以外は、図４に示す動作と同様であるため、ここでの詳細な説明は省略する。よって、図２７に示すＡ部分のみについて説明する。
【０１７７】
図２７に示すＡ部分のＳ３０９において、特定動作検出部１２１０は、プロセス１１１０が発行したライブラリ関数呼出システムコール１１３０を取得したことに基づいて、当該ライブラリ関数呼出システムコール１１３０によりライブラリ関数が呼び出された呼出時刻と、そのライブラリ関数と、そのライブラリ関数が呼び出された１秒間当りの平均回数とを特定動作実行履歴情報として特定動作実行履歴情報記録部１２４０に記録させる。
【０１７８】
Ｓ３１１において、特定動作制御部１２６０は、特定動作制御規則情報に従い、特定動作実行履歴情報記録部１２４０に記憶された１秒間当りの平均回数が予め設定された設定回数を超える場合には、プロセス１１１０からの動作履歴保護要求情報に対する処理を遅延させるための制御指示情報を動作履歴保護要求情報検出部１２７０に送信する。
【０１７９】
例えば、特定動作制御部１２６０は、特定動作実行履歴情報が図２８に示す内容である場合には、最新の１秒間当りの平均回数［３．５］が予め設定された設定回数「２０」（１秒間当りのライブラリ関数の呼出回数が２０回）を超えないため、上記制御指示情報を動作履歴保護要求情報検出部１２７０に送信しない。このため、動作履歴保護要求情報検出部１２７０は、上記制御指示情報が送信されないため、図２８に示すプロセスＩＤ「３８２８」のプロセスが発行した動作履歴保護要求情報に対する処理を遅延させない。
【０１８０】
また、上記特定動作制御部１２６０は、特定動作実行履歴情報が図２９に示す内容である場合には、最新の１秒間当りの平均回数［２０．５］が予め設定された設定回数「２０」を超えるため、上記制御指示情報を動作履歴保護要求情報検出部１２７０に送信する。このため、動作履歴保護要求情報検出部１２７０は、Ｓ３１３において上記制御指示情報を受信するため、図２８に示すプロセスＩＤ「１１５５６」のプロセスが発行した動作履歴保護要求情報（ｏｐｅｎシステムコール、ｗｒｉｔｅシステムコール、ｃｌｏｓｅシステムコールなど）に対する処理を所定時間（１ｍｓなど）遅延させる。
【０１８１】
かかる特徴によれば、制限付権限プロセス処理部１１００が、一定期間内においてカーネル特権プロセス処理部１２００に対してシステムコールを設定回数以上送信した場合には、カーネル特権プロセス処理部１２００が、動作履歴保護要求情報に対する処理を遅延させる。これにより、カーネル特権プロセス処理部１２００は、カーネル特権プロセス処理部１２００における処理負担を上記一定期間内において増大させないようにすることができる。
【０１８２】
このため、一定期間内において動作履歴保護装置１０００に対して外部から大量にアクセスを実行し、これに伴ないカーネル特権プロセス処理部１２００に対して制限付権限プロセス処理部１１００から大量にアクセスを実行させ、カーネル特権プロセス処理部１２００における処理負担を増大させてシステム全体の動作処理を不能にさせるサービス不能攻撃から、カーネル特権プロセス処理部１２００はシステム全体を保護することができる。
【０１８３】
以上、本発明の一例を説明したが、具体例を例示したに過ぎず、特に本発明を限定するものではなく、各実施形態及び各変更例における具体的構成等は、適宜設計変更可能である。また、各実施形態及び各変更例の具体的構成のそれぞれは、組み合わせることが可能である。さらに、各実施形態及び各変更例の作用及び効果は、本発明から生じる最も好適な作用及び効果を列挙したに過ぎず、本発明による作用及び効果は、各実施形態及び各変更例に記載されたものに限定されるものではない。
【図面の簡単な説明】
【０１８４】
【図１】第１実施形態における動作履歴保護装置の内部構成を示す図である。
【図２】第１実施形態における動作履歴保護規則情報の内容を示す図である。
【図３】第１実施形態における識別情報の内容を示す図である。
【図４】第１実施形態における動作履歴保護装置の動作を示す図である。
【図５】第１実施形態における各処理の実行順序を示す図である。
【図６】第１実施形態における監視リスト情報の内容を示す図である。
【図７】第１実施形態における監視リスト情報の内容を示す図である。
【図８】変更例１における動作履歴保護装置の内部構成を示す図である。
【図９】変更例１における識別情報の内容を示す図である。
【図１０】変更例１における識別情報の内容を示す図である。
【図１１】変更例２における動作履歴保護装置の内部構成を示す図である。
【図１２】変更例２における識別情報の内容を示す図である。
【図１３】変更例２における識別情報の内容を示す図である。
【図１４】変更例２における識別情報の内容を示す図である。
【図１５】変更例３における動作履歴保護装置の内部構成を示す図である。
【図１６】変更例３における識別情報の内容を示す図である。
【図１７】第２実施形態における動作履歴保護装置の内部構成を示す図である。
【図１８】第２実施形態における暗号化設定規則情報の内容を示す図である。
【図１９】第３実施形態における動作履歴保護装置の内部構成を示す図である。
【図２０】第３実施形態における重要度決定規則情報の内容を示す図である。
【図２１】第３実施形態における識別情報の内容を示す図である。
【図２２】第３実施形態における保護レベル決定規則情報の内容を示す図である。
【図２３】第３実施形態における動作履歴保護装置の動作を示す図である。
【図２４】第３実施形態における制限付権限プロセス処理部内の動作履歴の内容を示す図である。
【図２５】第３実施形態におけるカーネル特権プロセス処理部内の動作履歴の内容を示す図である。
【図２６】第４実施形態における動作履歴保護装置の内部構成を示す図である。
【図２７】第４実施形態における動作履歴保護装置の動作を示す図である。
【図２８】第４実施形態における特定動作実行履歴の内容を示す図である。
【図２９】第４実施形態における特定動作実行履歴の内容を示す図である。
【符号の説明】
【０１８５】
１００…動作履歴保護装置、１１０…特定動作検知部、２００…制限付権限プロセス処理部、２１０…プロセス、２２０…動作履歴記録部、３００…カーネル特権プロセス処理部、３１０…特定動作検出部、３２０…識別情報発行部、３３０…動作履歴保護規則情報記憶部、３４０…動作履歴保護要求情報検出部、３５０…監視リスト情報記憶部、３６０…動作履歴保護制御部、３７０…保護情報記録部、４００…動作履歴保護装置、５００…制限付権限プロセス処理部、５１０…プロセス、５２０…動作履歴記録部、６００…カーネル特権プロセス処理部、６１０…特定動作検出部、６２０…識別情報発行部、６３０…動作履歴保護規則情報記憶部、６４０…動作履歴保護要求情報検出部、６５０…監視リスト情報記憶部、６６０…暗号化設定規則情報記憶部、６７０…動作履歴保護制御部、６８０…保護情報記録部、７００…動作履歴保護装置、８００…制限付権限プロセス処理部、８１０…プロセス、８２０…動作履歴記録部、９００…カーネル特権プロセス処理部、９１０…特定動作検出部、９２０…識別情報発行部、９３０…重要度決定規則情報記憶部、９３５…動作履歴保護規則情報記憶部、９４０…動作履歴保護要求情報検出部、９５０…監視リスト情報記憶部、９６０…保護レベル決定規則情報記憶部、９７０…動作履歴保護制御部、９８０…保護情報記録部、１０００…動作履歴保護装置、１１００…制限付権限プロセス処理部、１１１０…プロセス、１１２０…動作履歴記録部、１２００…カーネル特権プロセス処理部、１２１０…特定動作検出部、１２２０…識別情報発行部、１２３０…信頼度決定規則情報記憶部、１２４０…特定動作実行履歴情報記録部、１２５０…特定動作制御規則情報記憶部、１２６０…特定動作制御部、１２７０…動作履歴保護要求情報検出部、１２８０…監視リスト情報記憶部、１２９０…動作履歴保護制御部、１３００…保護情報記録部
【図１】
2007072969.tif 000003
【図２】
2007072969.tif 000004
【図３】
2007072969.tif 000005
【図４】
2007072969.tif 000006
【図５】
2007072969.tif 000007
【図６】
2007072969.tif 000008
【図７】
2007072969.tif 000009
【図８】
2007072969.tif 000010
【図９】
2007072969.tif 000011
【図１０】
2007072969.tif 000012
【図１１】
2007072969.tif 000013
【図１２】
2007072969.tif 000014
【図１３】
2007072969.tif 000015
【図１４】
2007072969.tif 000016
【図１５】
2007072969.tif 000017
【図１６】
2007072969.tif 000018
【図１７】
2007072969.tif 000019
【図１８】
2007072969.tif 000020
【図１９】
2007072969.tif 000021
【図２０】
2007072969.tif 000022
【図２１】
2007072969.tif 000023
【図２２】
2007072969.tif 000024
【図２３】
2007072969.tif 000025
【図２４】
2007072969.tif 000026
【図２５】
2007072969.tif 000027
【図２６】
2007072969.tif 000028
【図２７】
2007072969.tif 000029
【図２８】
2007072969.tif 000030
【図２９】
2007072969.tif 000031