IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ パナソニックIPマネジメント株式会社の特許一覧

特開2023-144561情報処理装置及び情報処理装置の制御方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023144561
(43)【公開日】2023-10-11
(54)【発明の名称】情報処理装置及び情報処理装置の制御方法
(51)【国際特許分類】
   G06F 21/60 20130101AFI20231003BHJP
【FI】
G06F21/60 340
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022051601
(22)【出願日】2022-03-28
(71)【出願人】
【識別番号】314012076
【氏名又は名称】パナソニックIPマネジメント株式会社
(74)【代理人】
【識別番号】100109210
【弁理士】
【氏名又は名称】新居 広守
(74)【代理人】
【識別番号】100137235
【弁理士】
【氏名又は名称】寺谷 英作
(74)【代理人】
【識別番号】100131417
【弁理士】
【氏名又は名称】道坂 伸一
(72)【発明者】
【氏名】三ツ木 知愛
(72)【発明者】
【氏名】今本 吉治
(57)【要約】
【課題】アクセス要求の正当性を精度良く判定することができる情報処理装置を提供する。
【解決手段】情報処理装置2は、ゲストOS8と、ゲストOS8からのアクセス要求に応じてセクタ群にアクセスするホストOS10とを備える。ホストOS10は、セクタ群データベース30を参照することにより、アクセス要求からセクタ群アクセスログ38を生成するアクセスログ解析部24と、セクタ群アクセスログ38に基づいて、アクセス要求がアプリケーションに関するセクタ群へのアクセスを要求するものであるか否かを判定するセクタ群アクセス判定部26と、アクセス要求がセクタ群へのアクセスを要求するものであると判定され、且つ、ゲストOS8によりアプリケーション保存領域の変更が行われた場合に、開発者定義ポリシー15aに基づいてセクタ群アクセスルールデータベース34及びセクタ群データベース30を更新する管理部42とを有する。
【選択図】図1
【特許請求の範囲】
【請求項1】
アプリケーションが保存されたアプリケーション保存領域を有し、前記アプリケーションを実行するオペレーティングシステムと、
前記オペレーティングシステムからのアクセス要求に応じて、記憶装置に記憶されたセクタ群にアクセスする制御システムと、を備え、
前記制御システムは、
セクタ番号と当該セクタ番号に対応する前記記憶装置の記憶領域に記憶された前記セクタ群のセクタ群識別子との対応関係を示す対応情報を参照することにより、前記アクセス要求から、当該アクセス要求に含まれる前記セクタ番号と前記セクタ群識別子とを紐付けたアクセスデータを生成する解析部と、
前記アクセスデータ、及び、前記記憶装置に記憶された前記セクタ群にアクセスするためのルールを示すルール情報に基づいて、前記アクセス要求が不正であるか否かを判定する監視部と、
前記アクセスデータに基づいて、前記アクセス要求が前記記憶装置に記憶された前記アプリケーションに関する前記セクタ群へのアクセスを要求するものであるか否かを判定する判定部と、
前記アクセス要求が前記アプリケーションに関する前記セクタ群へのアクセスを要求するものであると判定され、且つ、前記オペレーティングシステムにより前記アプリケーション保存領域の変更が行われた場合に、前記アプリケーションに関するアプリケーション情報を取得し、取得した前記アプリケーション情報に基づいて前記ルール情報及び前記対応情報を更新する管理部と、を有する
情報処理装置。
【請求項2】
前記アプリケーション保存領域の変更は、前記アプリケーションの追加、削除及び更新のいずれかである
請求項1に記載の情報処理装置。
【請求項3】
前記管理部は、前記アプリケーション保存領域に保存された前記アプリケーションに関するアプリケーションデータベースを有しており、前記アクセス要求が前記アプリケーションに関する前記セクタ群へのアクセスを要求するものであると判定された場合に、前記アプリケーション保存領域と前記アプリケーションデータベースとを比較することにより、前記オペレーティングシステムにより前記アプリケーションの追加、削除及び更新のいずれが行われたかを判定する
請求項2に記載の情報処理装置。
【請求項4】
前記管理部は、前記オペレーティングシステムにより前記アプリケーションの追加が行われた場合に、追加された前記アプリケーションに関する前記ルールを前記ルール情報に追加し、且つ、追加された前記アプリケーションに関する前記対応関係を前記対応情報に追加する
請求項2又は3に記載の情報処理装置。
【請求項5】
前記管理部は、前記オペレーティングシステムにより前記アプリケーションの削除が行われた場合に、削除された前記アプリケーションに関する前記ルールを前記ルール情報から削除し、且つ、削除された前記アプリケーションに関する前記対応関係を前記対応情報から削除する
請求項2又は3に記載の情報処理装置。
【請求項6】
前記管理部は、前記オペレーティングシステムにより前記アプリケーションの更新が行われた場合に、前記ルール情報において更新された前記アプリケーションに関する前記ルールを変更し、且つ、前記対応情報において更新された前記アプリケーションに関する前記対応関係を変更する
請求項2又は3に記載の情報処理装置。
【請求項7】
前記管理部は、前記アプリケーション情報として、前記アプリケーションを保護するための条件が定義された開発者定義ポリシー、又は、前記アプリケーションを保護するために設けられた保護ルールに基づいて、前記ルール情報及び前記対応情報を更新する
請求項1~6のいずれか1項に記載の情報処理装置。
【請求項8】
アプリケーションが保存されたアプリケーション保存領域を有し、前記アプリケーションを実行するオペレーティングシステムと、前記オペレーティングシステムからのアクセス要求に応じて、記憶装置に記憶されたセクタ群にアクセスする制御システムと、を備えた情報処理装置の制御方法であって、
セクタ番号と当該セクタ番号に対応する前記記憶装置の記憶領域に記憶された前記セクタ群のセクタ群識別子との対応関係を示す対応情報を参照することにより、前記アクセス要求から、当該アクセス要求に含まれる前記セクタ番号と前記セクタ群識別子とを紐付けたアクセスデータを生成するステップと、
前記アクセスデータ、及び、前記記憶装置に記憶された前記セクタ群にアクセスするためのルールを示すルール情報に基づいて、前記アクセス要求が不正であるか否かを判定するステップと、
前記アクセスデータに基づいて、前記アクセス要求が前記記憶装置に記憶された前記アプリケーションに関する前記セクタ群へのアクセスを要求するものであるか否かを判定するステップと、
前記アクセス要求が前記アプリケーションに関する前記セクタ群へのアクセスを要求するものであると判定され、且つ、前記オペレーティングシステムにより前記アプリケーション保存領域の変更が行われた場合に、前記アプリケーションに関するアプリケーション情報を取得し、取得した前記アプリケーション情報に基づいて前記ルール情報及び前記対応情報を更新するステップと、を含む
情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置及び情報処理装置の制御方法に関する。
【背景技術】
【0002】
サービス用オペレーティングシステム(以下、「サービス用OS」という)と、セキュリティ用オペレーティングシステム(以下、「セキュリティ用OS」という)と、サービス用OS及びセキュリティ用OSの実行を制御する制御プログラムとを備えた情報処理装置が知られている(例えば、特許文献1参照)。
【0003】
サービス用OSは、サーバプログラムからの磁気ディスク内のファイルに対するアクセス要求をフック(取得)し、フックしたアクセス要求の正当性の判定をセキュリティ用OSに要求する。セキュリティ用OSは、ファイル毎に指定されたルールに基づいて、サーバプログラムからのアクセス要求が不正であるか否かを判定する。セキュリティ用OSにより、サーバプログラムからのアクセス要求が不正であると判定された場合には、サービス用OSは、セキュリティ用OSからの判定結果に基づいて、エラーコードを生成する。
【0004】
一方、セキュリティ用OSにより、サーバプログラムからのアクセス要求が不正ではないと判定された場合には、サービス用OSは、セキュリティ用OSからの判定結果に基づいて、サーバプログラムからのアクセス要求に基づいて磁気ディスク内のファイルへのアクセスを実行する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第4177957号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述した従来の情報処理装置では、サービス用OSに新たなアプリケーションが追加された場合に、セキュリティ用OSには当該アプリケーションに関するファイルを保護するためのルールが存在せず、アクセス要求の正当性を精度良く判定することができない。
【0007】
そこで、本開示は、アクセス要求の正当性を精度良く判定することができる情報処理装置及び情報処理装置の制御方法を提供する。
【課題を解決するための手段】
【0008】
本開示の一態様に係る情報処理装置は、アプリケーションが保存されたアプリケーション保存領域を有し、前記アプリケーションを実行するオペレーティングシステムと、前記オペレーティングシステムからのアクセス要求に応じて、記憶装置に記憶されたセクタ群にアクセスする制御システムと、を備え、前記制御システムは、セクタ番号と当該セクタ番号に対応する前記記憶装置の記憶領域に記憶された前記セクタ群のセクタ群識別子との対応関係を示す対応情報を参照することにより、前記アクセス要求から、当該アクセス要求に含まれる前記セクタ番号と前記セクタ群識別子とを紐付けたアクセスデータを生成する解析部と、前記アクセスデータ、及び、前記記憶装置に記憶された前記セクタ群にアクセスするためのルールを示すルール情報に基づいて、前記アクセス要求が不正であるか否かを判定する監視部と、前記アクセスデータに基づいて、前記アクセス要求が前記記憶装置に記憶された前記アプリケーションに関する前記セクタ群へのアクセスを要求するものであるか否かを判定する判定部と、前記アクセス要求が前記アプリケーションに関する前記セクタ群へのアクセスを要求するものであると判定され、且つ、前記オペレーティングシステムにより前記アプリケーション保存領域の変更が行われた場合に、前記アプリケーションに関するアプリケーション情報を取得し、取得した前記アプリケーション情報に基づいて前記ルール情報及び前記対応情報を更新する管理部と、を有する。
【0009】
なお、これらの包括的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なCD-ROM(Compact Disc-Read Only Memory)等の記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【0010】
本開示の一態様に係る情報処理装置等によれば、アクセス要求の正当性を精度良く判定することができる。
【図面の簡単な説明】
【0011】
図1】実施の形態に係る情報処理装置の構成を示すブロック図である。
図2】実施の形態に係るデバイスアクセスログの一例を示す図である。
図3】実施の形態に係るセクタ群データベースの一例を示す図である。
図4】実施の形態に係るセクタ群アクセスログの一例を示す図である。
図5】実施の形態に係るセクタ群アクセス情報の一例を示す図である。
図6】実施の形態に係るセクタ群アクセスルールデータベースの一例を示す図である。
図7】実施の形態に係る管理部の機能構成を示すブロック図である。
図8】実施の形態に係るアプリケーションデータベースの一例を示す図である。
図9】実施の形態に係る開発者定義ポリシーの一例を示す図である。
図10】実施の形態に係るディレクトリ生成先ポリシーの一例を示す図である。
図11】実施の形態に係るホストOSの全体動作の流れを示すフローチャートである。
図12】実施の形態に係るアクセスログ解析部の動作の流れを示すフローチャートである。
図13】実施の形態に係るセクタ群アクセス判定部の動作の流れを示すフローチャートである。
図14図13のフローチャートのステップS305の処理を具体的に示すフローチャートである。
図15図13のフローチャートのステップS305の処理を具体的に示すフローチャートである。
図16】実施の形態に係るセクタ群アクセス判定部及び管理部の動作の流れを示すフローチャートである。
図17図16のフローチャートのステップS602の処理を具体的に示すフローチャートである。
図18】ゲストOSによりアプリケーションの追加が行われた場合における、図16のフローチャートのステップS603の処理を具体的に示すフローチャートである。
図19】ゲストOSによりアプリケーションの追加が行われた場合における、セクタ群アクセスルールデータベースの更新前後の一例を示す図である。
図20】ゲストOSによりアプリケーションの追加が行われた場合における、セクタ群データベースの更新前後の一例を示す図である。
図21】ゲストOSによりアプリケーションの削除が行われた場合における、図16のフローチャートのステップS603の処理を具体的に示すフローチャートである。
図22】ゲストOSによりアプリケーションの削除が行われた場合における、セクタ群アクセスルールデータベースの更新前後の一例を示す図である。
図23】ゲストOSによりアプリケーションの削除が行われた場合における、セクタ群データベースの更新前後の一例を示す図である。
図24】ゲストOSによりアプリケーションの更新が行われた場合における、図16のフローチャートのステップS603の処理を具体的に示すフローチャートである。
図25】ゲストOSによりアプリケーションの更新が行われた場合における、セクタ群アクセスルールデータベースの更新前後の一例を示す図である。
図26】ゲストOSによりアプリケーションの更新が行われた場合における、セクタ群データベースの更新前後の一例を示す図である。
【発明を実施するための形態】
【0012】
本開示の一態様に係る情報処理装置は、アプリケーションが保存されたアプリケーション保存領域を有し、前記アプリケーションを実行するオペレーティングシステムと、前記オペレーティングシステムからのアクセス要求に応じて、記憶装置に記憶されたセクタ群にアクセスする制御システムと、を備え、前記制御システムは、セクタ番号と当該セクタ番号に対応する前記記憶装置の記憶領域に記憶された前記セクタ群のセクタ群識別子との対応関係を示す対応情報を参照することにより、前記アクセス要求から、当該アクセス要求に含まれる前記セクタ番号と前記セクタ群識別子とを紐付けたアクセスデータを生成する解析部と、前記アクセスデータ、及び、前記記憶装置に記憶された前記セクタ群にアクセスするためのルールを示すルール情報に基づいて、前記アクセス要求が不正であるか否かを判定する監視部と、前記アクセスデータに基づいて、前記アクセス要求が前記記憶装置に記憶された前記アプリケーションに関する前記セクタ群へのアクセスを要求するものであるか否かを判定する判定部と、前記アクセス要求が前記アプリケーションに関する前記セクタ群へのアクセスを要求するものであると判定され、且つ、前記オペレーティングシステムにより前記アプリケーション保存領域の変更が行われた場合に、前記アプリケーションに関するアプリケーション情報を取得し、取得した前記アプリケーション情報に基づいて前記ルール情報及び前記対応情報を更新する管理部と、を有する。
【0013】
本態様によれば、オペレーティングシステムによりアプリケーション保存領域の変更が行われるのに応じて、ルール情報及び対応情報を更新する。これにより、例えばオペレーティングシステムに新たなアプリケーションが追加された際において、仮にオペレーティングシステムのアクセス制御機能が不正なコンピュータプログラムにより無効化又は改ざん等された場合であっても、更新されたルール情報及び対応情報に基づいて、オペレーティングシステムからのアクセス要求の正当性を精度良く判定することができる。
【0014】
例えば、前記アプリケーション保存領域の変更は、前記アプリケーションの追加、削除及び更新のいずれかであるように構成してもよい。
【0015】
本態様によれば、オペレーティングシステムによりアプリケーションの追加、削除及び更新のいずれかが行われるのに応じて、ルール情報及び対応情報を更新することができる。
【0016】
例えば、前記管理部は、前記アプリケーション保存領域に保存された前記アプリケーションに関するアプリケーションデータベースを有しており、前記アクセス要求が前記アプリケーションに関する前記セクタ群へのアクセスを要求するものであると判定された場合に、前記アプリケーション保存領域と前記アプリケーションデータベースとを比較することにより、前記オペレーティングシステムにより前記アプリケーションの追加、削除及び更新のいずれが行われたかを判定するように構成してもよい。
【0017】
本態様によれば、アプリケーション保存領域とアプリケーションデータベースとを比較することにより、オペレーティングシステムによりアプリケーションの追加、削除及び更新のいずれが行われたかを容易に判定することができる。
【0018】
例えば、前記管理部は、前記オペレーティングシステムにより前記アプリケーションの追加が行われた場合に、追加された前記アプリケーションに関する前記ルールを前記ルール情報に追加し、且つ、追加された前記アプリケーションに関する前記対応関係を前記対応情報に追加するように構成してもよい。
【0019】
本態様によれば、オペレーティングシステムによりアプリケーションの追加が行われた場合に、ルール情報及び対応情報を適切に更新することができる。
【0020】
例えば、前記管理部は、前記オペレーティングシステムにより前記アプリケーションの削除が行われた場合に、削除された前記アプリケーションに関する前記ルールを前記ルール情報から削除し、且つ、削除された前記アプリケーションに関する前記対応関係を前記対応情報から削除するように構成してもよい。
【0021】
本態様によれば、オペレーティングシステムによりアプリケーションの削除が行われた場合に、ルール情報及び対応情報を適切に更新することができる。
【0022】
例えば、前記管理部は、前記オペレーティングシステムにより前記アプリケーションの更新が行われた場合に、前記ルール情報において更新された前記アプリケーションに関する前記ルールを変更し、且つ、前記対応情報において更新された前記アプリケーションに関する前記対応関係を変更するように構成してもよい。
【0023】
本態様によれば、オペレーティングシステムによりアプリケーションの更新が行われた場合に、ルール情報及び対応情報を適切に更新することができる。
【0024】
例えば、前記管理部は、前記アプリケーション情報として、前記アプリケーションを保護するための条件が定義された開発者定義ポリシー、又は、前記アプリケーションを保護するために設けられた保護ルールに基づいて、前記ルール情報及び前記対応情報を更新するように構成してもよい。
【0025】
本態様によれば、開発者定義ポリシー又は保護ルールに基づいて、ルール情報及び対応情報を容易に更新することができる。
【0026】
本開示の一態様に係る情報処理装置の制御方法は、アプリケーションが保存されたアプリケーション保存領域を有し、前記アプリケーションを実行するオペレーティングシステムと、前記オペレーティングシステムからのアクセス要求に応じて、記憶装置に記憶されたセクタ群にアクセスする制御システムと、を備えた情報処理装置の制御方法であって、セクタ番号と当該セクタ番号に対応する前記記憶装置の記憶領域に記憶された前記セクタ群のセクタ群識別子との対応関係を示す対応情報を参照することにより、前記アクセス要求から、当該アクセス要求に含まれる前記セクタ番号と前記セクタ群識別子とを紐付けたアクセスデータを生成するステップと、前記アクセスデータ、及び、前記記憶装置に記憶された前記セクタ群にアクセスするためのルールを示すルール情報に基づいて、前記アクセス要求が不正であるか否かを判定するステップと、前記アクセスデータに基づいて、前記アクセス要求が前記記憶装置に記憶された前記アプリケーションに関する前記セクタ群へのアクセスを要求するものであるか否かを判定するステップと、前記アクセス要求が前記アプリケーションに関する前記セクタ群へのアクセスを要求するものであると判定され、且つ、前記オペレーティングシステムにより前記アプリケーション保存領域の変更が行われた場合に、前記アプリケーションに関するアプリケーション情報を取得し、取得した前記アプリケーション情報に基づいて前記ルール情報及び前記対応情報を更新するステップと、を含む。
【0027】
本態様によれば、オペレーティングシステムによりアプリケーション保存領域の変更が行われるのに応じて、ルール情報及び対応情報を更新する。これにより、例えばオペレーティングシステムに新たなアプリケーションが追加された際において、仮にオペレーティングシステムのアクセス制御機能が不正なコンピュータプログラムにより無効化又は改ざん等された場合であっても、更新されたルール情報及び対応情報に基づいて、オペレーティングシステムからのアクセス要求の正当性を精度良く判定することができる。
【0028】
なお、これらの包括的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なCD-ROM等の記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されてもよい。
【0029】
以下、実施の形態について、図面を参照しながら具体的に説明する。
【0030】
なお、以下で説明する実施の形態は、いずれも包括的又は具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序等は、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【0031】
(実施の形態)
[1.情報処理装置の構成]
まず、図1図6を参照しながら、実施の形態に係る情報処理装置2の構成について説明する。図1は、実施の形態に係る情報処理装置2の構成を示すブロック図である。図2は、実施の形態に係るデバイスアクセスログ36の一例を示す図である。図3は、実施の形態に係るセクタ群データベース30の一例を示す図である。図4は、実施の形態に係るセクタ群アクセスログ38の一例を示す図である。図5は、実施の形態に係るセクタ群アクセス情報32の一例を示す図である。図6は、実施の形態に係るセクタ群アクセスルールデータベース34の一例を示す図である。
【0032】
図1に示すように、実施の形態に係る情報処理装置2は、ハードウェア4と、仮想化制御システム6と、複数のゲストオペレーティングシステム8(以下、「ゲストOS8」という)と、ホストオペレーティングシステム10(以下、「ホストOS10」という)とを備えている。情報処理装置2は、例えば自動車等の車両における不正アクセスを判定するための装置である。
【0033】
情報処理装置2には、外部記憶デバイス12が電気的に接続されている。外部記憶デバイス12は、記憶装置の一例であり、例えばハードディスクドライブ(HDD)等で構成される。外部記憶デバイス12は、セクタ群(データ)を記憶するための複数の記憶領域を有している。これらの複数の記憶領域にはそれぞれ、複数のセクタ番号が割り当てられている。セクタ番号は、後述するようにホストOS10がゲストOS8からのアクセス要求に応じて外部記憶デバイス12に記憶されたセクタ群にアクセスする際に、当該セクタ群が記憶された外部記憶デバイス12の記憶領域を指定するためのものであり、例えば4桁の数字で構成される。
【0034】
本明細書において、セクタ群とは、ファイル自体やファイルの情報を記載している情報(例えば、Linux(登録商標)のi-node情報等)、ファイルシステムの情報を意味する。セクタ群は、例えばアプリケーション15(後述する)に関するファイル等を含む。また、セクタ群名とは、セクタ群識別子の一例であり、ファイル自体を表すファイル名、あるいは、ファイルの情報が記載されている情報の特定名称(例えば、ディレクトリ名での指定等)を意味する。ファイルの情報とは、ファイル名やファイルのサイズ、アクセスのパーミッション、変更履歴、アクセス制御システムに要する情報等を含むメタ情報を意味する。
【0035】
ハードウェア4は、例えばCPU(Central Processing Unit)又はECU(Electronic Control Unit)等を有するプロセッサを含み、複数のコンピュータプログラムの実行環境を提供する。なお、ハードウェア4は、1つのプロセッサで構成されてもよいし、複数のプロセッサで構成されてもよい。
【0036】
仮想化制御システム6は、ハードウェア4上で実行され、複数のゲストOS8及びホストOS10の実行を制御する仮想化ソフトウェアであり、制御システムの一例である。この仮想化制御システム6により、1つのハードウェア4上に異なる複数のOS(複数のゲストOS8及びホストOS10)を仮想化して搭載することができる。なお、本実施の形態では、仮想化制御システム6は、いわゆるType1型(ベアメタル型)と呼ばれるハイパーバイザである。ここで、仮想化制御システム6とは、ハイパーバイザを通して仮想化システム上で動作するゲストOS8のI/O情報を受け取り、実際の外部記憶デバイス12との間でI/O情報をやりとりするシステムを示す。
【0037】
複数のゲストOS8の各々は、仮想化制御システム6上で動作する例えばLinux等のフロントエンドVM(Virtual Machine)であり、オペレーティングシステムの一例である。複数のゲストOS8の各々は、複数のプロセス14と、アプリケーション15と、アクセス制御機能16と、フロントエンド-デバイスドライバ18とを有している。図1では、説明の都合上、1つのゲストOS8のみを図示してある。なお、本実施の形態では、複数のゲストOS8が仮想化制御システム6上で動作するように構成したが、これに限定されず、1つのゲストOS8のみが仮想化制御システム6上で動作するように構成してもよい。
【0038】
複数のプロセス14の各々は、ゲストOS8の各種機能を実行するためのコンピュータプログラムである。複数のプロセス14の各々は、ゲストOS8の各種機能を実行するために、外部記憶デバイス12に記憶されたセクタ群へのアクセス(例えば、セクタ群への書き込み、又は、セクタ群の読み出し)を要求するためのアクセス要求を生成する。また、複数のプロセス14の各々は、例えばユーザの操作等に基づいて、アプリケーション保存領域の変更、具体的には、アプリケーション15の追加(インストール)、削除(アンインストール)及び更新(バージョンアップ等)を行う。図1では、説明の都合上、1つのプロセス14のみを図示してある。ここで、アプリケーション保存領域とは、アプリケーション15を保存するためのディレクトリ、又は、外部記憶装置内のアプリケーション専用のセクタ群等を意味する。
【0039】
アプリケーション15は、アプリケーション配信プラットフォームからゲストOS8にダウンロードされ、ゲストOS8内のアプリケーション保存領域に保存されたアプリケーションソフトウェアである。アプリケーション15は、例えば、ナビゲーション機能を実行可能なアプリケーション、及び、音楽又は映像等のコンテンツの再生機能を実行可能なアプリケーション等である。ゲストOS8内のアプリケーション保存領域には、アプリケーション15に関するファイルが格納されたディレクトリが保存されている。このディレクトリには、アプリケーション15に関するファイルとして、例えばアプリケーション15を保護するための条件が定義された開発者定義ポリシー15a等が格納されている。開発者定義ポリシー15aは、アプリケーション15に関するアプリケーション情報の一例である。なお、図1では、説明の都合上、1つのアプリケーション15のみを図示しているが、複数のアプリケーション15がアプリケーション保存領域に保存されていてもよい。
【0040】
アクセス制御機能16は、複数のプロセス14の各々により生成されたアクセス要求を監視するためのセキュリティ機能である。例えば、マルウェア等の不正なコンピュータプログラムがゲストOS8上で実行され、外部記憶デバイス12に記憶されたセクタ群に不正にアクセスしようとした場合に、アクセス制御機能16は、不正なコンピュータプログラムにより生成されたアクセス要求を破棄する。
【0041】
フロントエンド-デバイスドライバ18は、ゲストOS8に構成された仮想的なネットワークインターフェースを駆動するための仮想デバイスドライバ(VirtIO)である。フロントエンド-デバイスドライバ18は、複数のプロセス14の各々により生成されたアクセス要求を、仮想化制御システム6を介してホストOS10のバックエンド-デバイスドライバ20(後述する)に送信する。また、フロントエンド-デバイスドライバ18は、ホストOS10のバックエンド-デバイスドライバ20からのアクセス応答(後述する)を、仮想化制御システム6を介して受信する。
【0042】
ホストOS10は、仮想化制御システム6上で動作する例えばLinux等のバックエンドVMであり、制御システムの一例である。ホストOS10は、バックエンド-デバイスドライバ20と、記憶部22と、アクセスログ解析部24と、セクタ群アクセス判定部26と、制御対応部28とを有している。
【0043】
バックエンド-デバイスドライバ20は、ホストOS10に構成された仮想的なネットワークインターフェースを駆動するための仮想デバイスドライバ(VirtIO)である。バックエンド-デバイスドライバ20は、ゲストOS8のフロントエンド-デバイスドライバ18からのアクセス要求を、仮想化制御システム6を介して取得(受信)し、取得したアクセス要求をアクセスログ解析部24に出力する。
【0044】
また、後述するようにセクタ群アクセス判定部26によりアクセス要求が不正ではないと判定された場合には、バックエンド-デバイスドライバ20は、当該アクセス要求に応じて、外部記憶デバイス12に記憶されたセクタ群にアクセスする。この場合、バックエンド-デバイスドライバ20は、外部記憶デバイス12に記憶されたセクタ群にアクセスした結果を示すアクセス応答を、仮想化制御システム6を介してゲストOS8のフロントエンド-デバイスドライバ18に送信する。
【0045】
記憶部22は、セクタ群データベース30、セクタ群アクセス情報32及びセクタ群アクセスルールデータベース34を記憶するメモリである。これらのセクタ群データベース30、セクタ群アクセス情報32及びセクタ群アクセスルールデータベース34については、後述する。
【0046】
アクセスログ解析部24は、解析部の一例であり、バックエンド-デバイスドライバ20により取得されたアクセス要求のログとして、デバイスアクセスログ36を取得する。ここで、デバイスアクセスログ36は、例えば図2に示すようなテーブル形式のデータベースである。図2に示すように、デバイスアクセスログ36では、タイムスタンプと、操作対象VMと、操作種別と、セクタ番号と、ペイロードとが対応付けられている。タイムスタンプは、ゲストOS8のフロントエンド-デバイスドライバ18がアクセス要求を送信した日時を示す情報である。操作対象VMは、アクセス要求の送信元であるゲストOS8を示す情報であり、例えば複数のゲストOS8にそれぞれ割り当てられた、「1」、「2」、・・・、「n」の連続番号である。操作種別は、アクセス要求によるセクタ群の操作の種別を示す情報であり、例えば「read」(セクタ群の読み出し)又は「write」(セクタ群への書き込み)である。セクタ番号は、外部記憶デバイス12におけるセクタ群の記憶領域を指定するための情報である。ペイロードは、操作要求の内容(例えば、どのような内容を書き込むか等の情報)を示す情報である。
【0047】
図2に示す例では、デバイスアクセスログ36の1行目には、a)タイムスタンプ「2021年9月3日18:39:01.032」、b)操作対象VM「1」、c)操作種別「read」、d)セクタ番号「1111」、e)ペイロード「e38182(以下略)」がそれぞれ格納されている。すなわち、デバイスアクセスログ36の1行目は、「2021年9月3日18:39:01.032」の日時に、番号「1」が割り当てられたゲストOS8が、セクタ番号「1111」に対応する外部記憶デバイス12の記憶領域に記憶されたセクタ群の読み出し(read)を要求するためのアクセス要求を送信したことを意味している。
【0048】
また、アクセスログ解析部24は、記憶部22に記憶されたセクタ群データベース30に基づいて、デバイスアクセスログ36からセクタ群アクセスログ38を生成する。ここで、セクタ群データベース30は、例えば図3に示すようなテーブル形式のデータベースであり、対応情報の一例である。図3に示すように、セクタ群データベース30は、セクタ番号と、当該セクタ番号に対応する外部記憶デバイス12の記憶領域に記憶されたセクタ群のセクタ群名との対応関係を示すデータベースである。このセクタ群データベース30は、例えば情報処理装置2の初回起動時に生成される。なお、図3では、セクタ群名とセクタ群とが1対1に対応している例を示しているが、これに限定されず、1つのセクタ群名に対して複数のセクタ群が対応していてもよい。
【0049】
図3に示す例では、セクタ群データベース30の1行目には、a)セクタ群名「/home/key/secret.dat」、b)セクタ番号「1111」が格納されている。すなわち、セクタ群データベース30の1行名は、セクタ番号「1111」に対応する外部記憶デバイス12の記憶領域には、セクタ群名「/home/key/secret.dat」のセクタ群が記憶されていることを意味している。なお、アクセス要求のログが増大することにより、セクタ番号が追加された場合には、セクタ群データベース30が更新される。
【0050】
アクセスログ解析部24は、まず、デバイスアクセスログ36から監視対象のゲストOS8(例えば、番号「1」が割り当てられたゲストOS8)に関するログのみを抽出する。次に、アクセスログ解析部24は、記憶部22に記憶されたセクタ群データベース30を参照し、抽出したデバイスアクセスログ36のログに含まれるセクタ番号と、当該セクタ番号に対応するセクタ群名とを紐付けることにより、セクタ群アクセスログ38を生成する。アクセスログ解析部24は、生成したセクタ群アクセスログ38をセクタ群アクセス判定部26に出力する。
【0051】
ここで、セクタ群アクセスログ38は、例えば図4に示すようなテーブル形式のデータベースであり、アクセスデータの一例である。図4に示すように、セクタ群アクセスログ38では、タイムスタンプと、操作種別と、セクタ番号と、セクタ群名と、ペイロードとが対応付けられている。
【0052】
図4に示す例では、セクタ群アクセスログ38の1行目には、a)タイムスタンプ「2021年9月3日18:39:01.032」、b)操作種別「read」、c)セクタ番号「1111」、d)セクタ群名「/home/key/secret.dat」、e)ペイロード「e38182(以下省略)」がそれぞれ格納されている。すなわち、セクタ群アクセスログ38の1行目は、「2021年9月3日18:39:01.032」の日時に、番号「1」が割り当てられたゲストOS8が、セクタ番号「1111」に対応する外部記憶デバイス12の記憶領域に記憶された、セクタ群名「/home/key/secret.dat」のセクタ群の読み出し(read)を要求するためのアクセス要求を送信したことを意味している。
【0053】
また、アクセスログ解析部24は、生成したセクタ群アクセスログ38に基づいて、記憶部22に記憶されたセクタ群アクセス情報32を更新する。ここで、セクタ群アクセス情報32は、例えば図5に示すようなテーブル形式のデータベースである。図5に示すように、セクタ群アクセス情報32では、セクタ群名と、最終アクセス日時と、最後にアクセスしたプロセスと、最後の操作と、最終のセクタ番号とが対応付けられている。
【0054】
図5に示す例では、セクタ群アクセス情報32の1行目には、a)セクタ群名「/var/log/system.log」、b)最終アクセス日時「2021年9月17日04:43:21.213」、c)最後にアクセスしたプロセス「systemlogd」、d)最後の操作「write」、e)最終のセクタ番号「1234」がそれぞれ格納されている。すなわち、セクタ群アクセス情報32の1行目は、セクタ群名「/var/log/system.log」のセクタ群に対する最後のアクセスが、「2021年9月17日04:43:21.213」の日時に、プロセス「systemlogd」による、セクタ番号「1234」に対応する外部記憶デバイス12の記憶領域へのセクタ群の書き込み(write)であったことを意味している。
【0055】
セクタ群アクセス判定部26は、監視部の一例であり、記憶部22に記憶されたセクタ群アクセス情報32及びセクタ群アクセスルールデータベース34と、セクタ群アクセスログ38とに基づいて、ゲストOS8からのアクセス要求が不正であるか否かを判定する。
【0056】
ここで、セクタ群アクセスルールデータベース34は、外部記憶デバイス12に記憶されたセクタ群毎に、当該セクタ群のセクタ群名と、当該セクタ群にアクセスするためのルールとの対応関係を示すデータベースである。具体的には、セクタ群アクセスルールデータベース34は、例えば図6に示すようなテーブル形式のデータベースであり、ルール情報の一例である。図6に示すように、セクタ群アクセスルールデータベース34では、セクタ群名と、アクセス許可プロセスと、アクセス許可操作と、セクタ群種別とが対応付けられている。アクセス許可プロセスは、セクタ群に対してアクセスが許可されたプロセスを示す情報(ルール)である。アクセス許可操作は、セクタ群に対してアクセスが許可された操作を示す情報(ルール)である。セクタ群種別は、セクタ群の種別(個人情報、ログ、i-node)を示す情報である。
【0057】
図6に示す例では、セクタ群アクセスルールデータベース34の1行目には、a)セクタ群名「/home/key/secret.dat」、b)アクセス許可プロセス「updateservice」、c)アクセス許可操作「read」、d)セクタ群種別「個人情報」がそれぞれ格納されている。すなわち、セクタ群アクセスルールデータベース34の1行目は、「個人情報」を含むセクタ群名「/home/key/secret.dat」のセクタ群に対して、アクセスが許可されるプロセスは「updateservice」であり、且つ、アクセスが許可される操作は読み出し(read)であることを意味している。
【0058】
なお、本実施の形態では、セクタ群アクセスルールデータベース34は、外部記憶デバイス12に記憶されたセクタ群にアクセスするためのルールとして、当該セクタ群に対してアクセスが許可されるプロセス及び操作を含むようにしたが、これに限定されず、プロセス及び操作のいずれか一方のみを含むようにしてもよい。
【0059】
セクタ群アクセス判定部26は、セクタ群アクセスルールデータベース34とセクタ群アクセスログ38とを比較することにより、外部記憶デバイス12に記憶されたセクタ群にアクセスしようとしているプロセス及び操作が、セクタ群アクセスルールデータベース34により規定されたルールに合致しているか否かを判定する。また、セクタ群アクセス判定部26は、セクタ群アクセス情報32とセクタ群アクセスログ38とを比較することにより、ゲストOS8によるセクタ群へのアクセスのビヘイビア(振る舞い)が、許可されたビヘイビアであるか否かを判定する。セクタ群アクセス判定部26は、判定結果を制御対応部28に出力する。
【0060】
なお、許可されたビヘイビアは、例えば、a)ログファイル(ログを示すセクタ群)に追記する操作、b)情報処理装置2の初回起動時におけるセクタ群の読み込み操作等である。前者については、一般に、ログファイルにwrite権限が与えられていたとしても、ログファイルに対する追記が発生するのみであるため、ログファイルの一部を改変又は消去しようとする操作は、不正なアクセスであると判定可能である。また、後者については、一般に、例えばゲストOS8のアクセス制御機能16のポリシー等を示すセクタ群は、情報処理装置2の初回起動時にのみ読み込まれるため、初回起動時から相当時間が経過した後に当該セクタ群を読み込もうとする操作は、不正なアクセスであると判定可能である。
【0061】
また、セクタ群アクセス判定部26は、判定部の一例であり、セクタ群アクセスログ38に含まれるセクタ番号に基づいて、ゲストOS8からのアクセス要求が、外部記憶デバイス12に記憶されたアプリケーション15に関するセクタ群へのアクセスを要求するものであるか否かを判定する。セクタ群アクセス判定部26は、判定結果を管理部42(後述する)に出力する。
【0062】
制御対応部28は、セクタ群アクセス判定部26の判定結果に基づいて、対応を制御する。具体的には、制御対応部28は、セクタ群アクセス判定部26によりアクセス要求が不正であると判定された場合には、SIEM(Security Information and Event Management)機能を備える外部サーバ40へのエラー通知等を行う。また、制御対応部28は、セクタ群アクセス判定部26によりアクセス要求が不正ではないと判定された場合には、アクセス要求に応じて外部記憶デバイス12に記憶されたセクタ群にアクセスするようにバックエンド-デバイスドライバ20に指示する。
【0063】
図1に示すように、ホストOS10は、さらに、管理部42を有している。以下、図7図10を参照しながら、管理部42の機能構成について説明する。図7は、実施の形態に係る管理部42の機能構成を示すブロック図である。図8は、実施の形態に係るアプリケーションデータベース44の一例を示す図である。図9は、実施の形態に係る開発者定義ポリシー15aの一例を示す図である。図10は、実施の形態に係るディレクトリ生成先ポリシー52の一例を示す図である。
【0064】
図7に示すように、管理部42は、アプリケーションデータベース44と、変更種別判定部46と、取得部48と、更新部50とを有している。
【0065】
アプリケーションデータベース44は、ゲストOS8のアプリケーション保存領域に保存されているアプリケーション15に関するデータベースである。具体的には、アプリケーションデータベース44は、例えば図8に示すようなテーブル形式のデータベースである。図8に示すように、アプリケーションデータベース44では、アプリケーション名と、監視・保護対象セクタ群名と、セクタ群属性と、最終更新日時とが対応付けられている。アプリケーション名は、アプリケーション15の名称である。監視・保護対象セクタ群名は、ゲストOS8のアプリケーション保存領域内のディレクトリに格納されている、アプリケーション15に関するセクタ群の名称である。セクタ群属性は、セクタ群の属性(アプリケーション本体、アプリケーション構成要素、開発者定義ポリシー)を示す情報である。最終更新日時は、セクタ群が最後に更新された日時である。なお、アプリケーションデータベース44は、例えば所定の期間毎に、ゲストOS8のアプリケーション保存領域と同期するように更新される。
【0066】
変更種別判定部46は、セクタ群アクセス判定部26によりアクセス要求がアプリケーション15に関するセクタ群へのアクセスを要求するものであると判定されたことをトリガーとして、ゲストOS8のアプリケーション保存領域を探索する。そして、変更種別判定部46は、アプリケーション保存領域とアプリケーションデータベース44とを比較することにより、ゲストOS8によりアプリケーション15の追加、削除及び更新のいずれが行われたかを判定する。変更種別判定部46は、判定結果を取得部48及び更新部50に出力する。
【0067】
取得部48は、変更種別判定部46からの判定結果に基づいて、仮想化制御システム6を介して、ゲストOS8のアプリケーション保存領域からアプリケーション15の開発者定義ポリシー15aを取得する。取得部48は、取得した開発者定義ポリシー15aを更新部50に出力する。
【0068】
ここで、開発者定義ポリシー15aは、例えば図9に示すようなテーブル形式のデータベースである。図9に示すように、開発者定義ポリシー15aでは、保存先ディレクトリIDと、セクタ群名と、アクセス許可プロセスと、アクセス許可操作と、種別とが対応付けられている。
【0069】
なお、ゲストOS8のアプリケーション保存領域には、開発者定義ポリシー15aとともに、ディレクトリ生成先ポリシー52が保存されている。ディレクトリ生成先ポリシー52は、開発者定義ポリシー15aの保存先であるディレクトリを生成するためのポリシーであり、例えば図10に示すようなテーブル形式のデータベースである。図10に示すように、ディレクトリ生成先ポリシー52では、ディレクトリIDと、ディレクトリ作成場所と、ディレクトリ名と、アクセス許可操作と、種別とが対応付けられている。ディレクトリ生成先ポリシー52のディレクトリIDは、開発者定義ポリシー15aの保存先ディレクトリIDに対応している。なお、ディレクトリ作成場所のアプリケーション関連ファイル保存領域は、アプリケーション保存領域とは別のファイルパスでもよいし、アプリケーション保存領域と同じファイルパスでもよい。
【0070】
更新部50は、セクタ群アクセス判定部26によりアクセス要求がアプリケーション15に関するセクタ群へのアクセスを要求するものであると判定され、且つ、変更種別判定部46によりゲストOS8がアプリケーション15の追加、削除及び更新のいずれかを行ったと判定されたことをトリガーとして、セクタ群データベース30及びセクタ群アクセスルールデータベース34を更新する。
【0071】
[2.情報処理装置の動作]
[2-1.ホストOSの全体動作]
図11を参照しながら、実施の形態に係るホストOS10の全体動作について説明する。図11は、実施の形態に係るホストOS10の全体動作の流れを示すフローチャートである。
【0072】
図11に示すように、まず、アクセスログ解析部24は、バックエンド-デバイスドライバ20により取得されたアクセス要求のログとして、デバイスアクセスログ36を取得する(S101)。
【0073】
次に、アクセスログ解析部24は、デバイスアクセスログ36から監視対象のゲストOS8に関するログのみを抽出した上で、記憶部22に記憶されたセクタ群データベース30を参照し、抽出したログに含まれるセクタ番号と、当該セクタ番号に対応するセクタ群名とを紐付けることにより、セクタ群アクセスログ38を生成する(S102)。
【0074】
次に、セクタ群アクセス判定部26は、記憶部22に記憶されたセクタ群アクセス情報32及びセクタ群アクセスルールデータベース34と、セクタ群アクセスログ38とに基づいて、ゲストOS8のアクセス要求が不正であるか否かを判定する(S103)。セクタ群アクセス判定部26は、判定結果を制御対応部28に出力する。
【0075】
セクタ群アクセス判定部26によりアクセス要求が不正であると判定された場合には(S103でYES)、制御対応部28は、セクタ群アクセスログ38に含まれるセクタ群名に基づいて、当該アクセス要求の対象となっているセクタ群の種別を判定する(S104)。
【0076】
セクタ群の種別が「ログ」である場合には(S104で「ログ」)、制御対応部28は、外部サーバ40にエラーを通知する(S105)。この場合、制御対応部28が外部サーバ40にエラーを通知するタイミングは、予め定められた定期的なタイミング(例えば、5分毎のタイミング)である。この時、セクタ群アクセス判定部26は、セクタ群アクセス情報32のうち、不正なアクセス要求に関する内容を消去する。その後、図11のフローチャートを終了する。
【0077】
一方、セクタ群の種別が「個人情報」である場合には(S104で「個人情報」)、制御対応部28は、外部サーバ40にエラーを通知するとともに、当該アクセス要求に応じたセクタ群へのアクセスを停止するようにバックエンド-デバイスドライバ20に指示する(S106)。この場合、制御対応部28が外部サーバ40にエラーを通知し、且つ、セクタ群へのアクセスを停止するタイミングは、即時のタイミングである。なお、制御対応部28は、外部サーバ40にエラーを通知する際に、不正と判定されたセクタ群アクセスログ38を併せて通知してもよい。この時、セクタ群アクセス判定部26は、セクタ群アクセス情報32のうち、不正なアクセス要求に関する内容を消去する。その後、図11のフローチャートを終了する。
【0078】
ステップS103に戻り、セクタ群アクセス判定部26によりアクセス要求が不正ではないと判定された場合には(S103でNO)、制御対応部28は、アクセス要求に応じて外部記憶デバイス12に記憶されたセクタ群にアクセスするようにバックエンド-デバイスドライバ20に指示する(S107)。この時、セクタ群アクセス判定部26は、アクセス要求の内容に基づいて、セクタ群アクセス情報32を更新する。その後、図11のフローチャートを終了する。
【0079】
[2-2.アクセスログ解析部の動作]
図12を参照しながら、アクセスログ解析部24の動作について具体的に説明する。図12は、実施の形態に係るアクセスログ解析部24の動作の流れを示すフローチャートである。
【0080】
図12に示すように、アクセスログ解析部24は、まず、デバイスアクセスログ36から最新のログを取得する(S201)。次に、アクセスログ解析部24は、取得した最新のログに含まれる操作対象VMが、監視対象のゲストOS8であるか否かを判定する(S202)。取得した最新のログに含まれる操作対象VMが監視対象のゲストOS8でない場合には(S202でNO)、図12のフローチャートを終了する。
【0081】
一方、取得した最新のログに含まれる操作対象VMが監視対象のゲストOS8である場合には(S202でYES)、アクセスログ解析部24は、取得した最新のログに含まれるセクタ番号がセクタ群データベース30に登録されているか否かを判定する(S203)。
【0082】
取得した最新のログに含まれるセクタ番号がセクタ群データベース30に登録されている場合には(S203でYES)、アクセスログ解析部24は、取得した最新のログに含まれるセクタ番号と、セクタ群データベース30に登録されている当該セクタ番号に対応するセクタ群名とを紐付けることにより、セクタ群アクセスログ38を生成する(S204)。その後、図12のフローチャートを終了する。
【0083】
一方、取得した最新のログに含まれるセクタ番号がセクタ群データベース30に登録されていない場合には(S203でNO)、アクセスログ解析部24は、取得した最新のログに含まれる操作種別が「write」であるか否かを判定する(S205)。取得した最新のログに含まれる操作種別が「write」でない場合には(S205でNO)、図12のフローチャートを終了する。
【0084】
一方、取得した最新のログに含まれる操作種別が「write」である場合には(S205でYES)、アクセスログ解析部24は、取得した最新のログが、セクタ群アクセスルールデータベース34に登録されているセクタ群に対する操作であるか否かを判定する(S206)。取得した最新のログが、セクタ群アクセスルールデータベース34に登録されているセクタ群に対する操作でない場合には(S206でNO)、図12のフローチャートを終了する。
【0085】
一方、取得した最新のログが、セクタ群アクセスルールデータベース34に登録されているセクタ群に対する操作である場合には(S206でYES)、アクセスログ解析部24は、セクタ群データベース30に、セクタ番号及び当該セクタ番号に対応するセクタ群名を登録し(S207)、ステップS204に進む。
【0086】
[2-3.セクタ群アクセス判定部の動作]
図13を参照しながら、セクタ群アクセス判定部26の動作について具体的に説明する。図13は、実施の形態に係るセクタ群アクセス判定部26の動作の流れを示すフローチャートである。
【0087】
図13に示すように、セクタ群アクセス判定部26は、まず、セクタ群アクセスログ38から最新のログを取得する(S301)。次に、セクタ群アクセス判定部26は、取得した最新のログに含まれる操作種別が、セクタ群アクセスルールデータベース34に含まれる、上記最新のログのセクタ群名に対応するアクセス許可操作であるか否かを判定する(S302)。すなわち、セクタ群アクセス判定部26は、セクタ群に対して付与されたread・write権限に関するルール情報に基づいて、アクセス要求が不正であるか否かを判定する。取得した最新のログに含まれる操作種別がアクセス許可操作でない場合には(S302でNO)、セクタ群アクセス判定部26は、ゲストOS8からのアクセス要求が不正であると判定する(S303)。その後、図13のフローチャートを終了する。
【0088】
一方、取得した最新のログに含まれる操作種別がアクセス許可操作である場合には(S302でYES)、セクタ群アクセス判定部26は、プロセスが、セクタ群アクセスルールデータベース34に含まれる、上記最新のログのセクタ群名に対応するアクセス許可プロセスであるか否かを判定する(S304)。プロセスがアクセス許可プロセスでない場合には(S304でNO)、セクタ群アクセス判定部26は、ゲストOS8からのアクセス要求が不正であると判定する(S303)。その後、図13のフローチャートを終了する。
【0089】
一方、プロセスがアクセス許可プロセスである場合には(S304でYES)、セクタ群アクセス判定部26は、セクタ群アクセス情報32に基づいて、外部記憶デバイス12に記憶されたセクタ群に対するアクセスのビヘイビアが許可されたビヘイビアであるか否かを判定する(S305)。ビヘイビアが許可されたビヘイビアではない場合には(S305でNO)、セクタ群アクセス判定部26は、ゲストOS8からのアクセス要求が不正であると判定する(S303)。その後、図13のフローチャートを終了する。
【0090】
一方、ビヘイビアが許可されたビヘイビアである場合には(S305でYES)、セクタ群アクセス判定部26は、ゲストOS8からのアクセス要求が不正ではないと判定する(S306)。その後、図13のフローチャートを終了する。
【0091】
ここで、図14及び図15を参照しながら、図13のフローチャートのステップS305の処理について具体的に説明する。図14及び図15は、図13のフローチャートのステップS305の処理を具体的に示すフローチャートである。
【0092】
セクタ群アクセス判定部26は、第1のビヘイビアルール~第Nのビヘイビアルールに基づいて、ビヘイビアがこれらの第1のビヘイビアルール~第Nのビヘイビアルールの各々で許可されたビヘイビアであるか否かを判定する。
【0093】
図14に示すように、セクタ群アクセス判定部26は、上記以外の場合には、ビヘイビアが第1のビヘイビアルールで許可されたビヘイビアであるか否かを判定する(S401)。ビヘイビアが第1のビヘイビアルールで許可されたビヘイビアでない場合には(S401でNO)、セクタ群アクセス判定部26は、ゲストOS8からのアクセス要求が不正であると判定する(S402)。その後、図14のフローチャートを終了する。
【0094】
一方、ビヘイビアが第1のビヘイビアルールで許可されたビヘイビアである場合には(S401でYES)、セクタ群アクセス判定部26は、ビヘイビアが第2のビヘイビアルールで許可されたビヘイビアであるか否かを判定する(S403)。ビヘイビアが第2のビヘイビアルールで許可されたビヘイビアでない場合には(S403でNO)、セクタ群アクセス判定部26は、ゲストOS8からのアクセス要求が不正であると判定する(S402)。その後、図14のフローチャートを終了する。
【0095】
以下同様に、ビヘイビアが第2のビヘイビアルールで許可されたビヘイビアである場合には(S403でYES)、セクタ群アクセス判定部26は、ビヘイビアが第Nのビヘイビアルールで許可されたビヘイビアであるか否かを判定する(S404)。ビヘイビアが第Nのビヘイビアルールで許可されたビヘイビアでない場合には(S404でNO)、セクタ群アクセス判定部26は、ゲストOS8からのアクセス要求が不正であると判定する(S402)。その後、図14のフローチャートを終了する。
【0096】
ビヘイビアが第Nのビヘイビアルールで許可されたビヘイビアである場合には(S404でYES)、セクタ群アクセス判定部26は、ゲストOS8からのアクセス要求が不正ではないと判定する(S405)。その後、図14のフローチャートを終了する。
【0097】
次に、図15を参照しながら、第1のビヘイビアルールを用いたビヘイビアの判定方法について説明する。第1のビヘイビアルールは、例えば情報処理装置2の初回起動時における、セクタ群へのアクセスのビヘイビアに関するルールである。
【0098】
図15に示すように、情報処理装置2の初回起動時以外のセクタ群へのアクセスが禁止されていない場合には(S501でNO)、図15のフローチャートを終了する。一方、情報処理装置2の初回起動時以外のセクタ群へのアクセスが禁止されている場合には(S501でYES)、セクタ群アクセス判定部26は、セクタ群アクセス情報32にゲストOS8からのアクセス要求が記憶されているか否かを判定する(S502)。
【0099】
セクタ群アクセス情報32にゲストOS8からのアクセス要求が記憶されている場合には(S502でYES)、セクタ群アクセス判定部26は、ゲストOS8からのアクセス要求が不正であると判定する(S503)。その後、図15のフローチャートを終了する。
【0100】
一方、セクタ群アクセス情報32にゲストOS8からのアクセス要求が記憶されていない場合には(S502でNO)、セクタ群アクセス判定部26は、アクセス要求のタイムスタンプが想定される初回起動時間(例えば1分)内であるか否かを判定する(S504)。アクセス要求のタイムスタンプが想定される初回起動時間内でない場合には(S504でNO)、セクタ群アクセス判定部26は、アクセス要求が不正であると判定する(S503)。その後、図15のフローチャートを終了する。
【0101】
一方、アクセス要求のタイムスタンプが想定される初回起動時間内である場合には(S504でYES)、セクタ群アクセス判定部26は、ビヘイビアが第1のビヘイビアルールで許可されたビヘイビアであると判定する(S505)。この場合、セクタ群アクセス判定部26は、セクタ群アクセス情報32に、ゲストOS8からのアクセス要求を記憶させる。その後、図15のフローチャートを終了する。
【0102】
[2-4.セクタ群アクセス判定部及び管理部の動作]
図16を参照しながら、セクタ群アクセス判定部26及び管理部42の動作について具体的に説明する。図16は、実施の形態に係るセクタ群アクセス判定部26及び管理部42の動作の流れを示すフローチャートである。
【0103】
以下、ゲストOS8が、外部記憶デバイス12に記憶された複数のセクタ群のうち、アプリケーション15に関するセクタ群へのアクセスを要求した場合について説明する。
【0104】
図16に示すように、セクタ群アクセス判定部26は、セクタ群アクセスログ38に含まれるセクタ番号に基づいて、ゲストOS8からのアクセス要求がアプリケーション15に関するセクタ群へのアクセスを要求するものであると判定する(S601)。セクタ群アクセス判定部26は、判定結果を管理部42の変更種別判定部46に出力する。
【0105】
管理部42の変更種別判定部46は、アプリケーション保存領域をホストOS10にマウントして参照し、アプリケーション保存領域とアプリケーションデータベース44とを比較することにより、ゲストOS8によりアプリケーション15の追加、削除及び更新のいずれが行われたかを判定する(S602)。変更種別判定部46は、判定結果を取得部48及び更新部50に出力する。
【0106】
管理部42の更新部50は、セクタ群データベース30及びセクタ群アクセスルールデータベース34を更新する(S603)。
【0107】
ここで、図17を参照しながら、図16のフローチャートのステップS602の処理について具体的に説明する。図17は、図16のフローチャートのステップS602の処理を具体的に示すフローチャートである。
【0108】
図17に示すように、管理部42の変更種別判定部46は、セクタ群アクセス判定部26によりアクセス要求がアプリケーション15に関するセクタ群へのアクセスを要求するものであると判定されたことをトリガーとして、ゲストOS8のアプリケーション保存領域を探索する(S701)。
【0109】
変更種別判定部46は、アプリケーションデータベース44と比較して、アプリケーション保存領域でアプリケーション15が増えていると判定した場合には(S702でYES)、ゲストOS8によりアプリケーション15の追加が行われたと判定する(S703)。例えば、図8に示すアプリケーションデータベース44に「navigation」及び「Music Store」の各アプリケーション15に関するデータが格納されている一方で、アプリケーション保存領域に「navigation」、「Music Store」及び「Coupon Strage」の各アプリケーション15が保存されている場合には、変更種別判定部46は、ゲストOS8により「Coupon Strage」のアプリケーション15の追加が行われたと判定する。
【0110】
ステップS702に戻り、変更種別判定部46は、アプリケーションデータベース44と比較して、アプリケーション保存領域でアプリケーション15が減っていると判定した場合には(S702でNO、S704でYES)、ゲストOS8によりアプリケーション15の削除が行われたと判定する(S705)。例えば、図8に示すアプリケーションデータベース44に「navigation」、「Music Store」及び「Coupon Strage」の各アプリケーション15に関するデータが格納されている一方で、アプリケーション保存領域に「navigation」及び「Music Store」の各アプリケーション15が保存されている場合には、変更種別判定部46は、ゲストOS8により「Coupon Strage」のアプリケーション15の削除が行われたと判定する。
【0111】
ステップS704に戻り、変更種別判定部46は、アプリケーションデータベース44と比較して、アプリケーション保存領域の開発者定義ポリシー15aが更新されていると判定した場合には(S704でNO、S706でYES)、ゲストOS8によりアプリケーション15の更新が行われたと判定する(S707)。例えば、図8に示すアプリケーションデータベース44において、「Coupon Strage」の開発者定義ポリシー15aの最終更新日時が「2021年9月25日14:25:04.067」である一方で、アプリケーション保存領域における「Coupon Strage」の開発者定義ポリシー15aの最終更新日時が「2021年9月30日12:10:03.127」である場合には、変更種別判定部46は、ゲストOS8により「Coupon Strage」のアプリケーション15の更新が行われたと判定する。なお、ステップS706において、開発者定義ポリシー15aが更新されているか否かだけでなく、アプリケーション15毎のセクタ情報の変化も含めて判断してもよい。
【0112】
なお、本実施の形態では、アプリケーション情報として開発者定義ポリシー15aを用いたが、これに限定されない。OEMやサプライヤが特定の拡張子を持つファイルに対して独自の保護ルールを設けている場合は、アプリケーション情報としてそのファイル名と拡張子とを取得し、当該ファイルに対してOEM・サプライヤが設けた保護ルールに従うアクセスルールを自動的に生成し追加してもよい。
【0113】
例えば、ログデータの拡張子(.log)を持つ場合には、追記専用の保護ルールを適用し、実行アプリケーションの拡張子(.exe)を持つ場合には、書き込み禁止の保護ルールを適用する。その他、アプリケーション15内に定義されたファイル毎のパーミッション情報(Read,Write,実行)等の情報に応じて、保護ルールを設定してもよい。
【0114】
これにより、制御システム(ホストOS10やハイパーバイザ等)で定義された保護方針に従って、アプリケーション15を適切に保護することができる。
【0115】
ステップS706に戻り、変更種別判定部46は、アプリケーションデータベース44と比較して、アプリケーション保存領域の開発者定義ポリシー15aが更新されていないと判定した場合には(S706でNO)、図17のフローチャートを終了する。この場合、上述した図11のフローチャートのステップS103~S107が実行される。
【0116】
次に、図18図20を参照しながら、変更種別判定部46によりゲストOS8がアプリケーション15の追加を行ったと判定された場合における、図16のフローチャートのステップS603の処理について具体的に説明する。図18は、ゲストOS8によりアプリケーション15の追加が行われた場合における、図16のフローチャートのステップS603の処理を具体的に示すフローチャートである。図19は、ゲストOS8によりアプリケーション15の追加が行われた場合における、セクタ群アクセスルールデータベース34の更新前後の一例を示す図である。図20は、ゲストOS8によりアプリケーション15の追加が行われた場合における、セクタ群データベース30の更新前後の一例を示す図である。
【0117】
図18に示すように、管理部42の取得部48は、変更種別判定部46からの判定結果(ゲストOS8によりアプリケーション15の追加が行われたという判定結果)に基づいて、仮想化制御システム6を介して、ゲストOS8のアプリケーション保存領域からアプリケーション15の開発者定義ポリシー15aを取得する(S801)。取得部48は、取得した開発者定義ポリシー15aを更新部50に出力する。
【0118】
管理部42の更新部50は、取得部48からの開発者定義ポリシー15aに基づいて、図19の(a)に示すセクタ群アクセスルールデータベース34に対して、追加したアプリケーション15(例えば、「Coupon Strage」)に関するルールを追加する(S802)。これにより、セクタ群アクセスルールデータベース34は、例えば図19の(b)に示すように更新される。
【0119】
さらに、更新部50は、図20の(a)に示すセクタ群データベース30に対して、追加したアプリケーション15に関するセクタ群名及びセクタ番号を追加する(S803)。これにより、セクタ群データベース30は、例えば図20の(b)に示すように更新される。
【0120】
次に、図21図23を参照しながら、変更種別判定部46によりゲストOS8がアプリケーション15の削除を行ったと判定された場合における、図16のフローチャートのステップS603の処理について具体的に説明する。図21は、ゲストOS8によりアプリケーション15の削除が行われた場合における、図16のフローチャートのステップS603の処理を具体的に示すフローチャートである。図22は、ゲストOS8によりアプリケーション15の削除が行われた場合における、セクタ群アクセスルールデータベース34の更新前後の一例を示す図である。図23は、ゲストOS8によりアプリケーション15の削除が行われた場合における、セクタ群データベース30の更新前後の一例を示す図である。
【0121】
図21に示すように、管理部42の更新部50は、変更種別判定部46からの判定結果(ゲストOS8によりアプリケーション15の削除が行われたという判定結果)に基づいて、図22の(a)に示すセクタ群アクセスルールデータベース34から、削除したアプリケーション15(例えば、「Coupon Strage」)に関するルールを削除する(S901)。これにより、セクタ群アクセスルールデータベース34は、例えば図22の(b)に示すように更新される。
【0122】
さらに、更新部50は、図23の(a)に示すセクタ群データベース30から、削除したアプリケーション15に関するセクタ群名及びセクタ番号を削除する(S902)。これにより、セクタ群データベース30は、図23の(b)に示すように更新される。
【0123】
次に、図24図26を参照しながら、変更種別判定部46によりゲストOS8がアプリケーション15の更新を行った場合における、図16のフローチャートのステップS603の処理について具体的に説明する。図24は、ゲストOS8によりアプリケーション15の更新が行われた場合における、図16のフローチャートのステップS603の処理を具体的に示すフローチャートである。図25は、ゲストOS8によりアプリケーション15の更新が行われた場合における、セクタ群アクセスルールデータベース34の更新前後の一例を示す図である。図26は、ゲストOS8によりアプリケーション15の更新が行われた場合における、セクタ群データベース30の更新前後の一例を示す図である。
【0124】
図24に示すように、管理部42の取得部48は、変更種別判定部46からの判定結果(ゲストOS8によりアプリケーション15の更新が行われたという判定結果)に基づいて、仮想化制御システム6を介して、ゲストOS8のアプリケーション保存領域からアプリケーション15の開発者定義ポリシー15aを取得する(S1001)。取得部48は、取得した開発者定義ポリシー15aを更新部50に出力する。
【0125】
管理部42の更新部50は、取得部48からの開発者定義ポリシー15aに基づいて、セクタ群アクセスルールデータベース34における、更新されたアプリケーション15(例えば、「Coupon Strage」)に関するルールを変更する(S1002)。より具体的には、更新部50は、図25の(a)に示すセクタ群アクセスルールデータベース34から更新前のアプリケーション15に関するルールを削除した後に、更新後のアプリケーション15に関するルールをセクタ群アクセスルールデータベース34に追加する。これにより、セクタ群アクセスルールデータベース34は、例えば図25の(b)に示すように更新される。
【0126】
さらに、更新部50は、セクタ群データベース30における、更新されたアプリケーション15に関するセクタ群名及びセクタ番号を変更する(S1003)。より具体的には、更新部50は、図26の(a)に示すセクタ群データベース30から更新前のアプリケーション15に関するセクタ群名及びセクタ番号を削除した後に、更新後のアプリケーション15に関するセクタ群名及びセクタ番号を追加する。これにより、セクタ群データベース30は、例えば図26の(b)に示すように更新される。
【0127】
[3.効果]
上述したように、本実施の形態では、ゲストOS8がアプリケーション15の追加、削除及び更新のいずれかを行うのに応じて、セクタ群データベース30及びセクタ群アクセスルールデータベース34を更新する。これにより、仮にゲストOS8のアクセス制御機能16が不正なコンピュータプログラムにより無効化又は改ざん等された場合であっても、更新されたセクタ群データベース30及びセクタ群アクセスルールデータベース34に基づいて、ゲストOS8からのアクセス要求の正当性を精度良く判定することができる。
【0128】
(他の変形例)
以上、一つ又は複数の態様に係る情報処理装置及び情報処理装置の制御方法について、上記実施の形態に基づいて説明したが、本開示は、上記実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思い付く各種変形を上記実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つ又は複数の態様の範囲内に含まれてもよい。
【0129】
なお、上記実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したコンピュータプログラムを実行することによって実現されてもよい。各構成要素は、CPU又はプロセッサ等のプログラム実行部が、ハードディスク又は半導体メモリなどの記録媒体に記録されたコンピュータプログラムを読み出して実行することによって実現されてもよい。
【0130】
また、上記実施の形態では、仮想化制御システム6として、ハイパーバイザ(TYPE1型)を採用したが、これに限定されず、あるオペレーティングシステム上で動作するハイパーバイザを含むアプリケーション(TYPE2型)を採用してもよい。
【0131】
また、上記実施の形態では、仮想化制御システム6とホストOS10とを別々に構成したが、これに限定されず、仮想化制御システム6がホストOS10の機能を備えていてもよい。この場合、ホストOS10の機能を備えた仮想化制御システム6は、制御システムを構成する。
【0132】
また、上記実施の形態に係る情報処理装置の機能の一部又は全てを、CPU等のプロセッサがコンピュータプログラムを実行することにより実現してもよい。
【0133】
上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしても良い。前記ICカード又は前記モジュールは、マイクロプロセッサ、ROM、RAM等から構成されるコンピュータシステムである。前記ICカード又は前記モジュールは、上記の超多機能LSIを含むとしても良い。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカード又は前記モジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしても良い。
【0134】
本開示は、上記に示す方法であるとしても良い。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしても良いし、前記コンピュータプログラムを含むデジタル信号であるとしても良い。また、本開示は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な非一時的な記録媒体、例えばフレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリ等に記録したものとしても良い。また、これらの記録媒体に記録されている前記デジタル信号であるとしても良い。また、本開示は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしても良い。また、前記コンピュータプログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記コンピュータプログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしても良い。
【産業上の利用可能性】
【0135】
本開示に係る情報処理装置は、例えばVM間通信における異常を検出する機能を有する仮想ECU等に適用可能である。
【符号の説明】
【0136】
2 情報処理装置
4 ハードウェア
6 仮想化制御システム
8 ゲストOS
10 ホストOS
12 外部記憶デバイス
14 プロセス
15 アプリケーション
15a 開発者定義ポリシー
16 アクセス制御機能
18 フロントエンド-デバイスドライバ
20 バックエンド-デバイスドライバ
22 記憶部
24 アクセスログ解析部
26 セクタ群アクセス判定部
28 制御対応部
30 セクタ群データベース
32 セクタ群アクセス情報
34 セクタ群アクセスルールデータベース
36 デバイスアクセスログ
38 セクタ群アクセスログ
40 外部サーバ
42 管理部
44 アプリケーションデータベース
46 変更種別判定部
48 取得部
50 更新部
52 ディレクトリ生成先ポリシー
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26