特開2021-93002(P2021-93002A)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ パナソニックIPマネジメント株式会社の特許一覧
特開2021-93002情報処理装置、情報処理方法、および、プログラム
<>
  • 特開2021093002-情報処理装置、情報処理方法、および、プログラム 図000003
  • 特開2021093002-情報処理装置、情報処理方法、および、プログラム 図000004
  • 特開2021093002-情報処理装置、情報処理方法、および、プログラム 図000005
  • 特開2021093002-情報処理装置、情報処理方法、および、プログラム 図000006
  • 特開2021093002-情報処理装置、情報処理方法、および、プログラム 図000007
  • 特開2021093002-情報処理装置、情報処理方法、および、プログラム 図000008
  • 特開2021093002-情報処理装置、情報処理方法、および、プログラム 図000009
  • 特開2021093002-情報処理装置、情報処理方法、および、プログラム 図000010
  • 特開2021093002-情報処理装置、情報処理方法、および、プログラム 図000011
  • 特開2021093002-情報処理装置、情報処理方法、および、プログラム 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2021-93002(P2021-93002A)
(43)【公開日】2021年6月17日
(54)【発明の名称】情報処理装置、情報処理方法、および、プログラム
(51)【国際特許分類】
   G06F 21/64 20130101AFI20210521BHJP
   G06F 9/455 20060101ALI20210521BHJP
   G06F 11/07 20060101ALI20210521BHJP
   G06F 21/74 20130101ALI20210521BHJP
   G06F 21/53 20130101ALI20210521BHJP
   G06F 12/14 20060101ALI20210521BHJP
【FI】
   G06F21/64
   G06F9/455 150
   G06F11/07 140C
   G06F11/07 151
   G06F21/74
   G06F11/07 140R
   G06F21/53
   G06F12/14 510A
