(57)【特許請求の範囲】
【請求項１】
第１のＣＰＵで動作する第１のオペレーションシステムと、前記第１のＣＰＵとは異なる第２のＣＰＵで動作する第２のオペレーションシステムとを有する情報処理装置であって、
前記第２のオペレーションシステムは、
デバイスの初期化待ちの前記第１のオペレーションシステムが使用するデバイスについて、前記デバイスの初期化を行うデバイス初期化部と、
前記デバイスの利用状況を監視するデバイス監視部と、
前記デバイスの異常を検知する異常検知部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記デバイス初期化部は、前記デバイスの初期化を行うと共に、前記デバイスの初期化が完了したことを前記第１のオペレーションシステムに通知することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記デバイス監視部は、前記デバイスの利用状況を常に監視することを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記異常検知部は、前記デバイス監視部で得られた情報に基づいて、前記デバイスの異常を検知することを特徴とする請求項１記載の情報処理装置。
【請求項５】
第１のＣＰＵで動作する第１のオペレーションシステムと、前記第１のＣＰＵとは異なる第２のオペレーションシステムとを有する情報処理装置での情報処理方法であって、
前記第２のオペレーションシステムが、デバイスの初期化待ちの前記第１のオペレーションシステムが使用するデバイスについて、前記デバイスの初期化を行うデバイス初期化工程と、
前記第２のオペレーションシステムが、前記デバイスの状況を監視するデバイス監視工程と、
前記第２のオペレーションシステムが、前記デバイスの異常を検知する異常検知工程と、
を含むことを特徴とする情報処理方法。
【請求項６】
第１のＣＰＵと、第１のＣＰＵとは異なる第２のＣＰＵとを備えるコンピュータの第２のＣＰＵで動作する第２のオペレーションシステムのプログラムで、
前記コンピュータを、
前記第１のＣＰＵで動作する、デバイスの初期化待ちの第１のオペレーションシステムが使用するデバイスについて、前記デバイスの初期化を行うデバイス初期化手段と、
前記デバイスの利用状況を監視するデバイス監視手段と、
前記デバイスの異常を検知する異常検知手段と
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、半導体技術の進歩によりＣＰＵの処理能力が飛躍的に向上していた。そして、１つのＣＰＵ上で２つのＯＳを動作させる仮想化技術、複数のＣＰＵコアをもったＣＰＵチップ等が開発され、１つの組込み機器上で複数のＯＳを実行する環境が整いつつある。
近年、汎用ＯＳを利用し、付加機能をＳｏＣ等の特別なハードウェアで実現するケースが多くなってきている。この特別なハードウェアは、ＯＳ上で動作するデバイスドライバにより制御されるため、デバイスドライバの解析及びデバイスドライバの改竄を防止する必要性が高まっている。
【０００３】
一方、データの改竄を検出することができる計算機システム並びにデータ改竄検出方法が開示されている（例えば、特許文献１参照）。
また、ＰＣ上で動作するソフトウェアのユーザによる静的な解析及び動的な解析、改竄を防止可能なシステムをＰＣ上で実現するシステム及び方法が開示されている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−１８２５０９号公報
【特許文献２】特開２００２−２５１３２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１及び特許文献２記載の技術では、ＯＳ上で動作するデバイスドライバの解析及びデバイスドライバの改竄を防止することは、依然として困難である。
【０００６】
本発明はこのような問題点に鑑みなされたもので、ＯＳ上で動作するデバイスドライバの解析及びデバイスドライバの改竄を極力防止することを目的とする。
【課題を解決するための手段】
【０００７】
そこで、本発明は、第１のＣＰＵで動作する第１のオペレーションシステムと、前記第１のＣＰＵとは異なる第２のＣＰＵで動作する第２のオペレーションシステムとを有する情報処理装置であって、デバイスの初期化待ちの前記第２のオペレーションシステムは、前記第１のオペレーションシステムが使用するデバイスについて、前記デバイスの初期化を行うデバイス初期化部と、前記デバイスの利用状況を監視するデバイス監視部と、前記デバイスの異常を検知する異常検知部と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ＯＳ上で動作するデバイスドライバの解析及びデバイスドライバの改竄を極力防止できる。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置のハードウェア構成図である。
【図２】情報処理装置のブロック図である。
【図３】情報処理装置の動作に関するシーケンス図である。
【図４】第２の実施形態に係る情報処理装置のブロック図である。
【図５】第２の実施形態に係る情報処理装置の動作に関するシーケンス図である。
【図６】第３の実施形態に係る情報処理装置のブロック図である。
【図７】第３の実施形態に係る情報処理装置の動作に関するシーケンス図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について図面に基づいて説明する。
【００１１】
＜第１の実施形態＞
図１に、本実施形態に係る情報処理装置のハードウェア構成図を示す。１０１は、ＣＰＵ・Ａ、１０２は、ＣＰＵ・Ｂ、１０３は、ＲＡＭ、１０４は、ＦＬＡＳＨメモリ（ＦＬＡＳＨ ＲＯＭ）、１０５は、複数のデバイス、１０６は、ハードディスク（ＨＤＤ）を示している。ＣＰＵ・Ａ１０１及びＣＰＵ・Ｂ１０２は、ＯＳ・Ａ、ＯＳ・Ｂという独立したオペレーションシステム（ＯＳ）を各々実行し、各ＣＰＵは、デバイス１０５の各々を使用すべく制御する。各ＯＳのイメージは、不揮発性の媒体であるＦＬＡＳＨメモリ１０４又はハードディスク１０６に記憶され、ブートローダによりＲＡＭ１０３にコピーされる。ＯＳ・Ａは、第１のオペレーションシステムの一例であり、ＯＳ・Ｂは、第２のオペレーションシステムの一例である。
【００１２】
図２に、情報処理装置のブロック図を示す。２０１は、互いのＣＰＵが使用するデバイス１０５の初期化を行うデバイス初期化手段、２０２は、デバイス監視手段、２０３は、異常検知手段、２０４は、デバイス無効化手段を示す。
デバイス初期化部の一例であるデバイス初期化手段２０１は、デバイス１０５のレジスタ設定を適切に行い、動作可能な状態にするものである。デバイス監視部の一例であるデバイス監視手段２０２は、デバイス１０５のレジスタの設定値、割込みの状態等の利用状況を常に監視する。異常検知部の一例である異常検知手段２０３は、デバイス監視手段２０２によって監視された結果に基づいて、不適切なレジスタ設定値を検出した場合、不適切な割り込み状態になった場合等に異常と判断する。デバイス無効化手段２０４は、異常検知手段２０３による異常検知を受け、該当するデバイス１０５のリセット、レジスタの設定、割込みのマスク等を行い、デバイス１０５を無効化する。
【００１３】
図３に、情報処理装置の動作に関するシーケンス図を示す。図３を参照して、情報処理装置の動作に関するシーケンスを説明する。３０１は、一方のＣＰＵ・Ａ１０１、３２１は、他方のＣＰＵ・Ｂ１０２を示す。
ＣＰＵ・Ａ１０１では、電源が投入されると、まず、ブートローダが起動する（３０２）。ブートローダは、ＦＬＡＳＨメモリ１０４又はハードディスク１０６に記録されたＯＳ・ＡのイメージをＲＡＭ１０３へコピーし、ＯＳ・Ａを起動させる（３０３）。また、ブートローダは、ＯＳ・ＢのイメージをＲＡＭ１０３へコピーする。
ＯＳ・Ａは、初期化後（３０４）、ＯＳ・Ｂで初期化されるデバイス１０５の初期化待ち状態になる（３０５）。
【００１４】
ＣＰＵ・Ｂ１０２は、電源が投入されると、ブートローダによりＲＡＭ１０３にコピーされたＯＳ・Ｂのイメージを使って、ＯＳ・Ｂを起動させる（３２２）。ＯＳ・Ｂが起動した後、ＯＳ・Ｂは、デバイス１０５のレジスタ設定等の初期化を行い、ＯＳ・Ａにデバイス初期化処理の完了の通知をする（３２３）。その後、ＯＳ・Ｂは、デバイスドライバの監視として、デバイス１０５のレジスタの監視、アクセス手順の監視等を行う（３２４）。
また、ＯＳ・Ｂは、デバイスドライバ（換言するならば、デバイス１０５）の異常を検出すると（３２５）、該当するデバイス１０５のリセット、レジスタの設定、割込みのマスク等を行い、デバイス１０５を無効化する（３２６）。
【００１５】
ＯＳ・Ａは、ＯＳ・Ｂからのデバイス初期化処理の完了の通知を受けると、デバイスドライバの登録を行い（３０６）、デバイスドライバが動作する（３０７）。
ＯＳ・Ａ自体が改変されたり、ＯＳ・Ａ上で動作するデバイスドライバが改変されたりして、異常動作がＯＳ・Ｂにより検知されると、ＯＳ・Ｂ上で、デバイス１０５の無効化処理が行われ（３２６）、ＯＳ・Ａ上でデバイス１０５が利用できなくなる（３０９）。
このように、情報処理装置は、デバイスドライバの解析及びデバイスドライバの改竄を防止するために、デバイスドライバに係る処理（換言するならば、機能）を分割した構成を有する。すなわち、情報処理装置は、一方のＯＳ・Ａでは、デバイスドライバの実際の動作の処理を行い、他方のＯＳ・Ｂでは、デバイスドライバの初期化とデバイスの動作の監視を行い、デバイス等の異常動作を検出したときにはデバイスを停止させる。この構成によれば、デバイスドライバの解析及びデバイスドライバの改竄を防止すると共に、より高い安全性を確保することができる。
【００１６】
＜第２の実施形態＞
図４に、本実施形態に係る情報処理装置のブロック図を示す。なお、本情報処理装置は、図１に示すハードウェア構成と同様のハードウェア構成を有する。４０１は、デバイス初期化手段、４０２は、デバイス監視手段、４０３は、異常検知手段、４０４は、デバイスドライバ変更手段を示す。
デバイス初期化部の一例であるデバイス初期化手段４０１は、デバイス１０５のレジスタ設定を適切に行い、動作可能な状態にするものである。デバイス監視部の一例であるデバイス監視手段４０２は、デバイス１０５のレジスタの設定値、割込みの状態等の利用状況を常に監視する。異常検知部の一例である異常検知手段４０３は、デバイス監視手段４０２によって監視された結果に基づいて、不適切なレジスタ設定値を検出した場合、不適切な割り込み状態になった場合等に異常と判断する。デバイスドライバ変更手段４０４は、異常検知手段４０３による異常検知を受け、該当するデバイス１０５のリセット、レジスタの設定、割込みのマスク等を行い、デバイスドライバを変更する。例えば、デバイスドライバ変更手段４０４は、該当するデバイス１０５のレジスタをデフォルト値に戻し、ＦＬＡＳＨメモリ１０４、ハードディスク１０６等から正常なデバイスドライバを再ロードし、デバイスドライバの変更を行う。
【００１７】
図５に、情報処理装置の動作に関するシーケンス図を示す。図５を参照して、情報処理装置の動作に関するシーケンスを説明する。５０１は、ＣＰＵ・Ａ１０１、５２１は、ＣＰＵ・Ｂ１０２を示す。
ＣＰＵ・Ａ１０１では、電源が投入されると、まず、ブートローダが起動する（５０２）。ブートローダは、ＦＬＡＳＨメモリ１０４又はハードディスク１０６に記録されたＯＳ・ＡのイメージをＲＡＭ１０３へコピーし、ＯＳ・Ａを起動させる（５０３）。また、ブートローダは、ＯＳ・ＢのイメージをＲＡＭ１０３へコピーする。
ＯＳ・Ａは、初期化後（５０４）、ＯＳ・Ｂで初期化されるデバイス１０５の初期化待ち状態になる（５０５）。
【００１８】
ＣＰＵ・Ｂ１０２は、電源が投入されると、ブートローダによりＲＡＭ１０３にコピーされたＯＳ・Ｂのイメージを使って、ＯＳ・Ｂを起動させる（５２２）。ＯＳ・Ｂが起動した後、ＯＳ・Ｂは、デバイス１０５のレジスタ設定等の初期化を行い、ＯＳ・Ａにデバイス初期化処理の完了の通知をする（５２３）。その後、ＯＳ・Ｂは、デバイスドライバの監視として、デバイス１０５のレジスタの監視、アクセス手順の監視等を行う（５２４）。
また、ＯＳ・Ｂは、デバイス１０５の異常を検出すると（５２５）、デバイスドライバの変更処理を実行する（５２６）。例えば、ＯＳ・Ｂは、該当するデバイス１０５のレジスタをデフォルト値に戻し、ＦＬＡＳＨメモリ１０４、ハードディスク１０６等から正常なデバイスドライバを再ロードし、ＯＳ・Ａのデバイスドライバの変更を行う。
【００１９】
ＯＳ・Ａは、ＯＳ・Ｂからのデバイス初期化処理の完了の通知を受けると、デバイスドライバの登録を行い（５０６）、デバイスドライバが動作する（５０７）。
ＯＳ・Ａ自体が改変されたり、ＯＳ・Ａ上で動作するデバイスドライバが改変されたりして、異常動作がＯＳ・Ｂにより検知されると、ＯＳ・Ｂ上でデバイスドライバの変更処理が行われ（５２６）、ＯＳ・Ａ上で正常なデバイスドライバに置換される（５０９）。
このように、情報処理装置は、デバイスドライバに係る処理（換言するならば、機能）を分割した構成を有し、デバイス等の異常動作を検出したときにはデバイスドライバを変更する。この構成によれば、デバイスドライバの解析及びデバイスドライバの改竄を防止すると共に、より高い安全性を確保することができる。
【００２０】
＜第３の実施形態＞
図６に、本実施形態に係る情報処理装置のブロック図を示す。なお、本情報処理装置は、図１に示すハードウェア構成と同様のハードウェア構成を有する。６０１は、デバイス初期化手段、６０２は、デバイス監視手段、６０３は、異常検知手段、６０４は、デバイス制限手段を示す。
デバイス初期化部の一例であるデバイス初期化手段６０１は、デバイス１０５のレジスタ設定を適切に行い、動作可能な状態にするものである。デバイス監視部の一例であるデバイス監視手段６０２は、デバイス１０５のレジスタの設定値、割込みの状態等の利用状況を常に監視する。異常検知部の一例である異常検知手段６０３は、デバイス監視手段６０２によって監視された結果に基づいて、不適切なレジスタ設定値を検知した場合、不適切な割り込み状態になった場合等に異常と判断する。デバイス制限手段６０４は、異常検知手段６０３による異常検知を受け、該当するデバイス１０５のリセット、レジスタの設定、割込みのマスク等を行い、デバイス１０５の機能制限を行う。
【００２１】
図７に、情報処理装置の動作に関するシーケンス図を示す。図７を参照して、情報処理装置の動作に関するシーケンスを説明する。７０１は、ＣＰＵ・Ａ１０１、７２１は、ＣＰＵ・Ｂ１０２を示す。
ＣＰＵ・Ａ１０１では、電源が投入されると、まず、ブートローダが起動する（７０２）。ブートローダは、ＦＬＡＳＨメモリ１０４又はハードディスク１０６に記録されたＯＳ・ＡのイメージをＲＡＭ１０３へコピーし、ＯＳ・Ａを起動させる（７０３）。また、ブートローダは、ＯＳ・ＢのイメージをＲＡＭ１０３へコピーする。
ＯＳ・Ａは、初期化後（７０４）、ＯＳ・Ｂで初期化されるデバイス１０５の初期化待ち状態になる（７０５）。
【００２２】
ＣＰＵ・Ｂ１０２は、電源が投入されると、ブートローダによりＲＡＭ１０３にコピーされたＯＳ・Ｂのイメージを使って、ＯＳ・Ｂを起動させる（７２２）。ＯＳ・Ｂが起動した後、ＯＳ・Ｂは、デバイス１０５のレジスタ設定等の初期化を行い、ＯＳ・Ａにデバイス初期化処理の完了の通知をする（７２３）。その後、ＯＳ・Ｂは、デバイスドライバの監視として、デバイス１０５のレジスタの監視、アクセス手順の監視等を行う（７２４）。
また、ＯＳ・Ｂは、デバイス１０５の異常を検出すると（７２５）、該当するデバイス１０５のリセット、レジスタの設定、割込みのマスク等を行い、デバイス１０５の機能制限を行う（７２６）。
【００２３】
ＯＳ・Ａは、ＯＳ・Ｂからのデバイス初期化処理の完了の通知を受けると、デバイスドライバの登録を行い（７０６）、デバイスドライバが動作する（７０７）。
ＯＳ・Ａ自体が改変されたり、ＯＳ・Ａ上で動作するデバイスドライバが改変されたりして、異常動作がＯＳ・Ｂにより検知されると、ＯＳ・Ｂ上でデバイス１０５の機能制限処理が行われ、ＯＳ・Ａ上でデバイス１０５の利用に制限がかけられる（７０９）。
このように、情報処理装置は、デバイスドライバに係る処理（換言するならば、機能）を分割した構成を有し、デバイス等の異常動作を検出したときにはデバイスの機能を制限する。この構成によれば、デバイスドライバの解析及びデバイスドライバの改竄を防止すると共に、より高い安全性を確保することができる。
なお、例えば、情報処理装置のコンピュータが、記憶装置に格納されたプログラムの手順に従って処理を行うことによっても、情報処理装置における機能及び前述した情報処理装置の動作に関するシーケンスに係る処理を実現できる。
【００２４】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００２５】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００２６】
２０１  デバイス初期化手段、２０２  デバイス監視手段、２０３  異常検知手段、２０４  デバイス無効化手段
【図１】
0005538767.tif 000002
【図２】
0005538767.tif 000003
【図３】
0005538767.tif 000004
【図４】
0005538767.tif 000005
【図５】
0005538767.tif 000006
【図６】
0005538767.tif 000007
【図７】
0005538767.tif 000008