不揮発メモリに記憶されている共有ライブラリを揮発メモリにロードして、前記揮発メモリにロードされた前記共有ライブラリを利用するプロセスを動作させる情報処理装置であって、前記揮発メモリ内の前記共有ライブラリが改竄されているか否かを判定する改竄判定部と、前記揮発メモリ内の前記共有ライブラリと、前記揮発メモリ内の前記共有ライブラリを利用する前記プロセスとの対応関係を示す情報を含む共有ライブラリ情報を保持するための共有ライブラリ情報保持部と、前記揮発メモリ内の前記共有ライブラリが改竄されていると判定された場合、前記共有ライブラリ情報を参照することにより、前記揮発メモリ内の前記共有ライブラリを利用する前記プロセスを特定し、特定された前記プロセスを停止させるプロセス制御部と、前記揮発メモリ内の前記共有ライブラリが改竄されていると判定された場合、前記不揮発メモリ内の前記共有ライブラリを前記揮発メモリに再ロードすることにより、前記揮発メモリ内の前記共有ライブラリを回復させる共有ライブラリ回復部とを備える情報処理装置。前記プロセス制御部は、さらに、前記揮発メモリ内の前記共有ライブラリが回復した後、前記プロセスを再開させる請求項1に記載の情報処理装置。前記プロセス制御部は、前記プロセスを停止させる時に、前記プロセスを再開させる時に用いられる情報である停止プロセス情報を生成し、前記揮発メモリ内の前記共有ライブラリが回復した後、前記停止プロセス情報を用いて前記プロセスを再開させる請求項2に記載の情報処理装置。前記プロセス制御部は、前記プロセスを停止させる時に、前記プロセスの進行状態を示す進行状態情報を含む前記停止プロセス情報を生成し、前記揮発メモリ内の前記共有ライブラリが回復した後、前記停止プロセス情報によって示される前記進行状態に依存させて、前記プロセスを再開させる請求項3に記載の情報処理装置。前記プロセス制御部は、前記プロセスに用いられるプログラムカウンタの情報を前記進行状態情報として含む前記停止プロセス情報を生成する請求項4に記載の情報処理装置。前記プロセス制御部は、前記共有ライブラリが回復した後、前記停止プロセス情報によって示される前記進行状態が前記共有ライブラリの利用前である場合、前記進行状態で前記プロセスを再開させ、前記停止プロセス情報によって示される前記進行状態が前記共有ライブラリの利用中または利用後である場合、前記共有ライブラリの利用前の状態で前記プロセスを再開させる請求項4または5に記載の情報処理装置。前記プロセス制御部は、前記プロセスを停止させる時に、前記プロセスの動作履歴を示す動作履歴情報を含む前記停止プロセス情報を生成し、前記共有ライブラリが回復した後、前記停止プロセス情報によって示される前記進行状態が前記共有ライブラリの利用中または利用後である場合、前記停止プロセス情報に含まれる前記動作履歴情報を参照して、前記共有ライブラリの利用前の状態で、前記プロセスを再開させる請求項6に記載の情報処理装置。前記プロセス制御部は、前記プロセスに用いられるスタックの情報を前記動作履歴情報として含む前記停止プロセス情報を生成する請求項7に記載の情報処理装置。前記情報処理装置は、さらに、前記プロセスが動作しているか否かを示すプロセス動作情報を保持するためのプロセス動作情報保持部を備え、前記改竄判定部は、前記プロセス動作情報を参照することにより、動作している前記プロセスを特定し、特定された前記プロセスが利用する前記共有ライブラリが改竄されているか否かを判定する請求項1~8のいずれか1項に記載の情報処理装置。前記情報処理装置は、さらに、前記プロセスが動作しているか否かを示すプロセス動作情報を保持するためのプロセス動作情報保持部を備え、前記プロセス制御部は、前記プロセスを停止させる時に、前記プロセスが動作していないことを示すように、前記プロセス動作情報を更新し、前記揮発メモリ内の前記共有ライブラリが回復した後、前記プロセス動作情報を参照することにより、動作していない前記プロセスを特定し、特定された前記プロセスを再開させる請求項2~8のいずれか1項に記載の情報処理装置。前記情報処理装置は、さらに、前記プロセスが動作しているか否かを示すプロセス動作情報を保持するためのプロセス動作情報保持部を備え、前記改竄判定部は、前記プロセス動作情報を参照することにより、動作している前記プロセスを特定し、特定された前記プロセスが利用する前記共有ライブラリが改竄されているか否かを判定し、前記プロセス制御部は、前記プロセスを停止させる時に、前記プロセスが動作していないことを示すように、前記プロセス動作情報を更新し、前記揮発メモリ内の前記共有ライブラリが回復した後、前記プロセス動作情報を参照することにより、動作していない前記プロセスを特定し、特定された前記プロセスを再開させる請求項2~8のいずれか1項に記載の情報処理装置。前記改竄判定部は、前記共有ライブラリが前記揮発メモリにロードされる前に、前記共有ライブラリから予め抽出された情報と、前記共有ライブラリが前記揮発メモリにロードされた後に、前記揮発メモリ内の前記共有ライブラリから抽出された情報とを比較することにより、前記揮発メモリ内の前記共有ライブラリが改竄されているか否かを判定する請求項1~11のいずれか1項に記載の情報処理装置。前記改竄判定部は、さらに、前記不揮発メモリ内の前記共有ライブラリが改竄されているか否かを判定し、前記共有ライブラリ回復部は、前記揮発メモリ内の前記共有ライブラリが改竄されていると判定された場合、かつ、前記不揮発メモリ内の前記共有ライブラリが改竄されていないと判定された場合、前記揮発メモリ内の前記共有ライブラリを回復させる請求項1~12のいずれか1項に記載の情報処理装置。前記共有ライブラリ情報保持部には、前記揮発メモリ内の前記共有ライブラリが改竄されているか否かが判定されたか否かを示す情報を含む前記共有ライブラリ情報が保持され、前記改竄判定部は、前記共有ライブラリ情報を参照することにより、改竄されているか否かが判定されていない前記共有ライブラリを特定し、特定された前記共有ライブラリが改竄されているか否かを判定する請求項1~13のいずれか1項に記載の情報処理装置。前記共有ライブラリ回復部は、前記揮発メモリ内の前記共有ライブラリが改竄されていると判定された場合、前記不揮発メモリ内の前記共有ライブラリを前記揮発メモリに再ロードし、前記揮発メモリに再ロードされた前記共有ライブラリの物理アドレスと、前記プロセスのプロセス空間における前記共有ライブラリの仮想アドレスとをマッピングすることにより、前記揮発メモリ内の前記共有ライブラリを回復させる請求項1~14のいずれか1項に記載の情報処理装置。不揮発メモリに記憶されている共有ライブラリを揮発メモリにロードして、前記揮発メモリにロードされた前記共有ライブラリを利用するプロセスを動作させる情報処理方法であって、前記揮発メモリ内の前記共有ライブラリが改竄されているか否かを判定する改竄判定ステップと、前記揮発メモリ内の前記共有ライブラリが改竄されていると判定された場合、前記揮発メモリ内の前記共有ライブラリと、前記揮発メモリ内の前記共有ライブラリを利用する前記プロセスとの対応関係を示す情報を含む共有ライブラリ情報を保持するための共有ライブラリ情報保持部に保持される前記共有ライブラリ情報を参照することにより、前記揮発メモリ内の前記共有ライブラリを利用する前記プロセスを特定し、特定された前記プロセスを停止させるプロセス制御ステップと、前記揮発メモリ内の前記共有ライブラリが改竄されていると判定された場合、前記不揮発メモリ内の前記共有ライブラリを前記揮発メモリに再ロードすることにより、前記揮発メモリ内の前記共有ライブラリを回復させる共有ライブラリ回復ステップとを含む情報処理方法。請求項16に記載の情報処理方法に含まれるステップをコンピュータに実行させるためのプログラム。請求項16に記載の情報処理方法に含まれるステップをコンピュータに実行させるためのプログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体。不揮発メモリに記憶されている共有ライブラリを揮発メモリにロードして、前記揮発メモリにロードされた前記共有ライブラリを利用するプロセスを動作させる集積回路であって、前記揮発メモリ内の前記共有ライブラリが改竄されているか否かを判定する改竄判定部と、前記揮発メモリ内の前記共有ライブラリが改竄されていると判定された場合、前記揮発メモリ内の前記共有ライブラリと、前記揮発メモリ内の前記共有ライブラリを利用する前記プロセスとの対応関係を示す情報を含む共有ライブラリ情報を保持するための共有ライブラリ情報保持部に保持される前記共有ライブラリ情報を参照することにより、前記揮発メモリ内の前記共有ライブラリを利用する前記プロセスを特定し、特定された前記プロセスを停止させるプロセス制御部と、前記揮発メモリ内の前記共有ライブラリが改竄されていると判定された場合、前記不揮発メモリ内の前記共有ライブラリを前記揮発メモリに再ロードすることにより、前記揮発メモリ内の前記共有ライブラリを回復させる共有ライブラリ回復部とを備える集積回路。しかしながら、従来の特許文献1に記載の構成では、プログラムによって利用される共有ライブラリが改竄されていた場合、プログラムは、正常動作する状態に回復されない可能性がある。上述の通り、共有ライブラリは、揮発メモリにロードされる。また、共有ライブラリを利用するプログラムも、プログラムを実行するプロセスとして、揮発メモリにロードされる。そして、そのプロセスのプロセス空間に、共有ライブラリがマップされる。ここで、揮発メモリにロードされた共有ライブラリにエラーがあった場合、不揮発メモリのプログラムが揮発メモリに再ロードされても、揮発メモリにロードされている共有ライブラリは、回復されない。また、共有ライブラリの再ロードが、共有ライブラリを利用するプロセスの動作に影響を与える可能性がある。そして、プロセスが想定外の動作を実行する可能性がある。さらに、共有ライブラリが再ロードされても、プロセス空間の情報が変更されず、プロセスの動作に支障が生じる可能性もある。また、不揮発メモリに記憶されている全ての共有ライブラリ、および、全てのプログラムが揮発メモリに再ロードされた場合、全てのプログラムが正常に動作する状態になる。しかし、改竄の影響を受けないプログラムを含む全てのプログラムの再ロードは、効率が悪い。そこで、本発明は、揮発メモリにロードされた共有ライブラリが改竄された場合の影響を抑制することができる情報処理装置を提供することを目的とする。上記課題を解決するために、本発明に係る情報処理装置は、不揮発メモリに記憶されている共有ライブラリを揮発メモリにロードして、前記揮発メモリにロードされた前記共有ライブラリを利用するプロセスを動作させる情報処理装置であって、前記揮発メモリ内の前記共有ライブラリが改竄されているか否かを判定する改竄判定部と、前記揮発メモリ内の前記共有ライブラリと、前記揮発メモリ内の前記共有ライブラリを利用する前記プロセスとの対応関係を示す情報を含む共有ライブラリ情報を保持するための共有ライブラリ情報保持部と、前記揮発メモリ内の前記共有ライブラリが改竄されていると判定された場合、前記共有ライブラリ情報を参照することにより、前記揮発メモリ内の前記共有ライブラリを利用する前記プロセスを特定し、特定された前記プロセスを停止させるプロセス制御部と、前記揮発メモリ内の前記共有ライブラリが改竄されていると判定された場合、前記不揮発メモリ内の前記共有ライブラリを前記揮発メモリに再ロードすることにより、前記揮発メモリ内の前記共有ライブラリを回復させる共有ライブラリ回復部とを備える。これにより、共有ライブラリの改竄により影響を受けるプロセスのみが停止される。そして、揮発メモリの共有ライブラリは、不揮発メモリからの再ロードにより、回復される。したがって、本発明に係る情報処理装置は、改竄の影響を抑制することができる。また、前記プロセス制御部は、さらに、前記揮発メモリ内の前記共有ライブラリが回復した後、前記プロセスを再開させてもよい。これにより、停止されたプロセスが、再開される。したがって、本発明に係る情報処理装置は、システム全体を継続して動作させることができる。また、前記プロセス制御部は、前記プロセスを停止させる時に、前記プロセスを再開させる時に用いられる情報である停止プロセス情報を生成し、前記揮発メモリ内の前記共有ライブラリが回復した後、前記停止プロセス情報を用いて前記プロセスを再開させてもよい。これにより、プロセスが停止される際、プロセスの再開に必要な情報が生成される。したがって、プロセスが適切に再開される。また、前記プロセス制御部は、前記プロセスを停止させる時に、前記プロセスの進行状態を示す進行状態情報を含む前記停止プロセス情報を生成し、前記揮発メモリ内の前記共有ライブラリが回復した後、前記停止プロセス情報によって示される前記進行状態に依存させて、前記プロセスを再開させてもよい。これにより、停止されたプロセスが、停止前の進行状態に応じて、再開される。したがって、プロセスが適切な状態で再開される。また、前記プロセス制御部は、前記プロセスに用いられるプログラムカウンタの情報を前記進行状態情報として含む前記停止プロセス情報を生成してもよい。これにより、プログラムカウンタの情報が、進行状態としてプロセスの再開時に用いられる。したがって、プロセスが適切な状態で再開される。また、前記プロセス制御部は、前記共有ライブラリが回復した後、前記停止プロセス情報によって示される前記進行状態が前記共有ライブラリの利用前である場合、前記進行状態で前記プロセスを再開させ、前記停止プロセス情報によって示される前記進行状態が前記共有ライブラリの利用中または利用後である場合、前記共有ライブラリの利用前の状態で前記プロセスを再開させてもよい。これにより、改竄された共有ライブラリが利用された後にプロセスが停止された場合でも、改竄された共有ライブラリが利用される前の状態で、プロセスが再開される。したがって、本発明に係る情報処理装置は、改竄の影響を受けていない状態で、プロセスを再開させることができる。また、前記プロセス制御部は、前記プロセスを停止させる時に、前記プロセスの動作履歴を示す動作履歴情報を含む前記停止プロセス情報を生成し、前記共有ライブラリが回復した後、前記停止プロセス情報によって示される前記進行状態が前記共有ライブラリの利用中または利用後である場合、前記停止プロセス情報に含まれる前記動作履歴情報を参照して、前記共有ライブラリの利用前の状態で、前記プロセスを再開させてもよい。これにより、本発明に係る情報処理装置は、プロセスの動作履歴を用いて、改竄の影響を受けていない状態で、プロセスを再開させることができる。また、前記プロセス制御部は、前記プロセスに用いられるスタックの情報を前記動作履歴情報として含む前記停止プロセス情報を生成してもよい。これにより、スタックの情報が、動作履歴としてプロセスの再開時に用いられる。したがって、プロセスが適切な状態で再開される。また、前記情報処理装置は、さらに、前記プロセスが動作しているか否かを示すプロセス動作情報を保持するためのプロセス動作情報保持部を備え、前記改竄判定部は、前記プロセス動作情報を参照することにより、動作している前記プロセスを特定し、特定された前記プロセスが利用する前記共有ライブラリが改竄されているか否かを判定してもよい。これにより、動作しているプロセスが利用する共有ライブラリが回復される。よって、システム全体への影響が大きい共有ライブラリが、より効率的に回復される。また、前記情報処理装置は、さらに、前記プロセスが動作しているか否かを示すプロセス動作情報を保持するためのプロセス動作情報保持部を備え、前記プロセス制御部は、前記プロセスを停止させる時に、前記プロセスが動作していないことを示すように、前記プロセス動作情報を更新し、前記揮発メモリ内の前記共有ライブラリが回復した後、前記プロセス動作情報を参照することにより、動作していない前記プロセスを特定し、特定された前記プロセスを再開させてもよい。これにより、再開されるべきプロセスが、確実に特定される。したがって、プロセスが適切に再開される。また、前記情報処理装置は、さらに、前記プロセスが動作しているか否かを示すプロセス動作情報を保持するためのプロセス動作情報保持部を備え、前記改竄判定部は、前記プロセス動作情報を参照することにより、動作している前記プロセスを特定し、特定された前記プロセスが利用する前記共有ライブラリが改竄されているか否かを判定し、前記プロセス制御部は、前記プロセスを停止させる時に、前記プロセスが動作していないことを示すように、前記プロセス動作情報を更新し、前記揮発メモリ内の前記共有ライブラリが回復した後、前記プロセス動作情報を参照することにより、動作していない前記プロセスを特定し、特定された前記プロセスを再開させてもよい。これにより、動作しているプロセスが利用する共有ライブラリが回復される。また、再開されるべきプロセスが、確実に特定される。したがって、効率的な回復動作が実行される。また、前記改竄判定部は、前記共有ライブラリが前記揮発メモリにロードされる前に、前記共有ライブラリから予め抽出された情報と、前記共有ライブラリが前記揮発メモリにロードされた後に、前記揮発メモリ内の前記共有ライブラリから抽出された情報とを比較することにより、前記揮発メモリ内の前記共有ライブラリが改竄されているか否かを判定してもよい。これにより、現在の共有ライブラリの状態と、正常な共有ライブラリの状態とが比較される。そして、共有ライブラリの改竄が適切に検出される。また、前記改竄判定部は、さらに、前記不揮発メモリ内の前記共有ライブラリが改竄されているか否かを判定し、前記共有ライブラリ回復部は、前記揮発メモリ内の前記共有ライブラリが改竄されていると判定された場合、かつ、前記不揮発メモリ内の前記共有ライブラリが改竄されていないと判定された場合、前記揮発メモリ内の前記共有ライブラリを回復させてもよい。これにより、不揮発メモリから共有ライブラリを回復させることが有効な場合に限って、共有ライブラリが回復される。また、前記共有ライブラリ情報保持部には、前記揮発メモリ内の前記共有ライブラリが改竄されているか否かが判定されたか否かを示す情報を含む前記共有ライブラリ情報が保持され、前記改竄判定部は、前記共有ライブラリ情報を参照することにより、改竄されているか否かが判定されていない前記共有ライブラリを特定し、特定された前記共有ライブラリが改竄されているか否かを判定してもよい。これにより、改竄の検出動作の重複が排除される。したがって、効率的に、改竄が検出される。また、前記共有ライブラリ回復部は、前記揮発メモリ内の前記共有ライブラリが改竄されていると判定された場合、前記不揮発メモリ内の前記共有ライブラリを前記揮発メモリに再ロードし、前記揮発メモリに再ロードされた前記共有ライブラリの物理アドレスと、前記プロセスのプロセス空間における前記共有ライブラリの仮想アドレスとをマッピングすることにより、前記揮発メモリ内の前記共有ライブラリを回復させてもよい。これにより、再ロード前とは異なる物理アドレスに再ロードされた場合でも、共有ライブラリがプロセス空間に適切にマッピングされる。したがって、共有ライブラリが、適切に回復される。また、本発明に係る情報処理方法は、不揮発メモリに記憶されている共有ライブラリを揮発メモリにロードして、前記揮発メモリにロードされた前記共有ライブラリを利用するプロセスを動作させる情報処理方法であって、前記揮発メモリ内の前記共有ライブラリが改竄されているか否かを判定する改竄判定ステップと、前記揮発メモリ内の前記共有ライブラリが改竄されていると判定された場合、前記揮発メモリ内の前記共有ライブラリと、前記揮発メモリ内の前記共有ライブラリを利用する前記プロセスとの対応関係を示す情報を含む共有ライブラリ情報を保持するための共有ライブラリ情報保持部に保持される前記共有ライブラリ情報を参照することにより、前記揮発メモリ内の前記共有ライブラリを利用する前記プロセスを特定し、特定された前記プロセスを停止させるプロセス制御ステップと、前記揮発メモリ内の前記共有ライブラリが改竄されていると判定された場合、前記不揮発メモリ内の前記共有ライブラリを前記揮発メモリに再ロードすることにより、前記揮発メモリ内の前記共有ライブラリを回復させる共有ライブラリ回復ステップとを含む情報処理方法でもよい。これにより、本発明に係る情報処理装置が情報処理方法として実現される。また、本発明に係るプログラムは、前記情報処理方法に含まれるステップをコンピュータに実行させるためのプログラムでもよい。これにより、本発明に係る情報処理方法がプログラムとして実現される。また、本発明に係る記録媒体は、前記情報処理方法に含まれるステップをコンピュータに実行させるためのプログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体でもよい。これにより、本発明に係る情報処理方法が記録媒体として実現される。また、本発明に係る集積回路は、不揮発メモリに記憶されている共有ライブラリを揮発メモリにロードして、前記揮発メモリにロードされた前記共有ライブラリを利用するプロセスを動作させる集積回路であって、前記揮発メモリ内の前記共有ライブラリが改竄されているか否かを判定する改竄判定部と、前記揮発メモリ内の前記共有ライブラリが改竄されていると判定された場合、前記揮発メモリ内の前記共有ライブラリと、前記揮発メモリ内の前記共有ライブラリを利用する前記プロセスとの対応関係を示す情報を含む共有ライブラリ情報を保持するための共有ライブラリ情報保持部に保持される前記共有ライブラリ情報を参照することにより、前記揮発メモリ内の前記共有ライブラリを利用する前記プロセスを特定し、特定された前記プロセスを停止させるプロセス制御部と、前記揮発メモリ内の前記共有ライブラリが改竄されていると判定された場合、前記不揮発メモリ内の前記共有ライブラリを前記揮発メモリに再ロードすることにより、前記揮発メモリ内の前記共有ライブラリを回復させる共有ライブラリ回復部とを備える集積回路でもよい。これにより、本発明に係る情報処理装置が集積回路として実現される。なお、上述の通り、本発明は、このような情報処理装置として実現できるだけでなく、情報処理装置に含まれる特徴的な手段をステップとする方法として実現できる。また、本発明は、そのような特徴的なステップをコンピュータに実行させるプログラムとして実現できる。そして、そのようなプログラムは、CD-ROM等の記録媒体およびインターネット等の伝送媒体を介して流通させることができるのは言うまでもない。さらに、本発明は、このような情報処理装置の機能の一部または全てを実現する半導体集積回路LSIとして実現できる。本発明により、共有ライブラリの改竄により影響を受けるプロセスのみが停止される。したがって、揮発メモリにロードされた共有ライブラリが改竄された場合の影響が抑制される。以下、本発明の実施の形態について、図面を参照しながら説明する。実施の形態1本発明の実施の形態1に係る情報処理装置は、アプリケーションのプロセス空間にロードされた共有ライブラリに対して、プロセス実行中に共有ライブラリの改竄検出を行う。共有ライブラリの改竄が検出された場合、情報処理装置は、改竄された共有ライブラリを利用しているプロセスの実行を停止する。そして、情報処理装置は、不揮発メモリにある共有ライブラリを再ロードして回復する。また、情報処理装置は、回復後に停止していたプロセスを再開させる。これにより、改竄された共有ライブラリを利用している複数のプロセスが、回復される。まず、図1を用いて、情報処理装置の全体構成について説明する。図1は、本発明の実施の形態1に係る情報処理装置の全体構成図である。図1では、情報処理装置10が電源起動し、第1アプリプロセス210と第2アプリプロセス220が実行している状態の情報処理装置10の全体構成が示されている。情報処理装置10は、不揮発メモリ100と、揮発メモリ200と、システムLSI300とを備える。システムLSI300は、外部バスを介して、不揮発メモリ100および揮発メモリ200に接続されている。また、システムLSI300は、CPU410と、IPLInitialProgramLoader420と、切替え管理部430と、保護メモリ400とを備える。保護メモリ400には、ロードされたセキュアブート部440と、セキュアOS450と、セキュアアプリ460とが記憶されている。セキュアブート部440と、セキュアOS450と、セキュアアプリ460とは、CPU410により、機能部として、動作する。不揮発メモリ100には、第1アプリ110と、第2アプリ120と、リンカローダ130と、第1共有ライブラリ141と、第2共有ライブラリ142と、第3共有ライブラリ143とが記憶されている。さらに、不揮発メモリ100には、OS150と、検出回復部160と、ハッシュリスト保持部170と、鍵保持部180とが記憶されている。揮発メモリ200には、第1アプリプロセス210と、第2アプリプロセス220と、OS250と、検出回復部260とが記憶されている。第1アプリプロセス210と、第2アプリプロセス220と、OS250と、検出回復部260とは、CPU410により、機能部として、動作する。検出回復部160は、揮発メモリ200上にロードされた第1アプリプロセス210、第2アプリプロセス220、第1共有ライブラリ141、第2共有ライブラリ142および第3共有ライブラリ143の改竄を検出する機能を有する。そして、検出回復部160は、改竄された共有ライブラリを利用しているアプリプロセスを一時停止する機能を有する。また、共有ライブラリの改竄が検出された場合、検出回復部160は、不揮発メモリ100にある共有ライブラリを揮発メモリ200へ再度ロードしなおす機能を有する。これにより、検出回復部160は、揮発メモリ200の共有ライブラリを回復させる機能を有する。そして、検出回復部160は、回復後に一時停止していたアプリプロセスを再開させる。検出回復部260の詳細な動作については図11~図18を用いて後述する。不揮発メモリ100のOS150および検出回復部160は、それぞれ、揮発メモリ200のOS250および検出回復部260として、ロードされ、CPU410により機能部として動作する。また、不揮発メモリ100のリンカローダ130は、図3に示すように揮発メモリ200のアプリプロセス空間にロードされ、CPU410により機能する。不揮発メモリ100の第1アプリ110および第2アプリ120は、それぞれ、揮発メモリ200へロードされ、第1アプリプロセス210および第2アプリプロセス220として動作する。リンカローダ130は、第1アプリプロセス210のプロセス空間に、第1アプリプロセス210の動作に必要な、第1共有ライブラリ141、第2共有ライブラリ142および第3共有ライブラリ143をロードする。同様に、リンカローダ130は、第2アプリプロセス220のプロセス空間に、第2アプリプロセス220の動作に必要な、第1共有ライブラリ141、第2共有ライブラリ142および第3共有ライブラリ143をロードする。プロセス空間の説明は、図3を用いて後述する。ハッシュリスト保持部170は、揮発メモリ用共有ライブラリハッシュリストを保持している。揮発メモリ用共有ライブラリハッシュリストには、揮発メモリ200にロードされた第1共有ライブラリ141、第2共有ライブラリ142および第3共有ライブラリ143の参照ハッシュ値がリスト化されている。このリストは、図10を用いて後述する。また、ハッシュリスト保持部170は、不揮発メモリ用共有ライブラリハッシュリストも保持している。不揮発メモリ用共有ライブラリハッシュリストは、不揮発メモリ100の第1共有ライブラリ141、第2共有ライブラリ142および第3共有ライブラリ143の参照ハッシュ値がリスト化されている。このリストは、図9を用いて後述する。また、ハッシュリスト保持部170は、電源起動後からアプリ起動まで各ソフトウェアセキュアブート部440、セキュアOS450、セキュアアプリ460、OS150および検出回復部160の参照ハッシュ値を記録したリスト図示しないも保持している。ハッシュリスト保持部170が保持しているこれらのハッシュリストは、ハッシュリスト自身の完全性を検証するため、署名が付与されている。鍵保持部180は、ハッシュリストの署名を検証するために利用される署名検証鍵を保持している。ここでの署名は、公開鍵暗号方式に基づくデジタル署名方式を利用する。鍵保持部180は、公開鍵暗号方式における公開鍵に相当する鍵を保持している。続いて、図2を用いて情報処理装置10の電源投入後からアプリが起動するまでのセキュアブートについて説明する。図2は、図1に示された情報処理装置10の起動時のシーケンス図であって、電源投入からアプリ起動までの動作を示す。情報処理装置10は、電源が投入された後、システムLSI300内部にあるIPL420を起動する。IPL420は、セキュアブート用ハッシュリスト図示しないを用いて、IPL420自身の改竄検証を行い、その後、情報処理装置10内の保護メモリ400、切替え管理部430、および、周辺回路図示しないを初期化するS101。初期化後、IPL420は、セキュアブート用ハッシュリストを用いて、セキュアブート部440が改竄されていないか検証する。改竄されていなければ、IPL420は、セキュアブート部440をロードするS102。次に、セキュアブート部440は、セキュアブート用ハッシュリストを用いて、セキュアOS450が改竄されていないか検証するS103。検証S103の結果、セキュアOS450が改竄されていなければ、セキュアブート部440は、セキュアOS450をロードするS104。ここで図示しないが、OS250から切替え管理部430を介してセキュアアプリ460の起動要求があれば、セキュアOS450は、セキュアアプリ460をロードする。セキュアOS450は、セキュアアプリ460のロード前に、セキュアブート用ハッシュリストを用いて、セキュアアプリ460が改竄されていないか検証する。改竄されていなければ、セキュアOS450は、セキュアアプリ460をロードする。セキュアOS450のロード後、セキュアブート部440は、セキュアブート用ハッシュリストを用いて、不揮発メモリ100のOS150が改竄されていないか検証するS105。検証S105の結果、不揮発メモリ100のOS150が改竄されていなければ、セキュアブート部440は、不揮発メモリ100のOS150を揮発メモリ200のOS250としてロードするS106。次に、揮発メモリ200へロードされたOS250は、アプリ起動要求時、セキュアブート用ハッシュリストを用いて、不揮発メモリ100の第1アプリ110、第2アプリ120が改竄されていないか検証するS107。検証S107の結果、不揮発メモリ100の第1アプリ110、第2アプリ120が改竄されていなければ、OS250は、不揮発メモリ100の第1アプリ110を揮発メモリ200の第1アプリプロセス210としてロードする。また、同様に、OS250は、不揮発メモリ100の第2アプリ120を揮発メモリ200の第2アプリプロセス220としてロードするS108。ここで、プロセス内で利用される共有ライブラリは、プロセス起動時にロードされてもよいし、動的にロードされてもよい。第1アプリ110および第2アプリ120が第1アプリプロセス210および第2アプリプロセス220としてロードされた後、第1アプリプロセス210および第2アプリプロセス220が実行されるS109。なお、図示していないが、OS250は、第1アプリ110および第2アプリ120と同様に、検出回復部160も改竄されているか否かを検証する。また、検証S103、S105、S107で改竄されたと判定された場合、ブートは中止される。また、セキュアブート用ハッシュリストは、鍵保持部180に保持している公開鍵で署名検証される。そして、署名検証された結果が正常の時のみ、IPL420、セキュアブート部440およびセキュアOS450は、改竄を検証する。一方、ハッシュリストの署名検証された結果が正常でない場合、IPL420等は、ブートを中止する。また、上述の手順に含まれるセキュアブートには、非特許文献1のTCGTrustedComputingGroupのMPWGMobilePhoneWorkGroupで規定されたセキュアブートが用いられてもよい。また、セキュアブート部440、セキュアOS450およびセキュアアプリ460は、ロード前に、システムLSI300内に静的なデータとして保持されていてもよい。もしくは、そのような静的なデータは、情報処理装置10で生成されるシステム固有鍵で暗号化され、不揮発メモリ100に記録されていてもよい。そして、そのデータは、システム固有鍵で復号されて、保護メモリ400にロードされてもよい。以上で、電源起動後からアプリ起動までのフローチャートの説明を終わる。図3は、図1に示された第1アプリプロセス210のプロセス空間を示す図である。プロセス空間には、一般にカーネル空間とユーザ空間が存在するが、図3では、ユーザ空間のみが示されている。図3に示された例では、第1アプリプロセス210が、第1共有ライブラリ141lib1.so、第2共有ライブラリ142lib2.so、および、第3共有ライブラリ143lib3.soの機能を利用する。このような場合、第1アプリ110、第1共有ライブラリ141lib1.so、第2共有ライブラリ142lib2.so、第3共有ライブラリ143lib3.so、および、リンカローダ130が、揮発メモリ200にロードされる。そして、それらが、第1アプリプロセス210の仮想アドレス空間にマップされる。リンカローダ130は、第1アプリプロセス210が所望の動作をするのに必要な共有ライブラリをロードする機能を有する。リンカローダ130の詳細な動作については、非特許文献2のLinkersLoadersの書籍に詳しく説明されている。なお、第1アプリプロセス210の仮想アドレス空間には、不揮発メモリ100上の第1アプリ110、および、第1共有ライブラリ141lib1.so等が、マップされてもよい。図4は、第1アプリプロセス210および第2アプリプロセス220の各プロセス空間における仮想アドレスと物理アドレスとの関係を示す図である。共有ライブラリは、複数のプロセスで共有して利用できるように作成されたライブラリである。図4のように第1共有ライブラリ141、第2共有ライブラリ142および第3共有ライブラリ143は、複数のプロセスで利用される。リンカローダ130は、不揮発メモリ100にファイルとして存在する第1共有ライブラリ141、第2共有ライブラリ142および第3共有ライブラリ143を揮発メモリ200の物理アドレスのページにロードする。第1共有ライブラリ141、第2共有ライブラリ142および第3共有ライブラリ143は、後述のコンパイラおよびリンカによって、オブジェクトファイル形式になっている。各共有ライブラリの実行コードであるtextセクションは、実行可能な属性が付与されたページにロードされる。各共有ライブラリの読み書き可能なデータ領域であるdataセクションは、読み書き可能な属性が付与されたページにロードされる。オブジェクトファイル形式については、図6を用いて後述する。図4の場合、第1アプリプロセス210および第2アプリプロセス220の両方の仮想アドレス空間に、第1共有ライブラリ141lib1.soおよび第2共有ライブラリ142lib2.soがある。これらの仮想アドレス空間の第1共有ライブラリ141lib1.soおよび第2共有ライブラリ142lib2.soに、物理アドレス上にあるlib1.soおよびlib2.soがマップされている。そのため、マルウェアにより物理アドレス上のlib1.soとlib2.soが改竄されると、第1アプリプロセス210と第2アプリプロセス220に改竄の影響が及ぶ。改竄された共有ライブラリの回復については、図11から図18を用いて後述する。図5は、ハッシュリスト保持部170によって保持されている不揮発メモリ用共有ライブラリハッシュリスト508および揮発メモリ用共有ライブラリハッシュリスト509の生成動作の概要を示す図である。コンパイラ502は、共有ライブラリ504のソースコード501をコンパイルすることにより、オブジェクトコードを生成する。リンカ503は、生成されたオブジェクトコードに必要なライブラリをリンクする。つまり、リンカ503は、オブジェクトコードに必要なライブラリを付け加える。そして、リンカ503は、必要なライブラリが付け加えられたオブジェクトコードを共有ライブラリ504として出力する。ハッシュリスト生成ツール507は、開発マシン上で動作するツールである。ハッシュリスト生成ツール507は、共有ライブラリ504、秘密鍵505およびPrelinkマップ506を入力とし、不揮発メモリ用共有ライブラリハッシュリスト508および揮発メモリ用共有ライブラリハッシュリスト509を出力する。より具体的には、ハッシュリスト生成ツール507は、共有ライブラリ504の参照ハッシュ値を生成する。そして、ハッシュリスト生成ツール507は、参照ハッシュ値をリスト化することにより、不揮発メモリ用共有ライブラリハッシュリスト508および揮発メモリ用共有ライブラリハッシュリスト509を生成する。その後、ハッシュリスト生成ツール507は、秘密鍵505で不揮発メモリ用共有ライブラリハッシュリスト508および揮発メモリ用共有ライブラリハッシュリスト509に署名を付与する。ハッシュリスト生成ツール507内の詳細動作は、図8を用いて後述する。なお、図1に示された情報処理装置10が、図5に示された各機能部を備えることにより、不揮発メモリ用共有ライブラリハッシュリスト508および揮発メモリ用共有ライブラリハッシュリスト509を生成してもよい。または、開発マシン等の他の装置が、不揮発メモリ用共有ライブラリハッシュリスト508および揮発メモリ用共有ライブラリハッシュリスト509を生成してもよい。図6は、図5に示された共有ライブラリ504のファイルフォーマットを示す図である。図6では、共有ライブラリ504が、ELFExecutableandLinkableFormat形式のオブジェクトファイル形式で示されている。詳細は、非特許文献2のLinkersLoadersで説明されている。共有ライブラリ504は、複数のセクションから構成され、各セクションには読み出し属性、書き込み属性、または、読み出し属性および書き込み属性の両方が付与されている。読み出し属性のみが付与されたセクションは、読み出し専用のセクションである。読み出し属性および書き込み属性の両方が付与されたセクションは、読み書き可能なセクションである。図6に示された複数のセクションのうち、ヘッダ、hash、dynsym、dynstr、plt、textおよびrodataの各セクションは、読み出し専用のセクションである。一方、図6に示された複数のセクションのうち、data、got、dynamicおよびbssの各セクションは、読み書き可能なセクションである。図1の第1共有ライブラリ141、第2共有ライブラリ142および第3共有ライブラリ143のファイル形式は、図6で示すファイル形式で記憶されている。読み出し専用セクションは、揮発メモリ200にロードされる際に、読み出し専用属性が付与されて物理ページおよび仮想ページにマップされる。また、読み書き可能なセクションは、揮発メモリ200にロードされる際に、読み出し属性および書き込み属性が付与されて物理ページおよび仮想ページにマップされる。図7は、図5に示されたハッシュリスト生成ツール507に入力されるPrelinkマップ506を示す図である。Prelinkマップ506は、ライブラリ名とマップアドレスが記載されたファイルである。図7の例で説明すると、第1共有ライブラリ141は、lib1.soというファイル名である。そして、lib1.soのマップアドレスは、0xA0000000である。したがって、lib1.soは、プロセスの仮想アドレス空間の0xA0000000にマップされる。第1共有ライブラリ141と同様に、第2共有ライブラリ142のlib2.soは、仮想アドレス空間の0xA0004000にマップされる。また、第3共有ライブラリ143のlib3.soは、仮想アドレス空間の0xA0008000にマップされる。図8は、ハッシュリスト生成ツール507における入力から出力までの動作を示すフローチャートである。ここで、入力は、共有ライブラリ504、秘密鍵505およびPrelinkマップ506である。出力は、不揮発メモリ用共有ライブラリハッシュリスト508または揮発メモリ用共有ライブラリハッシュリスト509である。まず、ハッシュリスト生成ツール507は、不揮発メモリ用共有ライブラリハッシュリスト508を生成するモードなのか、揮発メモリ用共有ライブラリハッシュリスト509を生成するモードなのかを判断するS801。図示していないが、この判断には、生成モードが、ハッシュリスト生成ツール507に入力パラメータとして与えられてもよい。ハッシュリスト生成ツール507は、判断S801の結果、不揮発メモリ用共有ライブラリハッシュリスト508を生成する場合、不揮発メモリ100において改竄をチェックする対象になる共有ライブラリ504を読み込むS802。次に、ハッシュリスト生成ツール507は、前段のステップS802で読み込んだ共有ライブラリ504のハッシュ値を算出する。そして、ハッシュリスト生成ツール507は、算出したハッシュ値を参照ハッシュ値として不揮発メモリ用共有ライブラリハッシュリスト508に登録するS803。次に、ハッシュリスト生成ツール507は、不揮発メモリ用共有ライブラリハッシュリスト508に、入力された秘密鍵505で署名を付与するS804。最後に、ハッシュリスト生成ツール507は、不揮発メモリ用共有ライブラリハッシュリスト508を出力するS805。ここで、モードを判断するステップS801に戻って説明を再開する。ハッシュリスト生成ツール507は、判断S801の結果、揮発メモリ用共有ライブラリハッシュリスト509を生成する場合、揮発メモリ200において改竄をチェックする対象になる共有ライブラリ504を読み込むS806。次に、ハッシュリスト生成ツール507は、前段のステップS806で読み込んだ共有ライブラリ504を、ファイルフォーマットに従って解析し、読み出し専用領域のハッシュ値を参照ハッシュ値として算出するS807。実施の形態1では、ハッシュリスト生成ツール507は、図6に示すELF形式のオブジェクトファイルを解析し、ELF形式の読み出し専用領域に対してハッシュ値を算出する。次に、ハッシュリスト生成ツール507は、Prelinkマップ506を読み込むS808。次に、ハッシュリスト生成ツール507は、共有ライブラリ名と、マップアドレスと、ハッシュ値とを揮発メモリ用共有ライブラリハッシュリスト509に登録するS809。ここで、共有ライブラリ名は、改竄チェック対象の共有ライブラリ名である。マップアドレスは、仮想アドレスにおいて共有ライブラリ504がマップされるマップアドレスである。ハッシュ値は、参照ハッシュ値として算出されたハッシュ値である。次に、ハッシュリスト生成ツール507は、揮発メモリ用共有ライブラリハッシュリスト509に、入力された秘密鍵505で署名を付与するS810。最後に、ハッシュリスト生成ツール507は、揮発メモリ用共有ライブラリハッシュリスト509を出力するS811。なお、ハッシュ値算出に利用するハッシュアルゴリズムは、SHA1、SHA2、MD4またはMD5など一方向性関数であるハッシュ関数を利用してもよい。また、署名生成に利用する署名方式は、RSA署名、ElGmal署名またはDSA署名など一般に広く利用されるデジタル署名方式でもよい。また、ハッシュリスト生成ツール507は、揮発メモリ用のハッシュ値生成のステップS807において読み出し専用領域のハッシュ値を算出する際に、リロケーション部分をスキップするようにしてハッシュ値を算出するようにしてもよい。また、ハッシュリスト生成ツール507は、各ハッシュリストを登録する際S803、S809、共有ライブラリ504のサイズを登録してもよい。そして、ハッシュリスト生成ツール507は、揮発メモリ用共有ライブラリハッシュリスト509には、共有ライブラリ504のサイズとして、読み出し専用領域のサイズを登録してもよい。図9は、図5に示された不揮発メモリ用共有ライブラリハッシュリスト508を具体的に示す図である。図9に示された不揮発メモリ用共有ライブラリハッシュリスト508には、チェック対象の共有ライブラリのファイル名、および、参照ハッシュ値が登録されている。ここで、参照ハッシュ値は、図8のハッシュ値生成のステップS803で算出されたハッシュ値である。そして、不揮発メモリ用共有ライブラリハッシュリスト508には、秘密鍵505によって署名が付与されている。図10は、図5に示された揮発メモリ用共有ライブラリハッシュリスト509を具体的に示す図である。図10に示された揮発メモリ用共有ライブラリハッシュリスト509は、チェック対象の共有ライブラリのファイル名、共有ライブラリの仮想アドレス、共有ライブラリのサイズ、および、参照ハッシュ値が登録されている。ここで、参照ハッシュ値は、図8のハッシュ値生成のステップS807で算出されたハッシュ値である。そして、揮発メモリ用共有ライブラリハッシュリスト509には、秘密鍵505によって署名が付与されている。図9に示された不揮発メモリ用共有ライブラリハッシュリスト508と、不揮発メモリ100内の共有ライブラリから得られる情報との比較によって、不揮発メモリ100内の共有ライブラリの改竄が検出される。同様に、図10に示された揮発メモリ用共有ライブラリハッシュリスト509と、揮発メモリ200内の共有ライブラリから得られる情報との比較によって、揮発メモリ200内の共有ライブラリの改竄が検出される。すなわち、予め共有ライブラリから抽出されるハッシュ値等の情報と、不揮発メモリ100内または揮発メモリ200内の共有ライブラリから抽出されるハッシュ値等の情報とが比較されることにより、改竄が検出される。図11は、図1に示された情報処理装置10の構成を示す図である。図11では、特に、図1に示された検出回復部160の構成が示されている。検出回復部160は、改竄検出部改竄判定部とも称される161、プロセス制御部162および共有ライブラリ回復部165を備える。また、検出回復部160は、プロセス管理情報保持部プロセス動作情報保持部とも称される163および共有ライブラリ管理情報保持部単に共有ライブラリ情報保持部とも称される164を備える。改竄検出部161は、アプリケーションのプロセス空間にロードされた揮発メモリ200上の共有ライブラリに対して、プロセス実行中に共有ライブラリの改竄検出を行う。プロセス制御部162は、改竄検出部161によって改竄されていると判定された共有ライブラリを利用しているプロセスを特定する。そして、プロセス制御部162は、特定したプロセスを一時停止させる。その後、共有ライブラリ回復部165は、不揮発メモリ100から揮発メモリ200へ共有ライブラリを再ロードする。これにより、共有ライブラリが、改竄された状態から回復される。回復後、プロセス制御部162は、一時停止していたプロセスを再開させる。プロセス管理情報保持部163は、図13に示すプロセス管理情報プロセス動作情報とも称される1630、および、図16に示す停止プロセスコンテキスト情報単に停止プロセス情報とも称される1631を保持する。なお、停止プロセスコンテキスト情報は、プロセス管理情報保持部163とは別の保持部に保持されてもよい。共有ライブラリ管理情報保持部164は、図15に示す共有ライブラリ管理情報単に共有ライブラリ情報とも称される1640を保持する。共有ライブラリ回復部165は、不揮発メモリ100から揮発メモリ200へ共有ライブラリを再ロードすることにより、改竄された共有ライブラリを回復する。なお、不揮発メモリ100上の検出回復部160は、図1に示された検出回復部260として、揮発メモリ200にロードされる。したがって、図1に示された検出回復部260は、不揮発メモリ100上の検出回復部160と同等の機能部として動作する。なお、実施の形態1において、不揮発メモリ100内の検出回復部160が揮発メモリ200にロードされ、揮発メモリ200内の検出回復部260が、検出および回復の動作を実行する。しかし、検出回復部160は、情報処理装置10における電子回路であってもよい。例えば、改竄検出部161、プロセス制御部162、プロセス管理情報保持部163、共有ライブラリ管理情報保持部164および共有ライブラリ回復部165は、集積回路として実装されてもよい。また、これらのうち、演算を実行する改竄検出部161、プロセス制御部162および共有ライブラリ回復部165のみが集積回路として実装されてもよい。また、CPU410は、不揮発メモリ100内の検出回復部160を、揮発メモリ200にロードせず、直接実行してもよい。また、情報処理装置10は、プロセスの動作情報を管理することなく共有ライブラリを回復させてもよい。この場合、プロセスの情報を保持しているプロセス管理情報保持部163は、無くてもよい。また、プロセス管理情報保持部163および共有ライブラリ管理情報保持部164は、情報を保持するための記憶部である。これらの保持部は、情報を保持するための記憶部をハードウェアとして有し、さらに、当該記憶部に情報を格納する機能を有していてもよい。また、これらの保持部は実質的に1個の記憶部であって、当該記憶部に複数の情報が区分して格納されてもよい。図12は、図1に示された情報処理装置10内で複数のプロセスが起動している状態を示す図である。図12では、各種初期化を行うInitプロセス205、第1アプリプロセス210、第2アプリプロセス220、第3アプリプロセス230および第4アプリプロセス240が起動した状態が示されている。各アプリプロセスは、図12のように、第1共有ライブラリ141、第2共有ライブラリ142および第3共有ライブラリ143のうち少なくとも1つを利用する。以降、図12のような複数プロセスが起動している状態を前提に説明する。図13は、図11に示されたプロセス管理情報保持部163が保持するプロセス管理情報を示す図である。図13に示されたプロセス管理情報1630は、プロセスを識別するためのプロセスIDと、その親プロセスを示す親プロセスIDと、プロセスが起動中なのか停止中なのかを示すステータスを含む。図13は、図12のような、複数プロセスが起動している状態を示している。図12に示されたプロセスの全てが起動中であるため、全てのプロセスのステータスはRUNとして保持されている。図14は、図11に示されたプロセス管理情報保持部163が保持するプロセス管理情報を示す図であって、改竄検出後のプロセス管理情報を示す図である。例えば、改竄検出部161は、プロセスID100とプロセスID200のプロセスにロードされているlib2.soの改竄を検出する。そして、プロセス制御部162は、プロセスID100とプロセスID200のプロセスを一時停止させる。図14には、プロセスID100とプロセスID200のプロセスが一時停止された後のプロセス管理情報1630が示されている。停止したプロセスのステータスには、プロセスが一時停止状態であることを示すSTOPが記録される。なお、プロセスが、一時停止ではなく、完全に停止した場合、プロセス管理情報1630から情報が削除されてもよい。これにより、一時的な停止と、完全な停止とが区別される。プロセス制御部162は、一時停止させたプロセスのステータスをSTOPに更新する。また、プロセス制御部162は、共有ライブラリの回復後、プロセス管理情報1630を参照することにより、一時停止させたプロセスを特定することができる。そして、プロセス制御部162は、特定されたプロセスを再開することができる。改竄検出部161は、プロセス管理情報1630から、動作しているプロセスを特定し、特定されたプロセスが利用する共有ライブラリが改竄されているか否かを判定してもよい。図15は、図11に示された共有ライブラリ管理情報保持部164が保持する共有ライブラリ管理情報を示す図である。図15に示された共有ライブラリ管理情報1640は、共有ライブラリのファイルパスと、共有ライブラリがロードされている仮想アドレスと、共有ライブラリを利用しているプロセスのプロセスIDとを含む。例えば、図15に示された共有ライブラリ管理情報1640は、/system/lib/lib1.soが仮想アドレスの0xA0000000から0xA0001000にロードされていることを示している。また、共有ライブラリ管理情報1640は、プロセスIDが100、200、300である各プロセスで/system/lib/lib1.soが利用されていることを示している。なお、共有ライブラリ管理情報1640は、共有ライブラリがロードされたタイミングで生成される。また、本実施の形態では、共有ライブラリは、Prelinkされるライブラリとして説明されている。しかし、非Prelinkのライブラリが、改竄チェックされる対象であってもよい。非Prelinkのライブラリは、ロードされる仮想アドレスが固定ではない。そのため、非Prelinkのライブラリが改竄チェックされる対象に含まれる場合、共有ライブラリ管理情報保持部164は、Prelinkのライブラリと非Prelinkのライブラリとを区別するための情報を仮想アドレスフィールドに登録してもよい。例えば、共有ライブラリ管理情報保持部164は、共有ライブラリ管理情報1640において、非Prelinkのライブラリについての仮想アドレスフィールドをNULLにしてもよい。また、共有ライブラリ管理情報保持部164は、仮想アドレスフィールドのない共有ライブラリ管理情報1640を、別途生成することにより、保持してもよい。図16は、図11に示されたプロセス管理情報保持部163が保持する停止プロセスコンテキスト情報を示したものである。図16に示された停止プロセスコンテキスト情報1631は、停止したプロセスが再開するために必要な情報を有する。停止プロセスコンテキスト情報1631は、停止したプロセスを識別するプロセスIDと、プロセス停止時のプログラムカウンタPCと、スタックポインタSPと、フレームポインタFPとを含む。また、図示していないが、停止プロセスコンテキスト情報1631は、プロセスを再開させるために必要な情報であるCPU410の各種レジスタ情報を含んでもよい。停止プロセスコンテキスト情報1631は、上記のような、プロセスの動作状態を示す動作状態情報を含んでもよい。また、停止プロセスコンテキスト情報1631は、プロセスの動作過程であるスタックの情報を含んでもよい。また、停止プロセスコンテキスト情報1631は、プロセスの進行状態を示す進行状態情報を含んでもよい。上述のように、停止プロセスコンテキスト情報1631は、プログラムカウンタPCの情報を進行状態情報として含んでもよい。また、停止プロセスコンテキスト情報1631は、プロセスの動作履歴を示す動作履歴情報を含んでもよい。上述のように、停止プロセスコンテキスト情報1631は、スタックの情報を動作履歴情報として含んでもよい。そして、プロセス制御部162は、停止プロセスコンテキスト情報1631によって示される進行状態に依存させて、プロセスを再開させてもよい。また、プロセス制御部162は、停止プロセスコンテキスト情報1631に含まれる動作履歴情報を参照して、共有ライブラリの利用前の状態で、プロセスを再開させてもよい。図17および図18は、本発明の実施の形態1に係る共有ライブラリ回復動作のシーケンス図である。ここから、図17と図18を用いて揮発メモリ200上の共有ライブラリの改竄検出および回復について説明する。まず、改竄検出部161は、プロセス空間の揮発メモリ200上にロードされている共有ライブラリのハッシュ値を算出するS2001。次に、改竄検出部161は、前段のステップS2001で算出したハッシュ値と、揮発メモリ用共有ライブラリハッシュリスト509の参照ハッシュ値とを比較し、揮発メモリ200上の共有ライブラリが改竄されているか否かを判定するS2002。次に、改竄検出部161は、判定S2002の結果、改竄ありと判定された場合、プロセス制御部162へ、改竄されたライブラリを利用しているプロセスを停止するよう要求するS2003。ここで、判定S2002の結果、改竄なしと判定された場合は、プロセスは停止されず継続される。改竄検出部161は、別のプロセス空間にロードされている別の共有ライブラリを改竄チェック対象として選択して、ハッシュ値算出のステップS2001に戻る。なお、改竄検出部161による共有ライブラリの改竄チェックは、プロセス実行中に定期的に行われてもよいし、プロセスの特定の動作タイミングで行われてもよい。改竄検出部161は、プロセスが行うべき所望の動作に支障がないような形で共有ライブラリの改竄チェックを行う。次に、プロセス制御部162は、共有ライブラリ管理情報保持部164に保持されている共有ライブラリ管理情報1640を参照するS2004。そして、プロセス制御部162は、改竄と判定された共有ライブラリを利用しているプロセスを特定するS2005。次に、プロセス制御部162は、前段のステップS2005で特定したプロセスを停止するS2006。次に、プロセス制御部162は、前段のステップS2006で停止したプロセスを再開するのに必要な情報を、停止プロセスコンテキスト情報1631として生成する。そして、プロセス管理情報保持部163は、生成された停止プロセスコンテキスト情報1631を記録するS2007。次に、プロセス制御部162は、プロセス管理情報保持部163が保持するプロセス管理情報1630によって記録されているステータスであって、停止したプロセスのステータスをSTOPに更新するS2008。次に、改竄検出部161は、判定のステップS2002で改竄と判定された揮発メモリ200上の共有ライブラリに対応する不揮発メモリ100上の共有ライブラリのハッシュ値を算出するS2009。次に、前段のステップS2009で算出したハッシュ値と、不揮発メモリ用共有ライブラリハッシュリスト508の参照ハッシュ値とを比較し、不揮発メモリ100上の共有ライブラリが改竄されているか否かを判定するS2010。ここで、判定S2010の結果、改竄ありと判定された場合、情報処理装置10は、後続のステップを中止してもよい。次に、共有ライブラリ回復部165に対し、改竄された共有ライブラリの回復を要求するS2011。次に、共有ライブラリ回復部165は、改竄された共有ライブラリを利用しているプロセスに対し、改竄された共有ライブラリをアンマップし、回復対象の共有ライブラリを不揮発メモリ100から揮発メモリ200へロードするS2012。その後、共有ライブラリ回復部165は、共有ライブラリをプロセス空間に再マップすることにより、共有ライブラリを回復するS2013。ここで、共有ライブラリが再ロード前の物理アドレスとは異なる物理アドレスにロードされた場合でも、再マップによって、プロセスが共有ライブラリを利用することができる。一方、共有ライブラリが再ロード前の物理アドレスと同じ物理アドレスにロードされた場合、再マップなしで、プロセスが共有ライブラリを利用することができる。したがって、共有ライブラリ回復部165は、共有ライブラリをプロセス空間に再マップしなくてもよい。次に、プロセス制御部162は、プロセス管理情報保持部163に記録されている停止プロセスコンテキスト情報1631を参照し、停止プロセスを再開するために必要な情報を読み込むS2014。次に、プロセス制御部162は、プロセス管理情報保持部163が保持しているプロセス管理情報1630内のSTOPをRUNに更新するS2015。最後に、プロセス制御部162は、読み込みステップS2014で読み込んだ情報を利用し、一時停止していたプロセスを再開させるS2016。なお、改竄検出部161は、回復前に、不揮発メモリ100上の共有ライブラリの改竄チェックを行っているS2009、S2010。しかし、改竄検出部161は、改竄がないことが明らかであれば、改竄チェックを必ずしも実施する必要がない。また、本実施の形態では、改竄検出部161は、プロセス実行中に揮発メモリ200上の共有ライブラリの改竄チェックを行っている。しかし、具体的な改竄チェックのタイミングは、プロセス実行中の定期的なタイミング、プロセスの起動時、または、特定の動作のタイミング等でも良い。改竄チェックのタイミングは、これらの例に限定されない。このように、改竄された共有ライブラリを利用するプロセスのみが一時停止されるため、改竄された共有ライブラリを利用していないプロセスは継続動作できる。また、情報処理装置10は、改竄検出後に、改竄された共有ライブラリを利用するプロセスを一時停止させるため、改竄の影響を最小限に抑えることができる。また、情報処理装置10は、改竄された共有ライブラリを回復することにより、改竄された共有ライブラリを利用しているプロセスを回復することもできる。図19、図20を用いて、改竄された共有ライブラリを検出し、プロセスを一時停止したタイミングが異なる場合について説明する。図19は、第1アプリプロセス210の第2共有ライブラリ142lib2.soの改竄が検出された時におけるプロセス空間とプログラムカウンタPCの状態を示す図である。図20は、アプリと共有ライブラリの呼出関係を示す図である。この例では、図19のaからcまでの各状態におけるApp_A.exe、および、App_A.exeが利用する各共有ライブラリlib1.so、lib2.so、lib3.soには、図20のような呼出関係がある。図19のaは、第2共有ライブラリ142lib2.soが実行される前に、lib2.soの改竄が検出された場合の状態を示している。図19のbは、第2共有ライブラリ142lib2.soが実行されている間に、lib2.soの改竄が検出された場合の状態を示している。図19のcは、第2共有ライブラリ142lib2.soが実行された後に、lib2.soの改竄が検出された場合を示している。図21は、図20のような呼出関係がある場合において、スタックの伸張を示す図である。一般に、スタックは、スタックフレーム単位で管理される。各スタックフレームには、関数に必要なローカル変数、関数呼出時の戻り先アドレス、関数呼出時に渡すべき引数、上位のフレームポインタのアドレス、および、ここに図示しないCPU410のレジスタの値等が含まれる。図22は、停止したプロセスの再開動作を示すフローチャートである。また、図22は、図18に示された読み込みステップS2014以降の動作に対応した図である。図22に示されたように、改竄が検出されることにより停止したプロセスは、プロセスのPCが示すアドレスに応じて、再開される。まず、プロセス制御部162は、プロセス管理情報保持部163が保持している停止プロセスコンテキスト情報1631を読み込むS2201。次に、プロセス制御部162は、停止時のプログラムカウンタPCの位置を判定するS2202。判定S2202の結果、停止プロセスコンテキスト情報1631によって示されるPCが、改竄されたライブラリ実行前のアドレスであれば、プロセス制御部162は、停止時のPCからプロセスを再開させるS2203。また、判定S2202の結果、停止プロセスコンテキスト情報1631によって示されるPCが、改竄されたライブラリ実行中のアドレスであれば、プロセス制御部162は、改竄された共有ライブラリが実行される前の状態で、プロセスを再開させる。そのため、プロセス制御部162は、共有ライブラリが実行される前の状態になるまでスタックフレームを巻き戻して、プロセスを再開させるS2204。また、判定S2202の結果、停止プロセスコンテキスト情報1631によって示されるPCが、改竄されたライブラリ実行後のアドレスであれば、プロセス制御部162は、改竄された共有ライブラリが実行される前の状態で、プロセスを再開させる。そのため、プロセス制御部162は、共有ライブラリが実行される前の状態になるまでスタックフレームを巻き戻して、プロセスを再開させるS2205。プロセス制御部162は、図21に示すスタックポインタSPとフレームポインタFPを参照しながら、スタックフレームを巻き戻すことができる。スタックの巻き戻しの具体的な方法は、非特許文献3のデバッガ理論と実装に詳しく記載されているので説明を省略する。これにより、改竄された共有ライブラリの実行中もしくは実行後であっても、プロセス制御部162は、改竄のない状態までスタックを巻き戻してプロセスを再開させることができる。したがって、改竄のない状態でプロセスの実行が保証される。以上で実施の形態1の説明を終わる。実施の形態2続いて、本発明の実施の形態2に係る情報処理装置について説明する。複数のプロセス空間にロードされている共有ライブラリは、各プロセスにマップされている仮想アドレスが異なっても同じ物理アドレスに対応している。したがって、プロセス毎に独立して改竄検出が行われた場合、同一の共有ライブラリに対して、複数回、改竄チェックが行われることになる。つまり、同一の物理アドレスに対して、重複して改竄チェックが行われることになるため、改竄チェックの効率が悪くなる。そこで、実施の形態2は、改竄チェックの方法を効率的かつ網羅的に実施する形態である。実施の形態2における改竄検出と回復の動作は、実施の形態1と同様なので説明を省略する。以降、図23と図24を用いて、実施の形態2における改竄チェックについて実施の形態1と異なる部分のみを説明する。図23は、実施の形態2における共有ライブラリ管理情報を示す図である。図23に示された共有ライブラリ管理情報2300では、図15に示された実施の形態1の共有ライブラリ管理情報1640と比較して、チェックプロセスのフィールドが増えている。このフィールドには、プロセス空間にマップされた共有ライブラリの改竄がチェックされたプロセスのプロセスIDが記録される。図23の例では、lib1.soは、プロセスIDが100、200、300である3つのプロセスに、それぞれ、ロードされている。そして、プロセスIDが100であるプロセスの共有ライブラリがチェックされることにより、lib1.soの改竄がチェックされている。また、lib2.soは、プロセスIDが100、200である2つのプロセスに、それぞれ、ロードされている。そして、プロセスIDが200であるプロセスの共有ライブラリがチェックされることにより、lib2.soの改竄がチェックされている。また、lib3.soは、プロセスIDが100、300、400である3つのプロセスに、それぞれ、ロードされている。そして、lib3.soの改竄チェックは、どのプロセスでも未実行である。図24は、実施の形態2における改竄チェックのフローチャートである。まず、改竄検出部161は、揮発メモリ200上の共有ライブラリの改竄チェックを開始するS2401。次に、改竄検出部161は、共有ライブラリ管理情報2300を参照するS2402。次に、改竄検出部161は、改竄チェック対象の共有ライブラリが他のプロセスでチェックされたか否かを、共有ライブラリ管理情報2300を参照することで、判断するS2403。判断S2403の結果、改竄チェック対象の共有ライブラリが、他のどのプロセスでも改竄チェックされていないと判断されれば、改竄検出部161は、共有ライブラリ管理情報2300にプロセスIDを書き込むS2405。その後、改竄検出部161は、共有ライブラリの改竄をチェックするS2406。一方、判断S2403の結果、改竄チェック対象の共有ライブラリが、他のプロセスでチェック済みであると判定されれば、改竄検出部161は、別の共有ライブラリを選択するS2404。この場合、改竄検出部161は、プロセス空間にロード済みで、かつ、共有ライブラリ管理情報2300において改竄チェックが未実行である共有ライブラリを改竄チェック対象として選択するS2404。次に、改竄検出部161は、共有ライブラリ管理情報2300のチェックプロセスのフィールドに、共有ライブラリのチェックが行われているプロセスのプロセスIDを書き込むS2405。次に、改竄検出部161は、前段のステップS2404で選択した改竄チェック対象の共有ライブラリが揮発メモリ200上で改竄されていないかをチェックするS2406。改竄があれば、共有ライブラリ回復部165は、共有ライブラリを回復する。次に、改竄検出部161は、プロセス空間上にロードされている共有ライブラリを改竄チェック対象として選択するS2407。そして、改竄検出部161は、再度、共有ライブラリ管理情報2300を参照するS2402。これにより、複数のプロセス空間にロードされた共有ライブラリに対して、効率的に改竄をチェックすることが可能となる。以上で実施の形態2の説明を終わる。実施の形態3以下、実施の形態1および実施の形態2の特徴的な構成要素を実施の形態3として、説明する。実施の形態3に係る情報処理装置は、不揮発メモリに記憶されている共有ライブラリを揮発メモリにロードして、揮発メモリにロードされた共有ライブラリを利用するプロセスを動作させる。そして、実施の形態3に係る情報処理装置は、以下に示す構成および動作によって、揮発メモリにロードされた共有ライブラリが改竄された場合の影響を抑制する。図25は、実施の形態3に係る情報処理装置の構成図である。図25に示された情報処理装置10は、改竄判定部2501、共有ライブラリ情報保持部2504、プロセス制御部2502および共有ライブラリ回復部2505を備える。改竄判定部2501は、揮発メモリ内の共有ライブラリが改竄されているか否かを判定する。共有ライブラリ情報保持部2504は、共有ライブラリ情報を保持する。共有ライブラリ情報は、揮発メモリ内の共有ライブラリと、揮発メモリ内の共有ライブラリを利用するプロセスとの対応関係を示す情報を含む。プロセス制御部2502は、揮発メモリ内の共有ライブラリが改竄されていると判定された場合、共有ライブラリ情報を参照することにより、揮発メモリ内の共有ライブラリを利用するプロセスを特定する。そして、プロセス制御部2502は、特定されたプロセスを停止させる。共有ライブラリ回復部2505は、揮発メモリ内の共有ライブラリが改竄されていると判定された場合、不揮発メモリ内の共有ライブラリを揮発メモリに再ロードすることにより、揮発メモリ内の共有ライブラリを回復させる。図25に示された情報処理装置10のうち、改竄判定部2501、プロセス制御部2502および共有ライブラリ回復部2505が、集積回路で構成されてもよい。そして、情報を保持するための共有ライブラリ情報保持部2504は、別のメモリで構成されてもよい。図26は、図25に示された情報処理装置10の動作を示すフローチャートである。まず、改竄判定部2501は、揮発メモリ内の共有ライブラリが改竄されているか否かを判定するS2601。揮発メモリ内の共有ライブラリが改竄されていない場合S2601でNo、情報処理装置10は、動作を終了する。一方、揮発メモリ内の共有ライブラリが改竄されている場合S2601でYes、プロセス制御部2502は、共有ライブラリ情報保持部2504の共有ライブラリ情報を参照することにより、揮発メモリ内の共有ライブラリを利用するプロセスを特定する。そして、プロセス制御部2502は、特定されたプロセスを停止させるS2602。次に、共有ライブラリ回復部2505は、不揮発メモリ内の共有ライブラリを揮発メモリに再ロードすることにより、揮発メモリ内の共有ライブラリを回復させるS2603。上述の動作により、共有ライブラリの改竄により影響を受けるプロセスが停止される。これにより、実施の形態3に係る情報処理装置10は、改竄の影響を抑制することができる。また、揮発メモリの共有ライブラリは、不揮発メモリから回復される。これにより、改竄された共有ライブラリが再度利用される危険性が低減される。以上の通り、実施の形態1、実施の形態2および実施の形態3に示された情報処理装置10は、揮発メモリ200にロードされた共有ライブラリの改竄を検出した場合に、改竄が検出された共有ライブラリを利用するプロセスを一時停止させる。そして、情報処理装置10は、不揮発メモリ100にある共有ライブラリを揮発メモリ200へ再ロードする。これにより、共有ライブラリが回復される。また、プロセス空間の共有ライブラリが、改竄検出および回復の対象になる。そのため、保護された状態でプロセスが実行される。したがって、情報処理装置10は、プロセスの実行について完全性を保証することが必要な状況において有用である。例えば、情報処理装置10は、様々なプログラムを実行するPC、タブレットPC、テレビジョン受像機、携帯電話および民生機器等にも適用できる。なお、情報処理装置10は、プロセスを停止させずに、不揮発メモリ100にある共有ライブラリを揮発メモリ200へ再ロードし、再マップしてもよい。また、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。1上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、および、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。2上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSILargeScaleIntegration:大規模集積回路から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、および、RAMなどを含むコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部または全てを含むように1チップ化されてもよい。また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGAFieldProgrammableGateArray、または、LSI内部の回路セルの接続および設定を再構成可能なリコンフィギュラブルプロセッサを利用しても良い。さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積回路化を行ってもよい。バイオ技術の適用等が可能性としてありえる。3上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、および、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。4本発明は、上記に示す方法であるとしてもよい。また、本発明は、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を非一時的なコンピュータ読み取り可能な記録媒体に記録されることにより実現されてもよい。記録媒体は、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BDBlu-rayDiscまたは半導体メモリなどでもよい。また、本発明は、このような記録媒体に記録されている前記デジタル信号であるとしてもよい。また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線通信回線、有線通信回線、インターネットを代表とするネットワーク、または、データ放送等を経由して伝送する態様としてもよい。また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。また、前記コンピュータプログラムまたは前記デジタル信号が、記録媒体に記録され移送されることにより、あるいは、ネットワーク等を経由して移送されることにより、独立した他のコンピュータシステムに設定されてもよい。そして、他のコンピュータシステムが、前記コンピュータプログラムまたは前記デジタル信号に基づいて、本発明に係る方法を実施してもよい。5本発明は、上記実施の形態、および、上記変形例を組み合わせて実現されてもよい。