【審査請求】未請求
【請求項の数】12
【出願形態】OL
【全頁数】23
(21)【出願番号】特願2019-223656(P2019-223656)
(22)【出願日】2019年12月11日
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ANDROID
(71)【出願人】
【識別番号】314012076
【氏名又は名称】パナソニックIPマネジメント株式会社
(74)【代理人】
【識別番号】100109210
【弁理士】
【氏名又は名称】新居 広守
(74)【代理人】
【識別番号】100137235
【弁理士】
【氏名又は名称】寺谷 英作
(74)【代理人】
【識別番号】100131417
【弁理士】
【氏名又は名称】道坂 伸一
(72)【発明者】
【氏名】和田 紘幸
(72)【発明者】
【氏名】今本 吉治
(72)【発明者】
【氏名】岩野 透
(72)【発明者】
【氏名】藤井 崇之
(72)【発明者】
【氏名】永田 峰久
【テーマコード(参考)】
5B017
5B042
【Fターム(参考)】
5B017AA02
5B017BA01
5B017CA01
5B042GA22
5B042GB08
5B042GC08
5B042JJ08
5B042JJ15
5B042JJ29
5B042KK13
5B042KK20
5B042MC40
(57)【要約】
【課題】ハイパーバイザ又は仮想マシンに割り当てられるメモリ領域の改ざんを抑制する。
【解決手段】情報処理装置10は、保護領域21と非保護領域22とを含むメモリ11と、メモリ11の保護領域21及び非保護領域22へのアクセスが許可される第一モードと、メモリ11の保護領域21へのアクセスが禁止され、非保護領域22へのアクセスが許可される第二モードとのいずれかの実行モードに切り替えながら動作するプロセッサ12と、プロセッサ12が第二モードで動作する場合に、一以上の仮想マシンを稼働させる仮想マシン管理部41と、プロセッサ12が第一モードで動作する場合に、一以上の仮想マシンのうちの一の仮想マシン、又は、仮想マシン管理部41に割り当てられるメモリ11の領域を監視対象として監視をし、監視対象に異常があるか否かの判定をする監視部31とを備える。
【選択図】図4
【特許請求の範囲】
【請求項1】
保護領域と非保護領域とを含むメモリと、
前記メモリの前記保護領域及び前記非保護領域へのアクセスが許可される第一モードと、前記メモリの前記保護領域へのアクセスが禁止され、前記非保護領域へのアクセスが許可される第二モードとのいずれかの実行モードに切り替えながら動作するプロセッサと、
前記プロセッサが前記第二モードで動作する場合に、一以上の仮想マシンを稼働させる仮想マシン管理部と、
前記プロセッサが前記第一モードで動作する場合に、前記一以上の仮想マシンのうちの一の仮想マシン、又は、前記仮想マシン管理部に割り当てられる前記メモリの領域を監視対象として監視をし、前記監視対象に異常があるか否かの判定をする監視部とを備える
情報処理装置。
【請求項2】
前記メモリの前記保護領域には、前記監視対象を監視するために用いられる監視情報が格納されており、
前記監視部は、前記監視において、
前記監視情報を読み出し、読み出した前記監視情報に基づいて前記監視対象を監視する
請求項1に記載の情報処理装置。
【請求項3】
前記監視情報には、前記監視対象を監視する監視態様を、前記監視対象に対応付けて示す情報が格納されており、
前記監視部は、前記監視において、
前記監視情報を読み出し、読み出した前記監視情報に示されている前記監視態様で前記監視対象を監視する
請求項2に記載の情報処理装置。
【請求項4】
前記監視情報には、前記監視態様として、前記監視をするタイミングを前記監視対象に対応付けて示す情報が含まれており、
前記監視部は、前記監視において、前記監視情報により示される前記タイミングに、前記監視対象を監視する
請求項3に記載の情報処理装置。
【請求項5】
前記メモリの前記保護領域には、前記監視対象である前記領域に格納される適正値を示す基準情報とが格納されており、
前記監視部は、前記判定において、
前記プロセッサが前記第一モードで、前記監視情報を読み出し、読み出した前記監視情報に示されている前記基準情報に、前記監視対象に格納されている値が適合しない場合に、異常があると判定する
請求項2〜4のいずれか1項に記載の情報処理装置。
【請求項6】
前記情報処理装置は、さらに、
前記監視部による判定の結果に応じた処理を実行する処理部を備え、
前記監視情報には、さらに、前記監視対象に異常があると判定された場合に前記処理部が実行すべき処理が、前記監視対象に対応付けて示されており、
前記処理部は、前記監視対象に異常があると前記監視部が判定した場合には、異常があると判定された前記監視対象に対応付けられた前記処理を実行する
請求項2〜5のいずれか1項に記載の情報処理装置。
【請求項7】
前記監視情報には、さらに、前記監視対象に要求される安全性のレベルが、前記監視対象に対応付けて示されており、
前記処理部は、前記監視対象に異常があると前記監視部が判定した場合には、異常があると判定された前記監視対象に対応付けられた前記レベルに応じた通知処理を実行する
請求項6に記載の情報処理装置。
【請求項8】
前記メモリの前記非保護領域には、前記監視対象を監視する監視態様を、前記監視対象に対応付けて示す監視情報であって、暗号化された監視情報である、暗号化監視情報が格納されており、
前記メモリの前記保護領域には、前記暗号化監視情報を復号するための鍵情報が格納されており、
前記監視部は、前記監視において、
前記プロセッサが前記第一モードで、前記暗号化監視情報と前記鍵情報とを読み出し、読み出した前記暗号化監視情報を、読み出した前記鍵情報で復号することで得られた前記監視情報に示されている前記監視態様で前記監視対象を監視する
請求項1に記載の情報処理装置。
【請求項9】
前記情報処理装置は、車両に搭載されるECU(Electronic Control Unit)である
請求項1〜8のいずれか1項に記載の情報処理装置。
【請求項10】
保護領域と非保護領域とを含むメモリと、
前記メモリの前記保護領域及び前記非保護領域へのアクセスが許可される第一モードと、前記メモリの前記保護領域へのアクセスが禁止され、前記非保護領域へのアクセスが許可される第二モードとのいずれかの実行モードに切り替えながら動作するプロセッサと、
前記プロセッサが前記第一モードで動作する場合に、一以上の仮想マシンを稼働させる仮想マシン管理部と、
前記プロセッサが前記第一モードで動作する場合に、前記一以上の仮想マシンのうちの一の仮想マシン、又は、前記仮想マシン管理部に割り当てられる前記メモリの領域を監視対象として監視し、前記監視対象に異常があるか否かを判定する監視部とを備える
情報処理装置。
【請求項11】
情報処理装置が実行する情報処理方法であって、
前記情報処理装置は、
保護領域と非保護領域とを含むメモリと、
前記メモリの前記保護領域及び前記非保護領域へのアクセスが許可される第一モードと、前記メモリの前記保護領域へのアクセスが禁止され、前記非保護領域へのアクセスが許可される第二モードとのいずれかの実行モードに切り替えながら動作するプロセッサとを備え、
前記情報処理方法は、
前記プロセッサが前記第二モードで動作する場合に、一以上の仮想マシンを稼働させる仮想マシン管理ステップと、
前記プロセッサが前記第一モードで動作する場合に、前記一以上の仮想マシンのうちの一の仮想マシン、又は、前記仮想マシン管理ステップに割り当てられる前記メモリの領域を監視対象として監視をし、前記監視対象に異常があるか否かの判定をする監視ステップとを含む
情報処理方法。
【請求項12】
請求項11に記載の情報処理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、および、プログラムに関する。
【背景技術】
【0002】
1台の装置に1以上の仮想的なコンピュータを動作させるように制御する仮想化技術が利用されている。1以上の仮想的なコンピュータを動作させる仮想化基盤となるソフトウェアをハイパーバイザともいい、仮想的に動作する上記1以上のコンピュータを仮想マシンともいう。
【0003】
仮想化ソフトウェア上に、監視対象となる複数の仮想マシンと、監視用の仮想マシンとを配置し、監視対象における異常の有無を判定する技術がある(特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2019−144785号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、ハイパーバイザ内の仮想化ソフトウェアまたはデバイスドライバの、製品出荷後に顕在化する脆弱性または不具合などにより、ハイパーバイザ又は仮想マシンに割り当てられるメモリ領域の改ざんがなされ得るという問題がある。
【0006】
一例として、自動車において複数のECU(Electronic Control Unit)機能を統合化することで、利用者に高度な車両サービスを提供しようとする動きがある。その中で、第3者のアプリケーションを自由にインストールすることができるIVI(In−Vehicle Infortainment)システムと、車の、走る、曲がるおよび止まる、といった自動運転を支援するADAS(Advanced Driver Assistance System)システムとを統合化する場合に、第3者の悪意のあるアプリケーションが自動車のADAS制御方法が記録されたメモリ領域を改ざんすると、搭乗者の安全を脅かす重大な問題となりうる。
【0007】
そこで、本発明は、ハイパーバイザ又は仮想マシンに割り当てられるメモリ領域の改ざんを抑制する情報処理装置を提供する。
【課題を解決するための手段】
【0008】
本発明の一態様に係る情報処理装置は、保護領域と非保護領域とを含むメモリと、前記メモリの前記保護領域及び前記非保護領域へのアクセスが許可される第一モードと、前記メモリの前記保護領域へのアクセスが禁止され、前記非保護領域へのアクセスが許可される第二モードとのいずれかの実行モードに切り替えながら動作するプロセッサと、前記プロセッサが前記第二モードで動作する場合に、一以上の仮想マシンを稼働させる仮想マシン管理部と、前記プロセッサが前記第一モードで動作する場合に、前記一以上の仮想マシンのうちの一の仮想マシン、又は、前記仮想マシン管理部に割り当てられる前記メモリの領域を監視対象として監視をし、前記監視対象に異常があるか否かの判定をする監視部とを備える。
【0009】
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【0010】
本発明の情報処理装置は、ハイパーバイザ又は仮想マシンに割り当てられるメモリ領域の改ざんを抑制することができる。
【図面の簡単な説明】
【0011】
図1図1は、関連技術における情報処理装置の構成を概念的に示す模式図である。
図2図2は、関連技術における情報処理装置に対する攻撃の一例を示す模式図である。
図3図3は、実施の形態における情報処理装置の構成を概念的に示す模式図である。
図4図4は、実施の形態における情報処理装置の機能構成を示す模式図である。
図5図5は、実施の形態における情報処理装置の監視テーブルを示す説明図である。
図6図6は、実施の形態における情報処理装置の処理を示す第一のフロー図である。
図7図7は、実施の形態における情報処理装置の処理を示す第二のフロー図である。
図8図8は、実施の形態の変形例1における情報処理装置の機能構成を示す模式図である。
図9図9は、実施の形態の変形例2における情報処理装置の機能構成を示す模式図である。
図10図10は、実施の形態の変形例3における情報処理装置が実行する情報処理方法を示すフロー図である。
【発明を実施するための形態】
【0012】
(本発明の基礎となった知見)
本発明者は、「背景技術」の欄において記載した仮想化技術に関し、以下の問題が生じることを見出した。ここで、以下の問題が生じる技術を「関連技術」ともいう。
【0013】
仮想化技術において、ハイパーバイザの上で、1以上の仮想マシンが動作するように制御される。このとき、装置の物理メモリのうちの一部が、ハイパーバイザ、および、1以上の仮想マシンのそれぞれに割り当てられる。
【0014】
ハイパーバイザは、ハイパーバイザ、および、1以上の仮想マシンに割り当てられるメモリ領域を、分離して管理している。そのため、一の仮想マシンが、他者に割り当てられるメモリ領域にアクセスすることは、本来は、制限されている。ここで、「他者」とは、自身と異なる仮想マシンを指す。以降でも同様とする。
【0015】
しかしながら、ハイパーバイザ内に含まれる仮想化ソフトウェアやデバイスドライバに脆弱性または不具合が存在する場合、上記のアクセス制限を回避して、一の仮想マシンが、他者に割り当てられたメモリ領域にアクセスすることができてしまうことがある。この場合、ハイパーバイザ、又は、他者に割り当てられたメモリ領域の改ざんがなされ得るという問題がある。
【0016】
この問題について、図1及び図2を参照しながら説明する。
【0017】
図1は、関連技術における情報処理装置90の構成を概念的に示す模式図である。図2は、関連技術における情報処理装置90に対する攻撃の一例を示す模式図である。なお、情報処理装置90は、車両に搭載され、車載ネットワークに接続されて車両を制御するECU(Electronic Control Unit)である場合を例として説明するが、これに限定されない。
【0018】
図1に示される情報処理装置90では、プロセッサによってハイパーバイザHVが実行されており、ハイパーバイザHV上で、仮想マシンVM1である「アプリプラットフォーム仮想マシン(アプリPF)」と、仮想マシンVM2である車両制御仮想マシンとが動作している。また、仮想マシンVM1上でアプリA1が動作しており、仮想マシンVM2上でアプリA2が動作している。なお、「アプリ」は、アプリケーションソフトウェアの略称である。
【0019】
ハイパーバイザHV内のデバイスドライバに、バッファオーバフローなどの脆弱性に起因して、一の仮想マシンが他者に割り当てられたメモリ領域へのアクセス制限の回避を許してしまう脆弱性があるとする。このとき、アプリA1によるアプリA2に対する攻撃が図2に示されるようになされ得る。
【0020】
図2において、右欄には、情報処理装置90の物理メモリが模式的に示されており、左欄には、物理メモリのうち、仮想マシンVM1及びVM2それぞれに割り当てられるメモリ領域(ゲストメモリ)が模式的に示されている。
【0021】
図2の右欄に示されるように、情報処理装置90の物理メモリには、ハイパーバイザHVの管理領域と、仮想マシンVM1及びVM2それぞれの管理領域とが含まれている。ハイパーバイザHVによるメモリ管理に基づいて、仮想マシンVM1は、情報処理装置90の物理メモリのうち、仮想マシンVM1の管理領域の部分だけを、仮想マシンVM1のメモリとして使用する。また、同様に、仮想マシンVM2は、情報処理装置90の物理メモリのうち、仮想マシンVM2の管理領域の部分だけを、仮想マシンVM2のメモリとして使用する。
【0022】
いま、仮想マシンVM1のメモリアドレス000A、つまり情報処理装置90のメモリアドレス001Aに不正アプリであるアプリAが格納されており、仮想マシンVM1のメモリアドレス000B、つまり情報処理装置90のメモリアドレス001Bに攻撃アプリであるアプリBが格納されているとする。
【0023】
ステップS1において、アプリAは、ハイパーバイザの管理領域である、情報処理装置90のメモリアドレス000Aに格納されているデバイスドライバのデータを改ざんする。この改ざんは、本来は、ハイパーバイザによるメモリ管理によればなされ得ないが、上記脆弱性により可能となったものである。
【0024】
ステップS2において、アプリAは、ハイパーバイザによるメモリ管理に関わる設定値である、仮想マシンVM1及びVM2に割り当てられているメモリ領域を特定する情報を書き換える。例えば、メモリ領域を特定する情報は、当該メモリ領域の先頭アドレス(addr)と、メモリ領域のサイズ(size)とを含んでおり、アプリAは、仮想マシンVM1に割り当てられているメモリ領域のサイズを、より大きな値に変更する。
【0025】
これにより、情報処理装置90の物理メモリにおける、仮想マシンVM1の管理領域の終了位置を示す境界Bが移動し、仮想マシンVM1が、情報処理装置90の物理メモリのメモリアドレス002Aにアクセスできるようになる。
【0026】
ステップS3において、アプリBは、情報処理装置90の物理メモリのメモリアドレス002Aにアクセスし、アプリBを書き込む。このアクセスは、ステップS2で境界Bが移動される前にはなされ得ないが、ステップS2で境界Bが移動したことにより可能となったものである。
【0027】
ステップS4において、情報処理装置90の物理メモリのメモリアドレス002AにアプリBが書き込まれた(ステップS3)ことにより、仮想マシンVM2のメモリアドレス000AがアプリBに変更されたことになる。アプリBが、車両の動作制御(例えば、加速、減速または操舵など)を行うアプリである場合には、アプリBにより車両の動作が不正に制御され、加速、減速または操舵が不正になされ得る。また、アプリBが、車両の管理情報(例えば、識別番号または総走行距離など)の変更を行うアプリである場合には、アプリBにより車両の識別番号が変更され、又は、総走行距離が改ざんされるという不正がなされ得る。
【0028】
このような攻撃によって、車両の走行に関する不正な制御、又は、車両の管理情報の不正な変更がなされ得る。
【0029】
そこで、本発明は、ハイパーバイザ又は仮想マシンに割り当てられるメモリ領域の改ざんを抑制する情報処理装置を提供する。
【0030】
このような問題を解決するために、本発明の一態様に係る情報処理装置は、保護領域と非保護領域とを含むメモリと、前記メモリの前記保護領域及び前記非保護領域へのアクセスが許可される第一モードと、前記メモリの前記保護領域へのアクセスが禁止され、前記非保護領域へのアクセスが許可される第二モードとのいずれかの実行モードに切り替えながら動作するプロセッサと、前記プロセッサが前記第二モードで動作する場合に、一以上の仮想マシンを稼働させる仮想マシン管理部と、前記プロセッサが前記第一モードで動作する場合に、前記一以上の仮想マシンのうちの一の仮想マシン、又は、前記仮想マシン管理部に割り当てられる前記メモリの領域を監視対象として監視をし、前記監視対象に異常があるか否かの判定をする監視部とを備える。
【0031】
上記態様によれば、情報処理装置は、メモリの保護領域へのアクセスが禁止される第二モードでプロセッサが仮想マシンを稼働させるので、仮想マシンがメモリの保護領域へアクセスすることが禁止される。そして、仮想マシンに割り当てられているメモリ領域の監視および異常の有無の判定は、プロセッサが第一モードで実行することで実現される。これにより、ハイパーバイザ又は仮想マシンに割り当てられるメモリ領域へのアクセスを制限しながら、当該メモリ領域に格納されているデータの内容の監視を行うことができる。これにより、情報処理装置は、ハイパーバイザ又は仮想マシンに割り当てられるメモリ領域の改ざんを抑制することができる。
【0032】
例えば、前記メモリの前記保護領域には、前記監視対象を監視するために用いられる監視情報が格納されており、前記監視部は、前記監視において、前記監視情報を読み出し、読み出した前記監視情報に基づいて前記監視対象を監視してもよい。
【0033】
上記態様によれば、情報処理装置は、メモリの保護領域に格納された監視情報に基づいて監視をする。監視情報は、メモリの保護領域に格納されているので、監視情報そのものが仮想マシンにより書き換えられることが制限される。よって、その監視情報に基づいて行われる監視がより適切になされる。これにより、情報処理装置は、監視をより適切に行いながら、ハイパーバイザ又は仮想マシンに割り当てられるメモリ領域の改ざんを抑制することができる。
【0034】
例えば、前記監視情報には、前記監視対象を監視する監視態様を、前記監視対象に対応付けて示す情報が格納されており、前記監視部は、前記監視において、前記監視情報を読み出し、読み出した前記監視情報に示されている前記監視態様で前記監視対象を監視してもよい。
【0035】
上記態様によれば、情報処理装置は、メモリの保護領域に格納された監視情報に基づく監視態様で監視をする。監視情報は、メモリの保護領域に格納されているので、監視情報そのものが仮想マシンにより書き換えられることが制限される。よって、その監視情報に基づいて行われる監視がより適切な態様でなされる。これにより、情報処理装置は、監視をより適切に行いながら、ハイパーバイザ又は仮想マシンに割り当てられるメモリ領域の改ざんを抑制することができる。
【0036】
例えば、前記監視情報には、前記監視態様として、前記監視をするタイミングを前記監視対象に対応付けて示す情報が含まれており、前記監視部は、前記監視において、前記監視情報により示される前記タイミングに、前記監視対象を監視してもよい。
【0037】
上記態様によれば、情報処理装置は、監視対象に対応付けられたタイミングに、監視を行う。監視対象の重要さ又は更新頻度などに基づいて上記タイミングが設定されていれば、情報処理装置は、監視対象の重要さ又は更新頻度などに基づくタイミングで適切に監視をすることができる。よって、情報処理装置は、より適切なタイミングで監視をすることを通じて、ハイパーバイザ又は仮想マシンに割り当てられるメモリ領域の改ざんを抑制することができる。
【0038】
例えば、前記メモリの前記保護領域には、前記監視対象である前記領域に格納される適正値を示す基準情報とが格納されており、前記監視部は、前記判定において、前記プロセッサが前記第一モードで、前記監視情報を読み出し、読み出した前記監視情報に示されている前記基準情報に、前記監視対象に格納されている値が適合しない場合に、異常があると判定してもよい。
【0039】
上記態様によれば、情報処理装置は、基準情報を用いた適合の判定により、より容易に、異常の有無を判定することができる。これにより、情報処理装置は、より容易に、ハイパーバイザ又は仮想マシンに割り当てられるメモリ領域の改ざんを抑制することができる。
【0040】
例えば、前記情報処理装置は、さらに、前記監視部による判定の結果に応じた処理を実行する処理部を備え、前記監視情報には、さらに、前記監視対象に異常があると判定された場合に前記処理部が実行すべき処理が、前記監視対象に対応付けて示されており、前記処理部は、前記監視対象に異常があると前記監視部が判定した場合には、異常があると判定された前記監視対象に対応付けられた前記処理を実行してもよい。
【0041】
上記態様によれば、情報処理装置は、監視情報に基づいて、監視結果に応じた処理をより容易に実行することができる。これにより、情報処理装置は、監視結果に応じて適切に処理をするとともに、ハイパーバイザ又は仮想マシンに割り当てられるメモリ領域の改ざんを抑制することができる。
【0042】
例えば、前記監視情報には、さらに、前記監視対象に要求される安全性のレベルが、前記監視対象に対応付けて示されており、前記処理部は、前記監視対象に異常があると前記監視部が判定した場合には、異常があると判定された前記監視対象に対応付けられた前記レベルに応じた通知処理を実行してもよい。
【0043】
上記態様によれば、情報処理装置は、監視の結果に応じた処理として、監視対象に要求される安全性のレベルに応じた通知処理を実行できる。これにより、情報処理装置は、要求される安全性のレベルに応じた通知をしながら、ハイパーバイザ又は仮想マシンに割り当てられるメモリ領域の改ざんを抑制することができる。
【0044】
例えば、前記メモリの前記非保護領域には、前記監視対象を監視する監視態様を、前記監視対象に対応付けて示す監視情報であって、暗号化された監視情報である、暗号化監視情報が格納されており、前記メモリの前記保護領域には、前記暗号化監視情報を復号するための鍵情報が格納されており、前記監視部は、前記監視において、前記プロセッサが前記第一モードで、前記暗号化監視情報と前記鍵情報とを読み出し、読み出した前記暗号化監視情報を、読み出した前記鍵情報で復号することで得られた前記監視情報に示されている前記監視態様で前記監視対象を監視してもよい。
【0045】
上記態様によれば、情報処理装置は、監視情報を、暗号化監視情報として非保護領域に格納しておくことができるので、保護領域に監視情報を格納しておく場合よりも、保護領域に格納されるデータサイズを抑制することができる。よって、情報処理装置は、保護領域の容量を圧迫することを回避しながら、ハイパーバイザ又は仮想マシンに割り当てられるメモリ領域の改ざんを抑制することができる。
【0046】
例えば、前記情報処理装置は、車両に搭載されるECU(Electronic Control Unit)であってもよい。
【0047】
上記態様によれば、情報処理装置は、ECUにおけるハイパーバイザ又は仮想マシンに割り当てられるメモリ領域の改ざんを抑制することができる。
【0048】
また、本発明の一態様に係る情報処理装置は、保護領域と非保護領域とを含むメモリと、前記メモリの前記保護領域及び前記非保護領域へのアクセスが許可される第一モードと、前記メモリの前記保護領域へのアクセスが禁止され、前記非保護領域へのアクセスが許可される第二モードとのいずれかの実行モードに切り替えながら動作するプロセッサと、前記プロセッサが前記第一モードで動作する場合に、一以上の仮想マシンを稼働させる仮想マシン管理部と、前記プロセッサが前記第一モードで動作する場合に、前記一以上の仮想マシンのうちの一の仮想マシン、又は、前記仮想マシン管理部に割り当てられる前記メモリの領域を監視対象として監視し、前記監視対象に異常があるか否かを判定する監視部とを備える。
【0049】
上記態様によれば、情報処理装置は、第一モードでプロセッサが仮想マシンを稼働させるので、仮想マシン間の通信も監視対象とすることができる。そして、仮想マシンに割り当てられているメモリ領域の監視および異常の有無の判定は、プロセッサが第一モードで実行することで実現される。これにより、ハイパーバイザ又は仮想マシンに割り当てられるメモリ領域へのアクセスを制限しながら、当該メモリ領域に格納されているデータの内容の監視を行うことができる。これにより、情報処理装置は、ハイパーバイザ又は仮想マシンに割り当てられるメモリ領域の改ざんを抑制することができる。
【0050】
また、本発明の一態様に係る情報処理方法は、情報処理装置が実行する情報処理方法であって、前記情報処理装置は、保護領域と非保護領域とを含むメモリと、前記メモリの前記保護領域及び前記非保護領域へのアクセスが許可される第一モードと、前記メモリの前記保護領域へのアクセスが禁止され、前記非保護領域へのアクセスが許可される第二モードとのいずれかの実行モードに切り替えながら動作するプロセッサとを備え、前記情報処理方法は、前記プロセッサが前記第二モードで動作する場合に、一以上の仮想マシンを稼働させる仮想マシン管理ステップと、前記プロセッサが前記第一モードで動作する場合に、前記一以上の仮想マシンのうちの一の仮想マシン、又は、前記仮想マシン管理ステップに割り当てられる前記メモリの領域を監視対象として監視をし、前記監視対象に異常があるか否かの判定をする監視ステップとを含む。
【0051】
上記態様によれば、上記情報処理装置と同様の効果を奏する。
【0052】
また、本発明の一態様に係るプログラムは、上記の情報処理方法をコンピュータに実行させるためのプログラムである。
【0053】
上記態様によれば、上記情報処理装置と同様の効果を奏する。
【0054】
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
【0055】
以下、実施の形態について、図面を参照しながら具体的に説明する。
【0056】
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【0057】
(実施の形態)
本実施の形態において、ハイパーバイザ又は仮想マシンに割り当てられるメモリ領域の改ざんを抑制する情報処理装置などについて説明する。なお、本実施の形態では、ハイパーバイザによる仮想化システムを例に説明するが、ハイパーバイザの代わりに、ゲストOSと仮想化アプリケーションを用いた仮想化システムであってもよい。
【0058】
図3は、本実施の形態における情報処理装置10の構成を概念的に示す模式図である。
【0059】
図3に示されるように、情報処理装置10は、プロセッサを備え、プロセッサにより、セキュアOSの実行と、ハイパーバイザの実行とを時分割で行う。なお、情報処理装置10は、例えば、車両に搭載され、車載ネットワークに接続されて車両を制御するECUであるが、これに限定されない。
【0060】
なお、プロセッサがセキュアOSを実行している実行モードをセキュアモード又は第一モードともいい、プロセッサがハイパーバイザを実行している実行モードをノーマルモード又は第二モードどもいう。また、セキュアモードにおけるセキュアOS上の実行環境をセキュアワールドともいい、ノーマルモードにおけるハイパーバイザ上の実行環境をノーマルワールドともいう。このような実行環境の制御は、一般にTEE(Trusted Execution Environment)と呼ばれる。例えば、ARM系のCPU(Central Processing Unit)におけるCortex−Aファミリでは標準機能の1つであるTrustZone機構により実現され得る。また、AppleのSEP(Secure Enclave Processor)、または、GoogleのTitanMなどによっても実現され得る。
【0061】
情報処理装置10では、ノーマルワールドにおいて、仮想マシンVM1である「アプリプラットフォーム仮想マシン(アプリPF)」と、仮想マシンVM2である車両制御仮想マシンとが動作している。また、仮想マシンVM1上でアプリA1が動作しており、仮想マシンVM2上でアプリA2が動作している。また、情報処理装置10では、セキュアワールドにおいて、セキュアアプリが動作している。
【0062】
また、情報処理装置10は、プロセッサにより実行される機能であるセキュアモニタを備える。
【0063】
セキュアモニタは、プロセッサの実行モードの切り替え、つまりセキュアモードとノーマルモードとの切り替えを制御する。また、セキュアモニタは、セキュアワールドで実行されているアプリセキュアアプリと、ノーマルワールドで実行されているアプリA1及びA2との情報のやりとりを制御する。具体的には、セキュアモニタは、ノーマルワールドで実行されているアプリA1及びA2が、それぞれ、当該アプリが管理しているメモリ領域にのみアクセスできるように制御する。また、セキュアモニタは、セキュアワールドで実行されているセキュアアプリが、ノーマルワールドで実行されているアプリA1及びA2並びに、セキュアアプリが管理しているメモリ領域にのみアクセスできるように制御する。
【0064】
なお、図3には、プロセッサの例外レベル(EL0、EL1、EL2およびEL3)も記載されている。例えばEL3がほとんどの実行権限を有するとしてもよい。
【0065】
一例として、アプリPFのゲストOSをAndroid/AGL(AutomotiveGradeLinux)などのLinux(登録商標)ベースOSとし、車両制御のゲストOSをITRON/AutosarなどのRTOS(RealTimeOS)とし、セキュアOSをTEE_OS(TrustedExecution EnvironmentOS)としてもよい。
【0066】
図4は、本実施の形態における情報処理装置10の機能構成を示す模式図である。
【0067】
図4に示されるように、情報処理装置10は、メモリ11と、プロセッサ12とを備える。
【0068】
メモリ11は、保護領域21と、非保護領域22とを有する。保護領域21は、プロセッサ12がセキュアモードで実行されているときにのみアクセスされ得る領域である。非保護領域22は、プロセッサ12がセキュアモードで実行されているとき、および、ノーマルモードで実行されているときにアクセスされ得る領域である。
【0069】
なお、ここでは、ハイパーバイザ上でn個の仮想マシンが稼働されている状況を例として説明する。nは、1以上いくつであってもよい。
【0070】
保護領域21には、監視情報211が格納されている。
【0071】
監視情報211は、監視対象であるメモリ領域を監視する監視態様を、監視対象に対応付けて示す情報である。また、監視情報211は、監視対象に異常があると判定された場合に処理部32が実行すべき処理が、監視対象に対応付けて示している。監視情報211は、例えば、上記監視対象と上記監視態様とを対応付けて示すテーブルである。
【0072】
非保護領域22には、ハイパーバイザの管理領域であるHV領域220と、n個の仮想マシンの管理領域、つまり仮想マシンVM1の管理領域であるVM1領域221、仮想マシンVM2の管理領域であるVM2領域222、・・・、仮想マシンVMnの管理領域であるVMn領域22nとが格納されている。
【0073】
プロセッサ12は、セキュアモードとノーマルモードとのいずれかの実行モードに切り替えながら動作する処理装置である。具体的には、プロセッサ12は、メモリ11の保護領域21及び非保護領域22へのアクセスが許可されるセキュアモード(つまり第一モード)と、メモリ11の保護領域21へのアクセスが禁止され、非保護領域22へのアクセスが許可されるノーマルモード(つまり第二モード)とのいずれかの実行モードに切り替えながら動作する。
【0074】
プロセッサ12は、メモリ11を用いてプログラムを実行することで、監視部31と、処理部32と、制御部33と、仮想マシン管理部41とを実現する。
【0075】
ここで、監視部31と、処理部32と、制御部33とは、プロセッサ12がセキュアモードで実行されることで実現される機能である。また、仮想マシン管理部41は、プロセッサ12がノーマルモードで動作することで実現される機能である。なお、処理部32は、プロセッサ12がノーマルモードで動作することで実現されてもよい。
【0076】
仮想マシン管理部41は、一以上の仮想マシンを稼働させる機能部でありハイパーバイザに相当する。仮想マシン管理部41は、HV領域220のメモリ領域を使用して実現されている。また、仮想マシン管理部41は、VM1領域221、VM2領域222、・・・、VMn領域22nを、それぞれ、一以上の仮想マシンのメモリ領域として用いて、一以上の仮想マシンを稼働させている。
【0077】
監視部31は、一以上の仮想マシンのうちの一の仮想マシン、又は、仮想マシン管理部41に割り当てられるメモリ11の領域を監視対象として監視し、監視対象に異常があるか否かを判定する機能部である。具体的には、監視部31は、監視情報を読み出し、読み出した監視情報に基づいて監視対象を監視する。
【0078】
例えば、監視対象に対応付けて監視態様を示す情報が監視情報に格納されている場合、監視部31は、監視情報を読み出し、読み出した監視情報に示されている監視態様で監視対象を監視する。
【0079】
例えば、監視情報には、監視態様として、監視をするタイミングを示す情報が含まれている。その場合、監視部31は、監視情報により示されるタイミングに、監視対象を監視する。
【0080】
処理部32は、監視部31による判定の結果に応じた処理を実行する機能部である。具体的には、処理部32は、監視対象に異常があると監視部31が判定した場合には、異常があると判定された監視対象に対応付けられた処理を実行する。
【0081】
制御部33は、情報処理装置10の全体的な動作に関わる制御を行う機能部である。例えば、制御部33は、時刻情報を時間経過に伴い更新しながら管理しており、情報処理装置10内の機能部に時刻情報を提供する。また、制御部33は、情報処理装置10内の機能部のソフトウェア更新に関する制御をする。
【0082】
図5は、本実施の形態における情報処理装置10の監視テーブルを示す説明図である。図5に示される監視テーブルは、監視情報の一例である。
【0083】
図5に示されるように、監視テーブルは、対象領域に対応付けて、当該対象領域についての安全要求のレベル、異常の有無の判定方法、監視態様、通知方法、および、処理内容を示すテーブルである。
【0084】
対象領域は、監視対象のメモリ領域を示す情報である。対象領域は、メモリ11のうち非保護領域22に含まれる、ハイパーバイザの管理領域であるHV領域220およびn個の仮想マシンVM1、VM2、・・・、VMnの管理領域であるVM1領域221、VM2領域222、・・・、VMn領域22nのいずれかと、当該領域に含まれる情報種別または当該領域を使用しているアプリを特定する情報とを含む。
【0085】
なお、対象領域は、OS(Operating System)、ドライバ、レジスタ値、又は、スタック領域などの任意のメモリ領域であってもよい。また、対象領域は、アプリのビルド時に静的にメモリ内にマッピングされた設定値又は基準情報(後述)、又は、ファイルなどから読み込むことで動的にメモリ内にマッピングされた設定値又は基準情報であってもよい。
【0086】
安全要求のレベルは、当該対象領域に求められる安全性のレベルであり、予め管理者などにより定められていることが想定される。なお、安全要求のレベルは、ASIL(Automotive Safety Integrity Level(自動車安全水準))、CAL(Cybersecurity Assurance Level)、脅威分析のリスク値、OSS(Open Source Software)の使用数又は使用割合などに基づいて定められてもよいし、これらとは異なる任意の基準により定められてもよい。安全要求のレベルは、例えば、高、中および低の3段階で示される。
【0087】
異常の有無の判定方法は、監視対象の異常があるか否かを判定する方法を示す情報である。判定方法には、例えば、複製値、マスク値、ハッシュ値および適正範囲による判定がある。なお、上記判定の基準となる上記の複製値、マスク値、ハッシュ値および適正範囲は、監視対象であるメモリ領域に格納される適正値を示す基準情報に相当する。
【0088】
複製値による判定とは、監視対象のメモリ領域に過去に格納されていた値を複製した値(基準値ともいう)と、現時点で当該メモリ領域に格納されている値(現在値ともいう)との一致判定に基づく判定方法である。監視部31は、上記基準値と、現在値とが一致する場合に、異常がないと判定し、そうでない場合に異常があると判定する。
【0089】
マスク値による判定とは、監視対象のメモリ領域に所定のビットマスクを適用し、適用した結果であるマスク値と、所定値との一致判定に基づく判定方法である。監視部31は、上記マスク値と、上記所定値とが一致する場合に、異常がないと判定し、そうでない場合に異常があると判定する。
【0090】
ハッシュ値による判定とは、監視対象のメモリ領域にハッシュ演算処理を施すことでハッシュ値を算出し、算出したハッシュ値と、所定値との一致判定に基づく判定方法である。監視部31は、上記ハッシュ値と、上記所定値とが一致する場合に、異常がないと判定し、そうでない場合に異常があると判定する。なお、ハッシュ演算に用いられるハッシュ関数は、例えばSHA−256を採用し得る。
【0091】
適正範囲による判定とは、現時点で監視対象のメモリ領域に格納されている値(現在値ともいう)が、所定の適正範囲に属するか否かの判定に基づく判定方法である。監視部31は、上記現在値が、上記適正範囲に属すると判定した場合に、異常がないと判定し、そうでない場合に異常があると判定する。
【0092】
このように、監視部31は、監視情報に示されている基準情報に、監視対象に格納されている値が適合しない場合に、異常があると判定する。
【0093】
監視タイミングは、当該監視対象を監視するタイミングを示す情報である。監視タイミングには、アクセスフック、周期監視およびリアルタイムログ出力に基づく監視がある。なお、監視タイミングは、監視対象の重要さ又は更新頻度などに基づいて、管理者などによって適切に設定されていることが想定される。
【0094】
アクセスフックに基づく監視では、監視部31は、ハイパーバイザの管理領域であるHV領域220へのメモリアクセスに係るシステムコールをフックすることによって、HV領域220へのメモリアクセスがなされたときに監視をする。
【0095】
周期監視では、監視部31は、一定の周期で、つまり、所定の時間間隔で定期的に監視をする。所定の時間、つまり、監視の周期は、例えば、1秒、又は、10秒などである。周期監視に必要な時刻情報は、制御部33から提供される時刻情報を用いることができる。制御部33が、プロセッサ12がセキュアモードで実行して実現されるものであるので、制御部33から提供される時刻情報が不正に改ざんされることが抑制されている。
【0096】
リアルタイムログに基づく監視では、監視部31は、リアルタイムログが出力されたときに監視をする。
【0097】
なお、監視タイミングは、監視対象のメモリ領域への書込み専用アプリへの書込みアクセスがあったタイミングとすることもできる。すなわち、ハイパーバイザ又は仮想マシンから監視対象のメモリ領域への直接の書込みアクセスを禁止し、プロセッサ12がセキュアモードで実行する書込み専用アプリを経由して監視対象のメモリ領域への書込みアクセスを行うように構成しておくと、監視対象のメモリ領域への書込み専用アプリへの書込みアクセスをフックすることによって、監視対象のメモリ領域への書込みアクセスそのものを監視することができる。
【0098】
通知方法は、当該監視対象に異常があると判定されたときに通知する方法を示す情報である。通知方法には、例えば、通知先を示す情報として、外部CPU、仮想マシンまたはハイパーバイザなどがあり得る。また、通知方法の1つとして、通知をしないことも含まれることとする。処理部32は、当該監視対象に異常があると判定された場合、通知方法に通知先が設定されている場合には、その通知先に通知をし、通知先が設定されていない場合には、通知をしない。
【0099】
なお、処理部32は、監視対象に異常があると監視部31が判定した場合には、異常があると判定された監視対象に対応付けられた安全性のレベルに応じた通知処理を実行してもよい。例えば、処理部32は、安全性のレベルが比較的高い場合に、外部CPUに通知し、また、安全性のレベルが比較的低い場合に通知をしない、という通知方法をとりうる。
【0100】
処理内容は、当該監視対象に異常があると判定されたときになされる処理の内容を示す情報である。
【0101】
処理内容として、例えば、基準値で更新、ログ記録、アラート通知、又は、セーフモードへ移行などの処理がある。
【0102】
基準値で更新する処理は、監視対象であるメモリの領域を基準値で上書きすることによって更新する処理である。
【0103】
ログ記録の処理は、監視対象に異常があると判定されたことを示す情報をログに記録する処理である。
【0104】
アラート通知の処理は、監視対象に異常があると判定されたことを示す情報をアラートとして通知する処理である。アラートの通知先は、ハイパーバイザ又は他の仮想マシンなどであり、他の装置であってもよい。
【0105】
セーフモードへ移行する処理は、車両および情報処理装置10が必要最小限の機能のみで動作するモードであるセーフモードへ移行させる処理である。セーフモードは、例えば、車両が加速、減速または操舵という基本的な走行制御のみを行い、また、情報処理装置10が、車両の加速、減速または操舵という基本的な走行制御のみに関する制御を行うモードである。
【0106】
なお、監視情報は、予め管理者などにより設定されたあとに変更されない固定的な情報であってもよいし、更新によって動的に変更されてもよい。動的に変更される場合、変更先の情報の正当性が電子署名などによって確かめられた上で更新されるようにしてもよい。
【0107】
図6は、本実施の形態における情報処理装置10の処理を示す第一のフロー図である。図6に示されるフロー図は、情報処理装置10による監視対象の監視を開始するときの処理である。
【0108】
ステップS101において、監視部31は、保護領域21に監視情報211が格納されているか否かを判定する。監視情報211が格納されていると判定した場合(ステップS101でYes)には、図6に示されている一連の処理を終了し、そうでない場合(ステップS101でNo)には、ステップS102に進む。
【0109】
ステップS102において、監視部31は、監視情報を取得し、取得した監視情報を監視情報211として保護領域21に格納する。例えば、監視部31は、管理者による操作に基づいて、他の装置(不図示)から通信によって監視情報を取得してもよいし、可搬型記憶装置から監視情報を取得してもよい。
【0110】
図6に示された一連の処理によって、情報処理装置10は、保護領域21に監視情報211が格納された状態を形成する。
【0111】
図7は、本実施の形態における情報処理装置10の処理を示す第二のフロー図である。図7に示されるフロー図は、情報処理装置10に監視対象の監視を行っているときの処理である。
【0112】
ステップS201において、監視部31は、保護領域21から監視情報211を読み出す。
【0113】
ステップS202において、監視部31は、ステップS201で読み出した監視情報を用いて、監視対象に基づいて監視態様(より具体的には監視タイミング)を決定する。例えば、監視部31は、図5に示される監視情報を読み出した場合には、読み出した監視情報において対象領域として示されているHV領域、VM1領域、VM2領域およびVM3領域を監視対象として設定する。また、監視部31は、読み出した監視情報において監視タイミングとして示されているアクセスフック、1秒及び10秒周期、リアルタイムログの出力タイミングを、監視タイミングとして設定する。
【0114】
ステップS203において、監視部31は、ステップS202で設定した監視タイミングが到来したか否かを判定する。監視タイミングが到来した場合(ステップS203でYes)には、ステップS204に進み、そうでない場合(ステップS203でNo)には、ステップS203を再び実行する。すなわち、監視部31は、監視タイミングが到来するまで、ステップS203で待機状態をとる。
【0115】
ステップS204において、監視部31は、監視対象領域に格納されている値を読み出す。
【0116】
ステップS205において、監視部31は、ステップS204で読み出した値、つまり現在値が、基準情報に適合しているか否かを判定する。現在値が基準情報に適合している場合には、監視対象に異常がないことを意味している。一方、現在値が基準情報に適合していない場合には、監視対象に異常があることを意味している。現在値が基準情報に適合している場合(ステップS205でYes)には、ステップS203に進み、そうでない場合(ステップS205でNo)には、ステップS206に進む。
【0117】
ステップS206において、処理部32は、ステップS201で読み出した監視情報から得られる安全要求のレベルに応じて通知方法を決定し、決定した通知方法によって通知処理を実行する。なお、通知方法が、通知しないことを示している場合には、通知はなされない。
【0118】
ステップS207において、処理部32は、ステップS201で読み出した監視情報に設定されている処理内容に示される処理を実行する。ステップS207を終えたら、ステップS203に進む。
【0119】
図7に示される一連の処理により、情報処理装置10は、監視対象ごとに設定されたタイミングでメモリ領域を監視し、異常がある場合に適切な処理を実行することができる。
【0120】
なお、制御部33により情報処理装置10内の機能部のソフトウェア更新に関する制御を行うときには、制御部33が、ネットワーク経由(OTA(Over The Air))で受信したVMイメージ又はドライバの正当性をハッシュ値などを用いて検証してから、受信したVMイメージ又はドライバをメモリに書き込むようにしてもよい。
【0121】
なお、ハイパーバイザが管理しているメモリレイアウト情報(例えば、図2の右欄に示される、物理メモリ内のデータの配置を示す情報)は、一般には、情報処理装置10の起動時に動的に作成される。しかし、情報処理装置10は、事前にメモリレイアウト情報を静的に定義しておき、起動イメージに埋め込んでおいてもよい。その場合、情報処理装置10の起動時に、埋め込まれていた起動イメージが読み込まれるので、監視対象の物理メモリを効率よく特定することができ、処理を高速化できる利点がある。
【0122】
(実施の形態の変形例1)
本変形例において、ハイパーバイザ又は仮想マシンに割り当てられるメモリ領域の改ざんを抑制する情報処理装置の別の形態について説明する。
【0123】
図8は、本変形例における情報処理装置10Aの機能構成を示す模式図である。
【0124】
図8に示されるように、情報処理装置10Aは、実施の形態における情報処理装置10と同様に、メモリ11と、プロセッサ12とを備える。メモリ11は、保護領域21と、非保護領域22とを有する。
【0125】
保護領域21には、鍵情報212が格納されている。
【0126】
鍵情報212は、非保護領域22に格納されている、暗号化された監視情報231(暗号化監視情報ともいう)を復号するための復号鍵に相当する鍵情報である。
【0127】
非保護領域22には、HV領域220と、n個の仮想マシンの管理領域とが格納されている。また、非保護領域22には、暗号化監視情報231が格納されている。暗号化監視情報231は、実施の形態における監視情報211が暗号化されたものであり、鍵情報212によって復号され得るものである。
【0128】
プロセッサ12は、メモリ11を用いてプログラムを実行することで、監視部31Aと、処理部32と、制御部33と、仮想マシン管理部41とを実現する。監視部31A以外の機能は、実施の形態における機能と同じであるので詳細な説明を省略する。
【0129】
監視部31Aは、実施の形態における監視部31と同様、プロセッサ12がセキュアモードで動作することで実現される機能である。
【0130】
監視部31Aは、復号部34を有する。
【0131】
復号部34は、非保護領域22に格納されている暗号化監視情報231を読み出し、また、保護領域21に格納されている鍵情報212を読み出す。そして、復号部34は、読み出した監視情報231を、読み出した鍵情報212を復号鍵として用いて復号することで、監視情報を取得する。
【0132】
監視部31Aは、復号部34が取得した監視情報を、実施の形態における監視情報211として用いて監視対象の監視を行う。すなわち、監視部31Aは、暗号化監視情報231と鍵情報212とを読み出し、読み出した暗号化監視情報を、読み出した鍵情報212で復号することで得られた監視情報に示されている監視態様で監視対象を監視する。
【0133】
このようにすると、保護領域21の容量を圧迫することを回避できる利点がある。保護領域21の容量が所定容量に限定されており、かつ、監視情報のデータサイズが比較的大きい場合には、保護領域21に配置するデータのサイズをなるべく小さく抑えることが求められる。このような場合、比較的大きなデータサイズを有する監視情報を、暗号化監視情報231として非保護領域22に配置することで、保護領域21の容量を圧迫することを回避できる利点がある。
【0134】
(実施の形態の変形例2)
本変形例において、ハイパーバイザ又は仮想マシンに割り当てられるメモリ領域の改ざんを抑制する情報処理装置の別の形態について説明する。
【0135】
図9は、本変形例における情報処理装置10Bの機能構成を示す模式図である。
【0136】
図9に示されるように、情報処理装置10Bは、実施の形態における情報処理装置10と同様に、メモリ11と、プロセッサ12とを備える。メモリ11は、保護領域21と、非保護領域22とを有する。
【0137】
メモリ11が有する領域は、実施の形態におけるものと同じである。
【0138】
プロセッサ12は、メモリ11を用いてプログラムを実行することで、監視部31と、処理部32と、制御部33と、仮想マシン管理部41Aとを実現する。仮想マシン管理部41A以外の機能は、実施の形態における機能と同じであるので詳細な説明を省略する。
【0139】
ここで、仮想マシン管理部41Aが、プロセッサ12がセキュアモードで動作することで実現される機能であることが、実施の形態との違いである。
【0140】
仮想マシン管理部41Aは、一以上の仮想マシンを稼働させる機能部である。仮想マシン管理部41Aは、HV領域220のメモリ領域を使用して実現されている。また、仮想マシン管理部41Aは、VM1領域、VM2領域、・・・、VMn領域を、それぞれ、一以上の仮想マシンのメモリ領域として用いて、一以上の仮想マシンを稼働させている。
【0141】
仮想マシン管理部41Aは、セキュアモードで実行されているので、仮想マシン間の通信も監視部31による監視対象となり得る。そのため、仮想マシン管理部41Aがノーマルモードで実行される場合(実施の形態における場合)よりも、不正マシン間の通信の監視をしやすい利点がある。
【0142】
(実施の形態の変形例3)
本変形例において、ハイパーバイザ又は仮想マシンに割り当てられるメモリ領域の改ざんを抑制する情報処理装置が実行する情報処理方法の別の形態について説明する。
【0143】
図10は、本変形例における情報処理装置が実行する情報処理方法を示すフロー図である。
【0144】
情報処理装置は、保護領域と非保護領域とを含むメモリと、メモリの保護領域及び非保護領域へのアクセスが許可される第一モードと、メモリの保護領域へのアクセスが禁止され、非保護領域へのアクセスが許可される第二モードとのいずれかの実行モードに切り替えながら動作するプロセッサとを備える。
【0145】
ステップS301において、プロセッサが第二モードで動作する場合に、一以上の仮想マシンを稼働させる。
【0146】
ステップS302において、プロセッサが第一モードで動作する場合に、一以上の仮想マシンのうちの一の仮想マシン、又は、仮想マシン管理部に割り当てられるメモリの領域を監視対象として監視をし、監視対象に異常があるか否かの判定をする。ステップS302は、実施の形態におけるステップS203〜S205に対応する。なお、ステップS302の後、ステップS302による判定の結果に応じた処理を実行してもよい。当該処理は、実施の形態におけるステップS206〜S207に対応する。
【0147】
図10に示される一連の処理により、情報処理装置は、ハイパーバイザ又は仮想マシンに割り当てられるメモリ領域の改ざんを抑制することができる。
【0148】
なお、上記実施の形態および各変形例において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記実施の形態および各変形例の情報処理装置などを実現するソフトウェアは、次のようなプログラムである。
【0149】
すなわち、このプログラムは、コンピュータに、情報処理装置が実行する情報処理方法であって、前記情報処理装置は、保護領域と非保護領域とを含むメモリと、前記メモリの前記保護領域及び前記非保護領域へのアクセスが許可される第一モードと、前記メモリの前記保護領域へのアクセスが禁止され、前記非保護領域へのアクセスが許可される第二モードとのいずれかの実行モードに切り替えながら動作するプロセッサとを備え、前記情報処理方法は、前記プロセッサが前記第二モードで動作する場合に、一以上の仮想マシンを稼働させる仮想マシン管理ステップと、前記プロセッサが前記第一モードで動作する場合に、前記一以上の仮想マシンのうちの一の仮想マシン、又は、前記仮想マシン管理ステップに割り当てられる前記メモリの領域を監視対象として監視をし、前記監視対象に異常があるか否かの判定をする監視ステップとを含む情報処理方法を実行させるプログラムである。
【0150】
以上、一つまたは複数の態様に係る情報処理装置などについて、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
【産業上の利用可能性】
【0151】
本発明は、仮想マシン環境における異常検知装置に利用可能である。
【符号の説明】
【0152】
10、10A、10B、90 情報処理装置
11 メモリ
12 プロセッサ
21 保護領域
22 非保護領域
31、31A 監視部
32 処理部
33 制御部
34 復号部
41、41A 仮想マシン管理部
211、231 監視情報
212 鍵情報
220 HV領域
221 VM1領域
222 VM2領域
22n VMn領域
A1、A2 アプリ
HV ハイパーバイザ
VM1、VM2、VMn 仮想マシン
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10